:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#07090f;color:#f4f7fb;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 20% 12%,rgba(0,221,255,.13),transparent 28%),radial-gradient(circle at 88% 20%,rgba(247,74,138,.16),transparent 24%),linear-gradient(135deg,#07090f,#10131c 46%,#07090f)}button,input{font:inherit}button{border:0}h1,h2,p{margin-top:0}h1{margin-bottom:0;max-width:720px;font-size:clamp(2.1rem,5vw,5.1rem);line-height:.95;letter-spacing:0}h2{margin:0;font-size:4rem;line-height:1}.app-shell{width:min(1180px,calc(100% - 32px));margin:0 auto;padding:34px 0 12px}.topbar{display:grid;grid-template-columns:1fr auto;gap:22px;align-items:end;margin-bottom:24px}.eyebrow{margin:0 0 8px;color:#58e6ff;font-size:.78rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.status-grid{display:grid;grid-template-columns:repeat(3,minmax(92px,1fr));gap:8px}.status-grid{grid-template-columns:repeat(3,minmax(92px,1fr)) auto}.settings-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:100%;padding:0 15px;border:1px solid rgba(255,255,255,.09);border-radius:8px;color:#d8e0ea;background:#ffffff0e;font-weight:850;cursor:pointer}.settings-button:hover,.settings-button[aria-expanded=true]{border-color:#58e6ff61;color:#f4f7fb;background:#58e6ff1a}.game-layout{display:grid;grid-template-columns:minmax(330px,.9fr) minmax(360px,1.1fr);gap:18px;align-items:start}.challenge-banner{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:12px 14px;border:1px solid rgba(247,74,138,.18);border-radius:8px;background:#f74a8a11}.challenge-banner strong{color:#ffc6d7}.challenge-banner span{color:#9aa8ba}.primary{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:46px;border-radius:8px;color:#061018;background:linear-gradient(135deg,#58e6ff,#f4f7fb);font-weight:900;cursor:pointer;box-shadow:0 14px 38px #58e6ff2e}.app-version{padding:18px 0 2px;color:#f4f7fb47;font-size:.76rem;text-align:center}.app-version a{color:#f4f7fb7a;text-decoration:none}@media(max-width:860px){.app-shell{width:min(100% - 22px,680px);padding-top:22px}.topbar,.game-layout,.settings-install{grid-template-columns:1fr}.settings-install .install-button{width:100%}.status-grid{grid-template-columns:repeat(3,1fr)}.settings-button{grid-column:1 / -1;min-height:46px}.settings-header,.year-controls{grid-template-columns:1fr}.settings-overlay{align-items:end;padding:12px}.settings-panel{max-height:calc(100vh - 24px);padding:18px}}@media(max-width:520px){h1{font-size:2.45rem}.status-grid{grid-template-columns:repeat(3,1fr)}}.player-panel{position:sticky;top:22px;display:grid;align-content:center;gap:24px;overflow:hidden;min-height:420px;padding:34px;border:1px solid rgba(255,255,255,.09);border-radius:8px;background:#090c13c7;box-shadow:0 24px 80px #00000061;-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px)}.player-panel:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(135deg,rgba(88,230,255,.12),transparent 38%,rgba(247,74,138,.12))}.track-timer{position:absolute;top:12px;right:12px;z-index:1;color:#cfd8e5;font-size:.8rem;opacity:.5;font-variant-numeric:tabular-nums}.record-wrap{position:relative;display:grid;place-items:center;width:min(52vw,220px);aspect-ratio:1;margin:0 auto}.record,.pulse-ring{position:absolute;border-radius:50%}.record{display:grid;place-items:center;width:74%;height:74%;color:#f4f7fb;background:repeating-radial-gradient(circle,#141924 0 6px,#0b0f17 7px 11px),#10131c;box-shadow:inset 0 0 0 2px #ffffff14,0 12px 28px #00000059;animation:spin 3.6s linear infinite;animation-play-state:paused;z-index:10}.record.spinning{animation-play-state:running}.pulse-ring{width:100%;height:100%;border:1px solid rgba(88,230,255,.35);animation:breathe 2.8s ease-in-out infinite;animation-play-state:paused;z-index:10}.pulse-ring.active{animation-play-state:running}.waveform{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:2;display:flex;align-items:center;justify-content:center;gap:5px;width:min(88%,520px);height:90px;pointer-events:none;opacity:.42}.waveform span{position:relative;display:block;width:2px;min-width:2px;height:12px;border-radius:999px;background:linear-gradient(180deg,#58e6ffe6,#f74a8ab3);transform-origin:center;opacity:.16;filter:blur(.2px);animation:waveform 1.25s ease-in-out infinite;animation-play-state:paused;transition:opacity .24s ease,background .24s ease}.waveform.active span{animation-play-state:running;opacity:.75}.waveform span:nth-child(1),.waveform span:nth-child(50){height:10px}.waveform span:nth-child(2),.waveform span:nth-child(49){height:14px}.waveform span:nth-child(3),.waveform span:nth-child(48){height:18px}.waveform span:nth-child(4),.waveform span:nth-child(47){height:24px}.waveform span:nth-child(5),.waveform span:nth-child(46){height:30px}.waveform span:nth-child(6),.waveform span:nth-child(45){height:38px}.waveform span:nth-child(7),.waveform span:nth-child(44){height:46px}.waveform span:nth-child(8),.waveform span:nth-child(43){height:56px}.waveform span:nth-child(9),.waveform span:nth-child(42){height:64px}.waveform span:nth-child(10),.waveform span:nth-child(41){height:74px}.waveform span:nth-child(n+18):nth-child(-n+32){background:linear-gradient(180deg,#78ebff,#da78c4e6);box-shadow:0 0 12px #58e6ff2e}@keyframes waveform{0%{transform:scaleY(.45);opacity:.18}25%{transform:scaleY(.82);opacity:.42}50%{transform:scaleY(1.1);opacity:.9}75%{transform:scaleY(.72);opacity:.55}to{transform:scaleY(.4);opacity:.2}}.track-mask{position:relative;z-index:1}.track-mask p{margin-bottom:12px;color:#d8e0ea;font-weight:800}.progress-rail{height:8px;overflow:hidden;border-radius:999px;background:#ffffff14}.progress-rail span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#58e6ff,#f74a8a);transition:width .16s ease}.error-text{position:relative;z-index:1;margin:0;color:#ffc6d7;font-size:.92rem}.controls{position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:12px;align-items:center}.primary,.icon-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:46px;border-radius:8px;color:#061018;background:linear-gradient(135deg,#58e6ff,#f4f7fb);font-weight:900;cursor:pointer;box-shadow:0 14px 38px #58e6ff2e}.primary{padding:0 18px}.icon-button{width:46px;color:#f4f7fb;background:#ffffff14;box-shadow:none}.volume-control{display:inline-flex;flex:1 1 160px;align-items:center;gap:8px;min-width:160px;color:#cfd8e5}.volume-control input{width:100%;accent-color:#58e6ff}@keyframes spin{to{transform:rotate(360deg)}}@keyframes breathe{0%,to{transform:scale(.88);opacity:.25}50%{transform:scale(1);opacity:.72}}@keyframes wave{0%{transform:scaleY(.15)}to{transform:scaleY(1.05)}}@media(max-width:860px){.player-panel{position:static;min-height:420px;padding:24px}}.guess-panel{min-height:420px;padding:26px;border:1px solid rgba(255,255,255,.09);border-radius:8px;background:#090c13c7;box-shadow:0 24px 80px #00000061;-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px)}.guess-form{display:grid;gap:16px}.guess-form label{display:grid;gap:9px}.guess-form span{display:block;color:#8f9aaa;font-size:.76rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.guess-form input{width:100%;min-height:54px;padding:0 16px;border:1px solid rgba(255,255,255,.11);border-radius:8px;outline:none;color:#f4f7fb;background:#ffffff0e;transition:border-color .14s ease,box-shadow .14s ease,background .14s ease}.guess-form input:focus{border-color:#58e6ffcc;box-shadow:0 0 0 3px #58e6ff1f;background:#ffffff12}.guess-form input:disabled{opacity:.72;cursor:not-allowed}.field-answer{padding:0;font-size:.85em;line-height:.85rem}.field-answer.correct{color:#70f3aa}.field-answer.incorrect{color:#ff7c9d}.round-score{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-radius:8px;background:#ffffff0e}.round-score span{font-size:.8rem;opacity:.65}.round-score strong{color:#58e6ff;font-size:1.4rem;font-weight:800}.primary{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:46px;padding:0 18px;border-radius:8px;color:#061018;background:linear-gradient(135deg,#58e6ff,#f4f7fb);font-weight:900;cursor:pointer;box-shadow:0 14px 38px #58e6ff2e;transition:transform .14s ease,opacity .14s ease}.primary:hover:not(:disabled){transform:translateY(-1px)}.primary:disabled{cursor:not-allowed;opacity:.45}.primary.wide{width:100%}.score-row{display:grid;grid-template-columns:52px 92px 1fr auto;gap:12px;align-items:center;padding:12px;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:#ffffff0b}.score-row span{display:block;color:#8f9aaa;font-size:.76rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.score-row strong{color:#f4f7fb}.score-row em{color:#d8e0ea;font-style:normal}.score-row small{color:#9aa8baad;font-size:.72rem}.score-row .score-meta{display:grid;gap:2px;justify-content:left;text-align:left}.muted{color:#9aa8ba}@media(max-width:860px){.guess-panel{min-height:auto;padding:20px}}@media(max-width:520px){.score-row{grid-template-columns:repeat(3,1fr)}}.leaderboard{margin-top:22px;border:1px solid rgba(255,255,255,.06);border-radius:12px;background:#ffffff08;overflow:hidden;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.leaderboard .leaderboard-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:transparent;color:#f4f7fb;cursor:pointer;transition:background .14s ease,color .14s ease}.leaderboard .leaderboard-toggle:hover{background:#ffffff0a}.leaderboard .leaderboard-title{display:flex;align-items:start;gap:8px;font-weight:900}.leaderboard .leaderboard-title .leaderboard-icon{margin-top:4px}.leaderboard .leaderboard-title .leaderboard-title-text{display:flex;flex-direction:column;align-items:flex-start;gap:2px}.leaderboard .leaderboard-title .leaderboard-title-text .leaderboard-range{color:#9aa8baad;font-size:.72rem;margin:0}.leaderboard .leaderboard-content{display:grid;transition:grid-template-rows .22s ease,opacity .22s ease;height:auto}.leaderboard .leaderboard-content.collapsed{grid-template-rows:0fr;opacity:0;height:0}.leaderboard .leaderboard-content.expanded{grid-template-rows:1fr;opacity:1;padding-top:8px}.leaderboard .leaderboard-content>*{overflow:hidden;padding:0 16px 16px}.score-rows{display:grid;gap:8px}.score-rows .score-row{display:grid;grid-template-columns:52px 92px 1fr auto;gap:12px;align-items:center;padding:12px;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:#ffffff0b}.score-rows .score-row span{display:block;color:#8f9aaa;font-size:.76rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.score-rows .score-row strong{color:#f4f7fb}.score-rows .score-row em{color:#d8e0ea;font-style:normal}.score-rows .score-row small{color:#9aa8baad;font-size:.72rem}.score-rows .score-row .score-meta{display:grid;gap:2px;justify-content:left;text-align:left}.stat{min-width:92px;padding:12px 16px;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:#ffffff0e;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.stat span{display:block;color:#8f9aaa;font-size:.76rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.stat strong{display:block;margin-top:6px;font-size:1.35rem}@media(max-width:520px){.stat{padding:12px}}.end-screen{display:grid;gap:18px;margin-top:22px}.end-screen .eyebrow{margin:0 0 8px;color:#58e6ff;font-size:.78rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.end-screen .challenge-result{margin:-8px 0 0;color:#9aa8ba}.end-screen .breakdown{display:grid;grid-template-columns:repeat(3,minmax(92px,1fr));gap:8px}@media(max-width:860px){.end-screen .breakdown{grid-template-columns:repeat(3,1fr)}}@media(max-width:520px){.end-screen .breakdown{grid-template-columns:repeat(3,1fr)}}.end-screen .end-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.end-screen .end-actions span{color:#9aa8ba;font-size:.9rem}.end-screen .secondary-action{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:42px;padding:0 14px;border:1px solid rgba(88,230,255,.24);border-radius:8px;color:#dff8ff;background:#58e6ff17;font-weight:850;cursor:pointer}.report-song-wrap{position:relative}.report-song-trigger{display:inline-flex;align-items:center;gap:6px;padding:0;background:none;color:#9aa8ba;font-size:.78rem;font-weight:700;letter-spacing:.04em;cursor:pointer;transition:color .15s}.report-song-trigger:hover,.report-song-trigger[aria-expanded=true]{color:#f74a8a}.report-song-popover{position:absolute;left:0;bottom:calc(100% + 8px);z-index:40;width:min(260px,100%);padding:14px;border:1px solid rgba(255,255,255,.09);border-radius:8px;background:#090c13f7;box-shadow:0 16px 48px #00000080;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.report-song-popover .report-song-heading{margin:0 0 10px;color:#8f9aaa;font-size:.76rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.report-song-popover .report-song-list{display:grid;gap:4px;margin:0 0 12px;padding:0;list-style:none}.report-song-popover .report-song-option{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;color:#d8e0ea;font-size:.875rem;cursor:pointer;transition:background .12s}.report-song-popover .report-song-option:hover{background:#ffffff0f}.report-song-popover .report-song-option input[type=checkbox]{width:auto;min-height:auto;accent-color:#f74a8a;cursor:pointer}.report-song-popover .report-song-actions{display:flex;gap:8px}.report-song-popover .report-song-submit{flex:1;min-height:34px;padding:0 10px;border:1px solid rgba(247,74,138,.36);border-radius:6px;background:#f74a8a1f;color:#ffc6d7;font-size:.82rem;font-weight:800;cursor:pointer;transition:background .12s,opacity .12s}.report-song-popover .report-song-submit:hover:not(:disabled){background:#f74a8a38}.report-song-popover .report-song-submit:disabled{opacity:.35;cursor:not-allowed}.report-song-popover .report-song-cancel{min-height:34px;padding:0 10px;border:1px solid rgba(255,255,255,.08);border-radius:6px;background:#ffffff0b;color:#9aa8ba;font-size:.82rem;cursor:pointer}.report-song-popover .report-song-cancel:hover{color:#f4f7fb}.report-song-thanks{margin:0;padding:4px 0;color:#70f3aa;font-size:.875rem;font-weight:700;text-align:center}.settings-overlay{position:fixed;inset:0;z-index:30;display:grid;place-items:center;padding:20px;background:#03050aa8;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.settings-overlay .settings-panel{position:relative;display:grid;gap:16px;width:min(620px,100%);max-height:min(760px,100vh - 40px);overflow:auto;padding:22px;border:1px solid rgba(255,255,255,.09);border-radius:8px;background:#090c13f0;box-shadow:0 30px 90px #0000007a;-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px)}.settings-overlay .settings-close{position:absolute;top:12px;right:12px;display:grid;place-items:center;width:36px;height:36px;border-radius:8px;color:#9aa8ba;background:#ffffff0e;cursor:pointer}.settings-overlay .settings-close:hover{color:#f4f7fb;background:#ffffff1a}.settings-overlay .settings-header{display:grid;grid-template-columns:1fr;gap:16px;align-items:start}.settings-overlay .settings-header .section-title{display:flex;align-items:center;gap:8px;margin-bottom:4px;font-weight:900}.settings-overlay .settings-header p{margin:0;color:#9aa8ba}.settings-overlay .settings-header strong{width:fit-content;padding:8px 12px;border-radius:8px;color:#58e6ff;background:#58e6ff17;white-space:nowrap}.settings-overlay .year-controls{display:grid;grid-template-columns:repeat(2,minmax(130px,1fr));gap:12px}.settings-overlay .year-controls label{display:grid;gap:8px}.settings-overlay .year-controls span{color:#8f9aaa;font-size:.76rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.settings-overlay .year-controls input{width:100%;min-height:46px;padding:0 12px;border:1px solid rgba(255,255,255,.11);border-radius:8px;outline:none;color:#f4f7fb;background:#ffffff0e}.settings-overlay .year-controls input:focus{border-color:#58e6ffb8;box-shadow:0 0 0 3px #58e6ff1a}.settings-overlay .preset-row{display:flex;flex-wrap:wrap;gap:8px}.settings-overlay .preset-row button{min-height:36px;padding:0 12px;border:1px solid rgba(255,255,255,.09);border-radius:8px;color:#d8e0ea;background:#ffffff0e;font-weight:800;cursor:pointer}.settings-overlay .preset-row button:hover:not(:disabled){border-color:#f74a8a66;background:#f74a8a1a}.settings-overlay .preset-row button:disabled{cursor:not-allowed;opacity:.48}.settings-overlay .settings-note{margin:0;color:#9aa8ba}.settings-overlay .settings-note.warning{color:#ffc6d7}.settings-overlay .settings-install{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:12px;border:1px solid rgba(88,230,255,.16);border-radius:8px;background:#58e6ff0e}.settings-overlay .settings-install div{display:grid;gap:3px}.settings-overlay .settings-install strong{color:#f4f7fbdb}.settings-overlay .settings-install span{color:#9aa8ba;font-size:.88rem}.install-toast{position:fixed;right:18px;bottom:18px;z-index:20;display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;width:min(420px,100vw - 28px);border:1px solid rgba(255,255,255,.08);border-radius:8px;background:#090c13eb;box-shadow:0 22px 60px #0000005c;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.install-toast .toast-header{padding:16px}.install-toast .section-title{margin-bottom:2px;color:#f4f7fbc7;font-size:.88rem}.install-toast p{margin:0;color:#8f9aaa;font-size:.84rem}.install-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:34px;padding:0 12px;border:1px solid rgba(88,230,255,.28);border-radius:8px;color:#dff8ff;background:#58e6ff1f;font-size:.86rem;font-weight:800;cursor:pointer}.toast-dismiss{display:inline-grid;place-items:center;width:34px;height:34px;margin-right:16px;border-radius:8px;color:#9aa8ba;background:#ffffff0e;cursor:pointer}.toast-dismiss:hover{color:#f4f7fb;background:#ffffff1a}@media(max-width:860px){.install-toast .toast-header{padding:16px 0 8px 16px}.install-toast{grid-template-columns:1fr}.install-toast{left:50%;width:calc(100vw - 40px);transform:translate(-50%);bottom:12px}.install-toast .install-button{width:100%}.toast-dismiss{position:absolute;top:8px;right:8px;margin-right:0}}
