.lobby{display:flex;flex-direction:column;align-items:center;min-height:100vh;min-height:100dvh}.lobby-flow{justify-content:flex-start}.lobby-content{display:flex;flex-direction:column;align-items:center;gap:14px;width:100%;max-width:480px;padding:20px 20px 32px;box-sizing:border-box}.lobby-section{width:100%;background:#ffffff0f;border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:10px;box-sizing:border-box}.lobby-section-title{margin:0 0 4px;font-size:.85rem;color:#ffffff80;letter-spacing:1px;text-transform:uppercase;font-weight:700}.lobby-join-input:focus{outline:none;border-color:var(--accent)}.lobby-join-btn{padding:10px 18px;white-space:nowrap}.lobby-code-label{font-size:.75rem;color:#fff6;letter-spacing:2px;text-transform:uppercase;text-align:center}.lobby-code{font-size:3rem;font-weight:900;letter-spacing:12px;color:var(--accent);text-align:center}.lobby-copy-btn{padding:8px 18px;border:1px solid rgba(255,255,255,.2);border-radius:8px;background:#ffffff12;color:#fff;font-size:.85rem;font-weight:600;cursor:pointer;transition:background .15s;align-self:center}.lobby-copy-btn:hover{background:#ffffff24}.lobby-waiting-msg{color:#fff6;font-size:.9rem;margin:0}.lobby-title{font-size:3rem;letter-spacing:4px}.lobby-subtitle{color:var(--text-dim);font-size:1.1rem;margin-top:-12px}.lobby-choices{display:flex;flex-direction:column;gap:12px;min-width:240px}.lobby-form{display:flex;flex-direction:column;gap:12px;min-width:280px}.code-input{text-align:center;font-size:1.8rem;letter-spacing:12px;font-weight:700}.btn-primary{background:var(--accent);color:#fff;font-weight:600;padding:12px 24px}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-secondary{background:var(--bg-panel);color:#fff;font-weight:600;padding:12px 24px}.btn-ghost{background:transparent;color:var(--text-dim);padding:8px 16px}.btn-ghost:hover{color:var(--text)}.waiting-card{background:var(--bg-card);border-radius:16px;padding:40px;text-align:center;display:flex;flex-direction:column;gap:20px}.room-code-display{display:flex;flex-direction:column;gap:8px}.room-code-display .label{font-size:.85rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:2px}.room-code-display .code{font-size:3.5rem;font-weight:800;letter-spacing:16px;color:var(--accent)}.share-link{display:flex;flex-direction:column;gap:6px;padding-top:4px;border-top:1px solid rgba(255,255,255,.08)}.share-label{font-size:.8rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:1.5px}.share-url{color:var(--accent);font-size:.95rem;font-weight:600;text-decoration:none;word-break:break-all}.share-url:hover{text-decoration:underline}.hint{color:var(--text-dim);font-size:.9rem}.error-message{background:#e9456033;border:1px solid var(--accent);border-radius:8px;padding:12px 20px;color:var(--accent);cursor:pointer;font-size:.9rem}.mode-selector{display:flex;flex-direction:column;gap:8px}.mode-label{font-size:.8rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:1px;text-align:center}.mode-buttons{display:flex;gap:8px}.mode-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 8px;border-radius:10px;background:var(--bg-card);color:var(--text-dim);border:2px solid transparent;font-size:.95rem;font-weight:600;transition:all .2s}.mode-btn.active{border-color:var(--accent);color:var(--text);background:#e945601a}.mode-desc{font-size:.7rem;font-weight:400;opacity:.7}.game-board{display:flex;flex-direction:column;height:100dvh;overflow:hidden;width:100%;max-width:900px;margin:0 auto;padding:10px;gap:8px;box-sizing:border-box}.board-section{flex-shrink:0}.board-center{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;gap:8px;padding:6px 0}.center-info{display:flex;align-items:center;gap:24px}.player-hand{display:flex;flex-direction:column;align-items:center;gap:8px}.hand-label{font-size:.8rem;font-weight:600;color:var(--text-dim);display:flex;align-items:center;gap:8px;padding:3px 10px;border-radius:20px;transition:all .3s}.hand-label.active-turn{color:var(--accent);background:#e9456026}.turn-indicator{font-size:.75rem;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.hand-cards{display:flex;gap:4px;flex-wrap:nowrap;justify-content:center;align-items:center}.free-hand-area{position:relative;border:2px dashed rgba(255,255,255,.1);border-radius:12px;background:#ffffff05}.free-card{cursor:grab;transition:filter .15s}.free-card:active{cursor:grabbing}.free-card.dragging{filter:brightness(1.2)}@keyframes clueFadeOut{0%{opacity:1}60%{opacity:.9}to{opacity:0}}.clue-fade{animation:clueFadeOut 5s ease-out forwards}@keyframes cardGlow{0%{box-shadow:0 0 0 3px #ffd700e6,0 0 24px 6px #ffd7008c}60%{box-shadow:0 0 0 2px #ffd70080,0 0 14px 3px #ffd70040}to{box-shadow:0 0 #ffd70000,0 0 #ffd70000}}.card-new-glow{animation:cardGlow 2.5s ease-out forwards}.mode-badge{position:fixed;top:12px;right:16px;background:var(--bg-card);padding:6px 14px;border-radius:20px;font-size:.75rem;color:var(--text-dim);z-index:10}.firework-piles{display:flex;gap:8px}.firework-pile{width:52px;height:72px;border:2px solid;border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:var(--bg-card);position:relative;overflow:hidden}.firework-pile.complete{box-shadow:0 0 16px #e9456066}.pile-color-bar{position:absolute;top:0;left:0;right:0;height:4px}.pile-value{font-size:1.5rem;font-weight:800}.pile-label{font-size:.6rem;text-transform:uppercase;letter-spacing:1px;font-weight:600}.token-display{display:flex;flex-direction:column;gap:8px;align-items:center}.token-group{display:flex;flex-direction:column;align-items:center;gap:4px}.token-label{font-size:.7rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:1px}.token-row{display:flex;gap:4px}.token{width:13px;height:13px;border-radius:50%}.blue-token.active{background:var(--token-blue)}.blue-token.spent{background:#333}.fuse-token.active{background:var(--token-fuse)}.fuse-token.spent{background:#333}.deck-count{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:.85rem;color:var(--text-dim)}.deck-icon{font-size:2rem}.discard-pile{display:flex;flex-direction:column;align-items:center;gap:6px;max-width:100%}.discard-label{font-size:.75rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:1px}.discard-toggle{background:none;border:none;cursor:pointer;padding:4px 12px;border-radius:12px;transition:background .2s}.discard-toggle:hover{background:#ffffff14;color:var(--text);transform:none}.discard-empty{font-size:.8rem;color:var(--text-dim);opacity:.5}.discard-grid{display:flex;flex-direction:column;gap:4px;overflow:hidden;padding:8px 12px;background:var(--bg-card);border-radius:10px;min-width:160px}.discard-color-row{display:flex;align-items:center;gap:8px}.discard-color-dot{width:18px;height:18px;border-radius:50%;flex-shrink:0}.discard-numbers{display:flex;gap:5px}.discard-number{width:32px;height:32px;border-radius:5px;display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:700}.discard-summary{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.discard-summary-group{display:flex;align-items:center;gap:3px}.discard-color-dot-sm{width:12px;height:12px;border-radius:50%}.discard-summary-nums{font-size:.85rem;color:var(--text-dim);font-weight:600;letter-spacing:1px}.game-board-topbar{display:flex;align-items:center;flex-shrink:0;padding:2px 0}.game-leave-btn{font-size:.8rem;padding:4px 10px;opacity:.7}.game-leave-btn:hover{opacity:1}.action-panel{flex-shrink:0;min-height:52px;display:flex;align-items:center;justify-content:center;padding:4px 0}.action-buttons{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.action-btn{font-size:.88rem;padding:8px 14px}.waiting-turn{color:var(--text-dim);font-style:italic}.clue-selector{display:flex;flex-direction:column;align-items:center;gap:10px}.clue-hint-box{display:flex;flex-direction:column;align-items:center;gap:10px;background:#ffffff0f;border:1px solid rgba(255,255,255,.15);border-radius:12px;padding:14px 20px}.clue-hint-title{margin:0;font-size:.85rem;color:var(--text-dim);letter-spacing:.5px;text-transform:uppercase}.clue-type-select,.clue-values{display:flex;flex-direction:column;align-items:center;gap:8px}.clue-options{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.clue-color-btn{padding:8px 16px;border-radius:8px;font-weight:600;text-transform:capitalize;font-size:.85rem}.clue-number-btn{width:44px;height:44px;border-radius:50%;background:var(--bg-panel);color:#fff;font-size:1.2rem;font-weight:700;display:flex;align-items:center;justify-content:center}.last-action{text-align:center;font-size:.85rem;color:var(--text-dim);background:#ffffff0d;padding:6px 16px;border-radius:20px}.loading{display:flex;align-items:center;justify-content:center;min-height:100vh;min-height:100dvh;color:var(--text-dim);font-size:1.2rem}.game-over{display:flex;align-items:center;justify-content:center;min-height:100vh;min-height:100dvh;padding:40px 20px}.game-over-card{background:var(--bg-card);border-radius:20px;padding:48px 40px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:16px;max-width:420px;width:100%}.game-over-title{font-size:2.2rem;letter-spacing:2px}.end-reason{color:var(--text-dim);font-size:1.05rem}.score-display{display:flex;align-items:baseline;gap:4px;margin:12px 0}.score-number{font-size:4rem;font-weight:900;color:var(--accent)}.score-max{font-size:1.5rem;color:var(--text-dim)}.score-label{font-size:1.3rem;font-weight:600}.game-over-players{display:flex;gap:12px;margin:8px 0}.player-tag{background:var(--bg-panel);padding:6px 16px;border-radius:20px;font-size:.85rem}.history-page{display:flex;flex-direction:column;align-items:center;gap:24px;padding:40px 20px;min-height:100vh;min-height:100dvh}.history-page h1{font-size:2rem;letter-spacing:2px}.history-loading,.history-empty{color:var(--text-dim);font-size:1.1rem}.history-table-wrap{width:100%;max-width:700px;overflow-x:auto}.history-table{width:100%;border-collapse:collapse}.history-table th,.history-table td{padding:10px 14px;text-align:left;border-bottom:1px solid rgba(255,255,255,.08)}.history-table th{font-size:.75rem;text-transform:uppercase;letter-spacing:1px;color:var(--text-dim)}.score-cell{font-weight:700;color:var(--accent)}.result-cell{font-size:.85rem}:root{--bandida-accent: #f0a500;--bandida-accent-dim: rgba(240, 165, 0, .2);--tunnel-color: #8b7355;--tunnel-bg: #3d2b1f}.bandida-lobby{display:flex;flex-direction:column;align-items:center;min-height:100vh;min-height:100dvh}.bandida-lobby-flow{justify-content:flex-start}.bandida-lobby-content{display:flex;flex-direction:column;align-items:center;gap:14px;width:100%;max-width:480px;padding:20px 20px 32px;box-sizing:border-box}.bandida-lobby-section{width:100%;background:#ffffff0f;border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:10px;box-sizing:border-box}.bandida-section-title{margin:0 0 4px;font-size:.85rem;color:#ffffff80;letter-spacing:1px;text-transform:uppercase;font-weight:700}.bandida-code-label{font-size:.75rem;color:#fff6;letter-spacing:2px;text-transform:uppercase;text-align:center}.bandida-room-code{font-size:3rem;font-weight:900;letter-spacing:12px;color:var(--bandida-accent);text-align:center}.bandida-copy-btn{padding:8px 18px;border:1px solid rgba(255,255,255,.2);border-radius:8px;background:#ffffff12;color:#fff;font-size:.85rem;font-weight:600;cursor:pointer;transition:background .15s;align-self:center}.bandida-copy-btn:hover{background:#ffffff24}.bandida-waiting-msg{color:#fff6;font-size:.9rem;margin:0}.lobby-divider{color:#ffffff40;font-size:.85rem}.lobby-join-row{display:flex;gap:8px}.lobby-join-input{flex:1;padding:10px 14px;border-radius:8px;border:2px solid #444;background:#1a1a2e;color:#fff;font-size:1.1rem;font-weight:700;letter-spacing:6px;text-align:center;box-sizing:border-box}.lobby-join-input:focus{outline:none;border-color:var(--bandida-accent)}.bandida-title{font-size:3rem;letter-spacing:4px}.bandida-desc{color:var(--text-dim);font-size:.95rem;text-align:center;max-width:320px;line-height:1.5}.bandida-code,.bandida-url{color:var(--bandida-accent)!important}.btn-bandida-primary{background:var(--bandida-accent);color:#1a1a2e;font-weight:700;padding:12px 24px}.btn-bandida-secondary{background:var(--bg-panel);color:#fff;font-weight:600;padding:12px 24px}.bandida-board-wrapper{display:flex;flex-direction:column;align-items:center;width:100%;height:100vh;height:100dvh;padding:12px;gap:12px;overflow:hidden;box-sizing:border-box}.bandida-header{display:flex;align-items:center;gap:12px;font-size:.9rem;color:var(--text-dim);flex-wrap:wrap;justify-content:center;width:100%}.bandida-leave-btn{font-size:.8rem;padding:4px 10px;opacity:.7;margin-right:auto}.bandida-leave-btn:hover{opacity:1}.bandida-header .turn-indicator{color:var(--bandida-accent);font-weight:700}.bandida-header .deck-count{background:var(--bg-card);padding:4px 10px;border-radius:6px}.free-board-viewport{flex:1;width:100%;min-height:0;overflow:hidden;border:2px solid rgba(255,255,255,.08);border-radius:12px;position:relative;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;background:radial-gradient(ellipse at 50% 50%,#1a1a2e,#0d0d1a)}.free-board-viewport.is-placing{cursor:crosshair}.free-board-viewport.is-removing{cursor:default}.free-board-canvas{position:absolute;top:0;left:0;transform-origin:0 0;will-change:transform}.placed-card{position:absolute;pointer-events:none}.placed-card.last-placed>*{filter:drop-shadow(0 0 5px var(--bandida-accent))}.placed-card.removable{pointer-events:auto;cursor:pointer}.placed-card.removable:hover>*{filter:drop-shadow(0 0 6px #e05555) brightness(1.25)}.ghost-card{position:absolute;opacity:.55;pointer-events:none}.ghost-card.staged{opacity:.85;outline:3px solid #f1c40f;outline-offset:2px;border-radius:4px}.staged-placement-overlay{position:absolute;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:center;gap:12px;padding:12px 16px;background:#0a0602eb;border-top:1px solid rgba(255,255,255,.15);z-index:30}.staged-placement-label{font-size:.9rem;color:#f1c40f;font-weight:600}.staged-confirm-btn,.staged-cancel-btn{padding:8px 20px;border-radius:8px;border:none;font-size:1rem;font-weight:700;cursor:pointer}.staged-confirm-btn{background:#27ae60;color:#fff}.staged-cancel-btn{background:#c0392b;color:#fff}.board-center-btn{position:absolute;bottom:12px;right:12px;width:38px;height:38px;background:#140c04d9;border:1px solid rgba(255,255,255,.2);border-radius:8px;color:var(--bandida-accent);cursor:pointer;font-size:1.35rem;display:flex;align-items:center;justify-content:center;z-index:10;transition:background .15s;line-height:1}.board-center-btn:hover{background:var(--bandida-accent-dim)}.board-action-btn{position:absolute;bottom:58px;right:12px;width:38px;height:38px;background:#140c04d9;border:1px solid rgba(255,255,255,.2);border-radius:8px;color:var(--text-dim);cursor:pointer;font-size:1.1rem;display:flex;align-items:center;justify-content:center;z-index:10;transition:background .15s,border-color .15s,color .15s;line-height:1}.board-action-btn:hover{background:var(--bandida-accent-dim);color:var(--bandida-accent)}.board-action-btn.active{background:#c8323240;border-color:#e05555;color:#e05555}.domino-svg{display:block}.domino-svg .tunnel-path{stroke:var(--tunnel-color);stroke-width:14;stroke-linecap:round;fill:none}.domino-svg .tunnel-path.super{stroke:var(--bandida-accent);stroke-width:14}.domino-svg .exit-dot{fill:var(--bandida-accent)}.players-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;flex-shrink:0}.opponent-indicator{display:flex;align-items:center;gap:10px;padding:4px 14px;border-radius:20px;background:var(--bg-card);border:2px solid transparent;font-size:.8rem;color:var(--text-dim);transition:border-color .2s,box-shadow .2s;flex-shrink:0}.opponent-indicator.active-turn{border-color:var(--bandida-accent);box-shadow:0 0 10px var(--bandida-accent-dim);color:var(--bandida-accent)}.opponent-cards{font-size:.75rem;opacity:.7}.player-hand-section{display:flex;flex-direction:column;align-items:center;gap:6px;padding:6px 12px 8px;border-radius:12px;border:2px solid transparent;background:var(--bg-card);transition:border-color .2s,box-shadow .2s;flex-shrink:0;width:auto}.player-hand-section.active-turn{border-color:var(--bandida-accent);box-shadow:0 0 16px var(--bandida-accent-dim)}.player-hand-header{display:flex;align-items:center;gap:8px}.player-hand-name{color:var(--text-dim);font-size:.8rem;font-weight:600}.player-hand-section.active-turn .player-hand-name{color:var(--bandida-accent)}.reshuffle-btn{background:none;border:1px solid rgba(255,255,255,.15);border-radius:20px;color:var(--text-dim);cursor:pointer;font-size:.8rem;padding:4px 14px;transition:background .15s,color .15s;line-height:1.2;flex-shrink:0}.reshuffle-btn:hover{background:var(--bandida-accent-dim);color:var(--bandida-accent)}.reshuffle-confirm-row{display:flex;align-items:center;gap:6px;padding:4px 10px;border-radius:20px;background:var(--bg-card);border:1px solid var(--bandida-accent)}.reshuffle-confirm-label{font-size:.8rem;color:var(--bandida-accent)}.reshuffle-confirm-yes{background:#c8323233;border:1px solid #e05555;border-radius:4px;color:#e05555;cursor:pointer;font-size:.75rem;padding:2px 8px;transition:background .15s}.reshuffle-confirm-yes:hover{background:#c8323266}.reshuffle-confirm-no{background:none;border:1px solid rgba(255,255,255,.2);border-radius:4px;color:var(--text-dim);cursor:pointer;font-size:.75rem;padding:2px 8px;transition:background .15s}.reshuffle-confirm-no:hover{background:#ffffff14}.valid-count{color:var(--bandida-accent);font-size:.8rem;font-weight:600}.hand-cards{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}.hand-card-wrapper{display:flex;flex-direction:column;align-items:center;gap:4px;padding:4px;border:2px solid transparent;border-radius:10px;transition:all .15s}.hand-card-wrapper.selected{border-color:var(--bandida-accent);box-shadow:0 0 12px var(--bandida-accent-dim)}.hand-card-wrapper.locked{opacity:.35;cursor:not-allowed;pointer-events:none}.hand-card{cursor:pointer;transition:transform .15s;line-height:0;width:96px;height:96px;display:flex;align-items:center;justify-content:center}.hand-card:hover{transform:translateY(-2px)}.card-rotate-btn{background:none;border:1px solid rgba(255,255,255,.15);border-radius:4px;color:var(--bandida-accent);cursor:pointer;font-size:.7rem;padding:2px 10px;transition:background .15s;line-height:1.2}.card-rotate-btn:hover{background:var(--bandida-accent-dim)}.card-rotate-btn:disabled{opacity:.3;cursor:default}.preview-tile{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;opacity:.5;pointer-events:none}.bandida-game-over{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;min-height:100dvh;gap:20px;padding:40px 20px;text-align:center}.bandida-game-over .result{font-size:2rem;font-weight:800}.bandida-game-over .result.win{color:#2ecc71}.bandida-game-over .result.lose{color:var(--accent)}.bandida-game-over .detail{color:var(--text-dim);font-size:1.05rem}.open-exits-badge{background:var(--accent);color:#fff;padding:4px 10px;border-radius:6px;font-weight:600;font-size:.85rem}.open-exits-badge.zero{background:#2ecc71}.bandida-error{background:#e9456033;border:1px solid var(--accent);border-radius:8px;padding:8px 16px;color:var(--accent);cursor:pointer;font-size:.85rem;text-align:center}@media(max-width:480px){.bandida-board-wrapper{padding:8px 4px}.grid-inner{padding:20px}.bandida-header{gap:8px;font-size:.8rem}}.uno-lobby,.uno-board,.uno-game-over{font-family:Segoe UI,sans-serif;color:#fff;min-height:100dvh;display:flex;flex-direction:column;align-items:center}.uno-lobby{width:100%;justify-content:flex-start}.uno-lobby-content{display:flex;flex-direction:column;align-items:center;gap:12px;width:100%;max-width:480px;padding:20px 20px 32px;box-sizing:border-box}.uno-title{font-size:3rem;font-weight:900;letter-spacing:6px;background:linear-gradient(135deg,#e74c3c,#f1c40f,#27ae60,#2980b9);-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin:10px 0}.uno-name-row{width:100%}.uno-input{width:100%;padding:10px 14px;border-radius:8px;border:2px solid #444;background:#1a1a2e;color:#fff;font-size:1rem;box-sizing:border-box}.uno-section{width:100%;background:#ffffff0f;border-radius:12px;padding:16px}.uno-section h3{margin:0 0 10px;font-size:1.1rem}.uno-variant-picker{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.uno-variant-btn{display:flex;flex-direction:column;align-items:flex-start;padding:10px 14px;border-radius:8px;border:2px solid #444;background:#1a1a2e;color:#ccc;cursor:pointer;transition:all .15s}.uno-variant-btn.active{border-color:#f1c40f;background:#2a2a3e;color:#fff}.uno-variant-btn strong{font-size:1rem}.uno-variant-btn small{font-size:.8rem;opacity:.7}.uno-create-btn,.uno-start-btn,.uno-join-btn,.uno-lobby-btn{padding:10px 24px;border-radius:8px;border:none;font-size:1rem;font-weight:700;cursor:pointer;transition:transform .1s}.uno-create-btn:active,.uno-start-btn:active,.uno-join-btn:active,.uno-lobby-btn:active{transform:scale(.96)}.uno-create-btn,.uno-start-btn{background:linear-gradient(135deg,#e74c3c,#c0392b);color:#fff;width:100%}.uno-join-btn{background:#2980b9;color:#fff;flex-shrink:0}.uno-lobby-btn{background:#444;color:#fff;margin-top:16px}.uno-divider{color:#666;font-size:.9rem;margin:4px 0}.uno-join-row{display:flex;gap:8px}.uno-join-row .uno-input{flex:1}.uno-room-info{display:flex;align-items:center;gap:10px}.uno-room-code{font-size:1.5rem;letter-spacing:3px}.uno-copy-btn{padding:6px 12px;border-radius:6px;border:1px solid #666;background:transparent;color:#aaa;cursor:pointer;font-size:.85rem}.uno-variant-badge{display:inline-block;padding:4px 12px;border-radius:20px;background:#333;font-size:.85rem;font-weight:600;letter-spacing:1px}.uno-variant-badge.waiting{margin-bottom:8px}.uno-player-list{width:100%;max-width:320px;display:flex;flex-direction:column;gap:6px}.uno-player-item{padding:8px 12px;background:#ffffff14;border-radius:8px;display:flex;align-items:center;gap:8px}.host-badge{font-size:.7rem;background:#f1c40f;color:#000;padding:2px 6px;border-radius:4px;font-weight:700}.uno-player-count{color:#888;font-size:.9rem}.uno-hint{color:#888;font-size:.85rem}.uno-error{color:#e74c3c;margin-top:8px}.uno-challenge-banner{width:100%;background:linear-gradient(135deg,#c0392b,#8e2318);border-radius:10px;padding:10px 16px;display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;animation:fadeInDown .3s ease both}.uno-challenge-title{font-size:1rem;font-weight:800;letter-spacing:.5px}.uno-challenge-prompt{font-size:.85rem;color:#ffffffd9}.uno-pass-challenge-btn{padding:8px 24px;border-radius:20px;border:2px solid rgba(255,255,255,.4);background:transparent;color:#fff;font-size:.9rem;cursor:pointer;transition:background .15s,border-color .15s}.uno-pass-challenge-btn:hover{background:#ffffff1a;border-color:#ffffffb3}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.uno-board{padding:8px;gap:6px;width:100%;box-sizing:border-box;overflow:hidden}.uno-top-bar{display:flex;align-items:center;gap:10px;width:100%;padding:4px 8px}.uno-leave-btn{background:transparent;border:1px solid rgba(255,255,255,.2);color:#fff9;border-radius:6px;padding:4px 10px;font-size:.8rem;cursor:pointer}.uno-leave-btn:hover{color:#fff;border-color:#ffffff80}.uno-direction{font-size:1.4rem;margin-left:auto}.uno-opponents{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;width:100%;padding:4px 0}.uno-opponent{display:flex;align-items:center;gap:6px;padding:6px 12px;background:#ffffff14;border-radius:20px;font-size:.85rem;transition:all .2s}.uno-opponent.current{background:#f1c40f40;border:1px solid #f1c40f}.uno-opp-name{font-weight:600}.uno-opp-count{opacity:.7}.uno-catch-btn{padding:2px 8px;border-radius:4px;border:none;background:#e74c3c;color:#fff;font-size:.75rem;font-weight:700;cursor:pointer;animation:pulse .6s infinite alternate}.uno-play-area{display:flex;align-items:center;justify-content:center;gap:30px;padding:16px 0}.uno-draw-pile{cursor:pointer;transition:transform .15s}.uno-draw-pile:hover{transform:scale(1.05)}.uno-deck-back{width:72px;height:104px;border-radius:8px;background:linear-gradient(135deg,#1a1a2e,#2c3e50);border:3px solid #555;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}.uno-deck-label{font-weight:900;font-size:1rem;letter-spacing:2px;background:linear-gradient(135deg,#e74c3c,#f1c40f,#27ae60,#2980b9);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.uno-deck-count{font-size:.75rem;color:#888}.uno-discard-area{display:flex;flex-direction:column;align-items:center;gap:6px}.uno-current-color{width:36px;height:36px;border-radius:50%;border:3px solid #fff;box-shadow:0 0 10px #ffffff4d}.uno-turn-info{text-align:center;font-size:.9rem;color:#ccc;padding:4px}.uno-keep-btn{padding:4px 12px;border-radius:6px;border:1px solid #666;background:#333;color:#fff;cursor:pointer;font-size:.85rem}.uno-hand-area{width:100%;display:flex;flex-direction:column;align-items:center;gap:8px;padding-bottom:12px}.uno-hand{display:flex;gap:4px;overflow-x:auto;padding:8px 4px;max-width:100%;justify-content:center;flex-wrap:wrap}.uno-call-btn{padding:8px 28px;border-radius:50px;border:none;background:linear-gradient(135deg,#e74c3c,#c0392b);color:#fff;font-size:1.2rem;font-weight:900;letter-spacing:2px;cursor:pointer;animation:pulse .6s infinite alternate}.uno-card{width:62px;height:92px;border-radius:8px;border:2px solid rgba(255,255,255,.3);display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;cursor:pointer;transition:transform .12s,box-shadow .12s,opacity .15s;flex-shrink:0;-webkit-user-select:none;user-select:none}.uno-card.playable{border-color:#fff;box-shadow:0 0 8px #fff6}.uno-card.playable:hover{transform:translateY(-8px) scale(1.05);box-shadow:0 4px 16px #ffffff80}.uno-card.dimmed{opacity:.4;cursor:default}.uno-card.selected{border-color:#f1c40f;box-shadow:0 0 12px #f1c40f;transform:translateY(-10px)}.uno-card.small{width:42px;height:62px;font-size:.7rem}.uno-card-red{background:#e74c3c}.uno-card-yellow{background:#f1c40f;color:#333}.uno-card-green{background:#27ae60}.uno-card-blue{background:#2980b9}.uno-card-pink{background:#e84393}.uno-card-teal{background:#00b894}.uno-card-orange{background:#e17055}.uno-card-purple{background:#6c5ce7}.uno-card-wild{background:linear-gradient(135deg,#e74c3c 25%,#f1c40f 25%,#f1c40f 50%,#27ae60 50%,#27ae60 75%,#2980b9 75%)}.uno-card-corner{position:absolute;top:4px;left:6px;font-size:.65rem;font-weight:700}.uno-card-center{display:flex;flex-direction:column;align-items:center;justify-content:center;background:#fff;border-radius:50%;width:46px;height:46px;box-shadow:0 3px 10px #00000073}.uno-card-red .uno-card-label,.uno-card-red .uno-card-sub{color:#c0392b}.uno-card-yellow .uno-card-label,.uno-card-yellow .uno-card-sub{color:#b7950b}.uno-card-green .uno-card-label,.uno-card-green .uno-card-sub{color:#1e8449}.uno-card-blue .uno-card-label,.uno-card-blue .uno-card-sub{color:#1a5276}.uno-card-pink .uno-card-label,.uno-card-pink .uno-card-sub{color:#c0165e}.uno-card-teal .uno-card-label,.uno-card-teal .uno-card-sub{color:#007a5a}.uno-card-orange .uno-card-label,.uno-card-orange .uno-card-sub{color:#b84000}.uno-card-purple .uno-card-label,.uno-card-purple .uno-card-sub{color:#4a3a9e}.uno-card-wild .uno-card-label,.uno-card-wild .uno-card-sub{color:#222}.uno-card-label{font-size:1.2rem;font-weight:900;line-height:1}.uno-card-sub{font-size:.4rem;font-weight:700;line-height:1;text-transform:uppercase;letter-spacing:.5px}.uno-card-wild-dots{position:absolute;bottom:4px;display:flex;gap:2px}.dot{width:6px;height:6px;border-radius:50%}.dot-red{background:#e74c3c}.dot-yellow{background:#f1c40f}.dot-green{background:#27ae60}.dot-blue{background:#2980b9}.uno-color-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:100}.uno-color-picker{background:#1a1a2e;border-radius:16px;padding:24px;text-align:center}.uno-color-picker p{margin:0 0 16px;font-size:1.1rem;font-weight:600}.uno-color-options{display:flex;gap:12px}.uno-color-btn{width:56px;height:56px;border-radius:50%;border:3px solid #fff;cursor:pointer;transition:transform .1s}.uno-color-btn:hover{transform:scale(1.15)}.uno-error-toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%);background:#e74c3c;color:#fff;padding:10px 20px;border-radius:8px;font-weight:600;z-index:200;animation:fadeIn .2s}.uno-game-over{padding:40px 20px;text-align:center;gap:12px}.uno-game-over h1{font-size:2.4rem;margin:0}.uno-go-subtitle{color:#888;font-size:.9rem}.uno-go-players{display:flex;flex-direction:column;gap:6px;margin:16px 0;width:100%;max-width:320px}.uno-go-player{padding:8px 12px;background:#ffffff14;border-radius:8px}.uno-go-player.winner{background:#f1c40f33;border:1px solid #f1c40f}.uno-discard-area .uno-card{animation:cardLand .42s cubic-bezier(.34,1.56,.64,1) both}@keyframes cardLand{0%{transform:translateY(-36px) rotate(-12deg) scale(.75);opacity:0}55%{transform:translateY(4px) rotate(4deg) scale(1.06);opacity:1}to{transform:translateY(0) rotate(0) scale(1);opacity:1}}@keyframes cardDeal{0%{transform:translate(-28px) scale(.65);opacity:0}65%{transform:translate(3px) scale(1.04);opacity:1}to{transform:translate(0) scale(1);opacity:1}}.uno-card.fresh{animation:cardDeal .38s cubic-bezier(.34,1.56,.64,1) both}@keyframes pulse{0%{transform:scale(1)}to{transform:scale(1.08)}}@keyframes fadeIn{0%{opacity:0;transform:translate(-50%) translateY(10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.cn-lobby,.cn-board,.cn-game-over{font-family:Segoe UI,sans-serif;color:#fff;min-height:100dvh;display:flex;flex-direction:column;align-items:center}.cn-lobby{padding:0;gap:12px;max-width:520px;margin:0 auto;width:100%;box-sizing:border-box;justify-content:flex-start}.cn-lobby-content{display:flex;flex-direction:column;align-items:center;gap:12px;width:100%;max-width:520px;padding:20px 20px 32px;box-sizing:border-box}.cn-title{font-size:2.4rem;font-weight:900;letter-spacing:4px;background:linear-gradient(135deg,#c0392b,#2471a3);-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin:10px 0 0;text-align:center}.cn-variant-row{display:flex;gap:10px;width:100%}.cn-variant-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:12px 8px;border-radius:10px;border:2px solid rgba(255,255,255,.12);background:#ffffff0a;color:#fff9;cursor:pointer;transition:border-color .15s,background .15s}.cn-variant-btn:hover{border-color:#ffffff4d;color:#fff}.cn-variant-btn.active{border-color:#c0392b;background:#c0392b1f;color:#fff}.cn-variant-icon{font-size:1.3rem}.cn-variant-label{font-size:.85rem;font-weight:700;letter-spacing:.5px}.cn-variant-desc{font-size:.72rem;color:#fff6;text-align:center}.cn-copy-link-btn{display:block;width:100%;padding:9px 14px;border:1px solid rgba(255,255,255,.2);border-radius:8px;background:#ffffff12;color:#fff;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .15s;text-align:center;box-sizing:border-box}.cn-copy-link-btn:hover{background:#ffffff24}.cn-subtitle{font-size:.85rem;color:#ffffff80;text-align:center;margin:0;letter-spacing:2px}.cn-input{width:100%;padding:10px 14px;border-radius:8px;border:2px solid #444;background:#1a1a2e;color:#fff;font-size:1rem;box-sizing:border-box}.cn-input:focus{outline:none;border-color:#7f8c8d}.cn-section{width:100%;background:#ffffff0f;border-radius:12px;padding:16px;box-sizing:border-box}.cn-section h3{margin:0 0 12px;font-size:1rem;color:#ffffffb3;letter-spacing:1px}.cn-btn{display:block;width:100%;padding:12px;border:none;border-radius:8px;font-size:1rem;font-weight:700;cursor:pointer;transition:opacity .15s,transform .1s}.cn-btn:hover{opacity:.9;transform:translateY(-1px)}.cn-btn:active{transform:scale(.98)}.cn-btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.cn-btn-primary{background:linear-gradient(135deg,#c0392b,#2471a3);color:#fff}.cn-btn-ghost{background:#ffffff14;color:#fff;border:1px solid rgba(255,255,255,.2);font-weight:600}.cn-room-code{font-size:2.2rem;font-weight:900;letter-spacing:8px;text-align:center;color:#f1c40f;margin:4px 0}.cn-join-row{display:flex;gap:8px;width:100%}.cn-join-row .cn-input{flex:1}.cn-join-btn{padding:10px 18px;border:none;border-radius:8px;background:#2471a3;color:#fff;font-size:1rem;font-weight:700;cursor:pointer;white-space:nowrap;transition:opacity .15s}.cn-join-btn:hover{opacity:.85}.cn-team-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.cn-team-col{display:flex;flex-direction:column;gap:6px}.cn-team-header{text-align:center;font-weight:700;font-size:.95rem;padding:6px;border-radius:6px;margin-bottom:2px}.cn-team-header.red{background:#c0392b4d;color:#e74c3c}.cn-team-header.blue{background:#2471a34d;color:#5dade2}.cn-role-btn{padding:10px 8px;border-radius:8px;border:2px solid transparent;background:#ffffff0f;color:#ffffffb3;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .15s;text-align:center}.cn-role-btn:hover{background:#ffffff1f;color:#fff}.cn-role-btn.active-red{background:#c0392b40;border-color:#c0392b;color:#e74c3c}.cn-role-btn.active-blue{background:#2471a340;border-color:#2471a3;color:#5dade2}.cn-roster{display:grid;grid-template-columns:1fr 1fr;gap:8px}.cn-roster-col{display:flex;flex-direction:column;gap:4px}.cn-roster-col-title{font-size:.75rem;font-weight:700;letter-spacing:1px;padding:3px 6px;border-radius:4px;margin-bottom:2px}.cn-roster-col-title.red{background:#c0392b40;color:#e74c3c}.cn-roster-col-title.blue{background:#2471a340;color:#5dade2}.cn-roster-player{display:flex;align-items:center;gap:6px;font-size:.8rem;color:#ffffffbf;padding:4px 6px;border-radius:6px;background:#ffffff0a}.cn-roster-icon{font-size:.9rem}.cn-unassigned{font-size:.8rem;color:#ffffff59;text-align:center;padding:4px}.cn-error{background:#e74c3c26;border:1px solid rgba(231,76,60,.4);color:#e74c3c;border-radius:8px;padding:10px 14px;font-size:.9rem;width:100%;box-sizing:border-box;text-align:center}.cn-board{width:100%;max-width:680px;padding:0;box-sizing:border-box;gap:0}.cn-topbar{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px 12px;box-sizing:border-box;background:#ffffff0a;border-bottom:1px solid rgba(255,255,255,.08)}.cn-leave-btn{background:none;border:none;color:#ffffff80;font-size:.9rem;cursor:pointer;padding:4px 8px;border-radius:6px;transition:color .15s,background .15s}.cn-leave-btn:hover{color:#fff;background:#ffffff1a}.cn-board-title{font-size:.9rem;font-weight:700;letter-spacing:3px;color:#ffffff80}.cn-scorebar{display:flex;align-items:center;justify-content:space-between;width:100%;padding:8px 12px;box-sizing:border-box;gap:8px}.cn-score-team{display:flex;align-items:center;gap:6px;font-size:.9rem;font-weight:700}.cn-score-team.red{color:#e74c3c}.cn-score-team.blue{color:#5dade2}.cn-score-team.active{font-size:1rem}.cn-score-pips{display:flex;gap:3px}.cn-pip{width:8px;height:8px;border-radius:50%;opacity:.35}.cn-pip.found{opacity:1}.cn-pip.red{background:#c0392b}.cn-pip.blue{background:#2471a3}.cn-turn-indicator{font-size:.75rem;font-weight:700;letter-spacing:1px;padding:3px 10px;border-radius:20px;text-align:center}.cn-turn-indicator.red{background:#c0392b40;color:#e74c3c}.cn-turn-indicator.blue{background:#2471a340;color:#5dade2}.cn-clue-bar{width:100%;padding:6px 12px;box-sizing:border-box;text-align:center;min-height:34px;display:flex;align-items:center;justify-content:center;gap:8px}.cn-clue-word{font-size:1.3rem;font-weight:900;letter-spacing:3px;color:#f1c40f}.cn-clue-count{font-size:1rem;color:#fff9;font-weight:600}.cn-clue-guesses{font-size:.8rem;color:#ffffff80;background:#ffffff12;padding:2px 8px;border-radius:10px}.cn-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:5px;width:100%;padding:6px 10px;box-sizing:border-box}.cn-card{aspect-ratio:5/3;border-radius:6px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:clamp(.5rem,2.2vw,.8rem);text-align:center;cursor:default;transition:transform .1s,border-color .15s;border:2px solid transparent;letter-spacing:.5px;padding:2px 3px;word-break:break-word;line-height:1.1;user-select:none;-webkit-user-select:none}.cn-card.neutral{background:#1e2d3d;color:#c8d6e5;border-color:#2d4052}.cn-card.hint-red{background:#c0392b38;color:#e8cbc9;border-color:#c0392b}.cn-card.hint-blue{background:#2471a338;color:#c5d8e8;border-color:#2471a3}.cn-card.hint-bystander{background:#8b735538;color:#d4c4a8;border-color:#7d6608}.cn-card.hint-assassin{background:#0f0f0f99;color:#666;border-color:#333}.cn-card.revealed{opacity:.6;text-decoration:line-through;text-decoration-color:#fff6}.cn-card.revealed.team-red{background:#c0392b;color:#fff;border-color:#922b21}.cn-card.revealed.team-blue{background:#2471a3;color:#fff;border-color:#1a5276}.cn-card.revealed.team-bystander{background:#7d6608;color:#f5e6c8;border-color:#6b5907}.cn-card.revealed.team-assassin{background:#111;color:#444;border-color:#000}.cn-card.clickable{cursor:pointer}.cn-card.clickable:hover{transform:scale(1.06);border-color:#f1c40f;z-index:1;position:relative}.cn-action-area{width:100%;padding:8px 12px 16px;box-sizing:border-box}.cn-clue-form{display:flex;flex-direction:column;gap:8px;background:#ffffff0d;border-radius:10px;padding:12px}.cn-clue-form-title{font-size:.8rem;color:#ffffff80;letter-spacing:1px;margin:0 0 4px}.cn-clue-inputs{display:flex;gap:8px}.cn-clue-word-input{flex:1;padding:8px 12px;border-radius:7px;border:2px solid #444;background:#1a1a2e;color:#fff;font-size:.95rem;font-weight:600;letter-spacing:1px;text-transform:uppercase}.cn-clue-word-input:focus{outline:none;border-color:#f1c40f}.cn-clue-count-input{width:60px;padding:8px;border-radius:7px;border:2px solid #444;background:#1a1a2e;color:#fff;font-size:.95rem;font-weight:600;text-align:center}.cn-clue-count-input:focus{outline:none;border-color:#f1c40f}.cn-submit-clue-btn{padding:9px;border:none;border-radius:7px;background:#f1c40f;color:#111;font-size:.95rem;font-weight:700;cursor:pointer;transition:opacity .15s}.cn-submit-clue-btn:hover{opacity:.85}.cn-submit-clue-btn:disabled{opacity:.4;cursor:not-allowed}.cn-pass-btn{width:100%;padding:10px;border:none;border-radius:8px;background:#ffffff14;color:#ffffffb3;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .15s;border:1px solid rgba(255,255,255,.15)}.cn-pass-btn:hover{background:#ffffff24;color:#fff}.cn-status-msg{text-align:center;font-size:.85rem;color:#fff6;padding:8px}.cn-last-action{text-align:center;font-size:.78rem;color:#ffffff59;padding:2px 12px 6px;min-height:20px}.cn-my-team-badge{font-size:.72rem;padding:2px 8px;border-radius:10px;font-weight:600;letter-spacing:.5px}.cn-my-team-badge.red{background:#c0392b33;color:#e74c3c;border:1px solid rgba(192,57,43,.4)}.cn-my-team-badge.blue{background:#2471a333;color:#5dade2;border:1px solid rgba(36,113,163,.4)}.cn-game-over{justify-content:center;gap:20px;padding:24px}.cn-winner-banner{font-size:3rem;font-weight:900;letter-spacing:4px;text-align:center}.cn-winner-banner.red{color:#e74c3c}.cn-winner-banner.blue{color:#5dade2}.cn-win-reason{font-size:1rem;color:#ffffff80;text-align:center;max-width:300px}.cn-final-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;width:100%;max-width:500px;padding:0 10px;box-sizing:border-box}.cn-final-card{aspect-ratio:5/3;border-radius:5px;display:flex;align-items:center;justify-content:center;font-size:clamp(.45rem,1.8vw,.7rem);font-weight:700;text-align:center;padding:2px;word-break:break-word;line-height:1.1}.cn-final-card.red{background:#c0392b;color:#fff}.cn-final-card.blue{background:#2471a3;color:#fff}.cn-final-card.bystander{background:#7d6608;color:#f5e6c8}.cn-final-card.assassin{background:#111;color:#555}.cn-duet-over{font-family:Segoe UI,sans-serif;color:#fff;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:18px;padding:36px 20px 40px;box-sizing:border-box;max-width:680px;margin:0 auto;width:100%}.cn-duet-over.win{background:radial-gradient(ellipse at top,rgba(39,174,96,.18) 0%,transparent 60%)}.cn-duet-over.loss{background:radial-gradient(ellipse at top,rgba(192,57,43,.18) 0%,transparent 60%)}.cn-duet-over-headline{font-size:clamp(2rem,8vw,3.5rem);font-weight:900;letter-spacing:3px;text-align:center;line-height:1}.cn-duet-over.win .cn-duet-over-headline{color:#2ecc71}.cn-duet-over.loss .cn-duet-over-headline{color:#e74c3c}.cn-duet-over-sub{font-size:1.05rem;color:#fff9;text-align:center}.cn-duet-over-last-card{display:flex;flex-direction:column;align-items:center;gap:4px;padding:16px 28px;border-radius:14px;border:2px solid transparent}.cn-duet-over-last-card.black{background:#141414cc;border-color:#333}.cn-duet-over-last-card.tan{background:#8b735533;border-color:#8b735566}.cn-duet-over-last-card.green{background:#27ae6033;border-color:#27ae6066}.cn-duet-over-last-word{font-size:1.8rem;font-weight:900;letter-spacing:3px;text-transform:uppercase}.cn-duet-over-last-card.black .cn-duet-over-last-word{color:#aaa}.cn-duet-over-last-card.tan .cn-duet-over-last-word{color:#d4c4a8}.cn-duet-over-last-card.green .cn-duet-over-last-word{color:#2ecc71}.cn-duet-over-last-by{font-size:.78rem;color:#ffffff59;letter-spacing:1px}.cn-duet-over-score{font-size:1.1rem;font-weight:700;color:#ffffff80;letter-spacing:1px}.cn-duet-over-grid-label{width:100%;max-width:500px;display:flex;justify-content:space-between;font-size:.72rem;color:#ffffff4d;padding:0 10px;box-sizing:border-box;letter-spacing:.5px}.cn-duet-over-grid{max-width:500px;padding:0 10px}.cn-duet-reveal-card{position:relative;overflow:hidden;cursor:default!important}.cn-duet-reveal-card.covered{opacity:.5}.cn-duet-reveal-stripes{position:absolute;top:0;right:0;bottom:0;left:0;display:flex}.cn-duet-reveal-half{flex:1;opacity:.55}.cn-duet-reveal-half.green{background:#27ae60}.cn-duet-reveal-half.black{background:#111}.cn-duet-reveal-half.tan{background:#7d6608}.cn-duet-reveal-word{position:relative;z-index:1;font-size:clamp(.45rem,1.8vw,.7rem);font-weight:700;text-align:center;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.8);word-break:break-word;line-height:1.1;padding:2px}.cn-duet-over-back{margin-top:8px;max-width:300px}.cn-duet-board{max-width:680px}.cn-duet-player-badge{font-size:.8rem;font-weight:700;color:#ffffff8c;letter-spacing:1px;padding:3px 8px;border-radius:10px;background:#ffffff12}.cn-error-inline{width:100%;padding:8px 14px;box-sizing:border-box;background:#e74c3c26;border-top:1px solid rgba(231,76,60,.35);border-bottom:1px solid rgba(231,76,60,.35);color:#e74c3c;font-size:.85rem;text-align:center;cursor:pointer}.cn-duet-statusbar{display:flex;align-items:center;justify-content:space-between;width:100%;padding:8px 14px;box-sizing:border-box;background:#ffffff08;border-bottom:1px solid rgba(255,255,255,.07);gap:10px}.cn-duet-progress{display:flex;align-items:baseline;gap:4px;font-weight:700}.cn-duet-progress-num{font-size:1.6rem;color:#2ecc71;line-height:1}.cn-duet-progress-sep{font-size:1rem;color:#ffffff59}.cn-duet-progress-total{font-size:1.1rem;color:#ffffff8c}.cn-duet-progress-label{font-size:.75rem;color:#fff6;letter-spacing:1px;margin-left:2px}.cn-duet-timer{display:flex;align-items:center;gap:5px;flex-wrap:wrap;justify-content:flex-end}.cn-duet-token{width:14px;height:14px;border-radius:50%;border:2px solid rgba(255,255,255,.2);transition:background .2s,border-color .2s}.cn-duet-token.active{background:#f1c40f;border-color:#d4ac0d}.cn-duet-token.used{background:transparent;border-color:#ffffff1f}.cn-duet-timer-label{font-size:.7rem;color:#ffffff59;margin-left:4px}.cn-duet-turn-row{width:100%;padding:6px 12px;box-sizing:border-box;text-align:center}.cn-duet-turn-indicator{display:inline-block;font-size:.8rem;font-weight:700;letter-spacing:.5px;padding:4px 14px;border-radius:20px}.cn-duet-turn-indicator.my-turn{background:#2ecc712e;color:#2ecc71;border:1px solid rgba(46,204,113,.3)}.cn-duet-turn-indicator.their-turn{background:#ffffff0f;color:#fff6;border:1px solid rgba(255,255,255,.1)}.cn-duet-sudden-death{display:inline-block;font-size:.85rem;font-weight:700;letter-spacing:1px;padding:5px 16px;border-radius:20px;background:#e74c3c33;color:#e74c3c;border:1px solid rgba(231,76,60,.4);animation:sd-pulse 1.5s ease-in-out infinite}@keyframes sd-pulse{0%,to{opacity:1}50%{opacity:.65}}.cn-duet-clue-placeholder{font-size:.85rem;color:#ffffff40;font-style:italic}.cn-card.duet-covered{background:#27ae60;color:#fff;border-color:#1e8449;opacity:.7;text-decoration:line-through;text-decoration-color:#ffffff80}.cn-card.duet-eliminated{background:#2c3e50;color:#ffffff4d;border-color:#1a252f;text-decoration:line-through}.cn-card.duet-hint-green{background:#27ae6033;color:#a9dfbf;border-color:#27ae6080}.cn-card.duet-hint-assassin{background:#0f0f0fb3;color:#555;border-color:#2c2c2c}.cn-card.duet-hint-bystander{background:#1e2d3d;color:#c8d6e5;border-color:#2d4052}.cn-card.duet-self-marked{opacity:.45}.cn-card.duet-hint-green.clickable:hover{border-color:#2ecc71;transform:scale(1.06);z-index:1;position:relative}.cn-card-word{display:block}.cn-duet-markers{position:absolute;bottom:2px;right:3px;display:flex;gap:2px}.cn-duet-marker{font-size:.55rem;line-height:1}.cn-duet-marker.p0{color:#e74c3c}.cn-duet-marker.p1{color:#5dade2}.cn-card{position:relative}.cn-duet-grid{padding:8px 10px;gap:5px}.cn-duet-legend{display:flex;gap:14px;padding:4px 12px;flex-wrap:wrap;justify-content:center}.cn-legend-item{font-size:.72rem;font-weight:600;display:flex;align-items:center;gap:4px}.cn-legend-item.green{color:#2ecc71}.cn-legend-item.assassin{color:#666}.cn-legend-item.bystander{color:#aab7c4}.cn-duet-sd-hint{background:#e74c3c1a;border:1px solid rgba(231,76,60,.25);border-radius:8px;padding:10px 14px;text-align:center;color:#ffffff8c;font-size:.82rem;margin-bottom:8px}.cn-duet-dont-look{width:100%;padding:5px 14px;box-sizing:border-box;text-align:center;font-size:.75rem;color:#ffffff52;font-style:italic;border-bottom:1px solid rgba(255,255,255,.05)}.cn-duet-dont-look em{font-style:normal;color:#ffffff80}.cn-back-btn{padding:12px 28px;border:none;border-radius:10px;background:#ffffff1a;color:#fff;font-size:1rem;font-weight:700;cursor:pointer;transition:background .15s}.cn-back-btn:hover{background:#ffffff2e}.loading{display:flex;align-items:center;justify-content:center;min-height:100vh;min-height:100dvh;font-size:1.2rem;color:var(--text-dim)}.reconnecting{letter-spacing:2px}.app{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center}.error-bar{position:fixed;top:0;left:0;right:0;background:var(--accent);color:#fff;padding:10px 20px;text-align:center;z-index:100;font-weight:600;cursor:pointer;animation:slideDown .3s ease-out}@keyframes slideDown{0%{transform:translateY(-100%)}to{transform:translateY(0)}}.global-nav{width:100%;display:flex;align-items:center;justify-content:center;gap:4px;padding:0 10px;height:46px;box-sizing:border-box;background:#00000059;border-bottom:1px solid rgba(255,255,255,.08);flex-shrink:0;position:sticky;top:0;z-index:50;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.global-nav-link{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:8px;color:#fff6;text-decoration:none;font-size:.85rem;font-weight:600;letter-spacing:.3px;transition:color .15s,background .15s;white-space:nowrap}.global-nav-link:hover{color:#fffc;background:#ffffff14}.global-nav-link.active{color:#fff;background:#ffffff21}.global-nav-emoji{font-size:1rem;line-height:1}.global-nav-label{font-size:.82rem}@media(max-width:400px){.global-nav-label{display:none}.global-nav-link{padding:6px 10px}}:root{--bg-dark: #1a1a2e;--bg-card: #16213e;--bg-panel: #0f3460;--accent: #e94560;--text: #eee;--text-dim: #999;--white-card: #f0f0f0;--red-card: #e74c3c;--blue-card: #3498db;--yellow-card: #f1c40f;--green-card: #2ecc71;--token-blue: #5dade2;--token-fuse: #e74c3c}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Segoe UI,system-ui,-apple-system,sans-serif;background:var(--bg-dark);color:var(--text);min-height:100vh;min-height:100dvh;overflow-x:hidden}#root{min-height:100vh;min-height:100dvh}button{cursor:pointer;font-family:inherit;border:none;border-radius:8px;padding:10px 20px;font-size:1rem;transition:all .2s}button:hover{transform:translateY(-1px);filter:brightness(1.1)}button:active{transform:translateY(0)}button:disabled{opacity:.4;cursor:not-allowed;transform:none!important;filter:none!important}input{font-family:inherit;font-size:1rem;padding:10px 16px;border:2px solid #333;border-radius:8px;background:var(--bg-card);color:var(--text);outline:none;transition:border-color .2s}input:focus{border-color:var(--accent)}
