:root{color-scheme:dark;--ink:#1b2225;--panel:#252e31;--metal:#687375;--cream:#e5dfc9;--muted:#abb3ac;--gold:#c9a764;--olive:#687554;--red:#c66b61;--blue:#69a8b5}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#151b1d;color:var(--cream)}body{padding:16px 18px 0;font-family:"Trebuchet MS",Arial,sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid #f1d497;outline-offset:4px}button:disabled{cursor:default}button[hidden],[hidden]{display:none!important}
.game-shell{width:min(1480px,100%);height:calc(100dvh - 46px);min-height:580px;margin:auto;display:flex;flex-direction:column;background:var(--panel);border:1px solid #6e7776;box-shadow:0 12px 50px #0008,0 0 0 3px #10181b,inset 0 0 0 1px #9994}
.titlebar{height:38px;flex-shrink:0;display:flex;align-items:center;padding:0 14px;background:#344044;border-bottom:1px solid #788383;gap:20px}.wordmark{font:700 13px "Courier New",monospace;letter-spacing:1px;color:var(--cream);text-decoration:none}.wordmark span{color:var(--gold)}.edition{font:10px "Courier New",monospace;letter-spacing:2px;color:#a9b2ab}.window-controls{margin-left:auto;display:flex;align-items:center;gap:6px}.icon-button{color:#d3d6c8;border:1px solid transparent;background:transparent;min-width:27px;height:26px;font-size:16px}.icon-button span{font:10px "Courier New",monospace}.icon-button:hover{background:#515f60;border-color:#8a9188}.icon-button[aria-pressed=true]{color:#ebc175}
.hud{min-height:102px;flex-shrink:0;display:grid;grid-template-columns:1.25fr 1fr 1fr .7fr 1fr;gap:26px;padding:12px 20px;background:linear-gradient(#293136,#1b2328);border-bottom:3px solid #697471;box-shadow:inset 0 -1px #a7ad96;align-items:center}.identity{display:flex;align-items:center;gap:13px;min-width:0}.identity canvas{width:74px;height:74px;image-rendering:pixelated;border:2px solid #8f9c9b;background:#617773;box-shadow:0 0 0 2px #10171c;flex-shrink:0}.identity strong{display:block;letter-spacing:3px;font:bold 22px "Courier New",monospace;line-height:1.2}.identity small{display:block;color:var(--muted);font-size:10px;margin-top:4px;white-space:nowrap}.hud-label,.stat-heading{font:10px "Courier New",monospace;letter-spacing:1.2px;color:#c7cabc}.stat-heading{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:9px}.stat-heading output{font:bold 14px "Courier New",monospace;color:#eee8d5;letter-spacing:0;white-space:nowrap}.stat meter{display:block;width:100%;height:20px;border:2px solid #7b8889;border-radius:0;background:#0e191e;appearance:none;overflow:hidden}.stat meter::-webkit-meter-bar{background:repeating-linear-gradient(90deg,#172329 0,#172329 calc(10% - 1px),#516067 calc(10% - 1px),#516067 10%);border:0;border-radius:0}.stat meter::-webkit-meter-optimum-value{background:repeating-linear-gradient(90deg,transparent 0,transparent 8px,#1b232850 8px,#1b232850 10px),linear-gradient(#e89e81,var(--red));border-radius:0}.stat meter.thirst::-webkit-meter-optimum-value{background:repeating-linear-gradient(90deg,transparent 0,transparent 8px,#1b232850 8px,#1b232850 10px),linear-gradient(#abd5d2,var(--blue))}.stat meter::-moz-meter-bar{background:var(--red)}.stat meter.thirst::-moz-meter-bar{background:var(--blue)}.stat.danger .stat-heading{color:#f1b065}.chicken-stat>div{display:flex;align-items:center;gap:8px;margin-top:5px}.chicken-stat canvas{width:42px;height:32px;image-rendering:pixelated}.chicken-stat output{font:bold 27px "Courier New",monospace;white-space:nowrap}.chicken-stat output span{font-size:16px;color:#9ea89f}.ability-stat>button{display:flex;align-items:center;width:100%;gap:9px;padding:4px 6px;margin-top:7px;background:#32413e;border:1px solid #768d73;color:#e2d6a2;height:32px}.ability-icon{font-size:23px;color:var(--gold)}#ability-value{font:bold 11px "Courier New",monospace;white-space:nowrap}.ability-stat kbd{font-size:9px;padding:3px;margin-left:auto}.ability-stat button:disabled{opacity:.6}
.stage{position:relative;flex:1;min-height:340px;overflow:hidden;background:#35423e}#game{display:block;width:100%;height:100%;image-rendering:pixelated;outline:none}.area-label{position:absolute;bottom:20px;left:22px;display:flex;gap:12px;align-items:center;padding:10px 15px;background:#1e292ceb;border:1px solid #7b8580;box-shadow:3px 3px 0 #10181b80;pointer-events:none}.area-marker{height:23px;width:4px;background:var(--gold)}.area-label strong{display:block;font:bold 14px "Courier New",monospace;letter-spacing:2px}.area-label div>span{font:10px "Courier New",monospace;display:block;margin-top:3px;color:#b6c1b4;letter-spacing:.8px}.minimap{position:absolute;bottom:20px;right:22px;width:190px;border:2px solid #8a9490;background:#1c282be8;box-shadow:3px 3px 0 #10181b80;pointer-events:none}.minimap>div{display:flex;justify-content:space-between;padding:7px 9px;border-bottom:1px solid #61726c;font:9px "Courier New",monospace;letter-spacing:1px;color:#c4cbb9}.minimap canvas{width:180px;height:140px;display:block;margin:2px auto;image-rendering:pixelated}.minimap p{margin:0;padding:4px 9px 7px;font:8px "Courier New",monospace;color:#c1c8b8;display:flex;gap:5px;align-items:center}.minimap i{display:inline-block;width:5px;height:5px}.map-you{background:#a4d3cf}.map-stairs{background:#d8b976;margin-left:8px}.toast{position:absolute;top:24px;left:50%;transform:translate(-50%,-8px);opacity:0;transition:opacity .16s,transform .16s;border:1px solid #aea47d;background:#202d2eef;padding:12px 18px;font:bold 13px "Courier New",monospace;box-shadow:3px 3px 0 #0004;text-align:center;pointer-events:none;max-width:75%;z-index:2}.toast.visible{opacity:1;transform:translate(-50%,0)}.toast.hit{border-color:#d67a66;color:#f3bd9f}.toast.drink{border-color:#86c3bf;color:#b7ded8}
.overlay{position:absolute;inset:0;background:linear-gradient(90deg,#101d21f5 0%,#142529de 45%,#18262532 100%);display:flex;align-items:center;justify-content:flex-start;padding:30px 7%;z-index:5;overflow:auto}.menu{max-width:520px;width:100%;position:relative}.menu-stamp{font:9px "Courier New",monospace;letter-spacing:2px;color:#aeb7a1;margin-bottom:26px;display:flex;align-items:center;gap:10px}.menu-stamp:before{content:"";display:block;width:22px;height:2px;background:var(--gold)}.menu-eyebrow{color:#d1b270;font:11px "Courier New",monospace;letter-spacing:1.8px}h1{font:900 clamp(40px,5vw,70px)/.88 "Courier New",monospace;letter-spacing:-3px;margin:16px 0 23px;color:#eee6cd;text-shadow:3px 3px 0 #0009}h1 em{font-style:normal;color:#d1b577}#menu-description{font-size:14px;line-height:1.7;color:#bdc5b8;margin:0 0 19px}.briefing{border-left:3px solid #839075;padding:1px 0 1px 14px;margin-bottom:22px}.briefing>span{font:bold 10px "Courier New",monospace;letter-spacing:1.4px;color:#e0dac0}.briefing p{margin:6px 0 0;font-size:12px;line-height:1.6;color:#aab9ac;max-width:385px}.controls-guide{display:flex;align-items:center;gap:24px;margin:0 0 25px}.controls-guide>div{display:flex;align-items:center;gap:3px}.controls-guide span{font-size:10px;color:#b7c3b4;margin-left:6px}kbd{font:10px "Courier New",monospace;border:1px solid #677b74;border-bottom:3px solid #4c605b;background:#293b3a;padding:4px;min-width:20px;text-align:center;color:#d2d8c4}.primary-button{display:flex;justify-content:space-between;gap:20px;align-items:center;background:#c5ac75;color:#20282a;font:bold 13px "Courier New",monospace;letter-spacing:1.2px;border:1px solid #eed8a4;border-bottom:4px solid #867449;padding:14px 20px;min-width:305px;box-shadow:4px 4px 0 #0c1619}.primary-button:hover{background:#dbc48b}.primary-button span{font-size:21px}.secondary-button{color:#c6cdbc;background:transparent;border:1px solid #6d8074;font-size:12px;margin-top:18px;padding:10px 14px}.secondary-button:hover{background:#3a4d45}.menu-note{font-size:10px;color:#8a9e94;margin:14px 0 0}.overlay.paused{background:#122027bb;justify-content:center}.overlay.paused .menu{padding:32px;background:#1c2c2ded;border:1px solid #889384;max-width:460px}.overlay.paused h1,.overlay.ended h1{font-size:45px;line-height:1}.overlay.ended{background:linear-gradient(90deg,#13262af2,#152529c9)}.load-error{position:absolute;inset:20%;padding:30px;background:#212e31;border:1px solid #d6a966;z-index:10}
.statusbar{height:38px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 20px;border-top:1px solid #78857e;background:#252f31;font:10px "Courier New",monospace;color:#bdc7b8;gap:16px}.statusbar b{font-size:9px;color:var(--gold);letter-spacing:1.5px;margin-right:10px}.footer-controls{color:#dae0ce;white-space:nowrap}.footer-controls i{font-style:normal;color:#8fa498}.footer-controls>span{margin:0 8px;color:#6e7e78}#timer{color:#c8b785;font-size:12px;letter-spacing:1px}.prototype-note{text-align:center;color:#7c8980;font:9px "Courier New",monospace;margin:10px 0 8px;letter-spacing:1px}
@media(max-width:1100px){.hud{gap:16px;padding:12px;grid-template-columns:1.1fr 1fr 1fr .65fr .9fr}.identity small{display:none}.identity canvas{width:58px;height:58px}.identity{gap:9px}.identity strong{font-size:19px}.hud-label,.stat-heading{font-size:9px;letter-spacing:.5px}.ability-stat kbd{display:none}.edition{font-size:9px;letter-spacing:1px}.controls-guide{gap:14px}}
@media(max-width:760px){body{padding:6px 6px 0}.game-shell{height:calc(100dvh - 34px);min-height:560px}.hud{grid-template-columns:.8fr 1fr 1fr;gap:10px;min-height:126px}.identity{grid-row:span 2}.identity canvas{width:45px;height:45px}.identity strong{font-size:15px}.identity .hud-label{font-size:7px}.chicken-stat{display:flex;align-items:center;gap:6px}.chicken-stat>div{margin:0}.chicken-stat canvas{width:24px;height:24px}.chicken-stat output{font-size:18px}.chicken-stat output span{font-size:12px}.ability-stat{display:flex;align-items:center;gap:8px}.ability-stat>.hud-label{display:none}.ability-stat>button{margin:0;height:27px}.edition{display:none}.titlebar{padding:0 8px}.minimap{width:130px;right:10px;bottom:10px}.minimap canvas{width:120px;height:93px}.minimap>div{font-size:7px;padding:4px}.minimap p{font-size:6px;padding:4px}.area-label{left:10px;bottom:10px;padding:8px;gap:7px}.area-label strong{font-size:10px}.area-label div>span{font-size:8px}.area-marker{height:18px}.overlay{padding:24px}.menu-stamp{margin-bottom:18px;font-size:8px;letter-spacing:1px}h1{font-size:46px}.controls-guide{gap:8px;flex-wrap:wrap}.controls-guide span{font-size:9px}.primary-button{min-width:0;width:100%;font-size:11px}.footer-controls{display:none}.statusbar{padding:0 10px;font-size:9px}.prototype-note{letter-spacing:0;font-size:8px}.toast{font-size:11px;top:15px;max-width:90%;width:max-content}}
.overlay.paused h1,.overlay.ended h1{font-size:clamp(24px,3.1vw,42px);overflow-wrap:anywhere}
@media(prefers-reduced-motion:reduce){.toast{transition:none}}
.interaction{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);max-width:45%;padding:10px 14px;color:var(--cream);background:#263b38f2;border:1px solid var(--gold);font:bold 11px 'Courier New',monospace;z-index:3}
.sheet-overlay{justify-content:center;background:#122027dc;padding:20px}.sheet{width:min(850px,100%);max-height:100%;overflow:auto;background:#203032;border:1px solid #a3ad99;padding:22px;box-shadow:5px 5px #0006}.sheet-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.sheet h2,.race h2{font:bold 23px 'Courier New',monospace;letter-spacing:-.5px;margin:0}.sheet>p{font-size:12px;color:#b8c6b5;line-height:1.6}.campus-chart{width:100%;height:255px;background:#35463c;border:1px solid #687d6c}.campus-chart text{font:9px 'Courier New',monospace;fill:#f1e4bd}.campus-chart .street{fill:#9ba293}.campus-chart .building{fill:#677c73;stroke:#a6b3a0;stroke-width:.15}.campus-chart .current{fill:#8a724e;stroke:#f2d598}.campus-chart .sighting{fill:#d8bc7d}.map-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:14px}.map-entry{padding:9px 10px;border-left:2px solid #6f8b80;background:#17282b;font-size:11px;line-height:1.5}.map-entry strong{color:#e2d5a7;display:block}.map-entry small{display:block;color:#b4c4b4}.map-entry.current{border-color:#e5c581;background:#3a3c30}.inventory-list{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0;list-style:none}.inventory-list li,.quest-entry{border:1px solid #667f70;background:#17292b;padding:13px;font-size:12px;line-height:1.6}.quest-entry{margin:10px 0}.quest-entry strong{color:#dfc88e}.quest-entry p{margin:5px 0;color:#b9c6b6}.sheet h3{font:14px 'Courier New',monospace;color:var(--gold);margin-top:24px}.race{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(600px,90%);padding:28px;background:#192b2def;border:2px solid #b5bba1;box-shadow:5px 5px #0005;z-index:4}.race h2{margin:12px 0 24px;color:#eadcba;font-size:clamp(18px,2vw,26px)}.race-row{margin:18px 0}.race-row label{display:flex;justify-content:space-between;font:bold 12px 'Courier New',monospace;color:#d4ddc6}.race-row progress{width:100%;height:22px;margin-top:6px;accent-color:#c9a764}.race-row progress::-webkit-progress-bar{background:#101f24}.race-row progress::-webkit-progress-value{background:#c9a764}#race-opponent::-webkit-progress-value{background:#b36a60}.race>p{font:13px 'Courier New',monospace;color:#e5c787}.race small{font-size:10px;color:#b7c4b5}.race-keys{display:flex;gap:14px;margin:14px 0}.race-keys button{width:65px;height:45px;background:#354b45;border:1px solid #91a58b;color:#e5dfc9;font-size:27px}.race-keys button.expected{border-color:#efd391;background:#6a6542}.titlebar{gap:14px}.sheet-heading .icon-button{flex-shrink:0}.footer-controls{font-size:9px}
@media(max-width:1100px){.footer-controls{display:none}.window-controls{gap:2px}.window-controls .icon-button span{display:none}.interaction{bottom:12px;max-width:40%;font-size:10px}.map-list{grid-template-columns:repeat(2,minmax(0,1fr))}.sheet{padding:16px}.race{padding:20px}}
@media(max-width:760px){.inventory-list{grid-template-columns:1fr}.sheet h2{font-size:18px}.campus-chart{height:210px}.interaction{bottom:115px;max-width:80%;width:max-content}.map-list{grid-template-columns:1fr 1fr}}
.choir-ticket{position:absolute;top:20px;right:22px;width:270px;padding:14px;background:#1f3031ee;border:1px solid #9da58d;pointer-events:none}.choir-ticket strong{display:block;font:14px 'Courier New',monospace;color:var(--gold);margin-top:8px}.choir-ticket p{font:11px/1.9 'Courier New',monospace;color:#d7ddc9;margin:12px 0}.choir-ticket small{font-size:10px;color:#aebead}@media(max-width:1100px){.choir-ticket{width:245px;top:12px;right:12px;padding:10px}.choir-ticket p{font-size:10px;line-height:1.7}.toast{top:12px}}
#game{image-rendering:auto}.minimap{width:250px}.minimap canvas{width:240px;height:246px;image-rendering:auto}.campus-chart{height:300px}.campus-chart text{font:bold 16px 'Courier New',monospace}.campus-chart .building{stroke-width:2}.campus-link{fill:none;stroke:#d0b879;stroke-width:9;stroke-linejoin:round}.campus-player{fill:#a6f1eb;stroke:#101e25;stroke-width:3}
@media(max-width:1100px){.minimap{width:190px;right:12px;bottom:12px}.minimap canvas{width:180px;height:185px}.minimap>div{font-size:8px;letter-spacing:0}}
@media(max-width:760px){.minimap{width:150px}.minimap canvas{width:140px;height:144px}.campus-chart{height:230px}.minimap>div{font-size:7px}}
.minimap{top:20px;left:22px;bottom:auto;right:auto}@media(max-width:1100px){.minimap{top:12px;left:12px;bottom:auto;right:auto}}
.identity canvas{image-rendering:auto}.identity strong{letter-spacing:1px;font-size:20px}.identity small{max-width:170px;white-space:normal}.hud-label{letter-spacing:.6px}.choosing{justify-content:center;background:#14252aef;padding:18px 24px}.chooser{width:min(1060px,100%);max-height:100%;overflow:auto;padding:24px;background:#203032;border:1px solid #8c9b8d;box-shadow:5px 5px #0005}.chooser h2{font:bold clamp(21px,2.8vw,35px) 'Courier New',monospace;letter-spacing:-1px;margin:10px 0;color:#eee4c9}.chooser>p{font-size:12px;color:#b4c3b7;line-height:1.5}.character-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:18px 0}.character-option{display:flex;gap:12px;text-align:left;color:#e5dfc9;background:#17292c;border:1px solid #5e746d;padding:12px;align-items:flex-start;min-height:155px}.character-option:hover{background:#2d4140}.character-option[aria-pressed=true]{border:2px solid #e2bf7d;padding:11px;background:#3c4234;box-shadow:inset 0 0 0 1px #a3864e}.character-option canvas{width:65px;height:65px;flex-shrink:0;border:1px solid #849b91;image-rendering:auto}.character-copy{display:flex;flex-direction:column;gap:6px;min-width:0}.character-copy strong{font:bold 19px 'Courier New',monospace}.character-ability{font:bold 11px 'Courier New',monospace;color:#dcc18a}.character-description{font-size:11px;line-height:1.5;color:#c0cbbd}.character-copy small{font-size:9px;color:#91a99b;margin-top:auto}.chooser-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;border-top:1px solid #5c7267;padding-top:14px}.chooser-footer p{font:11px/1.6 'Courier New',monospace;color:#d7c995;margin:0}.chooser-footer .primary-button{min-width:245px;padding:12px 16px}.item-icon{width:36px;height:36px;flex-shrink:0;vertical-align:middle;margin-right:10px}.inventory-list li{display:flex;align-items:center}.quest-entry .item-icon{width:26px;height:26px}.chooser .menu-note{margin-bottom:0}.toast.compliment{border-color:#9dba8b;color:#d4e3b9}
@media(max-width:1100px){.chooser{padding:18px}.character-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0}.character-option{min-height:115px;padding:10px}.character-option[aria-pressed=true]{padding:9px}.character-option canvas{width:55px;height:55px}.character-copy strong{font-size:17px}.character-copy{gap:4px}.chooser h2{margin:7px 0}.choosing{padding:12px}.identity strong{font-size:17px}.chooser-footer{padding-top:10px}.chooser>p{margin:8px 0}}
@media(max-width:760px){.chooser{padding:12px}.character-options{grid-template-columns:1fr}.chooser-footer{flex-direction:column;align-items:stretch}.chooser-footer .primary-button{width:100%}.character-option{min-height:100px}.identity strong{font-size:14px}}
.chooser{display:flex;flex-direction:column;overflow:hidden}.chooser>.menu-eyebrow,.chooser>h2,.chooser>p,.chooser-footer{flex-shrink:0}.character-options{overflow-y:auto;min-height:0;flex:0 1 auto;padding:2px;scroll-padding:4px;scrollbar-color:#8f9c87 #1a2b2d}.character-option:focus-visible{outline-offset:-4px}.chooser-footer{background:#203032}.chooser>.menu-note{font-size:10px}
@media(max-width:1100px){.chooser-footer{gap:10px}.chooser>p{font-size:11px}.chooser .menu-note{font-size:9px}}

.campus-chart .wing-letter { font-size: 11px; fill: #fff1b5; font-weight: bold; }

.campus-chart { height: 420px; }

.round-options{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:18px 0;padding:12px 16px;border:1px solid var(--line,#726c57);font-size:13px}.round-options legend{letter-spacing:1px;font-size:11px}.round-options select{background:#283634;color:#eee6cc;border:1px solid #84795c;padding:8px;font:inherit}.debug-option{display:flex;align-items:center;gap:8px}.debug-option input{accent-color:#d4b776;width:17px;height:17px}.score-breakdown{margin:16px 0;padding:12px;border-top:1px solid #80755c;display:grid;gap:6px;font-size:13px}.score-breakdown[hidden],.song-scene[hidden]{display:none}.score-breakdown strong{font-size:20px;color:#dec68f}.song-scene{position:absolute;z-index:7;left:50%;bottom:30px;transform:translateX(-50%);width:min(460px,calc(100% - 40px));background:rgba(29,43,41,.96);border:1px solid #c7ad76;box-shadow:0 8px 28px #0006;text-align:center;padding:18px 24px;pointer-events:none}.song-scene h2{font-size:20px;letter-spacing:1px;margin:8px 0}.song-scene p{font-size:14px;margin:10px 0}.song-scene progress{width:100%;height:8px;accent-color:#d8bf83}.song-scene small{display:block;margin-top:8px;color:#c8c1aa}.map-object-label{font-size:9px!important;fill:#fff!important;paint-order:stroke;stroke:#20312e;stroke-width:2px}.debug-marker{fill:#c895df;stroke:#e7c5f6;stroke-width:1}.radar-marker{fill:#e9b75d;stroke:#f8e0a1;stroke-width:1}

/* The scene stage places singer feet at76% of canvas height. Keep its status
   strip within the bottom18%, including on the340px minimum desktop stage. */
.stage.song-active .minimap,.stage.song-active .area-label{display:none}
.song-scene{bottom:6px;width:min(460px,calc(100% - 24px));padding:6px 12px;box-shadow:0 3px 12px #0004}
.song-scene>.menu-eyebrow{display:none}
.song-scene h2{font-size:13px;line-height:16px;margin:0 0 2px;letter-spacing:.7px}
.song-scene p{font-size:11px;line-height:13px;margin:1px 0}
.song-scene progress{display:block;height:4px;margin:3px 0}
.song-scene small{font-size:9px;line-height:11px;margin:0}

/* Character selection gets the whole visible window, including short/zoomed desktops. */
.overlay.choosing{position:fixed;inset:0;z-index:20;padding:12px;overflow:hidden;align-items:center;justify-content:center;background:#122126f5}
.chooser{height:min(760px,calc(100dvh - 24px));min-height:0;max-height:100%;width:min(1060px,100%);padding:20px;overflow:hidden}
.chooser-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-shrink:0}
.chooser-heading .secondary-button{margin:0;font-size:11px;padding:7px 10px}
.chooser>.round-options{flex-shrink:0}
.character-options{flex:1 1 0;align-content:start;grid-auto-rows:minmax(112px,auto);overflow-y:auto;overscroll-behavior:contain;margin:12px 0}
.chooser-footer{flex-shrink:0}.chooser .menu-note{flex-shrink:0;font-size:9px;line-height:1.4}
@media(max-height:620px){.chooser{padding:12px}.chooser h2{font-size:23px;margin:7px 0}.chooser>p{margin:5px 0;font-size:11px}.chooser .round-options{margin:5px 0;padding:7px 9px}.character-options{margin:7px 0}.character-option{min-height:110px}.chooser-footer{padding-top:8px}.chooser .menu-note{margin-top:7px}.chooser-heading .menu-eyebrow{font-size:9px}}
@media(max-width:760px){.overlay.choosing{padding:8px}.chooser{height:calc(100dvh - 16px);padding:12px}.chooser-footer{gap:6px}.chooser-footer p{font-size:10px}.chooser-footer .primary-button{min-width:0;padding:10px 12px}}

@media(max-height:650px){.game-shell{min-height:0;height:calc(100dvh - 38px)}.stage{min-height:0}.hud{min-height:82px;padding-top:7px;padding-bottom:7px}.identity canvas{width:52px;height:52px}.identity strong{font-size:16px}.prototype-note{margin:7px 0 5px}}

.overlay:not(.choosing){align-items:flex-start}.overlay>.menu{margin-block:auto}

/* Arrival video precedes menus; visibility retains the canvas layout while
   images decode. The page shell remains inert until the one arrival finishes. */
body.arrival-active{overflow:hidden}
body.arrival-active>.game-shell,body.arrival-active>.prototype-note{visibility:hidden}
.arrival-scene{position:fixed;inset:0;z-index:100;background:#070b0d;display:flex;align-items:center;justify-content:center;isolation:isolate}
.arrival-scene video{width:100%;height:100%;object-fit:contain;display:block;background:#070b0d}
.arrival-caption{position:absolute;left:clamp(16px,3vw,48px);right:clamp(16px,3vw,48px);top:clamp(16px,3vw,38px);pointer-events:none;text-shadow:0 1px 5px #000}
.arrival-caption .menu-eyebrow{color:#e8d3a5;font-size:11px;letter-spacing:1.5px}
.arrival-caption p{font:12px/1.5 'Courier New',monospace;color:#e2ddcf;margin:8px 0;max-width:540px}
.arrival-actions{position:absolute;right:clamp(16px,3vw,48px);bottom:clamp(16px,3vw,38px);display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;padding:10px;background:#10191cde;border:1px solid #64736b}
.arrival-actions .secondary-button{margin:0;padding:10px 14px;color:#f0dfb4;background:#243333;border-color:#baa171;font:12px 'Courier New',monospace}
.arrival-actions .secondary-button:hover{background:#3d4b40}
@media(max-width:760px){.arrival-caption .menu-eyebrow{font-size:9px}.arrival-caption p{font-size:10px;max-width:330px}.arrival-actions{left:16px;right:16px;gap:7px}.arrival-actions .secondary-button{font-size:11px;padding:10px}}
