:root{
  /* signal — electric lime, identical in both themes */
  --lime:#C8FF00;
  --maxw:1180px;

  /* dark (default) */
  --bg:#0B0B0C; --bg-2:#121214;
  --fg:#fff;
  --accent:#C8FF00;                 /* signal as readable text accent */
  --muted:rgba(255,255,255,.52); --muted-2:rgba(255,255,255,.34);
  --line:rgba(255,255,255,.12);
  --rot:#55565A; --rot-dim:#3a3b3f; /* the dead-log gray of the intro */
  --flash:#ffffff;                  /* ignited phrases snap to this before going lime */
  --link:#2E2F33;                   /* settled graph edges */
  --wire:rgba(255,255,255,.45);     /* edge stroke while it draws + twangs */
  --wire-gold:#4a4b51;              /* golden-path edges, settled (pre-traversal) */
  --grain-blend:overlay; --grain-opacity:.05;
  /* inverted card — light paper on the dark page (deck, callouts, reader) */
  --card-bg:#F3F2EC; --card-fg:#0B0B0C; --card-sub:#33332c;
  --card-tag:#6b6b60; --card-line:rgba(0,0,0,.1);
  --card-shadow:0 40px 120px rgba(0,0,0,.5);
  --card-accent:#5C7A00;            /* signal darkened to read on paper */
  --card-code:rgba(0,0,0,.055);
  color-scheme:dark;
}
html[data-theme="light"]{
  /* light — same directive: paper page, lime stays the signal,
     the card inverts the other way (to ink) to keep the contrast */
  --bg:#FFFFFF; --bg-2:#F4F3EF;
  --fg:#15150F;
  --accent:#5C7A00;                 /* darkened signal so it reads on white */
  --muted:rgba(20,20,12,.60); --muted-2:rgba(20,20,12,.40);
  --line:rgba(11,11,12,.12);
  --rot:#a8a89e; --rot-dim:#c6c6bd;
  --flash:#15150F;
  --link:#d8d7cd;
  --wire:rgba(11,11,12,.42);
  --wire-gold:#b9b8ae;
  --grain-blend:multiply; --grain-opacity:.035;
  --card-bg:#0B0B0C; --card-fg:#F3F2EC; --card-sub:#cdccc2;
  --card-tag:#8a8a7e; --card-line:rgba(255,255,255,.14);
  --card-shadow:0 18px 44px rgba(20,20,15,.13);
  --card-accent:#C8FF00;            /* full lime reads on ink */
  --card-code:rgba(255,255,255,.08);
  color-scheme:light;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--fg);font-family:Inter,system-ui,sans-serif;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;line-height:1.5;
  transition:background-color .45s ease,color .45s ease}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px}
.mono{font-family:"Space Mono",monospace;text-transform:uppercase;letter-spacing:.18em;font-size:11px}

/* bilingual: exactly one language renders, driven by html[data-lang] */
html[data-lang="en"] .i18n[lang="es"]{display:none!important}
html[data-lang="es"] .i18n[lang="en"]{display:none!important}

/* grain overlay */
.grain{position:fixed;inset:0;pointer-events:none;z-index:60;opacity:var(--grain-opacity);mix-blend-mode:var(--grain-blend);
  background-image:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%22120%22 height=%22120%22%3E%3Cfilter id=%22n%22%3E%3CfeTurbulence type=%22fractalNoise%22 baseFrequency=%220.9%22 numOctaves=%222%22/%3E%3C/filter%3E%3Crect width=%22100%25%22 height=%22100%25%22 filter=%22url(%23n)%22/%3E%3C/svg%3E")}

/* nav */
nav{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:18px;
  padding:20px 28px;mix-blend-mode:difference}
nav .brand{font-family:"Space Mono",monospace;font-weight:700;letter-spacing:.02em;font-size:14px;color:#fff;white-space:nowrap}
nav .brand b{color:var(--lime)}
nav .navlinks{display:flex;gap:22px;flex-wrap:wrap;justify-content:center}
nav .navlinks a{font-family:"Space Mono",monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:#fff;opacity:.72;transition:opacity .2s}
nav .navlinks a:hover{opacity:1}
nav .navcta{font-family:"Space Mono",monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  border:1px solid #fff;border-radius:100px;padding:8px 16px;color:#fff;transition:.25s;white-space:nowrap}
nav .nav-right{display:flex;align-items:center;gap:14px}
nav .navcta:hover{background:#fff;color:#000}
.lang-toggle{display:inline-flex;align-items:center;gap:5px;border:1px solid #fff;border-radius:100px;
  padding:9px 13px;background:transparent;color:#fff;cursor:pointer;font-family:"Space Mono",monospace;
  font-size:10px;letter-spacing:.12em;text-transform:uppercase;transition:.25s;-webkit-appearance:none;appearance:none}
.lang-toggle:hover{transform:translateY(-1px)}
.lang-toggle i{font-style:normal;opacity:.4}
.lang-toggle span{opacity:.4;transition:.25s}
html[data-lang="en"] .lang-toggle [data-l="en"]{opacity:1;color:var(--lime)}
html[data-lang="es"] .lang-toggle [data-l="es"]{opacity:1;color:var(--lime)}
.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;
  border:1px solid #fff;border-radius:50%;background:transparent;color:#fff;cursor:pointer;padding:0;
  transition:transform .25s,background-color .25s}
.theme-toggle:hover{transform:rotate(20deg) scale(1.06)}
.theme-toggle svg{width:17px;height:17px;display:block}
.theme-toggle .ico-moon{display:none}
html[data-theme="light"] .theme-toggle .ico-sun{display:none}
html[data-theme="light"] .theme-toggle .ico-moon{display:block}
@media(max-width:1080px){nav .navlinks{display:none}}

/* HERO — "The Collapse". The stage (wall, graph, fx canvas, QA) is decorative,
   JS-built and JS-labeled; the copy resolves over it in act 2. */
html.locked{overflow:hidden}
.hero{position:relative;min-height:100svh;display:flex;align-items:center;overflow:hidden}
/* copy sits above the stage but must never block it (or the scroll cue) — only
   the CTA row is interactive */
.hero-inner{position:relative;z-index:7;width:100%;text-align:center;pointer-events:none}
.hero .kicker{color:var(--accent);margin-bottom:26px;display:flex;align-items:center;justify-content:center;gap:12px}
.hero .kicker span.dot{width:7px;height:7px;border-radius:50%;background:var(--lime);box-shadow:0 0 14px var(--lime);
  animation:pulse 2.4s infinite;flex:none}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.3}}
/* the billboard promise is the hero — centred, two deliberate lines, the payoff in lime */
.hero h1.hero-h1{font-family:Fraunces,serif;font-weight:300;font-size:clamp(34px,7.4vw,96px);line-height:1.02;
  letter-spacing:-.02em;margin:0 0 14px;text-align:center}
.hero h1.hero-h1 em{font-style:italic;font-weight:600;color:var(--accent)}
.hero .brandline{color:var(--muted-2);margin:2px 0 26px}
/* the stage — every layer decorative, none interactive */
.hero-stage{position:absolute;inset:0;z-index:4;pointer-events:none}
/* the geometric brain — WebGL backdrop (brain.js), behind every stage layer;
   brain.js drives opacity, so a missing module simply leaves it invisible */
#brain3d{position:absolute;inset:0;z-index:0;opacity:0}
/* the wall of rot — built by JS, collapses under gravity in act 1 */
.hero-stage .wall{position:absolute;inset:0;z-index:1;overflow:hidden;will-change:transform;
  font-family:Inter,system-ui,sans-serif;font-size:13px;line-height:26px;color:var(--rot)}
.hero-stage .rw{white-space:nowrap;padding-left:3vw}
.hero-stage .ts{font-family:"Space Mono",monospace;font-size:10px;letter-spacing:.06em;color:var(--rot-dim);margin-right:12px}
.hero-stage .fg{display:inline-block;will-change:transform,opacity}
.hero-stage .anch{display:inline-block}
.hero-stage .frx{position:absolute;left:0;right:0;height:1px;background:var(--line);opacity:0;z-index:2}
.hero-stage .tear{position:absolute;left:0;right:0;top:50%;height:1px;background:var(--flash);opacity:0;
  transform:scaleX(0);z-index:2}
/* the inferred graph: spring edges (SVG), stamped labels, typed chips */
#graph{position:absolute;inset:0;z-index:3;will-change:transform,opacity}
#edgeSvg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
#edgeSvg path{fill:none;stroke:var(--link);stroke-width:1;visibility:hidden}
#labels,#chips{position:absolute;inset:0}
.elabel{position:absolute;left:0;top:0;font-family:"Space Mono",monospace;font-size:10px;
  letter-spacing:.12em;text-transform:uppercase;color:var(--muted-2);background:var(--bg);
  border-radius:100px;padding:4px 10px;white-space:nowrap;visibility:hidden;will-change:transform,opacity}
/* a chip is a miniature atomic note — type header on top, content below,
   two lines so a first-time viewer can actually read what just got filed */
.chip{position:absolute;left:0;top:0;display:flex;flex-direction:column;align-items:flex-start;gap:5px;
  padding:10px 15px 11px;border:1px solid var(--line);border-radius:14px;background:var(--bg);
  white-space:nowrap;visibility:hidden;will-change:transform,opacity}
.chip .hd{display:flex;align-items:center;gap:7px;font-family:"Space Mono",monospace;font-size:10px;
  letter-spacing:.14em;text-transform:uppercase}
.chip .ty{color:var(--muted)}
.chip .ph{font-size:14.5px;line-height:1.25;color:var(--fg)}
.chip svg{display:block;overflow:visible;flex:none}
.chip .glow{position:absolute;inset:-1px;border-radius:14px;pointer-events:none;opacity:0;
  box-shadow:0 0 26px rgba(200,255,0,.35),0 0 7px rgba(200,255,0,.3)}
/* pure-lime halo vanishes on paper — the light theme glows in the readable signal */
html[data-theme="light"] .chip .glow{box-shadow:0 0 26px rgba(92,122,0,.26),0 0 7px rgba(92,122,0,.2)}
/* the ignited phrases that leap out of the rubble */
#floats{position:absolute;inset:0;z-index:4}
.float{position:absolute;left:0;top:0;font-size:13px;color:var(--rot);white-space:nowrap;
  visibility:hidden;will-change:transform,opacity;text-shadow:0 0 0px rgba(200,255,0,0)}
/* ONE canvas: ash + ember trails + comet */
#fx{position:absolute;inset:0;z-index:2}
/* the conversation with the brain: a centred column of two speech bubbles.
   Both INVERT against the page so they read as a chat overlay, a different
   species from the dark note chips: the question on inverted paper (white
   on dark, near-black on light), the reply in the brain's own lime — its
   tail pointing down at the brain that produced it */
.qa{position:absolute;left:50%;top:12%;transform:translateX(-50%);z-index:6;
  width:min(92vw,680px);display:flex;flex-direction:column;align-items:center;gap:12px;
  visibility:hidden;will-change:transform,opacity}
.qa .bub{position:relative;max-width:100%;border-radius:18px;padding:12px 20px;
  box-shadow:0 14px 44px rgba(0,0,0,.35);visibility:hidden;will-change:transform,opacity}
.qa .bub-q{font-family:"Space Mono",monospace;font-size:13px;letter-spacing:.08em;
  background:var(--fg);color:var(--bg);text-align:center}
.qa .pre{color:inherit;opacity:.55}
.qa .caret{display:inline-block;width:7px;height:14px;background:currentColor;margin-left:3px;
  vertical-align:-2px;animation:blink 1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}
/* the lime stays lime in both themes (like .btn-lime), so the reply always
   reads as the signal speaking; entities carry bold dark emphasis */
.qa .bub-a{font-size:14.5px;line-height:1.6;background:var(--lime);color:#0B0B0C;
  text-align:left;text-wrap:pretty}
.qa .bub-a b{color:#0B0B0C;font-weight:700}
/* the reply's tail: a rotated lime square pointing at the brain */
.qa .bub-a::after{content:"";position:absolute;left:50%;bottom:-5px;width:12px;height:12px;
  background:var(--lime);transform:translateX(-50%) rotate(45deg)}
/* the act-1 narrator: one subtitle line per beat, in the spot the question inherits.
   Centred via GSAP xPercent (set at creation), not CSS translateX(-50%) — a CSS percentage
   would be baked to stale pixels the first time a tween touches the transform. */
.scap{position:absolute;left:50%;bottom:11%;z-index:6;text-align:center;
  max-width:92vw;white-space:nowrap;font-family:"Space Mono",monospace;font-size:12px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--muted);background:var(--bg);border-radius:100px;padding:7px 16px;
  visibility:hidden;will-change:transform,opacity}
/* act 2: the H1's words fly in from the node positions */
.hero-h1 .w{display:inline-block;will-change:transform,opacity,filter}
.btn-dot{width:7px;height:7px;border-radius:50%;background:#0B0B0C;flex:none;animation:pulse 2.4s infinite}

html.intro .hero-inner{opacity:0}
/* safety: if the intro errors out, force the hero copy visible past any inline GSAP styles
   and drop the stage — content is never trapped behind the theatre */
html.no-intro .hero-h1,html.no-intro .hero-step{visibility:visible!important;opacity:1!important;transform:none!important;filter:none!important}
html.no-intro .hero-inner{opacity:1!important}
html.no-intro .hero-stage{display:none!important}
html.no-intro .scrollcue{visibility:visible!important;opacity:1!important}
@media(max-width:640px){
  .chip{padding:8px 12px 9px;gap:4px;border-radius:12px}
  .chip .hd{font-size:9px}
  .chip .ph{font-size:12.5px}
  .elabel{font-size:9px;padding:3px 8px}
  .qa{top:9%;gap:10px}
  .qa .bub{padding:10px 14px;border-radius:14px}
  .qa .bub-q{font-size:11.5px}
  .qa .bub-a{font-size:13px}
  .scap{bottom:12%;font-size:10px;white-space:normal;max-width:88vw;border-radius:16px}
}
.hero p.sub{max-width:600px;margin:0 auto;font-size:clamp(15px,1.5vw,18px);color:var(--muted);line-height:1.6;text-wrap:pretty}
.hero .actions{margin-top:40px;display:flex;gap:14px;flex-wrap:wrap;align-items:center;justify-content:center;pointer-events:auto}
.btn{font-family:"Space Mono",monospace;text-transform:uppercase;letter-spacing:.12em;font-size:12px;
  padding:16px 26px;border-radius:100px;display:inline-flex;align-items:center;gap:10px;transition:.25s;cursor:pointer;
  border:1px solid transparent;background:transparent;color:inherit;-webkit-appearance:none;appearance:none}
.btn-lime{background:var(--lime);color:#0B0B0C;font-weight:700}
.btn-ghost{border-color:var(--line);color:var(--fg)}
.btn-lime:hover{transform:translateY(-2px);box-shadow:0 12px 40px rgba(200,255,0,.28)}
.btn-ghost:hover{border-color:var(--fg)}
.arrow{transition:transform .25s}
.btn:hover .arrow{transform:translateX(4px)}
/* doubles as the act-2 trigger at the resting state (click resolves the hero) */
.scrollcue{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);z-index:7;color:var(--muted-2);
  font-family:"Space Mono",monospace;font-size:10px;letter-spacing:.2em;text-transform:uppercase;display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer}
.scrollcue i{width:1px;height:34px;background:linear-gradient(var(--accent),transparent);display:block;animation:cue 1.8s 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}}

/* reveal — the hidden initial state exists only while JS is live (html.js),
   so a blocked script can never leave the page empty */
.reveal{transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1)}
html.js .reveal{opacity:0;transform:translateY(34px)}
html.js .reveal.in{opacity:1;transform:none}

/* sections */
section{position:relative;z-index:3}
.band{padding:120px 0;border-top:1px solid var(--line)}
.eyebrow{color:var(--accent);margin-bottom:22px}
.h2{font-family:Fraunces,serif;font-weight:300;font-size:clamp(34px,5.5vw,68px);line-height:1.02;letter-spacing:-.02em}
.h2 em{font-style:italic;font-weight:600;color:var(--accent)}
.lead{max-width:640px;color:var(--muted);font-size:clamp(16px,1.7vw,19px);margin-top:24px;line-height:1.65}
.lead strong{color:var(--fg);font-weight:600}

.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:70px;background:var(--line);border:1px solid var(--line)}
.cell{background:var(--bg);padding:40px 34px;min-height:300px;display:flex;flex-direction:column;transition:background-color .4s}
.cell:hover{background:var(--bg-2)}
.cell .num{font-family:"Space Mono",monospace;color:var(--accent);font-size:12px;letter-spacing:.1em}
.cell h3{font-family:Fraunces,serif;font-weight:400;font-size:30px;margin:auto 0 14px;line-height:1.05;padding-top:22px}
.cell p{color:var(--muted);font-size:15px;line-height:1.6}
.cell p a{text-decoration:underline;text-underline-offset:3px}
.cell .cellact{margin-top:18px}

/* inverted card (deck cards, callouts) */
.sample{background:var(--card-bg);color:var(--card-fg);border-radius:22px;padding:clamp(28px,4vw,52px);max-width:720px;margin:60px auto 0;
  box-shadow:var(--card-shadow);position:relative;transition:background-color .45s ease,color .45s ease}
.sample .tag{font-family:"Space Mono",monospace;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--card-tag);display:flex;justify-content:space-between}
.sample .tag b{color:var(--card-fg)}
.sample h4{font-family:Fraunces,serif;font-weight:600;font-size:clamp(24px,3.4vw,34px);line-height:1.12;margin:18px 0 16px;letter-spacing:-.01em}
.sample .body{font-size:16px;line-height:1.7;color:var(--card-sub)}
.sample .hl{background:var(--lime);padding:0 4px;border-radius:3px;color:#0B0B0C;font-weight:500}

/* proof cards (two-up) */
.people{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin-top:70px;background:var(--line);border:1px solid var(--line)}
.person{background:var(--bg);padding:44px 38px;transition:background-color .4s}
.person:hover{background:var(--bg-2)}
.person h3{font-family:Fraunces,serif;font-weight:400;font-size:clamp(24px,2.6vw,30px);margin-bottom:4px}
.person .role{font-family:"Space Mono",monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin:6px 0 16px}
.person p{color:var(--muted);font-size:15px;line-height:1.65}
.person p+p{margin-top:12px}
.person p strong{color:var(--fg);font-weight:600}
.statline{margin-top:44px;font-family:"Space Mono",monospace;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted-2);line-height:2}

/* section-closing actions */
.actions-row{margin-top:52px;display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.actions-row.center{justify-content:center}

/* Start Here — the four blocks of the single conversion section */
.bhead{font-family:"Space Mono",monospace;font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--fg);margin:96px 0 0;display:flex;align-items:center;gap:14px;scroll-margin-top:90px}
.bhead b{color:var(--accent);font-weight:700}
.bhead::after{content:"";flex:1;height:1px;background:var(--line)}
.bhead+.grid3{margin-top:44px}
.bhead+.hub-main{margin-top:44px}
.bhead+.steps{margin-top:40px}
.bhead+.lead{margin-top:20px}

/* file chips — every deep reference opens the embedded reader, never leaves the page */
.chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}
.chips .chips-label{font-family:"Space Mono",monospace;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted-2);align-self:center;margin-right:4px}
.filechip{font-family:"Space Mono",monospace;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;
  border:1px solid var(--line);border-radius:100px;padding:9px 16px;color:var(--muted);background:transparent;cursor:pointer;
  display:inline-flex;align-items:center;gap:8px;transition:.25s;-webkit-appearance:none;appearance:none}
.filechip b{color:var(--accent);font-weight:700}
.filechip:hover{border-color:var(--accent);color:var(--fg);transform:translateY(-1px)}

/* quickstart steps */
.steps{margin-top:64px;border-top:1px solid var(--line)}
.step{display:grid;grid-template-columns:90px 1fr;gap:26px;padding:36px 0;border-bottom:1px solid var(--line)}
.step .n{font-family:"Space Mono",monospace;color:var(--accent);font-size:13px;letter-spacing:.1em;padding-top:8px}
.step h3{font-family:Fraunces,serif;font-weight:400;font-size:clamp(22px,2.6vw,30px);line-height:1.12;margin-bottom:10px}
.step h3 .say{font-style:italic;font-weight:600;color:var(--accent)}
.step p{color:var(--muted);font-size:15px;line-height:1.65;max-width:660px}
@media(max-width:640px){.step{grid-template-columns:1fr;gap:8px}.step .n{padding-top:0}}

/* download hub */
.hub-main{margin-top:64px;text-align:center;padding:64px 28px;border:1px solid var(--line);border-radius:22px;background:var(--bg-2)}
.hub-main .btn{font-size:13px;padding:20px 34px}
.hub-note{margin-top:20px;font-family:"Space Mono",monospace;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-2);line-height:2}
.filerows{margin-top:26px;border:1px solid var(--line);background:var(--line);display:grid;gap:1px}
.filerow{display:flex;align-items:center;gap:18px;padding:22px 26px;background:var(--bg);flex-wrap:wrap;transition:background-color .4s}
.filerow:hover{background:var(--bg-2)}
.filerow .fname{font-family:"Space Mono",monospace;font-weight:700;font-size:14px;min-width:110px}
.filerow .fdesc{color:var(--muted);font-size:14px;flex:1;min-width:220px}
.filerow .fsize{font-family:"Space Mono",monospace;font-size:11px;letter-spacing:.1em;color:var(--muted-2);min-width:52px;text-align:right}
.filerow .btn{padding:10px 18px;font-size:10.5px}

/* honest part prose */
.prose{max-width:680px;margin-top:34px}
.prose p{color:var(--muted);font-size:clamp(16px,1.7vw,18px);line-height:1.7}
.prose p+p{margin-top:18px}
.prose strong{color:var(--fg);font-weight:600}
.prose em{color:var(--accent);font-style:italic}

/* FAQ */
.faq{margin-top:64px;border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:20px;
  padding:26px 0;font-family:Fraunces,serif;font-size:clamp(19px,2.2vw,24px);font-weight:400;line-height:1.2}
.faq summary::-webkit-details-marker{display:none}
.faq summary .ind{font-family:"Space Mono",monospace;color:var(--accent);transition:transform .3s;font-size:18px;flex:none}
.faq details[open] summary .ind{transform:rotate(45deg)}
.faq .a{padding:0 0 28px;color:var(--muted);font-size:15px;line-height:1.7;max-width:740px}
.faq .a p+p{margin-top:10px}
.faq .a strong{color:var(--fg);font-weight:600}
.faq .a .chips{margin-top:16px}

/* CTA */
.cta{padding:140px 0;text-align:center;border-top:1px solid var(--line);position:relative;overflow:hidden}
.cta .big{font-family:Fraunces,serif;font-weight:300;font-size:clamp(38px,7.4vw,92px);line-height:1;letter-spacing:-.02em}
.cta .big em{font-style:italic;font-weight:600;color:var(--accent)}
.cta p{max-width:520px;margin:28px auto 40px;color:var(--muted);font-size:17px;line-height:1.6}
.cta .note{font-family:"Space Mono",monospace;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-top:30px}

/* footer */
footer{border-top:1px solid var(--line);padding:64px 0 40px}
.footgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;padding-bottom:44px;border-bottom:1px solid var(--line)}
.fcol .ft{font-family:"Space Mono",monospace;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin-bottom:14px}
.fcol a,.fcol button{display:block;font-family:"Space Mono",monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--muted);padding:5px 0;background:none;border:none;cursor:pointer;text-align:left;transition:color .2s;-webkit-appearance:none;appearance:none}
.fcol a:hover,.fcol button:hover{color:var(--fg)}
.footbot{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding-top:28px}
.footbot .fl{font-family:"Space Mono",monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-2)}
.footbot .fl b{color:var(--accent)}
@media(max-width:820px){.footgrid{grid-template-columns:1fr 1fr}}

/* ── embedded reader — the page renders the actual product files ── */
.reader{position:fixed;inset:0;z-index:80;display:flex;align-items:center;justify-content:center;padding:22px;
  visibility:hidden;opacity:0;transition:opacity .3s ease,visibility .3s}
.reader.open{visibility:visible;opacity:1}
.reader-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.62);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.reader-panel{position:relative;width:min(880px,100%);height:min(860px,100%);background:var(--card-bg);color:var(--card-fg);
  border-radius:22px;box-shadow:var(--card-shadow);display:flex;flex-direction:column;overflow:hidden;
  transform:translateY(14px) scale(.985);transition:transform .35s cubic-bezier(.2,.7,.2,1)}
.reader.open .reader-panel{transform:none}
.reader-top{display:flex;align-items:center;gap:8px;padding:14px 18px;border-bottom:1px solid var(--card-line);flex-wrap:wrap}
.rtab{font-family:"Space Mono",monospace;font-size:11px;letter-spacing:.08em;padding:8px 14px;border-radius:100px;
  border:1px solid var(--card-line);background:transparent;color:var(--card-tag);cursor:pointer;transition:.2s;-webkit-appearance:none;appearance:none}
.rtab:hover{color:var(--card-fg);border-color:var(--card-tag)}
.rtab.active{background:var(--lime);color:#0B0B0C;border-color:var(--lime);font-weight:700}
.reader-spacer{flex:1}
.reader-dl{font-family:"Space Mono",monospace;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;
  border:1px solid var(--card-line);border-radius:100px;padding:9px 16px;color:var(--card-fg);background:transparent;cursor:pointer;transition:.2s;-webkit-appearance:none;appearance:none}
.reader-dl:hover{background:var(--lime);border-color:var(--lime);color:#0B0B0C}
.reader-x{width:38px;height:38px;border-radius:50%;border:1px solid var(--card-line);background:transparent;color:var(--card-fg);
  cursor:pointer;font-size:17px;line-height:1;display:inline-flex;align-items:center;justify-content:center;transition:.2s;-webkit-appearance:none;appearance:none}
.reader-x:hover{border-color:var(--card-fg);transform:rotate(90deg)}
.reader-note{padding:10px 20px;border-bottom:1px solid var(--card-line);font-family:"Space Mono",monospace;
  font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--card-tag)}
.reader-body{overflow:auto;padding:clamp(24px,4vw,48px);-webkit-overflow-scrolling:touch;scroll-behavior:smooth}

/* rendered markdown */
.md{font-size:15.5px;line-height:1.75;color:var(--card-sub)}
.md h1,.md h2,.md h3,.md h4,.md h5,.md h6{font-family:Fraunces,serif;font-weight:600;color:var(--card-fg);
  line-height:1.15;margin:1.6em 0 .6em;letter-spacing:-.01em;scroll-margin-top:16px}
.md h1{font-size:32px;margin-top:0}
.md h2{font-size:25px;border-bottom:1px solid var(--card-line);padding-bottom:.35em}
.md h3{font-size:20px}
.md h4,.md h5,.md h6{font-size:17px}
.md p{margin:0 0 1em}
.md strong{color:var(--card-fg);font-weight:600}
.md a{text-decoration:underline;text-underline-offset:3px;color:var(--card-fg)}
.md code{font-family:"Space Mono",monospace;font-size:.84em;background:var(--card-code);padding:2px 5px;border-radius:4px}
.md pre{background:var(--card-code);padding:16px 18px;border-radius:10px;overflow-x:auto;margin:0 0 1.2em}
.md pre code{background:none;padding:0;font-size:12.5px;line-height:1.6;display:block}
.md ul,.md ol{margin:0 0 1em;padding-left:1.5em}
.md li{margin:.4em 0}
.md li>ul,.md li>ol{margin:.4em 0 0}
.md blockquote{border-left:3px solid var(--lime);padding:2px 0 2px 18px;margin:0 0 1.2em}
.md blockquote p:last-child{margin-bottom:0}
.md hr{border:none;border-top:1px solid var(--card-line);margin:2.2em 0}
.md table{border-collapse:collapse;width:100%;margin:0 0 1.2em;font-size:14px}
.md th,.md td{border:1px solid var(--card-line);padding:7px 11px;text-align:left;vertical-align:top}
.md th{color:var(--card-fg);font-weight:600}
.md .wl{color:var(--card-accent);font-weight:500}
.md .flash{animation:mdflash 1.8s ease 1}
@keyframes mdflash{0%{background:var(--lime);color:#0B0B0C;box-shadow:0 0 0 6px var(--lime)}100%{background:transparent;box-shadow:none}}

@media(max-width:820px){
  .grid3{grid-template-columns:1fr}.people{grid-template-columns:1fr}
  .band{padding:84px 0}.cta{padding:100px 0}
  nav .navcta{display:none}
  .reader{padding:0}
  .reader-panel{border-radius:0;height:100%}
  .hub-main{padding:48px 14px}
  .hub-main .btn{font-size:10.5px;letter-spacing:.08em;padding:14px 16px}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  html{scroll-behavior:auto}
  .reveal{opacity:1!important;filter:none!important;transform:none!important}
  .hero-stage{display:none!important}
}

/* deck — stacked cards that shuffle (3D carousel) */
.deck{width:min(420px,84vw);margin:52px auto 0;--deck-gap:clamp(40px,13vw,170px)}
.deck-stage{position:relative;height:clamp(420px,62vh,480px);perspective:1400px}
.deck-stage .sample{position:absolute;inset:0;width:100%;height:100%;max-width:none;margin:0;
  display:flex;flex-direction:column;overflow:hidden;cursor:pointer;
  transform-style:preserve-3d;will-change:transform,opacity;
  transition:transform .8s cubic-bezier(.34,1.32,.36,1),opacity .55s ease}
.deck-stage .sample h4{font-size:clamp(21px,2.8vw,28px);margin:16px 0 14px}
.deck-stage .sample .body{font-size:15px}
.deck-nav{display:flex;align-items:center;justify-content:center;gap:20px;margin-top:34px}
.deck-arrow{width:48px;height:48px;border-radius:50%;border:1px solid var(--line);background:var(--bg-2);
  color:var(--fg);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0;
  transition:transform .2s,background-color .25s,border-color .25s,color .25s;-webkit-appearance:none;appearance:none}
.deck-arrow:hover{background:var(--lime);color:#0B0B0C;border-color:var(--lime);transform:translateY(-2px)}
.deck-arrow svg{width:18px;height:18px;display:block}
.deck-count{color:var(--muted);min-width:62px;text-align:center;letter-spacing:.18em}
