/* Physical scene: an arcade cabinet after midnight; warm lettering over a cold city. */
:root{color-scheme:dark;--ink:#09191f;--paper:#f7e9bf;--amber:#ffbe66;--muted:#b5c5c1;--cyan:#84d9d1;--danger:#ff8b78;font-family:"Courier New",monospace;font-synthesis:none}
*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden;background:#061116;color:var(--paper)}body{display:grid;place-items:center}button,input,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:wait;opacity:.45}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--cyan);outline-offset:5px}button{border:0;background:transparent;min-height:44px;text-align:left;font-weight:700;letter-spacing:.07em}button:hover{color:var(--amber)}button:active{transform:translateY(1px)}a{color:var(--cyan);text-underline-offset:4px}p{line-height:1.65}h1,h2,p{margin-top:0}[hidden]{display:none!important}
#stage{position:relative;width:min(100vw,177.7778dvh);height:min(56.25vw,100dvh);overflow:hidden;background:var(--ink);isolation:isolate;container-type:size}#game{display:block;width:100%;height:100%;image-rendering:pixelated;image-rendering:crisp-edges}#stage:after{content:"";pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 0 80px #020d1340;z-index:2}.screen{position:absolute;inset:0;z-index:5;padding:6cqh 7cqw;overflow:auto;background:linear-gradient(90deg,#07171ef5 0%,#07171ee6 45%,#07171e75 100%)}.main-menu{background:linear-gradient(90deg,#081a20f5 0%,#081a20df 40%,#081a2065 75%,#081a2030 100%)}.eyebrow{font-size:1rem;letter-spacing:.25em;font-weight:700;color:var(--cyan);margin-bottom:2cqh}.title-block h1{font-family:Impact,"Arial Narrow",sans-serif;font-size:15cqw;line-height:.95;letter-spacing:.025em;margin:0;color:var(--paper);text-shadow:0 .5cqh 0 #b27745,0 1.1cqh 0 #172b2d;white-space:nowrap}.subtitle{color:var(--amber);font-size:2.05cqw;font-weight:700;letter-spacing:.5em;margin:2.3cqh 0 3.7cqh}.menu-list{display:flex;flex-direction:column;align-items:flex-start;gap:.15cqh;width:37cqw}.menu-list button{font-size:1.375rem;padding:.6cqh 1cqw;min-height:5.8cqh;width:100%;position:relative}.menu-list button:focus-visible{outline:2px solid var(--cyan);outline-offset:0}.menu-list button:hover{background:#82ded40b}.primary{background:var(--amber)!important;color:var(--ink)!important;padding:1.2cqh 1.6cqw!important}.primary:hover{background:var(--paper)!important}.primary span{float:right}.menu-list .primary{margin-bottom:1.5cqh}.menu-story{position:absolute;bottom:18cqh;left:56cqw;right:6cqw;text-shadow:0 2px 3px #051118}.case-number,.story-fine{font-size:1rem;letter-spacing:.12em;color:var(--cyan);font-weight:700}.menu-story p{font-size:2.35cqw;line-height:1.5;margin:2cqh 0;color:var(--paper)}.story-fine{color:var(--amber)}.menu-footer{position:absolute;bottom:3cqh;left:7cqw;right:7cqw;display:flex;justify-content:space-between;gap:2cqw;font-size:1rem;letter-spacing:.08em;color:var(--muted);border-top:1px solid #b4c9bd3a;padding-top:2cqh}h2{font-family:Impact,"Arial Narrow",sans-serif;font-size:clamp(2rem,6cqw,5rem);letter-spacing:.06em;line-height:1.1;margin-bottom:3cqh}.detail-screen{padding:5cqh 9cqw;background:#091b22f2}.detail-screen p{font-size:1.125rem}.back{margin-top:2cqh;padding:1cqh 0;color:var(--amber);font-size:1.125rem}.controls{display:grid;grid-template-columns:1fr 1fr;gap:2.4cqh 5cqw;margin:0 0 3cqh}.controls>div{display:flex;justify-content:space-between;gap:1cqw;border-bottom:1px solid #b4c9bd36;padding-bottom:1.5cqh}.controls dt{font-size:1.125rem;font-weight:700;padding-top:.5cqh}.controls dd{text-align:right;margin:0;font-size:1.125rem}kbd{display:inline-block;padding:.3cqh .4cqw;border:1px solid #b4c9bd70;box-shadow:0 2px 0 #b4c9bd40;margin-left:.3cqw;color:var(--paper);min-width:2cqw;text-align:center}small{display:block;font-size:1rem;font-weight:400;line-height:1.5;color:var(--muted);letter-spacing:0;margin-top:1cqh}.help-note{max-width:72ch;color:var(--muted);line-height:1.65}.prose{max-width:65ch}.prose p{margin-bottom:2cqh;line-height:1.6}.prose .lore-signoff{color:var(--amber);font-weight:700;font-size:1.375rem}.credits strong{display:block;color:var(--amber);margin-bottom:.5cqh}.credits p{font-size:1.125rem;margin-bottom:2cqh}.settings-list{max-width:60cqw;display:grid;gap:3cqh}.settings-list label{display:block;font-size:1.125rem}.settings-list label>span{display:block}.settings-list output{float:right;color:var(--amber)}input[type=range]{width:100%;accent-color:var(--amber);margin:1cqh 0 0;min-height:36px;cursor:pointer}.settings-list .toggle{display:flex;align-items:center;justify-content:space-between;gap:4cqw}input[type=checkbox]{accent-color:var(--amber);width:25px;height:25px;cursor:pointer}.muted{color:var(--muted);margin-top:3cqh}.centered{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:#091b22ec}.centered h1,.centered h2{font-family:Impact,"Arial Narrow",sans-serif;font-size:clamp(2rem,5cqw,4rem);letter-spacing:.045em;margin-bottom:2cqh}.centered p{font-size:1.125rem}.centered .menu-list{text-align:left}.centered>button{font-size:1.125rem}.loading-mark{display:grid;place-items:center;width:10cqw;height:10cqw;color:var(--ink);background:var(--amber);font-family:Impact,sans-serif;font-size:9cqw;margin-bottom:4cqh;box-shadow:.7cqw .7cqw 0 #29424a}.result-screen{padding:10cqh 10cqw;background:linear-gradient(90deg,#091b22fa,#091b22ce)}.result-screen h2{font-size:clamp(2.5rem,10cqw,7rem);color:var(--amber);margin-bottom:1cqh}.result-screen>p{font-size:1.125rem}.results{display:flex;flex-wrap:wrap;gap:4cqw;margin:6cqh 0}.results div{border-top:1px solid #b4c9bd6b;padding-top:2cqh;min-width:9cqw}.results dt{font-size:1rem;color:var(--muted);letter-spacing:.1em}.results dd{font-size:2rem;font-weight:700;margin:1cqh 0 0}.result-actions{display:flex;gap:3cqw;align-items:center}.result-actions button{font-size:1.125rem}
#hud{position:absolute;z-index:3;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:flex-start;padding:2cqh 2cqw;background:linear-gradient(#07151ded,transparent);font-size:clamp(9px,1.4cqw,20px);text-shadow:0 2px #061116;pointer-events:none}.hud-left,.hud-right{display:flex;align-items:center;gap:1.1cqw}.hud-name{font-size:1.1cqw;color:var(--cyan);font-weight:700}#health{font-size:1.9cqw;color:var(--danger);letter-spacing:.12em;white-space:nowrap}#lives{font-size:1.2cqw}#score{font-weight:700;font-size:1.8cqw;color:var(--amber);letter-spacing:.08em}.hud-center{text-align:center;display:flex;flex-direction:column;gap:.9cqh}#letters{letter-spacing:.5em;font-weight:700;font-size:1.3cqw}#letters span{color:#a0b4b478}#letters span.found{color:var(--amber)}#objective{font-size:clamp(8px,.95cqw,14px);color:var(--paper);letter-spacing:.06em}#pause-button{pointer-events:auto;min-width:40px;min-height:36px;padding:0;text-align:center;color:var(--paper);font-size:1.7cqw}#notice{position:absolute;top:18cqh;left:12cqw;right:12cqw;z-index:4;text-align:center;color:var(--amber);font-size:1.6cqw;text-shadow:0 2px 2px #08151d;pointer-events:none}#death-message{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:2cqh;background:#09191f7a;text-align:center;text-shadow:0 2px #09191f}#death-message strong{font-family:Impact,sans-serif;font-size:4cqw;letter-spacing:.08em;color:var(--danger)}#death-message span{font-size:1.6cqw}#touch-controls{position:absolute;z-index:4;left:2cqw;right:2cqw;bottom:2cqh;display:flex;justify-content:space-between;pointer-events:none}#touch-controls>div{display:flex;gap:1cqw}#touch-controls button{pointer-events:auto;touch-action:none;width:max(44px,6cqw);height:max(44px,6cqw);text-align:center;background:#102b32c9;border:1px solid #b9ddd688;font-size:18px;color:var(--paper)}.noscript{position:fixed;inset:30% 10%;text-align:center;background:var(--ink);padding:30px;z-index:9}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}body.reduced-motion button:active{transform:none}

/* Keep menu targets usable when the game is scaled to a laptop or landscape phone. */
.menu-list button{min-height:max(44px,5.8cqh)}


/* Preserve 44px touch targets; stack the action cluster on narrow playfields. */
#touch-controls{align-items:flex-end;gap:1.5cqw}
#touch-controls>div{flex-shrink:0}
#touch-controls button{flex-shrink:0}
@container(max-width:360px){#touch-controls .touch-actions{display:grid;grid-template-columns:repeat(2,44px);gap:4px}#touch-controls .touch-movement{gap:4px}}

/* Settings use a fixed heading and one scroll region, even in a small game window. */
.settings-screen{display:flex;flex-direction:column;overflow:hidden;padding:3cqh 6cqw}
.settings-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;flex:0 0 auto;border-bottom:1px solid #b4c9bd3a;padding-bottom:12px}
.settings-heading .eyebrow{font-size:1rem;margin-bottom:8px}
.settings-heading h2{font-size:clamp(28px,4cqw,52px);margin:0}
.settings-heading .back{margin:0;min-width:84px;min-height:44px;text-align:center;font-size:1rem}
.settings-content{overflow-y:auto;overscroll-behavior:contain;padding:0 12px 28px 0;scroll-padding-top:16px;min-height:0;flex:1}
.settings-section{padding:22px 0;border-bottom:1px solid #b4c9bd3a;scroll-margin-top:16px}
.settings-section h3{margin:0 0 16px;font-size:20px;color:var(--amber);letter-spacing:.04em}
.settings-screen .settings-list{max-width:720px;gap:18px}
.settings-screen .settings-list label,.settings-screen .binding-list{font-size:1.125rem}
.settings-screen small{font-size:1rem;margin-top:4px}
.settings-screen .settings-note{font-size:1rem;line-height:1.6;max-width:72ch;color:var(--muted);margin:10px 0 16px;overflow-wrap:anywhere}
.settings-screen input[type=range]{min-height:44px;margin-top:2px}
.settings-screen input[type=checkbox]{width:28px;height:28px;margin:8px;flex-shrink:0}
.settings-screen .toggle{min-height:48px;cursor:pointer}
.settings-screen select{font:inherit;color:var(--paper);background:#173239;border:1px solid #8aa6a1;min-height:44px;padding:8px 12px;max-width:100%;cursor:pointer;border-radius:0}
select:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}
.select-row{display:flex!important;align-items:center;justify-content:space-between;gap:16px}
.binding-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;max-width:800px}
.binding-list>div,.binding-list>label{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:64px;border-bottom:1px solid #b4c9bd25;padding:8px 0}
.binding-list button{font-size:1rem;letter-spacing:0;min-height:44px;min-width:110px;max-width:160px;padding:8px 10px;text-align:center;border:1px solid #8aa6a1;background:#173239}
.binding-list button[aria-pressed=true]{background:var(--amber);color:var(--ink);border-color:var(--amber)}
.outline-button{min-height:44px;font-size:1rem;border:1px solid var(--amber);padding:8px 14px;color:var(--amber);letter-spacing:.03em}
.binding-status{min-height:22px;color:var(--cyan)!important}
#loading-progress{display:block;width:min(58cqw,520px);height:14px;accent-color:var(--amber);margin:1cqh auto 2cqh}
#loading-progress::-webkit-progress-bar{background:#29424a}#loading-progress::-webkit-progress-value{background:var(--amber)}
.centered .loading-tip{max-width:60ch;padding:0 5cqw;font-size:1rem;color:var(--muted)}
@container(max-width:800px){.settings-screen{padding:12px 24px}.settings-heading{padding-bottom:10px}.settings-heading .eyebrow{display:none}.settings-heading h2{font-size:28px}.settings-content{padding-right:8px}.binding-list{grid-template-columns:1fr}.settings-section{padding:18px 0}.settings-screen .settings-list{max-width:none}.settings-screen .settings-note{font-size:1rem}.settings-screen .select-row{flex-wrap:wrap}.settings-screen .select-row select{flex:1;min-width:180px}.settings-screen .binding-list select{min-width:120px}.subtitle{letter-spacing:.25em}}

.character-picker{position:absolute;left:56cqw;right:6cqw;top:42cqh}
.character-picker>.case-number{margin-bottom:8px}
.character-options{display:grid;grid-template-columns:repeat(5,minmax(44px,1fr));gap:4px}
.character-options button{min-width:44px;min-height:44px;padding:4px 2px 6px;text-align:center;border:1px solid #718e8870;background:#0b2329a8;letter-spacing:.02em;font-size:1rem}
.character-options button[aria-pressed=true]{color:var(--amber);border-color:var(--amber);background:#593c2259}
.character-options canvas{display:block;width:clamp(36px,4.5cqw,64px);height:clamp(36px,4.5cqw,64px);max-width:100%;margin:0 auto 3px;image-rendering:pixelated}
.character-picker .character-description{font-size:1rem;color:var(--muted);line-height:1.4;margin-top:8px}
.main-menu .menu-story{bottom:13cqh}

/* Crystal cult arcade palette: sharp seals, acid signage and a gold-clad cast. */
:root{--ink:#1b102e;--paper:#fbf3df;--amber:#d6ff53;--muted:#c6c3d5;--cyan:#5af0c5;--danger:#ff658e}
html,body{background:#10091c}.screen{background:linear-gradient(90deg,#1b102efa,#1b102eea 48%,#1b102e70)}
.main-menu{background:linear-gradient(90deg,#1b102ef5 0%,#211133e8 42%,#21113394 75%,#21113355)}
.main-menu:before{content:"";position:absolute;z-index:-1;right:8cqw;top:7cqh;width:14cqw;height:14cqw;border:2px solid #5af0c54d;transform:rotate(45deg);box-shadow:inset 0 0 0 12px #1b102e55,inset 0 0 0 14px #ff658e42;pointer-events:none}
.title-block h1{color:#d6ff53;text-shadow:0 .55cqh 0 #6a337b,0 1.15cqh 0 #ff658e}
.title-block .eyebrow{color:#5af0c5}.subtitle{color:#ff9db9}
.menu-list button:hover{background:#d6ff5310}.menu-list .primary{box-shadow:4px 4px 0 #ff658e}
.menu-list .primary:hover{background:#ecffaf!important}.case-number{color:#5af0c5}.story-fine{color:#f9d46c}
.menu-story{border-left:3px solid #ff658e;padding-left:1.5cqw}.menu-story p{text-shadow:0 2px #1b102e}
.detail-screen,.centered{background:#1b102ef5}.settings-heading{border-color:#5af0c550}
.settings-section h3{color:#d6ff53}.binding-list button,.settings-screen select{background:#301b45;border-color:#756086}
.character-options button{background:#2d1746c9;border-color:#795390}.character-options button[aria-pressed=true]{background:#55316a;color:#d6ff53;border-color:#d6ff53;box-shadow:inset 0 -3px #ff658e}
.character-picker>.case-number:before{content:"◆ ";color:#ff658e}.loading-mark{background:#d6ff53;box-shadow:.7cqw .7cqw 0 #ff658e}
#loading-progress::-webkit-progress-bar{background:#462453}#loading-progress::-webkit-progress-value{background:#d6ff53}
.profile-form{display:grid;gap:16px;max-width:520px}.profile-form label{display:grid;gap:8px;font-size:1.125rem}
.profile-form input{font:inherit;color:var(--paper);background:#301b45;border:1px solid #756086;min-height:44px;width:100%;padding:10px 12px;border-radius:0}
.profile-form button{justify-self:start}.menu-footer .unsaved{color:#ff9db9!important}
#pause-button{min-width:44px;min-height:44px}

.account-block{max-width:760px;padding:24px 0;border-bottom:1px solid #5af0c538}
.account-screen .account-block>p{font-size:1.125rem;overflow-wrap:anywhere}.account-block h3{font-size:28px;margin:0 0 8px;color:var(--amber)}
.account-screen .account-email{color:var(--muted);margin-bottom:20px}.account-screen .account-message{color:var(--danger)}
.auth-tabs{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:24px}.auth-tabs button{padding:8px 14px;min-height:44px;border-bottom:2px solid #795390;font-size:1rem}
.auth-tabs button[aria-pressed=true]{color:var(--amber);border-color:var(--amber)}
.account-actions{display:flex;flex-wrap:wrap;gap:12px}.account-actions button{font-size:1rem;letter-spacing:0}
.account-screen .profile-form{max-width:520px}.account-screen .profile-form .primary{min-height:44px;font-size:1rem;margin-top:4px;padding:10px 16px!important}
.account-screen .settings-note{font-size:1rem;line-height:1.6;color:var(--muted);max-width:72ch}
.result-screen .result-save-status{font-size:1rem;color:var(--cyan);margin:0 0 16px}.result-actions{flex-wrap:wrap}

.crew-screen .settings-note{font-size:1rem;line-height:1.6;color:var(--muted);max-width:78ch}.crew-connection{font-size:1rem!important;color:var(--amber);min-height:20px;margin-bottom:12px}
.crew-setup{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;padding:20px 0;border-block:1px solid #5af0c538;margin:16px 0}
.crew-screen h3{font-size:22px;color:var(--amber);margin:0 0 18px}.crew-create>label{display:grid;gap:10px;font-size:1rem}.crew-create>.primary{margin-top:18px;font-size:1rem;min-height:44px;padding:10px 16px!important}
.crew-members{list-style:none;padding:0;margin:16px 0 22px;display:grid;gap:8px}.crew-members li{display:flex;align-items:center;gap:14px;min-height:70px;border-left:3px solid var(--crew-color);padding:0 12px;background:#301b4580}.crew-members canvas{width:56px;height:56px;image-rendering:pixelated}.crew-members strong{color:var(--crew-color);font-size:17px}.crew-members small{font-size:1rem}
.crew-invite-label{display:grid;gap:8px;font-size:1rem;margin-bottom:16px}.crew-invite-label input{min-height:44px;width:100%;padding:10px 12px;background:#301b45;border:1px solid #756086;color:var(--paper);font:inherit}
.crew-screen .account-actions .primary{min-height:44px;font-size:1rem;padding:10px 16px!important}.crew-result-wait{position:absolute;z-index:6;bottom:2cqh;left:10cqw;font-size:1rem;color:var(--cyan)}
@container(max-width:800px){.crew-setup{grid-template-columns:1fr;gap:28px}.crew-screen h3{font-size:20px}.crew-screen .settings-heading h2{font-size:26px}.crew-screen .settings-heading .back{min-width:118px;font-size:1rem}#crew-button{font-size:1.35cqw}.pause-screen .menu-list{width:58cqw}.pause-screen #pause-reason{max-width:70ch;font-size:1rem;line-height:1.5}.pause-screen .menu-list{display:grid;grid-template-columns:1fr 1fr;gap:0 10px}.pause-screen .menu-list .primary{grid-column:1/-1}.pause-screen .menu-list button{font-size:1rem}}

/* Run difficulty uses the existing arcade toggle and gold HUD palette. */
.run-mode{max-width:440px;margin:14px auto;padding:10px 12px;border:1px solid var(--gold,#d8b65f);text-align:left}.run-mode input{min-width:24px;min-height:24px}.run-mode small{display:block}#letter-count{font-size:10px;letter-spacing:0;color:#f2d486;margin-left:5px}.toggle{min-height:44px}

/* Keep difficulty visible in the existing right column at every arcade viewport. */

/* Menus use readable type and normal document flow, never a scaled-down playfield. */
.screen{font-size:1.125rem;scroll-padding:24px;scrollbar-gutter:stable;overflow-wrap:break-word}
.screen button,.screen input,.screen select{font-size:1rem;line-height:1.35}
.screen small,.screen .settings-note,.screen .eyebrow{font-size:1rem}
.screen .eyebrow{letter-spacing:.12em;line-height:1.5}
.screen button{min-height:44px}
.screen h2{overflow-wrap:anywhere}
.screen .back{font-size:1.125rem}
.screen .primary{padding:10px 16px!important}
.menu-list{width:min(100%,580px)}
.menu-list button{font-size:1.375rem;line-height:1.2;padding:9px 12px;min-height:46px}
.menu-list .primary{margin-bottom:4px}
.main-menu{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:auto auto auto auto;grid-template-areas:"title title" "actions characters" "actions difficulty" "footer footer";align-content:start;column-gap:clamp(24px,5cqw,72px);row-gap:16px;padding:24px clamp(24px,6cqw,88px);background:linear-gradient(90deg,#1b102efa,#211133eb 48%,#211133d9)}
.main-menu .title-block{grid-area:title;min-width:0}
.main-menu .title-block .eyebrow{margin:0 0 10px}
.main-menu .title-block h1{font-size:clamp(4rem,9.5cqw,8.5rem);line-height:.95}
.main-menu .subtitle{font-size:1.375rem;letter-spacing:.2em;line-height:1.35;margin:14px 0 0}
.main-menu .menu-list{grid-area:actions;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:2px 12px;align-content:start;align-self:start;width:auto;min-width:0}
.main-menu .menu-list>button{grid-column:1/-1;font-size:1.375rem}
.main-menu #account-button,.main-menu #crew-button{grid-column:auto;font-size:1.25rem;letter-spacing:.025em}
.main-menu .character-picker{grid-area:characters;position:static;min-width:0}
.main-menu .character-picker>.case-number{font-size:1rem;line-height:1.5;letter-spacing:.08em;margin:0 0 12px}
.main-menu .character-options{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.main-menu .character-options button{font-size:1rem;line-height:1.3;min-width:0;padding:6px 2px;letter-spacing:0}
.main-menu .character-options canvas{width:56px;height:56px;max-width:100%;margin-bottom:6px}
.main-menu .character-description{font-size:1rem;line-height:1.5;margin:12px 0 0}
.main-menu .run-mode{grid-area:difficulty;position:static;display:flex;align-items:center;justify-content:space-between;align-self:start;gap:16px;min-width:0;max-width:none;margin:0;padding:14px 16px;font-size:1.375rem;border-color:var(--amber);background:#211133ee;cursor:pointer}
.main-menu .run-mode small{font-size:1rem;line-height:1.5;margin-top:6px}
.main-menu .run-mode .mode-campaign{font-size:1rem;color:var(--amber);letter-spacing:.02em}
.main-menu .run-mode input{width:28px;height:28px;flex-shrink:0}
.main-menu .menu-footer{grid-area:footer;position:static;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 20px;font-size:1rem;line-height:1.5;letter-spacing:.02em;padding-top:12px;min-width:0}
.main-menu .menu-footer span{display:block;overflow-wrap:anywhere}
.settings-heading{flex-wrap:wrap}
.settings-heading .back{flex:0 0 auto}
.settings-screen .settings-note,.account-screen .settings-note,.crew-screen .settings-note{font-size:1rem;line-height:1.6}
.settings-screen small{font-size:1rem;line-height:1.5}
.settings-screen .settings-list label,.settings-screen .binding-list{font-size:1.125rem}
.settings-screen .binding-list button,.settings-screen select,.settings-screen input,.settings-screen .outline-button,.settings-screen .primary,.auth-tabs button,.account-actions button{font-size:1rem}
.settings-content{padding-top:12px}
.settings-content>*{min-width:0;max-width:100%}
.settings-list,.profile-form,.binding-list{min-width:0;width:100%}
.settings-screen .settings-list label,.profile-form label,.binding-list>div,.binding-list>label{min-width:0;max-width:100%}
.settings-list label>span,.binding-list>div>span,.binding-list>label>span{min-width:0;overflow-wrap:anywhere}
.settings-screen input:not([type=checkbox]),.profile-form input{min-width:0;max-width:100%}
.settings-screen input[type=range]{display:block;width:100%;margin-inline:0}
.settings-screen .toggle{gap:12px}
.settings-screen .toggle>input{margin-right:0}
.profile-form label,.crew-create>label,.crew-invite-label{font-size:1.125rem}
.crew-members small{font-size:1rem}
.crew-connection{font-size:1rem!important}
.account-block,.settings-content,.settings-heading>div{min-width:0}
.pause-screen .menu-list{display:flex;width:min(100%,580px);gap:4px}
.pause-screen .menu-list button{font-size:1.375rem}
.pause-screen #pause-reason{font-size:1.125rem;max-width:65ch}
.result-screen .result-save-status{font-size:1rem;line-height:1.5}
.result-actions button{font-size:1.125rem}
.centered{padding-block:24px;justify-content:safe center}
.centered .loading-tip{font-size:1rem;line-height:1.6}
@container(max-width:900px){
 .main-menu{display:flex;flex-direction:column;align-items:stretch;gap:24px;padding:24px}
 .main-menu>*{flex:0 0 auto}
 .main-menu .menu-list,.main-menu .run-mode{align-self:stretch}
 .main-menu .title-block h1{font-size:clamp(3rem,13cqw,6rem)}
 .main-menu .subtitle{font-size:1.125rem;letter-spacing:.12em}
 .main-menu .menu-list{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px 12px}
 .main-menu .menu-list>button{grid-column:auto}
 .main-menu .menu-list>.primary{grid-column:1/-1}
 .main-menu #account-button,.main-menu #crew-button{font-size:1.25rem}
 .main-menu .menu-list>button{font-size:1.25rem}
 .main-menu .character-options{grid-template-columns:repeat(5,minmax(0,1fr))}
 .detail-screen{padding:24px}
 .controls{grid-template-columns:1fr;gap:16px;margin-bottom:24px}
 .controls>div{gap:12px;padding-bottom:12px}
 .controls dt,.controls dd{font-size:1.125rem}
 .settings-heading .eyebrow{display:block}
 .settings-heading h2,.crew-screen .settings-heading h2{font-size:2rem}
 .settings-heading .back,.crew-screen .settings-heading .back{font-size:1.125rem;min-width:84px}
 .result-screen{padding:24px}
}
@container(max-width:480px){
 .main-menu .character-options{grid-template-columns:repeat(3,minmax(0,1fr))}
 .main-menu .menu-list{grid-template-columns:minmax(0,1fr)}
 .main-menu .menu-list>button,.main-menu #account-button,.main-menu #crew-button{grid-column:1/-1}
 .main-menu .menu-footer{flex-direction:column;align-items:flex-start}
 .screen .eyebrow{letter-spacing:.08em}
 .binding-list button{min-width:88px}
 .controls>div{flex-wrap:wrap}
}
@media(max-width:900px),(max-height:520px){
 #stage:has(.screen:not([hidden])){width:100vw;height:100dvh}
 #stage:has(.screen:not([hidden])) #game{position:absolute;left:50%;top:50%;width:min(100vw,177.7778dvh);height:min(56.25vw,100dvh);transform:translate(-50%,-50%)}
}
@media(max-height:520px){
 .settings-screen{display:block;overflow:auto}
 .settings-content{overflow:visible}
 .settings-heading{position:static}
 .centered{justify-content:flex-start}
}
