:root{--bg:#0a0908;--surface:#141210;--card:#1c1916;--border:#2c2822;--accent:#f0c040;--accent2:#e05c30;--green:#1DB954;--text:#ede8e0;--muted:#7a7060;--correct:#2ecc71;--wrong:#e74c3c;--token:#f0c040;--radius:6px}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--text);font-family:Syne,sans-serif;line-height:1.5;position:relative;min-height:100vh;overflow-x:hidden}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:9999;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;background:radial-gradient(ellipse at 50% -10%,rgba(240,192,64,.1),transparent 60%)}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}button{cursor:pointer;border:1px solid var(--border);background:var(--card);color:var(--text);border-radius:var(--radius);padding:12px 18px;min-height:44px;transition:background .15s,border-color .15s,transform .05s,opacity .15s;font-family:DM Mono,monospace;letter-spacing:.03em}button:hover:not(:disabled){border-color:var(--accent);background:#262119}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--accent);color:#1a1408;border-color:var(--accent);font-weight:700}.btn-primary:hover:not(:disabled){background:#ffd24d;border-color:#ffd24d}.btn-accent2{background:var(--accent2);color:#fff;border-color:var(--accent2);font-weight:700}.btn-accent2:hover:not(:disabled){background:#f06a3a;border-color:#f06a3a}.btn-pass{background:transparent;color:var(--green);border-color:var(--green);font-weight:700}.btn-pass:hover:not(:disabled){background:var(--green);color:#111}.btn-ghost{background:transparent}.btn-danger{color:var(--wrong);border-color:#5a2a26}.btn-danger:hover:not(:disabled){background:#2a1715;border-color:var(--wrong)}input,select,textarea{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;min-height:44px;width:100%}textarea{font-family:DM Mono,monospace;font-size:13px;line-height:1.5;resize:vertical}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent)}input::placeholder,textarea::placeholder{color:var(--muted)}.mono{font-family:DM Mono,monospace}.muted{color:var(--muted)}a{color:var(--accent)}.screen{display:none;position:relative;z-index:1;width:100%}.screen.active{display:block;animation:fadeIn .45s ease both}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}#turnFlash{position:fixed;top:0;right:0;bottom:0;left:0;z-index:8000;pointer-events:none;background:var(--accent);opacity:0}#turnFlash.go{animation:turnFlash .7s ease-out both}@keyframes turnFlash{0%{opacity:0}18%{opacity:.5}to{opacity:0}}.song-card.turn-pop{animation:turnPop .5s ease both}@keyframes turnPop{0%{transform:scale(.96);box-shadow:0 0 #f0c04080}60%{box-shadow:0 0 0 6px #f0c0402e}to{transform:scale(1);box-shadow:0 0 #f0c04000}}.wrap{max-width:480px;margin:0 auto;padding:32px 20px}.logo{font-family:Bebas Neue,sans-serif;color:var(--accent);line-height:.9;letter-spacing:.04em}.center-screen .wrap{min-height:100vh;display:flex;flex-direction:column;justify-content:center}.big-logo{font-size:clamp(64px,18vw,110px);text-align:center;text-shadow:0 0 40px rgba(240,192,64,.25)}.sub{text-align:center;font-family:DM Mono,monospace;color:var(--muted);letter-spacing:.12em;font-size:12px;margin-bottom:30px;text-transform:uppercase}.sub b{color:var(--accent);font-weight:500}.menu{display:flex;flex-direction:column;gap:10px}.menu .big-btn{width:100%;padding:16px;font-size:15px;text-align:center}.back-link{display:inline-block;margin-bottom:18px;font-family:DM Mono,monospace;font-size:12px;color:var(--muted);background:none;border:none;padding:6px 0}.back-link:hover{color:var(--accent)}.field-block{margin-bottom:16px}.field-block label{display:block;font-family:DM Mono,monospace;font-size:10px;letter-spacing:.1em;color:var(--muted);text-transform:uppercase;margin-bottom:6px}.section-title{font-family:Bebas Neue,sans-serif;font-size:34px;letter-spacing:.03em;margin-bottom:4px}.code-input{font-family:Bebas Neue,sans-serif;font-size:40px;letter-spacing:.4em;text-align:center;text-transform:uppercase;padding:14px}.players-list{display:flex;flex-direction:column;gap:10px;margin-bottom:18px}.player-row{display:flex;gap:8px;align-items:center}.player-row .pnum{font-family:Bebas Neue,sans-serif;font-size:22px;color:var(--muted);width:24px;text-align:center;flex:none}.player-row button{flex:none;width:44px;padding:0;font-size:18px}.code-display{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:24px;text-align:center;margin-bottom:18px}.code-display .clabel{font-family:DM Mono,monospace;font-size:11px;letter-spacing:.2em;color:var(--muted);margin-bottom:6px}.code-display .code{font-family:Bebas Neue,sans-serif;font-size:clamp(56px,18vw,90px);color:var(--accent);line-height:1;letter-spacing:.18em;text-shadow:0 0 30px rgba(240,192,64,.35)}.code-display .join-at{font-family:DM Mono,monospace;font-size:12px;color:var(--muted);margin-top:10px;word-break:break-all}.code-display .join-at b{color:var(--text);font-weight:500}.lobby-players{display:flex;flex-direction:column;gap:8px;margin-bottom:18px}.lobby-player{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px}.lobby-player .lp-dot{width:9px;height:9px;border-radius:50%;background:var(--green);flex:none}.lobby-player.off .lp-dot{background:var(--muted)}.lobby-player .lp-name{flex:1;font-weight:600}.lp-name-wrap{position:relative;flex:1;display:flex;align-items:center}.lp-name-input{background:transparent;border:none;border-bottom:1px solid transparent;font-weight:600;font-size:15px;color:var(--text);width:100%;padding:0 22px 0 0;outline:none;font-family:inherit}.lp-name-input:not([readonly]){border-bottom:1px solid var(--accent)}.lp-edit-btn{position:absolute;right:0;background:none;border:none;cursor:pointer;font-size:13px;opacity:.45;padding:2px;line-height:1}.lp-edit-btn:hover{opacity:1}.lobby-player .lp-tag{font-family:DM Mono,monospace;font-size:10px;color:var(--muted);letter-spacing:.1em}.lobby-player.me{border-color:var(--accent)}.gamehead{display:flex;align-items:center;gap:14px;padding:12px 18px;border-bottom:1px solid var(--border);background:var(--surface);position:sticky;top:0;z-index:20;flex-wrap:wrap}.gamehead .logo{font-size:30px;flex:none}.turn-info{flex:1;text-align:center;min-width:140px}.turn-info .pname{font-family:Bebas Neue,sans-serif;font-size:26px;color:var(--accent);line-height:1}.turn-info .turn-label{font-family:DM Mono,monospace;font-size:10px;letter-spacing:.2em;color:var(--muted)}.gamehead .deckcount{font-family:DM Mono,monospace;font-size:11px;color:var(--muted);text-align:right;flex:none}.gamehead .deckcount b{color:var(--text);font-size:16px;display:block;font-weight:500}.head-btns{display:flex;align-items:center;gap:8px;flex:none}.head-btns button{padding:8px 12px;font-size:12px}.host-chip{font-family:DM Mono,monospace;font-size:10px;letter-spacing:.08em;padding:3px 7px;border-radius:4px;border:1px solid var(--accent);color:var(--accent);white-space:nowrap}.gamebody{max-width:480px;margin:0 auto;padding:24px 20px 30px}body.spectating:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;pointer-events:none;box-shadow:inset 0 0 0 3px #6e8cc873;background:linear-gradient(180deg,rgba(110,140,200,.1),rgba(110,140,200,.02) 28%,transparent 55%)}body.spectating .gamehead{border-bottom-color:#6e8cc880}.spectate-banner{text-align:center;font-family:DM Mono,monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#aec0e8;background:#6e8cc81f;border-bottom:1px solid rgba(110,140,200,.35);padding:8px 12px}.spectate-banner b{color:#fff;font-weight:600}.song-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:26px 22px;text-align:center;position:relative;overflow:hidden}.song-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(circle at 50% 0%,rgba(240,192,64,.06),transparent 70%)}.disc{width:120px;height:120px;margin:0 auto 18px;border-radius:50%;position:relative;background:radial-gradient(circle at center,#f0c040 0,#f0c040 13px,#1a1714 13px,#1a1714 17px,#0d0b0a 17px,#0d0b0a 24px,#1a1714 24px,#1a1714 27px,#0d0b0a 27px,#0d0b0a 36px,#1a1714 36px,#1a1714 39px,#0d0b0a 39px,#0d0b0a 48px,#1a1714 48px,#1a1714 51px,#0d0b0a 51px,#0d0b0a);box-shadow:0 8px 30px #0009,inset 0 0 0 2px #000;animation:spin 4s linear infinite}.disc.paused{animation-play-state:paused}.disc:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:linear-gradient(115deg,transparent 40%,rgba(255,255,255,.07) 50%,transparent 60%)}@keyframes spin{to{transform:rotate(360deg)}}.card-num{font-family:DM Mono,monospace;font-size:11px;letter-spacing:.25em;color:var(--muted);margin-bottom:6px}.mystery-title{font-family:Bebas Neue,sans-serif;font-size:clamp(40px,11vw,64px);line-height:.95;color:var(--muted);letter-spacing:.02em;margin-bottom:8px}.mystery-hint{font-family:DM Mono,monospace;font-size:12px;color:var(--muted);margin-bottom:16px;line-height:1.5}.mystery-hint b{color:var(--accent);font-weight:500}.song-title{font-family:Bebas Neue,sans-serif;font-size:clamp(34px,9vw,52px);line-height:.95;letter-spacing:.01em;margin-bottom:6px}.song-artist{color:var(--accent);font-weight:700;font-size:18px;margin-bottom:2px}.song-genre{color:var(--muted);font-style:italic;font-size:14px;margin-bottom:16px}.reveal-year{font-family:Bebas Neue,sans-serif;font-size:clamp(56px,16vw,84px);color:var(--accent);line-height:1;text-shadow:0 0 30px rgba(240,192,64,.4);margin-bottom:6px}.reveal-year small{display:block;font-family:DM Mono,monospace;font-size:11px;letter-spacing:.2em;color:var(--muted);text-shadow:none}.preview-wrap{display:flex;flex-direction:column;align-items:center;gap:10px;margin-bottom:6px}.play-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--accent);color:#1a1408;border:none;border-radius:999px;padding:12px 26px;min-height:48px;font-weight:700;font-size:15px;min-width:170px}.play-btn:hover:not(:disabled){background:#ffd24d}.play-btn.playing{background:var(--accent2);color:#fff}.play-btn .ico{font-size:18px;line-height:1}.preview-bar{width:100%;max-width:280px;height:4px;background:var(--border);border-radius:2px;overflow:hidden}.preview-bar .fill{height:100%;width:0;background:var(--accent);transition:width .2s linear}.preview-note{font-family:DM Mono,monospace;font-size:11px;color:var(--muted)}.card-actions{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:14px}.card-actions button{flex:1;min-width:120px;max-width:180px;font-size:12px;padding:10px 8px}.genre-picker{margin-top:12px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:14px}.genre-picker .gp-title{font-family:DM Mono,monospace;font-size:11px;letter-spacing:.05em;color:var(--muted);text-align:center;margin-bottom:10px}.genre-picker .gp-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.genre-picker .gp-grid button{font-size:13px;padding:10px 8px}.genre-picker .gp-cancel{width:100%;margin-top:10px;font-size:12px;background:none;border:1px solid var(--border);color:var(--muted)}.filter-wrap{margin:16px 0;text-align:left}.filter-mount{margin:14px 0;text-align:left}.filter-toggle{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;font-family:DM Mono,monospace;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--text)}.filter-toggle .ft-main{display:flex;align-items:center;gap:9px;min-width:0}.filter-toggle .ft-ico{flex:none;color:var(--muted);display:block}.filter-toggle .ft-label{font-weight:700;letter-spacing:.08em;white-space:nowrap}.filter-toggle .ft-badge{flex:none;background:var(--accent);color:#1a1408;font-weight:700;font-size:10px;line-height:1;padding:3px 6px;border-radius:999px}.filter-toggle .ft-right{display:flex;align-items:center;gap:10px;flex:none}.filter-toggle .ft-count{color:var(--muted);font-size:11px;letter-spacing:.04em;text-transform:none}.filter-toggle .ft-chev{color:var(--muted);font-size:9px;transition:transform .15s}.filter-toggle.open{border-color:var(--accent)}.filter-toggle.open .ft-chev{transform:rotate(180deg)}.filter-toggle.active{border-color:var(--accent)}.filter-toggle.active .ft-ico{color:var(--accent)}.filter-panel{margin-top:10px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:14px}.filter-sec{margin-bottom:16px}.filter-sec:last-of-type{margin-bottom:8px}.filter-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.filter-title{font-family:DM Mono,monospace;font-size:11px;letter-spacing:.12em;color:var(--muted)}.mode-toggle{display:inline-flex;border:1px solid var(--border);border-radius:999px;overflow:hidden;flex:none}.mode-toggle button{border:none;border-radius:0;min-height:0;padding:5px 12px;font-size:11px;background:transparent;color:var(--muted);letter-spacing:.04em}.mode-toggle button:hover{background:#262119;border:none}.mode-toggle button.on{background:var(--accent);color:#1a1408;font-weight:700}.mode-toggle button.on.ex{background:var(--accent2);color:#fff}.chip-grid{display:flex;flex-wrap:wrap;gap:7px}.chip{flex:0 0 auto;font-size:12px;padding:7px 12px;min-height:0;border-radius:999px;background:var(--surface);color:var(--text)}.chip.on{border-color:var(--accent);background:#f0c04029;color:var(--accent);font-weight:700}.chip.on.ex{border-color:var(--accent2);background:#e05c3029;color:var(--accent2)}.filter-count{font-family:DM Mono,monospace;font-size:11px;color:var(--muted);margin-top:12px}.filter-count.warn{color:var(--accent2)}.links-row{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:8px}.spotify-link{display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:var(--green);border:1px solid var(--green);border-radius:999px;padding:9px 18px;min-height:44px;font-family:DM Mono,monospace;font-size:13px;font-weight:500;transition:background .15s}.spotify-link:hover{background:#1db9541f}.spotify-link svg{width:20px;height:20px;flex:none}.verdict{font-family:Bebas Neue,sans-serif;font-size:32px;line-height:1;margin-top:12px}.verdict.correct{color:var(--correct)}.verdict.wrong{color:var(--wrong)}.verdict-sub{font-family:DM Mono,monospace;font-size:12px;color:var(--muted);margin-top:4px}.timeline-area{margin-top:26px}.timeline-label{font-family:DM Mono,monospace;font-size:12px;letter-spacing:.05em;color:var(--muted);text-align:center;margin-bottom:14px}.timeline-label b{color:var(--accent);font-weight:500}.tl-orient{display:flex;width:fit-content;margin:0 auto 14px;border:1px solid var(--border);border-radius:999px;overflow:hidden}.tl-orient button{border:none;border-radius:0;min-height:0;padding:6px 14px;font-size:11px;letter-spacing:.04em;background:transparent;color:var(--muted);font-family:DM Mono,monospace;display:flex;align-items:center;gap:6px}.tl-orient button:hover:not(.on){background:#262119;border:none;color:var(--text)}.tl-orient button.on{background:var(--accent);color:#1a1408;font-weight:700}.tl-orient .tlo-ico{font-size:13px;line-height:1}.timeline-window{position:relative}.tl-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:34px;height:52px;border-radius:var(--radius);background:#14100ab8;border:1px solid var(--border);color:var(--text);font-size:22px;line-height:1;padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center}.tl-prev{left:0}.tl-next{right:0}.tl-arrow:hover{border-color:var(--accent);color:var(--accent)}.tl-arrow:disabled{opacity:.25;cursor:default;border-color:var(--border);color:var(--muted)}@media (hover:none) and (pointer:coarse){.tl-arrow{display:none}}.timeline{position:relative;display:flex;flex-direction:row;align-items:stretch;gap:12px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;padding:8px calc(50% - 120px);scrollbar-width:none}.timeline::-webkit-scrollbar{display:none}.timeline>[data-tlidx]{flex:0 0 240px;scroll-snap-align:center;opacity:.5;transform:scale(.92);transition:opacity .2s ease,transform .2s ease;margin:0}.timeline>[data-tlidx].tl-centered{opacity:1;transform:scale(1)}.timeline-window.vertical .tl-arrow{display:none}.timeline-window.vertical .timeline{flex-direction:column;align-items:stretch;overflow:visible;scroll-snap-type:none;padding:8px 0;gap:10px}.timeline-window.vertical .timeline>[data-tlidx]{flex:0 0 auto;width:100%;opacity:1;transform:none;scroll-snap-align:none}.slot{border:1px dashed var(--border);border-radius:var(--radius);padding:12px;text-align:center;font-family:DM Mono,monospace;font-size:12px;color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .15s,background .15s,color .15s}.slot:hover{border-color:var(--accent);color:var(--text)}.slot.selected{border-color:var(--accent);border-style:solid;background:#f0c0401f;color:var(--accent);font-weight:500}.tl-action{margin-top:14px;min-height:0}.inline-confirm{display:flex;gap:8px;margin:6px 0 4px;animation:fadeIn .25s ease both}.inline-confirm button{flex:1;padding:12px 8px;font-size:13px;min-height:48px}.inline-confirm button.btn-primary{flex:1.3}.tl-card.card-pick{cursor:pointer;transition:border-color .15s,background .15s}.tl-card.card-pick:hover{border-color:var(--token)}.tl-card.selected{border-color:var(--token);background:#f0c0401a}.tl-card.widened{border-color:var(--token);box-shadow:0 0 0 1px #f0c0404d}.tl-card.widened .tl-year{color:var(--token)}.bet-bar{background:var(--surface);border:1px solid var(--token);border-radius:var(--radius);padding:12px;margin:6px 0 10px;display:flex;flex-direction:column;gap:10px;animation:fadeIn .25s ease both}.bet-line{font-size:13px;color:var(--text);display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:center}.bet-step{width:36px;min-height:36px;padding:0;font-size:18px;flex:none;border-radius:50%}.bet-amt{font-family:Bebas Neue,sans-serif;font-size:24px;color:var(--token);min-width:42px;text-align:center}.bet-bar .btn-primary{width:100%}.slot.static{cursor:default}.slot.static:hover{border-color:var(--border);color:var(--muted)}.tl-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px;display:flex;align-items:center;gap:14px}.tl-card.pending{border-color:var(--accent2);border-style:dashed;background:#e05c3014}.tl-card.fresh{border-color:var(--correct);animation:freshPop .6s ease both}.tl-card.bought{border-color:var(--token);background:#f0c0401a;animation:freshPop .6s ease both}@keyframes freshPop{0%{transform:scale(.94)}55%{transform:scale(1.02)}to{transform:scale(1)}}.tl-card .tl-flag{margin-left:auto;flex:none;font-family:DM Mono,monospace;font-size:9px;letter-spacing:.08em;text-transform:uppercase;padding:3px 7px;border-radius:999px;font-weight:500}.tl-card.fresh .tl-flag{background:#2ecc712e;color:var(--correct)}.tl-card.bought .tl-flag{background:#f0c04033;color:var(--token)}.tl-card .tl-year{font-family:Bebas Neue,sans-serif;font-size:32px;color:var(--accent);line-height:1;flex:none;min-width:62px}.tl-card.pending .tl-year{color:var(--accent2)}.tl-card.bought .tl-year{color:var(--token)}.tl-card .tl-meta .tl-title{font-weight:700;font-size:15px;line-height:1.2}.tl-card .tl-meta .tl-artist{color:var(--muted);font-size:13px}.action-btn{width:100%;margin-top:18px;font-size:15px;padding:14px}.action-row{display:flex;gap:10px;margin-top:18px}.action-row .action-btn{margin-top:0;flex:1}.challenge-box{margin-top:18px;background:var(--card);border:1px solid var(--accent2);border-radius:var(--radius);padding:16px}.challenge-box.attn{animation:chalAttn 1s ease 2}@keyframes chalAttn{0%,to{box-shadow:0 0 #e05c3000}50%{box-shadow:0 0 0 4px #e05c3059}}.challenge-box .cb-title{font-family:DM Mono,monospace;font-size:12px;letter-spacing:.08em;color:var(--accent2);text-transform:uppercase;margin-bottom:4px}.challenge-box .cb-note{font-size:13px;color:var(--muted);margin-bottom:12px;line-height:1.4}.placement-callout{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:8px 10px;margin-bottom:12px;display:flex;flex-direction:column;gap:4px}.pl-row{display:flex;align-items:center;gap:10px;font-size:13px;padding:5px 6px;border-radius:4px}.pl-row .pl-tag{font-family:DM Mono,monospace;font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);width:48px;flex:none}.pl-row .pl-year{font-family:Bebas Neue,sans-serif;font-size:22px;color:var(--accent);line-height:1;min-width:46px;flex:none}.pl-row .pl-song{color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pl-row.pl-edge .pl-song{color:var(--muted);font-style:italic}.pl-row.pl-here{background:#e05c3024;border:1px dashed var(--accent2)}.pl-row.pl-here .pl-tag,.pl-row.pl-here .pl-year{color:var(--accent2)}.pl-row.pl-here .pl-song{color:var(--accent2);font-weight:600}.pl-row.pl-widen{background:#f0c0401f}.pl-row.pl-widen .pl-tag,.pl-row.pl-widen .pl-song{color:var(--token)}.chal-list{display:flex;flex-direction:column;gap:8px}.chal-btn{display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%}.chal-btn .ch-tok{color:var(--token);font-size:12px}.chal-pair{display:flex;gap:8px}.chal-pair .chal-btn:first-child{flex:2}.chal-pair .chal-btn:last-child{flex:1}div.chal-btn{padding:12px 16px;border:1px solid var(--border);border-radius:var(--radius);font-family:DM Mono,monospace;font-size:13px;background:var(--card)}div.chal-btn.chal-on{border-color:var(--accent2);color:var(--accent2)}.ch-withdraw{padding:4px 10px;min-height:auto;font-size:11px;border:none;background:none;color:var(--accent);text-decoration:underline}.honor-box{margin-top:18px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;text-align:center}.honor-box .hb-title{font-family:DM Mono,monospace;font-size:12px;letter-spacing:.05em;color:var(--muted);margin-bottom:4px}.honor-box .hb-answer{font-size:13px;margin-bottom:12px}.honor-box .hb-answer b{color:var(--accent)}.honor-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}.honor-grid button{flex-direction:column;font-size:13px;padding:10px 6px;line-height:1.3;display:flex;gap:2px}.honor-grid button small{font-family:DM Mono,monospace;font-size:10px;color:var(--token)}.honor-done{font-family:DM Mono,monospace;font-size:13px;color:var(--correct)}.buy-row{display:flex;gap:10px;margin-top:14px}.buy-row button{flex:1;font-size:13px}.scores-bar{position:sticky;bottom:0;background:var(--surface);border-top:1px solid var(--border);padding:12px 16px;display:flex;gap:10px;overflow-x:auto;z-index:20}.score-chip{flex:none;border:1px solid var(--border);border-radius:999px;padding:8px 14px;display:flex;align-items:center;gap:10px;white-space:nowrap;background:var(--card)}.score-chip.active{border-color:var(--accent);background:#f0c0401f}.score-chip.off{opacity:.45}.score-chip .sc-name{font-weight:600;font-size:14px}.score-chip.active .sc-name{color:var(--accent)}.score-chip .sc-score{font-family:Bebas Neue,sans-serif;font-size:22px;color:var(--text);line-height:1}.score-chip.active .sc-score{color:var(--accent)}.score-chip .sc-tok{font-family:DM Mono,monospace;font-size:12px;color:var(--token)}.waiting-msg{text-align:center;font-family:DM Mono,monospace;font-size:13px;color:var(--muted);padding:20px;line-height:1.6}.mgr-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border);background:var(--surface);position:sticky;top:0;z-index:20}.mgr-head h2{font-family:Bebas Neue,sans-serif;font-size:32px;letter-spacing:.03em}.mgr-body{max-width:760px;margin:0 auto;padding:24px 20px 60px}.add-form{display:grid;grid-template-columns:2fr 2fr 1fr 1.5fr auto;gap:10px;align-items:end;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:24px}.add-form .field{display:flex;flex-direction:column;gap:5px}.add-form label{font-family:DM Mono,monospace;font-size:10px;letter-spacing:.1em;color:var(--muted);text-transform:uppercase}.add-form .add-btn{white-space:nowrap}.mgr-tablewrap{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.mgr-count{font-family:DM Mono,monospace;font-size:12px;color:var(--muted);padding:12px 16px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;gap:10px}table{width:100%;border-collapse:collapse;font-size:14px}thead th{font-family:DM Mono,monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);text-align:left;padding:10px 14px;border-bottom:1px solid var(--border);background:var(--surface)}tbody td{padding:10px 14px;border-bottom:1px solid var(--border);vertical-align:middle}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:#ffffff05}.td-num{color:var(--muted);font-family:DM Mono,monospace;font-size:12px;width:36px}.td-title{font-weight:600}.year-badge{font-family:Bebas Neue,sans-serif;background:#f0c04026;color:var(--accent);padding:3px 10px;border-radius:4px;font-size:18px;letter-spacing:.04em}.td-genre{color:var(--muted);font-style:italic}.del-btn{padding:6px 10px;min-height:36px;font-size:14px}#win .wrap{min-height:100vh;display:flex;flex-direction:column;justify-content:center;text-align:center}.trophy{font-size:80px;line-height:1;animation:pop .5s ease both}@keyframes pop{0%{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}.win-title{font-family:Bebas Neue,sans-serif;font-size:64px;color:var(--accent);line-height:.9;letter-spacing:.05em}.win-name{font-family:Bebas Neue,sans-serif;font-size:clamp(48px,14vw,80px);line-height:1;margin:6px 0 30px}.standings{display:flex;flex-direction:column;gap:8px;margin-bottom:30px;text-align:left}.standing-row{display:flex;align-items:center;gap:14px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:12px 18px}.standing-row .medal{font-size:24px;width:30px;text-align:center;flex:none}.standing-row .st-name{flex:1;font-weight:600;font-size:17px}.standing-row .st-score{font-family:Bebas Neue,sans-serif;font-size:30px;color:var(--accent);line-height:1}.standing-row .st-tok{font-family:DM Mono,monospace;font-size:12px;color:var(--token);margin-left:8px}.standing-row.first{border-color:var(--accent)}.info-box{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;margin-bottom:18px;font-size:13px;line-height:1.6}.info-box ol{margin:8px 0 0 18px}.info-box li{margin-bottom:6px}.info-box code{font-family:DM Mono,monospace;background:var(--surface);padding:1px 5px;border-radius:3px;font-size:12px;color:var(--accent)}.info-box pre{font-family:DM Mono,monospace;background:var(--surface);border:1px solid var(--border);border-radius:4px;padding:10px;font-size:11px;overflow-x:auto;margin-top:8px;white-space:pre-wrap;color:var(--text)}.err-msg{color:var(--wrong);font-size:13px;font-family:DM Mono,monospace;margin-top:10px;min-height:18px}.ok-msg{color:var(--correct);font-size:13px;font-family:DM Mono,monospace;margin-top:10px;min-height:18px}.rules-toggle{font-family:DM Mono,monospace;font-size:12px;color:var(--accent);background:none;border:none;text-decoration:underline;padding:8px;display:block;margin:0 auto}.auth-status{text-align:center;font-family:DM Mono,monospace;font-size:11px;color:var(--muted);margin:10px 0 4px}.auth-user{color:var(--green)}.auth-link{background:none;border:none;padding:0 2px;font-family:inherit;font-size:inherit;color:var(--accent);text-decoration:underline;cursor:pointer}@media (max-width:600px){.add-form{grid-template-columns:1fr}.add-form .add-btn{width:100%}.gamehead{gap:8px}.turn-info{order:3;flex-basis:100%}.td-genre{display:none}.honor-grid{grid-template-columns:1fr}}
