*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{min-width:320px}button{font-family:var(--font);cursor:pointer}input{font-family:var(--font)}h1,h2,h3{font-family:var(--font);font-weight:700}button,input,.target-card{-webkit-tap-highlight-color:transparent}:focus-visible{outline:2px solid rgba(180,165,140,.7);outline-offset:2px}:root{--bg: #12100c;--surface: rgba(180, 165, 140, .05);--border: rgba(180, 165, 140, .12);--border-strong: rgba(180, 165, 140, .25);--text: #e8e0d0;--text-muted: #8b7b65;--text-label: #c8b890;--night-bg-start: #0c0e16;--night-bg-end: #080a12;--night-accent: #8ea4cc;--night-text: #e0e8f4;--night-surface: rgba(140, 165, 210, .08);--night-border: rgba(140, 165, 210, .15);--night-border-strong: rgba(140, 165, 210, .35);--day-bg-start: #1e1a12;--day-bg-end: #181410;--day-accent: #c8a050;--day-text: #e8dcc0;--day-surface: rgba(200, 160, 80, .1);--day-border: rgba(200, 160, 80, .2);--day-border-strong: rgba(200, 160, 80, .35);--mode-public-border: rgba(140, 165, 140, .5);--mode-handoff-border: #c8aa64;--mode-private-border: #c43030;--mode-private-bg: rgba(196, 48, 48, .06);--alive: #a8c4a8;--dead: #c98787;--danger: #c43030;--font: "Courier New", "Courier", monospace;font-family:var(--font);color:var(--text);background:var(--bg);color-scheme:dark;-webkit-tap-highlight-color:transparent;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-shell{width:min(100%,640px);margin:0 auto;padding:16px 16px 48px;min-height:100svh}.top-rail{position:sticky;top:10px;z-index:10;display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:rgba(18,16,12,.95);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border);border-radius:6px;margin-bottom:16px}.brand-mark{font-size:13px;font-weight:700;color:var(--text-label);letter-spacing:1px;font-family:var(--font)}.rail-badges{display:flex;gap:6px;align-items:center}.rail-badge{padding:3px 8px;border:1px solid var(--border-strong);border-radius:3px;font-size:9px;font-weight:700;color:var(--text-label);letter-spacing:1px;text-transform:uppercase}.rules-button{background:none;border:1px solid var(--border);border-radius:3px;color:var(--text-muted);font-size:12px;cursor:pointer;padding:4px 8px;font-family:var(--font)}.scene{border-radius:12px;background:rgba(24,20,16,.98);border:1px solid var(--border);padding:28px 20px;display:flex;flex-direction:column;gap:20px;animation:scene-enter .3s ease forwards;position:relative}.scene--fit{min-height:calc(100svh - 100px)}.scene[data-phase=night]{background:linear-gradient(180deg,var(--night-bg-start),var(--night-bg-end));border-color:var(--night-border)}.scene[data-phase=day],.scene[data-phase=round-resolution]{background:linear-gradient(180deg,var(--day-bg-start),var(--day-bg-end));border-color:var(--day-border)}.scene[data-screen-mode=public]{border-left:4px solid var(--mode-public-border)}.scene[data-screen-mode=handoff]{border-left:4px solid var(--mode-handoff-border)}.scene[data-screen-mode=private]{border-left:4px solid var(--mode-private-border);background-color:var(--mode-private-bg)}.scene-head{display:flex;flex-direction:column;gap:6px}.scene-kicker{font-size:10px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--text-label)}.scene-heading{margin:0}.scene-heading h2{font-size:26px;font-weight:700;text-transform:uppercase;letter-spacing:2px;color:var(--text);margin:0;font-family:var(--font)}.scene-subtitle{font-size:13px;color:var(--text-muted);line-height:1.5}.scene-badge{display:inline-flex;align-items:center;padding:2px 7px;border:1px solid var(--border-strong);border-radius:3px;font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--text-muted)}.scene-body{flex:1;display:flex;flex-direction:column;gap:16px}.scene-footer{margin-top:auto;display:flex;flex-direction:column;gap:10px}.scene-head-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.scene-meta{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.support-copy{margin:6px 0 0;font-size:13px;line-height:1.55;color:var(--text-muted)}.section-label{display:inline-flex;align-items:center;font-size:10px;font-weight:700;letter-spacing:1.8px;text-transform:uppercase;color:var(--text-label)}.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.section-head h3{margin:4px 0 0;font-size:18px;line-height:1.2;color:var(--text)}.field-hint{margin:0;font-size:13px;line-height:1.55;color:var(--text-muted)}.field-error{margin:0;font-size:12px;line-height:1.45;color:#e6a1a1}.compact-list{display:flex;flex-direction:column;gap:8px;margin:0;padding-left:18px;color:var(--text-muted);font-size:12px;line-height:1.55}.compact-list--ordered{padding-left:20px}.button-primary{width:100%;padding:14px;font-family:var(--font);font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:1px;background:var(--surface);border:2px solid var(--border-strong);border-radius:4px;color:var(--text);cursor:pointer;transition:background .16s,border-color .16s,transform .16s}.button-primary:hover{transform:translateY(-1px);border-color:#b4a58c66}.button-primary:disabled{opacity:.35;cursor:not-allowed;transform:none}.button-secondary{width:100%;padding:14px;font-family:var(--font);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:1px;border:1.5px solid var(--border);border-radius:4px;background:transparent;color:var(--text-muted);cursor:pointer;transition:background .16s,border-color .16s,transform .16s}.button-secondary:hover{transform:translateY(-1px);border-color:var(--border-strong)}.button-secondary:disabled{opacity:.35;cursor:not-allowed;transform:none}.button-secondary--compact{width:auto;padding:8px 14px;font-size:10px}.button-ghost{width:auto;align-self:center;padding:10px 20px;background:transparent;border:none;color:var(--text-muted);font-family:var(--font);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1px;cursor:pointer;transition:color .16s,opacity .16s}.button-ghost:hover{color:var(--text)}.button-ghost:disabled{opacity:.25;cursor:not-allowed}.action-dock{display:flex;flex-direction:column;align-items:stretch;gap:10px}.button-row{display:flex;gap:10px}.icon-button{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:none;border:1px solid var(--border);border-radius:4px;color:var(--text-muted);cursor:pointer;font-size:18px;font-family:var(--font)}.icon-button:hover{border-color:var(--border-strong);color:var(--text)}.icon-button:disabled{opacity:.3;cursor:not-allowed}.setup-status{padding:14px 16px;border-left:3px solid;border-radius:0 10px 10px 0;display:flex;flex-direction:column;gap:10px;margin-bottom:4px}.setup-status--ok{border-color:var(--alive);background:rgba(168,196,168,.08);color:var(--alive)}.setup-status--warning{border-color:#c8a060;background:rgba(200,160,96,.06);color:#c8a060}.setup-status--alert{border-color:var(--danger);background:rgba(196,48,48,.08);color:#f0b0b0}.setup-status__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.setup-status__copy{display:flex;flex-direction:column;gap:6px}.setup-status__copy strong{font-size:17px;line-height:1.2}.setup-status__meta{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.setup-status__detail{margin:0;font-size:13px;line-height:1.55;color:var(--text-muted)}.setup-sheet{gap:16px}.setup-sheet__head{align-items:center}.setup-clear-button{padding:0;font-size:10px;letter-spacing:1.4px}.field-hint--setup,.field-error--setup{max-width:44ch}.player-list{display:flex;flex-direction:column;gap:12px}.player-row{display:flex;flex-direction:column;gap:12px;padding:14px;background:rgba(180,165,140,.07);border:1px solid var(--border);border-radius:10px;transition:border-color .16s,background .16s,transform .16s}.player-row--invalid{border-color:#c4303073;background:rgba(196,48,48,.05)}.player-row--dragging{border-color:var(--border-strong);background:rgba(180,165,140,.1);transform:scale(.995)}.player-row-main{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:start}.player-order{display:flex;flex-direction:column;gap:4px;min-width:62px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:rgba(180,165,140,.04)}.player-order__number{font-size:15px;font-weight:700;color:var(--text-label)}.player-order__label{font-size:9px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;color:var(--text-muted)}.player-field{display:flex;flex-direction:column;gap:6px;min-width:0}.text-input{width:100%;min-height:48px;padding:12px 14px;border:1px solid var(--border);border-radius:8px;background:rgba(18,16,12,.45);color:var(--text);font-family:var(--font);font-size:15px;line-height:1.2;transition:border-color .16s,background .16s}.text-input::placeholder{color:var(--text-muted)}.text-input:focus{outline:none;border-color:var(--border-strong);background:rgba(18,16,12,.65)}.player-drag-handle{display:flex;align-items:center;justify-content:center;min-height:48px;padding:0 6px;color:var(--text-muted);font-size:18px;opacity:.55;-webkit-user-select:none;user-select:none}.player-row-actions{display:flex;flex-wrap:wrap;gap:8px}.row-action-button{flex:1 1 96px;min-height:40px;padding:10px 12px;border:1px solid var(--border);border-radius:999px;background:transparent;color:var(--text-muted);font-family:var(--font);font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;transition:border-color .16s,color .16s,background .16s}.row-action-button:hover{border-color:var(--border-strong);color:var(--text);background:rgba(180,165,140,.06)}.row-action-button:disabled{opacity:.3;cursor:not-allowed}.row-action-button--danger{color:#f0b0b0;border-color:#c4303047}.setup-footer-demo{align-self:center}.setup-sheet-footer{display:flex;align-items:center;gap:10px;margin-top:4px}.setup-sheet-footer .button-secondary{flex:1}.action-dock--setup{align-items:stretch}.setup-utility-row{flex-shrink:0}.setup-utility-row--inline{display:flex;justify-content:center;margin-top:8px}.panel-card--public{background:rgba(180,165,140,.07)}.panel-card--muted{background:rgba(180,165,140,.035)}.panel-grid--setup,.setup-order-summary,.setup-roles-card{gap:12px}.setup-order-preview{display:flex;flex-wrap:wrap;gap:8px}.setup-order-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;border:1px solid var(--border);background:rgba(180,165,140,.04);color:var(--text);font-size:11px;line-height:1.3}.setup-summary-toggle{align-self:flex-start;padding:0}.setup-summary-list{margin-top:2px}.role-stepper-list{display:flex;flex-direction:column;gap:10px}.role-stepper{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:var(--surface);border:1px solid var(--border);border-radius:5px}.role-inline{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--text)}.stepper-controls{display:flex;align-items:center;gap:10px}.stepper-value{font-size:16px;font-weight:700;color:var(--text);min-width:24px;text-align:center}.role-preview-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.role-preview-card{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:12px;display:flex;flex-direction:column;gap:6px}.role-preview-card__emoji{font-size:24px}.role-preview-card__name{font-size:12px;font-weight:700;color:var(--text);text-transform:uppercase;letter-spacing:1px}.role-preview-card__desc{font-size:11px;color:var(--text-muted);line-height:1.4}.spotlight-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:24px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px}.spotlight-card--handoff{border-color:var(--mode-handoff-border);background:rgba(200,170,100,.06)}.spotlight-name{font-size:28px;font-weight:700;color:var(--mode-handoff-border);text-transform:uppercase;letter-spacing:2px}.panel-card{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:16px;display:flex;flex-direction:column;gap:8px}.panel-card--private{background:var(--mode-private-bg);border-color:var(--mode-private-border)}.panel-label{font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--text-muted)}.panel-value{font-size:16px;font-weight:700;color:var(--text)}.section-head-actions{display:flex;align-items:center;gap:8px}.panel-grid{display:flex;flex-direction:column;gap:8px}@media (min-width: 360px){.panel-grid--two-col{display:grid;grid-template-columns:1fr 1fr;gap:8px}}.target-list{display:flex;flex-direction:column;gap:6px}.target-card{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;background:var(--surface);border:1px solid var(--border);border-radius:5px;cursor:pointer;font-size:14px;color:var(--text);transition:border-color .16s,background .16s;text-align:left;width:100%;font-family:var(--font)}.target-card__identity{flex:1 1 auto;min-width:0}.target-card__meta{display:inline-flex;align-items:center;justify-content:flex-end;gap:8px;flex-shrink:0}.target-card__vote-markers{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border:1px solid rgba(196,48,48,.32);border-radius:999px;background:rgba(196,48,48,.12)}.target-card__vote-marker{display:inline-flex;align-items:center;justify-content:center;font-size:13px;line-height:1}.target-card__tag{flex-shrink:0;padding:2px 8px;border:1px solid var(--border-strong);border-radius:999px;font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--text-muted)}.target-card:hover{border-color:var(--border-strong);background:rgba(180,165,140,.08)}.target-card.is-selected{border:2px solid var(--night-border-strong);background:var(--night-surface);color:var(--night-text);font-weight:600}.target-card.is-selected .target-card__tag{border-color:currentColor;color:inherit}.target-card.is-selected .target-card__vote-markers{border-color:#c4303075;background:rgba(196,48,48,.18)}.scene[data-phase=day] .target-card.is-selected{border-color:var(--day-border-strong);background:var(--day-surface);color:var(--day-text)}.confidential-stamp{display:inline-flex;align-items:center;padding:4px 10px;border:2px solid var(--danger);border-radius:3px;font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:#e04040}.folder-tab{position:absolute;top:0;right:16px;background:rgba(180,165,140,.12);border:1px solid var(--border);padding:4px 12px;border-radius:0 0 5px 5px;font-size:9px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--text-label)}.meta-pill{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:10px;font-size:11px;font-weight:500}.meta-pill--safe{background:rgba(168,196,168,.12);color:var(--alive)}.meta-pill--alert{background:rgba(196,48,48,.12);color:var(--danger)}.meta-pill--ghost{background:var(--surface);color:var(--text-muted)}.alive-badge{font-size:11px;color:var(--alive);font-weight:600}.dead-badge{font-size:11px;color:var(--dead);font-weight:600;text-decoration:line-through}.briefing-carousel{display:flex;flex-direction:column;gap:20px}.briefing-slide{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:28px 20px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:14px}.briefing-slide__emoji{font-size:40px}.briefing-slide__title{font-size:18px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--text)}.briefing-slide__body{font-size:13px;color:var(--text-muted);line-height:1.6;max-width:280px}.briefing-dots{display:flex;justify-content:center;gap:8px}.briefing-dot{width:8px;height:8px;border-radius:50%;background:var(--border-strong);transition:background .2s}.briefing-dot.is-active{background:var(--text-label)}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;background:rgba(5,6,8,.78);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;padding:16px;animation:overlay-enter .2s ease}.dialog-panel{width:100%;max-width:440px;background:rgba(20,16,14,.98);border:1px solid var(--border);border-radius:12px;padding:28px 24px;display:flex;flex-direction:column;gap:16px;position:relative;animation:dialog-enter .25s 40ms both ease}.dialog-badge-row{display:flex;flex-wrap:wrap;gap:8px}.dialog-heading{display:flex;flex-direction:column;gap:6px}.dialog-heading h3{margin:0;font-size:24px;line-height:1.2;color:var(--text)}.dialog-heading--execution{align-items:flex-start}.execution-confirm-mark{font-size:28px;line-height:1}.inspection-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;background:rgba(5,6,8,.82);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;animation:overlay-enter .2s ease}.inspection-card{background:rgba(20,16,14,.98);border:1px solid var(--mode-private-border);border-radius:10px;padding:32px 40px;text-align:center;display:flex;flex-direction:column;gap:16px;animation:dialog-enter .3s 80ms both ease}.inspection-card__timer{display:flex;flex-direction:column;gap:8px;width:min(100%,280px);margin:0 auto}.inspection-card__timer-label{font-size:10px;font-weight:700;letter-spacing:1.6px;text-transform:uppercase;color:var(--text-muted)}.inspection-card__timer-track{width:100%;height:8px;border-radius:999px;background:rgba(196,48,48,.14);border:1px solid rgba(196,48,48,.28);overflow:hidden}.inspection-card__timer-bar{width:100%;height:100%;border-radius:inherit;background:linear-gradient(90deg,rgba(224,96,96,.95),rgba(196,48,48,.9));transform-origin:left center;animation:inspection-countdown var(--inspection-duration, 3s) linear forwards}.result-banner{text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px}.result-banner__emoji{font-size:48px}.result-banner__text{font-size:24px;font-weight:700;text-transform:uppercase;letter-spacing:2px;color:var(--text);opacity:0}.result-banner__text.revealed{animation:reveal-text .6s ease forwards}.result-text{font-size:20px;font-weight:700;color:var(--text);text-align:center;line-height:1.4;transition:opacity .4s ease}.result-text--large{font-size:clamp(24px,6vw,30px);letter-spacing:.5px;line-height:1.45;max-width:24ch;text-wrap:balance}.result-text--hidden{opacity:0}.result-text--revealed{animation:reveal-text .6s ease forwards}.result-gathering{font-size:15px;color:#e8e0d0c7;text-align:center;font-style:italic;max-width:320px;line-height:1.65;text-wrap:pretty;animation:fade-in-up .4s ease both}.resolution-skip-button{max-width:min(100%,34ch);line-height:1.45;text-align:center;white-space:normal}.scene[data-winner=citizens]{background:linear-gradient(180deg,#1e1a10,#161208);border-color:#c8a85066}.scene[data-winner=citizens] .scene-heading h2{color:#e8c860;font-size:28px;letter-spacing:3px}.scene[data-winner=mafia]{background:linear-gradient(180deg,#1a1010,#160808);border-color:#c4404066}.scene[data-winner=mafia] .scene-heading h2{color:#e06060;font-size:28px;letter-spacing:3px}.game-over-winner-badge{font-size:56px;text-align:center;animation:fade-in-up .5s ease both}.game-stats{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.game-stat{display:flex;flex-direction:column;align-items:center;padding:12px 16px;background:var(--surface);border:1px solid var(--border);border-radius:6px;min-width:72px;flex:1}.game-stat__value{font-size:24px;font-weight:700;color:var(--text)}.game-stat__label{font-size:9px;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;margin-top:2px}.history-section{display:flex;flex-direction:column;gap:12px}.history-round{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:14px}.timeline-entry{font-size:12px;color:var(--text-muted);line-height:1.6;padding:4px 0;border-bottom:1px solid var(--border)}.timeline-entry:last-child{border-bottom:none}.demo-cast-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.demo-cast-item{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-muted)}@keyframes scene-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes reveal-text{0%{opacity:0;transform:scale(.92) translateY(8px);filter:blur(4px)}to{opacity:1;transform:scale(1) translateY(0);filter:blur(0)}}@keyframes dialog-enter{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes overlay-enter{0%{opacity:0}to{opacity:1}}@keyframes inspection-countdown{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.animate-fade-in-up{animation:fade-in-up .5s ease both}.animate-fade-in-up--delay-1{animation-delay:.2s}.animate-fade-in-up--delay-2{animation-delay:.36s}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}@media (min-width: 720px){.scene{padding:36px 32px}.panel-grid--two-col{grid-template-columns:1fr 1fr}.button-row,.scene-footer .button-row{flex-direction:row}}
