:root .dystopian-header{--header-ink:var(--dys-ink);--header-accent:var(--dys-link);--header-warm:var(--dys-muted);--header-bg:var(--dys-page);--header-menu:var(--dys-page);--header-control:var(--dys-page);--header-line:var(--dys-line);--header-selected:var(--dys-selected);font-family:var(--dys-font-ui);min-height:96px}:root .dystopian-header .brand{padding:16px 24px}:root .dystopian-header .brand-logo,:root .dystopian-header .brand-logo img{width:64px;height:64px}:root .dystopian-header .tagline{padding-inline:24px}:root .dystopian-header .tagline span{letter-spacing:0;font-size:12px;font-weight:600}:root .dystopian-header .site-menu{border-radius:12px}:root .dystopian-header .site-menu a,:root .dystopian-header .site-menu a.subitem{min-height:44px;font-size:14px;font-weight:600}:root .dystopian-header .menu-heading{letter-spacing:0;font-size:12px;font-weight:600}:root .dystopian-header .menu-wrap{gap:8px}:root .dystopian-header :is(.menu-btn,.theme-toggle,.language-button){border:1px solid var(--dys-line);background:var(--dys-page);color:var(--dys-ink);border-radius:12px}@media (width<=800px){:root .dystopian-header .brand{padding:16px}:root .dystopian-header .tagline{padding:0 16px 16px}:root .dystopian-header .menu-wrap{margin:0 16px 0 0}}:root{--dys-page:#fff;--dys-surface:#f5f5f7;--dys-input:#fff;--dys-ink:#1d1d1f;--dys-muted:#606064;--dys-line:#dedee2;--dys-control-border:#85858d;--dys-link:#266cb3;--dys-selected:#e7f0fa;--dys-disabled:#e7e7eb;--dys-font-ui:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "Microsoft YaHei", sans-serif;--dys-font-display:var(--dys-font-ui);--dys-text-page:1.75rem;--dys-text-section:1.25rem;--dys-radius:12px;--narrator-radius-panel:16px;--narrator-radius-action:999px;--narrator-inset:16px;--narrator-group-gap:24px;--narrator-action:#266cb3;--narrator-action-hover:#1e5994;--narrator-action-ink:#fff;font-family:var(--dys-font-ui);color:var(--dys-ink);background:var(--dys-page);font-synthesis:none;--bg:var(--dys-page);--panel:var(--dys-surface);--accent:var(--dys-link);--muted:var(--dys-muted);--line:var(--dys-line);--radius:var(--dys-radius);font-size:100%;font-weight:400;line-height:1.6}:root[data-theme=dark]{--dys-page:#101113;--dys-surface:#202226;--dys-input:#101113;--dys-ink:#f5f5f7;--dys-muted:#b0b4bd;--dys-line:#383b42;--dys-control-border:#7d8490;--dys-link:#82b8f6;--dys-selected:#203950;--dys-disabled:#303238;--narrator-action:#82b8f6;--narrator-action-hover:#9bc7fa;--narrator-action-ink:#101113}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit;touch-action:manipulation;background:0 0;border:0}button:disabled{cursor:default;color:var(--dys-muted);background:var(--dys-disabled)}button:not(:disabled):active{filter:brightness(.96)}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:var(--dys-focus-width) solid var(--dys-focus);outline-offset:var(--dys-focus-offset)}h1,h2,h3,p{margin:0}button svg{flex-shrink:0}button{transition:background .16s,border-color .16s,transform .16s}small{font-size:.75rem}button,select{min-height:44px}input,textarea,select{border:1px solid var(--line);border-radius:var(--dys-radius);background:var(--dys-input);color:var(--dys-ink);max-width:100%;padding:10px 12px}input,select,textarea{font-size:1rem}select{text-overflow:ellipsis;max-width:100%}textarea{resize:vertical}input[type=range]{width:100%;height:32px;accent-color:var(--accent);cursor:pointer;border:0;padding:0;display:block}input[type=number]{text-align:center;width:82px}button:disabled.selected{opacity:1}.app{max-width:1120px;margin:0 auto;padding:0 16px}.narrator-toolbar{justify-content:space-between;align-items:center;gap:8px;min-height:72px;display:flex}.app-name{flex:1;font-size:1.125rem;font-weight:600}.dystopian-header .language-button{white-space:nowrap;background:var(--header-control);border:1px solid var(--header-line);min-width:64px;height:44px;min-height:44px;color:var(--header-accent);font:inherit;cursor:pointer;border-radius:8px;flex:none;padding:0 8px;font-size:.8125rem}.dystopian-header .language-button:hover{background:var(--header-selected)}.header-actions{flex:none;gap:4px;display:flex}@media (width<=400px){.app-name{white-space:nowrap;font-size:1rem}html[lang=en] .rate-setting .segmented{grid-template-columns:repeat(2,minmax(0,1fr))}}.icon-button:hover{background:var(--dys-selected)}.icon-button{border-radius:var(--dys-radius)}::selection{background:var(--dys-brand);color:var(--dys-white)}input,textarea{caret-color:var(--dys-link)}input::placeholder,textarea::placeholder{color:var(--dys-muted);opacity:1}a{text-underline-offset:3px}*{scrollbar-color:var(--dys-control-border) var(--dys-surface)}.text-button{color:var(--dys-ink);justify-content:center;align-items:center;gap:7px;padding:6px 4px;font-size:.875rem;display:inline-flex}.game-picker-trigger{border:1px solid var(--dys-line);border-radius:var(--narrator-radius-action);background:var(--dys-page);text-align:left;flex:none;align-items:center;min-height:44px;padding:8px 12px;display:flex}.game-picker-trigger>span{color:var(--accent);flex-shrink:0;align-items:center;gap:6px;font-size:.8125rem;display:inline-flex}.game-picker-list{gap:8px;display:grid}.game-picker-list button{border:1px solid var(--dys-control-border);border-radius:var(--dys-radius);background:var(--dys-surface);text-align:left;justify-content:space-between;align-items:center;gap:12px;min-height:52px;padding:12px 16px;display:flex}.game-picker-list button.selected{background:var(--dys-selected);border-color:var(--accent)}.game-picker-list svg{color:var(--accent);flex-shrink:0}.setup{padding-bottom:calc(112px + env(safe-area-inset-bottom))}.setup-grid{gap:var(--narrator-group-gap);display:grid}.main-column{gap:var(--narrator-group-gap);flex-direction:column;display:flex}.panel{background:var(--panel);border:1px solid var(--dys-line);border-radius:var(--narrator-radius-panel);padding:var(--narrator-inset)}.game-heading{justify-content:space-between;align-items:flex-start;gap:12px;padding-bottom:8px;display:flex}.game-heading h1{font-family:var(--dys-font-display);font-size:var(--dys-text-page);min-width:0;font-weight:650;line-height:1.4}.help-trigger{color:var(--muted);flex-shrink:0}.help-trigger:hover{color:var(--accent)}.game-heading .help-trigger{margin-top:-4px;font-size:.75rem}.player-range{color:var(--muted);display:block}.role-guide{margin:16px 0 0}.role-guide>div{border-top:1px solid var(--line);padding:12px 0}.role-guide dt{color:var(--dys-ink);font-weight:600}.role-guide dd{margin:4px 0 0}.inline-help{color:var(--muted);margin-bottom:16px;font-size:.8125rem}.inline-help summary{cursor:pointer;min-height:44px;padding:10px 0}.inline-help p{margin:6px 0 12px;line-height:1.9}.help-body>h3:first-child{margin-top:0}.section-title{justify-content:space-between;align-items:center;margin-bottom:8px;padding-bottom:8px;display:flex}.section-title h3{font-family:var(--dys-font-display);font-size:var(--dys-text-section);font-weight:600}.section-title>span{color:var(--muted);font-size:.75rem}.setting-row{justify-content:space-between;align-items:center;gap:16px;min-height:56px;padding:12px 0;display:flex}.setting-row>strong{white-space:nowrap;font-size:.875rem;font-weight:500}.stepper{align-items:center;gap:4px;display:flex}.stepper button{border:1px solid var(--dys-control-border);border-radius:var(--dys-radius);background:var(--dys-input);justify-content:center;align-items:center;width:44px;height:44px;display:flex}.stepper output{text-align:center;font-variant-numeric:tabular-nums;min-width:47px;font-size:1.4375rem;font-weight:600}.distribution{color:var(--dys-muted);text-align:left;margin-top:8px;font-size:.75rem;line-height:1.8}.distribution span{color:var(--dys-muted);font-size:.75rem;display:block}.subheading{justify-content:space-between;align-items:center;gap:10px;margin:24px 0 12px;font-size:.8125rem;display:flex}.subheading span{color:var(--muted);font-size:.75rem}.roles{grid-template-columns:1fr 1fr;gap:8px;display:grid}.role{border:1px solid var(--dys-line);border-radius:var(--dys-radius);text-align:left;background:var(--dys-input);min-height:56px;padding:12px}.role.selected{border-color:var(--accent);background:var(--dys-selected)}.role-top{justify-content:space-between;align-items:center;gap:4px;font-size:.875rem;font-weight:550;display:flex}.role em{color:var(--dys-muted);margin-top:3px;font-size:.75rem;font-style:normal;display:block}.role:hover:not(:disabled){background:var(--dys-selected);border-color:var(--dys-link)}.check{border:1px solid var(--dys-control-border);border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;width:19px;height:19px;display:flex}.check.checked{background:var(--dys-brand);border-color:var(--dys-brand);color:var(--dys-white)}.count{text-align:center;background:var(--dys-selected);width:22px;height:22px;color:var(--accent);font-variant-numeric:tabular-nums;border-radius:6px;line-height:22px}.role-summary{color:var(--muted);justify-content:space-between;align-items:center;font-size:.75rem;display:flex}.role-summary .text-button{color:var(--accent);font-size:.75rem}.settings-panel .section-title{margin-bottom:8px}.settings-panel input[type=range]{margin:0 0 9px}.segmented{border:1px solid var(--dys-line);border-radius:var(--dys-radius);background:var(--dys-input);gap:4px;padding:4px;display:flex;overflow:hidden}.segmented button{min-height:44px;color:var(--dys-muted);padding:7px 15px;font-size:.8125rem}.segmented button.active{background:var(--dys-selected);color:var(--dys-link);border-radius:8px;font-weight:600}.rate-setting{display:block}.rate-setting .segmented{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:10px;display:grid}.rate-setting .segmented button{white-space:nowrap;padding-inline:8px}.separated{border-top:1px solid var(--line);margin-top:16px;padding-top:16px;padding-bottom:0}.switch{flex-shrink:0;width:49px;height:30px;min-height:44px;position:relative}.switch:before{content:"";background:var(--dys-control-border);border-radius:var(--narrator-radius-action);position:absolute;inset:8px 0}.switch:disabled{opacity:.55;background:0 0}.switch.on:before{background:var(--dys-brand)}.switch>span{background:var(--dys-white);border-radius:50%;width:20px;height:20px;transition:transform .18s;position:absolute;top:12px;left:5px}.switch.on>span{background:var(--dys-white);transform:translate(19px)}.hint{color:var(--muted);margin-top:3px;font-size:.75rem;display:block}.voice-field{margin-top:var(--narrator-group-gap);gap:8px;font-size:.8125rem;display:grid}.voice-field select{width:100%;font-size:.8125rem}.settings-panel #discussion{max-width:130px;font-size:.875rem}.timeline{padding:0}.timeline summary{padding:16px var(--narrator-inset);cursor:pointer;align-items:center;gap:9px;min-height:56px;list-style:none;display:flex}.timeline summary::-webkit-details-marker{display:none}.timeline summary h3{font-size:1rem;font-weight:600}.timeline summary>span{color:var(--muted);white-space:nowrap;margin-left:auto;font-size:.75rem}.timeline summary>svg:last-child{color:var(--muted)}.timeline[open] summary>svg:last-child{transform:rotate(180deg)}.timeline ol{margin:8px var(--narrator-inset) 24px;padding:0;list-style:none}.timeline li{gap:13px;padding-bottom:25px;display:flex;position:relative}.timeline li:last-child{padding-bottom:0}.timeline li:not(:last-child):before{content:"";background:var(--dys-control-border);width:1px;position:absolute;top:34px;bottom:4px;left:15px}.timeline li>b{border:1px solid var(--dys-control-border);width:32px;height:32px;color:var(--accent);background:var(--dys-selected);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.75rem;font-weight:400;display:flex}.timeline li strong{font-size:.8125rem;font-weight:550}.timeline li p{color:var(--muted);margin-top:4px;font-size:.75rem;line-height:1.8}.start-dock{z-index:10;padding:12px 16px max(16px, env(safe-area-inset-bottom));background:var(--dys-page);border-top:1px solid var(--dys-line);position:fixed;bottom:0;left:0;right:0}.start-dock>div{gap:12px;max-width:720px;margin:auto;display:flex}.primary,.secondary{border-radius:var(--narrator-radius-action);justify-content:center;align-items:center;gap:9px;min-height:48px;padding:11px 16px;font-size:.875rem;font-weight:550;line-height:1.5;display:inline-flex}.primary{background:var(--narrator-action);color:var(--narrator-action-ink);border:1px solid var(--narrator-action)}.primary:hover:not(:disabled){background:var(--narrator-action-hover)}.secondary{border:1px solid var(--dys-control-border);background:var(--dys-surface);color:var(--dys-ink)}.secondary:hover:not(:disabled){background:var(--dys-selected)}.start-button{flex:1;min-height:56px;font-size:1rem}.audition{flex-direction:column;gap:1px;min-width:65px;padding:7px 12px}.audition span{font-size:.75rem}.full-button{width:100%}.field-label{margin:17px 0 8px;font-size:.8125rem;display:block}.game-panel>select{width:100%;font-size:.8125rem}.notice{border:1px solid var(--dys-warning);background:var(--dys-warning-bg);border-radius:var(--dys-radius);color:var(--dys-warning);align-items:flex-start;gap:9px;margin-bottom:16px;padding:12px;font-size:.75rem;line-height:1.8;display:flex}.notice>svg{flex-shrink:0;margin-top:3px}.notice>.icon-button{width:44px;min-width:44px;height:44px;min-height:44px;margin-left:auto}.notice span{flex:1}.validation{border:1px solid var(--dys-error);border-radius:var(--dys-radius);background:var(--dys-error-bg);color:var(--dys-error);margin-top:16px;padding:12px;font-size:.75rem}.validation p{align-items:center;gap:8px;padding:4px 0;display:flex}.validation svg{flex-shrink:0}.error-text{color:var(--dys-error);font-size:.75rem}.icon-button{width:44px;height:44px;color:var(--dys-muted);flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.night-view{max-width:700px;min-height:100dvh}.play-header{height:82px;color:var(--dys-ink);grid-template-columns:auto minmax(0,1fr) auto;justify-content:space-between;align-items:center;gap:8px;font-size:.8125rem;display:grid}.play-header>span{text-align:center}.player{padding:10px 0 max(22px, env(safe-area-inset-bottom));flex-direction:column;align-items:center;min-height:calc(100dvh - 82px);display:flex}.phase-counter{letter-spacing:0;font-variant-numeric:tabular-nums;margin-bottom:25px;font-size:1.125rem}.phase-counter span{color:var(--dys-muted)}.timer-ring{background:conic-gradient(var(--accent) var(--progress), var(--dys-line) 0);border-radius:50%;flex-shrink:0;width:220px;height:220px;margin-bottom:30px;padding:3px}.timer-ring>div{background:var(--bg);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:3px;height:100%;display:flex}.timer-ring svg{color:var(--accent);margin-bottom:7px}.timer-ring span:not(.sound-bars){color:var(--dys-muted);font-size:.875rem}.timer-ring strong{font-variant-numeric:tabular-nums;align-items:center;min-height:73px;font-size:3.625rem;font-weight:550;line-height:1.25;display:flex}.timer-ring small{color:var(--dys-muted);font-size:.75rem}.instruction{text-align:center;max-width:540px;margin:0 0 25px}.instruction h1{font-family:var(--dys-font-display);font-size:1.625rem;font-weight:600;line-height:1.45}.instruction p{text-align:left;color:var(--dys-ink);text-wrap:pretty;margin-top:17px;font-size:1.0625rem;line-height:1.75}.sound-bars{align-items:center;gap:6px;height:56px;display:flex}.sound-bars i{background:var(--dys-brand);border-radius:5px;width:5px;height:18px;animation:1s ease-in-out infinite wave}.sound-bars i:nth-child(2){height:32px;animation-delay:.15s}.sound-bars i:nth-child(3){height:44px;animation-delay:.3s}.sound-bars i:nth-child(4){height:26px;animation-delay:.45s}.sound-bars i:nth-child(5){animation-delay:.6s}@keyframes wave{50%{opacity:.6;transform:scaleY(.45)}}.play-controls{width:100%;max-width:470px;margin-top:auto;padding-top:20px}.play-controls>.primary{min-height:58px;font-size:1.0625rem}.two-buttons{grid-template-columns:1fr 1fr;gap:12px;margin-top:12px;display:grid}.two-buttons>button{min-width:0;padding-left:8px;padding-right:8px}.screen-hint{color:var(--dys-muted);text-align:center;margin-top:17px;font-size:.75rem}.mode-note{color:var(--dys-warning);text-align:center;padding:12px;font-size:.75rem}.playback-error{width:100%;max-width:470px}.playback-error .text-button{color:var(--dys-warning);font-size:.75rem;text-decoration:underline}.secret-choice{border:1px solid var(--dys-control-border);background:var(--dys-surface);border-radius:var(--dys-radius);width:100%;max-width:470px;margin-bottom:16px;padding:18px}.secret-choice h2{margin-bottom:10px;font-size:1rem}.secret-choice p,.secret-choice label{color:var(--dys-muted);margin:12px 0;font-size:.75rem;display:block}.secret-choice select{width:100%}.seat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0 16px;display:grid}.seat-grid button{border:1px solid var(--dys-control-border);border-radius:var(--dys-radius);background:var(--dys-surface);word-break:break-word;justify-content:center;align-items:center;gap:4px;min-height:47px;padding:9px 6px;font-size:.9375rem;display:flex}.seat-grid button.selected{background:var(--dys-brand);color:var(--dys-white)}.choice-done{text-align:center;padding:15px 0}.choice-done svg{color:var(--accent);margin:0 auto 10px;display:block}.choice-done strong{font-size:.9375rem}.completion{text-align:center;width:100%;max-width:470px;padding-top:35px}.completion>svg{color:var(--accent);margin-bottom:18px}.completion>h1{letter-spacing:0;font-size:2.625rem}.completion>p{color:var(--dys-muted);margin:14px 0 30px;line-height:2}.completion>.full-button{min-height:55px;margin-top:24px}.salem-completion{padding-top:8px}.salem-completion>svg{width:32px;height:32px;margin-bottom:8px}.salem-completion>h1{font-size:2rem}.salem-completion>p{margin:8px 0 18px;line-height:1.7}.salem-reveal{place-items:center;min-height:min(48dvh,360px);padding:32px 0;display:grid}.reveal-button{aspect-ratio:1;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:12px;width:clamp(176px,50vw,220px);font-size:1.75rem;font-weight:600;display:flex}.result-panel{background:var(--panel);border:1px solid var(--dys-control-border);border-radius:var(--dys-radius);text-align:left;margin-top:20px;padding:20px}.result-panel h2{margin-bottom:12px;font-size:1.125rem}.result-panel p{color:var(--dys-ink);font-size:.875rem;line-height:1.9}.result-panel small{color:var(--muted);margin-top:13px;line-height:1.9;display:block}.discussion-clock{text-align:center;letter-spacing:0;font-variant-numeric:tabular-nums;margin:15px 0 20px;font-size:3.125rem}.result-panel .full-button{margin-top:15px}.salem-summary{color:var(--muted);margin:12px 0;font-size:.75rem;line-height:1.8}.template-button{margin-top:20px;font-size:.8125rem}.public-effects{margin:24px 0}.public-effects h3{margin-bottom:10px;font-size:1.0625rem}.public-effects details{border-top:1px solid var(--dys-line)}.public-effects summary{cursor:pointer;overflow-wrap:anywhere;padding:14px 0;font-size:.875rem}.public-effects summary small{color:var(--muted);margin:6px 0 0 16px;font-size:.75rem;display:block}.public-effects>small{color:var(--muted);margin-top:12px;font-size:.75rem;line-height:1.8;display:block}.effect-checkbox{align-items:center;gap:10px;min-height:44px;padding:6px 0;font-size:.8125rem;line-height:1.7;display:flex}.effect-checkbox input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent);flex-shrink:0}.confession-timer{z-index:2;background:var(--panel);justify-content:space-between;align-items:center;gap:12px;margin:20px 0;padding:10px 0;display:flex;position:sticky;top:8px}.confession-timer>strong{color:var(--accent);font-variant-numeric:tabular-nums;font-size:2.25rem}.confession-timer small{margin-left:5px;font-size:.75rem;display:inline}.confession-seat{border-top:1px solid var(--dys-line)}.confession-toggle{text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;gap:12px;width:100%;min-height:52px;padding:10px 0;font-size:.875rem;display:flex}.confession-toggle>span:first-child{overflow-wrap:anywhere}.confession-toggle>span:last-child{color:var(--muted);flex-shrink:0;align-items:center;gap:4px;font-size:.75rem;display:flex}.confession-toggle.selected>span:last-child{color:var(--accent)}.result-panel .public-protection{color:var(--accent);margin-bottom:14px;font-weight:550}.result-panel .settlement-note{margin-top:12px;font-size:.8125rem}.script-file-actions{grid-template-columns:1fr 1fr;gap:12px;margin:16px 0;display:grid}.file-picker{cursor:pointer;position:relative}.file-picker input{opacity:0;cursor:pointer;width:100%;position:absolute;inset:0}.file-picker:focus-within{outline:2px solid var(--accent);outline-offset:3px}dialog{color:var(--dys-ink);background:var(--dys-surface);border:1px solid var(--dys-control-border);border-radius:var(--narrator-radius-panel);overscroll-behavior:contain;width:calc(100% - 28px);max-width:600px;max-height:85dvh;padding:16px;overflow:auto}dialog::backdrop{background:var(--dys-overlay)}.choice-dialog{max-width:520px;max-height:calc(100dvh - 32px - env(safe-area-inset-top) - env(safe-area-inset-bottom));padding:16px;overflow:hidden}.choice-dialog[open]{flex-direction:column;display:flex}.choice-dialog-head{flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.choice-dialog-head h2{font-family:var(--dys-font-display);margin:0;font-size:1.5rem;line-height:1.35}.choice-countdown{font-variant-numeric:tabular-nums;flex-shrink:0;align-items:center;gap:5px;padding-top:4px;font-size:1rem;display:flex}.choice-countdown small{color:var(--dys-muted);font-size:.75rem}.choice-dialog>p{color:var(--dys-muted);flex-shrink:0;margin:12px 0 20px;font-size:.9375rem;line-height:1.5}.choice-dialog-list{overscroll-behavior:contain;min-height:0;margin:-3px;padding:3px;overflow-y:auto}.choice-dialog .seat-grid{gap:10px;margin:0}.choice-dialog .seat-grid button{min-height:52px;padding:12px 6px;font-size:1rem}.choice-dialog .seat-grid svg{flex-shrink:0}.choice-dialog-footer{flex-shrink:0;padding-top:16px}.choice-feedback{color:var(--dys-muted);margin:0 0 12px;font-size:.8125rem;line-height:1.5}.choice-dialog-actions{grid-template-columns:48px minmax(0,1fr);gap:10px;display:grid}.choice-dialog-actions button{min-height:48px;margin:0}@media (width<=359px){.choice-dialog{padding:16px}.choice-dialog-head h2{font-size:1.25rem}}.dialog-head{z-index:3;background:var(--dys-surface);justify-content:space-between;align-items:center;gap:10px;margin:-16px -16px 16px;padding:16px 16px 12px;display:flex;position:sticky;top:-16px}.dialog-head h2{font-family:var(--dys-font-display);font-size:1.3125rem;line-height:1.5}.dialog-description{color:var(--dys-muted);margin-bottom:18px;font-size:.8125rem;line-height:1.9}.help-body{color:var(--dys-muted);font-size:.8125rem;line-height:1.95}.help-body ol{padding-left:21px}.help-body li{margin:10px 0}.help-body h3{color:var(--dys-ink);margin:22px 0 8px;font-size:.9375rem}.source-links{flex-wrap:wrap;gap:10px 18px;margin-top:16px;display:flex}.source-links a{color:var(--accent)}.seat-editor>div{align-items:center;gap:10px;margin:10px 0;display:flex}.seat-editor input,.seat-editor select{width:100%;min-width:0}.seat-editor>div>span{color:var(--dys-muted);font-size:.75rem}.seat-editor{margin-bottom:20px}.script-step{border:1px solid var(--dys-control-border);border-radius:var(--dys-radius);margin-bottom:14px;padding:13px}.script-step header{color:var(--accent);justify-content:space-between;align-items:center;display:flex}.script-step header>div{display:flex}.script-step label{color:var(--dys-muted);margin-top:10px;font-size:.75rem;display:block}.script-step input:not([type=number]),.script-step textarea{width:100%;margin-top:5px;display:block}.script-step label.setting-row{display:flex}.script-editor+.full-button{margin-bottom:13px}@media (width>=600px){:root{--narrator-inset:24px;--dys-text-page:2rem}.game-heading{padding-bottom:12px}.app{padding:0 32px}.role{padding:13px 15px}.role-top{font-size:.9375rem}.timer-ring{width:260px;height:260px;margin-top:15px;margin-bottom:40px}.instruction h1{font-size:1.875rem}.instruction p{font-size:1.1875rem}.night-view .player{padding-bottom:30px}.play-header{height:95px}.panel{padding:var(--narrator-inset)}.timeline{padding:0}}@media (width>=960px){.setup-grid{grid-template-columns:minmax(0,1.5fr) minmax(300px,1fr);gap:24px}.panel{padding:var(--narrator-inset)}.timeline{padding:0}.timeline ol{margin:8px var(--narrator-inset) 24px;display:block}.timeline summary{padding:16px var(--narrator-inset)}.timeline summary h3{font-size:1rem}.timeline li{gap:18px;padding-bottom:28px}.timeline li>b{width:36px;height:36px;font-size:.8125rem}.timeline li:not(:last-child):before{top:40px;left:17px}.timeline li strong{font-size:.9375rem}.timeline li p{font-size:.75rem}.role{min-height:64px}.start-dock>div{max-width:650px}.start-dock{padding-bottom:17px}.start-button{min-height:55px}.audition{flex-direction:row;gap:9px;min-width:130px}.audition span{font-size:.875rem}.setup{padding-bottom:calc(128px + env(safe-area-inset-bottom))}}@media (width<=359px){.app{padding:0 15px}.panel{padding:16px}.timeline{padding:0}.role{padding:10px 8px}.role-top{font-size:.8125rem}.segmented button{padding:7px 12px}.instruction h1{font-size:1.4375rem}.instruction p{font-size:1rem}.timer-ring{width:190px;height:190px}.dialog-head h2{font-size:1.125rem}}.role em,.hint,.screen-hint,.audition span{font-size:.75rem}.subheading{font-size:.875rem}.subheading span{font-size:.75rem}.distribution{font-size:.8125rem}.distribution span,.timer-ring small{font-size:.75rem}.hint,.dialog-description,.help-body,.inline-help,.distribution,.salem-summary,.public-effects summary,.public-effects>small,.role-summary,.role-summary .text-button,.timeline li p,.field-label,.voice-field,.script-step label,.secret-choice p,.secret-choice label,.error-text,.validation,.notice{font-size:var(--dys-text-small)}input,select,textarea,.game-panel>select,.voice-field select{font-size:var(--dys-text-body)}.text-button,.segmented button,.role-top{font-size:var(--dys-text-small)}.primary:disabled,.secondary:disabled{color:var(--dys-muted);border-color:var(--dys-line);background:var(--dys-disabled)}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}:root:has(.site-shell){background:var(--dys-page)}body:has(.site-shell){background:var(--dys-page)}.app.site-shell{background:var(--dys-page);border:0;border-radius:0;width:100%;max-width:1200px;margin:0 auto;padding:0}[data-theme=dark] .app.site-shell{border-color:var(--dys-line)}.site-shell .narrator-toolbar,.site-shell .setup{width:100%;max-width:1120px;margin-inline:auto;padding-inline:16px}@media (width>=600px){.site-shell .narrator-toolbar,.site-shell .setup{padding-inline:32px}}.salem-setup{gap:var(--narrator-group-gap);padding-top:8px;display:grid}.message-roles{margin-top:16px}.message-roles>summary{justify-content:space-between}.message-setup>select{width:100%;min-height:48px}.salem-roster-heading{cursor:pointer;align-items:center;gap:12px;min-height:56px;padding:16px 0;list-style:none;display:flex}.salem-roster-heading::-webkit-details-marker{display:none}.salem-roster-heading>span:first-child{font-size:1rem;font-weight:600}.salem-roster-count{color:var(--muted);font-variant-numeric:tabular-nums;margin-left:auto;font-size:.8125rem}.salem-roster-heading svg{flex-shrink:0}.salem-roster,.message-roles{border-block:1px solid var(--dys-line)}.salem-roster[open]>summary{margin-bottom:8px}.salem-roster[open]>.occupation-grid,.message-roles[open]>.occupation-grid{padding-bottom:24px}.salem-roster[open]>summary svg{transform:rotate(180deg)}.salem-roster-heading:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:4px}.occupation-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.occupation-grid label{border:1px solid var(--dys-line);border-radius:var(--radius);background:var(--dys-input);cursor:pointer;overflow-wrap:anywhere;align-items:center;gap:10px;min-height:48px;padding:10px 12px;font-size:.9375rem;display:flex}.occupation-grid label:has(:checked){background:var(--dys-selected);border-color:var(--accent)}.occupation-grid input{width:18px;height:18px;accent-color:var(--dys-brand);flex:0 0 18px;margin:0;padding:0}.salem-phase{gap:8px;display:grid}.salem-phase label{font-size:.9375rem}.salem-phase select{width:100%;min-height:48px}.salem-setup>.setting-row{min-height:44px;padding:0}.salem-results{gap:16px;margin:20px 0;display:grid}.salem-results>div{justify-content:space-between;gap:20px;display:flex}.salem-results dt{color:var(--muted)}.salem-results dd{text-align:right;margin:0;font-weight:600}@media (width>=600px){.occupation-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=359px){.occupation-grid label{gap:8px;padding-inline:10px;font-size:.875rem}}
