:root{--ground:#08070c;--ink:#ece6f2;--dim:#8a8296;--line:#ece6f224;--heat:#ff5c8a;--glow:#ffb547;--display:"Unbounded", "Avenir Next", system-ui, sans-serif;--mono:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--ground);height:100%;color:var(--ink);margin:0;overflow:hidden}body{font-family:var(--mono);font-size:13px}canvas{width:100%;height:100%;display:block;position:fixed;inset:0}.intro{place-items:center;padding:16px;display:grid;position:fixed;inset:0}.card{border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#08070cb8;border-radius:14px;gap:16px;width:min(460px,100%);padding:28px 28px 24px;display:grid}h1{font-family:var(--display);letter-spacing:-.01em;text-wrap:balance;margin:0;font-size:30px;font-weight:300;line-height:1.05}h1 b{background:linear-gradient(90deg, var(--heat), var(--glow));color:#0000;-webkit-background-clip:text;background-clip:text;font-weight:600}.card p{color:var(--dim);margin:0;line-height:1.6}.buttons{flex-wrap:wrap;gap:10px;display:flex}button{font:500 13px var(--mono);letter-spacing:.02em;color:var(--ink);border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:999px;padding:10px 16px;transition:border-color .15s,background .15s}button:hover{border-color:var(--ink)}button:focus-visible{outline:2px solid var(--glow);outline-offset:2px}button.primary{background:var(--ink);color:var(--ground);border-color:var(--ink)}button.primary:hover{background:#fff}details{color:var(--dim);line-height:1.6}summary{cursor:pointer;color:var(--ink)}details ul{margin:8px 0 0;padding-left:18px}.msg{color:var(--glow);min-height:1em;line-height:1.5}.hud{pointer-events:none;text-shadow:0 1px 3px #08070cb3;letter-spacing:.08em;text-transform:uppercase;color:var(--dim);font-size:11px;position:fixed}.hud.bl{left:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));gap:6px;display:grid}.hud.tr{right:16px;top:calc(16px + env(safe-area-inset-top,0px));pointer-events:auto;gap:8px;display:flex}.br-stack{right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));pointer-events:none;flex-direction:column;align-items:flex-end;gap:10px;max-width:calc(100vw - 32px);display:flex;position:fixed}.br-stack>.hud{position:static}.hud.br{text-align:right;overflow-wrap:anywhere;text-transform:none;letter-spacing:.02em;pointer-events:auto;max-width:calc(100vw - 32px);margin:0}.hud.br a{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line);text-underline-offset:2px}.hud.br a:hover{-webkit-text-decoration-color:var(--ink);text-decoration-color:var(--ink)}.hud.br a:focus-visible{outline:2px solid var(--glow);outline-offset:2px}.hud.tl{left:16px;top:calc(16px + env(safe-area-inset-top,0px));pointer-events:auto;justify-items:start;gap:8px;display:grid}select{font:400 12px var(--mono);color:var(--ink);border:1px solid var(--line);background:#08070c99;border-radius:8px;max-width:min(320px,100vw - 32px);padding:6px 8px}select:focus-visible{outline:2px solid var(--glow);outline-offset:2px}.note{border-left:2px solid var(--heat);padding-left:10px;color:var(--ink)!important}.hud.tl strong{font-family:var(--display);text-transform:none;letter-spacing:0;color:var(--ink);font-size:15px;font-weight:300}.toggles{flex-wrap:wrap;gap:6px 18px;margin-top:4px;display:flex}.toggle{pointer-events:auto;cursor:pointer;align-items:center;gap:8px;width:max-content;display:flex}.toggle input{width:14px;height:14px;accent-color:var(--heat);cursor:pointer;margin:0}.toggle input:focus-visible{outline:2px solid var(--glow);outline-offset:2px}.meter{font-variant-numeric:tabular-nums;grid-template-columns:40px 120px 52px;align-items:center;gap:8px;display:grid}.bar{background:var(--line);border-radius:2px;height:3px;overflow:hidden}.bar i{background:linear-gradient(90deg, var(--heat), var(--glow));width:0;height:100%;display:block}.big{font-family:var(--display);color:var(--ink);letter-spacing:0;text-transform:none;font-variant-numeric:tabular-nums;font-size:22px;font-weight:300}.hud.tr button{background:#08070c99;padding:6px 12px;font-size:11px}[hidden]{display:none!important}@media (width<=640px){.br-stack{max-width:none;left:16px}.br-stack>.hud{width:100%}.hud.br{font-size:10px}.hud.np{max-width:none}.hud.bl{bottom:calc(26px + var(--stack-h,0px) + env(safe-area-inset-bottom,0px))}.meter{grid-template-columns:40px 90px 52px}.hud.toast{top:calc(76px + env(safe-area-inset-top,0px))}.hud.tl strong{font-size:13px}.card{padding:22px 20px 20px}h1{font-size:26px}}@media (height<=500px){.br-stack{max-width:55vw}.hud.np img{width:40px;height:40px}.hud.np{gap:10px;padding:8px}.big{font-size:18px}.hud.bl{gap:3px}.hud.br{font-size:10px}}.hud.tl{left:calc(16px + env(safe-area-inset-left,0px))}.hud.tr{right:calc(16px + env(safe-area-inset-right,0px))}.hud.bl{left:calc(16px + env(safe-area-inset-left,0px))}.br-stack{right:calc(16px + env(safe-area-inset-right,0px))}.big-play{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#08070c8c;border:1.5px solid #ece6f2b3;border-radius:50%;place-items:center;width:112px;height:112px;padding:0;transition:transform .15s,border-color .15s,box-shadow .15s;display:grid;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.big-play svg{width:64px;height:64px;fill:var(--ink);margin-left:8px}.big-play:hover{border-color:var(--ink);transform:translate(-50%,-50%)scale(1.04);box-shadow:0 0 40px #ff5c8a59}.big-play:focus-visible{outline:2px solid var(--glow);outline-offset:4px}.launch{justify-items:start;gap:14px;display:grid}.launch ul{color:var(--dim);gap:4px;margin:0;padding:0;line-height:1.5;list-style:none;display:grid}.launch ul b{color:var(--ink);font-weight:500}.launch #btnStart{padding:12px 28px;font-size:14px}.lyric{z-index:1;left:50%;bottom:calc(14vh + env(safe-area-inset-bottom,0px));text-align:center;pointer-events:none;width:min(1100px,100vw - 800px);min-width:min(560px,100vw - 32px);font:300 clamp(20px, 3.2vw, 44px)/1.25 var(--display);color:var(--ink);letter-spacing:0;text-shadow:0 2px 18px #08070ce6,0 0 4px #08070ccc;opacity:0;margin:0;transition:opacity .28s;position:fixed;transform:translate(-50%)}.lyric.in{opacity:1}@media (width<=640px){.lyric{width:calc(100vw - 32px);bottom:calc(40px + var(--stack-h,0px) + 150px + env(safe-area-inset-bottom,0px))}}.hud.toast{left:50%;top:calc(16px + env(safe-area-inset-top,0px));text-align:center;border:1px solid var(--line);max-width:min(520px,100vw - 32px);color:var(--ink);text-transform:none;letter-spacing:.02em;background:#08070cb3;border-radius:999px;margin:0;padding:8px 14px;transform:translate(-50%)}.hud.np{pointer-events:auto;border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);text-transform:none;letter-spacing:.02em;background:#08070c8c;border-radius:12px;align-items:center;gap:12px;max-width:min(360px,100vw - 32px);padding:10px;display:flex}.hud.np img{object-fit:cover;border-radius:6px;flex:none;width:56px;height:56px}.np-text{gap:2px;min-width:0;display:grid}#npTitle{font-family:var(--display);color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:300;text-decoration:none;overflow:hidden}#npTitle[href]:hover{text-decoration:underline;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line)}#npArtist{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.np-controls{align-items:center;gap:6px;margin-top:4px;display:flex}.np-controls button{background:#08070c99;padding:3px 9px;font-size:11px;line-height:1.4}#npMsg{color:var(--glow);font-size:10px}#npSource{color:var(--dim);font-size:10px;text-decoration:none}#npSource:hover{color:var(--ink)}.hud.np.radio .np-controls,.hud.np.file #npNext{display:none}.radio-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.spotify{flex-wrap:wrap;align-items:center;gap:8px;display:flex}button.link{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line);text-underline-offset:3px;border:none;border-radius:0;padding:0}button.link:hover{-webkit-text-decoration-color:var(--ink);text-decoration-color:var(--ink)}.hud{transition:opacity .5s}body.idle{cursor:none}body.idle .hud{opacity:0;pointer-events:none!important}body.idle .hud.br[data-required="1"]{opacity:.55}body.idle .hud.np,body.idle .hud.toast{opacity:1}body.idle .hud.np .np-controls{display:none}@media (prefers-reduced-motion:reduce){.hud{transition:none}}
