:root{
  --bg:#050608; --bg2:#0D1013; --bg3:#14181C;
  --ink:#F3F1EA; --ink-dim:#9AA3AC; --ink-faint:#565F68;
  --ember:#FF6F2C; --ember-soft:rgba(255,111,44,.14); --ember-line:rgba(255,111,44,.4);
  --violet:#7C5CFF; --violet-soft:rgba(124,92,255,.14); --violet-line:rgba(124,92,255,.4);
  --line:rgba(243,241,234,.09); --line-strong:rgba(243,241,234,.18);
  --mono:ui-monospace,"SF Mono","Cascadia Code","Roboto Mono",Consolas,monospace;
  --sans:-apple-system,"Segoe UI",ui-sans-serif,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box;}
html{background:var(--bg); scroll-behavior:smooth;}
body{margin:0; background:var(--bg); color:var(--ink); font-family:var(--sans); -webkit-font-smoothing:antialiased; overflow-x:hidden;}
::selection{background:var(--ember); color:#1a0a02;}
a{color:inherit;}
img,svg,canvas{max-width:100%;}
@media (prefers-reduced-motion:reduce){ html{scroll-behavior:auto;} *{animation-duration:.001ms !important; transition-duration:.001ms !important;} }

/* page-enter */
body{opacity:0; animation:pageIn .5s ease forwards;}
@keyframes pageIn{ to{opacity:1;} }

/* ---------- nav ---------- */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:60; display:flex; align-items:center;
  justify-content:space-between; padding:1.3rem 4vw; backdrop-filter:blur(10px);
  background:linear-gradient(to bottom, rgba(5,6,8,.9), rgba(5,6,8,.55) 70%, transparent);
}
.nav .logo{font-family:var(--mono); font-weight:600; letter-spacing:.1em; font-size:.92rem; text-decoration:none;}
.nav .logo b{color:var(--ember);}
.nav .links{display:flex; gap:2.1rem; font-size:.88rem; color:var(--ink-dim);}
.nav .links a{text-decoration:none; position:relative; padding:.2rem 0; transition:color .2s;}
.nav .links a:hover{color:var(--ink);}
.nav .links a.active{color:var(--ink);}
.nav .links a.active::after{content:""; position:absolute; left:0; right:0; bottom:-6px; height:2px; background:var(--ember); border-radius:2px;}
.nav .cta{
  font-family:var(--mono); font-size:.8rem; letter-spacing:.03em; padding:.55rem 1.1rem;
  border:1px solid var(--line-strong); border-radius:999px; text-decoration:none; transition:border-color .2s, background .2s;
}
.nav .cta:hover{border-color:var(--ember); background:var(--ember-soft);}
.nav .burger{display:none; width:34px; height:34px; border:1px solid var(--line-strong); border-radius:8px; background:none; cursor:pointer; position:relative;}
.nav .burger span, .nav .burger span::before, .nav .burger span::after{
  content:""; position:absolute; left:9px; right:9px; height:1.5px; background:var(--ink); transition:transform .25s, opacity .25s;
}
.nav .burger span{top:16px;}
.nav .burger span::before{content:""; top:-6px;}
.nav .burger span::after{content:""; top:6px;}
.nav .burger.open span{background:transparent;}
.nav .burger.open span::before{transform:translateY(6px) rotate(45deg);}
.nav .burger.open span::after{transform:translateY(-6px) rotate(-45deg);}
.mobile-panel{
  position:fixed; inset:0; z-index:55; background:var(--bg); display:flex; flex-direction:column;
  align-items:flex-start; justify-content:center; gap:1.6rem; padding:6rem 8vw;
  transform:translateY(-100%); transition:transform .35s ease; opacity:0;
}
.mobile-panel.open{transform:translateY(0); opacity:1;}
.mobile-panel a{font-size:2rem; font-weight:750; text-decoration:none; color:var(--ink); letter-spacing:-.01em;}
.mobile-panel a.cta-mobile{font-family:var(--mono); font-size:1.1rem; color:var(--ember);}
@media (max-width:760px){ .nav .links{display:none;} .nav .burger{display:block;} }
@media (min-width:761px){ .mobile-panel{display:none;} }

/* subtle telemetry texture, reused on hero/vision sections */
.texture::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background-image:radial-gradient(circle at 1px 1px, rgba(243,241,234,.05) 1px, transparent 1px);
  background-size:26px 26px;
}

/* ---------- hero (shared across pages) ---------- */
.hero{position:relative; min-height:100vh; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; padding:8rem 6vw 4rem; overflow:hidden;}
.hero canvas{position:absolute; inset:0; width:100%; height:100%; z-index:0; opacity:.75;}
.hero-content{position:relative; z-index:2; max-width:920px;}
.eyebrow{font-family:var(--mono); font-size:.78rem; letter-spacing:.16em; text-transform:uppercase; color:var(--ember); display:flex; align-items:center; gap:.6rem; margin-bottom:1.8rem;}
.eyebrow::before{content:""; width:26px; height:1px; background:var(--ember);}
.eyebrow.v{color:var(--violet);}
.eyebrow.v::before{background:var(--violet);}
.hero h1{font-size:clamp(2.6rem,6.2vw,5.2rem); font-weight:850; line-height:1.03; letter-spacing:-.03em; margin:0 0 1.6rem; text-wrap:balance;}
.hero h1 em{font-style:normal; color:var(--ember);}
.hero h1 em.v{color:var(--violet);}
.hero p.lead{font-size:clamp(1.05rem,1.6vw,1.28rem); color:var(--ink-dim); max-width:54ch; line-height:1.6; margin:0 0 2.4rem;}
.cta-row{display:flex; gap:1rem; flex-wrap:wrap;}
.btn{font-family:var(--mono); font-size:.85rem; letter-spacing:.03em; padding:.95rem 1.7rem; border-radius:999px; text-decoration:none; display:inline-flex; align-items:center; gap:.5rem; transition:transform .18s ease, box-shadow .18s ease; position:relative;}
.btn-primary{background:var(--ember); color:#1a0a02; font-weight:700;}
.btn-primary:hover{transform:translateY(-2px); box-shadow:0 12px 32px -8px var(--ember-line);}
.btn-ghost{border:1px solid var(--line-strong); color:var(--ink);}
.btn-ghost:hover{border-color:var(--ink-dim); transform:translateY(-2px);}
.scroll-cue{position:absolute; bottom:2.2rem; left:6vw; font-family:var(--mono); font-size:.72rem; color:var(--ink-faint); letter-spacing:.08em; display:flex; align-items:center; gap:.6rem; z-index:2;}
.scroll-cue .bar{width:1px; height:34px; background:linear-gradient(to bottom, var(--ember), transparent);}

/* ---------- reveal ---------- */
.reveal{opacity:0; transform:translateY(26px); transition:opacity .7s ease, transform .7s ease;}
.reveal.in{opacity:1; transform:none;}

section{position:relative; padding:7rem 6vw; border-top:1px solid var(--line);}
.section-inner{max-width:1160px; margin:0 auto;}
.kicker{font-family:var(--mono); font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-faint); margin-bottom:1.2rem;}
h2{font-size:clamp(1.9rem,3.6vw,3rem); font-weight:800; letter-spacing:-.02em; line-height:1.12; margin:0 0 1.2rem; text-wrap:balance;}
h3{font-size:1.25rem; font-weight:750; margin:0 0 .8rem;}
.statement{font-size:clamp(1.6rem,3vw,2.5rem); font-weight:650; line-height:1.32; letter-spacing:-.01em; max-width:20ch; text-wrap:balance;}
.statement em{font-style:normal; color:var(--ember);}
.statement em.v{color:var(--violet);}
p{line-height:1.65;}

.grid2{display:grid; grid-template-columns:1fr 1fr; gap:2.4rem;}
.grid3{display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem;}
@media (max-width:900px){ .grid2,.grid3{grid-template-columns:1fr;} }

.card{background:var(--bg2); border:1px solid var(--line); border-radius:12px; padding:2.1rem 1.9rem; transition:border-color .25s, transform .25s;}
.card:hover{border-color:var(--ember-line); transform:translateY(-4px);}
.card .tag{font-family:var(--mono); font-size:.72rem; color:var(--ember); letter-spacing:.08em; text-transform:uppercase;}
.card p{color:var(--ink-dim); line-height:1.6; margin:0; font-size:.96rem;}
.card.v:hover{border-color:var(--violet-line);}
.card.v .tag{color:var(--violet);}

.taglist{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.7rem;}
.taglist li{display:flex; gap:.7rem; align-items:flex-start; line-height:1.6; color:var(--ink);}
.taglist li::before{content:"→"; color:var(--ember); flex:none; font-family:var(--mono); margin-top:.15rem;}

table{width:100%; border-collapse:collapse; font-size:.95rem;}
th,td{text-align:left; padding:.7rem .9rem; border-bottom:1px solid var(--line); vertical-align:top;}
th{font-family:var(--mono); font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-faint); font-weight:500; border-bottom:1px solid var(--line-strong);}
.table-wrap{overflow-x:auto; border:1px solid var(--line); border-radius:10px;}
.table-wrap table{min-width:520px;}
td.mono{font-family:var(--mono);}

/* ---------- ladder ---------- */
.ladder{display:flex; gap:0; margin-top:2.6rem; flex-wrap:wrap;}
.rung{flex:1; min-width:130px; background:var(--bg2); border:1px solid var(--line); border-radius:10px; padding:1.3rem 1rem; text-align:center; position:relative; transition:border-color .3s, background .3s;}
.rung.in{border-color:var(--ember-line); background:var(--ember-soft);}
.rung .k{font-family:var(--mono); font-size:.72rem; color:var(--ink-faint);}
.rung .v{font-weight:700; margin-top:.4rem; font-size:.98rem;}
.rung .d{color:var(--ink-dim); font-size:.8rem; margin-top:.5rem; line-height:1.4;}
.rung + .rung{margin-left:.85rem;}
.rung + .rung::before{content:"→"; position:absolute; left:-1.3rem; top:1.5rem; color:var(--ember); font-family:var(--mono);}
@media (max-width:900px){ .ladder{flex-direction:column;} .rung + .rung{margin-left:0; margin-top:1.5rem;} .rung + .rung::before{content:"↓"; left:50%; top:-1.3rem; transform:translateX(-50%);} }

/* ---------- stat row ---------- */
.stat-row{display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; margin:2rem 0;}
@media (max-width:820px){ .stat-row{grid-template-columns:1fr;} }
.stat{background:var(--bg2); border:1px solid var(--line); border-radius:10px; padding:1.3rem 1.4rem;}
.stat .num{font-family:var(--mono); font-size:1.9rem; font-weight:600; color:var(--ember);}
.stat .label{color:var(--ink-dim); font-size:.88rem; margin-top:.3rem;}

/* ---------- vision full-bleed band ---------- */
.band-violet{background:radial-gradient(ellipse 90% 60% at 30% 0%, var(--violet-soft), transparent 60%), var(--bg);}

/* ---------- form (contact) ---------- */
.field{display:flex; flex-direction:column; gap:.5rem; margin-bottom:1.4rem;}
.field label{font-family:var(--mono); font-size:.75rem; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-faint);}
.field input, .field textarea{
  background:var(--bg2); border:1px solid var(--line-strong); border-radius:8px; padding:.85rem 1rem;
  color:var(--ink); font-family:var(--sans); font-size:.98rem; resize:vertical;
}
.field input:focus, .field textarea:focus{outline:none; border-color:var(--ember);}

/* ---------- footer ---------- */
footer{border-top:1px solid var(--line); padding:5rem 6vw 2.4rem;}
.foot-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:3rem; max-width:1160px; margin:0 auto;}
@media (max-width:820px){ .foot-grid{grid-template-columns:1fr; gap:2.4rem;} }
.foot-logo{font-family:var(--mono); font-weight:600; letter-spacing:.1em; font-size:1rem;}
.foot-logo b{color:var(--ember);}
.foot-tag{color:var(--ink-dim); margin-top:.8rem; font-size:.95rem; max-width:32ch; line-height:1.55;}
.foot-col h4{font-family:var(--mono); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-faint); margin:0 0 1rem;}
.foot-col a{display:block; color:var(--ink-dim); text-decoration:none; padding:.32rem 0; font-size:.93rem; transition:color .2s;}
.foot-col a:hover{color:var(--ink);}
.foot-bottom{max-width:1160px; margin:3.6rem auto 0; padding-top:1.6rem; border-top:1px solid var(--line); display:flex; justify-content:space-between; flex-wrap:wrap; gap:1rem; font-family:var(--mono); font-size:.75rem; color:var(--ink-faint);}

/* ---------- 404 ---------- */
.notfound{min-height:100vh; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:6rem 6vw;}
.notfound .code{font-family:var(--mono); font-size:clamp(4rem,14vw,9rem); font-weight:800; color:var(--ember); line-height:1;}

/* magnetic button glow follows cursor */
.btn-primary{--mx:50%; --my:50%;}
.btn-primary::after{
  content:""; position:absolute; inset:0; border-radius:999px; pointer-events:none;
  background:radial-gradient(120px circle at var(--mx) var(--my), rgba(255,255,255,.35), transparent 60%);
  opacity:0; transition:opacity .2s;
}
.btn-primary:hover::after{opacity:1;}
