/* =========================================================
   shautech — reinvented  ·  "from chaos to order"
   ========================================================= */
:root{
  --bg:#0A0B0D; --bg2:#0E1014; --bg3:#13161C;
  --ink:#F2F4F8; --ink2:#A9B1C0; --ink3:#6B7484;
  --line:rgba(255,255,255,.08); --line2:rgba(255,255,255,.14);
  --accent:#4D9FFF; --accent2:#8CC2FF; --mint:#7CF2C4; --amber:#FFB84D; --red:#FF5C7A;
  --sans:"Space Grotesk",-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,system-ui,sans-serif;
  --mono:"JetBrains Mono","SF Mono",Menlo,Consolas,monospace;
  --ease:cubic-bezier(.16,1,.3,1); --ease2:cubic-bezier(.65,0,.35,1);
  --r:18px; --wrap:1240px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.55;overflow-x:hidden;-webkit-font-smoothing:antialiased}
body.boot-lock{overflow:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
ul{list-style:none}
::selection{background:var(--accent);color:#04101f}
@media (pointer:fine){ body.has-cursor, body.has-cursor a, body.has-cursor button{cursor:none} }

.wrap{width:min(var(--wrap),calc(100% - 48px));margin-inline:auto}
.section{position:relative;padding:clamp(96px,12vw,160px) 0}
.section__head{max-width:820px;margin-bottom:clamp(40px,6vw,72px)}
.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink3);margin-bottom:18px}
.eyebrow__slash{color:var(--accent);margin-right:6px}
.h2{font-size:clamp(34px,5.2vw,64px);line-height:1.02;letter-spacing:-.03em;font-weight:700;margin-bottom:22px}
.h2 em,.cta__title em{font-style:normal;color:var(--accent);position:relative}
.lede{font-size:clamp(17px,1.35vw,20px);color:var(--ink2);max-width:640px}
.lede--center{margin-inline:auto}

/* ---------- buttons ---------- */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 24px;border-radius:999px;font-weight:500;font-size:15px;border:1px solid var(--line2);background:rgba(255,255,255,.03);color:var(--ink);transition:transform .5s var(--ease),background .3s,border-color .3s,box-shadow .3s;will-change:transform;overflow:hidden;isolation:isolate}
.btn>span{position:relative;z-index:1;display:inline-flex;gap:8px;align-items:center;transition:transform .5s var(--ease)}
.btn i{font-style:normal;transition:transform .4s var(--ease)}
.btn:hover i{transform:translateX(4px)}
.btn--sm{padding:10px 18px;font-size:14px}
.btn--lg{padding:20px 36px;font-size:18px}
.btn--primary{background:var(--accent);color:#04101f;border-color:var(--accent);box-shadow:0 0 0 0 rgba(77,159,255,.0)}
.btn--primary::before{content:"";position:absolute;inset:0;background:radial-gradient(120px 60px at var(--mx,50%) var(--my,50%),rgba(255,255,255,.55),transparent 70%);opacity:0;transition:opacity .3s;z-index:0}
.btn--primary:hover{box-shadow:0 10px 40px -8px rgba(77,159,255,.6)}
.btn--primary:hover::before{opacity:1}
.btn--ghost:hover{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.25)}
.link{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:13px;color:var(--accent2);border-bottom:1px solid transparent;transition:border-color .3s}
.link i{font-style:normal;transition:transform .4s var(--ease)}
.link:hover{border-color:var(--accent2)}.link:hover i{transform:translateX(4px)}
.status{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:12px;color:var(--ink2);letter-spacing:.02em}
.status i{width:7px;height:7px;border-radius:50%;background:var(--mint);box-shadow:0 0 0 0 rgba(124,242,196,.6);animation:ping 2s infinite}
@keyframes ping{0%{box-shadow:0 0 0 0 rgba(124,242,196,.6)}70%{box-shadow:0 0 0 9px rgba(124,242,196,0)}100%{box-shadow:0 0 0 0 rgba(124,242,196,0)}}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips li{font-family:var(--mono);font-size:12px;padding:6px 11px;border:1px solid var(--line2);border-radius:999px;color:var(--ink2);transition:border-color .3s,color .3s,background .3s}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:10px}
.dot--red{background:var(--red)}.dot--amber{background:var(--amber)}.dot--blue{background:var(--accent)}.dot--mint{background:var(--mint)}

/* ---------- grain ---------- */
.grain{position:fixed;inset:-50%;width:200%;height:200%;pointer-events:none;z-index:9000;opacity:.045;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grain 1.2s steps(6) infinite}
@keyframes grain{0%{transform:translate(0,0)}20%{transform:translate(-4%,3%)}40%{transform:translate(3%,-5%)}60%{transform:translate(-2%,6%)}80%{transform:translate(5%,2%)}100%{transform:translate(0,0)}}

/* ---------- boot ---------- */
.boot{position:fixed;inset:0;z-index:10000;background:var(--bg);display:grid;place-items:center;transition:transform .9s var(--ease2),opacity .4s .5s;will-change:transform}
.boot.done{transform:translateY(-100%);opacity:0;pointer-events:none}
.boot__inner{width:min(520px,calc(100% - 48px))}
.boot__brand{font-weight:700;font-size:28px;letter-spacing:-.03em;margin-bottom:22px}
.boot__brand span{color:var(--accent)}.boot__brand em{font-style:normal;font-family:var(--mono);font-weight:400;font-size:13px;color:var(--ink3);margin-left:8px;letter-spacing:.1em}
.boot__log{font-family:var(--mono);font-size:13px;line-height:1.9;color:var(--ink2);min-height:170px;white-space:pre-wrap}
.boot__log .ok{color:var(--mint)}.boot__log .dim{color:var(--ink3)}.boot__log .acc{color:var(--accent)}
.boot__bar{height:2px;background:var(--line);margin-top:16px;overflow:hidden;border-radius:2px}
.boot__bar i{display:block;height:100%;width:0;background:var(--accent);transition:width .3s linear}

/* ---------- cursor ---------- */
.cursor{position:fixed;left:0;top:0;z-index:9500;pointer-events:none;opacity:0;transition:opacity .3s}
body.has-cursor .cursor{opacity:1}
.cursor__dot{position:absolute;width:6px;height:6px;border-radius:50%;background:var(--accent);transform:translate(-50%,-50%)}
.cursor__ring{position:absolute;width:36px;height:36px;border-radius:50%;border:1px solid rgba(77,159,255,.7);transform:translate(-50%,-50%) scale(1);transition:width .35s var(--ease),height .35s var(--ease),background .3s,border-color .3s,opacity .3s}
.cursor.is-hover .cursor__ring{width:56px;height:56px;background:rgba(77,159,255,.12);border-color:rgba(77,159,255,.9)}
.cursor.is-drag .cursor__ring{width:72px;height:72px;background:rgba(77,159,255,.14)}
.cursor.is-hidden{opacity:0!important}
.cursor__label{position:absolute;left:0;top:0;transform:translate(-50%,-50%);font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#04101f;background:var(--accent);padding:6px 10px;border-radius:999px;white-space:nowrap;opacity:0;scale:.6;transition:opacity .3s,scale .3s var(--ease)}
.cursor.is-label .cursor__label{opacity:1;scale:1}
.cursor.is-label .cursor__ring,.cursor.is-label .cursor__dot{opacity:0}

/* ---------- nav ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:8000;transition:background .4s,backdrop-filter .4s,border-color .4s;border-bottom:1px solid transparent}
.nav.scrolled{background:rgba(10,11,13,.7);backdrop-filter:blur(16px) saturate(140%);-webkit-backdrop-filter:blur(16px) saturate(140%);border-color:var(--line)}
.nav__progress{position:absolute;left:0;right:0;top:0;height:2px;background:transparent}
.nav__progress i{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--mint));transform-origin:left;transform:scaleX(0)}
.nav__inner{width:min(var(--wrap),calc(100% - 48px));margin-inline:auto;display:flex;align-items:center;justify-content:space-between;height:72px;gap:24px}
/* original shautech logo — the › terminal mark + shau/tech in JetBrains Mono (do not restyle) */
.logo{font-family:var(--mono);font-weight:700;font-size:1.15rem;letter-spacing:-.01em;display:inline-flex;align-items:center;gap:.05em;white-space:nowrap}
.logo .mark{display:inline-grid;place-items:center;width:1.5em;height:1.5em;margin-right:.5em;border:1.5px solid var(--accent);border-radius:6px;color:var(--accent);font-size:.82em;position:relative}
.logo .mark::before{content:"›"}
.logo .tech{color:var(--accent)}
.nav__links{display:flex;gap:28px}
.nav__links a{font-size:14px;color:var(--ink2);position:relative;transition:color .3s}
.nav__links a::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:right;transition:transform .4s var(--ease)}
.nav__links a:hover,.nav__links a.active{color:var(--ink)}
.nav__links a:hover::after,.nav__links a.active::after{transform:scaleX(1);transform-origin:left}
.nav__right{display:flex;align-items:center;gap:18px}
.burger{display:none;width:40px;height:40px;background:none;border:1px solid var(--line2);border-radius:50%;position:relative}
.burger i{position:absolute;left:11px;right:11px;height:1.5px;background:var(--ink);transition:transform .4s var(--ease),top .4s var(--ease)}
.burger i:first-child{top:15px}.burger i:last-child{top:23px}
.burger.open i:first-child{top:19px;transform:rotate(45deg)}.burger.open i:last-child{top:19px;transform:rotate(-45deg)}
@media (max-width:980px){
  .nav__links{position:fixed;inset:72px 0 0 0;background:rgba(10,11,13,.96);backdrop-filter:blur(20px);flex-direction:column;padding:32px 24px;gap:8px;transform:translateY(-8px);opacity:0;pointer-events:none;transition:opacity .35s,transform .5s var(--ease)}
  .nav__links.open{opacity:1;transform:none;pointer-events:auto}
  .nav__links a{font-size:28px;font-weight:500;padding:12px 0;border-bottom:1px solid var(--line)}
  .nav__right .status{display:none}
  .burger{display:block}
}
@media (max-width:560px){ .nav__right .btn{display:none} }

/* ---------- hero ---------- */
.hero{position:relative;height:170vh}
.hero__sticky{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;padding:calc(72px + 4vh) 0 5vh}
.hero__canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.hero__aurora{position:absolute;inset:-20%;pointer-events:none;background:
  radial-gradient(40% 30% at 20% 30%,rgba(77,159,255,.16),transparent 70%),
  radial-gradient(35% 30% at 80% 70%,rgba(124,242,196,.08),transparent 70%),
  radial-gradient(30% 25% at 65% 20%,rgba(255,92,122,.07),transparent 70%);
  filter:blur(40px);animation:aurora 18s ease-in-out infinite alternate}
@keyframes aurora{0%{transform:translate(0,0) rotate(0)}100%{transform:translate(-4%,3%) rotate(6deg)}}
.hero__top,.hero__bottom{position:relative;z-index:2;width:min(var(--wrap),calc(100% - 48px));margin-inline:auto;pointer-events:none}
.hero__top .eyebrow{margin-bottom:14px}
.hero__title{font-size:clamp(34px,5.6vw,72px);line-height:1;letter-spacing:-.035em;font-weight:700;max-width:24ch}
.hero__bottom{display:grid;grid-template-columns:1.2fr 1fr;gap:32px;align-items:end}
.hero__bottom>*{pointer-events:auto}
.hero__lead{font-size:clamp(16px,1.3vw,19px);color:var(--ink2);max-width:560px}
.hero__lead strong{color:var(--ink);font-weight:500}
.hero__cta{display:flex;gap:12px;flex-wrap:wrap;justify-self:end}
.hero__proof{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px 26px;font-family:var(--mono);font-size:12px;color:var(--ink3);letter-spacing:.02em}
.hero__proof li{display:flex;align-items:center;gap:8px}
.hero__proof i{width:5px;height:5px;border-radius:50%;background:var(--accent)}
.hero__hint{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:3;pointer-events:none;display:flex;flex-direction:column;align-items:center;gap:10px;opacity:0;transition:opacity .8s;font-family:var(--mono);font-size:12px;letter-spacing:.06em;color:var(--ink2);text-transform:uppercase;text-align:center}
.hero__hint.show{opacity:1}
.hero__hint-pointer{width:12px;height:12px;border:1.5px solid var(--accent);border-radius:50%;position:relative;animation:hintmove 2.6s var(--ease2) infinite}
.hero__hint-pointer::after{content:"";position:absolute;inset:3px;background:var(--accent);border-radius:50%}
@keyframes hintmove{0%{transform:translateX(-60px)}50%{transform:translateX(60px)}100%{transform:translateX(-60px)}}
.hero__hint-text--coarse{display:none}
@media (pointer:coarse){ .hero__hint-text--fine{display:none} .hero__hint-text--coarse{display:block} }
.hero__scroll{position:absolute;right:28px;bottom:28px;z-index:3;font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink3);display:flex;align-items:center;gap:12px;writing-mode:vertical-rl;transform:rotate(180deg)}
.hero__scroll span{width:1px;height:48px;background:linear-gradient(to top,var(--accent),transparent);animation:scrollhint 2s ease-in-out infinite}
@keyframes scrollhint{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}}
.hero__order{position:absolute;right:84px;bottom:34px;z-index:3;display:flex;align-items:center;gap:10px;font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink3)}
.hero__order i{width:120px;height:2px;background:var(--line2);display:block;position:relative;border-radius:2px;overflow:hidden}
.hero__order b{position:absolute;left:0;top:0;bottom:0;width:100%;background:linear-gradient(90deg,var(--red),var(--amber),var(--accent),var(--mint));transform-origin:left;transform:scaleX(var(--o,0))}
@media (max-width:860px){
  .hero{height:150vh}
  .hero__bottom{grid-template-columns:1fr;gap:18px}
  .hero__cta{justify-self:start}
  .hero__scroll,.hero__order{display:none}
  .hero__proof{gap:6px 16px}
}

/* split text */
.split .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}
.split .c{display:inline-block;transform:translateY(110%) rotate(6deg);opacity:0;transition:transform .9s var(--ease),opacity .4s;transition-delay:calc(var(--d,0)*1ms)}
.split.in .c{transform:none;opacity:1}

/* reveal */
[data-reveal]{opacity:0;transform:translateY(28px);transition:opacity .8s var(--ease),transform 1s var(--ease);transition-delay:calc(var(--i,0)*90ms)}
[data-reveal].in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  [data-reveal],.split .c{opacity:1;transform:none;transition:none}
  .grain,.hero__aurora,.cta__aurora{animation:none}
  html{scroll-behavior:auto}
}

/* ---------- marquee ---------- */
.marquee{position:relative;z-index:2;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--bg);overflow:hidden;padding:18px 0;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.marquee__track{display:flex;gap:56px;width:max-content;animation:marquee 38s linear infinite;font-family:var(--mono);font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink3)}
.marquee__track span{position:relative;white-space:nowrap}
.marquee__track span::after{content:"";position:absolute;right:-32px;top:50%;width:5px;height:5px;border-radius:50%;background:var(--accent);transform:translateY(-50%);opacity:.6}
.marquee:hover .marquee__track{animation-play-state:paused}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ---------- compare ---------- */
.difference{background:linear-gradient(180deg,var(--bg),var(--bg2))}
.compare{position:relative;aspect-ratio:16/9.6;border-radius:var(--r);border:1px solid var(--line2);overflow:hidden;background:#0B0D11;--pos:50%;user-select:none;touch-action:pan-y;box-shadow:0 40px 120px -40px rgba(0,0,0,.8)}
.compare__layer{position:absolute;inset:0}
.compare__layer svg{width:100%;height:100%;display:block}
.compare__layer--before{background:radial-gradient(60% 70% at 30% 40%,rgba(255,92,122,.08),transparent 70%),#0B0D11}
.compare__layer--after{background:radial-gradient(60% 70% at 60% 50%,rgba(77,159,255,.12),transparent 70%),#0A0E16;clip-path:inset(0 0 0 var(--pos))}
.compare__handle{position:absolute;top:0;bottom:0;left:var(--pos);width:2px;background:var(--accent);transform:translateX(-50%);cursor:ew-resize;z-index:3;box-shadow:0 0 24px rgba(77,159,255,.6)}
.compare__handle::before{content:"";position:absolute;inset:0 -22px;cursor:ew-resize}
.compare__handle:focus-visible{outline:none}.compare__handle:focus-visible .compare__grip{box-shadow:0 0 0 4px rgba(77,159,255,.4)}
.compare__grip{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:52px;height:52px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;gap:4px;color:#04101f;font-size:10px;font-weight:700;transition:transform .4s var(--ease)}
.compare:active .compare__grip,.compare.dragging .compare__grip{transform:translate(-50%,-50%) scale(1.15)}
.compare__tag{position:absolute;top:18px;z-index:2;padding:10px 14px;border-radius:12px;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;display:flex;flex-direction:column;gap:2px;backdrop-filter:blur(8px)}
.compare__tag b{font-size:13px}
.compare__tag span{color:var(--ink2);text-transform:none;letter-spacing:0}
.compare__tag--before{left:18px;background:rgba(255,92,122,.12);border:1px solid rgba(255,92,122,.3);color:var(--red)}
.compare__tag--after{right:18px;background:rgba(77,159,255,.12);border:1px solid rgba(77,159,255,.35);color:var(--accent2)}
.compare__legend{display:flex;flex-wrap:wrap;gap:12px 36px;margin-top:24px;font-family:var(--mono);font-size:12px;color:var(--ink2)}
.compare__legend li{display:flex;align-items:center}
@media (max-width:720px){ .compare{aspect-ratio:4/3.6} .compare__tag span{display:none} }

/* before svg */
.cmp-before .tangle{fill:none;stroke-width:1.4;stroke-dasharray:5 9;animation:dash 6s linear infinite}
@keyframes dash{to{stroke-dashoffset:-140}}
.cmp-before .bn{animation:jitter 3s ease-in-out infinite;animation-delay:var(--d);transform-box:fill-box;transform-origin:center}
@keyframes jitter{0%,100%{transform:translate(0,0)}25%{transform:translate(3px,-2px)}50%{transform:translate(-2px,3px)}75%{transform:translate(2px,2px)}}
.cmp-before .bn circle{fill:#1A1419;stroke:var(--red);stroke-width:1.5}
.cmp-before .bn.warn circle{stroke:var(--amber)}
.cmp-before .bn text{fill:#D9A6B0;font-family:var(--mono);font-size:11px}
.cmp-before .bn.warn text{fill:#E8C488}
.cmp-before .ring{fill:none;stroke:var(--amber);stroke-width:1;opacity:.7;transform-box:fill-box;transform-origin:center;animation:ringpulse 2.2s ease-out infinite;animation-delay:var(--d)}
@keyframes ringpulse{0%{transform:scale(.6);opacity:.8}100%{transform:scale(2.4);opacity:0}}
.cmp-before .bang{fill:var(--amber);font-family:var(--mono);font-size:10px;font-weight:700}
.cmp-before .stamp{fill:none;stroke:var(--red);stroke-width:1.5;opacity:.5}
.cmp-before .stamp-text{fill:var(--red);font-family:var(--mono);font-size:12px;letter-spacing:2px;opacity:.7}
/* after svg */
.cmp-after .spoke{fill:none;stroke:url(#spokeGrad);stroke-width:1.5;opacity:.7}
.cmp-after .packet{fill:var(--mint);filter:drop-shadow(0 0 4px var(--mint))}
.cmp-after .hub-ring{fill:none;stroke:var(--accent);stroke-width:1;stroke-dasharray:4 6;opacity:.6;transform-box:fill-box;transform-origin:center;animation:spin 24s linear infinite}
.cmp-after .hub-ring2{fill:none;stroke:var(--accent);stroke-width:.6;opacity:.35;transform-box:fill-box;transform-origin:center;animation:spin 40s linear infinite reverse}
@keyframes spin{to{transform:rotate(360deg)}}
.cmp-after .hub{fill:#0F1A2B;stroke:var(--accent);stroke-width:1.5;filter:drop-shadow(0 0 18px rgba(77,159,255,.5))}
.cmp-after .hub-text{fill:var(--ink);font-family:var(--sans);font-weight:700;font-size:16px;text-anchor:middle}
.cmp-after .hub-sub{fill:var(--accent2);font-family:var(--mono);font-size:9px;letter-spacing:1.5px;text-anchor:middle}
.cmp-after .node rect{fill:#0E141E;stroke:rgba(77,159,255,.45);stroke-width:1;rx:9}
.cmp-after .node text{fill:var(--ink);font-family:var(--mono);font-size:11px}
.cmp-after .node .ok{fill:var(--mint);animation:okpulse 2s ease-in-out infinite;animation-delay:var(--d)}
@keyframes okpulse{0%,100%{opacity:1}50%{opacity:.35}}
.cmp-after .grid{stroke:rgba(77,159,255,.07);stroke-width:1}
.cmp-after .stamp{fill:none;stroke:var(--mint);stroke-width:1.5;opacity:.6}
.cmp-after .stamp-text{fill:var(--mint);font-family:var(--mono);font-size:12px;letter-spacing:2px;opacity:.85}

/* ---------- services ---------- */
.services{background:var(--bg2)}
.services__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:start}
.services__list{display:flex;flex-direction:column}
.svc{padding:48px 0;border-top:1px solid var(--line);position:relative;transition:opacity .4s}
.svc:last-child{border-bottom:1px solid var(--line)}
.svc__num{font-family:var(--mono);font-size:12px;color:var(--ink3);margin-bottom:22px;display:flex;align-items:center;gap:12px}
.svc__num::after{content:"";height:1px;width:40px;background:var(--line2);transition:width .6s var(--ease),background .4s}
.svc.active .svc__num{color:var(--accent)}.svc.active .svc__num::after{width:120px;background:var(--accent)}
.svc__kicker{font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--accent);margin-bottom:10px}
.svc__title{font-size:clamp(26px,2.6vw,36px);letter-spacing:-.025em;line-height:1.08;margin-bottom:14px;transition:transform .6s var(--ease)}
.svc.active .svc__title{transform:translateX(8px)}
.svc__text{color:var(--ink2);margin-bottom:20px;max-width:520px}
.svc.active .chips li{border-color:rgba(77,159,255,.5);color:var(--ink)}
.services__console{position:sticky;top:110px}
.console{border:1px solid var(--line2);border-radius:var(--r);background:#07090C;overflow:hidden;box-shadow:0 40px 100px -30px rgba(0,0,0,.9),0 0 0 1px rgba(77,159,255,.05) inset;font-family:var(--mono)}
.console__bar{display:flex;align-items:center;gap:14px;padding:12px 16px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.02)}
.console__dots{display:flex;gap:6px}.console__dots i{width:10px;height:10px;border-radius:50%;background:#2B2F38}
.console__dots i:nth-child(1){background:#FF5F57}.console__dots i:nth-child(2){background:#FEBC2E}.console__dots i:nth-child(3){background:#28C840}
.console__title{font-size:12px;color:var(--ink3);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.console__live{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--mint);display:flex;align-items:center;gap:6px}
.console__live i{width:6px;height:6px;border-radius:50%;background:var(--mint);animation:ping 1.6s infinite}
.console__body{padding:22px 20px;min-height:380px;font-size:13px;line-height:1.85;color:var(--ink2);white-space:pre-wrap;word-break:break-word}
.console__body .p{color:var(--accent)}.console__body .cmd{color:var(--ink)}.console__body .ok{color:var(--mint)}.console__body .warn{color:var(--amber)}.console__body .dim{color:var(--ink3)}.console__body .err{color:var(--red)}
.console__body .cur{display:inline-block;width:8px;height:15px;background:var(--accent);vertical-align:-3px;animation:blink 1s steps(2) infinite}
@keyframes blink{50%{opacity:0}}
.console__foot{padding:10px 16px;border-top:1px solid var(--line);font-size:11px;color:var(--ink3);letter-spacing:.02em}
@media (max-width:980px){
  .services__grid{grid-template-columns:minmax(0,1fr);gap:32px}
  .services__console{position:relative;top:auto;order:-1}
  .console__body{min-height:300px}
}

/* ---------- team ---------- */
.team{background:linear-gradient(180deg,var(--bg2),var(--bg))}
.team__grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.holo{perspective:1400px}
.holo__inner{position:relative;border-radius:var(--r);border:1px solid var(--line2);background:linear-gradient(160deg,#121620,#0C0E12);padding:26px;transform:rotateX(var(--rx,0)) rotateY(var(--ry,0));transition:transform .25s ease-out,box-shadow .4s;transform-style:preserve-3d;overflow:hidden;will-change:transform}
.holo:hover .holo__inner{box-shadow:0 40px 100px -30px rgba(77,159,255,.35)}
.holo__shine{position:absolute;inset:0;pointer-events:none;background:
  radial-gradient(500px 300px at var(--mx,50%) var(--my,50%),rgba(255,255,255,.12),transparent 60%),
  linear-gradient(115deg,transparent 30%,rgba(77,159,255,.12) 45%,rgba(124,242,196,.1) 50%,rgba(255,184,77,.08) 55%,transparent 70%);
  background-position:0 0,calc(var(--mx,50%) * 1) 0;opacity:0;transition:opacity .4s;mix-blend-mode:screen}
.holo:hover .holo__shine{opacity:1}
.holo__photo{width:132px;aspect-ratio:1;border-radius:16px;overflow:hidden;border:1px solid var(--line2);margin-bottom:20px;position:relative;transform:translateZ(30px)}
.holo__photo img{width:100%;height:100%;object-fit:cover;filter:saturate(.85) contrast(1.05)}
.holo__photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,rgba(77,159,255,.25));mix-blend-mode:overlay}
.holo__body{transform:translateZ(16px)}
.holo__role{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:6px}
.holo__name{font-size:clamp(26px,2.6vw,34px);letter-spacing:-.03em;margin-bottom:12px}
.holo__text{color:var(--ink2);font-size:15.5px;margin-bottom:18px}
.holo__text strong{color:var(--ink);font-weight:500}
.holo__skills{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:20px}
.holo__skills li{font-family:var(--mono);font-size:12px;color:var(--ink2);padding-left:14px;position:relative}
.holo__skills li::before{content:"";position:absolute;left:0;top:8px;width:5px;height:5px;border-radius:50%;background:var(--accent)}
.holo__id{position:absolute;right:22px;top:22px;font-family:var(--mono);font-size:10px;letter-spacing:.2em;color:var(--ink3);transform:translateZ(20px)}
@media (max-width:860px){ .team__grid{grid-template-columns:1fr} .holo__skills{grid-template-columns:1fr} }

/* ---------- process ---------- */
.steps{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:32px;padding-top:12px}
.steps__line{position:absolute;left:0;right:0;top:36px;height:2px;background:var(--line)}
.steps__line::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--accent),var(--mint));transform-origin:left;transform:scaleX(var(--p));transition:transform .15s linear}
.step{position:relative}
.step__node{width:50px;height:50px;border-radius:50%;border:1px solid var(--line2);background:var(--bg);display:grid;place-items:center;margin-bottom:24px;font-family:var(--mono);font-size:12px;color:var(--ink3);position:relative;transition:border-color .4s,color .4s,box-shadow .5s,background .4s}
.step.lit .step__node{border-color:var(--accent);color:var(--accent);box-shadow:0 0 0 6px rgba(77,159,255,.12),0 0 30px rgba(77,159,255,.35);background:#0D1626}
.step__node::after{content:"";position:absolute;inset:-1px;border-radius:50%;border:1px solid var(--accent);opacity:0;transform:scale(1)}
.step.lit .step__node::after{animation:ringpulse 1.2s ease-out 1}
.step__kicker{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink3);margin-bottom:8px}
.step__title{font-size:22px;letter-spacing:-.02em;margin-bottom:10px}
.step__text{color:var(--ink2);font-size:15px}
@media (max-width:860px){
  .steps{grid-template-columns:1fr;gap:36px;padding-left:56px}
  .steps__line{left:22px;right:auto;top:0;bottom:0;width:2px;height:auto}
  .steps__line::before{transform-origin:top;transform:scaleY(var(--p))}
  .step__node{position:absolute;left:-34px;top:-2px;width:44px;height:44px;transform:translateX(-50%);margin:0}
  .step{padding-left:0}
}

/* ---------- why / bento ---------- */
.why{background:var(--bg2)}
.bento{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.bento__card{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:var(--r);background:linear-gradient(160deg,#121620,#0C0E12);padding:30px;min-height:280px;display:flex;flex-direction:column;transition:border-color .4s,transform .6s var(--ease)}
.bento__card:hover{border-color:rgba(77,159,255,.4);transform:translateY(-4px)}
.bento__card--wide{grid-column:span 2}
.bento__card--quote{grid-column:span 2;background:linear-gradient(160deg,#0F1A2B,#0C0E12)}
.bento__kicker{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:14px}
.bento__title{font-size:clamp(22px,2vw,28px);letter-spacing:-.025em;line-height:1.1;margin-bottom:12px;max-width:22ch}
.bento__text{color:var(--ink2);font-size:15px;max-width:48ch}
.docanim{position:absolute;right:-20px;bottom:-30px;width:280px;transform:rotate(-6deg);opacity:.9;pointer-events:none}
.docanim__page{background:#0A0C10;border:1px solid var(--line2);border-radius:12px;padding:26px 22px 40px;box-shadow:0 30px 80px -20px rgba(0,0,0,.8);display:flex;flex-direction:column;gap:12px;position:relative}
.docanim__page i{display:block;height:6px;border-radius:3px;background:linear-gradient(90deg,var(--accent),rgba(77,159,255,.3));width:var(--w);transform-origin:left;transform:scaleX(0);animation:docline 4.5s ease-in-out infinite;animation-delay:var(--d)}
@keyframes docline{0%{transform:scaleX(0)}25%,80%{transform:scaleX(1)}100%{transform:scaleX(0)}}
.docanim__stamp{position:absolute;right:16px;bottom:10px;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--mint);border:1px solid var(--mint);padding:4px 8px;border-radius:6px;transform:rotate(-8deg);animation:stamp 4.5s ease-in-out infinite;opacity:0}
@keyframes stamp{0%,55%{opacity:0;transform:rotate(-8deg) scale(1.5)}62%,85%{opacity:1;transform:rotate(-8deg) scale(1)}100%{opacity:0}}
.bento__glyph{margin-top:auto;align-self:flex-end;position:relative;width:64px;height:64px}
.bento__glyph--ping i{position:absolute;inset:0;border-radius:50%;border:1px solid var(--accent);animation:ringpulse 2.4s ease-out infinite;opacity:0}
.bento__glyph--ping i:nth-child(2){animation-delay:.8s}.bento__glyph--ping i:nth-child(3){animation-delay:1.6s}
.bento__glyph--ping::after{content:"";position:absolute;left:50%;top:50%;width:10px;height:10px;border-radius:50%;background:var(--accent);transform:translate(-50%,-50%)}
.bento__glyph--orbit i{position:absolute;inset:0;border-radius:50%;border:1px dashed rgba(77,159,255,.6);animation:spin 10s linear infinite}
.bento__glyph--orbit b{position:absolute;left:50%;top:50%;width:8px;height:8px;border-radius:50%;background:var(--mint);transform-origin:0 0;animation:orbit 4s linear infinite;box-shadow:0 0 10px var(--mint)}
@keyframes orbit{from{transform:rotate(0) translate(32px) translate(-50%,-50%)}to{transform:rotate(360deg) translate(32px) translate(-50%,-50%)}}
.bento__glyph--timer svg{width:100%;height:100%;transform:rotate(-90deg)}
.bento__glyph--timer circle{fill:none;stroke:var(--line2);stroke-width:2}
.bento__glyph--timer .arc{stroke:var(--accent);stroke-dasharray:126;stroke-dashoffset:126;animation:arc 6s linear infinite}
@keyframes arc{to{stroke-dashoffset:0}}
.bento__glyph--timer span{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--mono);font-size:11px;color:var(--ink2)}
.quote{font-size:clamp(18px,1.6vw,22px);line-height:1.5;color:var(--ink);margin-bottom:22px;max-width:60ch}
.quote__who{display:flex;align-items:center;gap:14px;font-size:14px;color:var(--ink2);margin-top:auto}
.quote__who b{color:var(--ink);font-weight:500}
.quote__avatars{display:flex}
.quote__avatars i{width:38px;height:38px;border-radius:50%;background:#0E141E;border:1px solid var(--accent);display:grid;place-items:center;font-family:var(--mono);font-size:11px;font-style:normal;color:var(--accent2)}
.quote__avatars i+i{margin-left:-10px;border-color:var(--mint);color:var(--mint)}
@media (max-width:980px){ .bento{grid-template-columns:1fr 1fr} .bento__card--wide,.bento__card--quote{grid-column:span 2} }
@media (max-width:620px){ .bento{grid-template-columns:1fr} .bento__card--wide,.bento__card--quote{grid-column:span 1} .bento__card--wide{padding-bottom:150px} .docanim{width:230px;right:-30px;bottom:-70px;opacity:.85} }

/* ---------- results ---------- */
.results{background:linear-gradient(180deg,var(--bg2),var(--bg))}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.stat{background:var(--bg);padding:36px 30px;position:relative;transition:background .4s}
.stat:hover{background:#0E1218}
.stat::before{content:"";position:absolute;left:0;top:0;width:100%;height:2px;background:linear-gradient(90deg,var(--accent),transparent);transform:scaleX(0);transform-origin:left;transition:transform .8s var(--ease)}
.stat.in::before{transform:scaleX(1)}
.stat__num{font-size:clamp(44px,5vw,66px);font-weight:700;letter-spacing:-.04em;line-height:1;margin-bottom:14px;color:var(--ink);display:flex;align-items:baseline;gap:10px;font-variant-numeric:tabular-nums}
.stat__num em{font-style:normal;font-size:.45em;color:var(--mint);font-family:var(--mono);font-weight:400;letter-spacing:0}
.stat__label{color:var(--ink2);font-size:14.5px;max-width:34ch}
@media (max-width:860px){ .stats{grid-template-columns:1fr 1fr} }
@media (max-width:560px){ .stats{grid-template-columns:1fr} }

/* ---------- cta ---------- */
.cta{overflow:hidden;text-align:center;padding:clamp(120px,16vw,200px) 0}
.cta__aurora{position:absolute;inset:-30%;background:
  radial-gradient(35% 35% at 50% 55%,rgba(77,159,255,.22),transparent 70%),
  radial-gradient(25% 25% at 30% 40%,rgba(124,242,196,.1),transparent 70%),
  radial-gradient(25% 25% at 70% 60%,rgba(255,184,77,.07),transparent 70%);
  filter:blur(50px);animation:aurora 14s ease-in-out infinite alternate;pointer-events:none}
.cta__wrap{position:relative;z-index:2}
.cta__title{font-size:clamp(44px,8vw,112px);line-height:.98;letter-spacing:-.045em;font-weight:700;margin-bottom:24px}
.cta__actions{display:flex;flex-direction:column;align-items:center;gap:22px;margin-top:36px}
.cta__mail{font-size:15px}
.cta__orbit{position:absolute;left:50%;top:50%;width:min(900px,120vw);aspect-ratio:1;transform:translate(-50%,-50%);pointer-events:none;z-index:-1}
.cta__orbit i{position:absolute;inset:0;border-radius:50%;border:1px solid rgba(77,159,255,.12);animation:spin 60s linear infinite}
.cta__orbit i:nth-child(2){inset:15%;border-color:rgba(124,242,196,.1);animation-duration:45s;animation-direction:reverse}
.cta__orbit i:nth-child(3){inset:30%;border-color:rgba(77,159,255,.16);animation-duration:30s}
.cta__orbit i::after{content:"";position:absolute;left:50%;top:-3px;width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 12px var(--accent)}
.cta__orbit i:nth-child(2)::after{background:var(--mint);box-shadow:0 0 12px var(--mint)}

/* ---------- footer ---------- */
.footer{border-top:1px solid var(--line);padding:64px 0 28px;background:var(--bg)}
.footer__grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:40px;margin-bottom:48px}
.footer__brand p{color:var(--ink3);font-size:14px;max-width:34ch;margin-top:18px}
.footer__col{display:flex;flex-direction:column;gap:10px;font-size:14px;color:var(--ink2)}
.footer__col h4{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink3);margin-bottom:6px}
.footer__col a{transition:color .3s}.footer__col a:hover{color:var(--accent2)}
.footer__col span{color:var(--ink3)}
.footer__bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;padding-top:24px;border-top:1px solid var(--line);font-family:var(--mono);font-size:12px;color:var(--ink3)}
@media (max-width:860px){ .footer__grid{grid-template-columns:1fr 1fr} }
@media (max-width:520px){ .footer__grid{grid-template-columns:1fr} }

/* ---------- pulse (our audit engine) ---------- */
.pulse{background:var(--bg2)}
.pulse__grid{display:grid;grid-template-columns:1.05fr 1fr;gap:56px;align-items:center}
.pulse__points{display:grid;gap:14px;margin:28px 0 30px}
.pulse__points li{display:grid;grid-template-columns:150px 1fr;gap:12px;font-size:15px;color:var(--ink2);padding-bottom:12px;border-bottom:1px solid var(--line)}
.pulse__points b{color:var(--ink);font-weight:500;font-family:var(--mono);font-size:13px;letter-spacing:.02em}
.pulse__cta{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.pulse__note{font-family:var(--mono);font-size:12px;color:var(--ink3);flex-basis:100%}
.mono-inline{font-family:var(--mono);font-size:.92em;color:var(--accent2)}
.report__body{padding:22px 20px;font-family:var(--sans)}
.report__score{display:flex;gap:22px;align-items:center;margin-bottom:20px;flex-wrap:wrap}
.report__num{font-size:clamp(44px,5vw,64px);font-weight:700;letter-spacing:-.04em;line-height:1;font-variant-numeric:tabular-nums;color:var(--ink)}
.report__num small{font-size:.35em;color:var(--ink3);font-weight:500;letter-spacing:0}
.report__meta{flex:1;min-width:200px}
.report__lbl{display:block;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink3);margin-bottom:8px}
.report__bar{height:8px;border-radius:6px;background:rgba(255,255,255,.05);border:1px solid var(--line);overflow:hidden;margin-bottom:10px}
.report__bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--amber),var(--accent));transition:width 1.6s var(--ease) .3s}
.report__score.in .report__bar i{width:var(--v)}
.report__counts{display:flex;gap:16px;font-family:var(--mono);font-size:12px;flex-wrap:wrap;color:var(--ink2)}
.report__counts b{font-weight:700}.c-crit b{color:var(--red)}.c-warn b{color:var(--amber)}.c-pass b{color:var(--mint)}
.report__findings{display:grid;gap:8px}
.report__findings li{display:flex;gap:12px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.015);font-size:13.5px;color:var(--ink2)}
.report__findings p b{color:var(--ink);font-weight:500}
.sev{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:3px 8px;border-radius:6px;border:1px solid;flex:none}
.sev--crit{color:var(--red);border-color:rgba(255,92,122,.5);background:rgba(255,92,122,.1)}
.sev--warn{color:var(--amber);border-color:rgba(255,184,77,.5);background:rgba(255,184,77,.1)}
.sev--pass{color:var(--mint);border-color:rgba(124,242,196,.5);background:rgba(124,242,196,.1)}
.report__foot{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:16px;padding-top:12px;border-top:1px solid var(--line);font-family:var(--mono);font-size:11px;color:var(--ink3)}
.report__foot b{color:var(--ink2);font-weight:500}
.pulse__cont{margin-top:clamp(56px,8vw,96px);border:1px solid var(--line);border-radius:var(--r);background:linear-gradient(160deg,#121620,#0C0E12);padding:clamp(28px,4vw,48px)}
.pulse__conthead{max-width:640px;margin-bottom:32px}
.pulse__conthead h3{font-size:clamp(24px,2.6vw,34px);letter-spacing:-.025em;margin-bottom:10px}
.pulse__conthead h3 em{font-style:normal;color:var(--accent)}
.pulse__conthead p{color:var(--ink2)}
.pulse__cells{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.pulse__cell{border:1px solid var(--line);border-radius:14px;padding:22px;background:rgba(255,255,255,.015)}
.pulse__lbl{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);display:block;margin-bottom:10px}
.pulse__cell h4{font-size:18px;letter-spacing:-.015em;margin-bottom:8px}
.pulse__cell p{color:var(--ink2);font-size:14.5px}
.trend{display:flex;gap:10px;align-items:flex-end;height:64px;margin-top:18px}
.trend i{flex:1;height:var(--h);background:linear-gradient(180deg,var(--accent),rgba(77,159,255,.25));border-radius:4px 4px 0 0;transform:scaleY(0);transform-origin:bottom;transition:transform 1s var(--ease)}
.trend i:nth-child(2){transition-delay:.1s}.trend i:nth-child(3){transition-delay:.2s}.trend i:nth-child(4){transition-delay:.3s}
.trend i:last-child{background:linear-gradient(180deg,var(--mint),rgba(124,242,196,.25))}
.pulse__cont.in .trend i{transform:scaleY(1)}
.trend__lbl{display:flex;gap:10px;margin-top:8px;font-family:var(--mono);font-size:10px;color:var(--ink3)}
.trend__lbl span{flex:1;text-align:center}
@media (max-width:980px){.pulse__grid{grid-template-columns:1fr;gap:36px}.pulse__cells{grid-template-columns:1fr}}
@media (max-width:560px){.pulse__points li{grid-template-columns:1fr;gap:4px}}

/* ---------- labs (interactive simulators) ---------- */
.labs__layout{display:grid;grid-template-columns:1.1fr 1fr;gap:18px}
.labfeat{display:grid;grid-template-rows:auto 1fr;border:1px solid var(--line2);border-radius:var(--r);overflow:hidden;background:linear-gradient(160deg,#0F1A2B,#0C0E12);transition:border-color .4s,transform .6s var(--ease),box-shadow .5s;position:relative}
.labfeat:hover{border-color:rgba(77,159,255,.6);transform:translateY(-4px);box-shadow:0 40px 80px -40px rgba(77,159,255,.35)}
.labfeat__visual{position:relative;aspect-ratio:520/300;background:#0B0D11;border-bottom:1px solid var(--line)}
.labfeat__visual svg{width:100%;height:100%;display:block}
.lf-rack rect{fill:rgba(255,255,255,.08)}
.lf-rack rect:first-child{fill:rgba(16,19,23,.9);stroke:rgba(77,159,255,.6);stroke-width:1.2}
.lf-rack text{font-family:var(--mono);font-size:10px;font-weight:600;fill:var(--ink2);letter-spacing:.1em}
.lf-rack--dst rect:first-child{stroke:rgba(124,242,196,.6)}
.lf-pk circle{fill:var(--accent2);filter:drop-shadow(0 0 6px rgba(77,159,255,.9))}
.labfeat__tag{position:absolute;top:14px;left:14px;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--mint);border:1px solid rgba(124,242,196,.5);background:rgba(10,11,13,.7);padding:5px 9px;border-radius:999px}
.labfeat__body{padding:28px 30px 30px;display:flex;flex-direction:column;gap:12px;align-items:flex-start}
.labfeat__kicker{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.labfeat__title{font-size:clamp(26px,2.6vw,36px);letter-spacing:-.025em;line-height:1.08}
.labfeat__text{color:var(--ink2);font-size:15px;max-width:52ch}
.labfeat__meta{display:flex;flex-wrap:wrap;gap:8px 20px;font-family:var(--mono);font-size:12px;color:var(--ink3)}
.labfeat__meta li::before{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--accent);margin-right:8px;vertical-align:middle}
.labfeat .btn{margin-top:auto}
.labs__grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-content:start}
.labcard{display:flex;flex-direction:column;gap:6px;padding:20px;border:1px solid var(--line);border-radius:14px;background:var(--bg2);transition:border-color .3s,transform .5s var(--ease),background .3s;position:relative}
.labcard:hover{border-color:rgba(77,159,255,.5);transform:translateY(-3px);background:#10141B}
.labcard__ic{width:28px;height:28px;fill:none;stroke:var(--accent2);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;margin-bottom:6px}
.labcard em{font-style:normal;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink3)}
.labcard b{font-size:17px;letter-spacing:-.015em;font-weight:600}
.labcard span{font-size:13.5px;color:var(--ink2);line-height:1.5}
.labs__foot{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;margin-top:28px;padding-top:24px;border-top:1px solid var(--line);color:var(--ink2);font-size:15px}
.labs__foot p{max-width:60ch}
@media (max-width:980px){.labs__layout{grid-template-columns:1fr}.labs__grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.labs__grid{grid-template-columns:1fr}}

/* ---------- secondary pages (labs index, pulse, legal, 404) ---------- */
.page{padding-top:calc(72px + clamp(48px,8vw,96px))}
.page__hero{padding-bottom:clamp(40px,6vw,72px)}
.page__title{font-size:clamp(38px,6vw,76px);line-height:1;letter-spacing:-.035em;font-weight:700;margin-bottom:22px;max-width:16ch}
.page__title em{font-style:normal;color:var(--accent)}
.prose{max-width:760px;color:var(--ink2);font-size:16px}
.prose h2{font-size:clamp(22px,2.4vw,30px);letter-spacing:-.02em;color:var(--ink);margin:48px 0 14px}
.prose h3{font-size:18px;color:var(--ink);margin:28px 0 8px}
.prose p,.prose li{margin-bottom:12px;line-height:1.65}
.prose ul{list-style:disc;padding-left:22px}
.prose a{color:var(--accent2);border-bottom:1px solid rgba(140,194,255,.3)}
.prose .note{border-left:2px solid var(--amber);padding:10px 16px;background:rgba(255,184,77,.06);border-radius:0 10px 10px 0;color:var(--ink2);font-size:14.5px}
.prose code{font-family:var(--mono);font-size:.9em;color:var(--accent2)}
.strip{display:flex;flex-wrap:wrap;gap:10px 28px;font-family:var(--mono);font-size:12px;color:var(--ink3);margin:0 0 clamp(36px,5vw,56px);padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.strip li::before{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--mint);margin-right:8px;vertical-align:middle}
.lablist{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.labrow{display:grid;grid-template-columns:auto 1fr;gap:18px;padding:24px;border:1px solid var(--line);border-radius:var(--r);background:var(--bg2);transition:border-color .3s,transform .5s var(--ease),background .3s}
.labrow:hover{border-color:rgba(77,159,255,.5);transform:translateY(-3px);background:#10141B}
.labrow__num{font-family:var(--mono);font-size:12px;color:var(--ink3);width:40px;padding-top:4px}
.labrow__body{display:flex;flex-direction:column;align-items:flex-start}
.labrow__ic{width:30px;height:30px;fill:none;stroke:var(--accent2);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;margin-bottom:12px}
.labrow em{display:block;font-style:normal;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:6px}
.labrow b{display:block;font-size:22px;letter-spacing:-.02em;margin-bottom:8px}
.labrow p{color:var(--ink2);font-size:14.5px;margin-bottom:14px}
.labrow .chips{margin-bottom:16px}
.labrow .link{margin-top:auto}
.labrow--feat{grid-column:1/-1;background:linear-gradient(160deg,#0F1A2B,#0C0E12);border-color:var(--line2)}
.err{min-height:70svh;display:grid;place-items:center;text-align:center;padding:120px 0 80px}
.err>div{width:100%;max-width:560px;min-width:0}
.err .console{width:100%;text-align:left}
.err .console__body{overflow-wrap:anywhere}
@media (max-width:860px){.lablist{grid-template-columns:1fr}.labrow{grid-template-columns:1fr}.labrow__num{display:none}}

/* ---------- no-JS fallbacks ---------- */
.no-js .boot,.no-js .cursor,.no-js .grain,.no-js .hero__hint,.no-js .hero__order,.no-js .nav__progress{display:none}
.no-js [data-reveal],.no-js .split .c{opacity:1;transform:none}
.no-js .hero{height:auto}
.no-js .hero__sticky{position:relative;height:auto;min-height:100svh}
.no-js .trend i{transform:none}
.no-js .report__bar i{width:var(--v)}
.no-js .step .step__node{border-color:var(--accent);color:var(--accent)}
.no-js .nav{background:rgba(10,11,13,.85);border-color:var(--line)}
.nojs-note{position:fixed;bottom:0;left:0;right:0;z-index:9999;background:var(--accent);color:#04101f;font-family:var(--mono);font-size:12px;padding:10px 16px;text-align:center}
