/* ---------- hero: two dark panels (left copy, right emblem) ---------- */
.hero{display:grid;grid-template-columns:1.08fr 1fr;gap:12px;padding:12px var(--inset) 0;height:calc(100svh - 104px);min-height:600px;max-height:940px}
.hero .panel{margin:0;border-radius:18px;background:#0b0c10}
.hero__left{display:flex;align-items:flex-end;padding:clamp(28px,4vw,56px)}
.hero__left canvas.terrain{position:absolute;inset:0;width:100%;height:100%;z-index:0;opacity:.9;-webkit-mask-image:linear-gradient(180deg,#000 30%,transparent 85%);mask-image:linear-gradient(180deg,#000 30%,transparent 85%)}
.hero__copy{position:relative;z-index:1;display:grid;gap:22px;max-width:640px}
.hero__copy .display{font-size:clamp(2.7rem,5.3vw,5.1rem)}
.hero__right{display:grid;place-items:center;background:radial-gradient(60% 50% at 50% 50%,rgb(50 130 255/.10),transparent 70%),#0b0c10}
.ascii{position:absolute;inset:0;display:grid;place-items:center;color:var(--dot);overflow:hidden}
.ascii table{transform-origin:center}
.hero__fallback{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none}
.hero__fallback .mark{animation:float 6s ease-in-out infinite}
.hero__right:hover .hero__fallback .mark__dot{animation:dotHop .9s var(--ease-out)}
.hero__right.has-3d .hero__fallback{display:none}
@keyframes float{50%{transform:translateY(-12px) rotate(-4deg)}}
.corner{position:absolute;z-index:2;font-size:.6875rem;letter-spacing:.08em;color:var(--on-dark-3)}
.corner.tl{top:22px;left:24px}.corner.tr{top:22px;right:24px;color:var(--dot)}.corner.bl{bottom:22px;left:24px}.corner.br{bottom:22px;right:24px}
@media (max-width:900px){
  .hero{grid-template-columns:1fr;height:auto;max-height:none}
  .hero__left{min-height:72svh}
  .hero__right{height:340px}
}

/* ---------- strip ---------- */
.strip{padding:22px 0;border-bottom:1px solid var(--line);margin:0 var(--inset)}
.strip .marquee__track{align-items:center;gap:22px;animation-duration:60s}
.strip span{font:500 .8125rem/1 var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2);white-space:nowrap}
.strip i{width:7px;height:6px;border-radius:2px;background:var(--dot);opacity:.7}

/* ---------- map ---------- */
.map{padding-top:clamp(56px,8vw,110px)}
.map__track{position:relative;height:320vh}
.map__stage{position:sticky;top:76px;height:calc(100svh - 88px);min-height:560px}
.map__panel{height:100%;display:grid;grid-template-rows:auto 1fr auto;padding:clamp(24px,3vw,44px);background-color:#0c0e13}
.map__head{display:grid;gap:12px;max-width:520px}
.map__head .lede{font-size:1rem}
.map__world{position:relative;min-height:0;display:grid;place-items:center}
.tree{position:relative;width:min(1180px,100%);transform-origin:50% 0;padding-top:8px}
.tree__wires{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.tree__wires path{fill:none;stroke:rgb(255 255 255/.55);stroke-width:1.25;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1}
.tree__wires path.ghost{stroke:rgb(255 255 255/.25);stroke-dasharray:.012 .012}
.tree__cols{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:56px}
.tcol{display:grid;align-content:start;gap:40px}
.tkids{display:grid;gap:10px;padding-left:36px}
.tnode{position:relative;display:grid;gap:3px;padding:12px 14px;border-radius:12px;background:#08090c;border:.5px solid #3a3f4a;color:#fff;overflow:hidden;
  box-shadow:0 10px 30px rgb(0 0 0/.28),inset 0 0 18px rgb(0 0 0/.6);opacity:0;clip-path:inset(0 0 100% 0 round 12px);transition:border-color .2s}
.tnode::before{content:"";position:absolute;left:6px;top:6px;width:80px;height:36px;background:rgb(var(--tone,50 130 255));filter:blur(40px);opacity:.55;z-index:-1}
.tnode b{font-weight:500;font-size:.875rem;letter-spacing:-.01em}
.tnode small{font:400 .6875rem/1.3 var(--mono);color:var(--on-dark-2)}
a.tnode:hover{border-color:rgb(var(--tone))}
.tnode--root{width:max-content;margin:0 auto;justify-items:center;padding:14px 22px;gap:8px}
.tnode__sub{font:500 .6875rem/1 var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--on-dark-2)}
.tnode--l1{grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:14px}
.tnode--l1>span:nth-child(2){display:grid;gap:3px}
.tnode--l1 b{font-size:.95rem}
.tnode__ic{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;background:rgb(var(--tone)/.14);color:rgb(var(--tone))}
.tnode__ic svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.tnode--ghost{border-style:dashed;border-color:#3a3f4a;background:#0a0b0f}
.tnode .chip{height:22px;font-size:.625rem;padding:0 8px}
.map__progress{height:2px;background:rgb(255 255 255/.08);border-radius:2px;overflow:hidden;margin-top:16px}
.map__progress i{display:block;height:100%;background:var(--dot);transform-origin:0 50%;transform:scaleX(0)}
@media (max-width:900px){
  .map__track{height:auto}
  .map__stage{position:relative;top:0;height:auto}
  .tree__cols{grid-template-columns:1fr 1fr;row-gap:36px}
}
@media (max-width:560px){.tree__cols{grid-template-columns:1fr;padding-left:22px}.tnode--root{margin-left:22px}}

/* ---------- bento ---------- */
.bento{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.bcard{display:grid;align-content:start;gap:14px;padding:22px 22px 26px}
.bcard p{margin:0;color:var(--on-dark-2);font-size:.95rem;max-width:36ch}
.bcard .link-arrow{margin-top:6px;font-size:.95rem}
.bcard__viz{height:190px;border-radius:12px;background:#0a0b0f;box-shadow:inset 0 0 0 1px rgb(255 255 255/.06);display:grid;place-items:center;padding:12px;margin-bottom:8px;
  background-image:radial-gradient(rgb(255 255 255/.06) 1px,transparent 1px);background-size:16px 16px}
.flow{width:100%;height:100%;overflow:visible}
.flow text{font:500 10.5px var(--sans);fill:#e8ebf0;letter-spacing:-.01em}
.flow text.dim{fill:#8a909b}
.flow .fln{fill:none;stroke:rgb(120 170 255/.85);stroke-width:1.3;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;
  transition:stroke-dashoffset .9s var(--ease-in-out) calc(220ms + var(--i)*160ms)}
.flow .fnode,.flow .fstep{opacity:0;transform-box:fill-box;transform-origin:center;scale:.9;
  transition:opacity .5s var(--ease-out) calc(220ms + var(--i)*160ms),scale .5s var(--ease-out) calc(220ms + var(--i)*160ms)}
.flow .fnode rect{fill:#12151c;stroke:rgb(255 255 255/.14)}
.flow .fnode--hot rect{fill:rgb(50 130 255/.18);stroke:rgb(50 130 255/.8)}
.flow .fstep circle{fill:#12151c;stroke:rgb(120 170 255/.9);stroke-width:1.5}
.flow .fstep--hot circle{fill:var(--dot);filter:drop-shadow(0 0 8px rgb(50 130 255/.9))}
.in .flow .fln{stroke-dashoffset:0}
.in .flow .fnode,.in .flow .fstep{opacity:1;scale:1}
@media (max-width:980px){.bento{grid-template-columns:1fr;max-width:560px;margin:0 auto}}

/* ---------- factory ---------- */
.factory{padding:clamp(40px,6vw,80px) clamp(24px,5vw,72px)}
.factory__in{display:grid;grid-template-columns:minmax(0,420px) minmax(0,1fr);gap:clamp(32px,5vw,80px);align-items:center;max-width:1240px;margin:0 auto}
.factory__copy{display:grid;gap:20px}
.factory__chips{display:flex;flex-wrap:wrap;gap:8px}
.fx{display:grid;justify-items:center}
.crt{position:relative;width:min(100%,520px);border:5px solid transparent;border-radius:20px;padding:18px 20px;overflow:hidden;
  background:radial-gradient(120% 90% at 100% 0%,rgb(255 255 255/.05),transparent 58%) padding-box,linear-gradient(#08090c,#08090c) padding-box,linear-gradient(180deg,#2b2e35,#14161b) border-box;
  box-shadow:0 18px 48px rgb(0 0 0/.38),inset 0 0 38px rgb(0 0 0/.7)}
.crt::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,transparent,rgb(0 0 0/.12) 66%,transparent) 0 0/100% 3px,radial-gradient(130% 100% at 50% 45%,transparent 55%,rgb(0 0 0/.3))}
.fx__bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.fx__mic{display:flex;gap:3px;align-items:center;height:18px}
.fx__mic i{width:3px;height:30%;border-radius:2px;background:var(--green);animation:eq 1s ease-in-out infinite}
.fx__mic i:nth-child(2){animation-delay:.15s}.fx__mic i:nth-child(3){animation-delay:.3s}.fx__mic i:nth-child(4){animation-delay:.45s}.fx__mic i:nth-child(5){animation-delay:.6s}
@keyframes eq{50%{height:100%}}
.fx__count{font-size:.6875rem;color:var(--on-dark-3)}
.fx__ask{margin:0;min-height:3.1em;font-family:var(--serif);font-size:clamp(1.05rem,1.6vw,1.3rem);line-height:1.35;color:#fff}
.caret{display:inline-block;width:2px;height:1.05em;background:var(--dot);vertical-align:-.15em;margin-left:2px;animation:blink 1.05s step-end infinite}
@keyframes blink{50%{opacity:0}}
.fx__done{margin:14px 0 0;min-height:1.4em;font-size:.75rem;color:var(--green);opacity:0;transform:translateY(4px);transition:opacity .4s,transform .4s}
.fx__done.on{opacity:1;transform:none}
.fx__wires{width:min(100%,520px);height:110px;overflow:visible}
.fx__wires path{fill:none;stroke:rgb(255 255 255/.14);stroke-width:1.2}
.fx__wires path.hot{stroke:rgb(127 214 160/.75)}
.fx__pulse{position:absolute;width:8px;height:8px;margin:-4px;border-radius:50%;background:var(--green);box-shadow:0 0 12px 2px rgb(127 214 160/.8);offset-rotate:0deg;pointer-events:none}
.fx{position:relative}
.fx__sys{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;width:min(100%,560px)}
.fx__sys span{text-align:center;padding:10px 4px;border-radius:10px;background:#0a0b0f;border:.5px solid #3a3f4a;font:500 .72rem/1.2 var(--mono);color:var(--on-dark-2);transition:all .35s}
.fx__sys span.on{color:#fff;border-color:rgb(127 214 160/.8);box-shadow:0 0 24px -6px rgb(127 214 160/.6);background:rgb(127 214 160/.08)}
@media (max-width:900px){.factory__in{grid-template-columns:1fr}}
@media (max-width:600px){.fx__wires{display:none}.fx__sys{grid-template-columns:repeat(3,1fr);margin-top:14px}.fx__sys span{font-size:.72rem;padding:10px 4px}}

/* ---------- promises: each card leads with a tiny flow, no stock icons ---------- */
.promises{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:48px}
.promise{display:grid;gap:14px;align-content:start;padding:20px 22px 22px;border-radius:16px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--line)}
.promise b{display:block;font-weight:500;letter-spacing:-.01em;margin-bottom:4px}
.promise small{display:block;color:var(--ink-2);font-size:.92rem;line-height:1.5}
.promise__viz{width:100%;max-width:240px;height:56px;overflow:visible}
.promise__viz text{font:500 10.5px var(--sans);fill:var(--ink);text-anchor:middle}
.promise__viz .pv-mini{font-size:11px;fill:var(--btn-blue)}
.pv-node{fill:var(--bg);stroke:var(--line)}
.pv-hot{fill:var(--dot-soft);stroke:rgb(50 130 255/.55)}
.pv-gate{fill:var(--surface);stroke:var(--ink);stroke-width:1.2}
.pv-dot,.pv-lock{fill:var(--dot)}
.pv-ln{fill:none;stroke:var(--ink-3);stroke-width:1.3;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1s var(--ease-in-out) .3s}
.pv-dash{stroke-dasharray:.02 .02;stroke-dashoffset:0;opacity:0;transition:opacity .6s .9s}
.promises.in .pv-ln{stroke-dashoffset:0}.promises.in .pv-dash{opacity:1}
@media (max-width:860px){.promises{grid-template-columns:1fr}}

/* ---------- founder ---------- */
.founder{padding-bottom:0}
.founder__card{margin:0;display:grid;grid-template-columns:auto 1fr;gap:12px 28px;align-items:start;padding:clamp(24px,4vw,48px);border-radius:20px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--line)}
.founder__q{margin:0;font-family:var(--serif);font-size:clamp(1.4rem,2.6vw,2.1rem);line-height:1.25;letter-spacing:-.02em;text-wrap:balance}
.founder figcaption{grid-column:2;display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;color:var(--ink-2)}
.founder figcaption b{color:var(--ink);font-weight:500}
.founder figcaption .link-arrow{margin-left:auto}
.avatar{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;font:500 1rem/1 var(--mono);color:#fff;
  background:radial-gradient(70% 70% at 30% 25%,rgb(120 170 255/.9),#14458f 70%);box-shadow:inset 0 0 0 1px rgb(255 255 255/.15)}
@media (max-width:640px){.founder__card{grid-template-columns:1fr}.founder figcaption{grid-column:1}.founder figcaption .link-arrow{margin-left:0;width:100%}}

/* ---------- posts ---------- */
.posts{border-top:1px solid var(--line)}
.post{display:grid;grid-template-columns:140px 1fr auto;gap:20px;align-items:center;padding:22px 4px;border-bottom:1px solid var(--line);transition:padding .35s var(--ease-out),background .35s}
.post b{font-family:var(--serif);font-weight:400;font-size:clamp(1.2rem,2vw,1.6rem);letter-spacing:-.02em;line-height:1.2}
.post i{font-style:normal;font-size:1.3rem;color:var(--ink-3);transition:transform .35s var(--ease-out),color .2s}
.post .chip{justify-self:start}
.post:hover{padding-left:16px;background:linear-gradient(90deg,rgb(50 130 255/.06),transparent)}
.post:hover i{transform:translateX(6px);color:var(--dot)}
@media (max-width:640px){.post{grid-template-columns:1fr auto}.post .chip{grid-column:1/-1}}

/* hero 3-step strip */
.hero__steps{list-style:none;margin:2px 0 0;padding:0;display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.hero__steps li{display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 14px 0 6px;border-radius:999px;background:rgb(255 255 255/.06);box-shadow:inset 0 0 0 1px rgb(255 255 255/.1);font:500 .875rem/1 var(--sans);color:var(--on-dark)}
.hero__steps li i{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font:500 .7rem/1 var(--mono);font-style:normal;background:var(--dot);color:#fff}

/* ---------- mobile polish ---------- */
@media (max-width:560px){
  .hero__steps li+li{margin-left:0}
  .hero__steps li+li::before{display:none}
  .tnode small{font-size:.75rem}
  .bcard__viz{padding:8px}
  .flow text{font-size:11.5px}
}

.avatar--photo{width:64px;height:64px;object-fit:cover;object-position:50% 20%;border-radius:16px;background:none;box-shadow:inset 0 0 0 1px var(--line)}

.bcard .chip{justify-self:start}
