:root{--bg:#050807;--fg:#e6f2ea;--dim:#7d9486;--accent:#00ff88;--line:rgba(0,255,136,.18)}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--fg);font:15px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace}
main{max-width:560px;margin:0 auto;padding:32px 20px 56px}
header h1{margin:0;font-size:28px;letter-spacing:-.02em}
.sub{margin:4px 0 0;color:var(--dim)}
.stage{margin:28px 0 12px;padding:24px;border:1px solid var(--line);border-radius:18px;background:radial-gradient(60% 60% at 50% 45%,rgba(0,255,136,.06),transparent 70%)}
#mark{display:block;width:100%;height:auto;max-height:52vh}
#discs circle{fill:var(--accent);transition:r .18s ease}
#pulse circle{fill:#fff;opacity:0;pointer-events:none}
.controls label{display:block;margin:10px 0 6px}
.controls label span{display:flex;gap:10px;align-items:baseline;color:var(--dim);font-size:13px}
.controls b{color:var(--fg)}
.controls em{font-style:normal;padding:1px 8px;border:1px solid var(--line);border-radius:999px;color:var(--accent);font-size:12px}
input[type=range]{width:100%;accent-color:var(--accent);margin-top:8px}
.row{display:flex;gap:8px;margin-top:12px}
button{flex:1;padding:11px 14px;border-radius:10px;border:1px solid var(--accent);background:var(--accent);color:#000;font:inherit;font-weight:600;cursor:pointer}
button.ghost{background:transparent;color:var(--accent)}
button:active{transform:translateY(1px)}
.hint{color:var(--dim);font-size:12.5px;margin:14px 0 0}
.geo{margin-top:36px}
.geo h2{font-size:14px;color:var(--dim);text-transform:uppercase;letter-spacing:.12em;margin:0 0 10px}
table{width:100%;border-collapse:collapse}
td{padding:7px 0;border-top:1px solid var(--line);font-size:13.5px}
td:first-child{color:var(--dim);width:40%}
footer{margin-top:44px;color:var(--dim);font-size:12.5px}
footer a{color:var(--accent);text-decoration:none}
