/* hero */
.hero{position:relative;height:320svh}
.no3d .hero{height:auto;min-height:100svh}
.hero-stage{position:sticky;top:0;height:100svh;overflow:hidden;background-color:var(--g950);background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px),linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:160px 160px,160px 160px,32px 32px,32px 32px;background-position:center top}
.hero-stage[data-inspect="true"]{cursor:crosshair}
.hero-gl{position:absolute;inset:0;opacity:0;transition:opacity .7s var(--ease)}
.hero-gl.ready{opacity:1}
.hero-gl canvas{display:block;width:100%!important;height:100%!important}
.hero-annos{position:absolute;inset:0;pointer-events:none;z-index:3}
.anno{position:absolute;left:0;top:0;opacity:0;will-change:transform}
.anno>*{position:relative}
.anno{display:grid;grid-template-columns:auto auto;column-gap:10px;row-gap:4px;align-items:baseline}
.anno::before{content:"";position:absolute;left:calc(100% + 6px);top:50%;width:26px;height:1px;background:var(--line2)}
.anno{translate:calc(-100% - 34px) -50%}
.anno-d{grid-row:span 2;font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--faint)}
.anno-t{font-family:var(--disp);font-stretch:112%;font-weight:700;font-size:15px;color:var(--muted);white-space:nowrap}
.anno-s{grid-column:2;font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);white-space:nowrap}
.anno.on .anno-t{color:var(--ink)}.anno.on .anno-d{color:var(--live)}.anno.on::before{background:var(--live)}
.hero-scrim{position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(180deg,transparent 30%,var(--g950) 72%)}
.hero-copy{position:relative;z-index:5;height:100%;display:flex;flex-direction:column;justify-content:flex-end;padding-top:76px;padding-bottom:15svh}
.hero-copy h1{margin-top:18px;font-size:clamp(1.9rem,min(3.5vw,7.4vh),3.7rem);text-wrap:balance}
.hero-copy .lead{margin-top:18px;max-width:42ch}
.hero-cta{margin-top:26px;display:flex;flex-wrap:wrap;gap:12px}
.hero-foot{position:absolute;left:0;right:0;bottom:0;z-index:5;display:flex;justify-content:space-between;align-items:flex-end;gap:20px;padding-bottom:26px;pointer-events:none}
.cue{display:flex;align-items:center;gap:12px}
.cue i{position:relative;display:block;width:1px;height:36px;background:var(--line2);overflow:hidden}
.cue i::after{content:"";position:absolute;inset:0;background:var(--live);transform-origin:top;animation:cue 2.2s var(--ease) infinite}
@keyframes cue{0%{transform:scaleY(0)}45%{transform:scaleY(1)}100%{transform:translateY(100%)}}
.hint-touch{display:none}
@media (hover:none){.hint-mouse{display:none}.hint-touch{display:inline}}
.hero-meter{position:absolute;right:var(--pad);top:50%;transform:translateY(-50%);z-index:5;display:flex;gap:16px;opacity:0;pointer-events:none}
.hero-meter ol{list-style:none;display:flex;flex-direction:column;gap:16px}
.hero-meter li{display:flex;justify-content:flex-end;gap:12px;color:var(--faint);transition:color .3s}
.hero-meter li.on{color:var(--ink)}.hero-meter li.on span:last-child{color:var(--live)}
.hero-meter .track{position:relative;width:1px;background:var(--line2)}
.hero-meter-dot{position:absolute;left:-3px;width:7px;height:7px;background:var(--live);translate:0 -50%}
.hero-coords{position:absolute;top:84px;right:var(--pad);z-index:5;color:var(--faint);font-variant-numeric:tabular-nums}
.hero-fallback{display:none;position:absolute;inset:0;pointer-events:none;align-items:center;justify-content:flex-end;padding-right:7vw}
.no3d .hero-fallback{display:flex}
.no3d .hero-foot,.no3d .hero-meter{display:none}
.fb-stack{position:relative;width:min(40vw,560px);aspect-ratio:16/10;perspective:1800px}
.fb-stack div{position:absolute;inset:0;border:1px solid var(--line2);background:color-mix(in srgb,var(--g950) 90%,transparent);transform:rotateX(58deg) rotateZ(-34deg) translateZ(calc(var(--i)*-42px))}
.fb-stack div:first-child{border-color:var(--live);background:var(--g900)}
.fb-stack span{position:absolute;left:12px;top:12px}
@media (min-width:768px){.hero-copy{justify-content:center;padding-bottom:0}.hero-copy h1{max-width:min(42vw,36rem)}.hero-scrim{background:linear-gradient(90deg,var(--g950) 0%,color-mix(in srgb,var(--g950) 82%,transparent) 32%,transparent 60%)}}
@media (max-width:767px){.hero-meter,.hero-coords{display:none}.cue{display:none}.anno-s{display:none}.anno-t{font-size:12px}.hero-fallback{align-items:flex-start;justify-content:center;padding:110px 0 0}.fb-stack{width:72vw}}

/* 02 capabilities */
.caps{border-top:1px solid var(--line)}
.cap{border-bottom:1px solid var(--line)}
.cap-h{width:100%;display:grid;grid-template-columns:64px minmax(0,1fr) minmax(0,1.1fr) 110px 28px;gap:22px;align-items:center;padding:20px 0;text-align:left;transition:background .3s}
.cap-h:hover{background:linear-gradient(90deg,transparent,var(--grid),transparent)}
.cap-code{font-family:var(--disp);font-stretch:72%;font-weight:600;font-size:32px;line-height:1;color:var(--faint);transition:color .3s}
.cap-t{font-family:var(--disp);font-stretch:112%;font-weight:700;font-size:clamp(18px,1.6vw,23px);letter-spacing:-.02em;line-height:1.05}
.cap-one{color:var(--muted);font-size:16px}
.cap-l{color:var(--faint);text-align:right}
.cap-x{position:relative;width:18px;height:18px;justify-self:end}
.cap-x::before,.cap-x::after{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:var(--muted);transition:transform .4s var(--ease)}
.cap-x::after{transform:rotate(90deg)}
.cap.open .cap-x::after{transform:rotate(0)}
.cap.open .cap-code,.cap-h:hover .cap-code{color:var(--live)}
.cap-b{display:grid;grid-template-rows:0fr;transition:grid-template-rows .5s var(--ease)}
.cap.open .cap-b{grid-template-rows:1fr}
.cap-b>div{overflow:hidden}
.cap-in{display:grid;grid-template-columns:72px minmax(0,1fr) minmax(0,1.1fr) 152px;gap:24px;padding:0 0 36px}
.cap-in blockquote{grid-column:2;font-family:var(--disp);font-stretch:112%;font-weight:600;font-size:20px;line-height:1.2;letter-spacing:-.01em}
.tags{grid-column:3/5;display:flex;flex-wrap:wrap;gap:8px;align-content:flex-start}
.tag{font-family:var(--mono);font-size:12.5px;color:var(--muted);border:1px solid var(--line2);padding:6px 10px}
@media (max-width:900px){.cap-h{grid-template-columns:48px minmax(0,1fr) 24px}.cap-one,.cap-l{display:none}.cap-code{font-size:30px}.cap-in{grid-template-columns:1fr;padding-left:72px}.cap-in blockquote,.tags{grid-column:1}}

/* 03 infrastructure */
.infra{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.infra>div{background:var(--g950);padding:clamp(20px,3vw,40px)}
.infra h3{font-family:var(--disp);font-stretch:112%;font-weight:700;font-size:26px;letter-spacing:-.02em;margin:10px 0 8px}
.infra p.d{color:var(--muted);font-size:15.5px;max-width:46ch}
.segs{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0}
.seg{font-family:var(--mono);font-size:12px;letter-spacing:.08em;padding:8px 12px;border:1px solid var(--line2);color:var(--muted);transition:.25s}
.seg:hover,.seg.on{border-color:var(--live);color:var(--live);background:var(--wash)}
.rack{display:grid;gap:6px;border:1px solid var(--line2);padding:12px;background:var(--g900)}
.ru{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:14px;align-items:center;height:46px;padding:0 12px;border:1px solid var(--line);background:var(--g850);transition:.3s var(--ease)}
.ru .u{font-family:var(--mono);font-size:10.5px;color:var(--faint)}
.ru .nm{font-family:var(--mono);font-size:13.5px}
.ru .ports{display:flex;gap:3px}
.ru .ports i{width:9px;height:7px;background:var(--g700);transition:.3s}
.ru.hl{border-color:var(--live-dim);background:color-mix(in srgb,var(--live) 9%,var(--g950))}
.ru.hl .ports i:nth-child(odd){background:var(--live)}
.ru.dim{opacity:.35}
.cloud{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:24px}
.vm{border:1px dashed var(--line2);padding:12px;display:grid;gap:8px;align-content:start}
.vm .lbl{margin-bottom:4px}
.ct{border:1px solid var(--line);background:var(--g850);padding:12px;transition:.3s var(--ease)}
.ct b{display:block;font-weight:600;font-size:15px}
.ct span{font-family:var(--mono);font-size:11.5px;color:var(--faint)}
.ct.hl{border-color:var(--live-dim);background:color-mix(in srgb,var(--live) 9%,var(--g950))}.ct.hl b{color:var(--live)}
.ct.dim{opacity:.35}
.proxy{margin-top:24px;display:flex;align-items:center;gap:12px;font-family:var(--mono);font-size:12.5px;color:var(--muted);border:1px solid var(--line2);padding:12px 14px}
@media (max-width:900px){.infra{grid-template-columns:1fr}.cloud{grid-template-columns:1fr}}

/* 04 game */
.pipe{position:relative;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));border:1px solid var(--line)}
.pipe::before{content:"";position:absolute;left:0;right:0;top:64px;height:1px;background:var(--line2)}
.pkt{position:absolute;top:61px;left:0;width:7px;height:7px;background:var(--live);box-shadow:0 0 0 4px rgba(244,166,42,.12);animation:pkt 5s linear infinite}
.pkt:nth-of-type(2){animation-delay:-2.5s}
@keyframes pkt{from{left:0}to{left:calc(100% - 7px)}}
.pn{position:relative;text-align:left;padding:24px 20px 28px;border-right:1px solid var(--line);min-height:200px;display:flex;flex-direction:column;gap:10px;transition:background .3s}
.pn:last-of-type{border-right:0}
.pn .sq{width:14px;height:14px;border:1px solid var(--line2);background:var(--g950);margin:22px 0 18px;transition:.3s}
.pn h4{font-family:var(--disp);font-stretch:112%;font-weight:700;font-size:18px;letter-spacing:-.01em;line-height:1.1}
.pn p{font-size:14.5px;color:var(--muted)}
.pn:hover,.pn.on{background:var(--g900)}
.pn.on .sq{background:var(--live);border-color:var(--live)}
.pn.on .lbl{color:var(--live)}
.game-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,4vw,64px);margin-top:clamp(48px,6vw,80px)}
.board{border:1px solid var(--line)}
.board-h{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--line)}
.srv{display:grid;grid-template-columns:auto minmax(0,1fr) 90px 120px 60px;gap:16px;align-items:center;padding:14px 18px;border-bottom:1px solid var(--line);font-family:var(--mono);font-size:13.5px}
.srv:last-child{border-bottom:0}
.srv .g{color:var(--faint)}
.srv .b{height:4px;background:var(--g700);position:relative}
.srv .b i{position:absolute;inset:0 auto 0 0;background:var(--live);transition:width 1s var(--ease)}
.srv .pl{text-align:right;font-variant-numeric:tabular-nums}
.big-stats{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:24px}
.big-stats>div{background:var(--g950);padding:22px}
.big-stats b{display:block;font-family:var(--disp);font-stretch:118%;font-weight:700;font-size:36px;letter-spacing:-.03em;line-height:1;margin-top:10px;font-variant-numeric:tabular-nums}
.dedi h3{font-family:var(--disp);font-stretch:112%;font-weight:700;font-size:24px;letter-spacing:-.02em;margin-bottom:10px}
.dedi p{color:var(--muted);font-size:15.5px}
.dedi .tags{margin-top:18px}
@media (max-width:1000px){.pipe{grid-template-columns:repeat(2,minmax(0,1fr))}.pipe::before,.pkt{display:none}.pn{border-bottom:1px solid var(--line);min-height:0}.game-row{grid-template-columns:1fr}.srv{grid-template-columns:auto minmax(0,1fr) 60px}.srv .g,.srv .b{display:none}}

/* 05 discord */
.dc{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(24px,4vw,64px);align-items:start}
.arch{position:relative;display:grid;gap:22px;padding-left:28px}
.arch::before{content:"";position:absolute;left:6px;top:20px;bottom:20px;width:1px;background:var(--line2)}
.an{position:relative;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;border:1px solid var(--line);background:var(--g950);transition:.3s var(--ease)}
.an::before{content:"";position:absolute;left:-26px;top:50%;width:9px;height:9px;translate:0 -50%;background:var(--g950);border:1px solid var(--line2);transition:.3s}
.an b{font-family:var(--disp);font-stretch:112%;font-weight:700;font-size:17px}
.an.hot{border-color:var(--live);background:var(--wash)}
.an.hot::before{background:var(--live);border-color:var(--live)}
.an.hot .lbl{color:var(--live)}
.chat{border:1px solid var(--line2);background:var(--g900);display:flex;flex-direction:column;height:500px}
.chat-h{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--line)}
.chat-h b{font-weight:600}
.chat-log{flex:1;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:16px}
.msg{display:grid;grid-template-columns:34px minmax(0,1fr);gap:12px}
.av{width:34px;height:34px;display:grid;place-items:center;font-family:var(--mono);font-size:12px;font-weight:600;background:var(--g700);color:var(--muted)}
.msg.bot .av{background:var(--live);color:var(--g950)}
.msg .who{font-weight:600;font-size:14.5px}
.msg .who span{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;margin-left:8px;padding:2px 6px;background:var(--live-dim);color:var(--ink)}
.msg .who time{font-family:var(--mono);font-size:11px;color:var(--faint);margin-left:8px;font-weight:400}
.msg .tx{color:var(--muted);font-size:15px;margin-top:2px}
.msg .tx code{font-family:var(--mono);font-size:13.5px;color:var(--ink)}
.embed{margin-top:8px;border-left:2px solid var(--live);background:var(--g850);padding:12px 14px;display:grid;gap:6px;font-size:14px}
.embed .r{display:flex;justify-content:space-between;gap:16px;font-family:var(--mono);font-size:13px}
.embed .r span:first-child{color:var(--faint)}
.typing{font-family:var(--mono);font-size:12px;color:var(--faint)}
.chat-f{border-top:1px solid var(--line);padding:14px 18px;display:grid;gap:10px}
.sugg{display:flex;flex-wrap:wrap;gap:8px}
.sugg button{font-family:var(--mono);font-size:12.5px;padding:6px 10px;border:1px solid var(--line2);color:var(--muted)}
.sugg button:hover{border-color:var(--live);color:var(--live)}
.chat-in{display:flex;gap:10px}
.chat-in input{flex:1;min-width:0;height:44px;background:var(--g950);border:1px solid var(--line2);padding:0 14px;font-family:var(--mono);font-size:14px;outline:none}
.chat-in input:focus{border-color:var(--live)}
@media (max-width:900px){.dc{grid-template-columns:1fr}.chat{height:520px}}

/* 06 takeover */
.tk{position:relative;height:280svh;border-top:1px solid var(--line);padding-bottom:40px}
.tk-stage{position:sticky;top:60px;height:calc(100svh - 100px);display:flex;align-items:center;padding:20px 0}
.tk-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr);gap:clamp(24px,4vw,64px);align-items:center;width:100%}
.tk h2{font-size:clamp(2rem,3.6vw,3.5rem);text-wrap:balance}
.tk .lead{margin-top:18px}
.steps{list-style:none;margin-top:32px;display:grid;gap:2px;counter-reset:s}
.steps li{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:10px;align-items:center;padding:7px 0;color:var(--faint);font-size:15.5px;transition:color .3s}
.steps li::before{counter-increment:s;content:"0" counter(s);font-family:var(--mono);font-size:11.5px}
.steps li i{font-style:normal;font-family:var(--mono);font-size:11px;letter-spacing:.12em}
.steps li.done{color:var(--muted)}.steps li.done i{color:var(--live)}
.steps li.now{color:var(--ink)}.steps li.now::before{color:var(--live)}
@media (min-width:901px) and (max-height:820px){.tk h2{font-size:clamp(2rem,3.4vw,3.2rem)}.tk .lead{font-size:16px;margin-top:12px}.steps{margin-top:18px}.steps li{padding:3px 0;font-size:14.5px}.tk-cta{margin-top:16px}.diag svg{max-height:calc(100svh - 230px)}}
@media (min-width:901px) and (max-height:720px){.tk .lead{display:none}.tk h2{font-size:clamp(1.8rem,3vw,2.6rem)}.steps{margin-top:14px}.steps li{padding:2px 0;font-size:14px}.tk-cta{margin-top:16px}.diag-f b{font-size:20px}}
@media (min-width:901px) and (max-height:560px){.tk-cta{display:none}.steps li{padding:1px 0;font-size:13.5px}.diag-f b{font-size:20px}}
.diag{border:1px solid var(--line2);background:var(--g900)}
.diag-h{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line)}
.diag svg{display:block;width:100%;height:auto}
.diag-f{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line)}
.diag-f>div{padding:12px 16px;border-right:1px solid var(--line)}
.diag-f>div:last-child{border-right:0}
.diag-f b{display:block;font-family:var(--disp);font-stretch:112%;font-weight:700;font-size:26px;margin-top:4px;font-variant-numeric:tabular-nums}
.tk-cta{margin-top:28px;display:flex;gap:12px;flex-wrap:wrap}
@media (max-width:900px){.tk{height:auto}.tk-stage{position:relative;top:0;height:auto;padding:96px 0}.tk-grid{grid-template-columns:1fr}}

/* 07 chaos → control */
.flow{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin-bottom:40px}
.flow span{color:var(--muted)}
.flow i{font-style:normal;color:var(--line2)}
.flow span:last-child{color:var(--live)}
.ba{position:relative;height:540px;border:1px solid var(--line2);overflow:hidden;user-select:none;touch-action:pan-y}
.ba-side{position:absolute;inset:0}
.ba-chaos{background:#0d0c0b;padding:28px;overflow:hidden}
.ba-ctrl{background:var(--g900);display:grid;place-items:center;clip-path:inset(0 0 0 var(--x,50%))}
.ba-tag{position:absolute;top:18px;z-index:2}
.ba-chaos .ba-tag{left:18px;color:var(--warn)}
.ba-ctrl .ba-tag{right:18px;color:var(--live)}
.term{position:absolute;font-family:var(--mono);font-size:12px;line-height:1.7;background:#121110;border:1px solid #2a2622;padding:14px 16px;color:#8d877f;width:360px}
.term .w{color:var(--warn)}.term .f{color:var(--fault)}
.note{position:absolute;padding:14px 16px;background:#1a1814;border:1px solid #2e2a24;font-size:14px;color:#a39d92;width:200px;line-height:1.4}
.ba-h{position:absolute;top:0;bottom:0;left:var(--x,50%);width:0;z-index:4}
.ba-h::before{content:"";position:absolute;top:0;bottom:0;left:0;width:1px;background:var(--live)}
.ba-knob{position:absolute;top:50%;left:0;translate:-50% -50%;width:48px;height:48px;display:grid;place-items:center;background:var(--live);color:var(--g950);font-family:var(--mono);font-size:13px;font-weight:600;cursor:ew-resize}
.phone{width:250px;height:500px;border:1px solid var(--line2);border-radius:44px;padding:12px;background:var(--g950)}
.phone-s{height:100%;border-radius:34px;background:var(--g900);border:1px solid var(--line);overflow:hidden;padding:44px 16px 16px;display:flex;flex-direction:column;gap:10px}
.ph-top{display:flex;justify-content:space-between;align-items:center}
.ph-top b{font-family:var(--disp);font-stretch:112%;font-weight:700;font-size:18px}
.ph-live{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--wash);border:1px solid var(--live-dim);color:var(--live)}
.ph-kpis{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.ph-kpis div{background:var(--g850);border:1px solid var(--line);padding:10px 12px}
.ph-kpis b{display:block;font-family:var(--disp);font-stretch:112%;font-weight:700;font-size:22px;margin-top:4px}
.ph-list{background:var(--g850);border:1px solid var(--line);padding:4px 12px}
.ph-list div{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--line);font-size:13.5px}
.ph-list div:last-child{border-bottom:0}
.ph-list span{font-family:var(--mono);font-size:11.5px;color:var(--faint)}
.ctrl-copy{position:absolute;right:48px;bottom:44px;max-width:300px;text-align:right}
.ctrl-copy p{font-family:var(--disp);font-stretch:112%;font-weight:700;font-size:24px;line-height:1.1;letter-spacing:-.02em}
@media (max-width:900px){.ba{height:620px}.ctrl-copy{display:none}.term{width:280px}}

/* 08 constellation */
.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}
.flt{font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;padding:9px 14px;border:1px solid var(--line2);color:var(--muted);transition:.25s}
.flt:hover{color:var(--ink)}
.flt.on{background:var(--ink);border-color:var(--ink);color:var(--g950)}
.const{position:relative;border:1px solid var(--line);background:radial-gradient(60% 60% at 50% 50%,var(--g900),var(--g950))}
.const svg{display:block;width:100%;height:auto;overflow:visible}
.const .ln{stroke:var(--line2);stroke-width:1;opacity:.35;transition:opacity .3s,stroke .3s}
.const .ln.hl{stroke:var(--live);opacity:1}
.const .tn{transition:opacity .3s}
.const .tn circle{fill:var(--g950);stroke:var(--line2);transition:.3s}
.const .tn text{fill:var(--muted);font-family:var(--mono);font-size:13px;transition:fill .3s}
.const .tn.hl circle{fill:var(--live);stroke:var(--live)}
.const .tn.hl text{fill:var(--ink)}
.const .tn.dim{opacity:.18}
.const .hub{cursor:pointer}
.const .hub rect{fill:var(--g850);stroke:var(--line2);transition:.3s}
.const .hub text{fill:var(--ink);font-family:var(--disp);font-stretch:112%;font-weight:700;font-size:15px}
.const .hub.hl rect{stroke:var(--live);fill:color-mix(in srgb,var(--live) 9%,var(--g950))}
.const .cat{fill:var(--faint);font-family:var(--mono);font-size:11px;letter-spacing:.16em}

/* 10 about */
.about{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,5vw,80px)}
.story p{font-size:clamp(18px,1.6vw,22px);color:var(--muted);text-wrap:pretty}
.story p+p{margin-top:18px}
.todo{border:1px dashed var(--line2);padding:16px;color:var(--faint);font-family:var(--mono);font-size:12.5px;margin-top:24px}
.nums{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line)}
.nums>div{background:var(--g950);padding:26px 24px}
.nums b{display:block;font-family:var(--disp);font-stretch:118%;font-weight:780;font-size:clamp(40px,4.6vw,64px);letter-spacing:-.04em;line-height:1;margin:12px 0 6px;font-variant-numeric:tabular-nums}
.nums p{color:var(--muted);font-size:14.5px}
.team{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:clamp(48px,6vw,80px)}
.mem{border-top:1px solid var(--line2);padding-top:18px;display:grid;grid-template-columns:64px minmax(0,1fr);gap:16px}
.mem .pic{width:64px;height:64px;background:repeating-linear-gradient(135deg,var(--g850) 0 6px,var(--g900) 6px 12px);border:1px solid var(--line)}
.mem b{font-weight:600}
.mem p{color:var(--muted);font-size:14.5px;margin-top:4px}
@media (max-width:900px){.about,.team{grid-template-columns:1fr}}



@media (max-height:760px){.hero-foot{display:none}.hero-copy .lead{font-size:15.5px}}
@media (min-width:768px) and (max-height:620px){.hero-copy .lead{display:none}}

/* 04 top 10 */
.top10{margin-top:clamp(40px,5vw,64px);border:1px solid var(--line)}
.top10-h{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 16px;padding:14px 18px;border-bottom:1px solid var(--line)}
.top10-g{list-style:none;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;background:var(--line)}
.top10-g li{background:var(--g950);padding:18px;display:grid;gap:6px;align-content:start;min-height:150px;transition:background .3s}
.top10-g li:hover{background:var(--g900)}
.top10-g .r{font-family:var(--disp);font-stretch:72%;font-weight:600;font-size:30px;line-height:1;color:var(--line2);transition:color .3s}
.top10-g li:hover .r{color:var(--live)}
.top10-g b{font-family:var(--disp);font-stretch:112%;font-weight:700;font-size:17px;line-height:1.15;margin-top:6px}
.top10-g .ds{display:flex;align-items:center;gap:8px;margin-top:auto;padding-top:10px;color:var(--live);font-size:10.5px}
.top10-f{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 20px;padding:16px 18px;border-top:1px solid var(--line)}
.top10-f p{font-size:15px}
@media (max-width:1000px){.top10-g{grid-template-columns:repeat(2,minmax(0,1fr))}.top10-g li{min-height:0}}

/* 5 · 3D rack */
@media (min-width:901px) and (hover:hover){
.rack{transform:perspective(1100px) rotateY(-14deg) rotateX(6deg);transform-style:preserve-3d;transition:transform .8s var(--ease)}
.infra>div:first-child:hover .rack{transform:perspective(1100px) rotateY(-6deg) rotateX(3deg)}
.ru{transform-style:preserve-3d;position:relative}
.ru::after{content:"";position:absolute;top:0;bottom:0;right:-1px;width:14px;background:var(--g800);transform-origin:right;transform:rotateY(-90deg);border:1px solid var(--line)}
.ru.hl{transform:translateZ(22px)}
.cloud{transform:perspective(1100px) rotateY(10deg) rotateX(6deg);transition:transform .8s var(--ease)}
.infra>div:last-child:hover .cloud{transform:perspective(1100px) rotateY(4deg) rotateX(3deg)}
.ct.hl{transform:translateZ(18px)}
.ct{transition:transform .5s var(--ease),border-color .3s,background .3s,opacity .3s}}
/* 6 · phone 3D + layers dropping in */
.ba-ctrl{perspective:1200px}
.phone-w{position:relative;transform:rotateY(var(--pry,-8deg)) rotateX(var(--prx,4deg));transform-style:preserve-3d;transition:transform .6s var(--ease)}
.phone{box-shadow:0 40px 80px -30px color-mix(in srgb,var(--g950) 80%,#000)}
.drop{position:absolute;left:12px;right:12px;height:30px;top:40%;border:1px solid var(--live);background:color-mix(in srgb,var(--live) 6%,transparent);border-radius:6px;opacity:0;pointer-events:none}
.ba.in .drop{animation:drop 1.1s var(--ease) both;animation-delay:calc(.25s + var(--i) * .12s)}
@keyframes drop{0%{opacity:0;transform:translateY(calc(-180px - var(--i) * 30px)) translateZ(60px) scale(1.25)}35%{opacity:.9}100%{opacity:0;transform:translateY(0) scale(.92)}}
