:root{
  --bg:#07070f; --ink:#eaf0ff; --muted:#93a0c8;
  --cyan:#00d4ff; --purple:#7c3aed; --green:#10b981; --amber:#f59e0b;
  --glass:rgba(14,18,40,.55); --line:rgba(140,160,220,.18);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,system-ui,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%;background:var(--bg);color:var(--ink);overflow:hidden}
#canvas{position:fixed;inset:0;width:100vw;height:100vh;display:block}

/* start screen */
.screen{position:fixed;inset:0;display:grid;place-items:center;padding:24px;
  background:radial-gradient(120% 90% at 50% 20%,rgba(20,26,60,.6),rgba(5,6,15,.92));
  backdrop-filter:blur(3px);z-index:5}
.screen.hidden{display:none}
.card{max-width:620px;text-align:center}
.brand{letter-spacing:.14em;text-transform:uppercase;font-size:13px;color:var(--muted)}
.brand span{color:var(--cyan)}
.card h1{font-size:clamp(28px,5vw,46px);line-height:1.08;margin:.4em 0 .3em;
  background:linear-gradient(120deg,#eaf0ff,#9fc8ff 60%,#d9b8ff);-webkit-background-clip:text;background-clip:text;color:transparent}
.lede{color:#c4cef0;font-size:17px;line-height:1.6;margin:0 auto 26px;max-width:52ch}
.actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
button{font:inherit;cursor:pointer;border-radius:12px;padding:13px 22px;border:1px solid var(--line);transition:.15s}
.primary{background:linear-gradient(120deg,var(--cyan),var(--purple));color:#06121f;font-weight:700;border:none}
.primary:hover{filter:brightness(1.08);transform:translateY(-1px)}
.ghost{background:var(--glass);color:var(--ink)}
.ghost:hover{border-color:var(--cyan)}
.status{min-height:20px;margin-top:14px;color:var(--amber);font-size:14px}
.note{color:var(--muted);font-size:14px;margin-top:22px}
.fineprint{color:#6f7aa0;font-size:12.5px;line-height:1.5;margin-top:10px;max-width:52ch;margin-inline:auto}
.fineprint a{color:var(--cyan)}

/* hud */
.hud{position:fixed;inset:0;pointer-events:none;z-index:4;padding:18px;display:flex;flex-direction:column;gap:14px}
.hud.hidden{display:none}
.hud-top{display:flex;gap:10px;align-items:center;pointer-events:auto}
.grow{flex:1}
.pill{background:var(--glass);border:1px solid var(--line);border-radius:999px;padding:7px 14px;font-size:13px;color:#cdd7f5;
  display:flex;align-items:center;gap:8px;backdrop-filter:blur(8px)}
.dot{width:9px;height:9px;border-radius:50%;background:var(--green);box-shadow:0 0 8px currentColor;color:var(--green)}
.dot.ok{color:var(--green);background:var(--green)}
.dot.warn{color:var(--amber);background:var(--amber)}
.dot.bad{color:#ff5470;background:#ff5470}
.hud-btn{pointer-events:auto;background:var(--glass);border:1px solid var(--line);color:var(--ink);padding:8px 16px;border-radius:999px;font-size:13px;backdrop-filter:blur(8px)}
.hud-btn:hover{border-color:var(--cyan)}
.hud-btn.muted{color:var(--muted)}

.calm-wrap{margin-top:auto;pointer-events:none;max-width:520px;width:min(90vw,520px);align-self:center}
.calm-label{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);text-align:center;margin-bottom:6px}
.calm-bar{height:10px;border-radius:999px;background:rgba(140,160,220,.15);overflow:hidden;border:1px solid var(--line)}
.calm-fill{height:100%;width:45%;border-radius:999px;
  background:linear-gradient(90deg,#4a7bd0,#6fe0c8 60%,#ffd9a0);transition:width .6s cubic-bezier(.2,.7,.2,1)}

.bands{display:flex;gap:18px;justify-content:center;pointer-events:none;height:70px;align-items:flex-end}
.band{display:flex;flex-direction:column;align-items:center;gap:6px}
.band .bar{width:10px;height:56px;border-radius:6px;background:rgba(140,160,220,.14);position:relative;overflow:hidden;display:flex;align-items:flex-end}
.band .bar i{display:block;width:100%;height:20%;background:linear-gradient(180deg,var(--cyan),var(--purple));transition:height .5s}
.band span{font-size:11px;color:var(--muted)}

.sim{pointer-events:auto;align-self:center;background:var(--glass);border:1px solid var(--line);border-radius:14px;padding:12px 16px;display:flex;align-items:center;gap:12px;backdrop-filter:blur(8px);margin-bottom:6px}
.sim.hidden{display:none}
.sim label{font-size:12px;color:var(--muted)}
.sim input[type=range]{width:200px;accent-color:var(--cyan)}
.sim .hint{font-size:11px;color:var(--muted)}

/* modal */
.modal{position:fixed;inset:0;z-index:9;display:grid;place-items:center;background:rgba(4,6,14,.75);backdrop-filter:blur(4px);padding:20px}
.modal.hidden{display:none}
.modal-card{max-width:520px;background:#0e1230;border:1px solid var(--line);border-radius:18px;padding:26px}
.modal-card h2{margin:0 0 12px}
.modal-card p{color:#c4cef0;line-height:1.6;font-size:15px}

@media(max-width:560px){ .bands{gap:12px} .sim input[type=range]{width:140px} }
