/* Superfan Health: all styles, grouped by section in page order.
   Two palettes share every rule: A = the logo palette (default), B = white and blue (only with data-variant="b"). */
:root{
  /* Variant A: logo palette */
  --ground:#122328;      /* Night Game */
  --ground-2:#0c191d;
  --ink:#F4F4EE;         /* Chalk */
  --ink-soft:#b9c4c1;
  --accent:#E2E44F;      /* Joy */
  --field:#00A478;       /* Home Field */
  --band:#F4F4EE;        /* light band */
  --band-ink:#122328;
  --band-soft:#4a5b5f;
  --rule:rgba(244,244,238,.16);
  --band-rule:rgba(18,35,40,.14);
  --film:#122328;        /* color the film fades into */
  --btn-ink:#122328;
  --display:"Archivo","Arial Narrow",system-ui,sans-serif;
  --body:"Figtree",system-ui,-apple-system,"Segoe UI",sans-serif;
  --gutter:clamp(16px,4vw,56px);
  --max:1320px;
  --section-y:clamp(72px,9vw,136px); /* vertical rhythm for every unpinned section */
  color-scheme:dark;
}
:root[data-variant="b"]{
  --ground:#FFFFFF;
  --ground-2:#F3F6FC;
  --ink:#0A1A3F;
  --ink-soft:#4b5878;
  --accent:#1F4BFF;
  --field:#1F4BFF;
  --band:#0A1A3F;
  --band-ink:#FFFFFF;
  --band-soft:#b8c2dc;
  --rule:rgba(10,26,63,.12);
  --band-rule:rgba(255,255,255,.16);
  --film:#0A1A3F;
  --btn-ink:#FFFFFF;
  color-scheme:light;
}
*{box-sizing:border-box}
[hidden]{display:none!important} /* keeps hidden elements hidden even when a class sets display */
html{scroll-behavior:smooth}
body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--body);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden;transition:background .4s,color .4s}
img,video{max-width:100%;display:block}
a{color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.wrap{max-width:var(--max);margin:0 auto;padding-left:max(var(--gutter),env(safe-area-inset-left,0px));padding-right:max(var(--gutter),env(safe-area-inset-right,0px))}

/* type scale */
.eyebrow,.cycle__kicker{font-family:var(--display);font-weight:700;font-stretch:115%;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent)}
.cycle__kicker{font-size:13px}
.display{font-family:var(--display);font-weight:800;font-stretch:112%;line-height:.95;letter-spacing:-.02em;text-wrap:balance;margin:0}
.h1{font-size:clamp(48px,9vw,148px)}
.h2{font-size:clamp(36px,5.6vw,84px)}
.h3{font-size:clamp(24px,2.6vw,36px);line-height:1.05}
.lede{font-size:clamp(18px,1.6vw,22px);line-height:1.5;max-width:40ch;color:var(--ink-soft);margin:0}
p{margin:0;max-width:62ch}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:.6em;font-family:var(--display);font-weight:700;font-stretch:110%;font-size:15px;letter-spacing:.02em;text-decoration:none;padding:15px 24px;border-radius:999px;border:1px solid transparent;cursor:pointer;transition:transform .2s,background .2s,color .2s}
.btn--solid{background:var(--accent);color:var(--btn-ink)}
.btn--ghost{border-color:currentColor;color:inherit;background:transparent}
.btn:hover{transform:translateY(-2px)}
.btn .arrow{transition:transform .2s}
.btn:hover .arrow{transform:translateX(4px)}
.on-film .btn--ghost{color:#fff}
/* phones: one 56px button height everywhere, 44px minimum for the small pill buttons */
@media (max-width:600px){
  .btn{min-height:56px;justify-content:center}
  .profile-btn,.lead__index button,.profile__step{min-height:44px}
}

/* nav */
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:60;background:var(--ground)}
.nav{position:fixed;top:env(safe-area-inset-top,0px);left:0;right:0;z-index:50;transition:background .35s,box-shadow .35s}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;height:76px}
.nav__logo{flex-shrink:0;display:flex}
.nav__logo img{height:20px;width:auto;max-width:none}
.nav__logo .on-light{display:none}
.nav__links{display:flex;gap:28px;list-style:none;margin:0;padding:0}
.nav__links a{text-decoration:none;font-weight:700;font-size:15px;color:#fff;opacity:.85}
.nav__links a:hover{opacity:1}
.nav .btn{padding:11px 18px;font-size:14px;white-space:nowrap;flex-shrink:0}
.nav.scrolled{background:var(--ground);box-shadow:0 1px 0 var(--rule)}
/* reading progress: a hairline along the bottom of the nav fills as the page scrolls */
.nav__progress{position:absolute;left:0;right:0;bottom:-1px;height:1px;pointer-events:none;transform-origin:left;transform:scaleX(0);background:var(--accent)}
.nav.scrolled .nav__links a{color:var(--ink)}
:root[data-variant="b"] .nav.scrolled .nav__logo .on-film{display:none}
:root[data-variant="b"] .nav.scrolled .nav__logo .on-light{display:block}
@media (max-width:900px){.nav__links{display:none}}
/* phones: keep the logo at its true proportions and the nav button on one compact line */
@media (max-width:600px){
  .nav .wrap{height:64px;gap:12px}
  .nav__logo img{height:14px}
  .nav .btn{padding:9px 14px;font-size:13px;letter-spacing:0;min-height:0}
  .nav .btn .arrow{display:none}
}
@media (max-width:380px){
  .nav__logo img{height:11px}
  .nav .btn{padding:8px 11px;font-size:12px}
}

/* film slots */
.film{position:absolute;inset:0;overflow:hidden;background:var(--film)}
.film video,.film .film__poster{position:absolute;inset:-12% 0;width:100%;height:124%;object-fit:cover;will-change:transform}
.film__poster{background-size:cover;background-position:center}
.film::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.25) 0%,rgba(0,0,0,.05) 35%,rgba(0,0,0,.55) 100%)}
.film.has-video .film__poster{opacity:0;transition:opacity .8s}
.film:not(.has-video) .film__poster.pending{background:
  radial-gradient(120% 80% at 70% 0%,rgba(255,255,255,.22),transparent 55%),
  radial-gradient(90% 70% at 20% 110%,color-mix(in srgb,var(--field) 40%,transparent),transparent 60%),
  var(--film)}
.on-film{position:relative;color:#fff}
.on-film .lede{color:rgba(255,255,255,.82)}

/* opening copy: lede and buttons */
.hero__row{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:28px}
.hero__ctas{display:flex;flex-wrap:wrap;gap:12px}
@media (max-width:600px){.hero__ctas{flex-direction:column;align-items:stretch;width:max-content;max-width:100%}}

/* sections */
section{position:relative}
.pad{padding-block:var(--section-y)}
.band{background:var(--band);color:var(--band-ink)}
.band .lede,.band .soft{color:var(--band-soft)}
.band .eyebrow{color:var(--band-ink);opacity:.7}
:root[data-variant="b"] .band .eyebrow{color:var(--band-soft);opacity:1}
.soft{color:var(--ink-soft)}

/* why: scroll-lit statement, the door, the two languages */
.statement{position:relative;height:180vh}
.statement__sticky{position:sticky;top:0;height:100svh;display:flex;align-items:center}
.statement__text{font-family:var(--display);font-weight:700;font-stretch:104%;font-size:clamp(30px,4.4vw,68px);line-height:1.12;letter-spacing:-.015em;max-width:22ch;margin:22px 0 0;text-wrap:pretty}
.statement__text .w{opacity:.16;transition:opacity .25s,color .25s}
.statement__text .w.lit{opacity:1}
.statement__text .w.hl.lit{color:var(--accent)}
/* door: a hairline draws down the center, 2025 counts up between it, then splits (20 | 25) to make room for the copy */
.door{position:relative;height:220vh}
.door__sticky{position:sticky;top:0;height:100svh;overflow:hidden}
.door__line{position:absolute;left:50%;top:0;width:1px;height:var(--line-h,40%);margin-left:-.5px;background:linear-gradient(180deg,transparent 0,var(--accent) 35%,var(--accent) 85%,transparent 100%);opacity:.55;transform-origin:top;transform:scaleX(.6) scaleY(var(--line-s,0));pointer-events:none}
/* the line ends in a small dot that breathes, always clear of the year and the headline */
.door__dot{position:absolute;left:50%;top:var(--line-h,40%);width:5px;height:5px;margin:-2.5px 0 0 -2.5px;border-radius:50%;background:var(--accent);opacity:0;transform:scale(.4);transition:opacity .4s ease,transform .4s cubic-bezier(.3,1.6,.5,1);pointer-events:none}
.door__dot.is-on{opacity:1;transform:none}
.door__dot.is-on::after{content:"";position:absolute;inset:-7px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--accent) 45%,transparent),transparent 70%);animation:doorBreathe 2.4s ease-in-out infinite}
@keyframes doorBreathe{0%,100%{transform:scale(.6);opacity:.2}50%{transform:scale(1.25);opacity:.9}}
.door__stage{position:absolute;inset:0;display:grid;place-items:center;padding-top:76px}
.door__year{grid-area:1/1;display:flex;font-family:var(--display);font-weight:900;font-stretch:100%;font-size:clamp(110px,13vw,230px);line-height:.8;letter-spacing:-.04em;font-variant-numeric:tabular-nums;color:transparent;-webkit-text-stroke:1.5px var(--ink-soft);transition:color .5s ease,-webkit-text-stroke-color .5s ease}
.door__year span{display:block;will-change:transform}
.door__year.is-set{color:var(--accent);-webkit-text-stroke-color:transparent}
.door__copy{grid-area:1/1;position:relative;z-index:1;width:min(520px,38vw);display:grid;gap:22px;justify-items:center;text-align:center}
.door__head{margin:0;font-size:clamp(40px,4.2vw,76px);line-height:.95;letter-spacing:-.03em}
.door__head .dw{display:inline-block;opacity:0;transform:translate3d(0,.35em,0);transition:opacity .5s ease,transform .6s cubic-bezier(.2,.7,.2,1)}
.door__head .dw.on{opacity:1;transform:none}
.door__lede{font-size:clamp(17px,1.35vw,21px);line-height:1.5;max-width:34ch;color:var(--ink-soft);opacity:0;transform:translate3d(0,16px,0);transition:opacity .6s ease,transform .6s ease}
.door__lede.on{opacity:1;transform:none}
/* phones and tablets: the halves part up and down instead, 20 above the copy and 25 below */
@media (max-width:900px){
  .door__stage{padding-top:64px}
  .door__year{font-size:min(23vw,150px)}
  .door__copy{width:min(100% - 2*var(--gutter),460px)}
  .door__head{font-size:clamp(34px,9vw,56px)}
  .door__lede{font-size:16px}
}
@media (prefers-reduced-motion:reduce){
  .door{height:auto}.door__sticky{position:relative;height:auto;padding-block:var(--section-y)}
  .door__line,.door__dot{display:none}
  .door__stage{position:relative;inset:auto;padding-top:0;gap:28px}
  .door__year,.door__copy{grid-area:auto}.door__year{color:var(--accent);-webkit-text-stroke-color:transparent}
  .door__head .dw,.door__lede{opacity:1;transform:none}
}
.langs{position:relative;height:230vh}
.langs__sticky{position:sticky;top:0;height:100svh;overflow:hidden;display:grid;grid-template-rows:auto 1fr;padding-top:110px}
.langs__head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,5vw,80px);align-items:end}
.langs__head p{color:var(--ink-soft);font-size:clamp(16px,1.3vw,19px)}
@media (max-width:900px){.langs__head{grid-template-columns:1fr}.langs__sticky{padding-top:96px}}
.langs__stage{position:relative;display:grid;align-content:center}
.langs__halves{position:absolute;inset:0;display:grid;grid-template-columns:1fr 1fr;pointer-events:none}
.langs__half{display:flex;align-items:center;justify-content:center;font-family:var(--display);font-weight:800;font-stretch:120%;font-size:clamp(18px,2vw,30px);letter-spacing:.24em;text-transform:uppercase;will-change:transform,opacity}
.langs__half--a{color:var(--accent)}
.langs__half--b{color:var(--field)}
:root[data-variant="b"] .langs__half--b{color:var(--ink-soft)}
.langs__verbs{list-style:none;margin:0;padding:0;display:grid;justify-items:center;gap:0;position:relative}
.langs__verbs li{font-family:var(--display);font-weight:900;font-stretch:125%;font-size:clamp(48px,11vw,180px);line-height:.92;letter-spacing:-.03em;text-transform:uppercase;color:transparent;-webkit-text-stroke:1.5px var(--rule);transition:color .5s,-webkit-text-stroke-color .5s,transform .6s;transform:translateY(16px)}
.langs__verbs li.on{color:var(--ink);-webkit-text-stroke-color:transparent;transform:none}
.langs__verbs li.on:last-child{color:var(--accent)}
/* phones: head and words read as one centered block; short screens (SE) get slightly smaller copy */
@media (max-width:600px){
  .langs__sticky{grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr);align-content:center;padding-top:64px}
  .langs__stage{margin-top:clamp(40px,7svh,64px);padding-block:12px}
  .langs__verbs li{font-size:min(48px,12vw)}
}
@media (max-width:600px) and (max-height:600px){
  .langs__sticky{padding-top:72px}
  .langs__head{gap:16px}
  .langs__head .h2{font-size:32px}
  .langs__head p{font-size:15px;line-height:1.5}
  .langs__stage{margin-top:28px}
}
@media (prefers-reduced-motion:reduce){
  .statement,.langs{height:auto}.statement__sticky,.langs__sticky{position:relative;height:auto;padding-block:var(--section-y)}
  .statement__text .w{opacity:1}.langs__halves{display:none}
  .langs__verbs li{color:var(--ink);transform:none;-webkit-text-stroke-color:transparent}
}


/* about: pinned two beats */
.about{position:relative;height:200vh}
.about__sticky{position:sticky;top:0;height:100svh;display:flex;align-items:center}
.about__grid{width:100%;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(32px,6vw,96px);align-items:center;padding-top:60px}
.about__left{display:grid;gap:24px;align-content:center}
.about__title{font-size:clamp(40px,5.6vw,96px)}
/* counters like 01 / 05 share one style */
.beats-marker,.lead__idx{font-family:var(--display);font-stretch:115%;font-weight:600;font-size:13px;letter-spacing:.14em;font-variant-numeric:tabular-nums}
.beats-marker{display:flex;align-items:center;gap:14px;margin-top:12px}
.beats-marker i{width:120px;height:2px;background:var(--band-rule);position:relative;overflow:hidden}
.beats-marker b{position:absolute;inset:0;background:var(--field);transform-origin:left;transform:scaleX(.5)}
:root[data-variant="b"] .beats-marker b{background:#fff}
.about__beats{position:relative;display:grid}
.beat{grid-area:1/1;display:grid;gap:20px;align-content:center;opacity:0;transform:translateY(40px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1);pointer-events:none}
.beat.is-on{opacity:1;transform:none;pointer-events:auto}
.beat.is-past{transform:translateY(-40px)}
.beat__lede{font-size:clamp(20px,2vw,30px);line-height:1.4;max-width:30ch}
.beat .h3{font-size:clamp(28px,2.6vw,42px)}
@media (max-width:900px){
  .about{height:auto}.about__sticky{position:relative;height:auto;padding-block:var(--section-y)}
  .about__grid{grid-template-columns:1fr;padding-top:0}.beats-marker{display:none}
  .about__beats{gap:56px}.beat{grid-area:auto;opacity:1;transform:none;pointer-events:auto}
}

/* leadership: studio portraits, sideways on scroll */
:root{--studio-a:#d9dad5;--studio-b:#c3c5bf;--studio-ink:#122328;--studio-soft:#3e4c50;--sil-a:#4a5254;--sil-b:#1d2427;--studio-name:#ffffff}
:root[data-variant="b"]{--studio-a:#e6eaf1;--studio-b:#cdd4e1;--studio-ink:#0A1A3F;--studio-soft:#46557a;--sil-a:#4b5a7c;--sil-b:#16244a}
.lead{position:relative;height:500vh;background:var(--studio-b)}
.lead__sticky{position:sticky;top:0;height:100svh;overflow:hidden;background:linear-gradient(180deg,var(--studio-a),var(--studio-b));color:var(--studio-ink)}
.lead__eyebrow{position:absolute;z-index:4;top:100px;left:max(var(--gutter),env(safe-area-inset-left,0px));color:var(--studio-ink)}
.lead__rail{display:flex;height:100%;will-change:transform}
.lead__panel{position:relative;flex:0 0 100vw;height:100%;overflow:hidden}
.lead__meta{position:absolute;z-index:3;top:140px;left:max(var(--gutter),env(safe-area-inset-left,0px));width:min(46ch,42vw);display:grid;gap:12px}
.lead__meta p{font-size:clamp(15px,1.1vw,17px);line-height:1.6;color:var(--studio-soft)}
/* bios show what fits: script sets the height on desktop (down to the name), phones show a set number of lines.
   .is-clamped fades the last line to signal there is more behind the More button. */
.lead__bio,.advisor__text{display:grid;gap:.75em;overflow:hidden}
.lead__bio{max-height:var(--bio-h,calc(1.6em*6))}
.lead__bio.is-clamped,.advisor__text.is-clamped{-webkit-mask-image:linear-gradient(180deg,#000 calc(100% - 2.2em),transparent);mask-image:linear-gradient(180deg,#000 calc(100% - 2.2em),transparent)}
.lead__idx{font-family:var(--display);font-stretch:115%;font-weight:600;font-size:13px;letter-spacing:.14em;font-variant-numeric:tabular-nums}
.lead__name{position:absolute;z-index:1;left:max(var(--gutter),env(safe-area-inset-left,0px));bottom:84px;margin:0;font-family:var(--display);font-weight:400;font-stretch:100%;font-size:clamp(64px,min(14vw,18vh),250px);line-height:.82;letter-spacing:-.045em;color:var(--studio-name);will-change:transform}
.lead__name span{display:block}
.lead__name span:last-child{padding-left:.04em}
.lead__figure{position:absolute;z-index:2;right:8vw;bottom:0;height:86%;width:auto;max-width:none;will-change:transform}
/* shorter laptop screens: a smaller name and portrait leave room for more of each bio */
@media (min-width:901px) and (max-height:860px){
  .lead__meta{top:128px;gap:10px}
  .lead__name{bottom:76px}
  .lead__figure{height:76%}
}
.lead__figure--photo{filter:drop-shadow(0 30px 40px rgba(0,0,0,.18))}
.lead__ph{position:absolute;z-index:3;right:calc(8vw + 12px);bottom:88px;font-size:11px;letter-spacing:.06em;color:rgba(255,255,255,.7);background:rgba(0,0,0,.3);padding:5px 9px;border-radius:4px}
.lead__index{position:absolute;z-index:4;left:0;right:0;bottom:0;display:flex;gap:4px;justify-content:center;flex-wrap:wrap;padding:14px max(var(--gutter),env(safe-area-inset-left,0px)) calc(14px + env(safe-area-inset-bottom,0px));background:linear-gradient(0deg,rgba(0,0,0,.18),transparent)}
.lead__index button{font:600 13px/1 var(--body);color:var(--studio-ink);background:rgba(255,255,255,.55);border:0;border-radius:999px;padding:10px 14px;cursor:pointer;transition:background .25s,color .25s}
.lead__index button:hover{background:rgba(255,255,255,.85)}
.lead__index button[aria-current="true"]{background:var(--studio-ink);color:var(--studio-a)}
@media (max-width:900px){
  .lead{height:auto}.lead__sticky{position:relative;height:auto}
  .lead__eyebrow{top:28px}
  .lead__rail{overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;transform:none!important}
  .lead__rail::-webkit-scrollbar{display:none}
  /* phone/tablet: name and portrait share a stage (portrait in front), bio sits underneath */
  .lead__panel{scroll-snap-align:start;height:auto;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto;align-content:start;padding-bottom:84px}
  .lead__name{grid-area:1/1;position:relative;z-index:1;left:auto;bottom:auto;align-self:start;padding:76px var(--gutter) 0;font-size:clamp(72px,21vw,150px);transform:none!important}
  .lead__figure{grid-area:1/1;position:relative;right:auto;bottom:auto;justify-self:end;align-self:end;height:auto;width:min(74%,360px);margin-top:clamp(120px,30vw,200px);margin-right:-2%;transform:none!important}
  .lead__ph{grid-area:1/1;position:relative;right:auto;bottom:auto;justify-self:end;align-self:end;margin:0 16px 16px 0;z-index:3}
  .lead__meta{grid-area:2/1;position:relative;top:auto;left:auto;width:auto;padding:28px var(--gutter) 0;opacity:1!important;border-top:1px solid rgba(18,35,40,.12)}
  .lead__bio{max-height:calc(1.6em*8)}
  .lead__figure--photo{filter:none}
  .lead__index{justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
  .lead__index button{flex:0 0 auto}
}
@media (prefers-reduced-motion:reduce){
  .lead{height:auto}.lead__sticky{position:relative;height:auto}
  .lead__rail{flex-direction:column;transform:none!important}
  .lead__panel{min-height:100svh}.lead__index{display:none}
  .beat{transition:none}
}

/* full profile: a slide-over with three tabs */
.profile-btn{justify-self:start;margin-top:6px;font:600 14px/1 var(--body);color:var(--studio-ink);background:transparent;border:1px solid currentColor;border-radius:999px;padding:11px 18px;cursor:pointer;transition:background .2s,color .2s}
.profile-btn:hover{background:var(--studio-ink);color:var(--studio-a)}
.profile{position:fixed;inset:0 0 0 auto;margin:0;height:100%;max-height:100%;width:min(620px,100vw);max-width:100vw;padding:0;border:0;background:var(--band);color:var(--band-ink);box-shadow:-30px 0 80px rgba(0,0,0,.25);transform:translateX(100%);transition:transform .45s cubic-bezier(.2,.7,.2,1),display .45s allow-discrete,overlay .45s allow-discrete}
.profile[open]{transform:none}
@starting-style{.profile[open]{transform:translateX(100%)}}
.profile::backdrop{background:rgba(8,14,16,.55);backdrop-filter:blur(3px)}
.profile__inner{height:100%;display:grid;grid-template-rows:auto auto 1fr auto;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
.profile__head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;padding:36px max(28px,env(safe-area-inset-right,0px)) 20px 32px}
.profile__who{display:grid;gap:10px;flex:1 1 auto;min-width:0}
.profile__photo{flex:0 0 auto;width:84px;height:105px;object-fit:cover;border-radius:6px}
@media (max-width:600px){.profile__photo{width:64px;height:80px}}
.profile__name{font-size:clamp(34px,4vw,52px)}
.profile__close{flex:0 0 auto;width:44px;height:44px;border-radius:50%;border:1px solid currentColor;background:transparent;color:inherit;font-size:24px;line-height:1;cursor:pointer}
.profile__tabs{display:flex;gap:6px;padding:0 32px;border-bottom:1px solid var(--band-rule);overflow-x:auto;scrollbar-width:none}
.profile__tabs button{font:600 14px/1 var(--body);color:inherit;opacity:.6;background:none;border:0;padding:14px 4px 16px;margin-right:18px;cursor:pointer;border-bottom:2px solid transparent;white-space:nowrap}
.profile__tabs button[aria-selected="true"]{opacity:1;border-bottom-color:var(--field)}
:root[data-variant="b"] .profile__tabs button[aria-selected="true"]{border-bottom-color:#fff}
.profile__tabs button[hidden]{display:none}
.profile__pane{overflow-y:auto;padding:28px 32px 40px;overscroll-behavior:contain}
.profile__pane p{font-size:17px;line-height:1.7;max-width:58ch}
.profile__pane p+p{margin-top:1em}
.profile__photo[hidden]{display:none}
.profile__list{list-style:none;margin:0;padding:0;display:grid;counter-reset:item}
.profile__list li{display:grid;grid-template-columns:28px minmax(0,1fr);gap:12px;padding:16px 0;border-top:1px solid var(--band-rule);font-size:16px;line-height:1.55}
.profile__list li:first-child{border-top:0;padding-top:0}
.profile__list li::before{content:counter(item,decimal-leading-zero);counter-increment:item;font-family:var(--display);font-stretch:115%;font-weight:700;font-size:12px;letter-spacing:.1em;padding-top:4px;opacity:.55}
.profile__list b{font-weight:600}
.profile__pane.swap{animation:paneIn .35s cubic-bezier(.2,.7,.2,1)}
@keyframes paneIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.profile__foot{display:flex;justify-content:space-between;gap:12px;padding:16px 32px;border-top:1px solid var(--band-rule)}
.profile__step{font:600 14px/1.2 var(--body);color:inherit;background:none;border:0;padding:8px 0;cursor:pointer;text-align:left}
.profile__step:last-child{text-align:right}
.profile__step:hover{text-decoration:underline;text-underline-offset:4px}
@media (max-width:600px){.profile__head{padding:28px 20px 16px}.profile__tabs,.profile__pane,.profile__foot{padding-left:20px;padding-right:20px}}
@media (prefers-reduced-motion:reduce){.profile,.profile__pane.swap{transition:none;animation:none}}

/* advisors */
.advisors{margin-top:0;display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(40px,5vw,72px)}
.advisors ul{list-style:none;margin:0;padding:0;display:grid}
.advisors li{position:relative;display:grid;grid-template-columns:clamp(150px,14vw,200px) minmax(0,4fr) minmax(0,7fr);gap:24px clamp(28px,3.5vw,56px);align-items:start;padding-block:clamp(40px,4.5vw,64px);border-top:1px solid var(--band-rule)}
.advisor__who{display:grid;align-content:start;gap:14px}
.advisor__name{margin:0;font-family:var(--display);font-weight:800;font-stretch:112%;font-size:clamp(36px,3.8vw,58px);line-height:.9;letter-spacing:-.03em}
.advisor__org{display:grid;gap:4px;margin:0}
.advisor__co{font-family:var(--display);font-weight:700;font-stretch:115%;font-size:13px;letter-spacing:.16em;text-transform:uppercase}
.advisor__title{font-size:14px;line-height:1.45;max-width:34ch}
.advisor__photo{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;border-radius:6px;background:var(--band-rule)}
.advisor__bio{min-width:0;display:grid;gap:16px;justify-items:start}
.advisor__text{max-height:calc(16px*1.7*7)}
.advisor__bio p{font-size:16px;line-height:1.7;max-width:64ch;margin:0}
.advisor__first{color:var(--band-ink);font-weight:500}
.advisors__head{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:24px 64px;align-items:end}
.advisors__head .eyebrow{grid-column:1/-1;margin:0}
.advisors__title{font-size:clamp(40px,5.4vw,80px);line-height:.92;letter-spacing:-.025em}
.advisors__intro{display:grid;gap:14px}
.advisors__intro p{margin:0;font-size:16px;line-height:1.65}
.advisors__intro .advisors__lead{font-family:var(--display);font-weight:600;font-stretch:104%;font-size:clamp(19px,1.6vw,23px);line-height:1.3;letter-spacing:-.01em;text-wrap:pretty}
.advisors__note{grid-column:1/-1;font-size:13px;line-height:1.55;max-width:80ch;margin:0;padding-top:22px;border-top:1px solid var(--band-rule)}
@media (max-width:900px){
  .advisors__head{grid-template-columns:1fr}
  /* photo beside the name, bio underneath */
  .advisors li{grid-template-columns:clamp(96px,24vw,140px) minmax(0,1fr);gap:20px}
  .advisor__who{align-self:center}
  .advisor__bio{grid-column:1/-1}
  .advisor__text{max-height:calc(16px*1.7*8)}
}

/* what we do: the loop draws itself as you scroll */
.cycle{position:relative;height:400vh}
.cycle__sticky{position:sticky;top:0;height:100svh;overflow:hidden;display:flex;align-items:center}
.cycle__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(24px,5vw,80px);align-items:center;width:100%;padding-top:72px}
.cycle__copy{display:grid;gap:28px;align-content:center}
.cycle__states{display:grid}
.cycle__state{grid-area:1/1;display:grid;gap:20px;align-content:start;opacity:0;transform:translate3d(0,24px,0);transition:opacity .5s ease,transform .6s cubic-bezier(.2,.7,.2,1);pointer-events:none}
.cycle__state.is-on{opacity:1;transform:none;pointer-events:auto}
.cycle__state.is-past{transform:translate3d(0,-24px,0)}
.cycle__state .h2{max-width:16ch}
.cycle__state .lede{max-width:46ch}
.cycle__state .btn{justify-self:start}
@media (max-width:600px){.cycle__state .btn{max-width:100%;white-space:nowrap;font-size:14px;font-stretch:100%;padding-inline:20px;letter-spacing:0}}
@media (max-width:380px){.cycle__state .btn{font-size:12.5px;padding-inline:16px}}
.cycle__state p.big{font-size:clamp(22px,2.2vw,30px);line-height:1.4;max-width:30ch}
.cycle__art{display:grid;place-items:center}
.cycle__svg{width:min(100%,74svh,640px);height:auto;overflow:visible}
.cycle__track{fill:none;stroke:var(--rule);stroke-width:1}
.cycle__arc{fill:none;stroke:var(--accent);stroke-width:1.5;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1}
.cycle__lab{font-family:var(--display);font-weight:700;font-stretch:112%;font-size:12.5px;letter-spacing:.16em;text-transform:uppercase;fill:var(--ink-soft);opacity:0;transition:opacity .5s ease}
.cycle__lab.is-on{opacity:1}
#lab1{font-size:12px;letter-spacing:.1em}
.cycle__node circle{fill:var(--ground);stroke:var(--rule);stroke-width:1;transition:fill .4s ease,stroke .4s ease}
.cycle__num{font-family:var(--display);font-weight:800;font-stretch:120%;font-size:20px;fill:var(--ink-soft);transition:fill .4s ease}
.cycle__name{font-family:var(--display);font-weight:700;font-stretch:110%;font-size:15px;letter-spacing:.04em;fill:var(--ink);transition:opacity .4s ease,fill .4s ease}
/* each circle is a button: click or press Enter to bring up its content */
.cycle__node{cursor:pointer;outline:none}
.cycle__node circle{transition:fill .4s ease,stroke .4s ease,stroke-width .2s ease}
.cycle__node:hover circle,.cycle__node:focus-visible circle{stroke:var(--accent);stroke-width:2}
.cycle__node:focus-visible .cycle__name{fill:var(--accent)}
.cycle__node.is-lit circle{stroke:var(--accent)}
.cycle__node.is-lit .cycle__num,.cycle__node.is-lit .cycle__name{fill:var(--ink);opacity:1}
.cycle__node.is-on circle{fill:var(--accent);stroke:var(--accent)}
.cycle__node.is-on .cycle__num{fill:var(--btn-ink)}
.cycle__token{fill:var(--accent);opacity:0;transition:opacity .3s ease}
.cycle__token.is-on{opacity:1}
.cycle__count{font-family:var(--display);font-weight:900;font-stretch:125%;font-size:64px;fill:none;stroke:var(--rule);stroke-width:1.2;transition:opacity .4s ease}
.cycle__core{opacity:0;transform-origin:300px 300px;transform:scale(.7);transition:opacity .6s ease,transform .8s cubic-bezier(.2,.7,.2,1)}
.cycle__core.is-on{opacity:1;transform:none}
.cycle__msg{font-family:var(--display);font-weight:800;font-stretch:112%;font-size:36px;letter-spacing:-.02em;fill:var(--ink)}
.cycle__msg tspan:last-child{fill:var(--accent)}
:root[data-variant="b"] .cycle__node.is-on .cycle__num{fill:#fff}
.phi{display:flex;gap:12px;align-items:flex-start;font-size:15px;line-height:1.5;color:var(--ink-soft);max-width:44ch;margin:8px 0 0;padding-top:20px;border-top:1px solid var(--rule)}
.phi svg{flex:0 0 auto;margin-top:3px;color:var(--accent)}
@media (max-width:900px){
  .cycle{height:auto}
  .cycle__sticky{position:relative;height:auto;display:block;padding-block:var(--section-y) calc(var(--section-y)/2)}
  .cycle__grid{grid-template-columns:1fr;padding-top:0;gap:40px}
  .cycle__copy,.cycle__states{display:contents}
  .cycle__copy>.eyebrow{order:0;margin-bottom:-20px}
  .cycle__state:first-child{order:1}
  .cycle__art{order:2}
  .cycle__state{order:3}
  .cycle__svg{width:min(100%,420px)}
  .cycle__state{grid-area:auto;opacity:1;transform:none;pointer-events:auto;padding-top:32px;border-top:1px solid var(--rule)}
  .cycle__state:first-child,.cycle__state:nth-child(2){border-top:0;padding-top:0}
}
@media (prefers-reduced-motion:reduce){
  .cycle{height:auto}.cycle__sticky{position:relative;height:auto;display:block;padding-block:var(--section-y) calc(var(--section-y)/2)}
  .cycle__states{gap:40px}.cycle__state{grid-area:auto;opacity:1;transform:none;pointer-events:auto}
}

/* AI-first. Default (phones, reduced motion, no script): a Chalk intro, then a night-game panel with the three stages
   stacked. With .is-3d (desktop, set by script) the whole section is the lit field: the headline sits on the grid as
   part 0, then a camera moves through the three cards standing on it and pulls back as the loop closes.
   data-stage="light" on the section swaps the night field for a Chalk one. */
.ai{--st:var(--film);--st-2:#0b171b;--st-ink:#F4F4EE;--st-soft:rgba(244,244,238,.64);--st-rule:rgba(244,244,238,.10);--st-rule-2:rgba(244,244,238,.22);
  --hi:var(--accent);--line:var(--field);--glass:rgba(244,244,238,.055);
  position:relative;background:var(--band);color:var(--band-ink)}
:root[data-variant="b"] .ai{--st-2:#061131;--st-ink:#fff;--st-soft:rgba(255,255,255,.66);--st-rule:rgba(255,255,255,.10);--st-rule-2:rgba(255,255,255,.24);--hi:#c9d4ff;--line:#6f8cff;--glass:rgba(255,255,255,.06)}
.ai__sticky{padding-block:var(--section-y)}
.ai__intro{display:grid;gap:22px}
.ai__title{font-size:clamp(40px,6.4vw,104px);line-height:.92;max-width:13ch}
.ai__line{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}
.ai__line>span{display:block}
.js .ai__line>span{transform:translate3d(0,105%,0);transition:transform 1s cubic-bezier(.2,.75,.15,1)}
.js .ai__line+.ai__line>span{transition-delay:.12s}
.js .ai__lede{opacity:0;transform:translate3d(0,18px,0);transition:opacity .9s ease .3s,transform .9s cubic-bezier(.2,.75,.15,1) .3s}
.ai.is-in .ai__line>span,.ai.is-in .ai__lede{transform:none;opacity:1}
.ai .ai__intro .eyebrow{color:var(--band-ink);opacity:.7}
.ai__hl{color:var(--field)}
:root[data-variant="b"] .ai__hl{color:var(--accent)}
:root[data-variant="b"] .ai{background:var(--ground-2);color:var(--ink)}
:root[data-variant="b"] .ai .ai__intro .eyebrow,:root[data-variant="b"] .ai__lede{color:var(--ink-soft);opacity:1}
.ai__lede{max-width:50ch;font-size:clamp(17px,1.35vw,20px);color:var(--band-soft)}

.ai__stage{position:relative;margin:clamp(40px,6vw,72px) max(var(--gutter),calc((100% - var(--max))/2 + var(--gutter))) 0;border-radius:24px;overflow:hidden;color:var(--st-ink);
  background:radial-gradient(70% 55% at 50% -8%,color-mix(in srgb,var(--hi) 16%,transparent),transparent 70%),radial-gradient(90% 70% at 50% 110%,color-mix(in srgb,var(--line) 18%,transparent),transparent 70%),linear-gradient(180deg,var(--st),var(--st-2));
  padding:28px clamp(16px,4vw,40px) 32px;display:grid;gap:20px}
.ai__world,.ai__copy,.ai__rail{display:none}
.ai__plat{order:-1;justify-self:start;display:inline-flex;align-items:center;gap:12px;padding:10px 18px;border-radius:999px;border:1px solid var(--st-rule-2);font-family:var(--display);font-weight:700;font-stretch:112%;font-size:12px;letter-spacing:.16em;text-transform:uppercase}
.ai__plat i{width:7px;height:7px;border-radius:50%;background:var(--hi);box-shadow:0 0 12px var(--hi)}
.ai__plat i:last-child{display:none}
.ai__cards{list-style:none;margin:0;padding:0;display:grid;gap:14px}

/* the card: dark glass with a lit top edge */
.ai__card{position:relative;display:grid;gap:16px;align-content:start;padding:22px 22px 24px;border-radius:20px;
  background:linear-gradient(165deg,rgba(255,255,255,.09),rgba(255,255,255,.015) 45%),var(--glass);
  border:1px solid var(--st-rule-2);box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 30px 60px -30px rgba(0,0,0,.6);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);transition:border-color .5s ease,box-shadow .5s ease}
.ai__card::before{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1px;background:linear-gradient(160deg,var(--hi),transparent 38%,transparent 70%,var(--line));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity .5s ease;pointer-events:none}
.ai__card.is-on::before,.ai__card.is-hit::before{opacity:1}
.ai__card.is-on{box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 40px 90px -30px rgba(0,0,0,.75),0 0 80px -20px color-mix(in srgb,var(--line) 55%,transparent)}
.ai__card.is-hit{box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 0 60px -10px color-mix(in srgb,var(--hi) 55%,transparent)}
.ai__num{font-family:var(--display);font-weight:900;font-stretch:125%;font-size:clamp(72px,20vw,120px);line-height:.8;letter-spacing:-.04em;color:transparent;-webkit-text-stroke:1.5px var(--st-rule-2);transition:color .6s ease,-webkit-text-stroke-color .6s ease}
.ai__card.is-on .ai__num,.ai__card.is-hit .ai__num{color:var(--hi);-webkit-text-stroke-color:transparent}
.ai__name{margin:0;font-family:var(--display);font-weight:800;font-stretch:112%;font-size:clamp(28px,2.6vw,40px);line-height:.95;letter-spacing:-.02em}
.ai__desc{margin:0;font-family:var(--display);font-weight:700;font-stretch:104%;font-size:clamp(22px,5.6vw,30px);line-height:1.15;letter-spacing:-.01em}

/* copy builds: lines rise out of a mask (.ai__ln > span), words light in turn (.ai__w); both are switched by scroll */
.ai__ln{display:block;overflow:hidden;padding-bottom:.1em;margin-bottom:-.1em}
.ai__ln>span{display:block;transform:translate3d(0,108%,0);transition:transform .8s cubic-bezier(.2,.75,.15,1)}
.ai__ln.on>span{transform:none}
.ai em{font-style:normal;color:var(--hi)}
.ai__dim{color:var(--st-soft)}
.ai__w{opacity:.18;transition:opacity .35s ease}
.ai__w.on{opacity:1}

/* the closing line: the loop's caption, and the headline coming back */
.ai__score{display:grid;gap:14px;justify-items:start;padding-top:10px}
.ai__close{margin:0;font-family:var(--display);font-weight:800;font-stretch:110%;font-size:clamp(26px,7vw,40px);line-height:1;letter-spacing:-.02em}
.ai__close-hl{color:var(--hi)}
.ai__ring{width:34px;height:34px;overflow:visible}
.ai__ring circle{fill:none;stroke:var(--st-rule-2);stroke-dasharray:3 4}
.ai__ring .t{fill:var(--hi);stroke:none;transform-origin:20px 20px;animation:aiSpin 3.2s linear infinite}
@keyframes aiSpin{to{transform:rotate(360deg)}}

@media (min-width:640px) and (max-width:900px){.ai__cards{grid-template-columns:repeat(2,minmax(0,1fr))}.ai__card:last-child{grid-column:1/-1}}

/* ---------- desktop: the pinned scene ---------- */
.ai.is-3d{height:620vh}
.ai.is-3d .ai__sticky{position:sticky;top:0;height:100svh;overflow:hidden;padding:0}
.ai.is-3d{background:var(--st);color:var(--st-ink)}
.ai.is-3d .ai__intro{position:absolute;inset:0;z-index:2;align-content:center;padding-top:76px;pointer-events:none;will-change:transform,opacity}
.ai.is-3d .ai__intro>*{max-width:min(40vw,620px)}
.ai.is-3d .ai__intro .eyebrow{color:var(--hi);opacity:1}
.ai.is-3d .ai__title{color:var(--st-ink)}
.ai.is-3d .ai__hl{color:var(--hi)}
.ai.is-3d .ai__lede{color:var(--st-soft)}
.ai.is-3d .ai__title{font-size:clamp(44px,min(5.2vw,9.4vh),96px)}
.ai.is-3d .ai__stage{position:absolute;inset:0;margin:0;padding:0;border-radius:0;display:block}
.ai.is-3d .ai__plat{display:none}
.ai.is-3d .ai__world{display:block;position:absolute;inset:0;perspective:1100px;perspective-origin:50% 40%;opacity:var(--world,1)}
.ai.is-3d .ai__scene{position:absolute;left:50%;top:50%;width:0;height:0;transform-style:preserve-3d;will-change:transform}
.ai__floor{position:absolute;left:-2000px;top:-2000px;width:4000px;height:4000px;transform-style:preserve-3d}
.ai__grid{position:absolute;inset:0;background-image:linear-gradient(var(--grid-c,rgba(244,244,238,.16)) 2px,transparent 2px),linear-gradient(90deg,var(--grid-c,rgba(244,244,238,.16)) 2px,transparent 2px);background-size:140px 140px;background-position:center;
  -webkit-mask-image:radial-gradient(closest-side,#000 18%,transparent 92%);mask-image:radial-gradient(closest-side,#000 18%,transparent 92%)}
.ai__sweep{position:absolute;left:0;right:0;top:0;height:900px;margin-top:-450px;background:radial-gradient(50% 50% at 50% 50%,color-mix(in srgb,var(--line) 40%,transparent),transparent 70%);opacity:0}
.ai__pool{position:absolute;width:var(--cw);height:var(--cw);margin:calc(var(--cw)/-2) 0 0 calc(var(--cw)/-2);border-radius:50%;background:radial-gradient(closest-side,color-mix(in srgb,var(--line) 55%,transparent),transparent);opacity:0;transition:opacity .6s ease}
.ai__lane{position:absolute;width:2px;margin-left:-1px;height:1500px;background:repeating-linear-gradient(180deg,var(--line) 0 14px,transparent 14px 46px);opacity:0;
  -webkit-mask-image:linear-gradient(180deg,#000,transparent);mask-image:linear-gradient(180deg,#000,transparent);animation:aiLane 1.6s linear infinite}
@keyframes aiLane{to{background-position:0 -46px}}
.ai__orbit{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.ai__orbit path{fill:none}
.ai__orbit-base{stroke:var(--st-rule-2);stroke-width:2;stroke-dasharray:10 14}
.ai__orbit-line{stroke:var(--hi);stroke-width:4px;transition:stroke-width .6s ease;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;filter:drop-shadow(0 0 10px var(--hi))}
.ai__orbit-token{fill:var(--st-ink);opacity:0;r:14px;filter:drop-shadow(0 0 12px var(--hi)) drop-shadow(0 0 4px var(--hi))}
.ai.is-done .ai__orbit-line{stroke-width:5px}
/* once the loop has closed, all three breathe softly together: the cue that this beat is done */
.ai.is-3d.is-done .ai__card{animation:aiDone 2.8s ease-in-out infinite}
@keyframes aiDone{0%,100%{box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 0 40px -14px color-mix(in srgb,var(--hi) 40%,transparent)}50%{box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 0 70px -8px color-mix(in srgb,var(--hi) 60%,transparent)}}
.ai__beam{position:absolute;left:0;top:0;width:var(--cw);height:calc(var(--ch)*1.3);margin-left:calc(var(--cw)/-2);transform-origin:50% 100%;
  background:radial-gradient(50% 100% at 50% 100%,color-mix(in srgb,var(--line) 42%,transparent),transparent 70%);opacity:0}
.ai__beam::after{content:"";position:absolute;left:50%;bottom:0;width:2px;height:100%;margin-left:-1px;background:linear-gradient(0deg,var(--hi),transparent 85%)}
.ai.is-3d .ai__cards{display:block;position:absolute;inset:0;pointer-events:none;perspective:1100px;perspective-origin:50% 40%}
.ai.is-3d .ai__card{position:absolute;left:50%;top:50%;width:var(--cw);height:var(--ch);margin:calc(var(--ch)/-2) 0 0 calc(var(--cw)/-2);padding:28px;gap:0;grid-template-rows:1fr auto;align-content:stretch;opacity:0;will-change:transform,opacity}
.ai.is-3d .ai__num{font-size:calc(var(--cw)*.4);place-self:center;text-align:center;padding-bottom:4%}
.ai.is-3d .ai__name{font-size:calc(var(--cw)*.118)}
.ai.is-3d .ai__desc{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ai.is-3d .ai__plat{justify-self:stretch;width:auto;position:absolute;left:var(--px,0);right:var(--px,0);bottom:var(--pb,40px);height:var(--ph,72px);padding:0 clamp(20px,2.4vw,32px);justify-content:space-between;border:0;border-radius:0;font-size:clamp(18px,1.7vw,26px);letter-spacing:-.005em;text-transform:none;font-weight:800;opacity:var(--plat-o,1);transform-origin:50% 50%;will-change:transform}
.ai.is-3d .ai__plat i:last-child{display:block}
.ai.is-3d .ai__copy{display:grid;position:absolute;left:max(var(--gutter),calc((100% - var(--max))/2 + var(--gutter)));top:50%;width:min(40vw,620px);transform:translateY(-50%)}
.ai__copy>div{grid-area:1/1;display:grid;gap:22px;align-content:center;opacity:0;transition:opacity .45s ease}
.ai__copy>div.is-on{opacity:1}
.ai__kick{font-family:var(--display);font-weight:700;font-stretch:115%;font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--hi)}
.ai__big{margin:0;font-family:var(--display);font-weight:800;font-stretch:108%;font-size:clamp(36px,min(4.2vw,7.4vh),68px);line-height:1;letter-spacing:-.025em;color:var(--st-ink)}
.ai.is-3d .ai__score{position:absolute;left:0;right:0;top:calc(72px + 8vh);justify-items:center;text-align:center;padding:0;pointer-events:none}
.ai.is-3d .ai__ring{display:none}
.ai.is-3d .ai__close{font-size:clamp(32px,min(3.8vw,6.6vh),64px);line-height:1}
.ai.is-3d .ai__rail{display:flex;position:absolute;left:0;right:0;bottom:28px;justify-content:center;gap:6px;opacity:0;transition:opacity .5s ease;pointer-events:none}
.ai.is-3d .ai__rail.is-on{opacity:1;pointer-events:auto}
.ai__rail button{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border-radius:999px;border:1px solid var(--st-rule);background:rgba(0,0,0,.25);color:var(--st-soft);font:600 13px/1 var(--body);cursor:pointer;transition:color .3s,border-color .3s,background .3s;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.ai__rail button span{font-family:var(--display);font-weight:800;font-stretch:115%;font-size:11px;letter-spacing:.1em;color:inherit;opacity:.7}
.ai__rail button:hover{color:var(--st-ink);border-color:var(--st-rule-2)}
.ai__rail button[aria-current="true"]{color:var(--st);background:var(--hi);border-color:var(--hi)}
@media (max-height:760px){.ai.is-3d .ai__card{padding:20px}}
/* Chalk field: dark ink, Home Field green for the lit parts (Joy is too faint on white), solid white cards */
.ai[data-stage="light"].is-3d{--st:#F4F4EE;--st-2:#e6e8e1;--st-ink:#122328;--st-soft:rgba(18,35,40,.66);--st-rule:rgba(18,35,40,.12);--st-rule-2:rgba(18,35,40,.24);
  --hi:var(--field);--line:var(--field);--glass:#fff;--grid-c:rgba(18,35,40,.13)}
.ai[data-stage="light"].is-3d .ai__card{background:linear-gradient(165deg,#fff,#f7f8f4);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:0 1px 0 rgba(255,255,255,.9) inset,0 30px 60px -30px rgba(18,35,40,.35)}
.ai[data-stage="light"].is-3d .ai__card.is-on{box-shadow:0 40px 90px -30px rgba(18,35,40,.45),0 0 70px -20px color-mix(in srgb,var(--field) 45%,transparent)}
.ai[data-stage="light"].is-3d .ai__card.is-hit{box-shadow:0 30px 60px -30px rgba(18,35,40,.35),0 0 50px -12px color-mix(in srgb,var(--field) 50%,transparent)}
.ai[data-stage="light"].is-3d .ai__orbit-line{filter:none}
.ai[data-stage="light"].is-3d .ai__orbit-token{fill:var(--field);filter:none}
.ai[data-stage="light"].is-3d .ai__beam::after{background:linear-gradient(0deg,var(--field),transparent 85%)}
.ai[data-stage="light"].is-3d .ai__rail button{background:rgba(255,255,255,.75)}
.ai[data-stage="light"].is-3d .ai__rail button[aria-current="true"]{color:#fff;background:var(--field);border-color:var(--field)}
.ai[data-stage="light"].is-3d .ai__stage{background:radial-gradient(70% 55% at 50% -8%,color-mix(in srgb,var(--field) 8%,transparent),transparent 70%),radial-gradient(90% 70% at 50% 110%,color-mix(in srgb,var(--field) 10%,transparent),transparent 70%),linear-gradient(180deg,var(--st),var(--st-2))}
@media (prefers-reduced-motion:reduce){.js .ai__line>span,.js .ai__lede,.ai__ln>span{transform:none;opacity:1;transition:none}.ai__w{opacity:1}.ai__ring .t,.ai__lane{animation:none}}

/* values: pinned; each name fills in turn and its sentence swaps in below the list */
.vals{position:relative;height:340vh}
.vals__sticky{position:sticky;top:0;height:100svh;display:flex;align-items:center}
.vals__grid{width:100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(32px,6vw,96px);align-items:center;padding-top:60px}
.vals__left{display:grid;gap:24px;align-content:center}
.vals__title{font-size:clamp(38px,4.6vw,80px)}
.values{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:minmax(0,1fr)}
.value{display:contents}
.value h3{margin:0;font-size:clamp(40px,4.8vw,84px);line-height:1.02;letter-spacing:-.02em;color:transparent;-webkit-text-stroke:1.5px var(--ink-soft);opacity:.55;transition:color .45s ease,-webkit-text-stroke-color .45s ease,opacity .45s ease,transform .5s cubic-bezier(.2,.7,.2,1)}
.value.is-past h3{opacity:.35}
.value.is-on h3{color:var(--ink);-webkit-text-stroke-color:transparent;opacity:1;transform:translateX(14px)}
.value:nth-child(4).is-on h3{color:var(--accent)}
.value p{grid-row:6;grid-column:1;margin:28px 0 0;padding-top:22px;border-top:1px solid var(--rule);max-width:44ch;font-size:clamp(17px,1.4vw,21px);line-height:1.5;color:var(--ink-soft);opacity:0;transform:translate3d(0,14px,0);transition:opacity .45s ease,transform .5s ease;pointer-events:none}
.value.is-on p{opacity:1;transform:none}
@media (max-width:900px),(prefers-reduced-motion:reduce){
  .vals{height:auto}.vals__sticky{position:relative;height:auto;display:block;padding-block:var(--section-y)}
  .vals__grid{grid-template-columns:1fr;padding-top:0}.vals__left .beats-marker{display:none}
  .values{display:block;border-bottom:1px solid var(--rule)}
  .value{display:block;padding-block:22px;border-top:1px solid var(--rule)}
  .value h3{color:var(--ink);-webkit-text-stroke-color:transparent;opacity:1;transform:none;font-size:clamp(36px,10vw,64px)}
  .value:nth-child(4) h3{color:var(--accent)}
  .value p{margin:10px 0 0;padding:0;border:0;opacity:1;transform:none}
}

/* banner */
.banner{position:relative;min-height:86svh;display:flex;align-items:center;background:var(--accent);color:var(--btn-ink)}
.banner .wrap{width:100%;display:grid;gap:clamp(28px,4vw,48px);justify-items:start;padding-block:clamp(88px,10vw,140px)}
.banner__title{margin:0;font-size:clamp(60px,11vw,200px);line-height:.9;letter-spacing:-.035em;max-width:9ch}
.banner__title .bw{opacity:.18;transition:opacity .35s ease}
.banner__title .bw.lit{opacity:1}
.banner__btn{background:var(--btn-ink);color:var(--accent)}
.banner__btn:hover{filter:brightness(1.15)}
@media (prefers-reduced-motion:reduce){.banner__title .bw{opacity:1}}

/* contact */
.contact{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(40px,7vw,120px)}
@media (max-width:900px){.contact{grid-template-columns:1fr}}
.brief{margin-top:40px;padding-top:28px;border-top:1px solid var(--rule);display:grid;gap:16px}
.inline-form{display:flex;flex-wrap:wrap;gap:10px}
.inline-form .field{flex:1 1 220px}
label{display:block;font-size:13px;font-weight:600;margin-bottom:6px;color:var(--ink-soft)}
input,textarea{width:100%;font:inherit;font-size:16px;color:var(--ink);background:transparent;border:0;border-bottom:1.5px solid var(--rule);padding:12px 2px;border-radius:0;transition:border-color .2s}
input:focus,textarea:focus{outline:none;border-color:var(--accent)}
textarea{min-height:130px;resize:vertical}
.form{display:grid;gap:22px}
.form__row{display:grid;grid-template-columns:1fr 1fr;gap:22px}
@media (max-width:600px){.form__row{grid-template-columns:1fr}.inline-form .btn,.form__foot .btn{min-width:140px}}
.form__foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px}
.note{font-size:14px;color:var(--ink-soft)}
label .opt{font-weight:400;opacity:.75}
.status{font-size:14px;color:var(--accent);min-height:1.4em}
.status.is-error{color:#ff9b8a}
/* spam trap: off-screen field that people never see or fill, but bots do */
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form button[disabled]{opacity:.6;cursor:progress;transform:none}

/* footer */
.foot{position:relative;display:flex;align-items:flex-end;overflow:hidden;border-top:1px solid var(--rule);background:var(--ground);color:var(--ink)}
.foot .wrap{position:relative;width:100%;display:grid;gap:clamp(48px,7vw,96px);padding-block:clamp(64px,7vw,104px) 40px}
.foot .tag{margin:0;font-size:clamp(40px,11.4vw,228px);line-height:.88;letter-spacing:-.03em;font-stretch:var(--tag-wdth,100%);white-space:nowrap}
.foot .tag span{display:block}
.foot .tag span:last-child{color:var(--accent)}
.foot__bar{display:flex;flex-wrap:wrap;gap:24px;align-items:center;justify-content:space-between;padding-top:28px;border-top:1px solid var(--rule);font-size:14px}
.foot__bar img{height:22px;width:auto}
.foot__bar ul{display:flex;flex-wrap:wrap;gap:24px;list-style:none;margin:0;padding:0}
.foot__bar a{text-decoration:none;opacity:.85}
@media (max-width:600px){
  .foot .wrap{padding-bottom:calc(104px + env(safe-area-inset-bottom,0px))}
  .foot__bar{flex-direction:column;align-items:flex-start;gap:22px}
  .foot__bar img{height:auto;width:100%;max-width:360px}
  .foot__bar ul{gap:14px 22px}
}

/* reveal: visible at rest, animates only when JS marks it */
.js .reveal{opacity:0;transform:translateY(28px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1)}
.js .reveal.in{opacity:1;transform:none}

/* opening: the film plays inside the wordmark */
.intro{position:relative;height:260vh;background:var(--ground);--logo-mask:url(../assets/logo-mask.png)}
.intro .h1 span{display:block}
/* the headline also scales with screen height, so on short laptop screens it never rises under the nav */
.intro .h1{font-size:clamp(48px,min(9vw,13.5svh),148px)}
.intro__sticky{position:sticky;top:0;height:100svh;overflow:hidden}
.intro__full{opacity:0}
.intro__letters{position:absolute;inset:0;background:var(--film);
  -webkit-mask:var(--logo-mask) center/min(86vw,1150px) auto no-repeat;mask:var(--logo-mask) center/min(86vw,1150px) auto no-repeat;will-change:mask-size,-webkit-mask-size}
.intro__letters video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(1.25) contrast(1.05)}
/* a white wash inside the letters lifts the wordmark off the dark ground; the film still shows through it */
.intro__letters::after{content:"";position:absolute;inset:0;background:#fff;opacity:var(--wash,.42);pointer-events:none}
.intro__content{position:absolute;left:0;right:0;bottom:0;z-index:3;display:grid;gap:24px;padding-bottom:56px;opacity:0;transform:translateY(30px);pointer-events:none}
.intro__content.live{pointer-events:auto}
.intro__cue{position:absolute;left:50%;bottom:calc(28px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);display:grid;justify-items:center;gap:10px;font:600 11px/1 var(--display);font-stretch:115%;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft)}
.intro__cue i{width:1.5px;height:44px;background:linear-gradient(var(--accent),transparent);animation:cue 1.8s ease-in-out infinite}
@keyframes cue{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
.nav .nav__logo{transition:opacity .4s}
.nav.intro-on .nav__logo{opacity:0;pointer-events:none}
.nav.intro-on .nav__links a{color:var(--ink)}
@media (prefers-reduced-motion:reduce){
  .intro{height:auto}.intro__sticky{position:relative;height:100svh}
  .intro__full{opacity:1}.intro__letters,.intro__cue{display:none}
  .intro__content{opacity:1;transform:none;pointer-events:auto}
  .intro__cue i{animation:none}
  html{scroll-behavior:auto}
  .js .reveal{opacity:1;transform:none;transition:none}
  .film video,.film .film__poster{transform:none!important}
  .btn,.value h3{transition:none}
}
