:root{
  --bg:#06080a;
  --panel:#0b0f12;
  --panel2:#0f1417;
  --line:#1e2a2f;
  --line2:#2c3b41;
  --ink:#e6efe9;
  --dim:#8a9a99;
  --dimmer:#5d6d6d;
  --lime:#c2ff45;
  --amber:#ff9142;
  --cyan:#5ee7ff;
  --mono:"IBM Plex Mono",ui-monospace,monospace;
  --disp:"JetBrains Mono",ui-monospace,monospace;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--mono);
  font-weight:400;
  font-size:15px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
body::before{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    linear-gradient(transparent 0 39px,rgba(194,255,69,.045) 39px 40px),
    linear-gradient(90deg,transparent 0 39px,rgba(194,255,69,.045) 39px 40px);
  background-size:40px 40px;
  mask-image:radial-gradient(120% 90% at 50% 0%,#000 30%,transparent 100%);
}
.scan{
  position:fixed;inset:0;z-index:60;pointer-events:none;
  background:repeating-linear-gradient(180deg,rgba(255,255,255,.022) 0 1px,transparent 1px 3px);
  mix-blend-mode:overlay;
}

/* ---------- top bar ---------- */
.topbar{
  position:fixed;top:0;left:0;right:0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:10px 14px;
  background:linear-gradient(180deg,rgba(6,8,10,.96),rgba(6,8,10,.7));
  border-bottom:1px solid var(--line);
  backdrop-filter:blur(6px);
}
.brand{display:flex;align-items:center;gap:9px;text-decoration:none;color:var(--lime)}
.logo{width:26px;height:26px;flex:none;filter:drop-shadow(0 0 6px rgba(194,255,69,.35))}
.brandtype{
  font-family:var(--disp);font-weight:800;font-size:12px;letter-spacing:.16em;
  color:var(--ink);
}
.brandtype em{font-style:normal;color:var(--lime);margin-left:.35em}
.topmeta{
  display:flex;align-items:center;gap:7px;
  font-size:9.5px;letter-spacing:.14em;color:var(--dimmer);white-space:nowrap;
}
.topmeta em{font-style:normal}
@media(max-width:560px){.topmeta .coords{display:none}}
.blip{width:6px;height:6px;border-radius:50%;background:var(--lime);animation:blip 1.8s infinite}
@keyframes blip{0%,100%{opacity:1;box-shadow:0 0 0 0 rgba(194,255,69,.5)}50%{opacity:.35;box-shadow:0 0 0 5px rgba(194,255,69,0)}}

.progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:55;background:transparent}
.progress i{display:block;height:100%;width:0;background:var(--lime);box-shadow:0 0 10px var(--lime)}

/* ---------- slide rail (desktop) ---------- */
.rail{display:none}
@media(min-width:1080px){
  .rail{
    display:block;position:fixed;z-index:50;left:16px;top:50%;transform:translateY(-50%);
  }
  .rail ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
  .rail a{
    display:flex;align-items:center;gap:8px;text-decoration:none;
    font-size:9px;letter-spacing:.12em;color:var(--dimmer);
  }
  .rail i{width:14px;height:1px;background:var(--line2);transition:.25s}
  .rail a span{
    opacity:0;transform:translateX(-4px);transition:.25s;text-transform:uppercase;
    background:var(--panel);border:1px solid var(--line2);padding:3px 7px;white-space:nowrap;
  }
  .rail a:hover span{opacity:1;transform:none}
  .rail a.on{color:var(--lime)}
  .rail a.on i{width:26px;background:var(--lime);box-shadow:0 0 8px var(--lime)}
}

/* ---------- slides ---------- */
main{position:relative;z-index:1}
.slide{
  min-height:100svh;
  display:flex;align-items:center;
  padding:78px 16px 54px;
  border-bottom:1px solid var(--line);
  position:relative;
}
.slide::after{
  content:"";position:absolute;left:16px;right:16px;bottom:16px;height:1px;
  background:repeating-linear-gradient(90deg,var(--line2) 0 4px,transparent 4px 10px);
}
.wrap{width:100%;max-width:1120px;margin:0 auto}

.eyebrow{
  font-family:var(--disp);font-weight:700;font-size:10px;letter-spacing:.24em;
  color:var(--lime);margin:0 0 14px;
}
.eyebrow::before{content:"\25B8  "}
h2{
  font-family:var(--disp);font-weight:800;
  font-size:clamp(22px,5.4vw,40px);line-height:1.12;letter-spacing:-.02em;
  margin:0 0 22px;max-width:22ch;
}
@media(min-width:760px){h2{max-width:30ch}}
h2.big{font-size:clamp(30px,8vw,64px)}
.hl{color:var(--amber)}
.glow{color:var(--lime);text-shadow:0 0 24px rgba(194,255,69,.35)}

.prose p{color:var(--dim);font-size:13.5px;margin:0 0 13px;max-width:46ch}
.prose b{color:var(--ink);font-weight:500}
.prose.wide p{max-width:70ch}
.note{
  margin:20px 0 0;padding-left:11px;border-left:2px solid var(--amber);
  color:var(--dim);font-size:12px;max-width:66ch;
}
.disclaim{margin:18px 0 0;color:var(--dimmer);font-size:10.5px;letter-spacing:.03em;max-width:70ch}

/* ---------- title slide ---------- */
.title-slide{
  background:
    radial-gradient(90% 60% at 12% 8%,rgba(194,255,69,.07),transparent 70%),
    radial-gradient(70% 50% at 100% 100%,rgba(255,145,66,.07),transparent 70%);
}
.kicker{font-family:var(--disp);font-size:9.5px;letter-spacing:.3em;color:var(--dimmer);margin:0 0 18px}
.hero{
  font-family:var(--disp);font-weight:800;
  font-size:clamp(42px,15vw,132px);line-height:.9;letter-spacing:-.045em;
  margin:0 0 20px;
}
.lede{color:var(--dim);font-size:13.5px;max-width:44ch;margin:0 0 30px}
@media(min-width:760px){.lede{font-size:15px;max-width:64ch}}
.cursorline{color:var(--ink)}
.caret{display:inline-block;width:8px;height:14px;margin-left:4px;background:var(--lime);vertical-align:-2px;animation:blink 1s steps(1) infinite}
@keyframes blink{0%,50%{opacity:1}50.01%,100%{opacity:0}}

.statstrip{
  display:grid;grid-template-columns:repeat(2,1fr);gap:1px;
  background:var(--line);border:1px solid var(--line);
}
@media(min-width:760px){.statstrip{grid-template-columns:repeat(4,1fr)}}
.statstrip div{background:var(--panel);padding:14px 12px}
.statstrip b{
  display:block;font-family:var(--disp);font-weight:800;font-size:clamp(18px,4.6vw,26px);
  color:var(--lime);letter-spacing:-.02em;font-variant-numeric:tabular-nums;
}
.statstrip span{display:block;font-size:9.5px;letter-spacing:.14em;color:var(--dimmer);text-transform:uppercase;margin-top:4px}
.scrollhint{margin:26px 0 0;font-size:9.5px;letter-spacing:.26em;color:var(--dimmer)}
kbd{border:1px solid var(--line2);padding:1px 5px;border-radius:2px;font-family:var(--mono);font-size:9.5px}

/* ---------- layout helpers ---------- */
.twocol{display:grid;gap:22px}
@media(min-width:860px){.twocol{grid-template-columns:1.05fr .95fr;gap:38px;align-items:start}}

.askbox{border:1px solid var(--lime);background:linear-gradient(160deg,rgba(194,255,69,.08),rgba(194,255,69,.01));padding:18px 16px}
.boxlabel{font-family:var(--disp);font-weight:700;font-size:9.5px;letter-spacing:.22em;color:var(--lime);margin:0 0 12px}
.ticks{list-style:none;margin:0;padding:0}
.ticks li{position:relative;padding-left:20px;margin-bottom:11px;font-size:13px;color:var(--ink)}
.ticks li::before{content:"\2713";position:absolute;left:0;color:var(--lime);font-size:12px}
.boxfoot{margin:14px 0 0;padding-top:12px;border-top:1px dashed var(--line2);font-size:11px;color:var(--dim)}

.grid6{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
@media(min-width:760px){.grid6{grid-template-columns:repeat(3,1fr)}}
.grid6 div{background:var(--panel);padding:16px 13px}
.grid6 b{display:block;font-family:var(--disp);font-weight:800;font-size:clamp(17px,4.4vw,25px);color:var(--lime);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.grid6 span{display:block;font-size:11px;color:var(--dim);margin-top:6px;line-height:1.45}

.grid4{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:24px}
@media(min-width:860px){.grid4{grid-template-columns:repeat(4,1fr)}}
.grid4 div{background:var(--panel);padding:16px 13px}
.grid4 b{display:block;font-family:var(--disp);font-weight:800;font-size:clamp(15px,3.8vw,21px);color:var(--amber);font-variant-numeric:tabular-nums}
.grid4 span{display:block;font-size:11px;color:var(--dim);margin-top:6px;line-height:1.45}

/* ---------- cards ---------- */
.cards{display:grid;gap:14px}
@media(min-width:760px){.cards{grid-template-columns:repeat(2,1fr)}}
.card{
  border:1px solid var(--line);background:var(--panel);padding:16px 15px;
  position:relative;transition:border-color .2s,transform .2s,background .2s;
}
.card::before{content:"";position:absolute;top:0;left:0;width:20px;height:2px;background:var(--lime);transition:width .25s}
.card:hover{border-color:var(--line2);transform:translateY(-3px);background:var(--panel2)}
.card:hover::before{width:64px}
.card h3{
  font-family:var(--disp);font-weight:700;font-size:12px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--lime);margin:0 0 9px;
}
.card p{margin:0;font-size:12.5px;color:var(--dim)}

/* ---------- spec table ---------- */
table{width:100%;border-collapse:collapse}
.spec{border:1px solid var(--line);background:var(--panel)}
.spec th,.spec td{text-align:left;padding:9px 11px;border-bottom:1px solid var(--line);font-weight:400;vertical-align:top}
.spec tr:last-child th,.spec tr:last-child td{border-bottom:0}
.spec th{width:38%;font-size:9.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--dimmer);white-space:nowrap}
.spec td{font-size:12px;color:var(--ink)}
.spec tr:hover{background:rgba(194,255,69,.045)}

/* ---------- data tables ---------- */
.tablewrap{overflow-x:auto;border:1px solid var(--line);background:var(--panel)}
.data{min-width:560px;font-size:12px}
.data thead th{
  text-align:left;padding:10px 12px;font-family:var(--disp);font-weight:700;
  font-size:9.5px;letter-spacing:.15em;text-transform:uppercase;color:var(--bg);
  background:var(--lime);white-space:nowrap;
}
.data td{padding:10px 12px;border-bottom:1px solid var(--line);color:var(--dim)}
.data td:first-child{color:var(--ink)}
.data td:nth-child(2){color:var(--amber);font-variant-numeric:tabular-nums;white-space:nowrap}
.data.num td{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.data.num td:first-child{text-align:left;color:var(--lime);font-family:var(--disp);font-weight:700}
.data.num td:nth-child(2){color:var(--dim)}
.data.num thead th{text-align:right}
.data.num thead th:first-child{text-align:left}
.data tbody tr:last-child td{border-bottom:0}
.data tbody tr:hover td{background:rgba(194,255,69,.05);color:var(--ink)}

.callouts{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);margin-top:20px}
@media(min-width:760px){.callouts{grid-template-columns:repeat(3,1fr)}}
.callouts div{background:var(--panel);padding:14px 13px}
.callouts b{display:block;font-family:var(--disp);font-weight:800;font-size:18px;color:var(--lime);font-variant-numeric:tabular-nums}
.callouts span{display:block;font-size:11px;color:var(--dim);margin-top:5px}

/* ---------- phases ---------- */
.phases{display:grid;gap:14px}
@media(min-width:960px){.phases{grid-template-columns:repeat(3,1fr)}}
.phase{border:1px solid var(--line);background:var(--panel);padding:16px 15px;transition:.2s}
.phase:hover{border-color:var(--lime);background:var(--panel2)}
.phase .tag{
  display:inline-block;font-family:var(--disp);font-weight:800;font-size:9px;letter-spacing:.2em;
  color:var(--bg);background:var(--lime);padding:3px 8px;margin-bottom:12px;
}
.phase h3{font-family:var(--disp);font-weight:800;font-size:17px;margin:0 0 12px;letter-spacing:-.01em}
.phase dl{margin:0 0 12px;display:grid;grid-template-columns:auto 1fr;gap:5px 12px;font-size:11.5px}
.phase dt{color:var(--dimmer);letter-spacing:.1em;text-transform:uppercase;font-size:9.5px;padding-top:2px}
.phase dd{margin:0;color:var(--ink);font-variant-numeric:tabular-nums}
.phase dd.big{color:var(--amber);font-family:var(--disp);font-weight:700}
.phase p{margin:0;padding-top:11px;border-top:1px dashed var(--line2);font-size:11.5px;color:var(--dim)}

/* ---------- roadmap ---------- */
.road{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.road li{
  display:grid;grid-template-columns:34px 42px 1fr;gap:12px;align-items:baseline;
  padding:13px 6px;border-bottom:1px solid var(--line);transition:.2s;
}
.road li:hover{background:rgba(194,255,69,.05);padding-left:12px}
.road .n{font-family:var(--disp);font-weight:800;color:var(--line2);font-size:14px}
.road li:hover .n{color:var(--lime)}
.road .q{font-family:var(--disp);font-weight:700;font-size:10px;letter-spacing:.14em;color:var(--amber)}
.road .t{font-size:12.5px;color:var(--dim)}
.road li:hover .t{color:var(--ink)}

/* ---------- contact ---------- */
.contact-slide{
  background:radial-gradient(80% 60% at 50% 110%,rgba(194,255,69,.09),transparent 70%);
}
.contactgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:22px}
@media(min-width:860px){.contactgrid{grid-template-columns:repeat(4,1fr)}}
.contactgrid>div{background:var(--panel);padding:15px 13px}
.cval{margin:0;font-family:var(--disp);font-weight:700;font-size:14px;color:var(--ink);line-height:1.3}
.cval.placeholder{color:var(--dimmer);font-weight:400;font-size:12px}

.srcbox{border:1px solid var(--line);background:var(--panel)}
.srcbox summary{
  cursor:pointer;padding:12px 14px;font-family:var(--disp);font-weight:700;
  font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--lime);
}
.srcbox summary::marker{color:var(--lime)}
.srcbox ul{list-style:none;margin:0;padding:0 14px 14px}
.srcbox li{border-top:1px solid var(--line);padding:8px 0;font-size:11.5px}
.srcbox a{color:var(--dim);text-decoration:none;display:block}
.srcbox a:hover{color:var(--lime)}
.srcbox .src-org{color:var(--amber);letter-spacing:.08em;font-size:9.5px;text-transform:uppercase;display:block}

@media(min-width:760px){
  body{font-size:16px}
  .slide{padding:96px 40px 66px}
}
@media(min-width:1080px){
  .slide{padding:96px 40px 66px 112px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{animation:none!important;transition:none!important}
}
