:root{--bg: #0a0e12;--panel: #10161d;--line: #223040;--text: #d8e6f0;--dim: #7f93a5;--accent: #7fd4ff;--air: #ff5f52;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.55 ui-monospace,SF Mono,Cascadia Mono,Menlo,monospace;-webkit-font-smoothing:antialiased}.loading{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;padding:2rem;text-align:center}.logo{margin:0;font-size:clamp(2rem,6vw,3.4rem);letter-spacing:.22em;text-transform:uppercase}.tagline{margin:0 0 1.4rem;color:var(--dim);letter-spacing:.08em}.steps{list-style:none;margin:0 0 1rem;padding:0;text-align:left;font-size:.82rem}.step{display:flex;gap:.6rem;align-items:baseline;padding:.12rem 0;color:var(--line);transition:color .3s ease}.step.done{color:var(--dim)}.step.active{color:var(--accent)}.step-mark{width:1ch;text-align:center}.step.active .step-mark{animation:pulse 1.4s ease-in-out infinite}.status{margin:.2rem 0;color:var(--text);font-size:.85rem;min-height:1.4em}.detail{margin:0;color:var(--dim);font-size:.75rem}.elapsed{margin:.1rem 0 0;color:var(--line);font-size:.72rem;letter-spacing:.06em}.bar{position:relative;width:min(420px,80vw);height:6px;background:var(--panel);border:1px solid var(--line);border-radius:4px;overflow:hidden}.bar-fill{height:100%;background:var(--accent);transition:width .25s linear}.bar.indeterminate .bar-fill{width:34%;transition:none;animation:slide 1.5s ease-in-out infinite}@keyframes slide{0%{transform:translate(-110%)}to{transform:translate(320%)}}.failure{display:flex;flex-direction:column;align-items:center;gap:.5rem;max-width:52ch}.error{margin:0;color:var(--air);font-size:.9rem}.error-hint{margin:0;color:var(--dim);font-size:.78rem}.stall-notice{margin-top:1rem;padding:.8rem 1rem;max-width:46ch;border:1px solid var(--line);border-radius:6px;background:var(--panel)}.stall-notice p{margin:0 0 .6rem;color:var(--dim);font-size:.76rem;line-height:1.6}.retry{margin-top:.4rem;padding:.5rem 1.4rem;font:inherit;font-size:.82rem;letter-spacing:.14em;color:var(--text);background:transparent;border:1px solid var(--line);border-radius:999px;cursor:pointer}.retry:hover{border-color:var(--accent);color:var(--accent)}.on-air-button{margin-top:1.6rem;padding:.85rem 2.4rem;font:inherit;font-size:1.05rem;letter-spacing:.2em;color:var(--bg);background:var(--accent);border:none;border-radius:999px;cursor:pointer;transition:transform .1s ease}.on-air-button:hover:not(:disabled){transform:scale(1.03)}.on-air-button:disabled{background:var(--line);color:var(--dim);cursor:progress}.voice-credit{margin:1.6rem 0 0;color:var(--dim);font-size:.72rem}.storage{margin-top:.8rem;display:flex;align-items:center;gap:.8rem;color:var(--line);font-size:.72rem}.link-button{font:inherit;color:var(--dim);background:none;border:none;border-bottom:1px dotted var(--line);padding:0;cursor:pointer}.link-button:hover:not(:disabled){color:var(--air);border-color:var(--air)}.link-button:disabled{cursor:progress}.upcoming{margin-top:2.6rem;color:var(--dim);font-size:.8rem}.upcoming h2{margin:0 0 .4rem;font-size:.72rem;letter-spacing:.24em;text-transform:uppercase}.upcoming ul{margin:0;padding:0;list-style:none;display:flex;gap:1.2rem;flex-wrap:wrap;justify-content:center}.on-air{min-height:100vh;display:flex;flex-direction:column;gap:1rem;padding:1rem clamp(1rem,4vw,3rem) 2rem}.bar-top{display:flex;align-items:center;gap:1rem;padding-bottom:.6rem;border-bottom:1px solid var(--line);font-size:.8rem;letter-spacing:.16em;text-transform:uppercase}.on-air-lamp{color:var(--air);animation:pulse 2s ease-in-out infinite}@keyframes pulse{50%{opacity:.35}}.bgm-toggle,.folder-toggle{font:inherit;font-size:.68rem;letter-spacing:.12em;color:var(--dim);background:transparent;border:1px solid var(--line);border-radius:999px;padding:.12rem .7rem;cursor:pointer;transition:color .2s ease,border-color .2s ease}.bgm-toggle.on,.folder-toggle.on{color:var(--accent);border-color:var(--accent)}.folder-toggle{max-width:14ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.folder-toggle:disabled{opacity:.5;cursor:progress}.engine-badge{margin-left:auto;color:var(--dim);border:1px solid var(--line);border-radius:999px;padding:.1rem .6rem}.waterfall{position:relative;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#04070a;touch-action:none}.waterfall-canvas{display:block;width:100%;height:220px;cursor:ew-resize}.needle{position:absolute;top:0;bottom:0;width:1px;background:#fff;box-shadow:0 0 8px 2px #ffffff73;pointer-events:none}.needle:before{content:"";position:absolute;top:-1px;left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-top:7px solid #fff}.carriers{position:absolute;inset:0;pointer-events:none}.carrier{position:absolute;bottom:6px;transform:translate(-50%);pointer-events:auto;display:flex;flex-direction:column;align-items:center;gap:1px;background:#04070aad;border:1px solid var(--line);border-radius:5px;padding:.15rem .45rem;font:inherit;font-size:.66rem;letter-spacing:.08em;cursor:pointer}.carrier.locked{border-color:currentColor;box-shadow:0 0 10px -2px currentColor}.carrier-name{color:var(--dim);font-size:.6rem;text-transform:uppercase}.dial-readout{position:absolute;top:6px;right:8px;font-size:.78rem;color:var(--accent);background:#04070ab3;padding:.1rem .45rem;border-radius:4px}.meta h2{margin:0 0 .2rem;font-size:1.5rem;letter-spacing:.06em}.static-label{color:var(--dim)}.program{margin:0 0 .8rem;color:var(--dim);font-size:.85rem}.program.fault{color:var(--air);max-width:68ch}.transcript{margin:0;max-width:68ch;padding:.9rem 1.1rem;background:var(--panel);border-left:2px solid var(--accent);border-radius:0 6px 6px 0;line-height:1.7}.credit{margin:.6rem 0 0;color:var(--dim);font-size:.78rem}.meta a{color:inherit;text-decoration-color:var(--line);text-underline-offset:3px}.meta a:hover{color:var(--accent);text-decoration-color:var(--accent)}.recent{margin-top:1.4rem;max-width:68ch}.recent h3{margin:0 0 .4rem;font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;color:var(--line)}.recent ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.25rem}.recent li{font-size:.8rem;color:var(--dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recent li:before{content:"↗ ";color:var(--line)}.hint{margin-top:auto;color:var(--dim);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase}
