:root{--ink:#121014;--ink-raised:#18161b;--surface:#1c1a1f;--surface-2:#26232a;--line:#2a262d;--line-strong:#3a353e;--text:#ece6da;--text-strong:#f3ecdd;--text-soft:#d9d2c6;--text-dim:#a79f93;--text-faint:#8a8276;--paper:#efe6d2;--paper-2:#e8dec7;--paper-3:#e3d8c0;--paper-line:#d8ccb4;--paper-ink:#2a2320;--paper-soft:#3b3129;--paper-dim:#6b5d4f;--paper-mute:#cfc3aa;--oxblood:#b23a2e;--oxblood-hover:#c4453a;--oxblood-deep:#8e2a22;--rose:#d66b5e;--rose-soft:#f0a397;--brass:#d4af5a;--brass-soft:#e3c37a;--killer:#a3291f;--assistant:#b5621c;--witness:#2f7a5f;--investigator:#2c5e92;--angel-soft:#9cc3ec;--ok:#7fc4a8;--font-display:"Playfair Display", Georgia, serif;--font-sans:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--font-code:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--radius-sm:6px;--radius:10px;--radius-lg:14px;--gutter:clamp(16px, 4vw, 40px);--tabbar-h:72px}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-sans);background:var(--ink);color:var(--text);-webkit-font-smoothing:antialiased;min-height:100vh;font-size:15px;line-height:1.5}#root,.app{min-height:100vh}.app{flex-direction:column;display:flex}button,input,select{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--brass);outline-offset:2px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.eyebrow{font:600 12px/1.3 var(--font-mono);letter-spacing:2px;text-transform:uppercase;color:var(--text-dim)}.eyebrow-paper{color:var(--paper-dim)}.eyebrow-icon{align-items:center;gap:10px;display:inline-flex}.text-brass{color:var(--brass)}.text-dim{color:var(--text-dim)}.text-sm{font-size:13px}.mono-dim{font:500 13px var(--font-mono);color:var(--text-dim)}.display-lg{font:800 clamp(30px, 4vw, 44px)/1.05 var(--font-display);color:var(--text-strong)}.display-md{font:800 clamp(26px, 3vw, 34px)/1.1 var(--font-display);color:var(--text-strong)}.display-sm{font:600 20px/1.2 var(--font-display)}.stack-4{flex-direction:column;gap:4px;display:flex}.stack-6{flex-direction:column;gap:6px;display:flex}.stack-8{flex-direction:column;gap:8px;display:flex}.paper{background:var(--paper);color:var(--paper-ink)}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:20px}.btn{min-height:44px;font:600 15px var(--font-sans);white-space:nowrap;border:0;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:0 18px;line-height:1.2;transition:background .15s,border-color .15s,color .15s,transform .1s;display:inline-flex}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{cursor:not-allowed;opacity:.45}.btn-large{min-height:52px;padding:0 28px;font-size:16px}.btn-block{width:100%}.btn-small{min-height:36px;padding:0 12px;font-size:13px}.btn-primary{background:var(--oxblood);color:#fff8f0}.btn-primary:hover:not(:disabled){background:var(--oxblood-hover)}.btn-primary:disabled{background:var(--surface-2);color:var(--text-faint);opacity:1}.btn-secondary{background:var(--surface-2);color:var(--text);border:1px solid var(--line-strong)}.btn-secondary:hover:not(:disabled){background:var(--line-strong)}.btn-outline{color:var(--brass-soft);border:1px solid var(--brass);background:0 0}.btn-outline:hover:not(:disabled){background:#d4af5a1a}.btn-brass{background:var(--brass);color:var(--ink)}.btn-brass:hover:not(:disabled){background:var(--brass-soft)}.btn-ink{background:var(--paper-ink);color:var(--paper)}.btn-ink:hover:not(:disabled){background:#3b322d}.btn-danger{background:var(--killer);color:#fff8f0}.btn-warning{background:var(--brass);color:var(--ink)}.btn-text,.link-btn{color:var(--brass);text-align:left;background:0 0;border:0;align-items:center;gap:8px;min-height:44px;font-size:14px;display:inline-flex}.btn-text:hover,.link-btn:hover{color:var(--brass-soft)}.icon-btn{border:1px solid var(--line-strong);background:var(--surface-2);width:44px;height:44px;color:var(--text);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.icon-btn.muted{background:var(--oxblood-deep);border-color:var(--oxblood-deep);color:#fff8f0}.field{flex-direction:column;gap:8px;display:flex}.field-label{font:600 12px var(--font-mono);letter-spacing:1.5px;text-transform:uppercase;color:var(--text-dim)}.input,select{border:1px solid var(--line-strong);background:var(--surface);width:100%;height:48px;color:var(--text);font:500 16px var(--font-sans);border-radius:8px;padding:0 14px}.input::placeholder{color:var(--text-faint)}.input:focus,select:focus{outline:2px solid var(--brass);outline-offset:1px;border-color:#0000}.input-code{height:56px;font:600 22px var(--font-code);letter-spacing:8px;text-transform:uppercase}.input[readonly]{color:var(--text-dim)}.segmented{border-radius:var(--radius);background:var(--ink);border:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));padding:4px;display:grid}.segmented-btn{height:44px;color:var(--text-dim);font:500 14px var(--font-sans);background:0 0;border:0;border-radius:7px}.segmented-btn.active{background:var(--surface-2);color:var(--text-strong);font-weight:600}.chip-row{flex-wrap:wrap;gap:6px;display:flex}.chip{font:500 12px/1.3 var(--font-sans);background:var(--surface-2);color:var(--text-soft);border:1px solid var(--line-strong);border-radius:5px;padding:5px 8px;display:inline-block}.chip-evidence{background:var(--surface);border-style:dashed}.chip-item{align-items:center;gap:6px;display:inline-flex}.chip-icon{stroke-width:2px;flex:none;width:14px;height:14px}.chip-paper .chip-icon{width:16px;height:16px}.pick .chip-item{font:inherit;color:inherit;background:0 0;border:0;padding:0}.pick .chip-icon{width:18px;height:18px}.chip-murder{background:var(--oxblood-deep);border-color:var(--rose);color:#fff1ec;font-weight:600}.chip-paper{background:var(--paper-3);color:var(--paper-soft);border-radius:var(--radius-sm);border:0;padding:8px 12px;font-size:14px}.tag{font:600 11px var(--font-mono);letter-spacing:1px;text-transform:uppercase;background:var(--surface-2);color:var(--text);white-space:nowrap;border-radius:4px;padding:4px 8px}.tag-host{color:var(--brass-soft);background:#3a2f17}.tag-dim{color:var(--text-dim)}.tag-killer{color:var(--rose-soft);background:#3a1d1a}.tag-ai{color:var(--angel-soft);background:#1f3346;margin-left:6px}.seat .tag-ai{margin-left:0}.seat-remove{width:32px;height:32px;color:var(--text-dim);background:0 0;border:0;border-radius:6px;flex:none;justify-content:center;align-items:center;display:inline-flex}.seat-remove:hover{background:var(--surface-2);color:var(--text)}.seat-add{width:100%;min-height:44px;color:var(--brass);font:600 14px var(--font-sans);text-align:left;background:0 0;border:0}.seat-add:hover{color:var(--brass-soft)}.role-chip{font:600 12px var(--font-mono);letter-spacing:1px;text-transform:uppercase;white-space:nowrap;border-radius:999px;padding:6px 10px}.role-chip.role-investigator{color:var(--angel-soft);background:#1f3346}.role-chip.role-witness{color:#9ad6bd;background:#1b3a2f}.role-chip.role-killer{color:var(--rose-soft);background:#3a1d1a}.role-chip.role-assistant{color:#f0b980;background:#3d2814}.landing{flex-wrap:wrap;flex:1;min-height:100vh;display:flex}.landing-hero{border-right:1px solid var(--line);flex-direction:column;flex:520px;justify-content:space-between;gap:48px;min-width:0;padding:64px 7%;display:flex}.landing-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.landing-copy{flex-direction:column;gap:24px;max-width:560px;display:flex}.landing-title{font:800 clamp(56px, 7vw, 96px)/.92 var(--font-display);letter-spacing:-1px;color:var(--text-strong)}.landing-title span{color:var(--rose);font-style:italic;font-weight:600}.landing-pitch{color:#b9b1a4;max-width:460px;font-size:18px;line-height:1.55}.landing-meta{font:500 13px var(--font-mono);color:var(--text-dim);flex-wrap:wrap;gap:12px 20px;display:flex}.landing-panel{background:var(--ink-raised);flex:420px;justify-content:center;align-items:center;min-width:0;padding:64px 6%;display:flex}.landing-form-wrap{flex-direction:column;gap:20px;width:100%;max-width:400px;display:flex}.landing-form{flex-direction:column;gap:16px;display:flex}.form-helper{color:var(--text-dim);text-align:center;font-size:13px}.lobby{padding:48px var(--gutter);flex:1}.lobby-inner{flex-direction:column;gap:36px;max-width:1120px;margin:0 auto;display:flex}.lobby-header{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;padding-bottom:28px;display:flex}.lobby-code{flex-direction:column;align-items:flex-end;gap:6px;display:flex}.lobby-code .lang-toggle{margin-bottom:10px}.room-code{font:600 40px/1 var(--font-code);letter-spacing:10px;color:var(--brass)}.lobby-body{flex-wrap:wrap;align-items:flex-start;gap:32px;display:flex}.lobby-players{flex-direction:column;flex:999 520px;gap:16px;min-width:0;display:flex}.section-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.seat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;list-style:none;display:grid}.seat{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);align-items:center;gap:12px;min-height:60px;padding:0 16px;display:flex}.seat-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:500;overflow:hidden}.seat-away{opacity:.55}.seat-empty{color:var(--text-faint);background:0 0;border-style:dashed}.avatar{width:36px;height:36px;font:600 13px var(--font-mono);color:var(--ink);border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}.lobby-start{border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:8px;padding:20px 24px;display:flex}.lobby-start-title{font-size:16px;font-weight:600}.invite-card{border-radius:var(--radius-lg);flex-direction:column;flex:300px;gap:16px;min-width:0;padding:24px;display:flex}.invite-qr{border:1px solid var(--paper-line);background:#fffdf8;border-radius:8px;align-self:center;padding:10px;line-height:0}.invite-details{flex-direction:column;gap:12px;min-width:0;display:flex}.invite-link{gap:8px;display:flex}.invite-link input{border:1px solid var(--paper-line);min-width:0;height:44px;color:var(--paper-ink);font:500 13px var(--font-code);background:#fffdf8;border-radius:8px;flex:1;padding:0 12px}.paper-note{color:#5a4d40;font-size:13px;line-height:1.5}.game-board{flex-direction:column;flex:1;min-height:100vh;display:flex}.game-header{z-index:20;background:var(--ink-raised);border-bottom:1px solid var(--line);padding:14px var(--gutter);flex-direction:column;gap:12px;display:flex;position:sticky;top:0}.game-header-row{flex-wrap:wrap;align-items:center;gap:12px 24px;display:flex}.brand{font:800 20px var(--font-display);color:var(--text-strong);white-space:nowrap}.brand i{color:var(--rose);font-weight:600}.game-header-right{align-items:center;gap:10px;margin-left:auto;display:flex}.header-timer{font:600 22px var(--font-mono);color:var(--brass)}.phase-steps{flex-wrap:wrap;flex:1;gap:6px;min-width:0;display:flex}.step{font:600 12px var(--font-mono);letter-spacing:1px;white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:6px 10px;display:inline-flex}.step-done{color:var(--text-faint)}.step-current{background:var(--brass);color:var(--ink)}.step-todo{color:var(--text-dim);border:1px solid var(--line-strong)}.game-layout{flex-wrap:wrap;flex:1;display:flex}.game-main{min-width:0;padding:28px var(--gutter);flex-direction:column;flex:999 640px;gap:24px;display:flex}.game-sidebar{background:var(--ink-raised);border-left:1px solid var(--line);flex-direction:column;flex:320px;gap:24px;min-width:0;max-width:420px;padding:28px 24px;display:flex}.waiting-screen{text-align:center;border-radius:var(--radius-lg);border:1px dashed var(--line-strong);flex-direction:column;align-items:center;gap:10px;padding:48px 24px;display:flex}.waiting-screen p{max-width:440px}.waiting-pulse{background:var(--brass);border-radius:50%;width:12px;height:12px;margin-bottom:6px;animation:1.6s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:.35;transform:scale(.85)}50%{opacity:1;transform:scale(1.15)}}.discussion-area{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.discussion-title{font-size:16px;font-weight:600}.clue-board{flex-direction:column;gap:20px;display:flex}.board-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.countdown-pill{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);align-items:center;gap:12px;padding:10px 16px;display:flex}.countdown-time{font:600 26px var(--font-mono);color:var(--brass);min-width:3.2ch}.clue-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.clue-card{background:var(--paper);color:var(--paper-ink);border:2px solid #0000;border-radius:12px;flex-direction:column;gap:12px;padding:18px;transition:border-color .3s,box-shadow .3s,opacity .3s;display:flex}.clue-next{border-color:var(--brass);box-shadow:0 0 0 4px #d4af5a2e}.clue-sealed{opacity:.82}.clue-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.clue-num{font:600 11px var(--font-mono);letter-spacing:1.5px;color:var(--paper-dim);text-transform:uppercase}.clue-badge{font:600 11px var(--font-mono);white-space:nowrap;text-transform:uppercase;border-radius:4px;padding:3px 7px}.clue-badge-done{background:var(--paper-ink);color:var(--paper)}.clue-badge-next{background:var(--brass);color:var(--paper-ink)}.clue-badge-sealed{color:var(--paper-dim);border:1px solid #b9ac93}.clue-title{font:600 20px/1.15 var(--font-display)}.clue-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;list-style:none;display:grid}.clue-option{font:500 13px/1.3 var(--font-sans);border-radius:var(--radius-sm);background:var(--paper-3);color:var(--paper-soft);padding:7px 9px;transition:opacity .4s,background .4s}.clue-option.correct{background:var(--oxblood-deep);color:#fff8f0;font-weight:600;box-shadow:inset 0 0 0 2px #5e1a15}.clue-option.dimmed{opacity:.4;text-decoration:line-through}.clue-progress{gap:4px;display:flex}.clue-progress-seg{background:var(--line);border-radius:2px;flex:1;height:4px}.clue-progress-seg.done{background:var(--brass)}.clue-progress-seg.next{background:#6b5a33}.clue-carousel-track{scroll-snap-type:x mandatory;scrollbar-width:none;margin:0 calc(var(--gutter) * -1);padding:4px var(--gutter);gap:12px;display:flex;overflow-x:auto}.clue-carousel-track::-webkit-scrollbar{display:none}.clue-carousel-track>.clue-card{scroll-snap-align:center;flex:0 0 100%}.clue-carousel-track .clue-title{font-size:24px}.clue-carousel-track .clue-option{padding:10px 12px;font-size:14px}.clue-carousel-dots{justify-content:center;gap:4px;display:flex}.clue-carousel-dot{background:0 0;border:0;width:24px;height:24px;position:relative}.clue-carousel-dot:after{content:"";background:var(--line-strong);border-radius:4px;transition:all .2s;position:absolute;inset:8px}.clue-carousel-dot.revealed:after{background:#6b655c}.clue-carousel-dot.active:after{background:var(--brass);inset:8px 1px}.confirmed-list{flex-direction:column;gap:8px;padding:14px 16px;display:flex}.confirmed-row{justify-content:space-between;gap:12px;font-size:14px;display:flex}.confirmed-value{text-align:right;font-weight:600}.hand-panel{flex-direction:column;gap:16px;display:flex}.hand-list{flex-direction:column;display:flex}.hand-player{border-top:1px solid var(--line);flex-direction:column;gap:8px;padding:12px 0;display:flex}.hand-player-killer{border-top-color:var(--rose)}.hand-head{align-items:center;gap:8px;display:flex}.hand-head-btn{text-align:left;background:0 0;border:0;width:100%;min-height:44px}.hand-name{font-weight:600}.hand-name.killer-label{color:var(--rose-soft)}.hand-count{margin-left:auto;font-size:12px}.chevron{color:var(--text-dim);flex:none;transition:transform .2s}.chevron.open{transform:rotate(90deg)}.hand-body{flex-direction:column;gap:6px;display:flex}.hand-legend{align-items:center;gap:8px;display:flex}.investigation-report{flex-direction:column;gap:14px;display:flex}.investigation-form{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);flex-direction:column;gap:12px;padding:16px;display:flex}.investigation-field{flex-direction:column;gap:6px;display:flex}.investigation-field label{font:600 11px var(--font-mono);letter-spacing:1.5px;text-transform:uppercase;color:var(--text-dim)}.investigation-list{flex-direction:column;gap:8px;display:flex}.investigation-entry{color:var(--text-soft);border-top:1px solid var(--line);padding:8px 0;font-size:13px;line-height:1.5}.investigation-author,.investigation-target{color:var(--text);font-weight:600}.investigation-item{color:var(--brass-soft)}.investigation-verdict{text-transform:uppercase;font:600 10px var(--font-mono);border-radius:4px;margin-right:6px;padding:2px 6px}.verdict-correct{color:#9ad6bd;background:#1b3a2f}.verdict-wrong{color:var(--rose-soft);background:#3a1d1a}.voice-status{color:var(--text-dim);align-items:center;gap:10px;font-size:13px;display:flex}.status-dot{background:var(--text-faint);border-radius:50%;flex:none;width:8px;height:8px}.status-dot.on{background:var(--ok)}.modal-overlay{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0a080ac7;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-content{background:var(--paper);width:100%;max-width:440px;color:var(--paper-ink);border-radius:var(--radius-lg);flex-direction:column;gap:14px;padding:28px;display:flex}.modal-content .eyebrow{color:var(--paper-dim)}.modal-content h2{font:800 32px/1.05 var(--font-display);color:var(--killer)}.caught-detail{color:var(--paper-soft)}.caught-reveal{border-radius:var(--radius);background:var(--paper-2);flex-direction:column;gap:6px;padding:14px 16px;display:flex}.caught-label{font:600 11px var(--font-mono);letter-spacing:1.5px;color:var(--paper-dim);text-transform:uppercase;margin-right:6px}.role-overlay{z-index:90;background:var(--ink);padding:48px var(--gutter);justify-content:center;display:flex;position:fixed;inset:0;overflow-y:auto}.role-reveal{flex-direction:column;gap:24px;width:100%;max-width:980px;margin:auto 0;display:flex}.role-reveal>.btn{align-self:center;max-width:420px}.role-reveal-eyebrow{text-align:center}.dossier{--role:var(--investigator);background:var(--paper);color:var(--paper-ink);border-radius:16px;flex-wrap:wrap;animation:.45s ease-out dossier-in;display:flex;position:relative;overflow:hidden}.dossier.role-killer{--role:var(--killer)}.dossier.role-assistant{--role:var(--assistant)}.dossier.role-witness{--role:var(--witness)}@keyframes dossier-in{0%{opacity:0;transform:translateY(16px)rotate(-.6deg)}to{opacity:1;transform:none}}.dossier-ribbon{background:var(--role);color:#fffdf8;font:600 12px var(--font-mono);letter-spacing:2px;text-transform:uppercase;padding:5px 56px;position:absolute;top:26px;right:-44px;transform:rotate(35deg)}.dossier-main{border-right:1px dashed var(--paper-mute);flex-direction:column;flex:420px;gap:18px;min-width:0;padding:40px;display:flex}.dossier-role{font:800 clamp(46px, 6vw, 72px)/1 var(--font-display);color:var(--role)}.dossier-blurb{color:var(--paper-soft);max-width:460px;font-size:17px;line-height:1.6}.killer-reveal{border-radius:var(--radius);background:var(--paper-ink);color:var(--paper);justify-content:space-between;align-items:center;gap:12px;max-width:460px;padding:14px 18px;display:flex}.killer-reveal-label{font:600 12px var(--font-mono);letter-spacing:1.5px;color:var(--paper-mute);text-transform:uppercase}.killer-reveal-name{font:600 24px var(--font-display);color:var(--rose-soft)}.dossier-note{color:var(--paper-dim);grid-column:1/-1;font-size:13px;line-height:1.5}.dossier-hand{background:var(--paper-2);flex-direction:column;flex:340px;gap:20px;min-width:0;padding:40px;display:flex}.killer-select,.selection-panels{flex-direction:column;gap:24px;display:flex}.selection-panel{flex-direction:column;gap:12px;display:flex}.selection-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.selection-card{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line-strong);min-height:72px;color:var(--text);padding:12px;font-weight:500}.selection-card:hover{border-color:var(--text-faint)}.selection-card.selected{border:2px solid var(--rose);color:#fff1ec;background:#2e1513;font-weight:600}.item-card{background:var(--paper);border:2px solid #0000;border-radius:12px;flex-direction:column;width:100%;min-height:200px;padding:0;transition:transform .15s,border-color .15s,box-shadow .15s;display:flex;overflow:hidden}.item-card--evidence{background:var(--paper-2)}.item-card:hover{border-color:var(--brass);transform:translateY(-3px)}.item-card--selected{border-color:var(--oxblood);box-shadow:0 0 0 3px var(--oxblood)}.icon-box{color:var(--paper-ink);background:var(--paper-3);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex;overflow:hidden}.item-card--evidence .icon-box,.wiki-card--evidence .icon-box{background:#ddd0b4}.item-card--selected .icon-box{color:var(--oxblood-deep)}.icon-box svg{width:60%;height:auto;display:block}.item-card__icon.icon-box{flex:1;margin:10px 10px 0;padding:12px}.item-card__icon.icon-box svg{stroke-width:1.5px;width:56%;max-height:96px}.item-card__label{font:600 14px/1.2 var(--font-sans);color:var(--paper-ink);text-align:center;padding:10px 8px 12px}.vote-layout{flex-wrap:wrap;align-items:flex-start;gap:28px;display:flex}.guess-form{flex-direction:column;flex:999 560px;gap:24px;min-width:0;display:flex}.pick-group{flex-direction:column;gap:10px;display:flex}.pick-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.pick{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line-strong);min-height:56px;color:var(--text);font:500 15px/1.25 var(--font-sans);text-align:left;padding:10px 14px;transition:border-color .15s,background .15s}.pick:hover{border-color:var(--text-faint)}.pick.selected{border:2px solid var(--rose);color:#fff1ec;background:#2e1513;font-weight:600}.accuse-bar{border-radius:var(--radius-lg);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:20px 24px;display:flex}.accuse-sentence{font:600 18px/1.4 var(--font-display);flex:260px}.accuse-bar .btn-primary:disabled{background:var(--paper-mute);color:var(--paper-dim)}.guess-submitted{flex-direction:column;flex:999 560px;gap:6px;display:flex}.verdicts{flex-direction:column;flex:300px;gap:8px;min-width:0;display:flex}.verdict-list{margin-top:4px;list-style:none}.verdict-row{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:12px 0;font-size:14px;display:flex}.verdict-waiting{color:var(--text-faint)}.verdict-badge{font:600 12px var(--font-mono);white-space:nowrap;text-transform:uppercase;border-radius:4px;padding:3px 7px}.verdict-badge.wrong{color:var(--rose-soft);background:#3a1d1a}.verdict-badge.correct{color:#9ad6bd;background:#1b3a2f}.verdict{flex-direction:column;align-items:center;gap:28px;padding:24px 0 8px;display:flex}.verdict-head{text-align:center;flex-direction:column;align-items:center;gap:12px;display:flex}.verdict-title{font:800 clamp(40px, 6vw, 64px)/1 var(--font-display)}.verdict-title.angel{color:var(--angel-soft)}.verdict-title.devil{color:var(--rose-soft)}.verdict-grid{border-radius:16px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;width:100%;max-width:1000px;padding:24px;display:grid}.verdict-cell{border-radius:var(--radius);background:var(--paper-2);flex-direction:column;gap:6px;padding:20px;display:flex}.verdict-killer{background:var(--paper-ink)}.verdict-killer .eyebrow{color:var(--paper-mute)}.verdict-value{font:600 22px/1.15 var(--font-display);color:var(--paper-ink)}.verdict-killer .verdict-value{color:var(--rose-soft)}.verdict-actions{justify-content:center;gap:12px;display:flex}.verdict-item{align-items:center;gap:8px;display:inline-flex}.verdict-icon{stroke-width:1.75px;flex:none;width:22px;height:22px}.winner-overlay{z-index:150}.winner-modal{background:var(--paper);width:100%;max-width:480px;max-height:calc(100vh - 40px);color:var(--paper-ink);text-align:center;border-top:8px solid var(--investigator);border-radius:16px;flex-direction:column;gap:14px;padding:32px 28px 28px;animation:.45s ease-out dossier-in;display:flex;overflow-y:auto}.winner-modal.devil{border-top-color:var(--killer)}.winner-modal .eyebrow{color:var(--paper-dim)}.winner-title{font:800 clamp(34px, 6vw, 46px)/1.05 var(--font-display);color:var(--investigator)}.winner-modal.devil .winner-title{color:var(--killer)}.winner-how{color:var(--paper-soft);font-size:15px}.winner-reveal{text-align:left;flex-direction:column;margin:4px 0 8px;display:flex}.winner-row{border-top:1px solid var(--paper-line);justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex}.winner-row:first-child{border-top:0}.winner-row dt{font:600 11px var(--font-mono);letter-spacing:1.5px;text-transform:uppercase;color:var(--paper-dim)}.winner-row dd{text-align:right;font-weight:600}.winner-killer{font:600 20px var(--font-display);color:var(--killer)}html:lang(bn) .winner-title{line-height:1.35}html:lang(bn) .winner-row dt{letter-spacing:.2px;font-size:13px}.lang-toggle{border:1px solid var(--line-strong);background:var(--ink);border-radius:999px;flex:none;padding:3px;display:inline-flex}.lang-toggle button{min-width:44px;height:36px;color:var(--text-dim);font:600 12px var(--font-code);letter-spacing:1px;background:0 0;border:0;border-radius:999px;padding:0 10px}.lang-toggle button[lang=bn]{letter-spacing:0;font:600 14px Hind Siliguri,sans-serif}.lang-toggle button.active{background:var(--surface-2);color:var(--text-strong)}.lang-toggle button:not(.active):hover{color:var(--text)}.error-toast{z-index:200;border-radius:var(--radius);border:1px solid var(--rose);color:#fff1ec;background:#3a1d1a;max-width:calc(100% - 32px);padding:12px 18px;font-size:14px;position:fixed;top:16px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #0006}.game-main-compact{padding-bottom:calc(var(--tabbar-h) + 96px + env(safe-area-inset-bottom));flex:1}.game-tab-bar{z-index:30;background:var(--ink-raised);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);display:flex;position:fixed;bottom:0;left:0;right:0}.game-tab-btn{height:var(--tabbar-h);color:var(--text-dim);font:500 12px var(--font-sans);background:0 0;border:0;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;display:flex}.game-tab-btn.active{color:var(--brass)}.voice-float-btn{right:var(--gutter);bottom:calc(var(--tabbar-h) + 24px + env(safe-area-inset-bottom));z-index:31;background:var(--oxblood);color:#fff8f0;border:0;border-radius:50%;justify-content:center;align-items:center;width:60px;height:60px;display:flex;position:fixed;box-shadow:0 8px 24px #00000080}.voice-float-btn.muted{background:var(--surface-2);color:var(--text-dim);border:1px solid var(--line-strong)}.voice-float-btn .peer-badge{background:var(--brass);min-width:22px;height:22px;color:var(--ink);font:600 12px/22px var(--font-mono);border-radius:11px;padding:0 6px;position:absolute;top:-2px;right:-2px}.wiki-page{width:100%;max-width:1200px;padding:32px var(--gutter) 64px;flex-direction:column;gap:20px;margin:0 auto;display:flex}.wiki-header{flex-direction:column;gap:16px;display:flex}.wiki-header-top{align-items:center;gap:16px;display:flex}.wiki-back-btn{white-space:nowrap;border:1px solid var(--line-strong);background:var(--surface);min-height:44px;color:var(--text);border-radius:8px;flex:none;align-items:center;gap:6px;padding:0 14px;font-size:14px;display:inline-flex}.wiki-back-btn:hover{background:var(--surface-2)}.wiki-lang{margin-left:auto}.wiki-title{font:800 clamp(26px, 3vw, 36px)/1.1 var(--font-display);color:var(--text-strong)}.wiki-search{border:1px solid var(--line-strong);background:var(--surface);width:100%;height:48px;color:var(--text);border-radius:8px;padding:0 16px;font-size:16px}.wiki-search::placeholder{color:var(--text-faint)}.wiki-search:focus{outline:2px solid var(--brass);outline-offset:1px}.wiki-tabs{border-radius:var(--radius);background:var(--ink-raised);border:1px solid var(--line);align-self:flex-start;gap:4px;padding:4px;display:inline-flex}.wiki-tab{min-height:40px;color:var(--text-dim);background:0 0;border:0;border-radius:7px;padding:0 16px;font-weight:500}.wiki-tab--active{background:var(--surface-2);color:var(--text-strong);font-weight:600}.wiki-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));align-items:start;gap:12px;display:grid}.wiki-card{background:var(--paper);color:var(--paper-ink);border:2px solid #0000;border-radius:12px;transition:border-color .15s}.wiki-card--evidence{background:var(--paper-2)}.wiki-card:hover,.wiki-card--expanded{border-color:var(--brass)}.wiki-card__header{text-align:left;background:0 0;border:0;align-items:center;gap:12px;width:100%;padding:12px;display:flex}.icon-box.wiki-card__icon{border-radius:10px}.wiki-card__icon--empty{background:var(--paper-3);width:48px;height:48px;color:var(--paper-dim);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.wiki-card__name{text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:15px;font-weight:600;overflow:hidden}.wiki-card__arrow{color:var(--paper-dim);flex-shrink:0;transition:transform .2s}.wiki-card__arrow.open{transform:rotate(90deg)}.wiki-card__details{border-top:1px dashed var(--paper-mute);flex-direction:column;gap:8px;margin:0 12px 12px;padding-top:12px;display:flex}.wiki-detail-row{flex-direction:column;gap:1px;display:flex}.wiki-detail-label{font:600 10px var(--font-mono);letter-spacing:1.2px;text-transform:uppercase;color:var(--paper-dim)}.wiki-detail-value{color:var(--paper-soft);font-size:14px}.wiki-card__descriptions{border-top:1px dashed var(--paper-mute);flex-direction:column;gap:6px;margin-top:4px;padding-top:8px;display:flex}.wiki-desc{color:var(--paper-soft);font-size:13px;line-height:1.5}.wiki-desc--bn{color:var(--paper-ink);font-size:14px;font-weight:500}.wiki-loading,.wiki-empty{text-align:center;color:var(--text-dim);padding:60px 20px;font-size:16px}.wiki-error{text-align:center;color:var(--rose-soft);flex-direction:column;align-items:center;gap:16px;padding:40px 20px;display:flex}@media (width<=1024px){.landing{flex-flow:column}.landing-hero{padding:64px var(--gutter) 32px;border-right:0;flex:none;gap:40px}.landing-panel{padding:0 var(--gutter) 48px;background:0 0;flex:none}.landing-form-wrap{background:var(--ink-raised);border:1px solid var(--line);border-radius:16px;max-width:none;padding:32px}.landing-wiki{order:3}.lobby-body{flex-direction:column-reverse}.lobby-players,.invite-card{flex:none;width:100%}.invite-card{flex-direction:row;align-items:center;gap:24px}.clue-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.vote-layout{flex-direction:column;align-items:stretch}.guess-form,.guess-submitted,.verdicts{flex:none}.dossier{flex-flow:column}.dossier-main{border-right:0;flex:none;padding:40px 36px 24px}.dossier-hand{background:var(--paper);border-top:1px dashed var(--paper-mute);flex:none;grid-template-columns:repeat(2,minmax(0,1fr));margin:0 36px;padding:24px 0 36px;display:grid}.role-reveal{max-width:680px}.role-reveal>.btn{max-width:none}.clue-board .board-head{display:none}}@media (width<=640px){body{font-size:15px}.landing-hero{gap:24px;padding:56px 20px 24px}.landing-copy{gap:14px}.landing-title{font-size:60px}.landing-pitch{font-size:16px}.landing-meta{gap:8px 12px;font-size:12px}.landing-panel{padding:0 20px 28px}.landing-form-wrap{background:0 0;border:0;padding:0}.lobby{padding:40px 20px 28px}.lobby-inner{gap:20px}.lobby-header{padding-bottom:16px}.lobby-code .eyebrow,.lobby-code .room-code{display:none}.lobby-code .lang-toggle{margin-bottom:0}.lobby-header{flex-wrap:nowrap;align-items:flex-start}.seat-grid{grid-template-columns:minmax(0,1fr);gap:8px}.seat{min-height:52px;padding:0 14px}.avatar{width:32px;height:32px;font-size:12px}.invite-card{gap:14px;padding:14px}.invite-qr svg{width:88px;height:88px}.invite-details .display-sm,.paper-note,.invite-link input{display:none}.invite-link .btn{flex:1}.lobby-start{flex-direction:column;align-items:stretch;padding:16px}.lobby-start .btn{width:100%}.seat-empty~.seat-empty{display:none}.game-header{padding:12px 20px}.game-room,.brand{display:none}.game-main{gap:16px;padding:16px 20px}.pick-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.pick{min-height:48px;padding:8px 12px;font-size:14px}.accuse-bar{bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom));border-radius:16px 16px 0 0;flex-direction:column;align-items:stretch;margin:0 -20px;padding:14px 16px;position:sticky}.accuse-sentence{flex:none;font-size:16px}.selection-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.game-board:has(.accuse-bar) .voice-float-btn{bottom:calc(var(--tabbar-h) + 150px + env(safe-area-inset-bottom))}.item-card{min-height:160px}.role-overlay{padding:40px 16px 24px}.dossier-main{gap:14px;padding:28px 22px 18px}.dossier-role{font-size:46px}.dossier-blurb{font-size:15px}.dossier-hand{grid-template-columns:minmax(0,1fr);gap:14px;margin:0 22px;padding:18px 0 24px}.chip-paper{padding:5px 8px;font-size:12px}.dossier-ribbon{padding:4px 48px;font-size:11px;top:20px;right:-40px}.verdict{gap:20px;padding-top:8px}.verdict-grid{grid-template-columns:minmax(0,1fr);gap:0;padding:8px 20px}.verdict-cell{border-top:1px solid var(--paper-line);background:0 0;border-radius:0;flex-direction:row;justify-content:space-between;align-items:center;padding:14px 0}.verdict-cell:first-child{border-top:0}.verdict-killer{background:0 0}.verdict-killer .eyebrow{color:var(--paper-dim)}.verdict-killer .verdict-value{color:var(--killer)}.verdict-value{text-align:right;font-size:17px}.verdict-actions .btn{width:100%}.modal-content{padding:22px}.wiki-header-top{gap:10px}.wiki-back-btn{padding:0 10px}.wiki-title{min-width:0;font-size:22px}}html:lang(bn){--font-display:"Noto Serif Bengali", "Playfair Display", Georgia, serif;--font-sans:"Hind Siliguri", "IBM Plex Sans", system-ui, sans-serif;--font-mono:"Hind Siliguri", "IBM Plex Mono", ui-monospace, monospace}html:lang(bn) body{line-height:1.6}html:lang(bn) :is(.eyebrow,.field-label,.step,.tag,.role-chip,.clue-num,.clue-badge,.verdict-badge,.investigation-verdict,.dossier-ribbon,.killer-reveal-label,.caught-label,.wiki-detail-label,.investigation-field label,.mono-dim,.landing-meta){letter-spacing:.2px}html:lang(bn) .eyebrow,html:lang(bn) .field-label{font-size:13px}html:lang(bn) .clue-num,html:lang(bn) .clue-badge{font-size:12px}html:lang(bn) .landing-title{letter-spacing:0;line-height:1.25}html:lang(bn) .landing-title span{font-style:normal}html:lang(bn) :is(.display-lg,.display-md,.display-sm,.dossier-role,.verdict-title,.clue-title,.wiki-title,.accuse-sentence,.modal-content h2,.killer-reveal-name){line-height:1.4}html:lang(bn) .brand i{font-style:normal}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
