:root{--bg:#17130f;--surface:#241d17;--surface-2:#33291f;--line:#4a3c2d;--text:#f6ecdc;--muted:#b5a48e;--accent:#f2a33a;--accent-text:#24180a;--good:#7ccf8a;--bad:#ef7d6b;--warn:#ecc15f;--radius:10px;--space:16px;--font:"Segoe UI", system-ui, -apple-system, Roboto, sans-serif;--font-display:Georgia, "Times New Roman", serif;--ease-out:cubic-bezier(.33, 1, .68, 1);--ease-in-out:cubic-bezier(.37, 0, .63, 1);--motion-fast:.15s;--motion-base:.25s;--card-w:112px;--card-h:92px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);font:15px/1.45 var(--font);margin:0}h1,h2,h3{margin:0 0 8px;line-height:1.2}h2{font-size:16px}p{margin:0 0 8px}code{color:var(--accent)}.brand{font:italic 700 30px var(--font-display);color:var(--accent)}.muted{color:var(--muted)}.error{color:var(--bad)}.warn-text{color:var(--warn)}.stack{flex-direction:column;gap:10px;display:flex}.row{align-items:center;gap:8px;display:flex}.row input{flex:1}.field{color:var(--muted);flex-direction:column;gap:4px;font-size:13px;display:flex}input,select,button{font:inherit;color:var(--text);border-radius:var(--radius);border:1px solid var(--line);background:var(--surface-2);padding:8px 12px}button{cursor:pointer;transition:border-color var(--motion-fast) var(--ease-out), background-color var(--motion-fast) var(--ease-out), opacity var(--motion-fast) var(--ease-out)}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.5;cursor:not-allowed}:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text);font-weight:600}.tag{color:var(--muted);border:1px solid var(--line);border-radius:99px;padding:0 8px;font-size:12px}.tag.warn{color:var(--warn);border-color:var(--warn)}.entry{max-width:380px;margin:12vh auto 0;padding:0 16px}.lobby{flex-direction:column;gap:24px;max-width:860px;margin:0 auto;padding:24px 16px;display:flex}.columns{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;display:grid}section{background:var(--surface);border-radius:var(--radius);padding:var(--space)}.players{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.players li{overflow-wrap:anywhere;flex-wrap:wrap;align-items:center;gap:8px;display:flex}.report ul{color:var(--muted);max-height:200px;margin:8px 0;padding-left:18px;overflow:auto}.banner{background:var(--surface-2);border:1px solid var(--warn);color:var(--warn);border-radius:var(--radius);padding:8px 12px}.game{flex-direction:column;gap:16px;max-width:1400px;margin:0 auto;padding:16px;display:flex}.game-top{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.game-top p,.game-top h1{margin:0}.game-top .brand{font-size:22px}.timer{font:700 22px var(--font-display);color:var(--accent)}.good-text{color:var(--good)}.board{touch-action:none;position:relative;overflow:hidden}.board-row{align-items:center;gap:16px;display:flex}.board-row.stacked{flex-direction:column;align-items:flex-start}.board-row.stacked .timeline{flex:none;width:100%}.active-turn{flex-direction:column;gap:16px;display:flex}.timeline{min-height:calc(var(--card-h) + 12px);flex:1;align-items:stretch;gap:6px;padding:6px 2px;display:flex;overflow-x:auto}.card{width:var(--card-w);height:var(--card-h);border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--line);flex-direction:column;flex:none;padding:8px;display:flex;overflow:hidden}.card strong{font:700 20px var(--font-display);color:var(--accent)}.card-title{font-size:12px;line-height:1.2}.card-artist{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.card.hidden{background:var(--accent);color:var(--accent-text);font:700 36px var(--font-display);-webkit-user-select:none;user-select:none;border:none;justify-content:center;align-items:center}.card.draggable{cursor:grab;touch-action:none}.card.draggable:active{cursor:grabbing}.floating-card{border-radius:var(--radius);background:var(--accent);width:56px;height:56px;color:var(--accent-text);font:700 24px var(--font-display);pointer-events:none;opacity:.9;place-items:center;display:grid;position:absolute;transform:translate(-50%,-50%)}.floating-card.smoothed{transition:left var(--motion-fast) var(--ease-out), top var(--motion-fast) var(--ease-out)}.slot{border:1px dashed var(--line);width:22px;transition:background-color var(--motion-fast) var(--ease-out), border-color var(--motion-fast) var(--ease-out);background:0 0;border-radius:6px;flex:none;padding:0}.slot:hover,.slot.picked{background:var(--accent);border-color:var(--accent)}.result{text-align:center;flex-direction:column;align-items:center;gap:16px;display:flex}.result>*{animation:result-in var(--motion-base) var(--ease-out)}.result-winner{flex-direction:column;align-items:center;gap:8px;display:flex}.result-winner h2,.result-winner p{margin:0}.winner-badge{flex-direction:column;align-items:center;gap:8px;font-size:20px;display:flex}.winner-circle{background:var(--accent);width:96px;height:96px;color:var(--accent-text);font:700 44px var(--font-display);border-radius:50%;place-items:center;display:grid}.result-song{text-align:left;align-items:center;gap:16px;display:flex}.result-song img{border-radius:var(--radius);object-fit:cover}.result-extra{color:var(--muted);margin:0}.result-extra strong{color:var(--accent)}.result-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.result-list li{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;display:flex}.reveal-year{font:700 48px var(--font-display);color:var(--accent);display:block}.reveal-title{margin:0;font-size:18px}.tokens{color:var(--accent)}.players li.current{font-weight:600}.game-top .tag{margin-left:8px}.audio:empty{display:none}.end-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.winner{font:700 32px var(--font-display);color:var(--accent);margin:0}.game-top .leave{margin-left:auto}.game-top .time-bar{background:var(--surface-2);border-radius:3px;flex-basis:100%;order:1;height:6px;overflow:hidden}.time-bar-fill{background:var(--accent);height:100%;transition:width var(--motion-base) var(--ease-out)}.game-top.compact{justify-content:flex-end}.game-body{grid-template-columns:240px minmax(0,1fr);align-items:start;gap:16px;display:grid}.game-body:has(>.game-main:only-child){grid-template-columns:minmax(0,1fr)}.game-main{flex-direction:column;gap:16px;min-width:0;display:flex}.player-sidebar{background:var(--surface);border-radius:var(--radius);padding:var(--space);max-height:70vh;overflow-y:auto}.player-sidebar h2{margin-top:0}.prepare-countdown{text-align:center;font:700 28px var(--font-display);color:var(--muted);margin:0}.prepare-countdown strong{color:var(--accent);font-size:72px}.prepare-digit{animation:result-in var(--motion-base) var(--ease-out);display:inline-block}@keyframes result-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}@media (width<=720px){.game-body{grid-template-columns:minmax(0,1fr)}.player-sidebar{max-height:240px}}.dialog-backdrop{z-index:10;background:#0009;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.dialog{background:var(--surface-2);border-radius:var(--radius);gap:12px;max-width:360px;padding:20px;display:grid}.dialog h2,.dialog p{margin:0}.dialog-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}
