:root{
  --bg:#040805; --bg2:#08120a; --ph:#5dff8b; --ph-dim:#2f8f4c; --ph-faint:#173d22;
  --hot:#ff5a36; --paint:#f2efe6; --ink:#c9f5d4;
  --kit-focus:#ff5a36; --kit-err:#ff7a5c; --kit-ok:#5dff8b;
  --mono:"VT323","IBM Plex Mono",ui-monospace,monospace;
  --stencil:"Saira Stencil One","Impact",sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:var(--ph)} a:hover{color:var(--hot)}
b{color:var(--ph);font-weight:500}
kbd{font-family:var(--mono);border:1px solid var(--ph-dim);padding:0 .35em;border-radius:3px;color:var(--ph)}
.dim{color:var(--ph-dim)}
.scan{pointer-events:none;position:fixed;inset:0;z-index:50;background:repeating-linear-gradient(to bottom,rgba(0,0,0,0) 0 2px,rgba(0,0,0,.18) 2px 3px);mix-blend-mode:multiply}
.bar{position:sticky;top:0;z-index:40;display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;padding:.55rem 1rem;background:rgba(4,8,5,.92);backdrop-filter:blur(4px);border-bottom:1px solid var(--ph-faint);font-family:var(--mono);font-size:1.05rem;letter-spacing:.08em;color:var(--ph)}
.bar .sep{color:var(--ph-dim)}
.dot{width:.6rem;height:.6rem;border-radius:50%;background:var(--hot);box-shadow:0 0 10px var(--hot);animation:blink 1.4s steps(2) infinite}
@keyframes blink{50%{opacity:.15}}
.bar-nav{margin-left:auto;display:flex;gap:1rem}
.bar-nav a{text-decoration:none;color:var(--ph-dim)} .bar-nav a:hover{color:var(--ph)}
main{max-width:1080px;margin:0 auto;padding:0 1rem}
.hero{padding:4.5rem 0 3rem;text-align:left}
.banner{font-family:var(--mono);color:var(--ph);font-size:clamp(.5rem,1.6vw,1.15rem);line-height:1.05;margin:0 0 2rem;text-shadow:0 0 6px rgba(93,255,139,.65),0 0 22px rgba(93,255,139,.25);overflow:hidden;white-space:pre}
.stencil{font-family:var(--stencil);font-weight:400;color:var(--paint);text-transform:uppercase;letter-spacing:.02em;line-height:1.02;font-size:clamp(2.2rem,7vw,5rem);margin:.2rem 0 1.2rem;text-shadow:2px 2px 0 rgba(255,90,54,.55),-1px 0 0 rgba(255,90,54,.35);filter:url(#rough)}
.stencil.sm{font-size:clamp(1.6rem,4.2vw,2.8rem)}
.lede{max-width:44rem;font-size:1.1rem;color:var(--ink)}
.lede em{color:var(--hot);font-style:normal}
.cta-row{display:flex;flex-wrap:wrap;gap:1rem;margin-top:1.8rem}
.btn{display:inline-block;font-family:var(--mono);font-size:1.35rem;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;color:var(--ph);border:2px solid var(--ph);padding:.45rem 1.2rem;background:transparent;cursor:pointer;border-radius:2px}
.btn:hover{background:var(--ph);color:var(--bg)}
.btn-hot{color:var(--bg);background:var(--hot);border-color:var(--hot)}
.btn-hot:hover{background:var(--paint);border-color:var(--paint);color:var(--bg)}
.block{padding:3.5rem 0;border-top:1px dashed var(--ph-faint)}
.label{font-family:var(--mono);color:var(--hot);letter-spacing:.14em;font-size:1.15rem;margin-bottom:.6rem}
.fine{font-size:.85rem;color:var(--ph-dim)}
/* ---- CRT ---- */
.crt{margin:1.8rem 0 1rem;background:linear-gradient(#2a2c2a,#1a1b1a);border-radius:22px;padding:14px 16px 12px;box-shadow:inset 0 2px 0 rgba(255,255,255,.07),0 30px 60px rgba(0,0,0,.6);border:1px solid #333}
.crt-top{display:flex;justify-content:space-between;align-items:center;gap:.5rem;font-family:var(--mono);color:#8a8f8a;letter-spacing:.1em;font-size:1rem;padding:0 .4rem .5rem}
.crt-ctl{display:flex;gap:.5rem}
.crt-ctl button{font-family:var(--mono);font-size:1rem;letter-spacing:.08em;background:#111;color:#9aa;border:1px solid #444;padding:.1rem .6rem;cursor:pointer;border-radius:3px}
.crt-power{color:var(--hot)!important;border-color:var(--hot)!important}
.crt.is-on .crt-power{color:var(--ph)!important;border-color:var(--ph-dim)!important}
.crt-glass{position:relative;background:radial-gradient(ellipse at center,#0b1a0e 0%,#050b06 70%,#020403 100%);border-radius:16px;padding:1.1rem 1.2rem .7rem;min-height:26rem;box-shadow:inset 0 0 60px rgba(0,0,0,.9),inset 0 0 12px rgba(93,255,139,.08);overflow:hidden}
.crt-glass::after{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(to bottom,rgba(93,255,139,.03) 0 1px,transparent 1px 3px);animation:flick 6s infinite}
@keyframes flick{0%,100%{opacity:.8}50%{opacity:1}}
.crt-out{font-family:var(--mono);font-size:1.32rem;line-height:1.28;color:var(--ph);text-shadow:0 0 5px rgba(93,255,139,.55);height:22rem;overflow-y:auto;white-space:pre-wrap;word-wrap:break-word;scrollbar-width:thin;scrollbar-color:var(--ph-faint) transparent;padding-right:.4rem}
.crt-out .ln{margin:0 0 .6em}
.crt-out .sys{color:#a8ffbf}
.crt-out .cmd{color:var(--paint);margin-top:.9em}
.crt-out .shout{color:var(--paint);text-shadow:0 0 6px rgba(255,90,54,.8);letter-spacing:.03em}
.crt-out .dim{color:var(--ph-dim)}
.crt-in{display:flex;align-items:center;gap:.4rem;font-family:var(--mono);font-size:1.32rem;color:var(--ph);border-top:1px solid var(--ph-faint);padding-top:.5rem;margin-top:.3rem}
.crt-in input{flex:1;min-width:0;background:transparent;border:0;outline:0;color:var(--ph);font:inherit;caret-color:transparent;text-transform:uppercase;text-shadow:0 0 5px rgba(93,255,139,.55)}
.crt-in .cursor{width:.6em;height:1.05em;background:var(--ph);animation:blink 1s steps(2) infinite;box-shadow:0 0 6px var(--ph)}
.crt-status{white-space:pre;font-family:var(--mono);color:#6d746d;letter-spacing:.08em;font-size:1rem;padding:.45rem .4rem 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* ---- manifesto ---- */
.manifesto{position:relative;display:grid;grid-template-columns:1fr;gap:0;padding:0;border-top:0;margin:2rem -1rem 0;overflow:hidden}
.mural{min-height:420px;background:#111 center/cover no-repeat;background-image:linear-gradient(180deg,rgba(4,8,5,.15),rgba(4,8,5,.85)),url("img/mural.jpg")}
.manifesto-copy{padding:2rem 1.2rem 3.5rem;margin-top:-260px;position:relative}
.lines{list-style:none;padding:0;margin:0}
.lines li{font-family:var(--stencil);text-transform:uppercase;color:var(--paint);font-size:clamp(1.5rem,4.6vw,3.2rem);line-height:1.08;margin:.15em 0;text-shadow:0 2px 14px rgba(0,0,0,.9)}
.lines li.hot{color:var(--hot)}
.lines li.sign{color:var(--ph);font-family:var(--mono);font-size:clamp(1.6rem,4vw,2.6rem);letter-spacing:.12em;margin-top:.6em}
.quote{max-width:40rem;margin-top:2rem;font-size:1.05rem;color:var(--ink);border-left:3px solid var(--hot);padding-left:1rem}
/* ---- cards ---- */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.2rem;margin:1.6rem 0}
.card{border:1px solid var(--ph-faint);background:var(--bg2);padding:1.2rem 1.2rem 1rem;border-radius:4px}
.card h3{font-family:var(--mono);font-weight:400;font-size:1.7rem;color:var(--paint);margin:.4rem 0;letter-spacing:.03em}
.card-head{display:flex;justify-content:space-between}
.tag{font-family:var(--mono);font-size:1rem;color:var(--hot);letter-spacing:.1em}
.tag.dim{color:var(--ph-dim)}
.player{display:flex;align-items:center;gap:.9rem;margin:1rem 0 .6rem;color:var(--ph)}
.player [data-audio-bar]{flex:1}
.play{font-family:var(--mono);font-size:1.2rem;background:transparent;color:var(--ph);border:1px solid var(--ph);padding:.1rem .8rem;cursor:pointer}
.play.is-playing{background:var(--ph);color:var(--bg)}
details summary{cursor:pointer;color:var(--ph-dim);font-size:.9rem}
details p{font-size:.92rem;color:var(--ink);border-left:2px solid var(--ph-faint);padding-left:.8rem}
/* ---- signs ---- */
.checks{list-style:none;padding:0;margin:1.5rem 0;font-family:var(--mono);font-size:1.5rem;line-height:1.35;color:var(--paint)}
.checks li{display:flex;gap:.8rem;margin:.5rem 0}
.checks li span{color:var(--hot)}
/* ---- cell ---- */
.cell-form{max-width:36rem;display:grid;gap:1rem;margin-top:1.4rem}
.cell-form label{display:grid;gap:.3rem;font-family:var(--mono);font-size:1.2rem;color:var(--ph);letter-spacing:.04em}
.cell-form input[type=email],.cell-form input[type=text]{font:inherit;font-family:"IBM Plex Mono",monospace;font-size:1rem;background:#020402;color:var(--paint);border:1px solid var(--ph-dim);padding:.7rem .8rem;border-radius:2px}
.cell-form input:focus{border-color:var(--ph);outline:none;box-shadow:0 0 0 2px rgba(93,255,139,.25)}
fieldset{border:1px solid var(--ph-faint);padding:.6rem .9rem;display:flex;flex-wrap:wrap;gap:.4rem 1.2rem}
legend{font-family:var(--mono);color:var(--ph-dim);font-size:1.1rem;padding:0 .3rem}
.cell-form label.radio{display:flex;gap:.5rem;align-items:center;font-size:1.15rem;color:var(--ink)}
.cell-form .btn{justify-self:start}
.cell-form .kit-status{font-family:var(--mono);font-size:1.4rem;letter-spacing:.04em}
.foot{border-top:1px solid var(--ph-faint);margin-top:3rem;padding:2rem 1rem 3rem;text-align:center;color:var(--ph-dim);font-size:.85rem}
.foot p{max-width:46rem;margin:0 auto}
.sig{color:var(--ph-faint);font-family:var(--mono);overflow:hidden;margin:0 0 1rem}
@media (max-width:640px){
  .hide-sm{display:none}
  .bar-nav{width:100%;margin-left:0;justify-content:space-between}
  .crt{border-radius:14px;padding:8px}
  .crt-out{font-size:1.15rem;height:20rem}
  .crt-in{font-size:1.15rem}
  .crt-glass{padding:.8rem .7rem .5rem;min-height:23rem}
  .manifesto-copy{margin-top:-200px}
}
.card img.wire{display:block;width:100%;height:auto;margin:.6rem 0 .2rem;filter:grayscale(1) contrast(1.1);border:1px solid var(--ph-faint)}
.play-cta{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between;border:2px solid var(--hot);padding:1rem 1.2rem;margin-top:1rem;background:rgba(255,90,54,.06)}.play-cta p{margin:0;max-width:40rem}.foot .btn{margin-bottom:1rem}
