:root,[data-theme=light]{--bg: #faf6f1;--bg-secondary: #f0e8df;--bg-tertiary: #e8ddd0;--surface: #ffffff;--surface-hover: #f8f5f2;--surface-elevated: #ffffff;--accent: #c2185b;--accent-hover: #ad1457;--accent-light: rgba(194, 24, 91, .1);--accent-lighter: rgba(194, 24, 91, .05);--text: #1a1a1a;--text-secondary: #5a5a5a;--text-tertiary: #999;--border: #e0d6cc;--border-light: #ebe5dc;--success: #2e7d32;--success-bg: #e8f5e9;--warning: #e65100;--warning-bg: #fff3e0;--danger: #c62828;--danger-bg: #ffebee;--shadow-sm: 0 1px 3px rgba(0,0,0,.06);--shadow: 0 2px 8px rgba(0,0,0,.08);--shadow-lg: 0 8px 30px rgba(0,0,0,.1);--shadow-xl: 0 12px 40px rgba(0,0,0,.12);--radius: 10px;--radius-lg: 16px;--radius-xl: 20px;--card-shadow: 0 2px 8px rgba(0,0,0,.1);--overlay: rgba(0,0,0,.4)}[data-theme=dark]{--bg: #121218;--bg-secondary: #1a1a24;--bg-tertiary: #242430;--surface: #1e1e2a;--surface-hover: #262634;--surface-elevated: #2a2a3a;--accent: #f06292;--accent-hover: #ec407a;--accent-light: rgba(240, 98, 146, .15);--accent-lighter: rgba(240, 98, 146, .06);--text: #e8e8f0;--text-secondary: #a0a0b0;--text-tertiary: #606070;--border: #2e2e40;--border-light: #252535;--success: #66bb6a;--success-bg: rgba(102, 187, 106, .12);--warning: #ffb74d;--warning-bg: rgba(255, 183, 77, .12);--danger: #ef5350;--danger-bg: rgba(239, 83, 80, .12);--shadow-sm: 0 1px 3px rgba(0,0,0,.3);--shadow: 0 2px 8px rgba(0,0,0,.4);--shadow-lg: 0 8px 30px rgba(0,0,0,.5);--shadow-xl: 0 12px 40px rgba(0,0,0,.6);--radius: 10px;--radius-lg: 16px;--radius-xl: 20px;--card-shadow: 0 2px 12px rgba(0,0,0,.4);--overlay: rgba(0,0,0,.6)}*{margin:0;padding:0;box-sizing:border-box}html{height:100%}body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color .3s,color .3s;line-height:1.5}#root{min-height:100vh}h1,h2,h3,h4{font-family:Playfair Display,Georgia,serif;font-weight:700;line-height:1.2}.theme-toggle{position:fixed;top:12px;right:12px;z-index:200;width:42px;height:58px;border-radius:6px;border:1.5px solid var(--border);background:var(--surface);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;transition:all .2s;box-shadow:var(--card-shadow);overflow:hidden;padding:0}.theme-toggle-stripe{position:absolute;top:0;left:0;right:0;height:3px;background:var(--accent)}.theme-toggle:hover{border-color:var(--accent);box-shadow:var(--shadow);transform:translateY(-2px)}.theme-toggle:active{transform:translateY(0) scale(.96)}.theme-toggle-value{font-size:1.15rem;line-height:1;margin-top:4px}.theme-toggle-label{font-family:Playfair Display,serif;font-size:.5rem;font-weight:600;color:var(--text-secondary);line-height:1;margin-top:1px}[data-theme=dark] .theme-toggle-value,[data-theme=dark] .theme-toggle-label{color:#e0e0e8}.info-toggle{position:fixed;top:12px;right:60px;z-index:200;width:42px;height:58px;border-radius:6px;border:1.5px solid var(--border);background:var(--surface);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;transition:all .2s;box-shadow:var(--card-shadow);overflow:hidden;padding:0}.info-toggle-stripe{position:absolute;top:0;left:0;right:0;height:3px;background:var(--accent)}.info-toggle:hover{border-color:var(--accent);box-shadow:var(--shadow);transform:translateY(-2px)}.info-toggle:active{transform:translateY(0) scale(.96)}.info-toggle-icon{font-family:Inter,sans-serif;font-size:.75rem;font-weight:700;color:var(--accent);line-height:1;width:20px;height:20px;border:2px solid var(--accent);border-radius:50%;display:flex;align-items:center;justify-content:center}.btn{font-family:Inter,sans-serif;font-weight:600;font-size:.9rem;padding:11px 24px;border-radius:var(--radius);border:none;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;justify-content:center;gap:8px;letter-spacing:.01em}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none!important}.btn-primary{background:var(--accent);color:#fff;box-shadow:0 2px 8px #c2185b40}.btn-primary:hover:not(:disabled){background:var(--accent-hover);box-shadow:0 4px 14px #c2185b4d;transform:translateY(-1px)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-secondary{background:var(--surface);color:var(--text);border:1.5px solid var(--border)}.btn-secondary:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:var(--accent-lighter)}.btn-ghost{background:transparent;color:var(--text-secondary);padding:8px 16px}.btn-ghost:hover:not(:disabled){color:var(--accent);background:var(--accent-lighter)}.btn-large{font-size:1rem;padding:14px 32px;border-radius:var(--radius-lg)}.input{font-family:Inter,sans-serif;font-size:.95rem;padding:11px 16px;border:1.5px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);width:100%;transition:border-color .2s,box-shadow .2s}.input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light)}.input::placeholder{color:var(--text-tertiary)}.error-msg{background:var(--danger-bg);color:var(--danger);padding:10px 16px;border-radius:var(--radius);font-size:.85rem;margin-top:12px;border:1px solid currentColor;border-color:#c6282833}.error-toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:var(--danger);color:#fff;padding:10px 24px;border-radius:var(--radius);font-size:.85rem;font-weight:500;z-index:100;box-shadow:var(--shadow-lg);animation:toastIn .3s ease-out}.token{color:var(--accent);font-size:.95rem}.landing{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px}.landing-card{background:var(--surface);border-radius:var(--radius-xl);padding:48px 40px;max-width:400px;width:100%;box-shadow:var(--shadow-xl);text-align:center;border:1px solid var(--border-light)}.landing-title{font-size:2.6rem;color:var(--accent);margin-bottom:6px;letter-spacing:-.02em}.landing-subtitle{color:var(--text-secondary);margin-bottom:36px;font-size:.95rem}.landing-buttons,.landing-form{display:flex;flex-direction:column;gap:10px}.lobby{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px}.lobby-card{background:var(--surface);border-radius:var(--radius-xl);padding:40px 36px;max-width:440px;width:100%;box-shadow:var(--shadow-xl);text-align:center;border:1px solid var(--border-light)}.lobby-title{font-size:1.8rem;color:var(--accent);margin-bottom:24px}.room-code-section{margin-bottom:28px}.room-code-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.15em;color:var(--text-tertiary);font-weight:600}.room-code-display{background:var(--bg-secondary);padding:14px 16px;border-radius:var(--radius-lg);margin:8px 0;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:14px;border:1.5px solid var(--border)}.room-code-display:hover{background:var(--bg-tertiary);border-color:var(--accent)}.room-code-display:active{transform:scale(.98)}.room-code-chars{display:flex;gap:6px;flex:1}.room-code-char{font-family:Inter,monospace;font-size:1.8rem;font-weight:800;color:var(--text);background:var(--surface);border:1.5px solid var(--border);border-radius:8px;flex:1;aspect-ratio:1 / 1.15;display:flex;align-items:center;justify-content:center;line-height:1;transition:border-color .2s}.room-code-display:hover .room-code-char{border-color:var(--accent)}.copy-icon{font-size:1rem;opacity:.5;flex-shrink:0}.room-code-hint{font-size:.72rem;color:var(--text-tertiary);min-height:1.2em}.player-list{text-align:left;margin-bottom:24px}.player-list h3{font-size:.95rem;margin-bottom:10px;color:var(--text-secondary)}.player-list-item{display:flex;align-items:center;gap:8px;padding:10px 14px;background:var(--bg-secondary);border-radius:var(--radius);margin-bottom:6px;border:1.5px solid transparent;transition:border-color .2s}.player-list-item.is-you{border-color:var(--accent);background:var(--accent-lighter)}.player-name{flex:1;font-weight:500;font-size:.92rem}.host-badge,.you-badge,.disconnected-badge{font-size:.65rem;padding:2px 8px;border-radius:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.host-badge{background:var(--warning-bg);color:var(--warning)}.you-badge{background:var(--accent-light);color:var(--accent)}.disconnected-badge{background:var(--danger-bg);color:var(--danger)}.waiting-text{color:var(--text-tertiary);font-style:italic;font-size:.9rem}.token-info{margin-top:20px;font-size:.82rem;color:var(--text-tertiary);background:var(--bg-secondary);padding:8px 14px;border-radius:var(--radius);display:inline-block}.game-over{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px}.game-over-card{background:var(--surface);border-radius:var(--radius-xl);padding:48px 40px;max-width:440px;width:100%;box-shadow:var(--shadow-xl);text-align:center;border:1px solid var(--border-light)}.game-over-title{font-size:2rem;color:var(--text);margin-bottom:20px}.game-over-winner{margin-bottom:32px}.winner-crown{font-size:3rem;color:var(--accent);display:block;margin-bottom:8px;animation:tokenBounce .6s ease-out}.game-over-winner h2{font-size:1.6rem;color:var(--accent)}.game-over-winner p{color:var(--text-secondary);font-size:.9rem;margin-top:4px}.final-standings{margin-bottom:28px;text-align:left}.final-standings h3{font-size:1rem;margin-bottom:12px;color:var(--text-secondary)}.final-standing-row{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--bg-secondary);border-radius:var(--radius);margin-bottom:6px;border:1.5px solid transparent}.final-standing-row.is-winner{background:var(--accent-lighter);border-color:var(--accent)}.standing-rank{font-weight:700;color:var(--text-tertiary);min-width:28px;font-size:.85rem}.standing-name{flex:1;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.standing-tokens{flex-shrink:0;white-space:nowrap;font-size:.85rem;font-weight:600;color:var(--accent)}@media (max-width: 480px){.landing-card{padding:36px 24px;border-radius:var(--radius-lg)}.landing-title{font-size:2.1rem}.lobby-card{padding:28px 20px;border-radius:var(--radius-lg)}.lobby-title{font-size:1.5rem}.room-code-display{padding:10px;gap:8px}.room-code-chars{gap:4px}.room-code-char{font-size:1.2rem;border-radius:6px}.room-code-label,.room-code-hint{font-size:.65rem}.game-over-card{padding:36px 24px}.game-over-title{font-size:1.6rem}.game-over-winner h2{font-size:1.3rem}.winner-crown{font-size:2.4rem}.info-toggle{width:36px;height:50px;top:8px;right:50px}.info-toggle-icon{width:18px;height:18px;font-size:.65rem}.theme-toggle{width:36px;height:50px;top:8px;right:8px}.theme-toggle-value{font-size:1rem}.theme-toggle-label{font-size:.45rem}}.card{border-radius:var(--radius);overflow:hidden;position:relative;-webkit-user-select:none;user-select:none;flex-shrink:0;transition:transform .2s,box-shadow .2s,border-color .2s}.card-small{width:44px;height:62px;font-size:.6rem;border-radius:6px}.card-medium{width:88px;height:128px;font-size:.72rem}.card-large{width:120px;height:180px;font-size:.82rem}.card-back{background:linear-gradient(145deg,var(--accent),var(--accent-hover));border:2px solid var(--accent);display:flex;align-items:center;justify-content:center}.card-back-pattern{opacity:.25}.card-back-icon{font-size:1.3em;color:#fff}.card-face{background:var(--surface);border:2px solid var(--border);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:4px;box-shadow:var(--card-shadow)}.card-stripe{position:absolute;top:0;left:0;right:0;height:4px;background:var(--card-color, #999)}.card-corner-value{position:absolute;top:6px;left:7px;font-family:Playfair Display,serif;font-weight:700;font-size:.95em;color:var(--card-color, #999);line-height:1}.card-small .card-corner-value{top:3px;left:4px;font-size:.8em}.card-icon{font-size:1.8em;line-height:1;margin-top:6px}.card-small .card-icon{font-size:1.2em;margin-top:3px}.card-name{font-family:Playfair Display,serif;font-weight:600;font-size:.8em;color:var(--text);text-align:center;line-height:1.1;margin-top:1px}.card-small .card-name{font-size:.65em}.card-effect{font-family:Inter,sans-serif;font-size:.5em;color:var(--text-secondary);text-align:center;line-height:1.25;padding:1px 4px;margin-top:2px;max-height:4em;overflow:hidden}.card-large .card-icon{font-size:2.2em;margin-top:10px}.card-large .card-name{font-size:.95em;margin-top:3px}.card-large .card-effect{font-size:.6em;padding:2px 6px;max-height:4.5em}.card-large .card-corner-value{font-size:1.1em;top:8px;left:8px}.card-clickable{cursor:pointer}.card-clickable:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);border-color:var(--card-color, var(--accent))}.card-disabled{opacity:.4;cursor:default;filter:grayscale(.3)}.card-disabled:hover{transform:none;box-shadow:var(--card-shadow);border-color:var(--border)}.card-highlighted{border-color:var(--warning);box-shadow:0 0 0 3px #e6510040;animation:pulse 1.5s infinite}.card-selected{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light);transform:translateY(-8px)}@media (max-width: 768px){.card-small{width:38px;height:54px;font-size:.52rem}.card-medium{width:70px;height:102px;font-size:.62rem}.card-large{width:100px;height:150px;font-size:.75rem}.card-effect{font-size:.48em;max-height:3.5em}.card-large .card-effect{font-size:.55em}.card-small .card-icon{font-size:1em}.card-small .card-corner-value{font-size:.7em}}@media (max-width: 480px){.card-small{width:34px;height:48px;font-size:.48rem;border-radius:5px}.card-medium{width:58px;height:84px;font-size:.55rem}.card-large{width:86px;height:130px;font-size:.68rem}.card-icon{font-size:1.5em}.card-large .card-icon{font-size:1.7em;margin-top:6px}.card-effect{font-size:.45em;padding:1px 2px;max-height:3em}.card-large .card-effect{font-size:.52em;max-height:3.5em}.card-name{font-size:.7em}.card-large .card-name{font-size:.8em}.card-stripe{height:3px}.card-clickable:hover{transform:none;box-shadow:var(--card-shadow)}.card-clickable:active{transform:scale(.96);border-color:var(--card-color, var(--accent))}.card-selected{transform:translateY(-5px)}}.game-board{display:grid;grid-template-rows:auto auto 1fr auto;min-height:100vh;min-height:100dvh;max-width:880px;margin:0 auto;padding:12px 16px;gap:10px}.board-header{display:flex;align-items:center;gap:12px;padding:10px 110px 10px 16px;background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-sm);flex-wrap:wrap;border:1px solid var(--border-light)}.round-info{font-family:Playfair Display,serif;font-weight:700;font-size:1rem;color:var(--accent)}.deck-count{font-size:.8rem;font-weight:600;color:var(--text-secondary);background:var(--bg-secondary);padding:4px 10px;border-radius:6px}.face-up-cards{display:flex;align-items:center;gap:5px;margin-left:auto}.face-up-label{font-size:.7rem;color:var(--text-tertiary);white-space:nowrap}.other-players-area{display:flex;gap:8px;flex-wrap:wrap;align-content:start}.other-player{background:var(--surface);border-radius:var(--radius);padding:10px 12px;box-shadow:var(--shadow-sm);flex:1;min-width:140px;max-width:210px;border:1.5px solid transparent;transition:all .25s}.other-player.current-turn{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-light),var(--shadow)}.other-player.eliminated{opacity:.45}.other-player.disconnected{opacity:.55}.other-player-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px}.other-player-name{font-weight:600;font-size:.85rem;display:flex;align-items:center;gap:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.turn-indicator{width:7px;height:7px;border-radius:50%;background:var(--accent);flex-shrink:0;animation:pulse 1.5s infinite}.other-player-tokens{display:flex;align-items:center;gap:1px;flex-shrink:0}.other-player-status{margin-bottom:4px;font-size:.7rem}.status-eliminated{color:var(--danger);font-weight:600}.status-protected{color:var(--success);font-weight:600}.status-disconnected{color:var(--text-tertiary);font-weight:500}.other-player-cards{display:flex;gap:3px;margin-bottom:4px}.other-player-discard{display:flex;gap:2px;flex-wrap:wrap;border-top:1px solid var(--border-light);padding-top:5px;margin-top:4px}.middle-area{display:flex;gap:12px;overflow:hidden;min-height:0}.player-hand{background:var(--surface);border-radius:var(--radius-lg);padding:14px 18px;box-shadow:var(--shadow);border:1px solid var(--border-light)}.hand-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.hand-label{font-family:Playfair Display,serif;font-size:.95rem;font-weight:700}.your-tokens{display:flex;align-items:center;gap:4px}.token-count{font-size:.78rem;color:var(--text-secondary);font-weight:600;margin-left:3px}.hand-cards{display:flex;gap:10px;justify-content:center}.turn-prompt{text-align:center;margin-top:8px;font-weight:600;font-size:.88rem;color:var(--accent);animation:pulse 1.5s infinite}.forced-prompt{text-align:center;margin-top:6px;font-weight:600;font-size:.85rem;color:var(--warning)}.eliminated-prompt{text-align:center;margin-top:6px;font-size:.85rem;color:var(--danger);font-style:italic}.game-log{flex:1;background:var(--surface);border-radius:var(--radius);padding:10px 12px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--border-light)}.log-title{font-size:.75rem;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px}.log-entries{overflow-y:auto;flex:1;min-height:0}.log-entry{font-size:.78rem;padding:3px 0;border-bottom:1px solid var(--border-light);color:var(--text-secondary);line-height:1.35}.log-entry:last-child{border-bottom:none}.log-private{color:var(--accent);font-weight:500}@media (max-width: 768px){.game-board{padding:8px 10px;gap:6px}.board-header{padding:8px 110px 8px 12px;gap:8px}.face-up-cards{margin-left:0;flex-wrap:wrap}.other-players-area{flex-wrap:nowrap;overflow-x:auto;gap:6px;padding-bottom:2px;-webkit-overflow-scrolling:touch;scrollbar-width:none}.other-players-area::-webkit-scrollbar{display:none}.other-player{min-width:125px;max-width:155px;padding:8px 10px;flex-shrink:0}.other-player-name{font-size:.78rem}.middle-area{max-height:140px}.game-log{padding:8px 10px}.log-entry{font-size:.72rem;padding:2px 0}.player-hand{padding:10px 12px}.hand-cards{gap:8px}.turn-prompt,.forced-prompt,.eliminated-prompt{font-size:.8rem}}@media (max-width: 480px){.game-board{padding:4px 6px;gap:4px}.board-header{padding:6px 92px 6px 10px;gap:6px;border-radius:8px}.round-info{font-size:.88rem}.deck-count{font-size:.72rem;padding:3px 7px}.other-players-area{gap:5px}.other-player{min-width:108px;max-width:135px;padding:6px 8px;border-radius:8px}.other-player-name{font-size:.72rem}.other-player-status{font-size:.62rem}.middle-area{max-height:100px}.log-entry{font-size:.68rem}.player-hand{padding:8px 10px;border-radius:var(--radius)}.hand-header{margin-bottom:6px}.hand-label{font-size:.82rem}.token-count{font-size:.68rem}.hand-cards{gap:6px}.turn-prompt,.forced-prompt,.eliminated-prompt{font-size:.75rem;margin-top:4px}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--overlay);display:flex;align-items:center;justify-content:center;z-index:50;padding:20px;animation:fadeIn .2s ease-out;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}.modal{background:var(--surface);border-radius:var(--radius-xl);padding:32px;max-width:440px;width:100%;box-shadow:var(--shadow-xl);animation:modalIn .25s ease-out;max-height:90vh;overflow-y:auto;border:1px solid var(--border-light)}.modal h3{font-size:1.25rem;margin-bottom:16px;color:var(--text)}.modal-note{font-size:.82rem;color:var(--text-secondary);margin-bottom:16px;line-height:1.4}.modal-section{margin-bottom:18px}.modal-label{display:block;font-size:.78rem;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px}.modal-actions{display:flex;gap:8px;margin-top:20px}.target-list{display:flex;flex-direction:column;gap:5px}.target-btn{padding:11px 16px;border:1.5px solid var(--border);border-radius:var(--radius);background:var(--surface);font-size:.9rem;font-weight:500;cursor:pointer;text-align:left;transition:all .15s;font-family:Inter,sans-serif;color:var(--text)}.target-btn:hover{border-color:var(--accent);background:var(--accent-lighter)}.target-btn.selected{border-color:var(--accent);background:var(--accent-light);color:var(--accent);font-weight:600}.guess-list{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.guess-btn{padding:8px 4px;border:1.5px solid var(--border);border-radius:var(--radius);background:var(--surface);cursor:pointer;text-align:center;transition:all .15s;font-family:Inter,sans-serif;color:var(--text)}.guess-btn:hover{border-color:var(--accent);background:var(--accent-lighter)}.guess-btn.selected{border-color:var(--accent);background:var(--accent-light)}.guess-value{display:block;font-weight:700;font-size:1.05rem;font-family:Playfair Display,serif;color:var(--text)}.guess-name{display:block;font-size:.65rem;color:var(--text-secondary);margin-top:1px}.modal-chancellor .chancellor-cards{display:flex;gap:10px;justify-content:center;margin:20px 0}.chancellor-info{text-align:center;font-size:.85rem;color:var(--text-secondary);margin-bottom:12px}.priest-reveal-card{display:flex;justify-content:center;margin:16px 0}.modal-round-summary{max-width:460px;text-align:center}.modal-round-summary h2{font-size:1.4rem;color:var(--text);margin-bottom:18px}.round-winner{margin-bottom:20px;padding:16px;background:var(--accent-light);border-radius:var(--radius);border:1px solid var(--accent)}.winner-label{font-family:Playfair Display,serif;font-size:1.25rem;font-weight:700;color:var(--accent);display:block}.winner-reason{font-size:.78rem;color:var(--text-secondary);margin-top:4px}.revealed-hands{margin-bottom:16px;text-align:left}.revealed-hands h4{font-size:.85rem;margin-bottom:8px;color:var(--text-secondary)}.revealed-hand{display:flex;align-items:center;gap:10px;padding:5px 0}.revealed-name{font-weight:500;min-width:80px;font-size:.88rem}.spy-bonus{background:var(--warning-bg);color:var(--warning);padding:10px 16px;border-radius:var(--radius);font-size:.85rem;font-weight:600;margin-bottom:16px;animation:tokenBounce .6s ease-out}.round-standings{text-align:left;margin-bottom:20px}.round-standings h4{font-size:.85rem;margin-bottom:8px;color:var(--text-secondary)}.standing-row{display:flex;justify-content:space-between;align-items:center;padding:7px 10px;background:var(--bg-secondary);border-radius:6px;margin-bottom:4px;font-size:.85rem}.modal-help{max-width:520px;text-align:left}.modal-help h3{text-align:center;margin-bottom:20px}.help-section{margin-bottom:18px}.help-section h4{font-size:.9rem;color:var(--accent);margin-bottom:8px}.help-section p,.help-section li{font-size:.82rem;color:var(--text-secondary);line-height:1.5}.help-section ol,.help-section ul{padding-left:18px}.help-section li{margin-bottom:4px}.help-cards-table{width:100%;border-collapse:collapse;font-size:.78rem;margin-top:6px}.help-cards-table th{text-align:left;padding:5px 6px;font-weight:600;color:var(--text-secondary);border-bottom:1.5px solid var(--border);font-size:.7rem;text-transform:uppercase;letter-spacing:.04em}.help-cards-table td{padding:5px 6px;border-bottom:1px solid var(--border-light);color:var(--text-secondary);vertical-align:top}.help-cards-table td:first-child{font-weight:700;color:var(--text);white-space:nowrap}@media (max-width: 768px){.modal-overlay{padding:0;align-items:flex-end}.modal{padding:24px 20px;max-height:88vh;border-radius:var(--radius-xl) var(--radius-xl) 0 0;animation:slideUp .3s ease-out}.modal h3{font-size:1.1rem}.target-btn{padding:12px 14px}.modal-chancellor .chancellor-cards{gap:8px}.modal-round-summary h2{font-size:1.15rem}}@media (max-width: 480px){.modal{padding:20px 16px;max-height:92vh}.modal h3{font-size:1rem}.modal-note{font-size:.75rem}.guess-list{gap:3px}.guess-btn{padding:6px 3px}.guess-value{font-size:.9rem}.guess-name{font-size:.55rem}.target-btn{padding:10px 12px;font-size:.85rem}.standing-row{font-size:.78rem;padding:5px 8px}.help-cards-table{font-size:.7rem}.help-cards-table th{font-size:.62rem;padding:4px}.help-cards-table td{padding:4px}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes modalIn{0%{opacity:0;transform:scale(.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes tokenBounce{0%{transform:scale(.3);opacity:0}50%{transform:scale(1.15)}to{transform:scale(1);opacity:1}}@keyframes toastIn{0%{opacity:0;transform:translate(-50%) translateY(20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.game-board,.other-player{animation:fadeIn .3s ease-out}.player-hand{animation:slideUp .35s ease-out}.hand-cards .card{animation:slideUp .3s ease-out}.card-clickable:not(.card-disabled):active{transform:translateY(-2px) scale(.98)}body,.card-face,.modal,.game-log,.other-player,.player-hand,.board-header,.landing-card,.lobby-card,.game-over-card{transition:background-color .3s ease,border-color .3s ease,color .3s ease,box-shadow .3s ease}:root,[data-theme=light]{--cn-red: #d32f2f;--cn-red-light: rgba(211, 47, 47, .12);--cn-red-bg: #ffcdd2;--cn-blue: #1565c0;--cn-blue-light: rgba(21, 101, 192, .12);--cn-blue-bg: #bbdefb;--cn-neutral: #8d6e63;--cn-neutral-bg: #efebe9;--cn-assassin: #212121;--cn-assassin-bg: #424242;--cn-card-bg: #f5f0e8;--cn-card-border: #d4c9b8;--cn-card-hover: #ede6da}[data-theme=dark]{--cn-red: #ef5350;--cn-red-light: rgba(239, 83, 80, .18);--cn-red-bg: #b71c1c;--cn-blue: #42a5f5;--cn-blue-light: rgba(66, 165, 245, .18);--cn-blue-bg: #0d47a1;--cn-neutral: #a1887f;--cn-neutral-bg: #4e342e;--cn-assassin: #e0e0e0;--cn-assassin-bg: #1a1a1a;--cn-card-bg: #2a2a3a;--cn-card-border: #3a3a4a;--cn-card-hover: #333346}.game-picker{max-width:500px}.game-picker-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:24px}.game-picker-option{display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px 16px;border:2px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);cursor:pointer;transition:all .2s ease}.game-picker-option:hover{border-color:var(--accent);background:var(--surface-hover);transform:translateY(-2px);box-shadow:var(--shadow-lg)}.game-picker-icon{font-size:2.5rem;line-height:1}.game-picker-name{font-size:1.2rem;font-weight:700;color:var(--text)}.game-picker-info{font-size:.8rem;color:var(--text-tertiary)}.game-picker-desc{font-size:.85rem;color:var(--text-secondary);text-align:center}.cn-lobby{max-width:640px}.cn-unassigned{margin-bottom:16px;padding:12px;background:var(--bg-secondary);border-radius:var(--radius)}.cn-unassigned h3{font-size:.9rem;color:var(--text-secondary);margin-bottom:8px}.cn-teams-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:20px 0}.cn-team{padding:16px;border-radius:var(--radius-lg);border:2px solid var(--border)}.cn-team-red{border-color:var(--cn-red);background:var(--cn-red-light)}.cn-team-blue{border-color:var(--cn-blue);background:var(--cn-blue-light)}.cn-team-title{font-size:1.1rem;margin-bottom:12px;text-align:center}.cn-red-text{color:var(--cn-red)}.cn-blue-text{color:var(--cn-blue)}.cn-role-section{margin-bottom:12px}.cn-role-section h4{font-size:.85rem;color:var(--text-secondary);margin-bottom:6px;text-transform:uppercase;letter-spacing:.5px}.cn-player-slot{padding:6px 10px;margin-bottom:4px;background:var(--surface);border-radius:var(--radius);font-size:.9rem;color:var(--text)}.cn-disconnected{opacity:.5}.cn-join-btn{width:100%;margin-top:4px}.cn-join-red{border-color:var(--cn-red);color:var(--cn-red)}.cn-join-blue{border-color:var(--cn-blue);color:var(--cn-blue)}.cn-board-container{min-height:100vh;padding:12px;display:flex;flex-direction:column;align-items:center;gap:10px;background:var(--bg)}.cn-scorebar{display:flex;gap:16px;justify-content:center;width:100%;max-width:600px}.cn-score{display:flex;flex-direction:column;align-items:center;padding:8px 24px;border-radius:var(--radius);opacity:.7;transition:all .3s ease}.cn-score-active{opacity:1;transform:scale(1.05)}.cn-score-red{background:var(--cn-red-light);color:var(--cn-red)}.cn-score-blue{background:var(--cn-blue-light);color:var(--cn-blue)}.cn-score-label{font-size:.75rem;text-transform:uppercase;letter-spacing:1px;font-weight:600}.cn-score-value{font-size:1.5rem;font-weight:700}.cn-role-badge{display:flex;align-items:center;gap:12px}.cn-badge{padding:4px 12px;border-radius:20px;font-size:.8rem;font-weight:600;text-transform:capitalize}.cn-badge-red{background:var(--cn-red-light);color:var(--cn-red)}.cn-badge-blue{background:var(--cn-blue-light);color:var(--cn-blue)}.cn-badge-none{background:var(--bg-secondary);color:var(--text-secondary)}.cn-room-code{font-size:.8rem;color:var(--text-tertiary);font-family:monospace}.cn-clue-display{display:flex;align-items:center;gap:10px;padding:8px 20px;border-radius:var(--radius);font-size:1rem}.cn-clue-red{background:var(--cn-red-light);color:var(--cn-red)}.cn-clue-blue{background:var(--cn-blue-light);color:var(--cn-blue)}.cn-clue-label{font-weight:500;opacity:.7}.cn-clue-display .cn-clue-word{font-weight:700;font-size:1.2rem;text-transform:uppercase}.cn-clue-for{font-weight:700;font-size:1.2rem}.cn-guesses-left{font-size:.8rem;opacity:.7}.cn-clue-waiting{font-style:italic;opacity:.8}.cn-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(4px,1vw,8px);width:100%;max-width:700px}.cn-card{aspect-ratio:1.4 / 1;display:flex;align-items:center;justify-content:center;padding:4px;border:2px solid var(--cn-card-border);border-radius:var(--radius);background:var(--cn-card-bg);cursor:default;transition:all .2s ease;position:relative;overflow:hidden}.cn-card-word{font-size:clamp(.55rem,1.8vw,.85rem);font-weight:700;text-transform:uppercase;text-align:center;line-height:1.1;color:var(--text);word-break:break-word}.cn-card-clickable{cursor:pointer;border-color:var(--accent)}.cn-card-clickable:hover{background:var(--cn-card-hover);transform:scale(1.03);box-shadow:var(--shadow)}.cn-card-revealed{border-color:transparent}.cn-card-revealed .cn-card-word{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.3)}.cn-card-red{background:var(--cn-red)}.cn-card-blue{background:var(--cn-blue)}.cn-card-neutral{background:var(--cn-neutral)}.cn-card-assassin{background:var(--cn-assassin)}.cn-card-spymaster{border-style:dashed}.cn-card-sm-red{border-color:var(--cn-red);background:var(--cn-red-light)}.cn-card-sm-red .cn-card-word{color:var(--cn-red)}.cn-card-sm-blue{border-color:var(--cn-blue);background:var(--cn-blue-light)}.cn-card-sm-blue .cn-card-word{color:var(--cn-blue)}.cn-card-sm-neutral{border-color:var(--cn-neutral);background:var(--cn-neutral-bg)}.cn-card-sm-neutral .cn-card-word{color:var(--cn-neutral)}.cn-card-sm-assassin{border-color:var(--cn-assassin);background:var(--cn-assassin-bg)}.cn-card-sm-assassin .cn-card-word,[data-theme=dark] .cn-card-sm-assassin .cn-card-word{color:var(--cn-assassin)}.cn-card-unrevealed-final{opacity:.7}.cn-controls{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;max-width:700px;min-height:48px}.cn-clue-input{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:center}.cn-clue-word-input{width:160px}.cn-clue-number{display:flex;align-items:center;gap:6px}.cn-stepper-btn{width:32px;height:32px;padding:0;display:flex;align-items:center;justify-content:center;font-size:1.1rem;font-weight:700}.cn-clue-count{font-size:1.2rem;font-weight:700;min-width:24px;text-align:center;color:var(--text)}.cn-pass-btn{min-width:140px}.cn-waiting{font-size:.9rem;color:var(--text-secondary);font-style:italic}.cn-error{cursor:pointer}.cn-log{width:100%;max-width:700px;margin-top:8px}.cn-log-toggle{width:100%;text-align:center}.cn-log-entries{margin-top:6px;padding:8px;background:var(--bg-secondary);border-radius:var(--radius);max-height:200px;overflow-y:auto}.cn-log-entry{padding:4px 8px;font-size:.8rem;color:var(--text-secondary);border-left:3px solid transparent;margin-bottom:2px}.cn-log-red{border-left-color:var(--cn-red)}.cn-log-blue{border-left-color:var(--cn-blue)}.cn-gameover{text-align:center;padding:20px;border-radius:var(--radius-lg);margin-bottom:8px}.cn-gameover-red{background:var(--cn-red-light);color:var(--cn-red)}.cn-gameover-blue{background:var(--cn-blue-light);color:var(--cn-blue)}.cn-gameover-title{font-size:2rem;margin-bottom:4px}.cn-gameover-reason{font-size:1rem;opacity:.8}.cn-grid-gameover .cn-card{cursor:default}.cn-gameover-actions{display:flex;gap:12px;justify-content:center;margin-top:16px}@media (max-width: 768px){.game-picker-grid,.cn-teams-grid{grid-template-columns:1fr}.cn-grid{gap:3px}.cn-card-word{font-size:clamp(.5rem,2.5vw,.75rem)}.cn-scorebar{gap:10px}.cn-score{padding:6px 16px}.cn-score-value{font-size:1.2rem}}@media (max-width: 480px){.cn-board-container{padding:8px 4px;gap:6px}.cn-clue-input{flex-direction:column}.cn-clue-word-input{width:100%}.cn-card{border-radius:4px;border-width:1.5px}.cn-card-word{font-size:clamp(.45rem,3vw,.7rem)}.cn-clue-display{flex-wrap:wrap;justify-content:center;font-size:.9rem;padding:6px 12px}.cn-gameover-title{font-size:1.5rem}}
