:root{
  --blue:#0054F9;
  --blue-dark:#0043D6;
  --violet:#5C0AFA;
  --violet-soft:#8B68F8;
  --violet-light:#A48CFA;
  --navy:#0A1024;
  --bg:#F9F8FD;
  --body:#4A5568;
  --muted:#64748B;
  --border:#E2E8F0;
  --dark-body:#B0BACC;
  --dark-border:rgba(255,255,255,.09);
  --dark-card:rgba(255,255,255,.04);
  --fd:'Archivo',sans-serif;
  --fb:'Archivo',sans-serif;
  --fm:'Fragment Mono',monospace;
  --mw:1160px;
}
*{margin:0;padding:0;box-sizing:border-box}
@media (prefers-reduced-motion: no-preference){html{scroll-behavior:smooth}}
body{font-family:var(--fb);background:var(--bg);color:var(--navy);-webkit-font-smoothing:antialiased}
img{max-width:100%}

/* keyboard focus: one visible ring for every control, on light sections and dark */
a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
.sec-dark a:focus-visible,.sec-dark button:focus-visible,.footer a:focus-visible{outline-color:#fff}
.f-field input:focus-visible,.f-field select:focus-visible,.f-field textarea:focus-visible{outline:2px solid var(--blue);outline-offset:2px}

/* ───────── shared section system ───────── */
/* One rhythm. The per-id desktop overrides (96/110/120px) were legacy drift: each already
   collapsed to the same 72px at mobile, and every newly authored section used the 108px base,
   so the variation only made old and new sections read as two different systems. */
.sec{padding:108px 32px}

/* #contact intentionally has no padding override: it is a .first-sec, and an id rule
   here would outrank .first-sec's padding-top and tuck the H1 under the fixed nav. */
.sec-dark{background:var(--navy);color:#fff}
.wrap{max-width:var(--mw);margin:0 auto}
/* ".sec h1" covers the subpage page-titles without touching the hero, whose section is
   .hero (not .sec) and which keeps its own larger .hero h1 scale. */
h2,.sec h1{
  font-family:var(--fd);font-variation-settings:'wdth' 112;font-weight:700;
  font-size:clamp(30px,3.2vw,44px);
  line-height:1.12;letter-spacing:-.02em;
  color:var(--navy);max-width:820px;
}
.sec-dark h2,.sec-dark h1{color:#fff}
.sec-sub{
  margin-top:18px;max-width:720px;
  font-size:17px;line-height:1.65;color:var(--body);
}
.sec-dark .sec-sub{color:var(--dark-body)}

/* reveal on scroll */
html.js .reveal{opacity:0;transform:translateY(8px);transition:opacity .45s ease,transform .45s ease}
html.js .reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){html.js .reveal{opacity:1;transform:none;transition:none}}

/* ───────── NAV ───────── */
.nav{
  position:fixed;top:16px;left:16px;right:16px;z-index:50;
  max-width:1200px;margin:0 auto;
  display:flex;align-items:center;justify-content:space-between;
  padding:12px 24px;
  background:rgba(249,248,253,.85);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border:1px solid var(--border);border-radius:14px;
}
.nav-logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--navy)}
.nav-logo svg{display:block}
.nav-logo span{font-family:var(--fd);font-weight:700;font-size:19px;letter-spacing:-.02em}
.nav-links{display:flex;align-items:center;gap:32px;list-style:none}
.nav-links a{font-size:14.5px;font-weight:500;color:var(--body);text-decoration:none;transition:color .2s}
.nav-links a:hover{color:var(--navy)}
.nav-right{display:flex;align-items:center;gap:14px}
.nav-cta{
  font-size:14.5px;font-weight:600;color:#fff;
  background:var(--blue);border:none;border-radius:10px;
  padding:10px 20px;cursor:pointer;text-decoration:none;
  transition:background-color .2s;white-space:nowrap;
}
.nav-cta:hover{background:var(--blue-dark)}
/* mobile menu: hamburger + panel, shown only where .nav-links is hidden */
.nav-toggle{
  display:none;align-items:center;justify-content:center;
  width:38px;padding:0;flex:none;align-self:stretch;
  background:rgba(255,255,255,.6);color:var(--navy);
  border:1px solid var(--border);border-radius:10px;cursor:pointer;
  transition:background-color .2s,border-color .2s;
}
.nav-toggle:hover{background:#fff;border-color:#CBD2E1}
.nav-toggle svg{display:block;pointer-events:none}
.nav-toggle .ic-close{display:none}
.nav-toggle[aria-expanded="true"] .ic-open{display:none}
.nav-toggle[aria-expanded="true"] .ic-close{display:block}
.nav-menu{
  position:absolute;top:calc(100% + 8px);left:0;right:0;
  display:flex;flex-direction:column;padding:6px;
  background:var(--bg);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border:1px solid var(--border);border-radius:14px;
  box-shadow:0 14px 44px rgba(10,16,36,.10);
}
.nav-menu[hidden]{display:none}
.nav-menu a{
  font-size:15px;font-weight:600;color:var(--body);text-decoration:none;
  padding:13px 16px;border-radius:9px;
  transition:background-color .2s,color .2s;
}
.nav-menu a:hover{background:#E9E7F2;color:var(--navy)}
.nav-menu a.active{color:var(--navy)}
@media (min-width:901px){.nav-menu{display:none}}

/* ───────── HERO ───────── */
.hero{position:relative;min-height:100vh;display:flex;align-items:center;overflow:hidden}
#grid-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.hero::before{
  content:"";position:absolute;z-index:1;
  left:-12%;top:8%;width:64%;height:84%;
  background:radial-gradient(closest-side,rgba(249,248,253,.95),rgba(249,248,253,0));
  pointer-events:none;
}
.hero-inner{
  position:relative;z-index:2;
  width:100%;max-width:1200px;margin:0 auto;
  padding:140px 32px 80px;
  display:grid;grid-template-columns:minmax(0,56fr) minmax(0,44fr);
  grid-template-areas:
    "pill  visual"
    "h1    visual"
    "sub   visual"
    "btns  visual"
    "trust visual";
  align-content:center;align-items:center;column-gap:24px;
}
.hero-pill{grid-area:pill;justify-self:start}
.hero h1{grid-area:h1}
.hero-sub{grid-area:sub}
.hero-btns{grid-area:btns}
.hero-trust{grid-area:trust}
.hero-visual{grid-area:visual}
.hero-pill{
  display:inline-flex;align-items:center;gap:8px;
  font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
  color:var(--navy);
  border:1px solid #CBD2E1;border-radius:999px;
  padding:7px 16px;margin-bottom:28px;
  background:rgba(255,255,255,.6);
  animation:pill-glow 1.6s ease-out .4s 1;
}
.hero-pill .dot{width:7px;height:7px;border-radius:50%;background:linear-gradient(135deg,var(--blue),var(--violet))}
@keyframes pill-glow{
  0%{box-shadow:0 0 0 0 rgba(0,84,249,0)}
  35%{box-shadow:0 0 0 6px rgba(0,84,249,.12)}
  100%{box-shadow:0 0 0 0 rgba(0,84,249,0)}
}
.hero h1{
  font-family:var(--fd);font-variation-settings:'wdth' 112;font-weight:700;
  font-size:clamp(34px,3.6vw,52px);
  line-height:1.08;letter-spacing:-.025em;
  color:var(--navy);text-wrap:balance;
}
.hero h1 .grad{
  background:linear-gradient(100deg,var(--blue) 10%,var(--violet) 60%,#8B68F8 95%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}
.hero-sub{margin-top:26px;max-width:540px;font-size:17.5px;line-height:1.65;color:var(--body)}
.hero-btns{display:flex;flex-wrap:wrap;gap:14px;margin-top:36px}
.btn-primary{
  display:inline-flex;align-items:center;gap:8px;
  font-size:16px;font-weight:600;color:#fff;text-decoration:none;
  background:var(--blue);border:none;border-radius:12px;padding:15px 28px;cursor:pointer;
  transition:background-color .2s;font-family:var(--fb);
}
.btn-primary:hover{background:var(--blue-dark)}
.btn-primary svg{transition:transform .2s;flex:none}
.btn-primary:hover svg{transform:translateX(3px)}
.btn-secondary{
  display:inline-flex;align-items:center;
  font-size:16px;font-weight:600;color:var(--navy);text-decoration:none;
  background:transparent;border:1.5px solid #CBD2E1;border-radius:12px;padding:14px 26px;
  transition:border-color .2s,color .2s;
}
.btn-secondary:hover{border-color:var(--blue);color:var(--blue)}
.hero-trust{display:flex;flex-wrap:wrap;gap:10px 26px;margin-top:34px;font-size:14px;font-weight:500;color:var(--muted)}
.hero-trust span{display:inline-flex;align-items:center;gap:7px}
.hero-trust svg{flex:none}
.hero-visual{position:relative;height:min(64vh,660px);perspective:1200px;margin-right:-7%}
.node-tilt{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;transform-style:preserve-3d;will-change:transform}
.node-tilt svg{width:130%;height:130%;max-width:none;overflow:visible;filter:drop-shadow(0 24px 60px rgba(0,84,249,.18))}
#node-3d{position:absolute;inset:-14% -22% -14% -12%;display:none;pointer-events:none;
  -webkit-mask-image:radial-gradient(ellipse 50% 50% at 50% 50%,#000 84%,transparent 99%);
  mask-image:radial-gradient(ellipse 50% 50% at 50% 50%,#000 84%,transparent 99%);}
#node-3d canvas{width:100%!important;height:100%!important;display:block}
.node-tilt.is-3d #node-3d{display:block}
.node-tilt.is-3d #node-svg{display:none}
.arm-line{stroke-dasharray:var(--len);stroke-dashoffset:var(--len);animation:draw .8s cubic-bezier(.22,.8,.3,1) forwards;animation-delay:var(--d)}
@keyframes draw{to{stroke-dashoffset:0}}
.sat{transform-box:fill-box;transform-origin:center;transform:scale(0);animation:pop .55s cubic-bezier(.22,1,.36,1) forwards;animation-delay:var(--d)}
@keyframes pop{to{transform:scale(1)}}
.hub{transform-box:fill-box;transform-origin:center;transform:scale(0);animation:pop .6s cubic-bezier(.22,1,.36,1) .1s forwards}
.pulse{opacity:0}
@media (prefers-reduced-motion:reduce){
  .arm-line{animation:none;stroke-dashoffset:0}
  .sat,.hub{animation:none;transform:scale(1)}
  .hero-pill{animation:none}
  .pulse{display:none}
}

.tools-carousel-wrap{flex:1;overflow:hidden;position:relative;background:#fff}
.tools-carousel-wrap::before,.tools-carousel-wrap::after{content:'';position:absolute;top:0;bottom:0;width:48px;z-index:1;pointer-events:none}
.tools-carousel-wrap::before{left:0;background:linear-gradient(to right,#fff,transparent)}
.tools-carousel-wrap::after{right:0;background:linear-gradient(to left,#fff,transparent)}
.tools-track{display:flex;align-items:center;width:max-content;animation:tools-scroll 28s linear infinite}
.tools-track--reverse{animation:tools-scroll-rev 32s linear infinite}
.tools-track:hover{animation-play-state:paused}
@keyframes tools-scroll{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
@keyframes tools-scroll-rev{0%{transform:translateX(-50%)}100%{transform:translateX(0%)}}
.tool-item{display:flex;align-items:center;gap:10px;padding:14px 22px;flex-shrink:0}
.tool-name{font-size:13.5px;font-weight:600;color:var(--navy);line-height:1.2}
.tool-cat{font-family:var(--fm);font-size:11.5px;letter-spacing:.02em;color:var(--muted);line-height:1.2}
@media (prefers-reduced-motion:reduce){.tools-track,.tools-track--reverse{animation:none}}

/* ───────── UNDER THE HOOD / PIPELINE (dark) ───────── */
.pl-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:40px}
.pl-panel{
  position:relative;display:flex;flex-direction:column;min-width:0;
  background:#060B1C;border:1px solid rgba(255,255,255,.09);border-radius:16px;
  overflow:hidden;box-shadow:0 18px 50px rgba(3,6,18,.45);
}
.pl-head{
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  padding:12px 18px;border-bottom:1px solid rgba(255,255,255,.07);
  background:rgba(255,255,255,.02);
}
.pl-step{font-family:var(--fm);font-size:11px;letter-spacing:.1em;color:#8FB0FF;flex:none}
.pl-title{font-size:13.5px;font-weight:600;color:#E6EAF5;letter-spacing:.01em}
.pl-meta{
  margin-left:auto;display:flex;align-items:center;gap:7px;
  font-family:var(--fm);font-size:10.5px;letter-spacing:.02em;color:#93A0BE;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.pl-dots{display:flex;gap:6px;flex:none}
.pl-dots i{width:9px;height:9px;border-radius:50%}
.pl-dots i:nth-child(1){background:#FF5F57}
.pl-dots i:nth-child(2){background:#FEBC2E}
.pl-dots i:nth-child(3){background:#28C840}
.pl-chip{
  display:inline-flex;align-items:center;gap:6px;
  font-family:var(--fm);font-size:10.5px;letter-spacing:.02em;color:#C9B6FF;
  border:1px solid rgba(164,140,250,.35);border-radius:999px;padding:4px 11px;white-space:nowrap;
}
.pl-chip svg{flex:none}
.pl-ok{width:7px;height:7px;border-radius:50%;background:#45D6A4;flex:none}

/* 01 — code */
.pl-code{
  flex:1;padding:18px 16px;overflow-x:auto;
  font-family:var(--fm);font-size:11px;line-height:1.78;color:#C7D0E4;
  counter-reset:plline;
}
.pl-code .ln{display:block;white-space:pre}
.pl-code .ln::before{
  counter-increment:plline;content:counter(plline);
  display:inline-block;width:1.4em;margin-right:.8em;text-align:right;
  color:#4F5E85;user-select:none;
}
.tk-k{color:#8FB0FF}
.tk-s{color:#C9B6FF}
.tk-n{color:#7EE0C2}
.tk-t{color:#7EE0C2}
.tk-p{color:#93A0BE}
.pl-cursor{display:inline-block;width:7px;height:15px;margin-left:3px;background:#8FB0FF;vertical-align:-2px;animation:pl-blink 1.1s steps(1) infinite}
@keyframes pl-blink{50%{opacity:0}}

/* 02 — prompt */
.pl-prompt{
  flex:1;padding:18px 16px;overflow-x:auto;
  font-family:var(--fm);font-size:11px;line-height:1.75;color:#C7D0E4;white-space:pre-wrap;
}
.pl-prompt .tag{color:#A48CFA}
.pl-prompt .hl{color:#fff}

/* 03 — workflow canvas */
.pl-canvas{flex:1;display:flex;align-items:center;padding:14px 10px 0}
.pl-canvas svg{width:100%;height:auto;display:block;overflow:visible}
.pl-node-label{font-family:var(--fm);font-size:14px;fill:#93A0BE;letter-spacing:.02em}
.pl-wire{fill:none;stroke:rgba(143,176,255,.28);stroke-width:1.6;stroke-dasharray:1.5 6;stroke-linecap:round}
.pl-flow{fill:none;stroke:#8FB0FF;stroke-width:1.6;stroke-dasharray:7 80;stroke-linecap:round;animation:pl-flow 3.4s linear infinite}
@keyframes pl-flow{to{stroke-dashoffset:-87}}
.pl-canvas-foot{padding:12px 18px 16px;font-family:var(--fm);font-size:10.5px;letter-spacing:.03em;color:#93A0BE}

/* 04 — findings output (dark, gradient hairline marks the deliverable) */
.pl-panel.is-paper::before{
  content:"";position:absolute;top:0;left:0;right:0;height:3px;z-index:1;
  background:linear-gradient(90deg,var(--blue),var(--violet),#8B68F8);
}
.pl-doc{flex:1;display:flex;flex-direction:column;padding:16px 16px 14px}
.pl-doc-kicker{font-family:var(--fm);font-size:10px;letter-spacing:.14em;color:#93A0BE}
.pl-doc-client{margin-top:6px;font-family:var(--fd);font-variation-settings:'wdth' 112;font-weight:700;font-size:17px;letter-spacing:-.01em;color:#fff}
.pl-doc-client span{font-family:var(--fb);font-weight:500;font-size:13px;color:#93A0BE}
.pl-stats{display:flex;gap:6px;margin-top:12px;flex-wrap:wrap}
.pl-stat{
  display:inline-flex;align-items:baseline;gap:7px;
  border:1px solid rgba(255,255,255,.14);border-radius:9px;padding:6px 11px;background:rgba(255,255,255,.03);
}
.pl-stat b{font-family:var(--fm);font-weight:400;font-size:13.5px;color:#8FB0FF;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.pl-stat span{font-size:11.5px;font-weight:600;color:#93A0BE}
.pl-stat.is-risk b{color:#FEBC2E}
.pl-table{margin-top:12px;border-top:1px solid rgba(255,255,255,.10)}
.pl-tr{
  display:grid;grid-template-columns:auto 1fr;row-gap:5px;align-items:center;
  padding:8px 0;border-bottom:1px solid rgba(255,255,255,.07);
}
.pl-tr p{grid-column:1 / -1;font-size:13px;line-height:1.45;color:#E6EAF5}
.pl-tag{
  font-family:var(--fm);font-size:10px;letter-spacing:.05em;
  border-radius:6px;padding:3px 8px;white-space:nowrap;
  color:#C9B6FF;background:rgba(139,104,248,.14);
}
.pl-tag.is-ar{color:#FEBC2E;background:rgba(254,188,46,.12)}
.pl-amt{font-family:var(--fm);font-size:12.5px;color:#E6EAF5;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;justify-self:end}
.pl-doc-foot{margin-top:auto;padding-top:12px;font-size:12px;color:#93A0BE}
.pl-foot{margin-top:28px;text-align:center;font-size:14px;line-height:1.6;color:#8B94A8}
.pl-foot .pf-strong{color:#D7DEF0;font-weight:600}
/* mobile swipe controls */
.pl-swipe{display:none;align-items:center;justify-content:center;gap:18px;margin-top:18px}
.pl-steps{display:flex;gap:7px}
.pl-steps i{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.18);transition:background-color .25s,transform .25s}
.pl-steps i.on{background:#8FB0FF;transform:scale(1.3)}
.pl-next{
  display:inline-flex;align-items:center;justify-content:center;
  width:38px;height:38px;border-radius:50%;cursor:pointer;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.16);color:#E6EAF5;
  transition:background-color .2s,transform .3s;
}
.pl-next:active{background:rgba(255,255,255,.14)}
#pipeline .pl-grid .pl-panel:nth-child(2){transition-delay:.1s}
#pipeline .pl-grid .pl-panel:nth-child(3){transition-delay:.2s}
#pipeline .pl-grid .pl-panel:nth-child(4){transition-delay:.3s}
@media (min-width:901px) and (max-width:1239px){
  .pl-grid{grid-template-columns:1fr 1fr}
  .pl-code,.pl-prompt{font-size:12.5px}
}
@media (prefers-reduced-motion:reduce){
  .pl-cursor{animation:none}
  .pl-flow{display:none}
}

/* ───────── FINANCE ENGINEER (dark) ───────── */
.fe-cols{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:34px}
.fe-cols p{font-size:16px;line-height:1.7;color:var(--dark-body)}
.fe-quote{
  margin:64px auto 0;max-width:860px;text-align:center;
}
.fe-quote blockquote{
  font-family:var(--fd);font-variation-settings:'wdth' 112;font-weight:600;font-style:italic;
  font-size:clamp(21px,2.4vw,29px);line-height:1.45;letter-spacing:-.01em;color:#fff;
}
.fe-quote blockquote .qmark{color:var(--violet-light)}
.fe-quote cite{display:block;margin-top:18px;font-style:normal;font-size:14.5px;color:var(--dark-body)}
.cred-bar{
  display:flex;flex-wrap:wrap;justify-content:center;gap:10px;
  margin-top:54px;
}
.cred-chip{
  font-size:13.5px;font-weight:500;color:#D7DEF0;
  border:1px solid var(--dark-border);border-radius:999px;
  padding:8px 18px;white-space:nowrap;
}

.why-close{
  margin:54px auto 0;max-width:760px;text-align:center;
  font-family:var(--fd);font-variation-settings:'wdth' 112;font-weight:700;font-size:20.5px;line-height:1.5;color:var(--navy);letter-spacing:-.01em;
}

/* ───────── WHAT WE'RE NOT (light) ───────── */
.not-grid{margin-top:46px;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--border)}
.not-card{padding:20px 36px 20px 0;border-bottom:1px solid var(--border)}
.not-card:nth-child(odd){border-right:1px solid var(--border)}
.not-card:nth-child(even){padding-left:36px}
.not-card:last-child:nth-child(odd){grid-column:1 / -1;border-right:none}
.not-left{margin-bottom:6px}
.not-vs{font-family:var(--fm);font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--violet);margin-bottom:3px}
.not-card h3{font-family:var(--fd);font-variation-settings:'wdth' 112;font-weight:700;font-size:17px;color:var(--navy);letter-spacing:-.01em}
.not-card p{font-size:13.5px;line-height:1.5;color:var(--body)}

/* ───────── WORKING WITH US (dark) ───────── */
.steps-tl{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:32px;margin-top:64px}
.tl-line{position:absolute;top:8px;left:0;right:0;height:2px;background:rgba(255,255,255,.14)}
.tl-step{position:relative;padding-top:42px}
.tl-node{position:absolute;top:0;left:0;width:18px;height:18px;border-radius:50%;background:var(--violet);box-shadow:0 0 0 0 rgba(92,10,250,.5)}
.tl-node::after{content:"";position:absolute;inset:5px;border-radius:50%;background:#C9B6FF}
.tl-step:nth-child(2) .tl-node{animation:tl-pulse 2.8s ease-out infinite 0s}
.tl-step:nth-child(3) .tl-node{animation:tl-pulse 2.8s ease-out infinite .7s}
.tl-step:nth-child(4) .tl-node{animation:tl-pulse 2.8s ease-out infinite 1.4s}
.tl-step:nth-child(5) .tl-node{animation:tl-pulse 2.8s ease-out infinite 2.1s}
@keyframes tl-pulse{0%{box-shadow:0 0 0 0 rgba(92,10,250,.5)}55%{box-shadow:0 0 0 11px rgba(92,10,250,0)}100%{box-shadow:0 0 0 0 rgba(92,10,250,0)}}
@media (prefers-reduced-motion:reduce){.tl-node{animation:none!important}}
.tl-step .step-n{font-family:var(--fm);font-size:12px;letter-spacing:.02em;color:#8FB0FF;margin-bottom:12px}
.tl-step h3{font-family:var(--fd);font-variation-settings:'wdth' 112;font-weight:700;font-size:21px;color:#fff;margin-bottom:12px;letter-spacing:-.01em}
.tl-step p{font-size:14.5px;line-height:1.6;color:var(--dark-body)}

/* ───────── STACK SECTION (light) ───────── */
.stack-rows{margin-top:50px;border:1px solid var(--border);border-radius:16px;overflow:hidden;background:#fff}

/* ───────── WHO WE ARE (dark) ───────── */
.who-body{margin-top:30px;max-width:780px;display:flex;flex-direction:column;gap:20px}
.who-body p{font-size:16.5px;line-height:1.7;color:var(--dark-body)}
.stack-row{display:flex;align-items:stretch}
.stack-row-label{flex:0 0 168px;display:flex;align-items:center;padding:14px 22px;font-family:var(--fm);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border-right:1px solid var(--border);line-height:1.4}

/* ───────── START HERE / FORM (light) ───────── */
.start-grid{display:grid;grid-template-columns:minmax(0,46fr) minmax(0,54fr);gap:56px;margin-top:50px;align-items:start}
.expect{display:flex;flex-direction:column;gap:16px;margin-top:6px}
.expect span{display:flex;align-items:flex-start;gap:11px;font-size:15.5px;line-height:1.55;color:var(--body)}
.expect svg{flex:none;margin-top:3px}
.form-card{
  background:#fff;border:1px solid var(--border);border-radius:20px;
  padding:40px;box-shadow:0 14px 44px rgba(10,16,36,.05);
}
.f-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.f-field{display:flex;flex-direction:column;gap:7px;margin-bottom:16px}
.f-field label{font-size:13.5px;font-weight:600;color:var(--navy)}
.f-field input,.f-field select,.f-field textarea{
  font-family:var(--fb);font-size:15px;color:var(--navy);
  border:1px solid #CBD2E1;border-radius:10px;background:#FBFAFE;
  padding:12px 14px;outline:none;width:100%;
  transition:border-color .2s,box-shadow .2s;
}
.f-field input:focus,.f-field select:focus,.f-field textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(0,84,249,.12)}
.f-field textarea{min-height:96px;resize:vertical}
.f-field .err-msg{display:none;font-size:12.5px;color:#DC2626}
.f-field.has-err input{border-color:#DC2626}
.f-field.has-err .err-msg{display:block}
.form-card .btn-primary{width:100%;justify-content:center;margin-top:6px}
.form-err{display:none;margin-top:12px;text-align:center;font-size:13px;color:#DC2626}
.form-ok{display:none;text-align:center;padding:40px 10px}
.form-ok h3{font-family:var(--fd);font-variation-settings:'wdth' 112;font-weight:700;font-size:22px;color:var(--navy);margin:18px 0 10px}
.form-ok p{font-size:15px;line-height:1.6;color:var(--body)}
.book-link{display:inline-flex;align-items:center;gap:4px;margin-top:6px;font-size:14.5px;font-weight:600;color:var(--blue);text-decoration:none;transition:color .2s}
.book-link:hover{color:var(--violet)}

/* ───────── FOOTER (dark) ───────── */
.footer{background:var(--navy);border-top:1px solid var(--dark-border);padding:54px 32px}
.footer-inner{max-width:var(--mw);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.footer-logo{display:flex;align-items:center;gap:10px;color:#fff}
.footer-logo span{font-family:var(--fd);font-weight:700;font-size:17px}
.footer-links{display:flex;gap:28px;flex-wrap:wrap}
.footer-links a{font-size:14px;color:var(--dark-body);text-decoration:none;transition:color .2s}
.footer-links a:hover{color:#fff}
.footer-copy{font-size:13px;color:#8B94A8}

/* ───────── depth & color system ───────── */
/* gradient keywords in headlines — the hero's signature, carried through */
.gk{
  background:linear-gradient(100deg,var(--blue) 5%,var(--violet) 65%,#8B68F8 100%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}

/* brand node ornaments: faint fragments of the mark in section corners */
.sec{position:relative;overflow:hidden}
.orn{position:absolute;pointer-events:none;user-select:none;z-index:0}
.orn svg{display:block;overflow:visible}
.sec .wrap{position:relative;z-index:1}

/* ambient engineering grid in section corners — fades out toward the interior */
.grid-patch{position:absolute;z-index:0;pointer-events:none;
  width:min(48vw,560px);height:min(48vw,560px);
  --gp:rgba(10,16,36,.085);--cellglow:rgba(0,84,249,.09);
  background-image:linear-gradient(var(--gp) 1px,transparent 1px),linear-gradient(90deg,var(--gp) 1px,transparent 1px);
  background-size:54px 54px;}
.sec-dark .grid-patch{--gp:rgba(143,176,255,.13);--cellglow:rgba(143,176,255,.16)}
.grid-patch.tr{top:0;right:0;-webkit-mask-image:radial-gradient(125% 125% at 100% 0,#000 0%,transparent 60%);mask-image:radial-gradient(125% 125% at 100% 0,#000 0%,transparent 60%)}
.grid-patch.tl{top:0;left:0;-webkit-mask-image:radial-gradient(125% 125% at 0 0,#000 0%,transparent 60%);mask-image:radial-gradient(125% 125% at 0 0,#000 0%,transparent 60%)}
.grid-patch.br{bottom:0;right:0;-webkit-mask-image:radial-gradient(125% 125% at 100% 100%,#000 0%,transparent 60%);mask-image:radial-gradient(125% 125% at 100% 100%,#000 0%,transparent 60%)}
.grid-patch.bl{bottom:0;left:0;-webkit-mask-image:radial-gradient(125% 125% at 0 100%,#000 0%,transparent 60%);mask-image:radial-gradient(125% 125% at 0 100%,#000 0%,transparent 60%)}
.gp-cell{position:absolute;width:54px;height:54px;background:var(--cellglow);opacity:0;pointer-events:none;animation:gp-cell 1.7s ease-in-out forwards}
@keyframes gp-cell{0%{opacity:0}28%{opacity:1}100%{opacity:0}}

/* ───────── responsive ───────── */
@media (max-width:900px){
  .sec{padding:72px 22px}
  #problem,#finance-engineer,#why-now,#how-it-works,#stack,#who-we-are{padding:72px 22px}
  #pipeline{padding:72px 22px}
  .nav{padding:9px 12px}
  .nav-links{display:none}
  .nav-toggle{display:inline-flex}
  .nav-logo{gap:7px}
  .nav-logo svg{width:22px;height:22px}
  .nav-logo span{font-size:15px;white-space:nowrap}
  .nav-right{gap:8px}
  .nav-cta{font-size:12.5px;padding:8px 11px;border-radius:8px}
  .hero{min-height:0;align-items:stretch}
  .hero-inner{
    grid-template-columns:1fr;
    grid-template-areas:"pill" "h1" "visual" "sub" "btns" "trust";
    grid-template-rows:auto auto auto auto auto auto;
    min-height:0;
    padding:98px 22px 12px;column-gap:0;align-content:start;
  }
  .hero-pill{margin-bottom:10px}
  .hero h1{font-size:clamp(30px,8.4vw,35px);line-height:1.08}
  .hero-sub{margin-top:8px;font-size:15px;line-height:1.55}
  .hero-btns{flex-direction:column;gap:9px;margin-top:12px}
  .btn-primary,.btn-secondary{width:100%;justify-content:center;padding:11px 0;font-size:15px}
  .hero-visual{
    position:relative;align-self:stretch;height:258px;min-height:222px;
    margin:14px -22px 6px;perspective:none;
  }
  .hero-visual::before{
    content:"";position:absolute;inset:-4% -10%;
    background:radial-gradient(55% 60% at 52% 50%,rgba(0,84,249,.13),rgba(92,10,250,.07) 55%,rgba(249,248,253,0) 78%);
    pointer-events:none;
  }
  .node-tilt{justify-content:center;align-items:center}
  .node-tilt svg{height:104%;width:auto;margin:0;filter:drop-shadow(0 14px 34px rgba(0,84,249,.18))}
  #node-3d{
    inset:-8% 0 -16% 0;
    -webkit-mask-image:linear-gradient(180deg,#000 70%,transparent 97%);
    mask-image:linear-gradient(180deg,#000 70%,transparent 97%);
  }
  .hero-trust{margin-top:10px;font-size:12.5px;gap:4px 14px}
  .hero::before{display:none}
  /* stack the marquee label: a rigid 168px basis left only ~65px of unfaded track */
  .stack-row{flex-direction:column}
  .stack-row-label{flex:none;border-right:none;border-bottom:1px solid var(--border)}
  .pl-grid{
    grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:86%;
    gap:12px;margin-top:32px;
    overflow-x:auto;scroll-snap-type:x mandatory;
    scrollbar-width:none;-webkit-overflow-scrolling:touch;
  }
  .pl-grid::-webkit-scrollbar{display:none}
  .pl-panel{scroll-snap-align:center}
  .pl-swipe{display:flex}
  .pl-code{font-size:11px}
  .pl-prompt{font-size:12px}
  .pl-foot{margin-top:24px;font-size:13px}
  .fe-cols{grid-template-columns:1fr;gap:20px}
  .cred-bar{gap:8px}
  .cred-chip{font-size:12.5px;padding:7px 14px;white-space:normal;text-align:center}
  /* one column: at two tracks the copy runs flush into the divider and the measure drops to ~130px */
  .not-grid{margin-top:40px;grid-template-columns:1fr}
  .not-card{padding:24px 0}
  .not-card:nth-child(odd){border-right:none}
  .not-card:nth-child(even){padding-left:0}
  .steps-tl{grid-template-columns:1fr;gap:34px;margin-top:44px}
  .tl-line{top:0;bottom:0;left:8px;right:auto;width:2px;height:auto}
  .tl-step{padding-top:0;padding-left:40px}
  .tl-node{top:2px}
  .start-grid{grid-template-columns:1fr;gap:34px}
  .form-card{padding:28px 22px}
  .f-row{grid-template-columns:1fr}
  .footer-inner{flex-direction:column;align-items:flex-start;gap:18px}
  .orn,.grid-patch{display:none}
}

/* ===== reverted-section card CSS (restored from pre-detemplate) ===== */
.sec-label{
  font-size:12.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--blue);margin-bottom:18px;
}
.sec-dark .sec-label{color:#8FB0FF}
/* ───────── PROBLEM (dark) ───────── */
.problem-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:54px}
.p-card{
  background:var(--dark-card);border:1px solid var(--dark-border);border-radius:14px;
  padding:30px 28px;transition:border-color .25s,background-color .25s;
}
.p-card:hover{border-color:rgba(143,176,255,.45);background:rgba(255,255,255,.06)}
.p-card h3{font-family:var(--fd);font-weight:700;font-size:19.5px;line-height:1.3;color:#fff;margin-bottom:14px;letter-spacing:-.01em}
.p-card p{font-size:15px;line-height:1.65;color:var(--dark-body)}
/* five-moments variant: reuses .p-card but flexes 3-then-2-centered so five cards don't leave a hole.
   Base .problem-grid stays a hardcoded 3-col for its 3-card uses. */
.diy-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:20px;margin-top:54px}
.diy-grid .p-card{flex:0 1 calc(33.333% - 14px);margin:0}
.diy-grid .p-card h3{margin-bottom:0}
@media (max-width:900px){.diy-grid{margin-top:40px}.diy-grid .p-card{flex-basis:100%}}

/* ───────── FINANCE ENGINEER (dark) ───────── */
.fe-cols{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:34px}
.fe-cols p{font-size:16px;line-height:1.7;color:var(--dark-body)}
.fe-quote{
  margin:64px auto 0;max-width:860px;text-align:center;
}
.fe-quote blockquote{
  font-family:var(--fd);font-weight:600;font-style:italic;
  font-size:clamp(21px,2.4vw,29px);line-height:1.45;letter-spacing:-.01em;color:#fff;
}
.fe-quote blockquote .qmark{color:var(--violet-light)}
.fe-quote cite{display:block;margin-top:18px;font-style:normal;font-size:14.5px;color:var(--dark-body)}
.cred-bar{
  display:flex;flex-wrap:wrap;justify-content:center;gap:10px;
  margin-top:54px;
}
.cred-chip{
  font-size:13.5px;font-weight:500;color:#D7DEF0;
  border:1px solid var(--dark-border);border-radius:999px;
  padding:8px 18px;white-space:nowrap;
}
/* ───────── WHY NOW (light) ───────── */
.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:54px}
.stat-card{
  background:#fff;border:1px solid var(--border);border-radius:14px;
  padding:30px 28px;transition:box-shadow .25s,border-color .25s;
}
.stat-card:hover{box-shadow:0 14px 38px rgba(10,16,36,.07);border-color:#C7D2FE}
.stat-num{
  font-family:var(--fd);font-weight:700;font-size:42px;letter-spacing:-.02em;line-height:1;
  background:linear-gradient(100deg,var(--blue),var(--violet));
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
  margin-bottom:14px;
}
.stat-card p{font-size:15px;line-height:1.55;color:var(--body)}
.stat-src{display:block;margin-top:10px;font-size:12.5px;color:#94A3B8}
.why-close{
  margin:54px auto 0;max-width:760px;text-align:center;
  font-family:var(--fd);font-weight:700;font-size:20.5px;line-height:1.5;color:var(--navy);letter-spacing:-.01em;
}
/* ───────── depth & color system ───────── */
/* gradient keywords in headlines — the hero's signature, carried through */
.gk{
  background:linear-gradient(100deg,var(--blue) 5%,var(--violet) 65%,#8B68F8 100%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}
.sec-dark .gk{
  background:linear-gradient(100deg,#4D8DFF 5%,#8F6FF8 60%,#B59AFF 100%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}

/* light-section cards: layered shadow + gradient border ignition on hover */
.stat-card{
  box-shadow:0 1px 2px rgba(10,16,36,.04),0 8px 24px rgba(10,16,36,.04);
}
.stat-card:hover{
  border-color:transparent;
  background:
    linear-gradient(#fff,#fff) padding-box,
    linear-gradient(135deg,rgba(0,84,249,.55),rgba(92,10,250,.55)) border-box;
  box-shadow:0 2px 4px rgba(10,16,36,.05),0 18px 44px rgba(10,16,36,.10),0 0 0 4px rgba(0,84,249,.04);
}

/* dark-section cards: lit top edge + gradient border ignition */
.p-card{
  background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.022)) padding-box;
  border:1px solid var(--dark-border);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
}
.p-card:hover{
  background:
    linear-gradient(180deg,rgba(23,30,55,.96),rgba(13,19,40,.96)) padding-box,
    linear-gradient(135deg,rgba(0,84,249,.65),rgba(143,104,248,.65)) border-box;
  border-color:transparent;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 18px 44px rgba(0,0,0,.35);
}
/* The "quote shimmer" construct that lived here referenced @keyframes shimmer, which was never
   defined anywhere, so the sweep never ran: the gradient sat parked at background-position:120%,
   where the visible band is solid #fff, and the quote simply rendered white. Removing it leaves
   .qtext inheriting color:#fff from .fe-quote blockquote, which is pixel-identical to before,
   and drops a transparent-text-fill that would have gone invisible in forced-colors mode. */
@media (max-width:900px){
.problem-grid{grid-template-columns:1fr;margin-top:40px}
.fe-cols{grid-template-columns:1fr;gap:20px}
.cred-bar{gap:8px}
.cred-chip{font-size:12.5px;padding:7px 14px;white-space:normal;text-align:center}
.stats-grid{grid-template-columns:1fr;margin-top:40px}
}

/* ══════════ multi-page additions (pricing / about / contact / shared) ══════════ */
.nav-links a.active{color:var(--navy);font-weight:700}
.first-sec{padding-top:170px}
@media (max-width:900px){.first-sec{padding-top:130px}}
.btn-secondary.on-dark{color:#fff;border-color:rgba(255,255,255,.35)}
.btn-secondary.on-dark:hover{border-color:#fff;color:#fff}
.teaser-link{margin-top:26px}
.mode-link{display:inline-block;font-weight:700;font-size:15px;color:var(--blue);text-decoration:none;margin-top:16px}
.mode-link:hover{text-decoration:underline}

/* two ways we engage */
.modes-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:44px}
.mode-card{background:#fff;border:1px solid var(--border);border-radius:16px;padding:34px 30px;box-shadow:0 2px 14px rgba(10,16,36,.04);display:flex;flex-direction:column}
.mode-card h3{font-family:var(--fd);font-weight:800;font-size:21px;letter-spacing:-.01em;color:var(--navy);margin-bottom:12px}
/* flex:1 makes the two CTAs share a baseline structurally, not by luck of line count */
.mode-card p{font-size:15px;line-height:1.7;color:var(--body);flex:1}
.mode-card .mode-link{align-self:flex-start}
@media (max-width:900px){.modes-grid{grid-template-columns:1fr}}

/* pricing header lines */
.transparency{margin-top:18px;font-family:var(--fm);font-size:13px;color:var(--blue)}
.scope-line{margin-top:8px;font-size:13.5px;color:var(--muted);max-width:640px}

/* tier cards */
.tiers-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;align-items:stretch;margin-top:44px}
.tier-card{position:relative;background:#fff;border:1px solid var(--border);border-radius:16px;padding:26px 22px;display:flex;flex-direction:column;box-shadow:0 2px 14px rgba(10,16,36,.04)}
.tier-card.featured{border:2px solid var(--blue);box-shadow:0 8px 28px rgba(0,84,249,.14)}
.tier-badge{position:absolute;top:-12px;left:22px;background:var(--blue);color:#fff;font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:4px 11px;border-radius:20px}
.tier-name{font-family:var(--fd);font-weight:800;font-size:20px;color:var(--navy)}
.tier-tag{font-size:12.5px;color:var(--muted);margin:3px 0 16px;min-height:32px}
.tier-price{font-family:var(--fd);font-weight:800;font-size:30px;color:var(--navy);letter-spacing:-.02em}
.tier-price .unit{font-size:13px;font-weight:500;color:var(--muted);letter-spacing:0}
.tier-price-talk{font-size:21px;padding-top:6px}
.tier-cumul{font-size:11px;color:var(--muted);margin:4px 0 14px;border-bottom:1px solid var(--border);padding-bottom:14px}
.tier-who{font-size:13.5px;line-height:1.6;color:var(--body);margin-bottom:14px}
.tier-list{list-style:none;margin:0 0 20px;padding:0;flex:1}
.tier-list li{display:flex;gap:9px;align-items:flex-start;font-size:13px;line-height:1.55;color:var(--body);margin-bottom:9px}
.tier-list li svg{flex-shrink:0;margin-top:2px}
.tier-ent{font-size:12.5px;line-height:1.65;color:var(--body);margin-bottom:12px}
/* margin-top:auto pins the CTA for Enterprise too, which has no flex:1 .tier-list to push it down */
.tier-cta{justify-content:center;text-align:center;width:100%;font-size:14.5px;padding:12px 16px;margin-top:auto}
a.btn-primary.tier-cta{width:100%;justify-content:center}
/* once the featured card leaves the top row its -12px badge eats the 16px row gap */
@media (max-width:1100px){.tiers-grid{grid-template-columns:1fr 1fr;row-gap:34px}}
@media (max-width:640px){.tiers-grid{grid-template-columns:1fr}}

/* in-house anchor */
.anchor-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:44px}
.anchor-card{background:var(--dark-card);border:1px solid var(--dark-border);border-radius:16px;padding:30px 28px}
.anchor-card.is-opexi{border-color:rgba(143,176,255,.45)}
.anchor-label{font-family:var(--fm);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--violet-light);margin-bottom:16px}
.anchor-card.is-opexi .anchor-label{color:#8FB0FF}
.anchor-list{list-style:none;margin:0;padding:0}
.anchor-list li{font-size:15px;line-height:1.65;color:var(--dark-body);padding:9px 0;border-bottom:1px solid var(--dark-border)}
.anchor-list li:last-child{border-bottom:none}
.anchor-kicker{margin-top:30px;font-family:var(--fd);font-weight:700;font-size:19px;color:#fff;letter-spacing:-.01em}
@media (max-width:900px){.anchor-grid{grid-template-columns:1fr}}

/* comparison tables */
.table-title{font-family:var(--fd);font-weight:800;font-size:18px;color:var(--navy);margin:46px 0 14px;letter-spacing:-.01em}
/* the right-edge shadow is the only cue that Growth/Command are off-screen below 640px.
   The white `local` layer travels with the content and erases the cue at the end of the scroll. */
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--border);border-radius:14px;
  background:
    linear-gradient(270deg,#fff,rgba(255,255,255,0)) right center/44px 100% no-repeat local,
    linear-gradient(270deg,rgba(10,16,36,.13),rgba(10,16,36,0)) right center/14px 100% no-repeat scroll,
    #fff}
.plan-table{width:100%;border-collapse:collapse;min-width:640px}
.plan-table th{font-family:var(--fm);font-size:11.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);text-align:left;padding:14px 18px;border-bottom:1px solid var(--border);background:#FBFBFE}
.plan-table th:not(:first-child),.plan-table td.ck{text-align:center;width:96px}
.plan-table td{font-size:13.5px;line-height:1.5;color:var(--body);padding:11px 18px;border-bottom:1px solid var(--border)}
.plan-table tbody tr:last-child td{border-bottom:none}
.plan-table td.ck{color:var(--blue);font-weight:800;font-size:15px}
.plan-table tbody tr:hover{background:#F7F9FF}

/* faq */
.faq{margin-top:38px;max-width:820px}
.faq details{background:#fff;border:1px solid var(--border);border-radius:12px;padding:0 22px;margin-bottom:12px}
.faq summary{cursor:pointer;font-family:var(--fd);font-weight:700;font-size:16px;color:var(--navy);padding:18px 0;list-style:none;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:2px;top:50%;transform:translateY(-50%);font-size:20px;color:var(--blue);font-weight:600}
.faq details[open] summary::after{content:"\2212"}
.faq details p{font-size:14.5px;line-height:1.7;color:var(--body);padding:0 0 18px}

/* about */
.about-body{max-width:780px;margin-top:26px}
.about-body p{font-size:16px;line-height:1.75;color:var(--body);margin-bottom:18px}
.founders-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:44px}
.founder-card{background:var(--dark-card);border:1px solid var(--dark-border);border-radius:16px;padding:30px 28px}
.founder-photo{width:128px;height:128px;border-radius:16px;object-fit:cover;border:1px solid var(--dark-border);margin-bottom:18px}
.founder-card h3{font-family:var(--fd);font-weight:800;font-size:21px;color:#fff;letter-spacing:-.01em}
.founder-role{font-family:var(--fm);font-size:12px;letter-spacing:.05em;text-transform:uppercase;color:#8FB0FF;margin:4px 0 14px}
.founder-card p{font-size:14.5px;line-height:1.7;color:var(--dark-body)}
.founder-li{display:inline-flex;align-items:center;gap:8px;margin-top:16px;color:#8FB0FF;font-size:13.5px;font-weight:600;text-decoration:none;transition:color .2s}
.founder-li:hover{color:#fff}
/* bios differ by ~2 lines: pin the LinkedIn links to a shared baseline */
.founder-card{display:flex;flex-direction:column;align-items:flex-start}
.founder-card .founder-li{margin-top:auto;padding-top:16px}
.notline{margin-top:22px;font-family:var(--fd);font-weight:800;font-size:20px;color:var(--navy);letter-spacing:-.01em}
@media (max-width:900px){.founders-grid{grid-template-columns:1fr}}

/* Card transitions. Every card also carries .reveal, and "html.js .reveal" (0-2-1) outranks a
   bare card class (0-1-0), so each card's own transition never applied and the existing
   .p-card / .stat-card hovers snapped instead of easing. Match that specificity to win, and
   re-declare the reveal's own opacity/transform here so the fade-in still runs. */
html.js .p-card,html.js .stat-card,html.js .mode-card,html.js .tier-card,
html.js .anchor-card,html.js .founder-card{
  transition:opacity .45s ease,transform .45s ease,
             box-shadow .25s,border-color .25s,background-color .25s;
}
@media (prefers-reduced-motion:reduce){
  html.js .p-card,html.js .stat-card,html.js .mode-card,html.js .tier-card,
  html.js .anchor-card,html.js .founder-card{transition:none}
}
/* card hover parity: these families sat inert next to .p-card / .stat-card, which ignite */
.mode-card:hover,.tier-card:not(.featured):hover{border-color:#C7D2FE;box-shadow:0 14px 38px rgba(10,16,36,.07)}
.tier-card.featured:hover{box-shadow:0 12px 34px rgba(0,84,249,.18)}
.anchor-card:hover,.founder-card:hover{border-color:rgba(143,176,255,.45);background:rgba(255,255,255,.06)}
.faq summary{transition:color .2s}
.faq summary:hover{color:var(--blue)}
