:root {
  --bg: #010401;
  --green: #66ff66;
  --green-dim: #2f8f3d;
  --green-soft: rgba(102, 255, 102, 0.14);
  --border: rgba(102, 255, 102, 0.55);
  --shadow: rgba(65, 255, 90, 0.35);
}

* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; background: radial-gradient(circle at 50% 45%, rgba(26,78,29,.12), transparent 48%), #000; color: var(--green); font-family: "Courier New", Courier, monospace; }
body { min-height: 100vh; display: grid; place-items: center; overflow-x: hidden; }
button, input { font: inherit; }

.crt-shell {
  position: relative;
  width: min(96vw, 1500px);
  min-height: 92vh;
  margin: 4vh auto;
  border: 2px solid rgba(87,255,103,.12);
  border-radius: 42px;
  background: #010301;
  box-shadow: inset 0 0 80px rgba(0,0,0,.95), inset 0 0 25px rgba(76,255,91,.05), 0 0 50px rgba(0,0,0,.9);
  overflow: hidden;
}
.terminal { position: relative; z-index: 2; padding: clamp(24px, 4vw, 64px); min-height: 92vh; text-shadow: 0 0 6px var(--shadow); animation: powerOn 1.1s ease-out both; }
.scanlines, .noise { pointer-events: none; position: absolute; inset: 0; z-index: 10; }
.scanlines { background: repeating-linear-gradient(to bottom, rgba(0,0,0,.05) 0px, rgba(0,0,0,.05) 2px, rgba(104,255,118,.02) 3px, rgba(0,0,0,.08) 4px); mix-blend-mode: screen; }
.noise { opacity: .1; background-image: linear-gradient(90deg, transparent 50%, rgba(255,255,255,.02) 50%); background-size: 3px 100%; animation: noiseShift .18s steps(2,end) infinite; }

.topbar, footer { display:flex; justify-content:space-between; gap:24px; align-items:flex-start; border-bottom:1px solid var(--border); padding-bottom:18px; letter-spacing:.06em; }
.topbar .brand { font-size: clamp(1rem, 2vw, 1.7rem); font-weight:bold; }
.version { text-align:right; font-size:clamp(.75rem,1.35vw,1.05rem); line-height:1.35; }
.hero { text-align:center; padding:clamp(38px,7vh,90px) 0 clamp(28px,5vh,60px); }
.eyebrow { font-size:.75rem; opacity:.55; letter-spacing:.22em; margin-bottom:18px; }
.hero h1 { margin:0; font-size:clamp(3.2rem,11vw,9rem); line-height:.9; letter-spacing:.02em; text-shadow:0 0 8px var(--shadow), 3px 0 rgba(0,255,70,.2), -2px 0 rgba(0,255,70,.14); }
.subtitle { display:inline-block; margin:28px 0 0; border:1px solid var(--border); padding:14px 28px; font-size:clamp(.95rem,2vw,1.45rem); letter-spacing:.18em; }

.grid { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(280px,.85fr); gap:34px; align-items:stretch; }
.boot-lines p { opacity:0; transform:translateY(4px); margin:0 0 13px; font-size:clamp(.82rem,1.45vw,1.15rem); letter-spacing:.035em; }
.boot-lines p.visible { animation:lineIn .22s ease forwards; }
.boot-lines span, .feed span { color:#8bff8f; }

.warning-box { margin-top:34px; width:min(680px,100%); border:1px solid var(--border); display:grid; grid-template-columns:96px 1fr; min-height:148px; }
.warning-icon { display:grid; place-items:center; border-right:1px solid var(--border); font-size:3rem; animation:warningPulse 1.5s infinite; }
.warning-box > div:last-child { padding:22px; line-height:1.45; font-size:clamp(.82rem,1.45vw,1.1rem); }
.redacted { display:inline-block; animation:redactFlicker 3.2s infinite; }

.feed { border:1px solid var(--border); padding:22px; background:linear-gradient(180deg, rgba(102,255,102,.025), transparent); }
.feed h2 { margin:0 0 28px; font-size:1rem; letter-spacing:.08em; }
.feed article { font-size:clamp(.8rem,1.3vw,1rem); line-height:1.5; margin-bottom:26px; }
.feed article span { display:block; margin-bottom:3px; }
.feed-more, .dim { opacity:.65; }

.prompt-box { margin:clamp(34px,6vh,70px) auto 0; width:min(620px,100%); text-align:center; border:1px solid var(--border); padding:24px; }
.prompt-box > p:first-child { margin:0 0 16px; font-size:clamp(1rem,2vw,1.45rem); letter-spacing:.08em; }
.choices { display:flex; justify-content:center; gap:26px; }
.choice { background:transparent; border:0; color:var(--green); padding:8px 14px; cursor:pointer; text-shadow:inherit; }
.choice.active, .choice:hover, .choice:focus-visible, .terminal-btn:hover, .terminal-btn:focus-visible { color:#001500; background:var(--green); outline:none; box-shadow:0 0 16px rgba(102,255,102,.45); }
.hint { margin:15px 0 0; opacity:.35; font-size:.72rem; }

.access-panel { margin:40px auto 0; width:min(850px,100%); border-left:2px solid var(--green); padding:8px 0 8px 22px; line-height:1.6; }
.hidden { display:none !important; }

.subject-card { margin:26px 0; border:1px solid var(--border); padding:22px; width:min(560px,100%); background:rgba(102,255,102,.025); }
.subject-card strong { display:block; font-size:clamp(2.2rem,7vw,4.8rem); line-height:1; margin:10px 0 18px; letter-spacing:.06em; }

.persist-panel { margin:30px 0; border-top:1px solid var(--border); border-bottom:1px solid var(--border); padding:24px 0; }
#emailForm { display:grid; gap:14px; width:min(680px,100%); }
#emailForm input[type="email"] { width:100%; border:1px solid var(--border); background:#000; color:var(--green); padding:13px 14px; outline:none; box-shadow:inset 0 0 12px rgba(102,255,102,.04); }
#emailForm input[type="email"]:focus { box-shadow:0 0 16px rgba(102,255,102,.2); }
.check-row { display:flex; gap:10px; align-items:flex-start; font-size:.84rem; opacity:.85; }
.check-row input { accent-color:var(--green); }
.form-actions, .share-row { display:flex; gap:12px; flex-wrap:wrap; margin-top:4px; }
.terminal-btn { border:1px solid var(--border); background:transparent; color:var(--green); padding:10px 14px; cursor:pointer; text-shadow:inherit; }
.status-line { min-height:1.5em; margin:14px 0 0; }
.status-line.error { color:#ff8585; text-shadow:0 0 6px rgba(255,90,90,.3); }

footer { margin-top:clamp(45px,8vh,90px); padding-top:20px; padding-bottom:0; border-bottom:0; border-top:1px solid var(--border); opacity:.78; font-size:clamp(.68rem,1.2vw,.9rem); }
.cursor { animation:blink .72s step-end infinite; }
.glitch { animation:glitch .14s steps(2,end) 3; }
.denied { animation:deniedFlash .32s steps(2,end) 4; }

@keyframes blink { 50% { opacity:0; } }
@keyframes lineIn { to { opacity:1; transform:translateY(0); } }
@keyframes warningPulse { 50% { opacity:.38; } }
@keyframes redactFlicker { 0%,93%,100%{opacity:1} 94%{opacity:.15} 96%{opacity:.8} 98%{opacity:.25} }
@keyframes noiseShift { 0%{transform:translateX(0)} 50%{transform:translateX(1px)} 100%{transform:translateX(-1px)} }
@keyframes powerOn { 0%{opacity:0;filter:brightness(4);transform:scaleY(.01)} 35%{opacity:1;transform:scaleY(1)} 55%{filter:brightness(1.8)} 100%{filter:brightness(1)} }
@keyframes glitch { 0%{transform:translate(0);filter:none} 25%{transform:translate(-3px,1px);filter:brightness(1.7)} 50%{transform:translate(3px,-1px)} 75%{transform:translate(-1px,2px)} 100%{transform:translate(0);filter:none} }
@keyframes deniedFlash { 50%{filter:invert(1)} }

@media (max-width:860px) {
  .crt-shell { width:100%; min-height:100vh; margin:0; border-radius:0; border:0; }
  .terminal { min-height:100vh; }
  .grid { grid-template-columns:1fr; }
  .feed { order:2; }
  .warning-box { grid-template-columns:70px 1fr; }
}
@media (max-width:520px) {
  .terminal { padding:20px 16px 28px; }
  .version { font-size:.62rem; }
  .eyebrow { display:none; }
  .hero { padding-top:52px; }
  .subtitle { padding:10px 14px; letter-spacing:.09em; }
  .warning-box { grid-template-columns:56px 1fr; }
  .warning-box > div:last-child { padding:16px; }
  footer { gap:10px; align-items:flex-end; }
}
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; scroll-behavior:auto !important; }
}


.footer-link {
  color: var(--green);
  text-decoration: none;
}
.footer-link:hover,
.footer-link:focus-visible {
  text-decoration: underline;
}
