html:has(body.tv){font-size:min(1.04vw,1.85vh)}body.tv{overflow:hidden;cursor:none}body.tv:hover{cursor:default}.tv-root{position:relative;width:100vw;height:100vh;overflow:hidden}.muted{color:var(--muted)}.stage{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;background:radial-gradient(ellipse at 50% 120%,#2a0f4a 0%,var(--bg) 60%)}.stage-video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;transform:scale(1.38);filter:blur(14px) saturate(1.5) brightness(.55) contrast(1.1);opacity:0;transition:opacity 1.5s ease,filter 1.2s ease,transform 1.2s ease}.stage-video.clear{transform:scale(1.12);filter:blur(2px) saturate(1.2) brightness(.45)}.stage-tint{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 15% 10%,rgba(255,61,129,.28),transparent 50%),radial-gradient(ellipse at 85% 90%,rgba(54,226,255,.22),transparent 50%),linear-gradient(180deg,#0b061459,#0b0614bf);mix-blend-mode:normal}.blob{position:absolute;width:45vw;height:45vw;border-radius:50%;filter:blur(80px);opacity:.35;animation:float 18s ease-in-out infinite alternate}.blob.b1{background:var(--pink);top:-15vw;left:-10vw}.blob.b2{background:var(--violet);bottom:-18vw;right:-12vw;animation-delay:-9s}@keyframes float{to{transform:translate(12vw,8vw) scale(1.2)}}.stage-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.screen{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:flex}.center-screen{margin:auto;display:flex;flex-direction:column;align-items:center;gap:1.6rem;text-align:center;position:relative;z-index:2}.logo{font-size:6.2rem;font-weight:900;line-height:.9;margin:0;display:flex;flex-direction:column}.logo-2{color:var(--text);-webkit-text-stroke:.08em transparent;text-shadow:0 0 40px rgba(255,61,129,.45)}.lobby{display:grid;grid-template-columns:38% 1fr;gap:3rem;padding:4rem 4.5rem;width:100%}.lobby-left{display:flex;flex-direction:column;gap:2.4rem;justify-content:center}.join-card{display:flex;gap:1.8rem;padding:1.6rem;align-items:center}.qr{width:12rem;height:12rem;flex:none;border-radius:1rem;overflow:hidden;background:#fff;padding:.5rem;box-shadow:0 0 60px -10px #36e2ff99}.qr svg{width:100%;height:100%;display:block}.join-info{display:flex;flex-direction:column;gap:.4rem}.join-step{color:var(--muted);font-size:1.05rem}.join-host{font-size:1.3rem;font-weight:700;color:var(--cyan)}.code{display:flex;gap:.5rem;margin-top:.4rem;perspective:600px}.code-char{width:3.6rem;height:4.4rem;display:grid;place-items:center;font-size:2.8rem;font-weight:800;border-radius:.8rem;background:linear-gradient(180deg,#ffffff29,#ffffff0a);border:1px solid var(--border);box-shadow:inset 0 -4px #0000004d,0 8px 30px -8px #ff3d8199}.lobby-right{display:flex;flex-direction:column;gap:1.6rem;min-width:0}.lobby-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}.lobby-head h2{margin:0;font-size:2.2rem}.lobby-players{flex:1;display:flex;flex-wrap:wrap;align-content:flex-start;gap:1.6rem 1.8rem;padding:1.2rem .2rem;min-height:12rem}.lobby-player{display:flex;flex-direction:column;align-items:center;gap:.7rem;width:7.4rem}.lp-name{font-weight:700;font-size:1.15rem;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lobby-empty{color:var(--muted);font-size:1.5rem;margin:auto;animation:pulse 2s ease-in-out infinite}@keyframes pulse{50%{opacity:.45}}.section-label{color:var(--muted);font-weight:600;margin-bottom:.6rem;font-size:1.05rem}.lobby-hint{font-size:1.25rem;color:var(--muted)}.lobby-hint b{color:var(--text)}.genre-mix{display:flex;flex-direction:column;gap:.7rem;width:100%}.genre-mix.compact{width:50rem;max-width:80vw}.genre-mix.empty{align-items:flex-start}.genre-mix.compact.empty{align-items:center}.mix-bar{display:flex;height:2.4rem;border-radius:999px;overflow:hidden;border:1px solid var(--border)}.mix-seg{display:grid;place-items:center;font-size:1.3rem;min-width:0;flex-basis:0}.mix-legend{display:flex;flex-wrap:wrap;gap:.5rem;font-size:1rem}.genre-mix.compact .mix-legend{justify-content:center}.game-header{position:absolute;top:0;left:0;right:0;z-index:5;display:flex;justify-content:space-between;align-items:center;padding:1.4rem 2rem;font-size:1.05rem}.gh-left{display:flex;align-items:center;gap:.8rem}.gh-logo{font-weight:900;font-size:1.3rem;margin-right:.6rem}.finale-tag{margin-left:.5rem;background:var(--grad-warm);color:#1a0b12;padding:.05em .5em;border-radius:999px}.round-kicker{font-size:1.6rem;color:var(--muted);text-transform:uppercase;letter-spacing:.3em}.round-title{font-size:10rem;font-weight:900;margin:0;line-height:1}.grad-warm{background:var(--grad-warm);-webkit-background-clip:text;background-clip:text;color:transparent}.round-sub{font-size:1.5rem;color:var(--muted)}.finale-note{margin-top:.6rem;color:var(--amber);font-weight:700;font-size:1.7rem}.joker-note{display:flex;gap:1.2rem;align-items:center;padding:1.1rem 1.6rem;font-size:1.25rem;text-align:left}.joker-icon{font-size:3rem}.joker-list{display:flex;gap:.5rem;margin-top:.5rem;flex-wrap:wrap}.countdown-label{font-size:1.8rem;color:var(--muted)}.countdown-num{font-size:20rem;font-weight:900;line-height:1}.playing{width:100%;display:flex;flex-direction:column;justify-content:space-between;padding:5rem 2rem 2.2rem}.playing-center{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.4rem}.ring{width:17rem;height:17rem;position:relative}.ring svg{width:100%;height:100%;transform:rotate(-90deg)}.ring-bg{fill:#0b06148c;stroke:#ffffff1a;stroke-width:14}.ring-fg{fill:none;stroke:url(#ringGrad);stroke-width:14;stroke-linecap:round;transition:stroke-dashoffset .15s linear;filter:drop-shadow(0 0 10px rgba(255,61,129,.8))}.ring-num{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:6.5rem;font-weight:800}.ring.urgent .ring-num{color:var(--amber);animation:beat .5s ease-in-out infinite alternate}@keyframes beat{to{transform:scale(1.12)}}.playing-hint{display:flex;gap:.6rem;font-size:1.2rem}.playing-sub{font-size:1.4rem;color:var(--muted)}.player-strip{display:flex;justify-content:center;flex-wrap:wrap;gap:1.4rem}.strip-player{display:flex;flex-direction:column;align-items:center;gap:.4rem;width:6.4rem;position:relative;transition:transform .3s}.strip-player.done{transform:translateY(-.5rem)}.strip-player.done .avatar{box-shadow:0 0 0 3px var(--good),0 0 30px var(--good)}.dots{display:flex;gap:.25rem}.dots span{width:.55rem;height:.55rem;border-radius:50%;background:#fff3;transition:background .2s,transform .2s}.dots span.on{background:var(--good);transform:scale(1.2)}.sp-name{font-size:.95rem;font-weight:600;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.joker-badge{position:absolute;top:-.6rem;left:-.4rem;background:var(--amber);color:#1a0b12;font-weight:800;font-size:.8rem;padding:.1rem .4rem;border-radius:999px}.reveal{width:100%;display:grid;grid-template-columns:1.15fr 1fr;gap:3rem;padding:6rem 3.5rem 3rem;align-items:center}.reveal-song{display:flex;flex-direction:column;gap:2rem}.cover-wrap{position:relative;width:18rem;height:18rem}.cover{position:relative;width:100%;height:100%;object-fit:cover;border-radius:1rem;box-shadow:0 30px 80px -20px #000c,0 0 0 1px var(--border);z-index:1}.cover-fallback{display:grid;place-items:center;font-size:7rem;background:var(--grad)}.vinyl{position:absolute;top:4%;left:4%;width:92%;height:92%;border-radius:50%;background:repeating-radial-gradient(circle,#111 0,#111 2px,#1d1d1d 2px,#1d1d1d 4px);box-shadow:0 0 0 1px #000}.vinyl:after{content:"";position:absolute;top:36%;right:36%;bottom:36%;left:36%;border-radius:50%;background:var(--grad)}.song-title{font-size:3.4rem;font-weight:800;line-height:1.05}.song-artist{font-size:2rem;color:var(--cyan);font-weight:600;margin-top:.4rem}.year-counter{display:flex;align-items:baseline;gap:1rem;margin-top:1rem}.year-counter .display{font-size:5rem;font-weight:900;color:var(--amber);text-shadow:0 0 40px rgba(255,210,63,.5)}.year-counter .month{font-size:1.8rem;color:var(--muted)}.bonus-solution{margin-top:1.2rem;padding:1rem 1.3rem;max-width:44rem}.bs-prompt{color:var(--muted);font-size:1.05rem}.bs-answer{font-size:1.5rem;font-weight:700;margin-top:.3rem}.reveal-results{display:flex;flex-direction:column;gap:.6rem;max-height:100%;overflow:hidden}.rr-row{display:flex;align-items:center;gap:.9rem;padding:.55rem 1rem;border-radius:1rem}.rr-name{font-weight:700;font-size:1.25rem;width:8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rr-chips{display:flex;gap:.35rem;flex:1;flex-wrap:wrap}.mini{font-size:.95rem;padding:.15rem .5rem;border-radius:999px;background:#ffffff14}.mini.ok{background:#3dffa238;box-shadow:inset 0 0 0 1px #3dffa299}.mini.part{background:#ffd23f2e;box-shadow:inset 0 0 0 1px #ffd23f80}.mini.no{opacity:.45}.mini.joker{background:var(--amber);color:#1a0b12;font-weight:800}.rr-points{font-size:1.8rem;font-weight:800;color:var(--good);min-width:6rem;text-align:right}.rr-points.zero{color:var(--muted)}.standings{width:100%;padding:6rem 8rem 3rem;display:flex;flex-direction:column;gap:2rem}.standings-title{font-size:3.2rem;margin:0;text-align:center}.st-list{display:flex;flex-direction:column;gap:.7rem}.st-row{display:grid;grid-template-columns:3.5rem auto 10rem 1fr 7rem;gap:1.1rem;align-items:center;padding:.5rem 1.2rem;border-radius:1rem;background:#ffffff0d;border:1px solid var(--border)}.st-rank{font-size:1.8rem;font-weight:800;color:var(--muted)}.st-name{font-weight:700;font-size:1.4rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.st-bar-wrap{height:1.3rem;background:#ffffff0f;border-radius:999px;overflow:hidden}.st-bar{height:100%;border-radius:999px;box-shadow:0 0 20px currentColor}.st-score{font-size:1.8rem;font-weight:800;text-align:right}.final{width:100%;padding:5.5rem 4rem 2.5rem;display:flex;flex-direction:column;gap:1.5rem}.final-title{text-align:center;font-size:4.4rem;margin:0}.final-body{flex:1;display:grid;grid-template-columns:1.3fr 1fr;gap:3rem;min-height:0}.podium{display:flex;align-items:flex-end;justify-content:center;gap:1.2rem;height:100%}.podium-col{flex:1;max-width:15rem;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center}.podium-avatar{display:flex;flex-direction:column;align-items:center;gap:.4rem;margin-bottom:.9rem;position:relative}.podium-crown{font-size:3.2rem;animation:beat .9s ease-in-out infinite alternate}.podium-name{font-weight:800;font-size:1.5rem}.podium-score{font-weight:800;color:var(--amber);font-size:1.4rem}.podium-block{width:100%;border-radius:1rem 1rem 0 0;background:linear-gradient(180deg,#fff3,#ffffff0a);border-top:6px solid;display:grid;place-items:start center;padding-top:1rem;font-size:4rem;font-weight:900;overflow:hidden}.final-side{display:flex;flex-direction:column;gap:1rem;justify-content:center}.awards{display:flex;flex-direction:column;gap:.8rem}.award{display:flex;gap:1rem;align-items:center;padding:.8rem 1.2rem}.award-emoji{font-size:2.6rem}.award-title{font-weight:800;font-size:1.3rem}.award-who{font-size:1.1rem}.rest-list{display:flex;flex-wrap:wrap;gap:.5rem 1.4rem;color:var(--muted);font-size:1.15rem}.rest-row b{color:var(--text)}.final-hint{color:var(--muted);font-size:1.1rem}.moderator{position:absolute;left:50%;bottom:2rem;translate:-50% 0;z-index:20;display:flex;align-items:flex-end;gap:1rem;max-width:64rem;pointer-events:none}.mo-face{position:relative;width:6.5rem;height:6.5rem;flex:none;border-radius:46% 54% 50% 50%/55% 50% 50% 45%;background:radial-gradient(circle at 35% 30%,#ff8fbf,var(--pink) 45%,var(--violet));box-shadow:0 0 50px #ff3d8199,inset 0 -10px 20px #00000040;animation:wobble 3s ease-in-out infinite}@keyframes wobble{50%{border-radius:54% 46% 48% 52%/50% 55% 45% 50%;transform:rotate(-3deg)}}.mo-eyes{position:absolute;top:32%;left:0;right:0;display:flex;justify-content:center;gap:1.1rem}.mo-eyes span{width:.85rem;height:1.1rem;background:#1a0b12;border-radius:50%;animation:blink 4s infinite}@keyframes blink{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.1)}}.mo-mouth{position:absolute;left:50%;top:58%;width:2.2rem;height:1.3rem;margin-left:-1.1rem;background:#1a0b12;border-radius:0 0 1.2rem 1.2rem;transform-origin:top center;transform:scaleY(.2)}.mo-mic{position:absolute;right:-.8rem;bottom:-.4rem;font-size:2.2rem;transform:rotate(-20deg)}.mo-bubble{background:#10091ce0;border:1px solid var(--border);border-radius:1.4rem 1.4rem 1.4rem .3rem;padding:.9rem 1.4rem;box-shadow:0 20px 60px -10px #000000b3}.mo-name{font-family:var(--display);font-size:.85rem;font-weight:800;color:var(--pink);letter-spacing:.15em}.mo-text{font-size:1.55rem;font-weight:600;line-height:1.3}.mo-extra{margin-top:.3rem;color:var(--amber);font-weight:700;font-size:1.25rem}.unlock{position:absolute;z-index:50;right:2rem;bottom:2rem;display:flex;gap:1rem;align-items:center;padding:1rem 1.6rem 1rem 1rem;border-radius:999px;background:var(--grad);box-shadow:0 10px 50px -5px #ff3d81b3;text-align:left;animation:pulse 1.8s ease-in-out infinite;cursor:pointer}.unlock:focus-visible{outline:4px solid #fff;outline-offset:4px}.unlock-icon{width:3.4rem;height:3.4rem;border-radius:50%;background:#fff;color:var(--pink);display:grid;place-items:center;font-size:1.6rem}.unlock b{display:block;font-size:1.4rem}.unlock small{font-size:.95rem;opacity:.85}.offline-banner{position:absolute;top:1rem;left:50%;translate:-50% 0;z-index:60;background:var(--bad);padding:.5rem 1.2rem;border-radius:999px;font-weight:700}
