/* Konflict Records · paper-mode document shell (mirrors css/colors_and_type.css) */
@font-face { font-family:'Neue Haas Unica'; font-weight:300; font-style:normal; src:url('../fonts/NeueHaasUnica-Light.ttf') format('truetype'); font-display:swap; }
@font-face { font-family:'Neue Haas Unica'; font-weight:500; font-style:normal; src:url('../fonts/NeueHaasUnica-Medium.ttf') format('truetype'); font-display:swap; }
@font-face { font-family:'Neue Haas Unica'; font-weight:700; font-style:normal; src:url('../fonts/NeueHaasUnica-Bold.ttf') format('truetype'); font-display:swap; }
@font-face { font-family:'Neue Haas Unica'; font-weight:900; font-style:normal; src:url('../fonts/NeueHaasUnica-Black.ttf') format('truetype'); font-display:swap; }

:root{
  --c-black:#000000; --c-paper:#FFFFFF; --c-signal:#E50914; --c-signal-deep:#B40424;
  --ink:#000000; --ink-70:rgba(0,0,0,.70); --ink-55:rgba(0,0,0,.55); --ink-35:rgba(0,0,0,.35);
  --line-12:rgba(0,0,0,.12); --line-25:rgba(0,0,0,.25);
  --accent:var(--c-signal);
  --font-sans:'Neue Haas Unica',-apple-system,BlinkMacSystemFont,'Helvetica Neue',sans-serif;
  --font-mono:'SFMono-Regular',Menlo,Consolas,'Liberation Mono',monospace;
  --fs-h1:48px; --fs-h4:22px; --fs-body:16px; --fs-body-sm:14px; --fs-caption:13px; --fs-eyebrow:11px; --fs-tiny:10px;
  --lh-display:.95; --lh-prose:1.6;
  --ls-display:-.02em; --ls-tight:-.01em; --ls-eyebrow:.22em; --ls-tagline:.32em;
  --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:24px; --sp-6:32px; --sp-7:48px; --sp-8:64px;
  --ease-out:cubic-bezier(.16,1,.3,1); --dur-fast:120ms; --dur-base:220ms;
}
*{box-sizing:border-box}
html{background:var(--c-paper);color-scheme:light}
body{
  font-family:var(--font-sans);font-weight:300;font-size:var(--fs-body);line-height:var(--lh-prose);
  color:var(--ink);background:var(--c-paper);margin:0;padding:0 clamp(20px,5vw,64px) var(--sp-8);
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
}
::selection{background:var(--accent);color:var(--c-paper)}

/* nav */
.nav{
  max-width:1120px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-5);
  padding:var(--sp-5) 0;border-bottom:1px solid var(--line-12);
}
.nav a{border:0}
.wm{display:block;height:26px;width:auto}
.nav-link{
  font-weight:500;font-size:var(--fs-eyebrow);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;
  color:var(--ink-55);text-decoration:none;border:0;position:relative;padding-bottom:3px;
}
.nav-link::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;background:var(--accent);
  transform:scaleX(0);transform-origin:left;transition:transform var(--dur-base) var(--ease-out)}
.nav-link:hover{color:var(--ink)}
.nav-link:hover::after{transform:scaleX(1)}

/* document */
.wrap{max-width:760px;margin:0 auto;padding-top:clamp(40px,7vh,72px)}

.eyebrow{
  font-weight:500;font-size:var(--fs-eyebrow);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;
  color:var(--accent);display:flex;align-items:center;gap:var(--sp-3);margin:0 0 var(--sp-4);
}
.eyebrow::before{content:"";display:inline-block;width:var(--sp-5);height:1px;background:var(--accent)}

.masthead{border-bottom:2px solid var(--ink);padding-bottom:var(--sp-5);margin-bottom:var(--sp-6)}
h1{
  font-weight:900;font-size:clamp(34px,6vw,var(--fs-h1));line-height:var(--lh-display);
  letter-spacing:var(--ls-display);margin:0 0 var(--sp-4);
}
h1 .stop{color:var(--accent)}
.doc-meta{
  font-family:var(--font-mono);font-size:var(--fs-caption);letter-spacing:.04em;color:var(--ink-55);
  display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--sp-2) var(--sp-5);
}
.doc-meta .entity{color:var(--ink);font-family:var(--font-sans);font-weight:500;font-size:var(--fs-eyebrow);letter-spacing:var(--ls-eyebrow);text-transform:uppercase}

h2{
  font-weight:700;font-size:var(--fs-h4);line-height:1.2;letter-spacing:var(--ls-tight);
  margin:var(--sp-7) 0 var(--sp-3);padding-top:var(--sp-4);border-top:1px solid var(--line-12);
}
h2 .num{font-family:var(--font-mono);font-weight:400;font-size:var(--fs-caption);color:var(--accent);margin-right:var(--sp-3);letter-spacing:.06em;vertical-align:middle}

p{margin:0 0 var(--sp-4)}
strong{font-weight:700}
em{font-style:normal;color:var(--ink-70)}
a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--accent);transition:color var(--dur-fast) var(--ease-out)}
a:hover{color:var(--accent)}

ul{margin:0 0 var(--sp-5);padding-left:0;list-style:none}
li{position:relative;padding-left:var(--sp-5);margin-bottom:var(--sp-3)}
li::before{content:"";position:absolute;left:0;top:11px;width:6px;height:6px;background:var(--accent)}

/* signoff */
.signoff{
  margin-top:var(--sp-8);padding-top:var(--sp-5);border-top:2px solid var(--ink);
  font-size:var(--fs-body-sm);line-height:1.6;color:var(--ink-70);
}
.signoff .name{font-weight:700;color:var(--ink);font-size:15px;display:block;margin-bottom:var(--sp-1,4px)}

/* site footer */
.foot{
  max-width:1120px;margin:var(--sp-8) auto 0;border-top:1px solid var(--line-12);padding-top:var(--sp-6);
  display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:var(--sp-5);
}
.foot-tag{font-weight:500;font-size:var(--fs-tiny);letter-spacing:var(--ls-tagline);text-transform:uppercase;color:var(--ink-55)}
.foot-tag .stop{color:var(--accent)}
.foot-meta{font-size:var(--fs-body-sm);color:var(--ink-55);text-align:right;line-height:1.7}
.foot-meta strong{font-weight:500;color:var(--ink-70)}
.foot-meta a{border-bottom:1px solid var(--line-25)}
.foot-meta a:hover{border-bottom-color:var(--accent)}

/* reveal */
.rv{opacity:0;transform:translateY(6px);animation:rv 300ms var(--ease-out) forwards}
.rv-1{animation-delay:40ms}.rv-2{animation-delay:120ms}.rv-3{animation-delay:200ms}
@keyframes rv{to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.rv{animation:none;opacity:1;transform:none}*{transition:none!important}}
@media print{.nav,.foot{display:none}body{padding:0}.wrap{padding-top:0}.rv{animation:none;opacity:1;transform:none}}

/* ── view transitions (index ↔ document) ── */
@view-transition{navigation:auto}
::view-transition-old(root){animation:vt-out 180ms var(--ease-out) forwards}
::view-transition-new(root){animation:vt-in 260ms var(--ease-out) 60ms both}
@keyframes vt-out{to{opacity:0}}
@keyframes vt-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* ── reading progress (1px Signal red, top of viewport) ── */
.progress{position:fixed;top:0;left:0;height:2px;width:100%;background:var(--accent);
  transform:scaleX(0);transform-origin:left;z-index:10;pointer-events:none}

/* ── section rules draw in on scroll ── */
h2{position:relative;border-top:0}
h2::before{content:"";position:absolute;left:0;top:0;height:1px;width:100%;background:var(--line-12);
  transform:scaleX(0);transform-origin:left;transition:transform 420ms var(--ease-out)}
h2.in::before{transform:scaleX(1)}
h2 .num{display:inline-block;transition:transform var(--dur-base) var(--ease-out)}
h2.in .num{transform:translateX(0)}
h2:not(.in) .num{transform:translateX(-6px)}

/* section link: number is the link; a red rule extends left on hover, "Link copied" on click */
h2 .num{cursor:pointer;position:relative}
h2 .num::before{content:"";position:absolute;right:calc(100% + 10px);top:50%;height:1px;width:28px;background:var(--accent);
  transform:scaleX(0);transform-origin:right;transition:transform var(--dur-base) var(--ease-out)}
h2:hover .num::before{transform:scaleX(1)}
h2 .copied{position:absolute;right:0;top:calc(var(--sp-4) + 4px);font-family:var(--font-mono);font-weight:400;
  font-size:var(--fs-eyebrow);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);
  opacity:0;transform:translateY(4px);transition:opacity var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-out);pointer-events:none}
h2.copied-on .copied{opacity:1;transform:none}
@media (max-width:900px){h2 .num::before{display:none}}
@media (prefers-reduced-motion:reduce){
  ::view-transition-old(root),::view-transition-new(root){animation:none}
  h2::before{transform:none;transition:none}
  h2 .num{transform:none!important}
}
