@import"https://fonts.googleapis.com/css2?family=Bungee&family=Outfit:wght@400;500;600;700;800;900&display=swap";:root{--bg0: #0b0c14;--panel: rgba(255, 255, 255, .045);--panel-strong: rgba(255, 255, 255, .07);--border: rgba(255, 255, 255, .1);--border-strong: rgba(255, 255, 255, .16);--text: #f4f5fa;--muted: #9ba1b8;--accent: #ff2d55;--accent2: #7b61ff;--gold: #ffb020;--ok: #34d399;--err: #f87171;--radius: 20px;--shadow: 0 24px 48px rgba(0, 0, 0, .45);--font-display: "Bungee", system-ui, sans-serif;--font-body: "Outfit", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}html{min-height:100%}body{margin:0;min-height:100%;background:var(--bg0);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;background-image:radial-gradient(900px 520px at -10% -10%,rgba(123,97,255,.18),transparent 60%),radial-gradient(900px 520px at 110% 0%,rgba(255,45,85,.16),transparent 60%),radial-gradient(1200px 700px at 50% 120%,rgba(255,45,85,.08),transparent 55%);background-attachment:fixed}::selection{background:#ff2d5573}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#ffffff29;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#ffffff42}::-webkit-scrollbar-track{background:transparent}.app{max-width:1180px;margin:0 auto;padding:18px 22px 64px}.app-header{display:flex;flex-direction:column;align-items:center;gap:2px;margin:6px 0 28px;text-align:center}.logo{margin:0;font-family:var(--font-display);font-size:clamp(2rem,5vw,2.9rem);letter-spacing:2px;background:linear-gradient(120deg,#ff6b8b 0%,var(--accent) 35%,var(--accent2) 100%);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 0 60px rgba(255,45,85,.25)}.logo .app-sub{font-family:var(--font-body);font-size:.42em;font-weight:800;letter-spacing:1px;color:var(--gold);-webkit-text-fill-color:var(--gold);vertical-align:super;margin-left:6px}.logo-tag{margin:6px 0 0;color:var(--muted);font-size:.95rem;letter-spacing:3px;text-transform:uppercase}.toast{position:fixed;top:16px;left:50%;transform:translate(-50%);background:#f8717129;border:1px solid rgba(248,113,113,.55);color:#ffd6d6;padding:12px 22px;border-radius:14px;z-index:100;max-width:90vw;box-shadow:0 12px 40px #00000080;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);font-weight:600}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:20px;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:var(--shadow)}.card{background:linear-gradient(160deg,#ffffff17,#ffffff08);border:1px solid var(--border);border-radius:var(--radius);padding:14px}.card.panel{padding:20px}h2,h3,h4{margin:4px 0 10px;line-height:1.2}h2{font-size:1.35rem}h3{font-size:1.05rem}p{margin:6px 0}.hint{color:var(--muted);font-size:.9rem}.hint.small{font-size:.78rem}.ok{color:var(--ok);font-weight:600}.err{color:var(--err)}.skip-details{margin-top:8px;font-size:.85rem}.skip-details summary{cursor:pointer;color:var(--muted);font-weight:600}.skip-list{margin:8px 0 0;padding-left:18px;max-height:150px;overflow-y:auto;color:var(--muted);line-height:1.5}.vote-panel,.vote-status{margin-top:10px}.vote-panel .claim{font-weight:800;color:var(--accent2)}.vote-counts{margin-top:8px;line-height:1.6}.ok-btn{color:var(--ok);border-color:var(--ok)}.err-btn{color:var(--err);border-color:var(--err)}.center{text-align:center}.section-title{display:flex;align-items:center;gap:8px;font-weight:800;letter-spacing:.5px}.badge{background:var(--panel-strong);border:1px solid var(--border);color:var(--muted);font-size:.72rem;font-weight:700;padding:3px 10px;border-radius:999px}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-block;border:1px solid var(--border-strong);background:var(--panel-strong);color:var(--text);border-radius:12px;padding:11px 18px;font-family:var(--font-body);font-size:1rem;font-weight:600;cursor:pointer;transition:transform .08s ease,box-shadow .18s ease,filter .18s ease,border-color .18s ease}.btn:hover{filter:brightness(1.12);border-color:#ffffff47}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn.primary{background:linear-gradient(135deg,var(--accent),#ff4d79 45%,var(--accent2));border:none;font-weight:700;box-shadow:0 10px 30px #ff2d5559}.btn.primary:hover{box-shadow:0 14px 38px #ff2d5580;transform:translateY(-1px)}.btn.big{padding:15px 26px;font-size:1.08rem;border-radius:14px}.btn.ghost{background:transparent;border-color:transparent;color:var(--muted)}.btn.ghost:hover{color:var(--text);filter:none}.btn.small{padding:7px 12px;font-size:.85rem;border-radius:10px}.btn.block{width:100%}.btn.hitster{background:linear-gradient(135deg,var(--accent),#ff2d55);border:none;font-family:var(--font-display);font-weight:400;font-size:1.5rem;padding:20px 48px;letter-spacing:3px;border-radius:18px;animation:pulse 1.2s infinite;box-shadow:0 12px 40px #ff2d558c}@keyframes pulse{0%,to{box-shadow:0 0 #ff2d5573}50%{box-shadow:0 0 0 18px #ff2d5500}}input,select{width:100%;background:#00000052;border:1px solid var(--border);color:var(--text);border-radius:12px;padding:13px 14px;font-family:var(--font-body);font-size:1rem;transition:border-color .15s ease,box-shadow .15s ease}input::placeholder{color:var(--muted);opacity:.7}input:focus,select:focus{outline:none;border-color:var(--accent2);box-shadow:0 0 0 3px #7b61ff40}select option{color:var(--text);background:#18122e}label{display:block;margin:12px 0;font-weight:700;font-size:.95rem}label input,label select{margin-top:7px;font-weight:400}label.checkbox{display:flex;align-items:center;gap:12px;font-weight:600}label.checkbox input{width:20px;height:20px;margin:0;accent-color:var(--accent);transform:scale(1.15)}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:12px 0}.row.center{justify-content:center}.divider{display:flex;align-items:center;gap:14px;color:var(--muted);margin:16px 0;font-size:.85rem}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--border)}.home{max-width:560px;margin:0 auto;display:flex;flex-direction:column;gap:16px}.hero{text-align:center;padding:34px 26px}.hero h2{font-family:var(--font-display);font-size:clamp(1.4rem,4vw,1.9rem);font-weight:400;line-height:1.25;margin:0 0 10px;letter-spacing:1px}.hero .tagline{color:var(--muted);margin:0;line-height:1.55}.entry{padding:24px}.entry .btn{margin-top:4px}.spotify-connect{margin-bottom:16px}.rules{padding:16px 20px}.rules summary{cursor:pointer;font-weight:800;letter-spacing:.5px}.rules ul{margin:10px 0 4px;padding-left:20px;color:var(--muted);font-size:.9rem;line-height:1.6}.lobby{display:flex;flex-direction:column;gap:16px}.lobby-grid{display:grid;grid-template-columns:1fr;gap:16px;align-items:start}.lobby-left,.lobby-right{display:flex;flex-direction:column;gap:16px}.invite{text-align:center}.invite .code-box{margin:14px auto 18px}.code-box{font-family:var(--font-display);font-size:2.5rem;letter-spacing:8px;color:var(--gold);background:#ffb02014;border:2px dashed rgba(255,176,32,.45);border-radius:16px;padding:18px 10px;width:fit-content;margin:0 auto;text-align:center;min-width:260px}.player-list{list-style:none;margin:6px 0 0;padding:0}.player-list li{display:flex;align-items:center;gap:12px;padding:10px 4px;border-bottom:1px solid var(--border)}.player-list li:last-child{border-bottom:none}.avatar{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;font-weight:800;font-size:1.05rem;flex:0 0 auto;background:linear-gradient(135deg,#ff2d558c,#7b61ff8c);color:#fff;border:1px solid var(--border-strong)}.avatar.sm{width:30px;height:30px;font-size:.85rem;border-radius:9px;display:inline-grid;margin-right:8px;vertical-align:middle}.player-name{font-weight:600}.host-tag,.you-tag,.off-tag{font-size:.72rem;font-weight:700;border-radius:7px;padding:3px 9px;background:var(--panel-strong);color:var(--muted);letter-spacing:.4px}.host-tag{background:linear-gradient(135deg,var(--accent2),#a18cff);color:#fff}.you-tag{background:linear-gradient(135deg,var(--ok),#5eead4);color:#06281c}.off-tag{background:transparent;border:1px solid var(--err);color:var(--err)}.disconnected{opacity:.5}.start{width:100%;margin-top:auto}.lobby-footer{display:flex;justify-content:center}.game{display:flex;flex-direction:column;gap:16px}.game-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}.game-header .chips{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.room-code{font-family:var(--font-display);font-size:1.05rem;letter-spacing:2px;color:var(--gold);background:#ffb0201a;border:1px solid rgba(255,176,32,.4);border-radius:10px;padding:7px 12px}.phase-tag{background:var(--panel-strong);border:1px solid var(--border);border-radius:10px;padding:7px 12px;font-size:.85rem;font-weight:700;letter-spacing:.5px}.countdown{color:var(--gold);font-weight:800;font-variant-numeric:tabular-nums;font-size:.95rem}.header-right{display:flex;align-items:center;gap:12px}.token-badge{background:linear-gradient(135deg,#ffb0202e,#ff2d552e);border:1px solid rgba(255,176,32,.4);border-radius:999px;padding:8px 16px;font-weight:800;color:var(--gold)}.turn-area{text-align:center;padding:26px}.turn-info{font-size:1.15rem;font-weight:700;margin:0 0 6px}.song-area,.call-area,.place-area{padding:12px 0}.active-actions{margin-top:14px;display:flex;flex-direction:column;align-items:center;gap:10px}.guess-form{width:100%;max-width:640px;text-align:left;padding:18px}.guess-form h4{margin-top:0}.confirm-bar{display:flex;gap:10px;align-items:center;justify-content:center;flex-wrap:wrap;background:var(--panel-strong);border:1px solid rgba(123,97,255,.5);border-radius:12px;padding:10px 16px;font-weight:600}.audio-player{display:flex;flex-direction:column;align-items:center;gap:8px}.audio-player .btn.big{font-size:1.15rem}.spotify-embed-hidden{position:absolute;left:-9999px;top:-9999px;width:300px;height:80px;overflow:hidden;pointer-events:none;z-index:-1}.spotify-embed-visible{position:relative;width:100%;max-width:320px;height:80px;margin:0 auto}.spotify-embed-visible iframe{border-radius:12px}.spotify-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:flex;align-items:center;gap:12px;padding-left:16px;border-radius:12px;background:#121212eb;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);pointer-events:none}.spotify-overlay-play{flex:0 0 auto;width:40px;height:40px;border-radius:50%;background:#1db954;color:#fff;display:flex;align-items:center;justify-content:center;font-size:18px;padding-left:3px}.spotify-overlay-hint{color:#fff;font-size:.9rem;font-weight:600}.others{display:grid;grid-template-columns:1fr;gap:16px}.timeline{display:flex;align-items:center;gap:10px;overflow-x:auto;padding:10px 6px 14px;scroll-snap-type:x proximity}.timeline::-webkit-scrollbar{height:8px}.slot{flex:0 0 auto;width:46px;height:38px;border-radius:10px;border:2px dashed var(--border-strong);background:#00000040;color:var(--muted);font-weight:700;font-size:.9rem;display:flex;align-items:center;justify-content:center;transition:all .15s ease;scroll-snap-align:center}.slot.clickable{border-color:var(--accent2);color:var(--text);cursor:pointer}.slot.clickable:hover{background:var(--accent2);border-style:solid;box-shadow:0 0 20px #7b61ff80}.slot.has-bet{border-style:solid;border-color:var(--accent);background:#ff2d552e;color:#ffb3c2}.slot.pending{border-style:solid;border-color:var(--ok);background:#34d3992e;color:var(--ok)}.timeline .card{flex:0 0 auto;min-width:150px;max-width:150px;border-radius:16px;background:linear-gradient(165deg,#ffffff1a,#ffffff05);border:1px solid var(--border-strong);box-shadow:0 10px 22px #00000059;padding:10px;display:flex;flex-direction:column;min-height:150px;scroll-snap-align:start}.timeline .card-year{font-weight:900;font-size:1.35rem;color:var(--accent);line-height:1}.timeline .card-img{width:100%;height:76px;object-fit:cover;border-radius:10px;margin:8px 0;box-shadow:inset 0 0 0 1px #ffffff1a}.timeline .card-meta{font-size:.78rem;line-height:1.3;display:flex;flex-direction:column;gap:2px}.timeline .card-meta strong{display:block}.timeline .card-meta span{display:block;color:var(--muted)}.mini-tokens,.mini-count{color:var(--muted);font-size:.8rem;margin-left:10px;font-weight:600}.other-panel h3{display:flex;align-items:center;flex-wrap:wrap;margin-bottom:6px}.my-panel{border-color:#7b61ff59}.active-panel{border-color:#ff2d558c;background:linear-gradient(160deg,#ff2d5529,#ff2d550d 55%,#7b61ff1a);box-shadow:0 0 0 1px #ff2d5540,0 0 32px #ff2d5547,var(--shadow)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#06060cd9;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;z-index:50;padding:20px;overflow-y:auto}.reveal-card,.gameover{max-width:460px;width:100%;min-width:0;margin:auto;text-align:center;padding:30px;border-radius:24px;animation:pop .28s cubic-bezier(.2,1.4,.5,1)}@keyframes pop{0%{transform:scale(.85);opacity:0}to{transform:scale(1);opacity:1}}.reveal-card{border:1px solid rgba(255,45,85,.5);box-shadow:0 0 80px #ff2d5540,var(--shadow)}.reveal-card .card-img{width:160px;height:160px;object-fit:cover;border-radius:16px;margin:8px auto 14px;display:block;box-shadow:0 14px 40px #0009}.reveal-card h2{font-family:var(--font-display);font-size:1.6rem;font-weight:400;margin:10px 0 2px;letter-spacing:1px}.reveal-card .artist{color:var(--muted);margin:0}.reveal-card .year{font-family:var(--font-display);font-size:3rem;font-weight:400;color:var(--gold);margin:12px 0 4px;text-shadow:0 0 40px rgba(255,176,32,.4)}.reveal-card .result{font-weight:700;margin-top:10px;font-size:1.05rem}.reveal-card .vote-panel{margin-top:18px;padding-top:16px;border-top:1px solid var(--border);text-align:left}.reveal-card .vote-panel h4{margin:0 0 10px;line-height:1.5}.reveal-card .vote-panel .claim{font-weight:800;color:var(--accent2)}.gameover{border:1px solid rgba(255,176,32,.5);box-shadow:0 0 90px #ffb02033,var(--shadow)}.gameover h2{font-family:var(--font-display);font-weight:400;letter-spacing:2px;color:var(--gold);font-size:2rem}.gameover .winner{font-size:1.15rem;font-weight:700;margin:10px 0 24px;line-height:1.5}@media(max-width:479px){html,body{overflow-x:hidden}.overlay{padding:8px}.reveal-card,.gameover{max-width:calc(100vw - 40px);padding:14px 12px}.reveal-card h2{font-size:1.15rem}.reveal-card .card-img{width:96px;height:96px;margin:4px auto 8px}.reveal-card .year{font-size:1.6rem;margin:6px 0 2px}.reveal-card .result,.reveal-card .artist{font-size:.9rem}}@media(min-width:820px){.app{padding:26px 34px 72px}.timeline .card{min-width:165px;max-width:165px;min-height:170px}.timeline .card-img{height:90px}.lobby-grid{grid-template-columns:minmax(300px,400px) 1fr}}@media(min-width:1080px){.app{padding-left:48px;padding-right:48px}}
