*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0a0c12;--bg-gradient: linear-gradient(170deg, #0a0c12 0%, #111520 40%, #0d1018 100%);--surface: #141821;--surface2: #1c2030;--surface-elevated: #1e2236;--border: #2a3045;--border-light: #353d58;--text: #e4e4ec;--text-dim: #7d8296;--text-muted: #555a6e;--accent: #4a7cee;--accent-hover: #6b96ff;--accent-glow: rgba(74, 124, 238, .2);--danger: #dc3545;--danger-hover: #f04050;--danger-glow: rgba(220, 53, 69, .2);--success: #28c760;--success-glow: rgba(40, 199, 96, .25);--warning: #e8a832;--warning-dim: #c4922e;--criminal: #dc3545;--criminal-bg: rgba(220, 53, 69, .08);--interrogator: #4a7cee;--interrogator-bg: rgba(74, 124, 238, .08);--card-bg: #181c28;--card-border: #2e3450;--card-shadow: 0 2px 8px rgba(0,0,0,.3);--radius: 8px;--radius-lg: 12px;--radius-xl: 16px}html{font-size:16px}body{font-family:Segoe UI,-apple-system,BlinkMacSystemFont,Roboto,sans-serif;background:var(--bg-gradient);background-attachment:fixed;color:var(--text);min-height:100vh;line-height:1.5}#root{max-width:640px;margin:0 auto;padding:16px;min-height:100vh;display:flex;flex-direction:column}h1{font-size:2.8rem;letter-spacing:.2em;text-align:center;text-transform:uppercase;color:var(--text);text-shadow:0 0 30px var(--accent-glow),0 1px 0 rgba(0,0,0,.5)}h2{font-size:1.4rem;text-align:center;margin-bottom:8px;font-weight:600}h3{font-size:1.1rem;margin-bottom:8px;font-weight:600}h4{font-size:.95rem;margin:16px 0 6px;font-weight:600;color:var(--text)}.subtitle{text-align:center;color:var(--text-dim);font-size:.95rem;letter-spacing:.06em;text-transform:uppercase}button{font-family:inherit;font-size:1rem;cursor:pointer;border:none;border-radius:var(--radius);padding:10px 20px;transition:background .15s,transform .1s,box-shadow .15s;font-weight:500}button:active:not(:disabled){transform:scale(.97)}button:disabled{opacity:.35;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff;box-shadow:0 2px 12px var(--accent-glow)}.btn-primary:hover:not(:disabled){background:var(--accent-hover);box-shadow:0 4px 20px var(--accent-glow)}.btn-secondary{background:var(--surface2);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){background:var(--border);border-color:var(--border-light)}.btn-danger{background:var(--danger);color:#fff;box-shadow:0 2px 12px var(--danger-glow)}.btn-danger:hover:not(:disabled){background:var(--danger-hover);box-shadow:0 4px 20px var(--danger-glow)}.btn-large{padding:14px 36px;font-size:1.1rem;font-weight:600;border-radius:var(--radius-lg);min-height:50px}.btn-caption{color:var(--text-muted);font-size:.82rem;text-align:center;margin-top:6px}.link-btn{background:none;color:var(--accent);padding:2px 6px;font-size:.8rem;text-decoration:underline}.btn-icon{width:32px;height:32px;border-radius:50%;padding:0;display:inline-flex;align-items:center;justify-content:center;font-size:1rem;font-weight:700;background:var(--surface2);color:var(--text-dim);border:1px solid var(--border);flex-shrink:0}.btn-icon:hover{background:var(--border);color:var(--text)}.btn-help{font-size:.95rem}.phase-header-row{display:flex;align-items:center;justify-content:center;gap:10px;width:100%}.phase-header-row h2{margin-bottom:0}.setup-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;gap:12px}.setup-logo{text-align:center;margin-bottom:8px}.setup-logo .subtitle{margin-bottom:0;margin-top:4px}.setup-form{width:100%;display:flex;flex-direction:column;gap:16px;margin-top:16px}.form-row{display:flex;gap:12px}.form-row>label{flex:1}label{display:flex;flex-direction:column;gap:4px;font-size:.85rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;font-weight:500}input[type=text],input[type=number]{font-family:inherit;font-size:1rem;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);transition:border-color .15s}input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.game-container{display:flex;flex-direction:column;flex:1}.game-header{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--border);margin-bottom:20px;font-size:.82rem;color:var(--text-dim)}.header-title{font-weight:700;letter-spacing:.15em;color:var(--text);font-size:.95rem;text-transform:uppercase}.header-round{font-weight:600}.header-score{font-variant-numeric:tabular-nums}.game-main{flex:1;display:flex;flex-direction:column}.phase{display:flex;flex-direction:column;align-items:center;gap:16px;flex:1}.team-label{font-size:1.1rem}.instruction{color:var(--warning);font-weight:600}.clue-card{background:var(--card-bg);border:2px solid var(--card-border);border-radius:var(--radius-lg);padding:16px 20px;text-align:center;cursor:pointer;-webkit-user-select:none;user-select:none;transition:border-color .15s,transform .15s,box-shadow .15s;min-width:140px;position:relative;box-shadow:var(--card-shadow)}.card-label{display:block;font-size:.65rem;text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted);margin-bottom:4px;font-weight:600}.clue-card-hidden{border-style:dashed;border-color:var(--text-muted);background:repeating-linear-gradient(-45deg,var(--card-bg),var(--card-bg) 8px,rgba(255,255,255,.015) 8px,rgba(255,255,255,.015) 16px)}.clue-card-true{border-color:var(--success);box-shadow:var(--card-shadow),0 0 12px var(--success-glow)}.clue-card-distractor{border-color:var(--warning)}.clue-card-table{border-color:var(--accent);cursor:default;border-left:4px solid var(--accent)}.clue-card-selectable{cursor:pointer}.clue-card-selectable:hover{border-color:var(--accent-hover);transform:translateY(-2px);box-shadow:var(--card-shadow),0 4px 16px var(--accent-glow)}.clue-card-selected{border-color:var(--success);box-shadow:var(--card-shadow),0 0 20px var(--success-glow);transform:translateY(-2px);border-left-color:var(--success)}.card-name{font-size:1.15rem;font-weight:600;display:block}.tap-hint{font-size:.72rem;color:var(--text-muted);display:block;margin-top:4px}.card-reveal{display:flex;flex-direction:column;align-items:center;gap:8px}.distractor-list{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;cursor:pointer}.place-cards{display:flex;flex-direction:column;align-items:center;gap:12px;width:100%}.card-arrange{display:flex;flex-direction:column;gap:8px;width:100%}.arrange-row{display:flex;align-items:center;gap:8px;justify-content:center}.clue-card-arrange{border-color:var(--border);border-left:4px solid var(--border);cursor:default;flex:1;max-width:300px}.arrow-btn{background:var(--surface2);color:var(--text-dim);border:1px solid var(--border);width:38px;height:38px;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;font-size:.8rem;padding:0}.arrow-btn:hover:not(:disabled){background:var(--border);color:var(--text)}.table-cards{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;width:100%}.table-cards .clue-card{flex:1;min-width:120px;max-width:200px}.interrogation-actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;width:100%}.timer{width:100%;max-width:420px;position:relative;background:var(--surface2);border-radius:var(--radius-lg);height:44px;overflow:hidden;border:1px solid var(--border)}.timer-bar{height:100%;background:linear-gradient(90deg,var(--accent),#6b96ff);transition:width 1s linear;border-radius:var(--radius-lg)}.timer-urgent .timer-bar{background:linear-gradient(90deg,var(--danger),#ff6070)}.timer-text{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.15rem;text-shadow:0 1px 3px rgba(0,0,0,.5)}.team-roles{text-align:center;font-size:.95rem}.role-criminal{color:var(--criminal);font-weight:700}.role-interrogator{color:var(--interrogator);font-weight:700}.rule-reminder{color:var(--warning);text-align:center;font-size:.9rem;background:#e8a8320f;border:1px solid rgba(232,168,50,.15);border-radius:var(--radius);padding:8px 16px}.summary-details{background:var(--surface);padding:16px 20px;border-radius:var(--radius-lg);width:100%;display:flex;flex-direction:column;gap:6px;border:1px solid var(--border)}.summary-violation{color:var(--danger)}.violation-text{font-weight:700;font-size:1.1rem}.true-clue-reveal,.correct{color:var(--success);font-weight:700}.incorrect{color:var(--danger);font-weight:700}.scoreboard{display:flex;gap:16px;justify-content:center;width:100%}.score-team{display:flex;flex-direction:column;align-items:center;background:var(--surface);padding:12px 24px;border-radius:var(--radius-lg);min-width:120px;border:1px solid var(--border)}.score-name{font-size:.82rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em}.score-value{font-size:2rem;font-weight:700;font-variant-numeric:tabular-nums}.role-switch-preview{background:var(--surface);padding:16px 24px;border-radius:var(--radius-lg);text-align:center;border:1px solid var(--border)}.deck-info{color:var(--text-muted);font-size:.82rem}.reshuffle-prompt{background:var(--surface2);border:1px solid var(--warning-dim);border-radius:var(--radius-lg);padding:16px;text-align:center;display:flex;flex-direction:column;gap:8px}.win-screen{justify-content:center}.winner-title{font-size:2.5rem;color:var(--success);text-shadow:0 0 30px var(--success-glow);text-transform:uppercase;letter-spacing:.1em}.final-scoreboard{margin:16px 0}.scored-cards-section{display:flex;gap:16px;width:100%;justify-content:center}.scored-column{flex:1;max-width:250px;background:var(--surface);padding:12px 16px;border-radius:var(--radius-lg);border:1px solid var(--border)}.scored-column h3{font-size:.85rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim);border-bottom:1px solid var(--border);padding-bottom:6px;margin-bottom:8px}.scored-list{list-style:none}.scored-list li{padding:4px 0;border-bottom:1px solid var(--border);font-size:.88rem}.scored-list li:last-child{border-bottom:none}.no-cards{color:var(--text-muted);font-size:.82rem;font-style:italic}.win-actions{display:flex;gap:12px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.modal-content{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);max-width:580px;width:100%;max-height:85vh;overflow-y:auto;box-shadow:0 8px 40px #00000080}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px 12px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--surface);z-index:1;border-radius:var(--radius-xl) var(--radius-xl) 0 0}.modal-header h2{text-align:left;margin-bottom:0;font-size:1.2rem}.modal-close{width:36px;height:36px;border-radius:50%;font-size:1.4rem;line-height:1}.htp-tabs{display:flex;border-bottom:1px solid var(--border);padding:0 12px;position:sticky;top:55px;background:var(--surface);z-index:1}.htp-tab{flex:1;padding:10px 8px;font-size:.82rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim);background:none;border-radius:0;border-bottom:2px solid transparent;transition:color .15s,border-color .15s}.htp-tab:hover{color:var(--text)}.htp-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.htp-body{padding:20px}.htp-section{line-height:1.6;color:var(--text)}.htp-section ul{margin-left:20px;margin-bottom:8px}.htp-section li{margin-bottom:4px;font-size:.92rem}.htp-section li::marker{color:var(--text-dim)}.htp-section p{margin-bottom:8px;font-size:.92rem}.htp-section em{color:var(--warning);font-style:normal;font-weight:500}.htp-intro{color:var(--text-dim);margin-bottom:16px}.htp-steps{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.htp-step{display:flex;gap:12px;align-items:flex-start;background:var(--surface2);padding:12px 16px;border-radius:var(--radius);border-left:3px solid var(--accent)}.htp-step-num{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--accent);color:#fff;font-weight:700;font-size:.85rem;border-radius:50%;flex-shrink:0}.htp-callout{background:#4a7cee14;border:1px solid rgba(74,124,238,.2);border-radius:var(--radius);padding:12px 16px;font-size:.9rem;color:var(--text);text-align:center}.htp-role-box{padding:10px 14px;border-radius:var(--radius);margin-bottom:8px;font-size:.9rem}.htp-criminal{background:var(--criminal-bg);border:1px solid rgba(220,53,69,.2)}.htp-interrogator{background:var(--interrogator-bg);border:1px solid rgba(74,124,238,.2)}.htp-examples{display:flex;gap:12px;margin-bottom:12px;flex-wrap:wrap}.htp-example{flex:1;min-width:200px;padding:10px 14px;border-radius:var(--radius);font-size:.88rem}.htp-example ul{margin-left:16px;margin-top:4px}.htp-good{background:#28c7600f;border:1px solid rgba(40,199,96,.15)}.htp-bad{background:#dc35450f;border:1px solid rgba(220,53,69,.15)}.htp-walkthrough{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px;margin-bottom:12px;font-size:.9rem}.htp-walkthrough p{margin-bottom:6px}.htp-faq-item{padding:10px 0;border-bottom:1px solid var(--border);font-size:.9rem}.htp-faq-item:last-child{border-bottom:none}.htp-faq-item strong{display:block;margin-bottom:4px;color:var(--text)}.htp-faq-item p{color:var(--text-dim);margin-bottom:0}.htp-house-rule{background:var(--surface2);border-radius:var(--radius);padding:10px 14px;margin-bottom:8px;font-size:.9rem}.htp-house-rule strong{display:block;margin-bottom:2px}.htp-house-rule p{color:var(--text-dim);margin-bottom:0}.theme-picker{display:flex;flex-direction:column;align-items:center;gap:6px;width:100%}.theme-picker-label{font-size:.85rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;font-weight:500}.theme-swatches{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.theme-swatch{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 10px;background:var(--surface2);border:2px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:border-color .15s,box-shadow .15s;min-width:70px}.theme-swatch:hover{border-color:var(--accent)}.theme-swatch-active{border-color:var(--accent);box-shadow:0 0 12px var(--accent-glow)}.swatch-colors{display:flex;gap:4px}.swatch-dot{width:16px;height:16px;border-radius:50%;border:1px solid rgba(128,128,128,.3)}.swatch-name{font-size:.7rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.03em;font-weight:600}.btn-theme{font-size:.75rem;padding:4px 8px;background:var(--surface2);color:var(--text-dim);border:1px solid var(--border);border-radius:var(--radius)}.btn-theme:hover{background:var(--border);color:var(--text)}.btn-menu{font-size:1.1rem}.game-menu{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:12px 16px;margin-bottom:16px;display:flex;flex-direction:column;gap:10px}.game-menu-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.game-menu-label{font-size:.82rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;font-weight:500}.btn-menu-exit{width:100%;padding:10px;font-size:.9rem}[data-theme=noir]{--bg: #07090e;--bg-gradient: linear-gradient(170deg, #07090e 0%, #0e1008 40%, #0a0c06 100%);--surface: #0f120c;--surface2: #181c12;--surface-elevated: #1c2016;--border: #2e3322;--border-light: #3d4430;--text: #e8e4d4;--text-dim: #8a8570;--text-muted: #5e5b4a;--accent: #c9a84c;--accent-hover: #e0c060;--accent-glow: rgba(201, 168, 76, .2);--danger: #b83030;--danger-hover: #d04040;--danger-glow: rgba(184, 48, 48, .2);--success: #4a9a3c;--success-glow: rgba(74, 154, 60, .25);--warning: #c9a84c;--warning-dim: #a88e3e;--criminal: #b83030;--criminal-bg: rgba(184, 48, 48, .08);--interrogator: #c9a84c;--interrogator-bg: rgba(201, 168, 76, .08);--card-bg: #12150e;--card-border: #2e3322;--card-shadow: 0 2px 8px rgba(0,0,0,.4)}[data-theme=party]{--bg: #f5f0e6;--bg-gradient: linear-gradient(170deg, #f5f0e6 0%, #efe8d8 40%, #f2ece0 100%);--surface: #fff8ee;--surface2: #f0e8d6;--surface-elevated: #fff4e4;--border: #d4c9b0;--border-light: #c0b498;--text: #2c2418;--text-dim: #6b5e4a;--text-muted: #998a72;--accent: #d4652a;--accent-hover: #e07838;--accent-glow: rgba(212, 101, 42, .18);--danger: #c0392b;--danger-hover: #d64430;--danger-glow: rgba(192, 57, 43, .18);--success: #27ae60;--success-glow: rgba(39, 174, 96, .2);--warning: #d4870a;--warning-dim: #b87608;--criminal: #c0392b;--criminal-bg: rgba(192, 57, 43, .08);--interrogator: #d4652a;--interrogator-bg: rgba(212, 101, 42, .08);--card-bg: #fffcf5;--card-border: #d4c9b0;--card-shadow: 0 2px 8px rgba(80,60,30,.12)}[data-theme=neon]{--bg: #08060e;--bg-gradient: linear-gradient(170deg, #08060e 0%, #0c0a16 40%, #0a0812 100%);--surface: #100e18;--surface2: #181422;--surface-elevated: #1c1828;--border: #2a2440;--border-light: #3a3258;--text: #e4e0f0;--text-dim: #8078a0;--text-muted: #5a5278;--accent: #00e5ff;--accent-hover: #40eeff;--accent-glow: rgba(0, 229, 255, .2);--danger: #ff2070;--danger-hover: #ff4090;--danger-glow: rgba(255, 32, 112, .2);--success: #00ff88;--success-glow: rgba(0, 255, 136, .25);--warning: #ffaa00;--warning-dim: #cc8800;--criminal: #ff2070;--criminal-bg: rgba(255, 32, 112, .1);--interrogator: #00e5ff;--interrogator-bg: rgba(0, 229, 255, .1);--card-bg: #100e18;--card-border: #2a2440;--card-shadow: 0 2px 12px rgba(0,0,0,.4)}.btn-sound{font-size:.95rem;line-height:1}.sound-controls{width:100%;display:flex;flex-direction:column;align-items:center;gap:0}.sound-controls-toggle{display:flex;align-items:center;gap:8px;padding:8px 16px;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-dim);font-size:.85rem;cursor:pointer;transition:border-color .15s,background .15s;width:auto}.sound-controls-toggle:hover{background:var(--border);color:var(--text)}.sound-icon{font-size:1.1rem}.sound-label{text-transform:uppercase;letter-spacing:.04em;font-weight:500}.sound-panel{width:100%;max-width:320px;background:var(--surface);border:1px solid var(--border);border-radius:0 0 var(--radius) var(--radius);border-top:none;padding:10px 16px;display:flex;flex-direction:column;gap:8px}.sound-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.sound-row-label{font-size:.8rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;font-weight:500;min-width:60px}.sound-toggle{font-size:.72rem;font-weight:700;padding:4px 10px;border-radius:var(--radius);background:var(--surface2);color:var(--text-muted);border:1px solid var(--border);cursor:pointer;text-transform:uppercase;letter-spacing:.06em;transition:background .15s,color .15s,border-color .15s;min-width:42px;text-align:center}.sound-toggle:hover{background:var(--border);color:var(--text)}.sound-toggle-on{background:var(--accent);color:#fff;border-color:var(--accent)}.sound-toggle-on:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.sound-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex:1;height:4px;background:var(--border);border-radius:2px;outline:none;cursor:pointer}.sound-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:var(--accent);border:2px solid var(--surface);cursor:pointer;box-shadow:0 1px 4px #0000004d}.sound-slider::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--accent);border:2px solid var(--surface);cursor:pointer;box-shadow:0 1px 4px #0000004d}
