@font-face{font-family:Nunito;src:url('assets/NunitoRegular.ttf')}*{box-sizing:border-box}body{margin:0;background:#0b1418;color:#f7e6c1;font:16px Nunito,system-ui}header{display:flex;align-items:center;justify-content:space-between;padding:13px 24px;border-bottom:1px solid #78623a;background:#122128}header span{font-weight:bold;letter-spacing:2px}header small{display:block;font:12px Nunito;letter-spacing:0;color:#bdcbc9}a{color:#d5ba84;text-decoration:none}button,select{font:inherit;border:1px solid #c6a163;background:#233238;color:#ffe7b2;border-radius:6px;padding:9px 16px;cursor:pointer}button:hover{background:#394b50}button:disabled{opacity:.5;cursor:wait}main{max-width:1600px;margin:0 auto}.viewport{position:relative;aspect-ratio:16/9;background:#10252b url('assets/woodland.webp') center/contain no-repeat;overflow:hidden}#scene,#scene canvas{position:absolute;inset:0;width:100%;height:100%;display:block}.levelbar{position:absolute;top:12px;left:20px;right:20px;display:flex;align-items:center;justify-content:space-between;font-weight:bold;font-size:14px;letter-spacing:1px;padding:5px 14px;background:#14242bea;border:1px solid #c8a665;border-radius:7px}.levelbar button{font-size:12px;padding:5px 12px}kbd{font:inherit;color:#a9b8ba}.overlay{position:absolute;inset:0;display:grid;place-items:center;background:#06101796;backdrop-filter:blur(3px);z-index:5}.panel{padding:28px 38px;max-width:550px;max-height:96%;overflow:auto;text-align:center;background:linear-gradient(135deg,#1f3238f5,#0e1c22f5);border:2px solid #d8b575;border-radius:15px;box-shadow:0 25px 80px #0008}.eyebrow{font-size:10px;letter-spacing:4px;color:#7ddddf}h1{font:700 clamp(30px,4vw,55px) Georgia;margin:15px 0;color:#f3cf8c}h2{font-family:Georgia}.panel p{line-height:1.65;color:#cedad6}.panel label{display:block;font-size:12px;margin:12px}.panel select{display:block;width:100%;margin-bottom:14px}.primary{display:block;width:100%;background:#c69e55;color:#0b1920;font-weight:bold;padding:14px}.primary:hover{background:#f0ca83}.small{font-size:12px!important;color:#aebec2!important}.rail{position:absolute;bottom:12px;left:20px;right:20px;display:flex;justify-content:center;gap:27px;padding:7px;background:#12252beb;border:1px solid #d0ab66;border-radius:8px;font-size:16px;min-height:44px}.rail span{display:flex;gap:7px;align-items:center}.rail .icon{font-size:22px;color:#81e0e8}#toast{position:absolute;bottom:65px;left:50%;transform:translateX(-50%);color:#fbe7b5;text-align:center;font-size:14px;background:#10242bea;padding:7px 16px;border-radius:5px;pointer-events:none;display:none}footer{text-align:center;padding:15px 20px;color:#acbdc0;font-size:13px}footer button{font-size:12px;margin-left:12px}#version{font-size:11px;display:block;margin-top:8px}.touch{display:none;gap:10px;justify-content:center;padding:10px}dialog{background:#172a32;color:#f7e4ba;border:1px solid #c6a666;border-radius:12px;max-width:500px}dialog::backdrop{background:#0009}textarea{display:block;width:100%;height:160px;padding:12px;margin:15px 0;background:#0c1b20;color:white;border:1px solid #78949b;font:inherit}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid #78e2e5;outline-offset:3px}@media(pointer:coarse){.touch{display:flex}}@media(max-width:650px){header{padding:9px;font-size:12px}header small{font-size:9px}.levelbar{top:4px;left:5px;right:5px;font-size:9px;padding:3px 5px}.levelbar button{padding:3px}.rail{left:5px;right:5px;bottom:4px;gap:9px;min-height:25px;font-size:11px;padding:3px}.rail .icon{font-size:15px}.panel{padding:12px 20px;max-width:390px}.panel h1{font-size:30px}.panel p{margin:8px 0}.panel .small{font-size:9px!important}.panel select{padding:4px;margin-bottom:7px}.primary{padding:6px}#toast{bottom:32px;font-size:10px}footer{font-size:11px}}[hidden]{display:none!important}

.rail img.icon{width:30px;height:30px;object-fit:contain}@media(max-width:650px){.rail img.icon{width:20px;height:20px}}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.solo-stage{position:absolute;inset:0}
.menu-panel .solo-hotspot{position:absolute;width:37.32%;height:28.27%;background:transparent;border:3px solid transparent;box-shadow:none;border-radius:15px;padding:0;min-height:0}
.menu-panel .solo-hotspot:hover,.menu-panel .solo-hotspot[aria-pressed=true],.menu-panel .solo-hotspot:focus-visible{background:transparent;border-color:#ffe4a0;box-shadow:0 0 18px #ffb9399c;outline-offset:3px}
.solo-0,.solo-2{left:12.08%}.solo-1,.solo-3{left:50.60%}.solo-0,.solo-1{top:26.14%}.solo-2,.solo-3{top:56.96%}
.solo-record{position:absolute;left:23%;top:86%;width:53%;height:12%;display:grid;align-items:center;background:linear-gradient(#f1d59c,#b98f50);color:#24190c;border-radius:6px;font:700 clamp(7px,1vw,13px) Nunito;line-height:1;white-space:nowrap;overflow:hidden}
.menu-panel .solo-back{position:absolute;left:1.5%;top:91.6%;height:5.7%;width:19%;background:transparent;border:2px solid transparent;box-shadow:none;min-height:0;padding:0}
.menu-panel .solo-back:hover{border-color:#ffe4a0;background:transparent}
.menu-panel .solo-save{position:absolute;left:38%;top:92.3%;height:5.2%;width:27%;padding:0;font-size:clamp(8px,1vw,14px);min-height:0}
#run-clock{font-variant-numeric:tabular-nums;color:#85e3ee}
@media(max-width:650px){.solo-record{font-size:6px}.menu-panel .solo-hotspot{border-width:2px;border-radius:5px}.menu-panel .solo-save{font-size:8px}}

@font-face{font-family:SkyCity;src:url('assets/menus/SkyCityBold.ttf')}
.overlay[data-menu]{background:#101a22 center/contain no-repeat;backdrop-filter:none}
.overlay[data-menu=main]{background-image:url('assets/menus/main.webp')}
.overlay[data-menu=solo]{background-image:url('assets/menus/solo.webp')}
.overlay[data-menu=character],.overlay[data-menu=wardrobe],.overlay[data-menu=options],.overlay[data-menu=extras],.overlay[data-menu=controls],.overlay[data-menu=tutorial],.overlay[data-menu=credits],.overlay[data-menu=scoring],.overlay[data-menu=achievements],.overlay[data-menu=saves]{background-image:url('assets/menus/character.webp')}
.overlay[data-menu=pause]{background-image:url('assets/menus/pause.webp')}
.overlay[data-menu=multiplayer]{background-image:url('assets/menus/multiplayer.webp')}
.menu-panel{width:100%;max-width:none;height:100%;max-height:none;padding:20px;background:transparent;border:0;border-radius:0;box-shadow:none;display:grid;place-items:center}
.menu-panel h1{font-family:SkyCity,Georgia;font-size:clamp(22px,3vw,42px);margin:8px 0 16px}
.menu-panel button{position:relative;background:linear-gradient(#344148,#18242b);border:2px solid #c49b58;box-shadow:inset 0 0 0 2px #121b20,0 3px 6px #0008;border-radius:8px;color:#fff0ce;font-family:SkyCity,Georgia;letter-spacing:.4px;min-height:42px;font-size:15px}
.menu-panel button:hover,.menu-panel button[aria-pressed=true]{background:linear-gradient(#8e602d,#392d21);border-color:#f9d899}
.menu-panel button:disabled{opacity:.55;cursor:not-allowed;font-family:Nunito;font-size:13px}
.menu-panel .primary{background:linear-gradient(#d1ad69,#99733b);color:#122129}
.main-choices{width:31%;min-width:240px;justify-self:end;margin-right:5%;padding:25px;background:#0d1b24e6;border:1px solid #c3a065;border-radius:12px;display:grid;gap:14px}
.main-choices .eyebrow{color:#f5ddb0;font-size:11px}.main-choices .small{margin:0}
.menu-sheet{width:min(760px,94%);padding:22px 30px;background:#101e28ed;border:2px solid #c5a36a;border-radius:13px;box-shadow:0 12px 50px #0009;max-height:100%;overflow:auto}
.menu-sheet p{margin:8px 0 14px}.menu-stack{display:grid;gap:9px}.menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:10px 0}.menu-sheet>button{margin-top:9px;width:100%}.menu-sheet select{background:#182b35}.menu-sheet input[type=range]{width:100%;accent-color:#d4ab63;margin:14px 0}.menu-sheet label{margin-top:10px;color:#f5d796}.menu-sheet output{margin-left:10px}
.character-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:24px;align-items:center}.character-list{display:grid;gap:8px}#character-preview{width:100%;height:auto;aspect-ratio:380/330;background:radial-gradient(ellipse at 50% 85%,#9c773c6b,transparent 62%)}#character-preview canvas{width:100%;height:100%;display:block}.character-layout .primary{margin:12px 0}
.power-guide{display:grid;grid-template-columns:1fr 1fr;gap:10px}.power-guide>div{display:flex;align-items:center;text-align:left;gap:12px;background:#21343ed4;border:1px solid #a58750;border-radius:7px;padding:8px}.power-guide img{width:45px;height:45px;object-fit:contain}.power-guide small{display:block;color:#bbcbca;font-size:12px}.menu-sheet ol{text-align:left;padding-left:24px;line-height:1.7}.score-guide{display:grid;grid-template-columns:1fr 1fr;gap:5px}
.boiler-gauge{display:grid;place-content:center;gap:12px;width:146px;height:146px;border:10px ridge #bb944f;border-radius:50%;margin:0 auto 15px;background:radial-gradient(#eddfbe,#c4ab7b);color:#283339;box-shadow:0 5px 10px #0008}.boiler-gauge span{font-size:10px}.boiler-gauge strong{font:700 20px SkyCity,Georgia}
main:fullscreen{max-width:none;width:100%;background:#0b1418;display:grid;place-content:center}main:fullscreen .viewport{width:min(100vw,177.777vh)}
@media(max-width:800px){.menu-panel{padding:8px}.menu-sheet{padding:12px 18px}.menu-panel h1{font-size:25px;margin:3px 0 9px}.menu-panel button{min-height:30px;padding:6px 8px;font-size:12px}.menu-panel p{font-size:12px;margin:6px 0}.main-choices{gap:8px;padding:15px;min-width:200px}.menu-sheet .eyebrow{font-size:8px}.menu-sheet label{margin:5px}.character-layout{gap:12px}.character-list{gap:5px}.power-guide{gap:5px}.power-guide>div{padding:4px;gap:6px}.power-guide img{width:30px;height:30px}.power-guide strong{font-size:11px}.power-guide small{font-size:9px}.boiler-gauge{width:85px;height:85px;border-width:6px;gap:5px;margin-bottom:5px}.boiler-gauge span{font-size:7px}.boiler-gauge strong{font-size:12px}}
/* Local launch review: machinery surround, brass home control and blended emblem. */
body{min-height:100vh;background:#08121a linear-gradient(#06111ac9,#06111ae8) url('../domain-launch/hero.png') center/cover fixed}
body{background-image:linear-gradient(#06111ac9,#06111ae8),url('../domain-launch/hero.png');background-size:cover;background-position:center;background-attachment:fixed}
header{background:linear-gradient(#24343ce8,#0a1720e8);box-shadow:0 4px 18px #0005}header>span{font-family:SkyCity,Georgia,serif;color:#efc47e;text-align:center}header small{font:14px/1.5 Georgia,serif;color:#f3dfba;letter-spacing:.3px}header>span>img{mix-blend-mode:screen}header>a{display:inline-flex;align-items:center;padding:12px 22px;border:2px solid #b88b43;border-radius:5px;background:linear-gradient(#ffe0a0,#cda45d 18%,#9d712e 49%,#ba8a41 52%,#d8b16b 90%,#8c6026);box-shadow:inset 0 0 0 1px #ffe4aa,inset 0 -3px 5px #4c3015,0 3px 8px #0007;color:#26190b;font:bold 16px Georgia,serif;text-shadow:0 1px #ffe0a6}header>a:hover{filter:brightness(1.15)}footer{background:#08151bb5;text-shadow:0 1px 3px #000}@media(max-width:650px){header{flex-wrap:wrap;gap:10px;justify-content:center}header>span{order:-1;flex-basis:100%}header small{font-size:11px}header>a{font-size:13px;padding:9px 14px}body{background-attachment:scroll}}
/* Review: matching brass controls and an emblem-only centre header. */
header>a,header>#sound{border:2px solid #b88b43;border-radius:5px;padding:12px 22px;background:linear-gradient(#ffe0a0,#cda45d 18%,#9d712e 49%,#ba8a41 52%,#d8b16b 90%,#8c6026);box-shadow:inset 0 0 0 1px #ffe4aa,inset 0 -3px 5px #4c3015,0 3px 8px #0007;color:#26190b;font:bold 16px Georgia,serif;text-shadow:0 1px #ffe0a6}header>a:hover,header>#sound:hover{filter:brightness(1.15)}header>span>img{mix-blend-mode:screen;background:transparent}header>span{line-height:1}#edition{display:none!important}@media(max-width:650px){header>a,header>#sound{padding:9px 14px;font-size:13px}}
/* Compact studio signature above the main menu choices. */
.main-choices .menu-studio-logo{display:block;width:200px;max-width:70%;height:55px;object-fit:contain;margin:0 auto 2px;mix-blend-mode:screen;pointer-events:none}@media(max-width:800px){.main-choices .menu-studio-logo{width:150px;height:40px;margin:0 auto}}
/* Let the main menu own the screen beneath the header. */
body:has(#overlay[data-menu=main]){height:100dvh;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden;background:#08121a}
body:has(#overlay[data-menu=main])>main{width:100%;max-width:none;min-height:0;margin:0}
body:has(#overlay[data-menu=main]) .viewport{width:100%;height:100%;aspect-ratio:auto}
body:has(#overlay[data-menu=main]) main>footer,body:has(#overlay[data-menu=main]) main>.touch,body:has(#overlay[data-menu=main]) #mascot-companion{display:none}
.overlay[data-menu=main]{background-size:cover}
@media(max-width:650px){.overlay[data-menu=main] .main-choices{min-width:0;width:min(84%,350px);margin:0 auto;justify-self:center;padding:16px}.overlay[data-menu=main]{background-position:40% center}}
@media(min-width:651px){.overlay[data-menu=main] .main-choices{position:absolute;left:14%;top:46%;width:38%;max-width:580px;min-width:0;margin:0;padding:18px 22px;gap:10px;max-height:52%;overflow:auto}.overlay[data-menu=main] .main-choices .menu-studio-logo{height:40px;width:150px}}
/* Recovered UE5 MenuStyle.h: steel plates, brass double rim and end rivets. */
.overlay[data-menu=main] .main-choices{background:transparent;border:0;box-shadow:none}
.overlay[data-menu=main] .main-choices>button{position:relative;min-height:48px;padding:9px 32px;border:2px solid #c19543;border-radius:10px;background:repeating-linear-gradient(0deg,#ffffff03 0 1px,transparent 1px 3px),linear-gradient(100deg,#101513,#353a35 48%,#151b19);box-shadow:inset 0 0 0 1px #fff0b8,inset 0 0 0 4px #171b18,inset 0 -6px 0 -4px #b48a3c,0 4px 0 #100e09,0 5px 10px #0008;color:#f5e4b9;font:700 clamp(14px,1.5vw,24px)/1.15 SkyCity,Georgia,serif;letter-spacing:.4px;text-transform:uppercase;text-shadow:1px 2px 1px #000;transition:background-color .15s,filter .15s}
.overlay[data-menu=main] .main-choices>button::before,.overlay[data-menu=main] .main-choices>button::after{content:"";position:absolute;top:50%;width:8px;height:8px;transform:translateY(-50%);border:1px solid #6e4816;border-radius:50%;background:linear-gradient(#ffe3a2 0 42%,#75501f 43% 57%,#c49a4b 58%);box-shadow:0 1px 2px #000,inset 1px 1px #ffe9b8}
.overlay[data-menu=main] .main-choices>button::before{left:10px}.overlay[data-menu=main] .main-choices>button::after{right:10px}
.overlay[data-menu=main] .main-choices>button:hover,.overlay[data-menu=main] .main-choices>button:focus-visible{background:linear-gradient(100deg,#68491c,#9d7834 48%,#60451f);border-color:#ffe0a0;color:#fff2cf}
.overlay[data-menu=main] #menu-status{text-shadow:0 1px 4px #000,0 0 8px #000}
.menu-studio-signature{position:absolute;left:24px;bottom:20px;display:flex;flex-direction:column;align-items:center;gap:5px;pointer-events:none;filter:drop-shadow(0 2px 5px #000)}
.menu-studio-signature img{display:block;width:230px;height:82px;object-fit:contain;mix-blend-mode:screen}
.menu-studio-signature span{white-space:nowrap;font:700 clamp(14px,1.3vw,21px)/1.3 Georgia,serif;color:#fff0ca;text-shadow:0 2px 4px #000,0 0 8px #000}
@media(max-width:650px){.menu-studio-signature{left:14px;bottom:14px}.menu-studio-signature img{width:160px;height:58px}.menu-studio-signature span{font-size:12px}}
@media(max-height:650px) and (min-width:651px){.overlay[data-menu=main] .main-choices{padding:8px 16px;gap:7px}.overlay[data-menu=main] .main-choices>button{min-height:38px;padding-block:6px}.overlay[data-menu=main] .main-choices .menu-studio-logo{height:28px}}

/* Preserve the supplied side-by-side logo and gold-emphasis caption. */
.menu-studio-signature{left:0;bottom:0;gap:0;filter:none}.menu-studio-signature img{width:min(48vw,720px);height:auto;mix-blend-mode:normal}@media(max-width:650px){.menu-studio-signature img{width:min(90vw,560px)}}

/* Main menu owns the entire screen; sound remains available in Options. */
body>header{display:none}body:has(#overlay[data-menu=main]){grid-template-rows:minmax(0,1fr)}

/* Character selection uses the same edge-to-edge canvas as the main menu. */
body:has(#overlay[data-menu=character]),body:has(#overlay[data-menu=wardrobe]){height:100dvh;min-height:0;display:grid;grid-template-rows:minmax(0,1fr);overflow:hidden;background:#08121a}
body:has(#overlay[data-menu=character])>main,body:has(#overlay[data-menu=wardrobe])>main{width:100%;max-width:none;min-height:0;margin:0}
body:has(#overlay[data-menu=character]) .viewport,body:has(#overlay[data-menu=wardrobe]) .viewport{width:100%;height:100%;aspect-ratio:auto}
body:has(#overlay[data-menu=character]) main>.touch,body:has(#overlay[data-menu=wardrobe]) main>.touch,body:has(#overlay[data-menu=character]) #mascot-companion,body:has(#overlay[data-menu=wardrobe]) #mascot-companion{display:none}
.overlay[data-menu=character],.overlay[data-menu=wardrobe]{background-size:cover}
main>footer{display:none}

/* One screen-sized game shell for every level and menu, including pause. */
body{height:100dvh;min-height:0;display:grid;grid-template-rows:minmax(0,1fr);overflow:hidden;background:#08121a}
body>main,body>main:fullscreen{width:100%;max-width:none;height:100%;min-height:0;margin:0;display:grid;grid-template-rows:minmax(0,1fr) auto;place-content:stretch}
body>main>.viewport,body>main:fullscreen>.viewport{width:100%;height:100%;min-height:0;aspect-ratio:auto;background-size:cover}
.overlay[data-menu]{background-size:cover}
body:has(#overlay[data-menu]) main>.touch{display:none}

/* Independent music and effects switches stay beside the gameplay HUD. */
.audio-controls{position:absolute;right:20px;bottom:12px;display:flex;gap:8px;z-index:4}
.audio-controls button{min-height:44px;padding:7px 12px;font-size:13px;background:#14242bf2;border-color:#c8a665}
.rail{right:250px;gap:clamp(8px,2vw,27px)}
body:has(#overlay:not([hidden])) .audio-controls{display:none}
@media(max-width:650px){.rail{right:5px;bottom:56px;gap:9px}.audio-controls{right:8px;bottom:5px}.audio-controls button{font-size:12px}#toast{bottom:96px}}

.main-choices #menu-status{margin:3px 0 0;padding:7px 12px;color:#fff0ca;background:#0b1822dd;border-radius:5px;text-align:center;font:14px/1.4 Nunito,system-ui,sans-serif;text-shadow:0 1px 2px #000}

.main-choices #menu-status[hidden]{display:none}

@view-transition{navigation:auto}::view-transition-old(root),::view-transition-new(root){animation-duration:140ms}@media(prefers-reduced-motion:reduce){::view-transition-old(root),::view-transition-new(root){animation:none}}

/* Keep the complete title artwork and its controls together on ultrawide displays. */
@media(min-aspect-ratio:1672/941){.overlay[data-menu=main]{width:min(100%,177.6833dvh);margin-inline:auto;background-size:contain;background-position:center}}

body:has(#overlay[data-menu=main]) .viewport{background:#08121a}body:has(#overlay[data-menu=main]) #scene{visibility:hidden}body:has(#overlay[data-menu=main]) .levelbar,body:has(#overlay[data-menu=main]) .rail{visibility:hidden}

body:has(#overlay[data-menu=main]) .viewport{background-image:none!important;background-color:#08121a!important}

/* All illustrated menu screens share the same uncropped art coordinates. */
@media(min-aspect-ratio:1672/941){.overlay[data-menu]{width:min(100%,177.6833dvh);margin-inline:auto;background-size:contain;background-position:center}}
body:has(#overlay[data-menu]) .viewport{background-image:none!important;background-color:#08121a!important}body:has(#overlay[data-menu]) #scene,body:has(#overlay[data-menu]) .levelbar,body:has(#overlay[data-menu]) .rail{visibility:hidden}
