/* self-hosted fonts — no third-party requests */
@font-face{font-family:'Archivo';font-style:normal;font-weight:400;font-display:swap;
  src:url('../fonts/archivo-latin-400-normal.woff2') format('woff2')}
@font-face{font-family:'Archivo';font-style:normal;font-weight:500;font-display:swap;
  src:url('../fonts/archivo-latin-500-normal.woff2') format('woff2')}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;
  src:url('../fonts/jetbrains-mono-latin-400-normal.woff2') format('woff2')}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;
  src:url('../fonts/jetbrains-mono-latin-500-normal.woff2') format('woff2')}


/* ============ MEASURED SYSTEM (sharplink.com, read from its shipped CSS/JS) ============
   Type:    Archivo 400 · display 68px / lh 1.06 / -0.02em · mid 44px/54
   Motion:  GSAP scrub .6–.8 · big moves power4/expo · entrances stagger .08 power2.out
            per-char reveal stagger 1/n ease none · durations .25–2.2s
   Radii:   0px default
======================================================================================== */
:root{
  --navy:#060B1C; --navy2:#0B1530; --peri:#8FA8E8; --peri2:#B9C8F0;
  --blue:#0E76FF; --ink:#EAF0FF; --dim:rgba(234,240,255,.55); --faint:rgba(234,240,255,.28);
  --hair:rgba(185,200,240,.14); --dash:rgba(185,200,240,.10);
}
*{margin:0;padding:0;box-sizing:border-box}
html{background:var(--navy)}
html.lenis{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto}
body{
  font-family:'Archivo',system-ui,sans-serif;color:var(--ink);
  background:var(--navy);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
/* ---- pinned-layer scroll architecture (measured from the reference):
   two full-screen layers fixed on top of each other; the top one crossfades out
   over ~140vh of scroll runway; the page flow then slides over the bottom one ---- */
.stage{height:100vh}
.runway{height:235vh}
.flow{position:relative;z-index:10;
  /* stops aligned to the sections that sit on them (measured against the live flow):
     dark through the verdict board (ends ~36%), light under services+why (dark text,
     ~36–86%), back to navy for contact (light text, from ~87%). transitions happen
     inside the sections' own padding so no text sits on a mid-tone. */
  background:linear-gradient(175deg,var(--navy) 0%,var(--navy2) 10%,#101E44 18%,#16264F 26%,#16264F 33%,#2B4685 35.5%,var(--peri) 37.5%,#D7E1F7 39.5%,#EDF2FB 46%,#EDF2FB 76%,#D7E1F7 82%,#3D5BA6 87.5%,var(--navy2) 92%,var(--navy) 100%)}
.flow > *{position:relative;z-index:1}
.grid-overlay.abs{position:absolute;z-index:0}
.screen2{position:fixed;inset:0;z-index:2;overflow:hidden;
  background:linear-gradient(180deg,#9FB4EA 0%,#D9E3F8 46%,#EFF3FC 100%);
  display:flex;flex-direction:column;justify-content:center;padding:104px 4vw 44px;color:#0A1024}
.s2inner{position:relative;z-index:1;max-width:1400px;width:100%;margin:0 auto}
.screen2 h2{color:#5E6A85;font-size:clamp(34px,3.9vw,56px);font-weight:400;line-height:1.06;letter-spacing:-.02em;margin:0}
.screen2 .sub{font-size:13.5px;line-height:1.65;max-width:440px;color:rgba(10,16,36,.62)}
.screen2 .ch2{opacity:.12}
.s2head{display:grid;grid-template-columns:1.35fr 1fr;gap:60px;align-items:end;margin:22px 0 30px}

/* ---- market intelligence: four coverage columns ---- */
.mgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid rgba(10,16,36,.16)}
.mcol{position:relative;padding:26px 30px 30px 0}
.mcol+.mcol{padding-left:30px}
.mrule{position:absolute;left:0;top:0;bottom:0;width:1px;background:rgba(10,16,36,.14);transform:scaleY(0);transform-origin:top}
.mcol:first-child .mrule{display:none}
.mn{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.18em;color:rgba(10,16,36,.36)}
.mcol h3{font-size:20px;font-weight:400;letter-spacing:-.015em;color:#0A1024;margin:14px 0 10px;max-width:9em}
.mw{font-size:12.5px;line-height:1.6;color:rgba(10,16,36,.6)}
.mwhy{margin-top:20px;font-size:12.5px;line-height:1.6;color:rgba(10,16,36,.78)}
.mwhy b{display:block;font-family:'JetBrains Mono',monospace;font-size:9px;letter-spacing:.18em;
  font-weight:400;color:var(--blue);margin-bottom:8px}
.mhand{display:flex;justify-content:space-between;align-items:center;margin-top:26px;padding-top:16px;
  border-top:1px solid rgba(10,16,36,.16);
  font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.18em;color:rgba(10,16,36,.4)}
.mhand .nx{color:#0A1024}
.mhand .nx i{font-style:normal;color:var(--blue);margin-left:10px;display:inline-block}

/* ---- filter rail ---- */
.testblock{color:var(--ink)}
.t2head{display:grid;grid-template-columns:1.35fr 1fr;gap:60px;align-items:end;margin:30px 0 30px}
.testblock h2{font-size:clamp(34px,3.9vw,56px);font-weight:400;line-height:1.06;letter-spacing:-.02em;margin:0;color:var(--ink)}
.testblock .sub{font-size:13.5px;line-height:1.65;max-width:440px;color:var(--dim)}
.testblock .sec-head{border-color:var(--hair);color:var(--ink)}
.testblock .sec-head em{color:var(--faint)}
.vfilter{display:flex;gap:26px;border-top:1px solid var(--hair);padding-top:14px;margin-bottom:6px}
.vfilter button{background:none;border:0;cursor:pointer;padding:6px 0;color:rgba(234,240,255,.45);
  font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.18em;position:relative;transition:color .3s}
.vfilter button i{font-style:normal;margin-left:7px;color:rgba(234,240,255,.3)}
.vfilter button:hover{color:rgba(234,240,255,.8)}
.vfilter button.on{color:var(--ink)}
.vfilter button.on::after{content:'';position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--blue)}

/* ---- verdict board ---- */
.vboard{border-top:1px solid var(--hair)}
.vrow{display:grid;grid-template-columns:64px 1.25fr 1.15fr 190px;gap:24px;align-items:center;width:100%;
  background:none;border:0;border-bottom:1px solid var(--hair);cursor:pointer;text-align:left;
  padding:13px 8px 13px 0;position:relative;overflow:hidden;font-family:'Archivo',sans-serif;
  transition:background .35s cubic-bezier(.22,1,.36,1),padding-left .35s cubic-bezier(.22,1,.36,1)}
.vrow:hover{background:rgba(255,255,255,.05);padding-left:14px}
.vrow.open{background:rgba(255,255,255,.07);padding-left:14px}
.vn{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.16em;color:var(--faint)}
.vname{font-size:18px;font-weight:400;letter-spacing:-.012em;color:var(--ink)}
.vcond{font-size:12.5px;color:var(--dim);line-height:1.4}
.vstat{font-family:'JetBrains Mono',monospace;font-size:9.5px;letter-spacing:.18em;text-align:right;
  opacity:0;transform:translateY(4px)}
.s-prod{color:var(--ink)}
.s-pilot{color:var(--blue)}
.s-notadopted{color:rgba(234,240,255,.4)}
.s-watch{color:rgba(234,240,255,.28)}
/* the scan line — a test running, then the verdict lands */
.vscan{position:absolute;top:0;bottom:0;width:2px;background:linear-gradient(180deg,transparent,var(--blue),transparent);
  left:0;opacity:0;pointer-events:none}
.vrow.hidden{display:none}

.vdet{max-height:0;overflow:hidden;border-bottom:1px solid transparent}
.vdet.open{border-bottom-color:var(--hair)}
.vgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;padding:18px 14px 24px}
.vgrid div{font-size:12.5px;line-height:1.6;color:rgba(234,240,255,.72)}
.vgrid b{display:block;font-family:'JetBrains Mono',monospace;font-size:9px;letter-spacing:.18em;
  font-weight:400;color:var(--faint);margin-bottom:9px}

.vfoot{display:flex;justify-content:space-between;align-items:center;margin-top:18px;
  font-family:'JetBrains Mono',monospace;font-size:9.5px;letter-spacing:.16em;color:var(--faint)}
.vfoot .prov{color:var(--blue)}

@media (max-width:1100px){
  .s2head,.t2head{grid-template-columns:1fr;gap:18px}
  .mgrid{grid-template-columns:repeat(2,1fr)}
  .mcol{padding:22px 20px 26px 0}
  .vrow{grid-template-columns:52px 1fr 130px}
  .vcond{display:none}
  .vgrid{grid-template-columns:repeat(2,1fr);gap:20px}
  .vfilter{flex-wrap:wrap;gap:16px}
}
::selection{background:var(--blue);color:#fff}

/* dashed grid overlay */
.grid-overlay{position:fixed;inset:0;pointer-events:none;z-index:1;display:flex;justify-content:space-between;padding:0 4vw}
.grid-overlay i{width:0;border-left:1px dashed var(--dash)}

/* ============ NAV ============ */
nav{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:space-between;
  padding:0 4vw;height:76px;background:linear-gradient(180deg,rgba(6,11,28,.85),rgba(6,11,28,0));backdrop-filter:blur(2px);
  transition:background .4s}
nav.on-light{background:linear-gradient(180deg,rgba(238,242,252,.88),rgba(238,242,252,0))}
nav.on-light .logo, nav.on-light .nav-links a{color:#0A1024}
nav.on-light .logo .two{color:var(--blue)}
nav.on-light .logo .sub{color:rgba(10,16,36,.5)}
nav.on-light .nav-links a{border-color:rgba(10,16,36,.2)}
nav.on-light .nav-links a:hover{background:rgba(14,118,255,.12)}
nav .logo, nav .nav-links a{transition:color .4s,border-color .4s}
/* ---- G2D wordmark, Variant A (offset splice). The 2 is cut at its optical
   centre and the upper half steps 5% forward — a value shifting between two
   states: the research desk and the build. Splice holds to 24px; below that
   the .plain fallback renders an unspliced 2. ---- */
.logo{font-size:22px;font-weight:500;letter-spacing:-.055em;text-decoration:none;color:var(--ink);
  display:inline-flex;align-items:baseline;line-height:1;cursor:pointer}
.logo .mark{position:relative;display:inline-block;white-space:nowrap;font-size:23px;letter-spacing:-.055em}
.logo .two{position:relative;display:inline-block;color:var(--blue)}
.logo .two i{font-style:normal;display:block}
.logo .two i:first-child{clip-path:inset(0 0 50% 0);transform:translateX(5%);transition:transform .4s cubic-bezier(.22,1,.36,1)}
.logo .two i+i{position:absolute;left:0;top:0;right:0;clip-path:inset(50% 0 0 0)}
.logo:hover .two i:first-child{transform:translateX(11%)}
.logo .sub{font-size:11px;font-family:'JetBrains Mono',monospace;letter-spacing:.18em;color:var(--dim);margin-left:12px;font-weight:400}
.logo:focus-visible{outline:2px solid var(--blue);outline-offset:6px}
/* footer lockup */
.foot-logo{font-size:18px;font-weight:500;letter-spacing:-.055em;text-decoration:none;color:var(--ink);
  display:inline-flex;align-items:baseline;line-height:1}
.foot-logo .two{position:relative;display:inline-block;color:var(--blue)}
.foot-logo .two i{font-style:normal;display:block}
.foot-logo .two i:first-child{clip-path:inset(0 0 50% 0);transform:translateX(5%)}
.foot-logo .two i+i{position:absolute;left:0;top:0;right:0;clip-path:inset(50% 0 0 0)}
.nav-links{display:flex;gap:1px}
.nav-links a{font-size:11px;font-family:'JetBrains Mono',monospace;letter-spacing:.14em;color:var(--ink);text-decoration:none;
  border:1px solid var(--hair);padding:11px 16px;transition:background .25s cubic-bezier(.22,1,.36,1),color .25s}
.nav-links a:hover{background:rgba(14,118,255,.18)}
.nav-cta{display:flex}
.nav-cta a{font-size:11px;font-family:'JetBrains Mono',monospace;letter-spacing:.14em;text-decoration:none;color:#0A1024;background:#fff;padding:12px 18px;transition:background .3s}
.nav-cta .sq{width:40px;background:var(--blue);color:#fff;display:flex;align-items:center;justify-content:center;font-family:'Archivo'}
.nav-cta:hover a:first-child{background:#E7EDFB}

/* ============ HERO ============ */
.hero{position:fixed;inset:0;min-height:720px;z-index:5;background:var(--navy)}
#gl{position:absolute;inset:0;width:100%;height:100%;display:block}
.hero-shade{position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(58% 52% at 24% 26%,rgba(6,11,28,.78),transparent 72%),
             radial-gradient(42% 38% at 84% 80%,rgba(6,11,28,.42),transparent 72%),
             radial-gradient(46% 30% at 16% 88%,rgba(6,11,28,.5),transparent 74%),
             linear-gradient(180deg,rgba(6,11,28,.5),transparent 22%)}
.hero-inner{position:absolute;inset:0;padding:0 4vw;pointer-events:none}
.hero h1{
  position:absolute;top:15vh;left:4vw;
  font-size:clamp(38px,4.4vw,68px);font-weight:400;line-height:1.06;letter-spacing:-.02em;white-space:nowrap;
}
.hero h1 .line{display:block;overflow:hidden}
.hero h1 .line>span{display:inline-block;transform:translateY(110%)}
.hero-cta{position:absolute;top:calc(15vh + clamp(84px,9.4vw,148px) + 44px);left:4vw;display:flex;gap:14px;pointer-events:auto;opacity:0}
.btn{display:flex;text-decoration:none}
.btn b{font-weight:400;font-size:11px;font-family:'JetBrains Mono',monospace;letter-spacing:.14em;padding:15px 20px;background:#fff;color:#0A1024;transition:background .3s}
.btn .sq{width:46px;background:var(--blue);color:#fff;position:relative;overflow:hidden}
.btn .sq i{font-style:normal;position:absolute;inset:0;display:flex;align-items:center;justify-content:center;transition:transform .45s cubic-bezier(.22,1,.36,1)}
.btn .sq i+i{transform:translateX(-100%)}
.btn:hover .sq i:first-child{transform:translateX(100%)}
.btn:hover .sq i+i{transform:translateX(0)}
.btn:hover b{background:#E7EDFB}
.btn.ghost b{background:rgba(255,255,255,.08);color:var(--ink);border:1px solid var(--hair);transition:border-color .3s,background .3s}
.btn.ghost:hover b{border-color:rgba(185,200,240,.45);background:rgba(255,255,255,.14)}
.hero-cred{position:absolute;left:4vw;bottom:12vh;font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:.16em;color:#F2F6FF;opacity:0;
  background:rgba(5,9,22,.66);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border:1px solid rgba(185,200,240,.15);padding:18px 24px 19px}

.hero-cred .row2{margin-top:9px;color:rgba(234,240,255,.62)}
.hero-body{position:absolute;right:4vw;bottom:12vh;max-width:392px;font-size:13.5px;line-height:1.7;color:rgba(234,240,255,.82);opacity:0;
  background:rgba(5,9,22,.66);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border:1px solid rgba(185,200,240,.15);padding:22px 26px 24px}
.hero-body .lbl{display:block;font-family:'JetBrains Mono',monospace;font-size:9.5px;letter-spacing:.3em;color:rgba(234,240,255,.45);margin-bottom:12px}
.hero-ticker{position:absolute;left:0;right:0;bottom:0;overflow:hidden;
  background:rgba(4,8,20,.78);backdrop-filter:blur(10px);border-top:1px solid rgba(185,200,240,.16)}
.ticker-mask{overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.ticker-track{display:flex;white-space:nowrap;font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.26em;color:rgba(234,240,255,.75);width:max-content;padding:19px 0}
.ticker-track b{font-weight:400;color:var(--blue);padding:0 26px}

/* ============ STATEMENT (per-char scrub, measured: stagger 1/n ease none) ============ */
.statement{position:relative;z-index:2;padding:26vh 4vw;max-width:1200px}
.statement p{font-size:clamp(30px,3.1vw,44px);font-weight:400;line-height:1.23;letter-spacing:-.015em}
.statement .ch{opacity:.13}
.statement .partners{margin-top:48px;display:flex;gap:10px;flex-wrap:wrap}
.statement .partners i{font-style:normal;font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.16em;color:rgba(234,240,255,.75);border:1px solid rgba(234,240,255,.28);padding:10px 14px}

/* ============ SECTION SHELL ============ */
.sec-head{border-top:1px solid var(--hair);padding-top:20px;display:flex;justify-content:space-between;align-items:baseline;
  font-family:'JetBrains Mono',monospace;font-size:13px;font-weight:500;letter-spacing:.3em;color:var(--ink)}
.sec-head em{font-style:normal;font-weight:400;color:var(--faint);letter-spacing:.12em}
section.block{position:relative;z-index:2;padding:16vh 4vw}
.block h2{font-size:clamp(40px,4.7vw,68px);font-weight:400;line-height:1.06;letter-spacing:-.02em;margin:34px 0 14px}
.block .sub{font-size:14px;line-height:1.6;max-width:420px}

/* data desk — light zone */
.desk{color:#0A1024}
.desk .eyebrow{color:rgba(10,16,36,.7)}
.desk .sub{color:rgba(10,16,36,.6)}
.panel{margin-top:56px;background:linear-gradient(160deg,#0B1530,#132552 65%,#1B3878);border:1px solid rgba(255,255,255,.08);color:var(--ink)}
.panel-head{display:flex;justify-content:space-between;align-items:center;padding:18px 26px;border-bottom:1px solid var(--hair);font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.18em;color:var(--dim)}

.panel-body{display:grid;grid-template-columns:1fr 1.6fr;gap:40px;padding:36px 26px 42px}
.panel-body h3{font-size:28px;font-weight:400;margin-bottom:10px}
.panel-body .desc{font-size:13px;color:var(--dim);line-height:1.6;margin-bottom:26px}
.kv{display:flex;justify-content:space-between;border-top:1px solid var(--hair);padding:13px 0;font-size:13px}
.kv b{font-weight:400}
.kv span{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.14em;color:var(--faint);align-self:center}
.chart{position:relative}
.chart svg{width:100%;height:100%;min-height:240px}
.panel-foot{display:flex;justify-content:space-between;align-items:center;background:var(--blue);padding:0 0 0 26px;font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.16em}
.panel-foot em{font-style:normal;color:rgba(255,255,255,.55);margin-left:18px}
.panel-foot .sq{width:52px;height:44px;background:#2B8AFF;display:flex;align-items:center;justify-content:center;font-family:'Archivo';font-size:14px}

/* services */
.svc-grid{margin-top:56px;display:grid;grid-template-columns:repeat(4,1fr);border-left:1px solid var(--hair);border-top:1px solid var(--hair)}
.svc{border-right:1px solid var(--hair);border-bottom:1px solid var(--hair);padding:28px 26px 30px;min-height:280px;position:relative;overflow:hidden;
  transition:background .35s cubic-bezier(.22,1,.36,1)}
.svc .num{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.18em;color:var(--faint);transition:color .35s}
.svc h3{font-size:21px;font-weight:400;margin:44px 0 12px;letter-spacing:-.015em;max-width:9em;transition:color .35s}
.svc p{font-size:13px;line-height:1.65;color:var(--dim);transition:color .35s}
.svc .go{position:absolute;right:0;bottom:0;width:46px;height:46px;background:var(--blue);color:#fff;display:flex;align-items:center;justify-content:center;
  opacity:0;transform:translate(8px,8px);transition:opacity .35s,transform .35s cubic-bezier(.22,1,.36,1)}
.svc:hover{background:#0B1530}
.svc:hover .num{color:rgba(234,240,255,.4)}
.svc:hover h3{color:#EAF0FF}
.svc:hover p{color:rgba(234,240,255,.6)}
.svc:hover .go{opacity:1;transform:translate(0,0)}

/* why — progressive opacity stack (sharplink pattern, tight) */
.why-stack{margin-top:64px}
.why-item{border-top:1px solid var(--hair);padding:36px 0;display:grid;grid-template-columns:80px 1fr 1.2fr;gap:28px;align-items:baseline}
.why-item .num{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.18em;color:var(--faint)}
.why-item .num i{display:none}
.why-item h3{font-size:clamp(26px,2.4vw,36px);font-weight:400;letter-spacing:-.015em}
.why-item p{font-size:13.5px;line-height:1.65;color:var(--dim);max-width:460px}

/* contact */
.contact{position:relative;z-index:2;padding:18vh 4vw 12vh;display:grid;grid-template-columns:1.3fr 1fr;gap:60px;align-items:start}
.contact h2{font-size:clamp(44px,4.7vw,68px);font-weight:400;line-height:1.06;letter-spacing:-.02em}
.contact .sub{margin-top:20px;font-size:14px;line-height:1.65;color:var(--dim);max-width:380px}
.card{border:1px solid var(--hair);background:rgba(255,255,255,.03);padding:30px}
.card .kv{font-size:14px}
.card .cta{margin-top:26px;display:flex}
footer{position:relative;z-index:2;border-top:1px solid var(--hair);padding:40px 4vw;display:flex;justify-content:space-between;font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.16em;color:var(--faint)}

@media (max-width:900px), (prefers-reduced-motion:reduce){
  .hero{position:relative;inset:auto;height:100vh}
  .screen2{position:relative;inset:auto;min-height:100vh}
  .screen2 .ch2{opacity:1}
  .runway{display:none}
  .stage{height:auto}
}
@media (max-width:900px){
  .panel-body{grid-template-columns:1fr}
  .svc-grid{grid-template-columns:repeat(2,1fr)}
  .why-item{grid-template-columns:1fr;gap:10px}
  .contact{grid-template-columns:1fr}
  .hero-body{display:none}

  /* nav: logo + CTA on the first row, the section links on a slim second row
     (hiding them left phones with no way to reach the sections) */
  /* the desktop crossfade flips nav text dark over light sections; that
     animation doesn't run on phones, so give the bar a solid dark ground
     the white links stay readable on everywhere */
  nav,nav.on-light{flex-wrap:wrap;height:auto;padding:10px 4vw 0;row-gap:8px;
    background:rgba(6,11,28,.92);backdrop-filter:blur(8px)}
  nav.on-light .logo,nav.on-light .nav-links a{color:var(--ink)}
  nav.on-light .logo .sub{color:var(--dim)}
  nav.on-light .nav-links a{border-color:var(--hair)}
  .logo .sub{display:none}
  .nav-cta a:first-child{padding:10px 14px}
  .nav-cta .sq{width:34px}
  .nav-links{order:3;flex-basis:100%;display:flex;padding-bottom:10px}
  .nav-links a{flex:1;text-align:center;font-size:9.5px;letter-spacing:.08em;padding:9px 2px}

  /* hero: the desktop hero pins children to absolute corners and forbids the
     headline from wrapping — on a phone that overflows the screen and leaves
     the section looking empty. Stack everything in a simple column instead. */
  .hero{height:auto;min-height:100vh;min-height:100svh;display:block}
  .hero-inner{position:relative;inset:auto;min-height:inherit;display:flex;flex-direction:column;
    justify-content:center;align-items:flex-start;gap:30px;padding:110px 6vw 120px;pointer-events:auto}
  .hero h1{position:static;white-space:normal;font-size:clamp(30px,8.6vw,42px)}
  .hero-cta{position:static;flex-wrap:wrap}
  .hero-cred{position:static;font-size:10px;letter-spacing:.12em;padding:14px 16px 15px}
  .hero-ticker{position:absolute;left:0;right:0;bottom:0}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}


/* ================= v3 FIXES (22 Aug) ================= */
/* 1. keep "( 0n )" index on one line in every section head */
.sec-head{gap:28px}
.sec-head em{white-space:nowrap;flex:0 0 auto}

/* 4. stop the two mono labels colliding */
.mhand{gap:20px;flex-wrap:wrap;row-gap:8px}
.mhand .nx{text-align:right}
@media (max-width:640px){
  .mhand{flex-direction:column;align-items:flex-start}
  .mhand .nx{text-align:left}
}

/* 2. at 2 columns, row-start cards (01 and 03) must match:
      no left padding, no left divider */
@media (max-width:1100px){
  .mcol:nth-child(odd){padding-left:0}
  .mcol:nth-child(odd) .mrule{display:none}
  .mcol:nth-child(even){padding-left:20px}
  .mcol:nth-child(even) .mrule{display:block}
}