*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#071017;color:#eef3ee;font-family:Arial,Helvetica,sans-serif}body{touch-action:none;overscroll-behavior:none}button{font:inherit;color:#eef3ee;background:#142a35;border:1px solid #486472;border-radius:4px;appearance:none;-webkit-appearance:none;-webkit-text-fill-color:currentColor;cursor:pointer;touch-action:none}button:focus-visible{outline:2px solid #8fdee2;outline-offset:4px}button:disabled{opacity:1;color:#b3c2c8;background:#20333b;border-color:#425860;cursor:wait}[hidden]{display:none!important}canvas{width:100%;height:100%;display:block}header{position:absolute;top:max(22px,env(safe-area-inset-top));left:max(28px,env(safe-area-inset-left));right:max(28px,env(safe-area-inset-right));display:flex;justify-content:space-between;align-items:center;z-index:3;pointer-events:none}header button{pointer-events:auto}#menu{border:0;background:transparent;text-align:left;padding:0;text-shadow:0 2px 14px #000}.brand{display:block;letter-spacing:.22em;font-weight:800;font-size:21px}.subtitle{display:block;letter-spacing:.27em;font-size:9px;color:#bcced3;margin-top:6px}.status{display:flex;align-items:center;gap:10px;font-size:9px;letter-spacing:.16em}.light{height:5px;width:5px;background:#99d5c4;border-radius:50%;box-shadow:0 0 10px #99d5c4}#rain{border:1px solid #6c889344;background:#0a1929aa;border-radius:3px;padding:8px 10px;font-size:9px;letter-spacing:.08em}#selection{position:absolute;inset:0;display:flex;align-items:center;justify-content:space-between;padding:105px 7vw 50px;gap:30px;background:linear-gradient(90deg,#06111cdd, #07151b66 60%,#071017aa);z-index:2}.eyebrow{font-size:10px;letter-spacing:.22em;color:#a9c2c5;margin-bottom:25px}h1{font-size:clamp(38px,5.5vw,78px);line-height:.99;letter-spacing:-.055em;margin:0 0 25px;font-weight:600}.lead{font-size:13px;line-height:1.8;color:#b7c6c9}.choose{width:min(470px,49%)}#cards{display:flex;gap:8px;margin:0 0 14px}.card{width:33.33%;height:245px;border:1px solid #6c889344;border-radius:4px;background:linear-gradient(180deg,#13252a99,#061019dd);padding:12px 6px;position:relative;transition:border-color .2s,background .2s}.card[aria-pressed=true]{border-color:#b6dfe3;background:linear-gradient(180deg,#33555888,#0b202ddd);box-shadow:inset 0 -2px #b6dfe3}.card img{height:170px;width:100%;object-fit:contain;filter:drop-shadow(0 9px 6px #0008)}.card b{display:block;font-size:13px;letter-spacing:.13em;margin-top:9px}.card small{display:block;font-size:8px;letter-spacing:.07em;color:#a1b7bf;margin-top:8px}#enter{width:100%;background:#c4dad4;color:#11252a;border:0;border-radius:3px;text-align:left;font-size:11px;letter-spacing:.16em;font-weight:700;padding:18px}#enter span{float:right;font-size:20px;margin-top:-5px}.fine{font-size:10px;color:#9cb2bd;line-height:1.7}#quick{position:absolute;top:99px;left:max(28px,env(safe-area-inset-left));display:flex;gap:6px}.quick{background:#071722c9;border:1px solid #c5e4e333;border-radius:4px;padding:8px 13px;letter-spacing:.1em;font-size:10px}.quick[aria-pressed=true]{border-color:#c5e4e3;background:#24424ecc}#crew{position:absolute;right:max(28px,env(safe-area-inset-right));top:99px;border:1px solid #c5e4e333;background:#071722c9;padding:8px 12px;border-radius:4px;font-size:9px;letter-spacing:.12em}#crew span{color:#9cdad2;margin-left:8px}#hint{position:absolute;bottom:25px;left:50%;transform:translateX(-50%);font-size:9px;color:#abc1c8;letter-spacing:.12em;white-space:nowrap;text-shadow:0 2px 7px #000}#joystick{position:absolute;left:max(30px,env(safe-area-inset-left));bottom:max(24px,env(safe-area-inset-bottom));width:116px;height:116px;border-radius:50%;border:1px solid #d0f2ee45;background:#0b203366;box-shadow:inset 0 0 35px #c6e9e308;touch-action:none}#joystick:before{content:'';position:absolute;inset:22px;border:1px solid #d0f2ee1a;border-radius:50%}#stick{position:absolute;left:36px;top:36px;width:44px;height:44px;border-radius:50%;background:#b8ddd32b;border:1px solid #c5e4e366;pointer-events:none}#dash{position:absolute;right:max(36px,env(safe-area-inset-right));bottom:max(36px,env(safe-area-inset-bottom));width:90px;height:90px;border-radius:50%;background:#102938bb;border:1px solid #c5e4e388;font-size:12px;letter-spacing:.14em;box-shadow:0 0 25px #0005}#dash span{display:block;font-size:8px;letter-spacing:.1em;color:#9bb8c6;margin-top:8px}#dash.cooling{opacity:.45}#toast{position:absolute;bottom:26%;left:50%;transform:translateX(-50%);text-align:center;pointer-events:none;font-size:11px;letter-spacing:.05em;padding:10px 16px;border-radius:3px;background:#091822dc;opacity:0;transition:opacity .2s}#toast.show{opacity:1}#rotate{display:none;position:absolute;inset:0;z-index:5;background:#091923f5;align-items:center;justify-content:center;flex-direction:column;text-align:center}#rotate>span{font-size:70px;color:#b9dcd2}#rotate h2{font-size:24px;letter-spacing:-.04em}#rotate p{color:#9eb7c3;font-size:13px;line-height:1.8}#portrait{border:1px solid #b9dcd244;background:transparent;border-radius:3px;padding:12px 20px;font-size:11px;margin-top:15px}@media(max-height:550px){header{top:16px;left:22px;right:22px}.brand{font-size:17px}.subtitle{font-size:7px}.status{font-size:8px}#selection{padding:72px 6vw 20px;gap:25px}.eyebrow{font-size:8px;margin-bottom:14px}h1{font-size:44px;margin-bottom:16px}.lead{font-size:11px}.card{height:180px;padding:5px}.card img{height:120px}.card b{font-size:10px;margin-top:4px}.card small{font-size:7px;margin-top:5px}#enter{padding:13px;font-size:9px}.fine{font-size:8px;margin:8px 0}#quick,#crew{top:69px}#quick{left:22px}#crew{right:22px}#hint{bottom:14px;font-size:7px}#joystick{width:100px;height:100px;left:24px;bottom:20px}#stick{left:28px;top:28px}#dash{width:78px;height:78px;right:27px;bottom:26px}.quick{font-size:8px;padding:7px 10px}}@media(orientation:portrait) and (max-width:700px){body:not(.portrait-ok) #rotate{display:flex}#selection{flex-direction:column;justify-content:center;padding:90px 24px 30px;gap:10px}.intro{width:100%}h1{font-size:40px}.lead{font-size:11px}.choose{width:100%}.card{height:190px}.card img{height:135px}.status #district,.light{display:none}#hint{display:none}}@media(hover:hover) and (pointer:fine){#joystick{opacity:.45}#dash{opacity:.65}}
#jump{position:absolute;right:max(47px,env(safe-area-inset-right));bottom:max(140px,calc(env(safe-area-inset-bottom) + 110px));width:68px;height:68px;border-radius:50%;background:#18393cbb;border:1px solid #c5e4e366;font-size:10px;letter-spacing:.13em}#jump span{display:block;font-size:8px;color:#9bb8c6;margin-top:5px}@media(max-height:550px){#jump{right:35px;bottom:117px;width:62px;height:62px}}
#crew-choice{width:100%;margin-bottom:9px;padding:9px;border:1px solid #b6dfe355;background:#152e35cc;font-size:9px;letter-spacing:.12em;border-radius:3px}#crew-choice[aria-pressed=true]{border-color:#b6dfe3;color:#c4dad4}
@media(max-height:550px){#selection{padding:66px 6vw 16px}.card{height:165px}.card img{height:110px}#cards{margin-bottom:8px}.eyebrow{margin-bottom:10px}#crew-choice{padding:7px;margin-bottom:7px}}
html,#city,#hud,#hud *{touch-action:none}
#hud,#hud *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}

/* Keep the mobile document anchored while two thumbs operate the game. */
html{overscroll-behavior:none}body{position:fixed;inset:0;overflow:hidden;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}#city,#hud{position:fixed;inset:0}#hud{pointer-events:none}#hud button,#joystick{pointer-events:auto}
#review-open{position:absolute;right:24px;top:64px;font-size:10px;padding:9px 12px}#review-open-menu{width:100%;margin:8px 0;padding:12px;font-size:11px}#motion-review{position:fixed;inset:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));z-index:100;background:#101e27;border:1px solid #49606c;border-radius:12px;padding:12px;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;gap:8px;touch-action:none}#motion-review[hidden]{display:none}.review-header,.review-options,.review-footer{display:flex;align-items:center;justify-content:space-between;gap:8px}.review-header{font-size:12px;letter-spacing:1px}.review-options{flex-wrap:wrap}.review-options>div{display:flex;gap:4px}#motion-review button{padding:7px 9px;font-size:10px}#motion-review button[aria-pressed=true]{background:#b9d7ce;color:#14232a}#review-canvas{display:block;width:100%;height:100%;min-height:0}.review-footer{justify-content:flex-start;flex-wrap:wrap}.review-footer span{margin-left:auto;font-size:10px;color:#b9d7ce}
#map-choices{display:flex;gap:6px;margin:8px 0}#map-choices button{flex:1;font-size:10px;padding:8px}#map-choices button[aria-pressed=true]{background:#b9d7ce;color:#14232a}
@media(max-height:550px){.choose>.eyebrow{display:none}.card{height:125px}.card img{height:80px}#cards{margin-bottom:6px}#map-choices{margin:4px 0}#map-choices button{padding:7px}#crew-choice,#review-open-menu{display:inline-block;width:calc(50% - 4px);padding:7px;margin:4px 0;font-size:8px}#enter{padding:11px}.fine{font-size:7px;margin:6px 0}#review-open{top:106px;right:22px}}
/* Keep the play screen focused on movement; review/settings remain in menu. */
#quick,#crew,#review-open{display:none}.playing #rain{display:none}@media(pointer:coarse){#hint{display:none}}

/* Explicit contrast for secondary menu controls and native disabled states. */
#map-choices button,#review-open-menu,#motion-review button{color:#eef3ee;background:#142a35;border:1px solid #486472}
#map-choices button[aria-pressed=true],#motion-review button[aria-pressed=true]{color:#14232a;background:#b9d7ce;border-color:#b9d7ce}
#review-open-menu:disabled,#motion-review button:disabled{color:#b3c2c8;background:#20333b;border-color:#425860}
#enter:disabled{color:#20333b;background:#a6b9b4;opacity:1}
#return-menu{display:none;font-size:9px;padding:8px 12px;min-height:34px}.playing #return-menu{display:inline-flex;align-items:center}#music-settings{display:flex;gap:8px;align-items:center;margin:5px 0 8px;font-size:9px}#music-toggle{font-size:9px;padding:7px 9px;white-space:nowrap}#music-volume{flex:1;min-width:40px;width:80px;accent-color:#b9d7ce}#music-level{width:30px;text-align:right}#crew-choice{width:100%;display:block}
/* Build 24: compact, legible menu in both phone orientations. */
body:not(.playing) #rotate{display:none!important}
#selection{padding:82px max(5vw,env(safe-area-inset-right)) 24px;gap:5vw;background:linear-gradient(90deg,#05121de8 0%,#06121a99 58%,#05121bd9 100%),url('assets/city-hotel-v14.webp') center/cover}
.intro{flex:1;max-width:540px}.choose{width:min(490px,52%);flex:none}
h1{font-size:clamp(40px,6vw,76px);font-weight:800;letter-spacing:-.065em;margin-bottom:20px}h1 em{font-style:normal;color:#c2e4df}
.lead{font-size:14px;color:#c6d5d8;line-height:1.6}.eyebrow{color:#b4d9db;font-size:10px;font-weight:700;margin:0 0 14px}
.feature-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}.feature-tags span{border:1px solid #99b9c33b;padding:7px 9px;border-radius:30px;font-size:9px;letter-spacing:.1em;color:#c3d7de;background:#06151ba0}
.card{height:220px;border-radius:12px;background:linear-gradient(145deg,#19343bbf,#081720ee);padding:12px 6px;box-shadow:0 8px 28px #0003}.card[aria-pressed=true]{border-color:#a7e8df;background:linear-gradient(145deg,#355956cc,#0d2935ee);box-shadow:inset 0 -3px #a7e8df,0 8px 24px #0003}.card img{height:152px}.card b{font-size:13px;letter-spacing:.1em}.card small{font-size:9px;color:#bdd1d8;margin-top:5px}
#map-choices{margin:10px 0;gap:8px}#map-choices button{min-height:40px;border-radius:7px;font-size:10px;letter-spacing:.06em}
#menu-settings{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}#crew-choice{min-height:40px;margin:0;padding:8px;font-size:10px;border-radius:7px}#music-settings{min-width:0;gap:5px;margin:0;padding:0 4px;background:#112733aa;border:1px solid #486472;border-radius:7px}#music-settings label{display:none}#music-toggle{border:0;background:transparent;padding:8px 3px;font-size:9px;min-height:38px}#music-volume{min-width:32px;width:42px}#music-level{font-size:9px;width:26px}
#enter{min-height:48px;padding:16px 18px;border-radius:8px;background:#c5e6de;color:#09272b;font-size:12px;letter-spacing:.12em;box-shadow:0 7px 22px #0004}#enter:disabled{color:#203d43;background:#a5c6c1}
#loading-progress{margin:12px 0 10px}.loading-track{height:3px;background:#67818d40;border-radius:5px;overflow:hidden}#load-bar{display:block;width:0;height:100%;background:#a3e5db;transition:width .18s}.loading-caption{display:flex;justify-content:space-between;margin-top:7px;font-size:9px;letter-spacing:.07em;color:#b7d0d8}
.move-guide{display:flex;flex-wrap:wrap;gap:6px 14px;color:#a9c1cc;font-size:10px;line-height:1.6}.move-guide b{color:#e0efeb;font-size:9px;letter-spacing:.05em;margin-right:4px}.fine{font-size:10px;line-height:1.5;color:#aec8d1;margin:8px 0 0}
.playing #return-menu{min-height:42px;border-radius:7px;padding:10px 14px;background:#091d2ce0}.playing .subtitle{font-size:8px}.playing #district{color:#c3d8dc}
#dash{background:linear-gradient(150deg,#1a3e4ee8,#102532df);border-color:#b2dadb99;box-shadow:0 6px 22px #0005}#jump{background:linear-gradient(150deg,#294c4fe8,#122d35df);border-color:#b2dadb77}#toast{z-index:4;border:1px solid #aacbd044;max-width:75%;font-size:11px;line-height:1.35}
@media(orientation:landscape) and (max-height:550px){
 header{top:max(12px,env(safe-area-inset-top));left:max(20px,env(safe-area-inset-left));right:max(20px,env(safe-area-inset-right))}.brand{font-size:17px}
 #selection{padding:62px 5vw 12px;gap:4vw;align-items:center}.intro{max-width:40%}.choose{width:55%}.choose>.eyebrow{display:none}
 h1{font-size:clamp(32px,5.7vw,52px);margin-bottom:12px}.lead{font-size:11px}.intro>.eyebrow{font-size:8px;margin-bottom:12px}.feature-tags{margin-top:14px;gap:5px}.feature-tags span{font-size:7px;padding:5px 7px}
 .card{height:116px;border-radius:8px;padding:4px}.card img{height:76px}.card b{font-size:11px;margin-top:3px}.card small{font-size:8px;margin-top:3px}#cards{margin-bottom:6px}
 #map-choices{margin:6px 0}#map-choices button{min-height:32px;padding:6px;font-size:9px}#menu-settings{margin-bottom:6px}#crew-choice{min-height:32px;font-size:9px}#music-toggle{min-height:30px}
 #enter{min-height:38px;padding:11px 14px;font-size:11px}#loading-progress{margin:8px 0 6px}.loading-caption{font-size:8px;margin-top:5px}.move-guide{font-size:8px;gap:2px 10px}.move-guide b{font-size:8px}.fine{font-size:8px;margin-top:5px}
}
@media(orientation:portrait) and (max-width:700px){
 header{top:max(18px,env(safe-area-inset-top));left:22px;right:22px}.brand{font-size:19px}.subtitle{font-size:8px}
 #selection{flex-direction:column;justify-content:center;padding:82px 22px max(18px,env(safe-area-inset-bottom));gap:22px}.intro{max-width:none;width:100%;flex:none}.choose{width:100%;max-width:460px}
 h1{font-size:43px;margin-bottom:12px}.lead{font-size:12px}.intro>.eyebrow{font-size:9px;margin-bottom:12px}.feature-tags{display:none}.choose>.eyebrow{font-size:9px;margin-bottom:10px}
 .card{height:clamp(130px,22vh,195px)}.card img{height:calc(clamp(130px,22vh,195px) - 60px)}.card b{font-size:12px}.card small{font-size:8px}#map-choices button{font-size:9px}
 #menu-settings{gap:7px}#crew-choice{font-size:9px}.move-guide{font-size:9px;gap:5px 10px}.move-guide b{font-size:8px}.fine{font-size:9px}
}
@media(orientation:portrait) and (max-height:700px){#selection{padding-top:72px;gap:12px}h1{font-size:31px;margin-bottom:7px}.lead{font-size:11px;line-height:1.4}.intro>.eyebrow{margin-bottom:8px}.choose>.eyebrow{display:none}.card{padding:7px 3px}#map-choices{margin:7px 0}#map-choices button,#crew-choice{min-height:34px}#music-toggle{min-height:32px}#enter{min-height:40px;padding:11px}#loading-progress{margin:8px 0}.move-guide{font-size:8px}.fine{font-size:8px}}
@media(orientation:landscape) and (max-height:350px){.card{height:93px}.card img{height:57px}.card small{margin-top:1px;font-size:7px}.feature-tags{display:none}.fine{font-size:7px}.move-guide{font-size:7px}.move-guide b{font-size:7px}#selection{padding-top:56px}}
@media(orientation:landscape) and (max-height:550px){.fine{display:none}#loading-progress{margin:6px 0 5px}.loading-caption{margin-top:3px}.move-guide{line-height:1.35}}
@media(orientation:portrait) and (max-height:700px){.intro .lead{display:none}}
@media(orientation:portrait) and (max-height:600px){.card{height:112px}.card img{height:60px}.card b{font-size:10px}.card small{font-size:7px}.fine{display:none}#menu-settings{margin-bottom:7px}#crew-choice,#music-toggle{min-height:32px}#loading-progress{margin:6px 0}.move-guide{font-size:7px;line-height:1.25}}
@media(orientation:portrait) and (max-width:380px){#music-level{display:none}#music-settings{gap:4px}#music-toggle{font-size:8px}.card small{font-size:7px}}
/* Build32: short story prompts and dialogue, keeping the two-action HUD. */
#skip-intro{display:block;width:100%;min-height:34px;margin-top:7px;font-size:10px;letter-spacing:.05em;background:#102934;color:#d7e8e8;border-color:#5d818b}
#intro-objective{position:absolute;top:max(82px,calc(env(safe-area-inset-top) + 65px));left:50%;transform:translateX(-50%);width:min(510px,70vw);padding:10px 14px;background:#071821e8;border:1px solid #99c4c333;border-radius:7px;z-index:4;pointer-events:none;text-align:center;box-shadow:0 5px 20px #0004}#intro-title{display:block;font-size:11px;letter-spacing:.1em;color:#d9e9df}#intro-help{display:block;font-size:11px;line-height:1.4;color:#b8ccd2;margin-top:5px}
#arrival-skip{position:absolute;right:max(26px,env(safe-area-inset-right));top:78px;z-index:5;min-height:38px;padding:8px 12px;font-size:10px;background:#071821e8}
#dialogue{position:absolute;inset:0;background:#02091065;z-index:12;display:flex;align-items:flex-end;justify-content:center;padding:24px max(24px,env(safe-area-inset-right));touch-action:none}.dialogue-card{display:flex;gap:20px;align-items:center;width:min(650px,90vw);background:#071b24f2;border:1px solid #88aaa388;border-radius:10px;padding:18px 22px;box-shadow:0 8px 40px #0007}.dialogue-card>div{flex:1;min-width:0}#dialogue-art{width:110px;max-height:155px;object-fit:contain;flex:none}#dialogue-speaker{color:#c9d9ae;font-weight:700;letter-spacing:.12em;font-size:11px;margin:0 0 10px}#dialogue-line{font-size:15px;line-height:1.5;color:#e2eeeb;margin:0 0 14px}#dialogue-next{float:right;min-height:38px;min-width:88px;background:#bfdfd5;color:#0a2730;border-color:#bfdfd5;font-size:11px;font-weight:700}
#intro-continue{position:absolute;left:50%;bottom:max(40px,env(safe-area-inset-bottom));transform:translateX(-50%);min-height:48px;padding:12px 20px;background:#bfdfd5;color:#0a2730;border-color:#bfdfd5;font-size:12px;z-index:6;white-space:nowrap}
@media(orientation:landscape) and (max-height:550px){#intro-objective{top:63px;width:min(490px,62vw);padding:7px 11px}#intro-help{font-size:10px;margin-top:4px}#intro-title{font-size:10px}#arrival-skip{top:63px}#dialogue{padding:12px 20px}.dialogue-card{padding:12px 16px;gap:14px;width:min(610px,82vw)}#dialogue-art{width:78px;max-height:115px}#dialogue-line{font-size:13px;margin-bottom:10px}#dialogue-speaker{margin-bottom:7px}#skip-intro{min-height:30px;margin-top:5px;font-size:9px}}
@media(orientation:portrait){#intro-objective{width:88vw;top:82px}.dialogue-card{padding:15px;gap:12px}#dialogue-art{width:70px;max-height:125px}#dialogue-line{font-size:13px}#intro-continue{font-size:10px;max-width:90vw}}
@media(orientation:landscape) and (max-height:550px){.card{height:104px}.card img{height:64px}#map-choices button{min-height:28px;padding:5px}#enter{min-height:34px;padding:9px 14px}#skip-intro{min-height:28px}#loading-progress{margin-top:5px}}

/* Build33: compact, dismissible help and readable speaker portraits. */
#intro-objective{left:max(16px,env(safe-area-inset-left));top:70px;transform:none;width:260px;max-width:42vw;text-align:left;padding:9px 12px;pointer-events:auto;cursor:pointer;border-color:#a8ba8a44;background:#071821e0;box-shadow:0 3px 12px #0003}#intro-objective small{display:block;font-size:8px;letter-spacing:.1em;color:#bdc8a2;margin-top:6px}#intro-help{font-size:11px;line-height:1.4}#intro-title{font-size:10px;line-height:1.3}
#intro-help-toggle{position:absolute;left:max(16px,env(safe-area-inset-left));top:70px;z-index:4;min-width:52px;min-height:32px;padding:7px 10px;font-size:9px;background:#071821db;border-color:#b5c49566}
.tutorial-cue{outline:3px solid #dfbf64;outline-offset:5px;box-shadow:0 0 0 9px #dfbf641c!important;animation:tutorial-ring 1.5s ease-in-out infinite}@keyframes tutorial-ring{50%{outline-color:#ffe5a0;outline-offset:8px}}@media(prefers-reduced-motion:reduce){.tutorial-cue{animation:none}}
#dialogue{background:transparent;padding:14px 20px;align-items:flex-end}.dialogue-card{gap:12px;padding:12px 16px;width:min(570px,90vw);align-items:center}#dialogue-line{font-size:13px;line-height:1.45;margin-bottom:10px}#dialogue-speaker{font-size:10px;margin-bottom:6px}#dialogue-portrait{width:64px;height:76px;flex:0 0 64px;border:1px solid #8dafa44d;border-radius:6px;background-color:#102833;background-repeat:no-repeat;align-self:flex-start;overflow:hidden}#dialogue-portrait[data-character=moz]{background-image:url('assets/moz/0.png');background-size:250% auto;background-position:75% 0}#dialogue-portrait[data-character=vesper]{background-image:url('assets/vesper/0.png');background-size:240% auto;background-position:80% 0}#dialogue-portrait[data-character=nox]{background-image:url('assets/nox/0.png');background-size:210% auto;background-position:50% 0}#dialogue-art{width:65px;max-height:92px}
@media(orientation:landscape) and (max-height:550px){#intro-objective{top:62px;max-width:31vw;padding:7px 10px}#intro-help-toggle{top:62px}#intro-help{font-size:10px}.dialogue-card{padding:10px 13px;max-width:80vw}#dialogue-portrait{height:68px}#dialogue-line{font-size:12px}#dialogue-art{width:52px;max-height:72px}}
@media(orientation:portrait){#intro-objective{top:76px;left:12px;width:min(290px,calc(100vw - 24px));max-width:none;padding:8px 11px}#intro-help-toggle{top:76px;left:12px}#intro-help{font-size:11px}#intro-objective small{display:inline;margin-left:8px}#dialogue{padding:12px}.dialogue-card{width:100%;max-width:none;padding:12px;gap:10px}#dialogue-portrait{width:52px;flex-basis:52px;height:64px}#dialogue-art{display:none}#dialogue-line{font-size:12px}#joystick{width:100px;height:100px;left:18px;bottom:max(22px,env(safe-area-inset-bottom))}#stick{left:28px;top:28px}#dash{width:74px;height:74px;right:20px;bottom:max(28px,env(safe-area-inset-bottom))}#jump{width:64px;height:64px;right:24px;bottom:126px}.status #rain{display:none}.subtitle{letter-spacing:.12em}}

/* Build34: restrained title-screen polish, retaining the rainy street palette. */
#selection h1{letter-spacing:-.055em;line-height:1.04;text-wrap:balance;text-shadow:0 4px 28px #0005}
#selection h1 em{color:#d7d8b9}
.intro>.eyebrow{border-left:2px solid #c4b77c;padding-left:10px}
#selection .choose{padding:18px;border:1px solid #9db6b52b;border-radius:12px;background:linear-gradient(155deg,#0a2029b8,#05131cc9);box-shadow:0 16px 48px #0003}
#skip-intro{border-color:#71919688;background:#112b34bb;border-radius:7px;color:#d5e3df}
#selection button:focus-visible{outline-color:#e3cd8c}
@media(hover:hover){#enter:not(:disabled):hover{background:#dfede2}#skip-intro:not(:disabled):hover{background:#23434a}.card:hover{border-color:#b6d0ca}}
@media(orientation:landscape) and (max-height:550px){#selection .choose{padding:9px 12px;border-radius:9px}#selection h1{font-size:clamp(30px,4.9vw,47px)}}
@media(orientation:portrait) and (max-width:700px){#selection .choose{padding:12px}#selection h1{font-size:clamp(31px,10vw,43px)}#selection{gap:16px}}
@media(orientation:portrait) and (max-height:700px){#selection .choose{padding:9px}#selection h1{font-size:31px}#selection{gap:10px}}

/* A full-width volume track for precise touch adjustment. */
#music-settings{grid-column:1/-1;min-height:40px;padding:0 10px;gap:10px}
#crew-choice{grid-column:1/-1}
#music-volume{appearance:none;-webkit-appearance:none;flex:1;width:100%;min-width:100px;height:36px;margin:0;background:transparent;cursor:pointer;touch-action:pan-x}
#music-volume::-webkit-slider-runnable-track{height:4px;background:#608280;border-radius:4px}
#music-volume::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:22px;height:22px;margin-top:-9px;border-radius:50%;border:2px solid #d9e6db;background:#afcfc5;box-shadow:0 2px 7px #0006}
#music-volume::-moz-range-track{height:4px;background:#608280;border-radius:4px}
#music-volume::-moz-range-thumb{width:19px;height:19px;border-radius:50%;border:2px solid #d9e6db;background:#afcfc5}
#music-volume:focus-visible{outline:2px solid #e3cd8c;outline-offset:2px;border-radius:5px}
#music-level{display:block!important;min-width:33px;font-variant-numeric:tabular-nums}
@media(orientation:landscape) and (max-height:550px){#selection .choose{padding-top:6px;padding-bottom:6px}.card{height:90px}.card img{height:52px}#map-choices{margin:4px 0}#menu-settings{gap:4px}#music-settings{min-height:34px}#music-volume{height:32px}#crew-choice{min-height:26px;padding:5px}#skip-intro{margin-top:4px}}
@media(orientation:portrait) and (max-height:700px){.card{height:114px}.card img{height:61px}#music-settings{min-height:36px}.move-guide{line-height:1.3}}
@media(orientation:landscape) and (max-height:350px){#selection{padding-top:52px;padding-bottom:8px}.card{height:70px}.card img{height:38px}.card b{font-size:9px}.card small{display:none}.move-guide{display:none}}

.move-guide .air-combo{flex-basis:100%;color:#c3d4d6}.move-guide .air-combo b{color:#e0d4ad}
@media(orientation:landscape) and (max-height:350px){.move-guide{display:block;font-size:7px;line-height:1.25;margin-top:3px}.move-guide>span:not(.air-combo){display:none}.move-guide .air-combo{display:block}#selection .choose{padding-top:3px;padding-bottom:3px}}

#poster-inspect{position:absolute;left:50%;transform:translateX(-50%);bottom:24px;z-index:5;min-height:42px;padding:10px 16px;font-size:10px;letter-spacing:.08em;background:#13262bed;border-color:#afa88588;color:#dcd8b9;border-radius:5px}
#poster-view{position:fixed;inset:0;z-index:25;display:flex;align-items:center;justify-content:center;padding:max(14px,env(safe-area-inset-top)) 14px;background:#030b12ce}
.poster-card{position:relative;max-width:440px;width:100%;max-height:94dvh;padding:22px;background:#26332f;border:1px solid #758073;border-radius:5px;box-shadow:0 12px 55px #0008;text-align:center}
#poster-close{position:absolute;right:8px;top:8px;min-height:42px;padding:10px;font-size:10px;background:#14231fe8;color:#e4e4d0;border-color:#7b8674}
.poster-card .eyebrow{margin:28px 0 9px;color:#a9b2a0;font-size:8px}.poster-card h2{margin:0;color:#d9d9c6;font-size:16px;letter-spacing:.08em}
#poster-image{width:auto;max-width:100%;height:min(56dvh,440px);margin:4px auto;object-fit:contain}
#poster-description{margin:8px auto 0;max-width:320px;font-size:12px;line-height:1.5;color:#c4d1c5}
@media(orientation:landscape) and (max-height:550px){.poster-card{width:560px;max-width:90vw;display:grid;grid-template-columns:42% 1fr;column-gap:18px;align-items:center;padding:14px 22px}.poster-card .eyebrow{grid-column:2;margin:30px 0 0}.poster-card h2{grid-column:2;font-size:14px}#poster-image{grid-column:1;grid-row:1/5;height:78dvh;max-height:295px;margin:0 auto}#poster-description{grid-column:2;font-size:11px;margin-bottom:14px}#poster-inspect{bottom:14px;font-size:9px;min-height:36px}}

/* Build36: scroll the menu inside the visible viewport; keep gameplay anchored. */
html,body{touch-action:pan-y}body.playing{touch-action:none}
#selection{display:block;padding:0!important;height:100dvh;max-height:100%;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;scroll-padding-block:76px 24px;scrollbar-width:thin;scrollbar-color:#6f938a #07151b}
.menu-content{min-height:100%;display:flex;align-items:center;justify-content:space-between;gap:5vw;padding:82px max(5vw,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(5vw,env(safe-area-inset-left))}
.menu-content>.intro,.menu-content>.choose{flex-shrink:0}
#selection button{touch-action:pan-y}#selection #music-volume{touch-action:pan-x}
#selection .move-guide{display:flex;font-size:10px;line-height:1.5;margin-top:10px}#selection .move-guide>span{display:inline}#selection .move-guide .air-combo{display:block;flex-basis:100%}#selection .fine{display:block;margin-top:10px}
@media(orientation:landscape) and (max-height:550px){.menu-content{gap:4vw;padding:62px max(5vw,env(safe-area-inset-right)) max(22px,env(safe-area-inset-bottom)) max(5vw,env(safe-area-inset-left));align-items:center}#selection .move-guide{font-size:9px}#selection .fine{font-size:8px}}
@media(orientation:landscape) and (max-height:350px){.menu-content{padding-top:56px}#selection .move-guide{font-size:9px;line-height:1.5}#selection .choose{padding:10px 12px}}
@media(orientation:portrait) and (max-width:700px){.menu-content{flex-direction:column;justify-content:center;gap:16px;padding:82px max(22px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(22px,env(safe-area-inset-left))}}
@media(orientation:portrait) and (max-height:700px){.menu-content{padding-top:72px;gap:12px}}
@media(orientation:landscape) and (max-height:550px){#selection .card{height:104px}#selection .card img{height:64px}#selection .card b{font-size:11px}#selection .card small{display:block;font-size:8px}}

/* Build37: brief, dismissible notices at the lower edge, clear of combat. */
#toast{position:fixed;top:auto;bottom:max(12px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:max-content;max-width:min(420px,calc(100vw - 300px));padding:8px 12px;font-size:10px;line-height:1.35;background:#071822d9;border-color:#91b4ad40;box-shadow:0 2px 9px #0003;pointer-events:none;cursor:pointer;transition:opacity .12s}
#toast.show{pointer-events:auto}
body:has(#toast.show) #hint{visibility:hidden}
@media(orientation:portrait){#toast{max-width:calc(100vw - 250px);min-width:0;padding:7px 9px;font-size:9px}}

#talk-nox{position:fixed;z-index:12;left:50%;bottom:max(26px,env(safe-area-inset-bottom));transform:translateX(-50%);padding:14px 22px;background:#162a31;border:1px solid #d5b979;color:#f3dfb3;font:700 12px sans-serif;letter-spacing:.08em;min-height:44px;box-shadow:0 4px 24px #0008}#talk-nox:focus-visible{outline:2px solid #f3dfb3;outline-offset:4px}

#scene-testing{margin:14px 0;text-align:left;border:1px solid #40535b;border-radius:6px;background:#081820c9}#scene-testing summary{padding:13px;cursor:pointer;color:#d8c48b;font-size:11px;letter-spacing:.1em;min-height:44px;box-sizing:border-box}#scene-shortcuts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:0 10px 10px}#scene-shortcuts button{min-height:44px;padding:10px 8px;color:#e0e8e7;background:#152931;border:1px solid #42565c;border-radius:4px;text-align:left;font-size:12px;touch-action:pan-y}#scene-shortcuts button:disabled{opacity:.45}#scene-shortcuts button:focus-visible{outline:2px solid #e4c783;outline-offset:2px}

#level-preview{margin:12px 0;color:#c6d5d4;text-align:left}#level-preview summary{padding:12px;border:1px solid #3d515a;border-radius:6px;cursor:pointer;font-size:12px;letter-spacing:1px}#level-gallery{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}.level-caption{font-size:12px;color:#a9b8b9;line-height:1.5}.level-card{padding:0 0 12px;overflow:hidden;text-align:left;background:#0b1921;border:1px solid #3c4e56;border-radius:6px;color:#e5e5d8;touch-action:pan-y}.level-card img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}.level-card strong,.level-card small,.level-card span{display:block;margin:8px 10px 0}.level-card strong{font-size:13px}.level-card small{color:#b5a078;font-size:10px;letter-spacing:1px}.level-card span{font-size:9px;color:#a0b3b5}#route-objective{position:fixed;top:63px;left:18px;max-width:min(440px,65vw);padding:9px 12px;background:#07141cda;border-left:2px solid #bba575;color:#e1d8bf;font:12px/1.4 sans-serif;pointer-events:none;z-index:5}#route-objective[hidden]{display:none}@media(max-height:500px){#route-objective{top:42px;font-size:10px;padding:6px 9px;max-width:50vw}}

#route-results{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:20px;background:#020a12d9;overflow:auto}#route-results[hidden]{display:none}.route-result-card{width:min(480px,90vw);box-sizing:border-box;padding:26px;border:1px solid #8d9e9470;border-radius:8px;background:#0a1b25;color:#e1e7df;text-align:center}.route-result-card h2{font-size:28px;letter-spacing:.08em;margin:8px 0 16px}.route-result-card p{font-size:13px;line-height:1.7}.route-result-card strong{display:block;font-size:16px;color:#e2c18b;margin:18px 0}.route-result-card .result-note{color:#a8b6ba}.route-result-card button{display:block;width:100%;min-height:44px;margin-top:10px;padding:12px;border:1px solid #839b9e;border-radius:4px;background:#182f3b;color:#e0e8e3;font-size:12px;letter-spacing:.09em}.route-result-card #route-next{background:#bedbd2;color:#0a232b;border-color:#bedbd2}@media(max-height:430px){.route-result-card{padding:15px}.route-result-card h2{font-size:22px;margin:4px 0 8px}.route-result-card strong{margin:8px 0}.route-result-card p{margin:6px 0;font-size:11px}.route-result-card button{margin-top:6px}}

/* Small-phone play: separate objectives, actions and notifications. */
@media(orientation:portrait){
 #route-objective{top:112px;left:12px;max-width:calc(100vw - 48px);font-size:11px;padding:7px 10px}
 #toast{bottom:208px;max-width:calc(100vw - 40px);font-size:10px}
 #quick{left:12px;top:68px}#crew{right:12px;top:68px}
 #jump{right:max(20px,env(safe-area-inset-right));bottom:122px}
 #joystick{left:max(16px,env(safe-area-inset-left))}
 .route-result-card{max-width:calc(100vw - 32px)}
}
@media(max-width:350px) and (orientation:portrait){header{left:12px;right:12px}.brand{font-size:18px}.subtitle{font-size:7px}.quick{padding:8px;min-height:44px}#crew{font-size:8px;padding:8px}#scene-shortcuts{grid-template-columns:1fr}.level-card strong{font-size:11px}}
@media(orientation:landscape) and (max-height:390px){header{top:max(10px,env(safe-area-inset-top));left:max(18px,env(safe-area-inset-left));right:max(18px,env(safe-area-inset-right))}#route-objective{top:43px;max-width:45vw;font-size:10px}#joystick{left:max(18px,env(safe-area-inset-left));bottom:max(16px,env(safe-area-inset-bottom))}#jump{right:max(24px,env(safe-area-inset-right));bottom:116px}#dash{right:max(24px,env(safe-area-inset-right));bottom:max(22px,env(safe-area-inset-bottom))}#return-menu{min-width:44px;min-height:44px}#toast{max-width:calc(100vw - 280px)}}

#health{position:fixed;top:calc(env(safe-area-inset-top) + 54px);left:18px;width:170px;z-index:6;padding:8px 10px;background:#0a151ee8;border:1px solid #59636b;color:#d5c9a8;font:10px sans-serif;letter-spacing:1px;pointer-events:none}.health-track{height:6px;background:#28363d;margin-top:6px}#health-fill{display:block;height:100%;background:#a5b9ac;transition:width .15s}#health[data-low=true] #health-fill{background:#c56d50}#health[data-low=true]{border-color:#c56d50}#death-scene{position:fixed;inset:0;z-index:24;background:#061019dc;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#d5c9a8;text-align:center;padding:24px}#death-scene[hidden],#health[hidden]{display:none}#death-scene strong{font-size:28px;letter-spacing:4px}#death-scene p{font-size:12px}@media(max-width:500px){#health{top:calc(env(safe-area-inset-top) + 72px);left:12px;width:145px}}

#boss-portrait{width:64px;height:78px;flex:0 0 64px;border:1px solid #8dafa44d;border-radius:6px;background:#102833}

#health{left:auto;right:max(18px,env(safe-area-inset-right));top:76px}@media(orientation:portrait){#health{left:12px;right:auto;top:72px}}

#ending-video{position:fixed;inset:0;background:#000;z-index:140;display:grid;place-items:center}#ending-video[hidden]{display:none}#departure-video{width:100%;height:100%;object-fit:contain;opacity:0;transition:opacity .75s ease}#ending-video.ready #departure-video{opacity:1}.ending-controls{position:absolute;right:max(20px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom));display:flex;gap:12px;align-items:center;flex-wrap:wrap;max-width:90%}.ending-controls button{background:#09141de6;border:1px solid #b6a77d;color:#e8d8af;padding:12px 18px}.ending-controls p{color:#d9d5c9;font-size:12px}#best-runs{border-top:1px solid #48545b;margin-top:18px;padding-top:14px;text-align:left}#score-name{width:140px;max-width:50%;background:#0a1821;color:#eef0df;border:1px solid #6e7474;padding:10px;margin:6px}#score-status{font-size:12px;color:#b8c8c6}#score-list{list-style:none;padding:0;font-size:13px;line-height:1.8}#run-clock{position:fixed;top:max(68px,calc(env(safe-area-inset-top) + 60px));right:18px;color:#d8ded5;background:#06121bc9;padding:5px 9px;font:12px monospace;pointer-events:none;z-index:12}.route-result-card{max-height:85dvh;overflow-y:auto}#route-results{overflow-y:auto}@media(prefers-reduced-motion:reduce){#departure-video{transition:none}}

#route-results,#route-results *{touch-action:pan-y}#score-name{font-size:16px}.ending-controls button{touch-action:manipulation}

#start-intro{display:block;width:100%;padding:12px 16px;margin:10px 0;background:#101f29;color:#ddded0;border:1px solid #64716c;cursor:pointer}#start-intro:disabled{opacity:.4}
