:root{
  --bg:#0E1016; --surface:#171A22; --line:#262B37;
  --ink:#E9E7E1; --dim:#9A9BA6;
  --violet:#3A1A6E; --magenta:#B0246B; --amber:#F2A03D;
  --ironbow:linear-gradient(90deg,#3A1A6E 0%,#B0246B 45%,#F2A03D 100%);
  --r:6px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.65 "Inter","Helvetica Neue",-apple-system,"Segoe UI",Arial,sans-serif;-webkit-font-smoothing:antialiased}
.disp{font-family:"Space Grotesk","Futura","Avenir Next",sans-serif;letter-spacing:-.01em}
.mono{font-family:"IBM Plex Mono","SF Mono",ui-monospace,Menlo,monospace}
a{color:inherit}
img{max-width:100%;height:auto;display:block}
.wrap{max-width:1120px;margin:0 auto;padding:0 24px}

/* nav */
nav{display:flex;align-items:center;justify-content:space-between;padding:26px 0;flex-wrap:wrap;gap:14px}
.logo{font-size:22px;font-weight:700;text-decoration:none;letter-spacing:.06em}
.logo b{background:var(--ironbow);-webkit-background-clip:text;background-clip:text;color:transparent}
.navlinks{display:flex;gap:22px;font-size:12px;letter-spacing:.15em;text-transform:uppercase}
.navlinks a{color:var(--dim);text-decoration:none;padding:4px 0}
.navlinks a:hover,.navlinks a:focus-visible{color:var(--amber)}
.lang{border:1px solid var(--line);border-radius:999px;padding:4px 12px !important}

/* hero */
.hero{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;padding:64px 0 34px}
.eyebrow{font-size:11px;letter-spacing:.22em;color:var(--amber);margin:0 0 18px}
h1{font-size:clamp(38px,5.4vw,62px);line-height:1.04;margin:0 0 22px;font-weight:700}
.scan-word{display:inline-block;transform:translateZ(0);background:var(--ironbow);-webkit-background-clip:text;background-clip:text;color:transparent}
.sub{color:var(--dim);max-width:54ch;margin:0 0 32px;font-size:17px}
.cta{display:inline-block;background:var(--amber);color:#14161C;text-decoration:none;font-weight:600;padding:13px 26px;border-radius:var(--r);transition:transform .18s ease,background .18s ease}
.cta:hover,.cta:focus-visible{background:#FFB759;transform:translateY(-1px);outline:2px solid var(--magenta);outline-offset:2px}
.cta2{display:inline-block;color:var(--ink);text-decoration:none;padding:13px 20px;border:1px solid var(--line);border-radius:var(--r);margin-left:12px;transition:border-color .18s ease}
.cta2:hover,.cta2:focus-visible{border-color:var(--amber);outline:none}

/* signature: thermal scan */
.scanbox{position:relative;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:#000;contain:layout paint}
.scanbox img{width:100%;aspect-ratio:3/2;object-fit:cover}
.thermal{position:absolute;top:0;bottom:0;left:0;width:16%;overflow:hidden;pointer-events:none;will-change:transform;animation:sweepW 7s cubic-bezier(.45,.05,.55,.95) infinite}
.thermal img{position:absolute;top:0;left:0;height:100%;width:625%;max-width:none;object-fit:cover;filter:grayscale(1) contrast(1.35) brightness(.95);will-change:transform;animation:sweepI 7s cubic-bezier(.45,.05,.55,.95) infinite}
.thermal::after{content:"";position:absolute;inset:0;background:var(--ironbow);mix-blend-mode:color;opacity:.95}
.sweep{position:absolute;inset:0;pointer-events:none;will-change:transform;animation:sweepT 7s cubic-bezier(.45,.05,.55,.95) infinite}
.sweep::before{content:"";position:absolute;top:0;bottom:0;left:0;width:2px;background:var(--amber);box-shadow:0 0 18px 2px rgba(242,160,61,.75)}
.readout{position:absolute;top:14px;left:0;transform:translateX(12px);font-size:11px;color:#14161C;background:var(--amber);padding:3px 8px;border-radius:3px;white-space:nowrap}
@keyframes sweepW{0%{transform:translateX(0)}48%,50%{transform:translateX(525%)}98%,100%{transform:translateX(0)}}
@keyframes sweepI{0%{transform:translateX(0)}48%,50%{transform:translateX(-13.44%)}98%,100%{transform:translateX(0)}}
@keyframes sweepT{0%{transform:translateX(16%)}48%{transform:translateX(84%)}50%{transform:translateX(84%)}98%{transform:translateX(16%)}100%{transform:translateX(16%)}}
.scancap{position:absolute;left:0;right:0;bottom:0;margin:0;padding:9px 14px;font-size:11px;letter-spacing:.12em;color:var(--dim);background:rgba(14,16,22,.82);backdrop-filter:blur(4px)}

/* telemetry strip */
.telemetry{contain:layout paint;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);margin:26px 0 0;padding:10px 16px;font-size:12.5px;color:var(--dim);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.telemetry b{color:var(--amber);font-weight:500}
.telemetry .cursor{display:inline-block;width:7px;height:13px;background:var(--amber);vertical-align:-2px;margin-left:6px;animation:blink 1.1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}

/* sections */
section{padding:64px 0}
h2{font-size:clamp(28px,3.6vw,40px);line-height:1.12;margin:0 0 14px;font-weight:700}
.lead{color:var(--dim);max-width:60ch;margin:0 0 36px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.card{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:24px 22px;overflow:hidden}
.card h3{margin:10px 0 10px;font-size:18px}
.card p{margin:0;color:var(--dim);font-size:14.5px}
.card::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--ironbow);transform:scaleX(0);transform-origin:left;transition:transform .35s ease}
.card:hover::before,.card:focus-within::before{transform:scaleX(1)}
.modality{display:inline-block;font-size:11px;letter-spacing:.1em;color:var(--amber);border:1px solid var(--line);border-radius:999px;padding:2px 10px}
.soon{color:var(--magenta);border-color:var(--magenta)}

/* steps pipeline */
.steps{counter-reset:step}
.steps .card{padding-top:20px}
.stepno{font-size:12px;color:var(--amber);letter-spacing:.18em}
.note{border-left:2px solid var(--amber);padding:6px 0 6px 18px;color:var(--ink);max-width:62ch;margin:34px 0 0;font-size:16.5px}

/* partner band */
.band{background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}

/* reveal on scroll */
.rv{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}
.rv.on{opacity:1;transform:none}
.rv:nth-child(2){transition-delay:.08s}.rv:nth-child(3){transition-delay:.16s}
.rv:nth-child(4){transition-delay:.24s}.rv:nth-child(5){transition-delay:.32s}.rv:nth-child(6){transition-delay:.4s}

footer{padding:44px 0 60px;color:var(--dim);font-size:13.5px}
footer a{color:var(--dim)}
footer a:hover{color:var(--amber)}

@media (max-width:900px){
  .hero{grid-template-columns:1fr;gap:34px;padding-top:34px}
  .grid3,.grid4{grid-template-columns:1fr 1fr}
}
@media (max-width:600px){
  .grid3,.grid4{grid-template-columns:1fr}
  .cta2{margin-left:0;margin-top:12px}
}
@media (prefers-reduced-motion:reduce){
  .thermal,.thermal img,.sweep,.telemetry .cursor{animation:none}
  .thermal{transform:translateX(212%)}
  .thermal img{transform:translateX(-5.4%)}
  .sweep{transform:translateX(50%)}
  .rv{opacity:1;transform:none;transition:none}
  html{scroll-behavior:auto}
}

/* construction section */
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media (max-width:900px){.grid2{grid-template-columns:1fr}}
.shot{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:#000}
.shot img{width:100%;display:block}
.shotcap{font-size:11px;letter-spacing:.12em;color:var(--dim);padding:9px 14px;background:var(--surface);margin:0;border-top:1px solid var(--line)}
