/* ============================================================
   OddExis — v2 · monumental / institutional
   Fraunces (display serif) · Schibsted Grotesk (UI)
   Deep warm-charcoal ground · brass system accent · ember = FightBets only
   ============================================================ */

:root{
  /* ground & ink — warm charcoal, low chroma */
  --bg:        oklch(0.146 0.005 70);
  --bg-2:      oklch(0.182 0.006 68);
  --bg-3:      oklch(0.222 0.007 66);
  --ink:       oklch(0.945 0.012 78);
  --ink-2:     oklch(0.790 0.012 72);
  --ink-3:     oklch(0.650 0.011 70);
  --ink-4:     oklch(0.510 0.010 68);
  --line:      oklch(0.330 0.008 68);
  --line-2:    oklch(0.262 0.007 68);

  /* OddExis system accent — brass */
  --brass:     oklch(0.810 0.092 84);
  --brass-2:   oklch(0.665 0.096 75);
  --brass-3:   oklch(0.520 0.080 70);
  --brass-ink: oklch(0.190 0.038 80);

  /* FightBets franchise only — oxidised ember */
  --ember:     oklch(0.640 0.170 30);

  --maxw: 1320px;
  --pad: clamp(1.25rem, 5vw, 5rem);

  --ff-disp: "Fraunces", Georgia, "Times New Roman", serif;
  --ff-ui:   "Schibsted Grotesk", "Helvetica Neue", Arial, sans-serif;

  --ease: cubic-bezier(.16,1,.3,1);
  --ease-2: cubic-bezier(.22,.61,.36,1);
}

/* ---------- reset ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;min-width:0}
html{-webkit-text-size-adjust:100%;overflow-x:clip;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  font-family:var(--ff-ui);background:var(--bg);color:var(--ink-2);
  line-height:1.62;font-size:clamp(1.02rem,.98rem + .26vw,1.18rem);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:clip;position:relative;
}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
::selection{background:var(--brass);color:var(--brass-ink)}
:focus-visible{outline:2px solid var(--brass);outline-offset:3px;border-radius:2px}

.grain{position:fixed;inset:-50%;width:200%;height:200%;pointer-events:none;z-index:9999;opacity:.03;mix-blend-mode:overlay}

/* ---------- shared type ---------- */
h1,h2,h3,h4{font-family:var(--ff-disp);color:var(--ink);font-weight:400;line-height:1.05;letter-spacing:-.014em;overflow-wrap:break-word}
h1 em,h2 em,h3 em{font-style:italic;color:var(--ink)}
strong{color:var(--ink);font-weight:600}
em{font-style:italic}

.eyebrow{
  font-family:var(--ff-ui);font-size:.74rem;font-weight:600;
  letter-spacing:.24em;text-transform:uppercase;color:var(--ink-4);
  display:flex;align-items:center;gap:.85em;
}
.eyebrow::before{content:"";width:2rem;height:1px;background:var(--brass-3);flex:none}

.lede{font-size:clamp(1.1rem,1.02rem + .42vw,1.36rem);line-height:1.55;color:var(--ink-2);max-width:46ch}
.lede strong{color:var(--ink)}
.hl{color:var(--ink);box-shadow:inset 0 -.42em 0 oklch(0.810 0.092 84 / .15)}

/* ---------- layout ---------- */
.maxw,section{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--pad);position:relative}
section + section{margin-top:clamp(6rem,12vw,12rem)}

/* full-width band helper */
.band{max-width:none;padding-inline:0}
.band > *{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--pad)}

/* hairline page margins on very wide screens */
@media (min-width:1440px){
  body::before,body::after{content:"";position:fixed;top:0;bottom:0;width:1px;background:var(--line-2);z-index:1;pointer-events:none}
  body::before{left:calc(50% - var(--maxw)/2 - 1px)}
  body::after{right:calc(50% - var(--maxw)/2 - 1px)}
}

/* ============================================================
   TOPBAR
   ============================================================ */
.topbar{
  position:sticky;top:0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;
  padding:1.15rem var(--pad);
  background:color-mix(in oklab,var(--bg) 80%,transparent);
  backdrop-filter:blur(12px) saturate(1.2);
  border-bottom:1px solid transparent;transition:border-color .4s,background .4s,padding .3s;
}
.topbar.is-stuck{border-bottom-color:var(--line-2);background:color-mix(in oklab,var(--bg) 92%,transparent);padding-block:.85rem}
.brand{display:inline-flex;align-items:center;gap:.7rem;color:var(--ink)}
.brand__mark{color:var(--brass);display:inline-flex;transition:transform .7s var(--ease)}
.brand:hover .brand__mark{transform:rotate(180deg)}
.brand__word{font-family:var(--ff-ui);font-size:.95rem;font-weight:600;letter-spacing:.34em;padding-left:.1em}

.nav{display:flex;align-items:center;gap:clamp(1.2rem,2.6vw,2.4rem);font-size:.95rem}
.nav a{color:var(--ink-2);position:relative;padding-block:.35rem;transition:color .25s}
.nav a:not(.nav__cta)::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;background:var(--brass);transition:right .35s var(--ease)}
.nav a:not(.nav__cta):hover{color:var(--ink)}
.nav a:not(.nav__cta):hover::after{right:0}
.nav__cta{border:1px solid var(--line);border-radius:999px;padding:.46rem 1.1rem;color:var(--ink);transition:border-color .25s,background .25s,color .25s}
.nav__cta:hover{border-color:var(--brass);background:var(--brass);color:var(--brass-ink)}

.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:.4rem}
.nav-toggle span{width:24px;height:1.5px;background:var(--ink);transition:transform .3s var(--ease)}
.nav-toggle[aria-expanded="true"] span:first-child{transform:translateY(6.5px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:last-child{transform:translateY(-6.5px) rotate(-45deg)}

.m-nav{display:none;flex-direction:column;padding:.5rem var(--pad) 1.4rem;background:var(--bg-2);border-bottom:1px solid var(--line-2);position:sticky;top:0;z-index:49}
.m-nav.is-open{display:flex}
.m-nav a{padding:.95rem 0;border-bottom:1px solid var(--line-2);font-size:1.08rem;color:var(--ink)}
.m-nav a:last-child{border-bottom:none}

/* ============================================================
   HERO — full bleed, monumental
   ============================================================ */
.hero{
  position:relative;max-width:none;padding-inline:0;
  min-height:100svh;display:flex;align-items:center;overflow:clip;
  padding-top:clamp(5rem,11vh,9rem);padding-bottom:clamp(4rem,9vh,7rem);
}
.hero__bg{position:absolute;inset:0;z-index:0;overflow:clip;pointer-events:none}
.hero__bg::before{ /* soft spotlight, upper-right */
  content:"";position:absolute;inset:0;
  background:radial-gradient(92% 72% at 74% 16%, oklch(0.235 0.016 74 / .9), transparent 70%);
}
.hero__bg::after{ /* faint blueprint columns + bottom vignette */
  content:"";position:absolute;inset:0;
  background:
    repeating-linear-gradient(90deg, transparent 0 calc(100% / 14), oklch(0.62 0.012 70 / .045) calc(100% / 14) calc(100% / 14 + 1px)),
    linear-gradient(180deg, transparent 58%, var(--bg));
}
.hero__glyph{
  position:absolute;right:-7vw;top:50%;transform:translate(0,-50%);
  font-family:var(--ff-disp);font-weight:300;font-size:min(48vw,46rem);
  line-height:.7;letter-spacing:-.045em;color:var(--ink);opacity:.05;
  user-select:none;font-variation-settings:"opsz" 144;
  animation:drift 24s ease-in-out infinite alternate;will-change:transform;
}
@keyframes drift{from{transform:translate(0,-50%)}to{transform:translate(-2.8vw,-53%)}}
.hero__inner{position:relative;z-index:1;width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--pad)}

.hero__h1{
  margin-top:2rem;
  font-size:clamp(3.3rem,1.5rem + 7.6vw,8.2rem);
  line-height:.99;letter-spacing:-.03em;font-weight:330;
  font-variation-settings:"opsz" 144;
}
.hero__h1 .ln{display:block;overflow:hidden;padding-bottom:.16em;margin-bottom:-.1em}
.hero__h1 .ln > i{display:block;font-style:normal;animation:lineUp 1.2s var(--ease) backwards}
.hero__h1 .ln:nth-child(1) > i{animation-delay:.16s}
.hero__h1 .ln:nth-child(2) > i{animation-delay:.28s}
.hero__h1 .ln:nth-child(3) > i{animation-delay:.40s}
.hero__h1 em{font-style:italic;letter-spacing:-.034em;color:var(--brass)}
@keyframes lineUp{from{transform:translateY(110%)}to{transform:translateY(0)}}

.hero .lede{margin-top:2.2rem;font-size:clamp(1.15rem,1rem + .65vw,1.55rem);max-width:42ch}
.hero__cta{margin-top:2.8rem;display:flex;flex-wrap:wrap;gap:.9rem}

.hero__cue{
  position:absolute;left:50%;bottom:clamp(1.4rem,3.5vh,2.6rem);transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;gap:.7rem;color:var(--ink-4);
  font-size:.64rem;letter-spacing:.28em;text-transform:uppercase;z-index:1;
  animation:cueIn 1.4s var(--ease) 1s backwards;
}
@keyframes cueIn{from{opacity:0}to{opacity:1}}
.hero__cue-line{width:1px;height:clamp(30px,5.5vh,52px);background:linear-gradient(var(--brass-3),transparent);position:relative;overflow:hidden}
.hero__cue-line::after{content:"";position:absolute;left:0;width:1px;height:55%;background:var(--brass);top:-55%;animation:scan 2.6s var(--ease-2) infinite}
@keyframes scan{0%{top:-55%}100%{top:100%}}
.hero__cue:hover{color:var(--ink-3)}

.btn{
  display:inline-flex;align-items:center;gap:.55em;
  font-family:var(--ff-ui);font-size:.98rem;font-weight:500;
  padding:.85rem 1.55rem;border-radius:999px;
  transition:transform .3s var(--ease),background .3s,border-color .3s,color .3s;
}
.btn:active{transform:translateY(1px)}
.btn--solid{background:var(--ink);color:var(--bg)}
.btn--solid:hover{background:var(--brass);color:var(--brass-ink)}
.btn--ghost{border:1px solid var(--line);color:var(--ink-2)}
.btn--ghost:hover{border-color:var(--ink-3);color:var(--ink)}
.btn--ghost span{transition:transform .3s var(--ease)}
.btn--ghost:hover span{transform:translateY(3px)}

/* ============================================================
   FRANCHISE INDEX — full-width strip
   ============================================================ */
.index{padding-block:clamp(2rem,3.5vw,3.5rem);border-block:1px solid var(--line-2);margin-top:clamp(2rem,4vw,4rem)}
.index__head{
  display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-4);
  padding-bottom:1.4rem;border-bottom:1px solid var(--line-2);margin-bottom:.4rem;
}
.index__legend{display:inline-flex;align-items:center;gap:.4em;letter-spacing:.14em}
.index__list{list-style:none}
.ix{
  display:grid;
  grid-template-columns:3.2rem minmax(8rem,1fr) minmax(0,2fr) 7rem;
  gap:clamp(.8rem,2vw,2rem);align-items:baseline;
  padding:clamp(1rem,1.8vw,1.55rem) 0;border-bottom:1px solid var(--line-2);
}
.ix:last-child{border-bottom:none}
.ix__no{font-family:var(--ff-disp);font-size:.85rem;color:var(--ink-4);letter-spacing:.1em}
.ix__name{font-family:var(--ff-disp);font-size:clamp(1.3rem,1rem + 1.1vw,1.95rem);color:var(--ink-2);letter-spacing:-.012em;line-height:1.05;font-variation-settings:"opsz" 60}
.ix__sport{color:var(--ink-4);font-size:.92rem;line-height:1.4}
.ix__status{justify-self:end;display:inline-flex;align-items:center;gap:.5em;color:var(--ink-3);font-size:.82rem;letter-spacing:.06em;white-space:nowrap;text-align:right}
.ix--live .ix__name{color:var(--ink)}
.ix--live .ix__sport{color:var(--ink-3)}
.ix--live .ix__status{color:var(--brass)}
.ix{transition:padding-left .4s var(--ease)}
.ix:hover{padding-left:.6rem}

.dot{width:7px;height:7px;border-radius:50%;border:1px solid var(--ink-4);flex:none;display:inline-block}
.dot--live{border-color:var(--brass);background:var(--brass);animation:pulse 3s var(--ease-2) infinite}
.dot--ember{border-color:var(--ember);background:var(--ember);animation:pulseE 3s var(--ease-2) infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 oklch(0.810 0.092 84 / .45)}70%,100%{box-shadow:0 0 0 8px oklch(0.810 0.092 84 / 0)}}
@keyframes pulseE{0%{box-shadow:0 0 0 0 oklch(0.640 0.170 30 / .45)}70%,100%{box-shadow:0 0 0 8px oklch(0.640 0.170 30 / 0)}}

/* ============================================================
   SCALE STATEMENT
   ============================================================ */
.scale{margin-top:clamp(5.5rem,11vw,11rem)}
.scale__line{
  font-family:var(--ff-disp);font-weight:300;
  font-size:clamp(1.85rem,1.1rem + 3vw,3.8rem);
  line-height:1.22;letter-spacing:-.016em;color:var(--ink-2);
  max-width:22ch;font-variation-settings:"opsz" 96;text-wrap:pretty;
}
.scale__hl{color:var(--ink);font-weight:400}

/* ============================================================
   BLOCK (numbered section) shared
   ============================================================ */
.block__head{display:flex;align-items:baseline;gap:1.2rem;padding-bottom:1.6rem;border-bottom:1px solid var(--line-2);margin-bottom:clamp(2.4rem,4vw,4rem)}
.block__no{font-family:var(--ff-disp);font-size:1rem;color:var(--brass-2);letter-spacing:.1em;flex:none}
.block__head h2{font-size:clamp(1.6rem,1.2rem + 1.8vw,2.6rem);font-weight:400;letter-spacing:-.012em;font-variation-settings:"opsz" 50;color:var(--ink)}

/* ============================================================
   MODEL
   ============================================================ */
.thesis__grid{display:grid;gap:clamp(3rem,6vw,5.5rem)}
.thesis__big{
  font-family:var(--ff-disp);font-weight:300;
  font-size:clamp(1.7rem,1.15rem + 2.5vw,3.1rem);
  line-height:1.26;letter-spacing:-.013em;color:var(--ink-2);
  max-width:22ch;font-variation-settings:"opsz" 80;
}
.thesis__big .hl{font-weight:400}
.thesis__cols{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(2rem,3.6vw,3.4rem);padding-top:2.4rem;border-top:1px solid var(--line-2)}
.thesis__cols h3{font-size:clamp(1.2rem,1.05rem + .5vw,1.4rem);font-weight:460;margin-bottom:.8rem;letter-spacing:-.01em}
.thesis__cols p{font-size:.98rem;color:var(--ink-3);line-height:1.62}

/* ============================================================
   ENGINE
   ============================================================ */
.engine__intro{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(1.8rem,4vw,4rem);align-items:end;margin-bottom:clamp(2.6rem,5vw,4rem)}
.engine__lead{font-family:var(--ff-disp);font-weight:340;font-size:clamp(1.5rem,1.1rem + 1.8vw,2.5rem);line-height:1.18;letter-spacing:-.012em;color:var(--ink);font-variation-settings:"opsz" 70;max-width:20ch}
.engine__intro .lede{margin-bottom:.2rem}

.loop{list-style:none;display:grid;grid-template-columns:repeat(5,1fr);border:1px solid var(--line-2);border-radius:2px;overflow:hidden}
.loop__node{padding:1.8rem 1.5rem 2rem;border-right:1px solid var(--line-2);position:relative;background:var(--bg);transition:background .4s}
.loop__node:last-child{border-right:none}
.loop__node:hover{background:var(--bg-2)}
.loop__node::after{content:"→";position:absolute;right:-.62em;top:2.1rem;color:var(--line);font-size:1rem;background:var(--bg);padding-inline:.15em;z-index:2;transition:color .4s}
.loop__node:last-child::after{content:"↻";color:var(--brass-2);right:1.35rem;font-size:1.15rem}
.loop:hover .loop__node::after{color:var(--ink-4)}
.loop__n{font-family:var(--ff-disp);font-size:.82rem;color:var(--brass-2);letter-spacing:.08em;display:block;margin-bottom:1.6rem}
.loop__node--return .loop__n{color:var(--brass)}
.loop__node h4{font-size:1.18rem;font-weight:460;margin-bottom:.6rem;color:var(--ink);letter-spacing:-.008em}
.loop__node p{font-size:.86rem;color:var(--ink-3);line-height:1.5}
.loop__node--return{background:linear-gradient(180deg,oklch(0.205 0.026 80 / .6),transparent 72%)}

/* ============================================================
   FRANCHISES
   ============================================================ */
.fr{margin-top:2.6rem}
.fr__bar{display:flex;align-items:center;justify-content:space-between;padding-bottom:.95rem;border-bottom:1px solid var(--line-2)}
.fr__idx{font-family:var(--ff-disp);font-size:.82rem;letter-spacing:.12em;color:var(--ink-4)}
.fr__tag{display:inline-flex;align-items:center;gap:.5em;font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3)}

.fr--live{
  border:1px solid var(--line-2);
  background:radial-gradient(130% 160% at 100% 0%, oklch(0.30 0.085 32 / .32), transparent 58%), linear-gradient(180deg, var(--bg-2), var(--bg));
  padding:clamp(1.8rem,4.5vw,3.8rem);margin-top:0;
}
.fr--live .fr__bar{border-bottom-color:oklch(0.40 0.10 32 / .4)}
.fr--live .fr__tag{color:var(--ember)}
.fr--live .fr__idx{color:oklch(0.64 0.10 33)}
.fr__body{margin-top:2.1rem;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(1.8rem,4.5vw,4.5rem);align-items:center}
.fr__head{display:flex;flex-direction:column;gap:1.2rem}
.fr__logo{width:min(100%,440px);height:auto}
.fr__sport{font-size:.86rem;letter-spacing:.06em;color:var(--ink-3);text-transform:uppercase;font-weight:500}
.fr__desc{font-size:1.06rem;color:var(--ink-2);line-height:1.6;max-width:44ch}
.fr__desc + .fr__link{margin-top:1.5rem}
.fr__link{display:inline-flex;align-items:center;gap:.5em;font-size:.94rem;font-weight:500;color:var(--ember);border-bottom:1px solid oklch(0.640 0.170 30 / .35);padding-bottom:.2rem;transition:border-color .3s,gap .3s}
.fr__link:hover{border-bottom-color:var(--ember);gap:.85em}

.fr-grid{margin-top:1.6rem;display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line-2);border:1px solid var(--line-2)}
.fr--pend{background:var(--bg);padding:clamp(1.6rem,3vw,2.3rem);margin-top:0;transition:background .4s}
.fr--pend:hover{background:var(--bg-2)}
.fr--pend .fr__name{font-family:var(--ff-disp);font-size:clamp(1.5rem,1.2rem + 1vw,1.95rem);font-weight:400;margin-top:1.6rem;color:var(--ink-2);letter-spacing:-.012em;line-height:1.1}
.fr--pend .fr__sport{font-size:.74rem;color:var(--ink-4);margin-top:.5rem}
.fr--pend .fr__desc{font-size:.9rem;color:var(--ink-3);margin-top:1.1rem;max-width:none}

/* ============================================================
   CONTACT
   ============================================================ */
.contact__inner{
  border:1px solid var(--line-2);padding:clamp(2.4rem,7vw,6rem);
  background:radial-gradient(110% 140% at 0% 0%, oklch(0.225 0.026 80 / .55), transparent 62%), var(--bg-2);
  position:relative;overflow:hidden;
}
.contact__inner::before{content:"";position:absolute;top:0;left:0;width:48px;height:48px;border-top:1px solid var(--brass-2);border-left:1px solid var(--brass-2);opacity:.6}
.contact h2{margin-top:1.7rem;font-size:clamp(2.1rem,1.4rem + 3.4vw,4.2rem);font-weight:340;line-height:1.04;font-variation-settings:"opsz" 110}
.contact .lede{margin-top:1.5rem}
.contact__act{margin-top:2.6rem}
.mailbtn{display:inline-flex;align-items:baseline;gap:1.1rem;flex-wrap:wrap;border:1px solid var(--line);border-radius:2px;padding:1.1rem 1.5rem;transition:border-color .3s,background .3s;cursor:pointer}
.mailbtn:hover{border-color:var(--brass);background:oklch(0.810 0.092 84 / .05)}
.mailbtn__label{font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-4)}
.mailbtn__addr{font-family:var(--ff-disp);font-size:clamp(1.1rem,.95rem + .7vw,1.5rem);color:var(--ink);letter-spacing:-.01em}
.mailbtn__copy{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--brass-2);border:1px solid var(--line);border-radius:999px;padding:.28rem .65rem;transition:all .25s}
.mailbtn:hover .mailbtn__copy{border-color:var(--brass-2);color:var(--brass)}
.mailbtn.is-copied .mailbtn__copy{background:var(--brass);color:var(--brass-ink);border-color:var(--brass)}

/* ============================================================
   FOOTER
   ============================================================ */
.foot{max-width:var(--maxw);margin:clamp(6rem,11vw,10rem) auto 0;padding:clamp(2.5rem,5vw,4.5rem) var(--pad) 2.6rem;border-top:1px solid var(--line-2)}
.foot__wordmark{
  display:block;font-family:var(--ff-disp);font-weight:300;
  font-size:clamp(3.5rem,2rem + 9vw,11rem);line-height:.85;letter-spacing:-.02em;
  color:var(--ink);opacity:.13;user-select:none;font-variation-settings:"opsz" 144;
  margin-bottom:clamp(2rem,4vw,3.5rem);
}
.foot__cols{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.6rem,4vw,3.5rem);padding-bottom:clamp(2.4rem,4vw,3.5rem);border-bottom:1px solid var(--line-2)}
.foot__col{display:flex;flex-direction:column;gap:.7rem}
.foot__col h4{font-family:var(--ff-ui);font-size:.7rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-4);margin-bottom:.5rem}
.foot__col a{color:var(--ink-2);font-size:.96rem;transition:color .25s}
.foot__col a:hover{color:var(--brass)}
.foot__muted{color:var(--ink-3);font-size:.96rem}
.foot__bot{display:flex;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;padding-top:1.7rem;font-size:.84rem;color:var(--ink-3)}
.foot__bot .foot__muted{font-size:.84rem}

/* ============================================================
   REVEAL
   ============================================================ */
.reveal{opacity:0;transform:translateY(20px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.reveal.in{opacity:1;transform:none}
.reveal.d1{transition-delay:.07s}.reveal.d2{transition-delay:.16s}.reveal.d3{transition-delay:.25s}
.index__list .ix.reveal{transition-delay:calc(var(--i) * .08s)}
.loop__node.reveal{transition-delay:calc(var(--i) * .07s)}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .reveal{opacity:1;transform:none}.dot--live,.dot--ember{animation:none}
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1000px){
  .hero{min-height:auto;padding-top:clamp(3rem,8vw,5rem)}
  .hero__glyph{font-size:clamp(14rem,55vw,28rem);opacity:.022;right:-2rem}
  .ix{grid-template-columns:2.6rem minmax(0,1fr) 6.5rem;grid-template-areas:"no name status" "no sport status"}
  .ix__no{grid-area:no;align-self:center}.ix__name{grid-area:name}.ix__sport{grid-area:sport;margin-top:.25rem}.ix__status{grid-area:status;align-self:center}
  .thesis__cols{grid-template-columns:1fr;gap:2rem;padding-top:2rem}
  .engine__intro{grid-template-columns:1fr;gap:1.4rem;align-items:start}
  .loop{grid-template-columns:1fr 1fr}
  .loop__node{border-right:1px solid var(--line-2);border-bottom:1px solid var(--line-2)}
  .loop__node:nth-child(2n){border-right:none}
  .loop__node::after{display:none}
  .loop__node:last-child::after{display:block;content:"↻";position:static;color:var(--brass);margin-top:.4rem}
  .fr__body{grid-template-columns:1fr;gap:1.8rem}
  .fr-grid{grid-template-columns:1fr}
  .foot__cols{grid-template-columns:1fr 1fr}
}
@media (max-width:760px){
  .nav{display:none}.nav-toggle{display:flex}
  section + section{margin-top:clamp(4.5rem,15vw,7rem)}
  .hero{min-height:auto}
  .hero__h1{font-size:clamp(2.8rem,10.5vw,4.4rem);letter-spacing:-.026em}
  .hero__glyph{font-size:min(80vw,20rem);opacity:.04}
  .hero__cue{display:none}
  .scale__line,.thesis__big{max-width:none;font-size:clamp(1.5rem,5.8vw,2.1rem);line-height:1.3}
  .engine__lead,.contact h2{font-size:clamp(1.65rem,6.6vw,2.4rem);max-width:none}
  .loop{grid-template-columns:1fr}
  .loop__node{border-right:none}.loop__node:nth-child(2n){border-right:none}
  .fr--live{padding:1.6rem}.fr__desc{max-width:none}
  .foot__cols{grid-template-columns:1fr;gap:1.8rem}
  .foot__bot{flex-direction:column;gap:.6rem}
  .index__head{font-size:.66rem}
  .ix{grid-template-columns:2rem minmax(0,1fr) auto;gap:.7rem}
  .ix__sport{font-size:.82rem}
}
