.character-catalog{padding:40px 0 50px}.character-heading{justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:28px;display:flex}.character-heading h1{letter-spacing:-.04em;margin:14px 0;font-size:clamp(36px,5vw,60px);font-weight:500}.character-heading h1 em{color:var(--gold);font-family:Playfair Display,serif;font-weight:500}.character-heading p{color:#aab5af;max-width:660px;margin-bottom:0;line-height:1.7}.character-selection{grid-template-columns:minmax(240px,.7fr) minmax(380px,1fr);gap:32px;display:grid}.character-selection-controls{flex-direction:column;align-items:flex-start;gap:12px;display:flex}.character-selection-controls h2{margin:0 0 4px;font-size:28px}.character-mode{flex-wrap:wrap;gap:8px;display:flex}.character-mode button[aria-pressed=true]{background:var(--gold);color:var(--bg)}.character-selection-hint{color:#aab5af;margin:0;font-size:12px;line-height:1.7}.character-preview-area h3{color:#c1c9c3;margin:0 0 12px;font-size:15px;font-weight:500}.character-preview{grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin:0;padding:0;list-style:none;display:grid}.character-preview li{border:1px solid #3a4748;min-width:0;position:relative;overflow:hidden}.character-preview .character-portrait{aspect-ratio:1}.character-preview-name{-webkit-line-clamp:2;overflow-wrap:anywhere;background:linear-gradient(#0000,#101719eb 25%);-webkit-box-orient:vertical;padding:12px 5px 5px;font-size:9px;line-height:1.35;display:-webkit-box;position:absolute;inset:auto 0 0;overflow:hidden}.character-preview-name strong,.character-preview-name b{color:#f0d696}.character-preview .character-placeholder span{font-size:24px}.character-preview .character-placeholder small{display:none}.character-create{margin-top:18px}.character-create>summary{cursor:pointer;color:var(--gold);padding:3px 0;font-size:17px}.character-form{align-items:flex-start;gap:28px;padding-top:22px;display:flex}.character-form-fields{flex-direction:column;align-items:flex-start;gap:12px;width:min(100%,680px);display:flex}.character-form textarea{resize:vertical;font:inherit}.character-upload-preview{object-fit:contain;border:1px solid var(--line);max-width:200px;max-height:260px}.character-stylization-option{color:#cbd1c8;cursor:pointer;align-items:center;gap:9px;font-size:14px;display:flex}.character-stylization-option input{accent-color:var(--gold);flex-shrink:0;width:18px;height:18px;margin:0}.character-stylization-status{border:1px solid var(--line);flex-direction:column;gap:8px;margin-top:18px;padding:16px;display:flex}.character-stylization-status>p{margin:0}.character-creation-error{padding-top:16px}.character-error{color:#f1a89e;margin:0;font-size:13px;line-height:1.6}.character-notice{background:#23312a;border:1px solid #607365;margin:18px 0 0;padding:16px;line-height:1.6}.character-gallery-heading{justify-content:space-between;align-items:center;gap:20px;margin:36px 0 20px;display:flex}.character-gallery-heading h2{margin:8px 0 0;font-size:30px;font-weight:500}.character-gallery-heading h2 span{color:var(--muted);font-size:18px}.character-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;display:grid}.character-card{background:#182123;border:1px solid #3a4748;min-width:0;transition:border-color .15s}.character-card.is-required{border-color:var(--gold);box-shadow:0 0 0 1px #d7b47266}.character-card-choice{cursor:pointer;flex-direction:column;display:flex}.character-portrait{aspect-ratio:1;background:linear-gradient(145deg,#304044,#151e20);width:100%;overflow:hidden}.character-portrait img{object-fit:cover;width:100%;height:100%;display:block}.character-placeholder{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;height:100%;padding:10px;display:flex}.character-placeholder span{color:#7c8273;font-family:Playfair Display,serif;font-size:70px}.character-placeholder small{color:#aab5af;font-size:11px;line-height:1.6}.character-card-check{color:#cbd1c8;align-items:center;gap:7px;padding:12px 10px 6px;font-size:11px;display:flex}.character-card-check input{accent-color:var(--gold);flex-shrink:0;width:17px;height:17px;margin:0}.character-card-meta{color:var(--gold);padding:8px 12px 4px;font:10px DM Mono,monospace}.character-card-name{overflow-wrap:anywhere;padding:0 12px 12px;font-size:16px;font-weight:500;line-height:1.4}.character-description{color:#aab5af;padding:0 12px 12px;font-size:12px}.character-description summary{cursor:pointer;min-height:24px}.character-description p{white-space:pre-wrap;overflow-wrap:anywhere;margin:8px 0 0;line-height:1.7}.character-portrait-controls{border-top:1px solid var(--line);padding:12px}.character-job-status{flex-direction:column;gap:8px;margin-bottom:10px;font-size:12px;line-height:1.6;display:flex}.character-job-status>p{margin:0}.character-portrait-editor>summary{color:var(--gold);cursor:pointer;min-height:24px;font-size:13px}.character-portrait-fields{flex-direction:column;gap:10px;padding-top:12px;display:flex}.character-portrait-fields .lobby-input{width:100%;min-width:0;padding:9px;font-size:12px}.character-portrait-fields textarea{resize:vertical;font:inherit}.character-portrait-fields input[type=file]{overflow:hidden}.character-portrait-fields .form-label{font-size:12px}.character-reference-preview{object-fit:contain;border:1px solid var(--line);background:#101719;width:100%;max-height:200px}.character-saved-data{border:1px solid var(--line);flex-direction:column;gap:8px;padding:10px;display:flex}.character-saved-prompt{color:#cbd1c8;white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-size:12px;line-height:1.6}.character-portrait-actions{flex-direction:column;gap:8px;display:flex}.character-portrait-actions button,.character-portrait-fields>button,.character-saved-data button{white-space:normal;width:100%;padding:10px 7px;font-size:11px;line-height:1.5}.character-catalog button:focus-visible,.character-catalog input:focus-visible,.character-catalog select:focus-visible,.character-catalog textarea:focus-visible,.character-catalog summary:focus-visible{outline:2px solid var(--gold);outline-offset:3px}@media (width<=1100px){.character-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width<=800px){.character-selection{grid-template-columns:1fr;gap:24px}.character-preview-area{width:100%;max-width:550px}.character-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.character-form{flex-direction:column}}@media (width<=620px){.character-catalog{padding-top:28px}.character-heading{flex-direction:column}.character-heading h1{font-size:38px}.character-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.character-gallery-heading{flex-wrap:wrap}.character-preview{gap:4px}.character-preview-name{padding:9px 3px 3px;font-size:7px}.character-card-check{min-height:44px;padding:12px 8px 6px;font-size:10px}.character-card-name{font-size:15px}.character-catalog button,.character-create>summary{min-height:44px}.character-portrait-editor>summary{align-items:center;min-height:44px;display:flex}}.character-guest-controls{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:24px;display:flex}.character-guest-controls>div{flex:250px;gap:8px;max-width:420px;display:grid}.lobby{min-height:650px;padding:74px 0}.lobby-heading{max-width:780px}.lobby-heading h1{letter-spacing:-.05em;margin:20px 0;font-size:clamp(42px,6vw,72px);font-weight:500;line-height:1.02}.lobby-heading h1 em{color:var(--gold);font-family:Playfair Display;font-weight:500}.lobby-heading p{color:#9ba8a4;line-height:1.7}.lobby-grid{grid-template-columns:1fr 1fr;gap:18px;max-width:920px;margin-top:36px;display:grid}.lobby-card{flex-direction:column;align-items:stretch;gap:12px;display:flex}.lobby-card h2{margin:0 0 8px;font-size:20px;font-weight:500}.form-label{color:#aab5af;font-size:11px}.lobby-input{color:#e5e7df;background:#111a1c;border:1px solid #3a4748;width:100%;padding:12px}.lobby-card .primary,.lobby-card .secondary{align-self:flex-start;margin-top:6px}.invite-banner{border:1px solid var(--gold);background:#24261f;justify-content:space-between;align-items:center;gap:18px;margin:20px 0;padding:16px 20px;display:flex}.invite-banner p{color:#b7c0b8;margin:9px 0 0;font-size:12px}.invite-banner code{color:#f0d696;overflow-wrap:anywhere}.header-actions{gap:8px;display:flex}@media (width<=950px){.lobby-grid{grid-template-columns:1fr;max-width:620px}}@media (width<=620px){.lobby{padding:45px 0}.lobby-heading h1{font-size:46px}.header-actions{flex-wrap:wrap}.invite-banner{flex-direction:column;align-items:start}}.invitation-card{max-width:620px;margin-top:30px}.invitation-card p{color:#aab8ad;margin:0;font-size:13px;line-height:1.6}.invitation-link{font:12px/1.6 DM Mono,monospace}.lobby-return{color:var(--gold);align-self:flex-start;font-size:12px}.lobby-card>p{color:#aab8ad;font-size:13px;line-height:1.6}.invitation-qr{justify-items:center;gap:12px;margin:12px 0;display:grid}.invitation-qr svg{background:#fff;max-width:100%;height:auto}.invitation-qr figcaption{color:#aab8ad;text-align:center;font-size:13px;line-height:1.6}.invitation-card button:focus-visible,.lobby-return:focus-visible,.lobby-input:focus-visible{outline:2px solid var(--gold);outline-offset:3px}@media (width<=620px){.topbar{align-items:flex-start;gap:14px;height:auto;min-height:64px;padding:12px 0}.header-actions{justify-content:flex-end}.header-actions .secondary{white-space:normal;padding:10px 12px;font-size:12px}.invitation-card .primary{align-self:stretch;min-height:44px}.lobby-return{align-items:center;min-height:44px;display:inline-flex}}.saved-places{max-width:920px;margin-top:30px}.saved-places h2{margin:0 0 18px;font-size:22px;font-weight:500}.saved-places-list{gap:12px;display:grid}.saved-place{background:#111a1c;border:1px solid #3a4748;justify-content:space-between;align-items:center;gap:16px;padding:14px;display:flex}.saved-place-label{gap:5px;display:grid}.saved-place-label strong{font-size:16px;font-weight:500}.saved-place-label span,.saved-places-hint{color:#aab8ad;font-size:12px;line-height:1.6}.saved-places-hint{margin:16px 0 0}.saved-place-actions,.session-loading-actions{flex-wrap:wrap;gap:8px;display:flex}.saved-place-actions button{margin:0}.session-loading-actions{margin-top:8px}.connection-banner{color:#f2d39f;background:#30271d;border:1px solid #a77d42;margin:12px 0;padding:11px 14px;font-size:13px;line-height:1.5}.saved-place button:focus-visible,.session-loading button:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.lobby-text-button{color:var(--gold);cursor:pointer;font:inherit;background:0 0;border:0;padding:0;text-decoration:underline}.lobby-text-button:focus-visible{outline:2px solid var(--gold);outline-offset:3px}@media (width<=620px){.saved-place{flex-direction:column;align-items:stretch}.saved-place-actions button{flex:auto;min-height:44px}}.account-panel{gap:20px;max-width:620px;margin:40px 0 60px;display:grid}.account-panel h2{margin:0;font-weight:500}.account-panel p,.temporary-password p,.account-user p,.account-confirm p{color:#aab8ad;font-size:13px;line-height:1.6}.account-panel form{gap:12px;display:grid}.account-panel .primary,.account-panel>.secondary{justify-self:start}.account-menu{position:relative}.account-menu-toggle{overflow-wrap:anywhere;max-width:240px}.account-menu-actions{z-index:30;background:#172123;border:1px solid #3a4748;gap:8px;min-width:210px;padding:14px;display:grid;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 12px 32px #0008}.account-menu-actions>span{color:#aab8ad;padding:4px;font-size:11px}.account-menu-actions .secondary{text-align:left}.account-admin{padding:40px 0 60px}.account-heading,.account-user{justify-content:space-between;align-items:center;gap:20px;display:flex}.account-heading h1{margin:14px 0;font-size:36px}.account-create{max-width:620px;margin:24px 0}.account-actions{flex-wrap:wrap;gap:10px;display:flex}.account-user-list{gap:12px;margin-top:24px;display:grid}.account-user h2{overflow-wrap:anywhere;margin:0;font-size:18px}.account-user h2 small{color:var(--gold);font-size:12px}.account-user p{margin:6px 0 0}.temporary-password{border-color:var(--gold);gap:12px;max-width:620px;margin:24px 0;display:grid}.temporary-password h2{overflow-wrap:anywhere;margin:0;font-size:20px}.temporary-password p{margin:0}.temporary-password input{font-family:DM Mono,monospace}.account-confirm{color:inherit;z-index:100;width:min(580px,100% - 32px);max-height:calc(100dvh - 32px);margin:0;position:fixed;top:50%;left:50%;overflow:auto;transform:translate(-50%,-50%)}.account-confirm::backdrop{background:#000b}.account-confirm h2{overflow-wrap:anywhere}.account-panel button:focus-visible,.account-menu button:focus-visible,.account-admin button:focus-visible{outline:2px solid var(--gold);outline-offset:3px}@media (width<=620px){.account-panel{margin:28px 0 44px}.account-panel .primary,.account-panel>.secondary{justify-self:stretch;min-height:44px}.account-heading{flex-wrap:wrap;align-items:flex-start}.account-user{flex-direction:column;align-items:flex-start}.account-user .account-actions{width:100%}.account-actions button{min-height:44px}.account-menu-toggle{max-width:160px}.account-admin{padding:28px 0 44px}.temporary-password .account-actions{display:grid}.account-menu-actions{max-width:calc(100vw - 32px)}}.decks-page{padding:42px 0 70px}.decks-heading{justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:28px;display:flex}.decks-heading h1{letter-spacing:-.04em;margin:12px 0;font-size:clamp(36px,5vw,58px);font-weight:500}.decks-heading h1 em{color:var(--gold);font-family:Playfair Display,serif}.decks-heading p,.deck-hint{color:#aab8ad;font-size:13px;line-height:1.6}.deck-name-form{gap:12px;max-width:640px;margin-bottom:20px;display:grid}.deck-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.deck-actions button,.deck-card-actions button{margin:0}.deck-list{gap:16px;margin-top:20px;display:grid}.deck-list-card h2,.deck-editor-layout h2,.deck-preview h2,.deck-conflict h2{overflow-wrap:anywhere;margin:0 0 12px;font-size:22px;font-weight:500}.deck-list-card p{color:#aab8ad;font-size:13px}.deck-editor-controls{gap:12px;margin-bottom:20px;display:grid}.deck-editor-controls .deck-hint{margin:0}.deck-editor-layout{grid-template-columns:minmax(0,1.6fr) minmax(260px,1fr);gap:20px;display:grid}.deck-card-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.deck-card-list li{background:#111a1c;border:1px solid #3a4748;align-items:center;gap:10px;padding:10px;display:flex}.deck-card-list li[draggable=true]{cursor:grab}.deck-card-list li img{object-fit:cover;flex:none;width:44px;height:58px}.deck-position{color:var(--gold);min-width:20px;font-size:12px}.deck-card-label{overflow-wrap:anywhere;flex:1;gap:8px;min-width:0;display:grid}.deck-card-label strong{font-size:13px;font-weight:500}.deck-card-label label{color:#aab8ad;align-items:center;gap:5px;font-size:12px;display:flex}.deck-card-label input{accent-color:var(--gold);width:18px;height:18px}.deck-card-actions{flex:none;gap:5px;display:flex}.deck-card-actions button{min-width:38px;min-height:42px;padding:10px}.deck-available{align-self:start}.deck-available-list{gap:8px;max-height:620px;margin-top:16px;display:grid;overflow-y:auto}.deck-available-list button{text-align:left;overflow-wrap:anywhere}.deck-preview{margin-top:20px}.deck-preview-list{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.deck-preview-list li{background:#111a1c;min-width:0;padding:8px}.deck-preview-list img{aspect-ratio:3/4;object-fit:cover;width:100%}.deck-preview-list span{overflow-wrap:anywhere;margin-top:8px;font-size:11px;line-height:1.4;display:block}.deck-conflict{border-color:#a77d42;gap:12px;margin-bottom:20px;display:grid}.deck-conflict p{color:#f2d39f;font-size:13px;line-height:1.6}.deck-conflict button{justify-self:start}.decks-page button:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.catalog-deck-save{border-top:1px solid #3a4748;gap:10px;margin-top:12px;padding-top:14px;display:grid}.character-pool-choice{color:#aab8ad;align-items:center;gap:7px;padding:10px;font-size:12px;display:flex}.character-pool-choice input{width:18px;height:18px;accent-color:var(--gold)}@media (width<=950px){.deck-editor-layout{grid-template-columns:1fr}.deck-available-list{max-height:360px}}@media (width<=620px){.decks-heading{flex-direction:column;gap:8px}.decks-page{padding-top:28px}.deck-card-list li{flex-wrap:wrap}.deck-card-actions{justify-content:flex-end;width:100%}.deck-card-actions button{min-width:44px;min-height:44px}.deck-actions button{min-height:44px}.deck-preview-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}}.mobile-game-screen,.mobile-game-screen__status,.mobile-game-screen__main,.game-notices{display:contents}.mobile-game-screen__toolbar,.mobile-game-screen__menu,.mobile-game-screen__panel-heading,.mobile-game-screen__backdrop,.mobile-turn-prompt,.action-hint__compact-label{display:none}@media (width<=620px),(pointer:coarse) and (hover:none) and (height<=620px){.shell.mobile-game-active{width:100%;max-width:none;height:100dvh;min-height:0;margin:0;padding:0;position:fixed;inset:0;overflow:hidden}.mobile-game-active>.topbar,.mobile-game-active>footer{display:none}.mobile-game-screen{width:100%;height:100%;min-height:0;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);flex-direction:column;display:flex;position:relative;overflow:hidden}.mobile-game-screen__toolbar{z-index:22;background:#101719;flex:0 0 42px;justify-content:flex-end;align-items:center;gap:4px;padding:3px 8px;display:flex;position:relative}.mobile-game-screen__toolbar button{color:#efd49f;background:#202a2c;border:1px solid #8e7850;min-width:0;min-height:34px;padding:5px 9px;font-size:12px}.mobile-game-screen__toolbar button[aria-expanded=true]{border-color:var(--gold);background:#3a3020}.mobile-game-screen__toolbar .mobile-game-screen__menu-toggle,.mobile-game-screen__toolbar .mobile-game-screen__privacy-toggle{flex:none;padding:5px 7px;font-size:11px}.mobile-turn-prompt{z-index:9;border:1px solid var(--gold);color:#f1e5cb;background:#172122f7;gap:8px;padding:14px;display:grid;position:absolute;top:8px;left:8px;right:8px;box-shadow:0 5px 25px #000b}.mobile-turn-prompt>strong{color:var(--gold);font-size:20px}.mobile-turn-prompt p{margin:0;font-size:13px}.mobile-turn-prompt>div{gap:8px;display:flex}.mobile-turn-prompt button{flex:1;min-height:44px}.mobile-turn-prompt button:focus-visible{outline-offset:2px;outline:2px solid #a9d990}.mobile-game-screen__toolbar .action-hints{flex-wrap:nowrap;flex:auto;gap:4px;min-width:0;display:flex}.mobile-game-screen__toolbar .action-hint{color:#73807d;letter-spacing:0;white-space:nowrap;background:0 0;border-color:#384341;flex:1 1 0;min-width:0;padding:5px 2px;font-size:clamp(9px,2.6vw,11px)}.mobile-game-screen__toolbar .action-hint.is-available{color:#e6c88c;background:#d7b47214;border-color:#8e7850}.mobile-game-screen__toolbar .action-hint.is-available:before{content:none}.mobile-game-screen__toolbar .action-hint.is-active,.mobile-game-screen__toolbar .action-hint.is-available:focus-visible{color:#ddf2c8;background:#a9d99022;border-color:#a9d990}.mobile-game-screen__toolbar .action-hint__full-label{display:none}.mobile-game-screen__toolbar .action-hint__compact-label{display:inline}.mobile-game-screen__turn{color:#d5ded5;flex:auto;min-width:0;font-size:12px;line-height:1.3}.mobile-game-screen__toolbar .mobile-collapse-toggle{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;margin-right:auto;overflow:hidden}.mobile-game-screen__toolbar button:focus-visible,.mobile-game-screen__panel-heading button:focus-visible,.mobile-game-menu-actions button:focus-visible{outline-offset:2px;outline:2px solid #a9d990}.mobile-game-screen__status{display:none}.mobile-game-screen__menu{z-index:21;top:calc(env(safe-area-inset-top) + 42px);left:max(8px, env(safe-area-inset-left));right:max(8px, env(safe-area-inset-right));width:auto;max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 50px);overscroll-behavior:contain;touch-action:pan-y;border:1px solid var(--gold);background:#172122;padding:10px;display:none;position:absolute;overflow:auto;box-shadow:0 12px 40px #000b}.mobile-game-screen.has-menu-panel .mobile-game-screen__menu{display:block}.mobile-game-screen__panel-heading{color:var(--gold);justify-content:space-between;align-items:center;margin-bottom:9px;font-size:13px;display:flex}.mobile-game-screen__panel-heading button{color:#f1e5cb;background:#273233;border:1px solid #53615b;width:34px;height:34px}.mobile-game-screen__backdrop{z-index:10;display:block;position:absolute;inset:0}.mobile-game-screen__scrim{background:#02070888;border:0;width:100%;height:100%;padding:0;display:block}.mobile-game-menu-content{color:#d5ded5;gap:14px;font-size:12px;display:grid}.mobile-game-menu-status{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.mobile-game-menu-counters,.mobile-game-menu-legend{flex-wrap:wrap;gap:8px 16px;display:flex}.mobile-game-menu-counters strong{color:var(--gold)}.mobile-game-menu-legend span{align-items:center;gap:5px;display:flex}.mobile-game-menu-legend i{border-radius:50%;width:9px;height:9px}.mobile-game-menu-legend .legend-hand{background:#62b8b4}.mobile-game-menu-history{border:1px solid var(--line);padding:0}.mobile-game-menu-history summary{min-height:44px;color:var(--gold);cursor:pointer;padding:12px}.mobile-game-menu-actions{gap:8px;display:grid}.mobile-game-menu-actions button{min-height:44px}.mobile-game-screen__main,.mobile-game-screen .game-layout,.mobile-game-screen .board-column,.mobile-game-screen .board-interaction{flex-direction:column;flex:auto;width:100%;min-width:0;max-width:none;min-height:0;display:flex}.mobile-game-screen .game-layout{gap:0;padding:0!important}.mobile-game-screen .board-column{position:relative}.mobile-game-screen .board-interaction{margin:0;position:relative}.mobile-game-screen .board-shift-shell{grid-template-rows:var(--shift-size) minmax(0, 1fr) var(--shift-size);flex:auto;width:100%;max-width:none;height:100%;min-height:0;margin:0}.mobile-game-screen .board-shift-shell:not(.show-shifts){grid-template-rows:minmax(0,1fr)}.mobile-game-screen .board-shift-shell .board{aspect-ratio:auto;grid-template-rows:repeat(var(--board-rows), minmax(0, 1fr));width:100%;height:100%;min-height:0}.mobile-game-screen .board-shift-shell .suspect{min-height:0;padding:2px 1px}.mobile-game-screen .board-shift-shell .suspect-cell{--suspect-name-size:clamp(7px, 2vw, 9px);--suspect-action-height:clamp(0px, calc(100cqh - var(--suspect-action-bottom) - 24px), 44px);min-height:0;container-type:size}.mobile-game-screen .board-shift-shell .suspect-cell>:is(.suspect-choose-identity,.suspect-exonerate,.suspect-kill,.suspect-accuse){height:var(--suspect-action-height);min-height:0;max-height:var(--suspect-action-height);font-size:clamp(5px, calc(var(--suspect-action-height) * .32), 9px);gap:0;padding:0 1px;line-height:1.1;overflow:hidden}.mobile-game-screen .board-shift-shell .suspect-name{font-size:var(--suspect-name-size);line-height:1.1}@container (height<=82px){.mobile-game-screen .board-shift-shell .suspect-cell .suspect-caption{height:8px;bottom:3px}.mobile-game-screen .board-shift-shell .suspect-cell .suspect-name{white-space:nowrap;text-overflow:ellipsis;width:100%;max-height:8px;font-size:7px;line-height:1.1;display:block}.mobile-game-screen .board-shift-shell .suspect-cell .final-identity-mark{padding:2px 1px;font-size:7px;bottom:14px}.mobile-game-screen .board-shift-shell .suspect-cell>:is(.suspect-choose-identity,.suspect-exonerate,.suspect-kill,.suspect-accuse){overflow-wrap:anywhere;height:22px;max-height:22px;font-size:6px;line-height:1.05;inset:3px 24px auto 3px}}.mobile-game-screen .board-shift-shell .drag-feedback{z-index:9;white-space:normal;text-align:center;pointer-events:none;max-width:calc(100% - 16px);top:auto;bottom:6px}.mobile-game-screen .board-shift-shell.show-shifts .drag-feedback{bottom:calc(var(--shift-size) + 6px)}.mobile-game-screen .board-legend,.mobile-game-screen .board-history{display:none}.mobile-game-screen .game-notices{z-index:8;top:5px;left:max(6px, env(safe-area-inset-left));right:max(6px, env(safe-area-inset-right));overscroll-behavior:contain;pointer-events:none;flex-direction:column;gap:5px;width:auto;max-height:calc(100% - 10px);display:flex;position:absolute;overflow-y:auto}.mobile-game-screen .game-notices>*{pointer-events:auto;width:100%;margin:0;box-shadow:0 5px 25px #000b}.mobile-game-screen .game-notices .opening-hint{display:none}.mobile-game-screen .game-notices .disguise-warning,.mobile-game-screen .game-notices .collapse-confirmation{background:#3a3020f7;max-height:min(68dvh,440px);overflow:auto}.mobile-game-screen .game-notices .collapse-confirmation.is-mobile-collapsed{display:none}.mobile-game-screen .mobile-game-screen__main>.result-banner{overscroll-behavior:contain;flex:none;grid-template-columns:minmax(0,1fr);gap:6px;max-height:30dvh;margin:0 6px 4px;padding:8px 10px;overflow-y:auto}.mobile-game-screen .result-summary{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:5px 12px;display:flex}.mobile-game-screen .result-summary h2{margin:0;font-size:18px}.mobile-game-screen .result-summary p{font-size:10px}.mobile-game-screen .result-identities{gap:3px}.mobile-game-screen .result-identities>div{grid-template-columns:89px minmax(0,1fr);gap:6px}.mobile-game-screen .result-identities dt{font-size:10px}.mobile-game-screen .result-identities dd{font-size:11px}.mobile-game-screen .result-event{display:none}.mobile-game-active>.error-toast{z-index:30;left:8px;right:8px;bottom:calc(env(safe-area-inset-bottom) + 8px);padding:9px 10px;font-size:12px}.mobile-game-active>.connection-banner{z-index:9;top:calc(env(safe-area-inset-top) + 44px);margin:0;position:absolute;left:8px;right:8px}.mobile-game-screen .board-interaction>.exoneration-hint,.mobile-game-screen .board-interaction>.off-board-evidence{z-index:7;width:auto;margin:0;position:absolute;left:8px;right:8px;box-shadow:0 5px 25px #000b}.mobile-game-screen .board-interaction>.exoneration-hint{top:8px}.mobile-game-screen .board-interaction>.off-board-evidence{max-height:40%;bottom:8px;overflow:auto}.mobile-game-screen .target-confirmation-overlay{z-index:9;position:absolute}.mobile-game-screen .target-confirmation{max-height:80%}}:root{color:#e5e7df;font-synthesis:none;text-rendering:optimizelegibility;--bg:#101719;--panel:#182123;--panel-2:#202a2c;--line:#303b3d;--muted:#82908e;--gold:#d7b472;--red:#d66b5e;--green:#a3b7a5;background:#101719;font-family:DM Sans,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(ellipse at 50% 0%,#1c292a 0,transparent 42%),var(--bg);min-width:320px;margin:0}button,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.38;cursor:not-allowed}.shell{max-width:1480px;margin:auto;padding:0 48px}.topbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;height:78px;display:flex}.brand{color:#f3f1e9;letter-spacing:.14em;align-items:center;gap:12px;font-weight:700;text-decoration:none;display:flex}.brand-mark{border:1px solid var(--gold);width:34px;height:34px;color:var(--gold);place-items:center;font-family:Playfair Display;font-size:23px;display:grid}.brand small{color:var(--muted);letter-spacing:.22em;margin-top:3px;font:10px DM Mono;display:block}.top-meta,.eyebrow,.counter,.edition,footer,.welcome-foot,.event-card small{letter-spacing:.09em;font-family:DM Mono,monospace;font-size:10px}.top-meta{color:#b4bfba;align-items:center;gap:10px;display:flex}.edition{border-left:1px solid var(--line);color:var(--muted);padding-left:12px}.live-dot{background:#91b99b;border-radius:50%;width:6px;height:6px;box-shadow:0 0 9px #91b99b}.welcome{grid-template-columns:1fr .8fr;align-items:center;gap:60px;min-height:660px;display:grid}.welcome-copy{padding:72px 0}.eyebrow{color:var(--gold)}h1,h2,p{margin-top:0}.welcome h1,.case-header h1{letter-spacing:-.055em;margin:22px 0;font-size:clamp(44px,6vw,76px);font-weight:500;line-height:1.02}.welcome h1 em{color:var(--gold);font-family:Playfair Display,serif;font-weight:500}.welcome-copy>p,.case-header p{color:#9ba8a4;max-width:560px;margin-bottom:34px;font-size:16px;line-height:1.8}.primary,.secondary{border:1px solid var(--gold);background:var(--gold);color:#182021;letter-spacing:.02em;padding:15px 20px;font-weight:700}.primary span{padding-left:20px}.welcome-foot{color:#71807d;flex-wrap:wrap;gap:13px;margin-top:64px;display:flex}.welcome-art{background:linear-gradient(145deg,#263334,#11191a 62%);border:1px solid #354344;place-items:center;height:480px;display:grid;position:relative;overflow:hidden}.welcome-art:before,.welcome-art:after{content:"";border:1px solid #40504d;position:absolute;inset:8%;transform:rotate(-8deg)}.welcome-art:after{border-color:#2d3838;inset:13%;transform:rotate(7deg)}.ring{opacity:.4;border:1px solid #a65b50;border-radius:50%;width:250px;height:250px;position:absolute}.ring-two{opacity:.3;border-color:#8c7a58;width:320px;height:320px}.redacted{letter-spacing:.08em;color:#d8d5c7;z-index:1;text-align:center;font:500 44px/1.05 DM Mono;transform:rotate(-8deg)}.art-caption{color:#75817e;letter-spacing:.11em;font:10px/1.8 DM Mono;position:absolute;bottom:25px;left:28px}.case-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:end;gap:20px;padding:46px 0 28px;display:flex}.case-header h1{margin:12px 0;font-size:clamp(32px,4vw,48px)}.case-header p{margin:0;font-size:14px}.secondary{color:var(--gold);white-space:nowrap;background:0 0;padding:12px 16px}.game-layout{grid-template-columns:minmax(400px,1.35fr) minmax(330px,.65fr);gap:34px;padding:34px 0 50px;display:grid}.board-title{justify-content:space-between;align-items:end;margin:0 0 17px;display:flex}.board-title h2,.panel h2{margin:7px 0 0;font-size:20px;font-weight:500}.counter{color:#9ba8a4}.board{aspect-ratio:1;background:#0e1415;border:1px solid #354142;grid-template-columns:repeat(5,1fr);gap:7px;width:min(100%,700px);padding:8px;display:grid}.suspect{color:#e6e7df;background:linear-gradient(150deg,#344344,#202b2d);border:1px solid #354142;flex-direction:column;justify-content:center;align-items:center;gap:5px;min-width:0;transition:all .15s;display:flex;position:relative}.suspect:hover,.suspect.selected{border-color:var(--gold);z-index:1;transform:translateY(-2px)}.suspect.selected{box-shadow:0 0 0 2px #d7b47266}.suspect.identity{background:linear-gradient(150deg,#514936,#282921);border-color:#a58e5b}.avatar{color:#ded4ba;background:#283334;border:1px solid #687572;border-radius:50%;place-items:center;width:clamp(28px,4vw,52px);height:clamp(28px,4vw,52px);font:13px DM Mono;display:grid}.suspect-name{color:#b6c0bc;overflow-wrap:anywhere;text-align:center;-webkit-line-clamp:2;-webkit-box-orient:vertical;max-width:100%;max-height:2.5em;font-size:clamp(8px,1vw,12px);line-height:1.25;display:-webkit-box;overflow:hidden}.suspect-no{color:#788581;font:9px DM Mono}.dead{filter:grayscale(.85);opacity:.55}.dead-mark{color:#d76558;font-size:clamp(25px,4vw,42px);font-weight:700;position:absolute}.badge{color:#fff;background:#607365;padding:3px 4px;font:7px DM Mono;position:absolute;top:5px;right:5px}.badge-gold{color:#151a19;background:#a48b54;inset:auto 4px 4px}.board-legend{color:#899693;gap:21px;margin-top:14px;font:10px DM Mono;display:flex}.board-legend span{align-items:center;gap:6px;display:flex}.board-legend i{border-radius:50%;width:8px;height:8px;display:inline-block}.legend-live{background:#849d8c}.legend-dead{background:#bb6258}.legend-identity{background:var(--gold)}.side-column{flex-direction:column;gap:15px;display:flex}.event-card,.panel{border:1px solid var(--line);background:linear-gradient(140deg,#1c2729,#172022);padding:20px}.event-card p{color:#d4d9d3;margin:12px 0 16px;font-size:14px;line-height:1.55}.event-card small{color:#687774}.panel-head{margin-bottom:17px}.identity-options,.hand{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.identity-card,.hand-card{color:#e6e7df;text-align:center;background:#24302b;border:1px solid #64725f;flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:106px;padding:10px 7px;display:flex}.identity-card:hover{border-color:var(--gold);background:#32382c}.identity-card span,.hand-card span{color:#9ba89f;font-size:9px}.identity-card strong,.hand-card strong{color:var(--gold);font:18px DM Mono}.identity-card small{color:#c3c9bc;font-size:9px}.hand{grid-template-columns:repeat(3,minmax(0,1fr))}.hand-card{background:#252c2a;border-color:#434e48;min-height:80px}.actions-panel{padding-bottom:16px}.selected-hint{color:#aab5af;margin-bottom:12px;font-size:12px}.action-buttons{grid-template-columns:1fr 1fr;gap:7px;display:grid}.action-buttons button,.shift-grid button{color:#d9e0db;background:#263133;border:1px solid #445152;padding:9px 8px;font-size:11px}.action-buttons button:hover,.shift-grid button:hover{border-color:#b99b5f}.discard-row{color:#9ca9a3;justify-content:space-between;align-items:center;gap:8px;margin-top:13px;font-size:11px;display:flex}.discard-row select{color:#cdd4ce;background:#111a1c;border:1px solid #3a4748;max-width:55%;padding:7px}.shift-controls{margin-top:16px}.shift-controls strong{color:#abb5b0;font-size:11px;font-weight:500}.shift-grid{grid-template-columns:repeat(5,1fr);gap:4px;margin-top:8px;display:grid}.shift-grid button{padding:7px 3px;font:9px DM Mono}.rule-note{color:#73807c;margin:13px 0 0;font-size:10px;line-height:1.55}.history{color:#85918c;padding:8px 3px}.history p{border-left:1px solid #4d5956;margin:11px 0;padding:3px 0 3px 11px;font-size:11px;line-height:1.5}.result-banner{border:1px solid var(--gold);background:#2a2a20;align-items:center;gap:16px;margin:22px 0 0;padding:14px 18px;display:flex}.result-banner strong{letter-spacing:.1em;color:var(--gold);font:11px DM Mono}.result-banner span{color:#c4ccc5;font-size:13px}.result-banner.bandit{border-color:var(--red);background:#2b211f}.result-banner.bandit strong{color:var(--red)}.error-toast{color:#fff;z-index:5;background:#542f2b;border:1px solid #bd695e;padding:12px 17px;position:fixed;bottom:26px;right:28px;box-shadow:0 8px 30px #0008}footer{border-top:1px solid var(--line);color:#697672;justify-content:space-between;padding:20px 0;font-size:9px;display:flex}@media (width<=950px){.shell{padding:0 24px}.game-layout{grid-template-columns:1fr}.board{margin:auto}.board-title,.board-legend{max-width:700px;margin-left:auto;margin-right:auto}.side-column{grid-template-columns:1fr 1fr;display:grid}.actions-panel,.history{grid-column:span 2}.welcome{gap:25px}.welcome-art{height:390px}}@media (width<=620px){.shell{padding:0 14px}.topbar{height:64px}.top-meta{font-size:8px}.edition{display:none}.welcome{grid-template-columns:1fr;gap:0;padding:38px 0}.welcome-copy{padding:20px 0}.welcome h1{font-size:48px}.welcome-art{height:230px}.welcome-foot{margin-top:35px;font-size:8px}.case-header{flex-direction:column;align-items:start;padding:32px 0 23px}.case-header h1{font-size:34px}.game-layout{gap:24px;padding-top:24px}.board{gap:4px;padding:5px}.suspect{gap:3px}.suspect-name,.suspect-no{font-size:7px}.badge{font-size:6px}.board-legend{gap:12px;font-size:8px}.side-column{display:flex}.identity-options{gap:5px}.identity-card{min-height:95px}.identity-card strong{font-size:15px}.shift-grid{grid-template-columns:repeat(3,1fr)}footer{flex-direction:column;gap:14px}.counter{font-size:8px}}.topbar .brand{color:var(--gold);letter-spacing:.08em;text-shadow:0 2px 12px #d7b47218;font-family:Georgia,Times New Roman,serif;font-size:40px;font-weight:700;line-height:1}.topbar .header-actions{margin-left:auto}.topbar .header-actions .secondary{padding:9px 12px;font-size:12px}.case-header.game-status{color:#9ba8a4;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 0;font-size:14px;line-height:1.4;display:grid}.role-badge{color:var(--green);letter-spacing:.08em;white-space:nowrap;background:#a3b7a512;border:1px solid #758676;padding:5px 9px;font:10px/1.2 DM Mono,monospace}.role-badge.role-bandit{color:#e59a8e;background:#d66b5e14;border-color:#a25e52}.game-status-turn.is-active{color:#e5e7df}.game-status .counter{text-align:right;white-space:nowrap;letter-spacing:.02em}.game-status .counter strong{color:var(--gold);font-weight:500}.game-status .game-counters{flex-wrap:wrap;justify-content:flex-end;gap:4px 12px;display:flex}.empty-evidence-notice{color:#f2dfb8;background:#38301e;border:1px solid #8e7850;width:min(100%,780px);margin:0 auto 12px;padding:10px 12px;font-size:13px;line-height:1.5}.action-hints{flex-wrap:wrap;grid-column:1/-1;gap:6px;display:flex}.action-hint{color:#73807d;letter-spacing:.02em;white-space:nowrap;background:0 0;border:1px solid #384341;padding:4px 7px;font:10px/1.25 DM Mono,monospace}.action-hint.is-available{color:#e6c88c;background:#d7b47214;border-color:#8e7850}.action-hint.is-available:before{content:"●";margin-right:5px;font-size:7px}.action-hint.is-available:hover,.action-hint.is-available:focus-visible,.action-hint.is-active{color:#ddf2c8;background:#a9d99022;border-color:#a9d990}.action-hint:focus-visible{outline-offset:2px;outline:2px solid #a9d990}.disguise-warning,.collapse-confirmation{border:1px solid var(--gold);color:#f1e5cb;background:#3a3020;border-left-width:4px;width:min(100%,780px);margin:0 auto 12px;padding:14px}.board-interaction{isolation:isolate;width:min(100%,780px);margin:0 auto;position:relative}.target-confirmation-overlay{z-index:5;background:#070e11b8;justify-content:center;align-items:center;padding:16px;display:flex;position:absolute;inset:0}.target-confirmation{border:1px solid var(--gold);color:#f1e5cb;overflow-wrap:anywhere;background:#25271f;width:min(100%,420px);max-height:100%;margin:0;padding:20px;overflow:auto;box-shadow:0 12px 36px #0008}.disguise-warning h2,.target-confirmation h2,.collapse-confirmation h2{color:#f0cd8d;margin:0 0 8px;font-size:17px;font-weight:600}.disguise-warning p,.target-confirmation p,.collapse-confirmation p{margin:0;font-size:13px;line-height:1.6}.disguise-warning-actions,.target-confirmation-actions,.collapse-confirmation-actions,.collapse-axis-actions{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.collapse-axis-actions button{color:#e6c88c;background:#252d29;border:1px solid #8e7850;min-height:44px;padding:9px 13px;font-size:12px}.collapse-axis-actions button.is-active,.collapse-axis-actions button:hover:not(:disabled),.collapse-axis-actions button:focus-visible{color:#ddf2c8;background:#314734;border-color:#a9d990}.collapse-axis-actions button:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.collapse-confirmation .collapse-selection-status{color:#d4e2d5;margin-top:10px}.disguise-warning-actions button,.target-confirmation-actions button,.collapse-confirmation-actions button{min-height:44px;padding:10px 14px;font-size:12px}.disguise-warning-actions button:focus-visible,.target-confirmation-actions button:focus-visible,.collapse-confirmation-actions button:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.interrogation-banner,.accusation-banner,.disguise-result-banner,.disguise-success-banner{color:#dce8d7;background:#24342c;border:1px solid #758676;border-left-width:4px;justify-content:space-between;align-items:center;gap:12px;width:min(100%,780px);margin:0 auto 12px;padding:12px 14px;display:flex}.interrogation-banner.identity-nearby{color:#ffd6cd;background:#4a2724;border-color:#d66b5e}.accusation-banner{color:#f2dfb8;background:#38301e;border-color:#d7b472}.disguise-result-banner{color:#ffd6cd;background:#4a2724;border-color:#d66b5e}.disguise-success-banner{color:#f2dfb8;background:#38301e;border-color:#d7b472}.interrogation-banner span,.interrogation-banner strong,.accusation-banner span,.accusation-banner strong,.disguise-result-banner span,.disguise-result-banner strong,.disguise-success-banner span,.disguise-success-banner strong{display:block}.interrogation-banner span,.accusation-banner span,.disguise-result-banner span,.disguise-success-banner span{margin-bottom:4px;font-size:11px}.interrogation-banner strong,.accusation-banner strong,.disguise-result-banner strong,.disguise-success-banner strong{font-size:19px;font-weight:600}.interrogation-dismiss,.accusation-dismiss,.disguise-result-dismiss,.disguise-success-dismiss{width:44px;height:44px;color:inherit;background:0 0;border:1px solid;flex-shrink:0;padding:0;font-size:16px}.interrogation-dismiss:hover,.interrogation-dismiss:focus-visible,.accusation-dismiss:hover,.accusation-dismiss:focus-visible,.disguise-result-dismiss:hover,.disguise-result-dismiss:focus-visible,.disguise-success-dismiss:hover,.disguise-success-dismiss:focus-visible{background:#ffffff14}.interrogation-dismiss:focus-visible,.accusation-dismiss:focus-visible,.disguise-result-dismiss:focus-visible,.disguise-success-dismiss:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.exoneration-hint,.off-board-evidence{width:min(100%,780px);margin:0 auto 10px}.exoneration-hint{color:#aab8ad;font-size:12px;line-height:1.5}.off-board-evidence{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.off-board-evidence-label{color:#aab8ad;font-size:11px}.off-board-discard{color:#e5e7df;background:#233331;border:1px solid #62b8b4;flex-wrap:wrap;align-items:center;gap:6px;padding:6px 8px;font-size:10px;display:flex}.off-board-discard strong{color:#8bd0ca;font:12px DM Mono,monospace}.suspect-cell{--suspect-name-size:clamp(8px, 1vw, 12px);--suspect-caption-height:calc(var(--suspect-name-size) * 2.5);--suspect-action-bottom:calc(var(--suspect-caption-height) + 12px);min-width:0;min-height:0;display:grid;position:relative}.suspect-exonerate{z-index:4;left:3px;right:3px;bottom:var(--suspect-action-bottom);color:#e5f3d9;background:#253b2b;border:1px solid #a9d990;padding:6px 3px;font-size:clamp(8px,.9vw,11px);line-height:1.25;position:absolute}.suspect-exonerate:hover:not(:disabled),.off-board-discard:hover:not(:disabled){background:#314734;border:1px solid #a9d990}.suspect-exonerate:focus-visible,.off-board-discard:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.suspect-kill,.suspect-accuse{z-index:4;left:3px;right:3px;bottom:var(--suspect-action-bottom);color:#ffd6cd;opacity:0;pointer-events:none;background:#4a2724;border:1px solid #e59a8e;padding:5px 3px;font-size:clamp(9px,.9vw,11px);line-height:1.25;position:absolute}.suspect-cell:focus-within .suspect-kill,.suspect-cell:focus-within .suspect-accuse{opacity:1;pointer-events:auto}.suspect-kill:hover:not(:disabled){background:#66352f;border-color:#ffd6cd}.suspect-accuse{color:#e5f3d9;background:#253b2b;border-color:#a9d990}.suspect-accuse:hover:not(:disabled){background:#314734;border-color:#e5f3d9}.suspect-kill:focus-visible,.suspect-accuse:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.exoneration-compact-label{display:none}.shell .game-layout{grid-template-columns:minmax(0,1fr);padding-top:10px}.board-column{min-width:0}.board-history{border:1px solid var(--line);width:min(100%,780px);margin:16px auto 0;padding:0}.board-history summary{min-height:44px;color:var(--gold);cursor:pointer;padding:12px 14px;font:11px/1.6 DM Mono,monospace}.board-history summary:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.board-history p{margin:10px 14px}.board-legend{max-width:780px;margin-left:auto;margin-right:auto}.board-legend .legend-hand{background:#62b8b4}.board-shift-shell{--shift-size:22px;--board-gap:7px;--board-padding:9px;grid-template-columns:var(--shift-size) minmax(0, 1fr) var(--shift-size);grid-template-rows:var(--shift-size) auto var(--shift-size);gap:4px;width:min(100%,780px);margin:auto;display:grid;position:relative}.board-shift-shell:not(.show-shifts){grid-template-rows:auto;grid-template-columns:minmax(0,1fr);gap:0}.board-shift-shell .board{width:100%;aspect-ratio:var(--board-columns) / var(--board-rows);grid-area:2/2;grid-template-columns:repeat(var(--board-columns), minmax(0, 1fr));grid-template-rows:repeat(var(--board-rows), minmax(0, 1fr));gap:var(--board-gap);margin:0;overflow:hidden}.board-shift-shell:not(.show-shifts) .board{grid-area:1/1}.board-shift-shell:not(.show-shifts) .column-shifts,.board-shift-shell:not(.show-shifts) .row-shifts{display:none}.board-shift-shell.can-shift .board{touch-action:none}.column-shifts{grid-column:2;grid-template-columns:repeat(var(--board-columns), minmax(0, 1fr));gap:var(--board-gap);padding:0 var(--board-padding);display:grid}.column-shifts-top{grid-row:1}.column-shifts-bottom{grid-row:3}.row-shifts{grid-row:2;grid-template-rows:repeat(var(--board-rows), minmax(0, 1fr));gap:var(--board-gap);padding:var(--board-padding) 0;display:grid}.row-shifts-left{grid-column:1}.row-shifts-right{grid-column:3}.shift-arrow{width:100%;min-width:0;height:100%;color:var(--gold);isolation:isolate;background:0 0;border:0;padding:0;font-size:17px;line-height:1;transition:opacity .15s,color .15s;position:relative}.shift-arrow:before{content:"";z-index:-1;background:#303a36;border:1px solid #687061;position:absolute}.column-shifts .shift-arrow:before{width:calc(100% - 6px);height:5px;top:50%;left:50%;transform:translate(-50%,-50%)}.row-shifts .shift-arrow:before{width:5px;height:calc(100% - 6px);top:50%;left:50%;transform:translate(-50%,-50%)}.shift-arrow:hover:not(:disabled):before,.shift-arrow:focus-visible:before{border-color:var(--gold);background:#454735}.shift-arrow:focus-visible{outline:2px solid var(--gold);outline-offset:-2px}.board-shift-shell.show-shifts .shift-arrow:not(:disabled):not(.shift-blocked){opacity:1;color:#ddf2c8}.board-shift-shell.show-shifts .shift-arrow:not(:disabled):not(.shift-blocked):before{border-color:#a9d990}.board-shift-shell .shift-arrow.shift-blocked{color:var(--red)}.board-shift-shell .shift-arrow.shift-blocked:not(:disabled){cursor:help}.board-shift-shell .shift-arrow.shift-blocked:before{border-color:var(--red);background:#452c29;border-style:dashed}.shift-arrow.shift-blocked:focus-visible{outline-color:var(--red)}.column-shifts .shift-arrow{width:100%;height:var(--shift-size);justify-self:center}.row-shifts .shift-arrow{width:var(--shift-size);align-self:center;height:100%}.board-shift-shell .suspect{-webkit-user-select:none;user-select:none;min-height:0;padding:6px 2px;overflow:hidden}.board-shift-shell.public-view .suspect:disabled{opacity:1;cursor:default}.board-shift-shell.public-view .suspect:hover{z-index:auto;border-color:#354142;transform:none}.suspect-portrait{pointer-events:none;position:absolute;inset:1px}.suspect-portrait img{object-fit:cover;object-position:center 25%;width:100%;height:100%;display:block}.suspect-portrait:after{content:"";background:linear-gradient(#10171933 25%,#10171988 55%,#101719ee 100%);position:absolute;inset:0}.suspect-portrait-placeholder{place-items:center;display:grid;position:absolute;inset:18% 0 auto}.suspect-caption{z-index:1;height:var(--suspect-caption-height);pointer-events:none;text-shadow:0 1px 3px #000;flex-direction:column;justify-content:flex-end;align-items:center;display:flex;position:absolute;bottom:6px;left:3px;right:3px}.board-shift-shell .suspect-name{color:#f3f1e9;font-size:var(--suspect-name-size)}.board-shift-shell .suspect-no{z-index:3;color:#f3f1e9;text-shadow:0 1px 3px #000;pointer-events:none;background:#101719cc;padding:2px 4px;font-size:clamp(9px,1vw,12px);line-height:1.2;position:absolute;top:4px;right:4px}.suspect-badges{z-index:2;pointer-events:none;flex-direction:column;align-items:center;gap:2px;display:flex;position:absolute;top:3px;left:3px;right:28px}.board-shift-shell .suspect .badge{overflow-wrap:anywhere;text-align:center;max-width:100%;padding:2px 3px;font-size:7px;line-height:1.2;position:static;box-shadow:0 1px 4px #0008}.revealed-mark{z-index:3;color:#e7d4fb;pointer-events:none;background:#392946ee;border:1px solid #c3a3e7;border-radius:50%;place-items:center;width:18px;height:18px;display:grid;position:absolute;top:4px;left:4px;box-shadow:0 1px 4px #0008}.revealed-mark svg{width:12px;height:12px}.board-shift-shell .suspect.revealed .suspect-badges{top:25px}.board-shift-shell .suspect.identity{border-color:var(--gold)}.board-shift-shell .suspect.identity .suspect-portrait:after{background:linear-gradient(#d7b47244,#10171966 55%,#101719ee 100%)}.board-shift-shell .suspect.final-bandit,.board-shift-shell.public-view .suspect.final-bandit:hover{border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold)}.board-shift-shell .suspect.final-inspector,.board-shift-shell.public-view .suspect.final-inspector:hover{border-color:#8bd0ca;box-shadow:inset 0 0 0 1px #8bd0ca}.board-shift-shell .suspect.caught,.board-shift-shell.public-view .suspect.caught:hover{border-color:#a9d990;box-shadow:inset 0 0 0 1px #a9d990}.final-identity-mark{z-index:3;left:2px;right:2px;bottom:calc(var(--suspect-caption-height) + 10px);color:#182021;text-align:center;pointer-events:none;background:#d7b472;padding:3px 1px;font-size:clamp(7px,.9vw,11px);font-weight:700;line-height:1.1;position:absolute}.final-identity-mark--inspector{background:#8bd0ca}.caught .final-identity-mark{background:#a9d990}.result-banner{grid-template-columns:minmax(150px,.65fr) minmax(0,1fr);gap:10px 24px;display:grid}.result-summary h2{color:var(--gold);margin:0 0 5px;font-size:22px}.result-banner.bandit .result-summary h2{color:var(--red)}.result-summary p,.result-event{color:#c4ccc5;margin:0;font-size:12px;line-height:1.45}.result-identities{gap:7px;margin:0;display:grid}.result-identities>div{grid-template-columns:106px minmax(0,1fr);align-items:baseline;gap:10px;display:grid}.result-identities dt{color:#c4ccc5;font-size:12px}.result-identities dd{color:#f3f1e9;overflow-wrap:anywhere;margin:0;font-size:13px;line-height:1.4}.result-event{grid-column:1/-1}.board-shift-shell .suspect.dead{filter:none;opacity:1}.board-shift-shell .suspect.dead .suspect-portrait{filter:grayscale();opacity:.45}.board-shift-shell .suspect .dead-mark{z-index:1;text-shadow:0 0 4px #101719,0 0 8px #101719;top:23%}.board-shift-shell .suspect.in-hand{background:linear-gradient(150deg,#285253,#1c3437);border-color:#62b8b4;box-shadow:inset 0 0 0 1px #62b8b466}.board-shift-shell .suspect.in-hand.selected{box-shadow:inset 0 0 0 1px #62b8b466,0 0 0 2px #d7b47266}.board-shift-shell .suspect.in-hand .avatar{color:#d4f1e9;border-color:#8bd0ca}.board-shift-shell .suspect.dead.in-hand .suspect-portrait{opacity:.65}.board-shift-shell .suspect.action-target{outline-offset:-4px;outline:2px solid #a9d990}.board-shift-shell .suspect.disclosed-former-identity{outline-offset:-4px;opacity:1;z-index:2;border-color:#f2dfb8;outline:3px solid #f2dfb8;animation:.5s ease-in-out 3 former-identity-pulse;box-shadow:0 0 0 2px #d7b47299}@keyframes former-identity-pulse{50%{box-shadow:0 0 0 5px #d7b472bb,0 0 20px 5px #d7b47288}}@media (prefers-reduced-motion:reduce){.board-shift-shell .suspect.disclosed-former-identity{animation:none}}.board-shift-shell .suspect.collapse-candidate{cursor:pointer;opacity:.82;border-color:#e6c88c;box-shadow:inset 0 0 0 2px #e6c88c}.board-shift-shell .suspect.collapse-selected{filter:none;opacity:1;background:#314734;border-color:#a9d990;box-shadow:inset 0 0 0 3px #a9d990}.board-shift-shell.is-collapsing .row-shifts,.board-shift-shell.is-collapsing .column-shifts{visibility:hidden}.board-shift-shell.can-shift .suspect{cursor:grab}.board-shift-shell .suspect:focus-visible{outline:2px solid var(--gold);outline-offset:2px;z-index:2}.board-shift-shell.is-dragging .suspect{cursor:grabbing}.board-shift-shell .suspect.drag-line{transform:translate(var(--drag-x), var(--drag-y));border-color:var(--gold);z-index:3;transition:none;box-shadow:0 0 0 1px #d7b47266}.board-shift-shell .suspect.drag-unavailable{border-color:var(--red);box-shadow:0 0 0 1px #d66b5e66}.board-shift-shell .drag-wrap-ghost{transform:translate(var(--wrap-x), var(--wrap-y));opacity:var(--wrap-opacity,0);z-index:4;pointer-events:none}.board-shift-shell .drag-wrap-ghost .suspect{box-shadow:none;border-color:#354142;transition:border-color .1s,box-shadow .1s}.board-shift-shell .drag-wrap-ghost.drag-wrap-ready .suspect{border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold), 0 0 0 1px #d7b47266}.board-shift-shell .drag-wrap-ghost.drag-wrap-unavailable .suspect{border-color:var(--red);box-shadow:0 0 0 1px #d66b5e66}.shift-confirmation-overlay{z-index:8;background:#070e11c7;place-items:center;padding:12px;display:grid;position:absolute;inset:0}.board-shift-shell:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.shift-confirmation{border:1px solid var(--gold);color:#f1e5cb;background:#25271f;width:min(100%,360px);padding:18px;box-shadow:0 12px 36px #0008}.shift-confirmation h2{color:#f0cd8d;margin:0 0 8px;font-size:17px}.shift-confirmation p{margin:0;font-size:13px;line-height:1.5}.shift-confirmation-actions{justify-content:flex-end;gap:8px;margin-top:14px;display:flex}.shift-confirmation-actions button{border:1px solid var(--gold);color:#f1e5cb;background:#344039;min-height:44px;padding:8px 12px}.shift-confirmation-actions button:last-child{background:var(--gold);color:#182021;font-weight:700}.shift-confirmation-actions button:focus-visible{outline-offset:2px;outline:2px solid #f1e5cb}.drag-feedback{border:1px solid var(--gold);width:max-content;max-width:100%;color:var(--gold);pointer-events:none;z-index:4;background:#182123;align-items:center;gap:10px;padding:6px 9px;font-size:11px;line-height:1.5;display:flex;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.drag-feedback.drag-unavailable{border-color:var(--red);color:var(--red)}@media (hover:hover) and (pointer:fine){.suspect-cell .suspect-exonerate,.suspect-cell .suspect-kill,.suspect-cell .suspect-accuse{opacity:0;pointer-events:none}.suspect-cell:hover .suspect-exonerate,.suspect-cell:focus-within .suspect-exonerate,.suspect-cell:hover .suspect-kill,.suspect-cell:focus-within .suspect-kill,.suspect-cell:hover .suspect-accuse,.suspect-cell:focus-within .suspect-accuse{opacity:1;pointer-events:auto}}@media (width<=620px){.target-confirmation-overlay{padding:10px}.disguise-warning,.target-confirmation,.collapse-confirmation{padding:12px}.disguise-warning-actions button,.target-confirmation-actions button,.collapse-confirmation-actions button{flex:auto}.suspect-kill,.suspect-accuse{flex-direction:column;justify-content:center;align-items:center;gap:1px;min-height:44px;padding:2px 0;font-size:9px;display:flex;left:1px;right:1px}.suspect-accuse{font-size:clamp(7px,1.7vw,9px)}.board-shift-shell .board{aspect-ratio:auto;grid-template-rows:repeat(var(--board-rows), minmax(116px, 1fr))}.board-shift-shell .suspect{gap:3px;padding:5px 1px}.suspect-caption{gap:2px;left:2px;right:2px}.suspect-cell{--suspect-name-size:8px}.board-shift-shell .has-exoneration .suspect.dead .dead-mark{font-size:14px;line-height:1;top:auto;bottom:84px}.suspect-badges{top:2px;left:1px;right:24px}.board-shift-shell .suspect .badge{padding:1px}.board-shift-shell .avatar{flex-shrink:0;width:20px;height:20px;font-size:9px}.board-shift-shell .suspect-name{color:#f3f1e9;max-width:100%;font-size:var(--suspect-name-size);overflow-wrap:anywhere;text-align:center;line-height:1.25;display:-webkit-box}.board-shift-shell .suspect-no{color:#f3f1e9;padding:2px 3px;font-size:9px;line-height:1.25;display:block;top:3px;right:3px}.exoneration-hint{font-size:10px}.suspect-exonerate{letter-spacing:-.03em;min-height:44px;padding:4px 0;font-size:9px;left:1px;right:1px}.exoneration-full-label{display:none}.exoneration-compact-label{display:inline}.topbar .brand{letter-spacing:.06em;font-size:32px}.topbar .header-actions{gap:5px}.topbar .header-actions .secondary{padding:8px 7px;font-size:10px}.case-header.game-status{gap:8px;padding:8px 0;font-size:11px}.role-badge{letter-spacing:.03em;padding:5px 6px;font-size:9px}.game-status .counter{font-size:8px}.action-hints{gap:4px}.action-hint{padding:3px 5px;font-size:9px}.shell .game-layout{padding-top:8px}.board-shift-shell{--shift-size:18px;--board-gap:4px;--board-padding:6px;gap:2px}.shift-arrow{font-size:13px}}@media (width<=620px) and (hover:hover) and (pointer:fine){.suspect-cell:hover .exoneration-full-label,.suspect-cell:focus-within .exoneration-full-label{display:inline}.suspect-cell:hover .exoneration-compact-label,.suspect-cell:focus-within .exoneration-compact-label{display:none}}@media (hover:none),(any-pointer:coarse){.suspect-cell .suspect-exonerate,.suspect-cell.action-revealed .suspect-kill,.suspect-cell.action-revealed .suspect-accuse,.suspect-cell:focus-within .suspect-kill,.suspect-cell:focus-within .suspect-accuse{opacity:1;pointer-events:auto}.suspect-cell .suspect-exonerate:disabled,.suspect-cell .suspect-kill:disabled,.suspect-cell .suspect-accuse:disabled{opacity:.38}.board-shift-shell{--shift-size:28px}.board-shift-shell .shift-arrow{opacity:1}.board-shift-shell .shift-arrow:disabled{opacity:.38}}.opening-hint{color:#c3d4c5;width:min(100%,780px);margin:0 auto 14px;font-size:13px;line-height:1.6}.suspect-choose-identity{z-index:4;left:3px;right:3px;bottom:var(--suspect-action-bottom);color:#e2f5ef;background:#214749;border:1px solid #8bd0ca;min-height:44px;padding:6px 3px;font-size:clamp(8px,.9vw,11px);line-height:1.25;position:absolute}.suspect-choose-identity:hover:not(:disabled){background:#2b5b5e;border-color:#d4f1e9}.suspect-choose-identity:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.board-shift-shell.opening-kill .suspect-kill{min-height:44px}@media (width<=620px){.suspect-choose-identity,.board-shift-shell.opening-kill .suspect-kill{flex-direction:column;justify-content:center;align-items:center;gap:2px;min-height:44px;padding:2px;font-size:clamp(7px,1.65vw,10px);display:flex;left:1px;right:1px}.opening-hint{font-size:11px}}
