@import url('https://fonts.googleapis.com/css2?family=Jua&display=swap');
:root{font-family:'Jua',system-ui,sans-serif;color:#655c4e;--mint:#72b8a2;--cream:#fff8e6;--gold:#ffd16d}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#app{margin:0;width:100%;height:100%;overflow:hidden;touch-action:none;user-select:none}#app{position:relative;background:#a3c5aa}button,input{font:inherit}button{cursor:pointer;border:0;color:inherit;touch-action:manipulation}button:active{transform:translateY(3px) scale(.97)}button:focus-visible,input:focus-visible{outline:3px solid #4ac2c2;outline-offset:3px}button:disabled{cursor:default;opacity:.58}button:disabled:active{transform:none}[hidden]{display:none!important}#world{position:absolute;inset:0;width:100%;height:100%}#hud{position:absolute;left:max(15px,env(safe-area-inset-left));right:max(15px,env(safe-area-inset-right));top:max(10px,env(safe-area-inset-top));pointer-events:none}.topline{display:flex;align-items:center;gap:12px}.pause{width:36px;height:36px;display:flex;align-items:center;justify-content:center;gap:5px;background:#fff9e9e6;box-shadow:0 3px 0 #65786544;border-radius:12px;pointer-events:auto}.pause i{height:15px;width:4px;border-radius:2px;background:#6a8170}.stage{display:flex;flex-direction:column;min-width:105px;text-shadow:0 2px 0 #fff9}.stage small{font-size:10px;color:#507761;letter-spacing:1px}.stage b{font-size:18px}.route{display:flex;gap:7px;flex:1;align-items:center}.route i{display:block;width:26px;height:8px;background:#6e877144;border-radius:5px;border:1px solid #fffc}.route i.done{background:#83c9a6}.route i.current{background:#ffcb6d;box-shadow:0 0 8px #fff7}.score{display:flex;flex-direction:column;text-align:right;color:#665d49;text-shadow:0 1px 0 white}.score small{font-size:10px}.score b{font-size:21px}.network{background:#fffae7df;border:1px solid #fff9;border-radius:20px;padding:7px 10px;font-size:10px;color:#5c806a;max-width:126px}.statline{display:flex;align-items:center;gap:12px;margin-top:9px}.health{height:28px;background:#fff8e8ec;display:flex;align-items:center;border-radius:20px;gap:8px;padding:5px 9px;box-shadow:0 2px 0 #6a866327}.health span{font-size:11px;max-width:80px;overflow:hidden;white-space:nowrap}.health b{font-size:12px;min-width:22px}.meter{height:9px;width:115px;border-radius:7px;background:#d7dbc8;overflow:hidden}.meter i{height:100%;display:block;width:100%;background:linear-gradient(90deg,#81bea1,#b4dc9f);border-radius:7px;transition:width .15s}.team{display:flex;gap:6px;flex:1}.team span{border-radius:16px;font-size:10px;background:#fff9ebc9;padding:5px 8px}.cleanliness{display:flex;align-items:center;gap:6px;background:#fffae8dc;padding:5px 10px;border-radius:20px;font-size:10px}.cleanliness b{font-size:18px;color:#5a9d7d}#boss-hud{display:flex;align-items:center;gap:9px;margin:7px auto 0;width:min(480px,70%);border-radius:17px;background:#555447db;color:#fff4d9;padding:7px 11px;font-size:11px}.boss-meter{background:#313e36;flex:1;border-radius:7px;height:9px;overflow:hidden}.boss-meter i{display:block;height:100%;background:linear-gradient(90deg,#ee9171,#ffd280);width:100%;transition:width .2s}#boss-phase{font-size:9px;max-width:150px}#mission{position:absolute;top:91px;left:50%;transform:translateX(-50%);font-size:11px;background:#fff8e5df;border:1px solid #fff9;border-radius:18px;padding:6px 14px;white-space:nowrap;pointer-events:none;box-shadow:0 2px 0 #70836522}#banner{position:absolute;left:50%;top:36%;transform:translate(-50%,-50%) scale(.8);color:#fff8cf;font-size:clamp(20px,4vw,37px);text-shadow:0 3px 0 #8a805e,2px 0 #8a805e,-2px 0 #8a805e;opacity:0;transition:.2s;pointer-events:none;white-space:nowrap}#banner.show{opacity:1;transform:translate(-50%,-50%) scale(1)}#toast{position:absolute;left:50%;bottom:28px;transform:translateX(-50%);background:#546c5cdd;border:1px solid #eaffd477;color:#fff5da;border-radius:22px;padding:9px 18px;font-size:12px;opacity:0;transition:.2s;pointer-events:none;z-index:10}#toast.show{opacity:1}#hurt{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 60px #ff606800;transition:.15s}#hurt.on{box-shadow:inset 0 0 60px #fa6a5c80}#controls{position:absolute;inset:0;pointer-events:none}.move-hint{position:absolute;left:max(27px,env(safe-area-inset-left));bottom:max(21px,env(safe-area-inset-bottom));text-align:center;font-size:10px;color:#fff8dc;text-shadow:0 1px 2px #456b58}.move-hint span{display:block;margin-top:7px}#stick-base{width:92px;height:92px;border-radius:50%;border:2px solid #fff9e887;background:#f6ffe529;box-shadow:inset 0 0 0 14px #fff8e322;display:grid;place-items:center}#stick-base i{width:37px;height:37px;border-radius:50%;background:linear-gradient(#fffaeab8,#b6ceab77);border:2px solid #fffb;box-shadow:0 3px 8px #58786144}.suction-status{position:absolute;left:139px;bottom:42px;display:flex;flex-direction:column;gap:3px;color:#f9ffe4;text-shadow:0 1px 2px #557561;font-size:12px;max-width:145px}.suction-status small{font-size:10px}.wind-icon{width:29px;height:18px;border-top:2px solid #e5fff3;border-bottom:2px solid #e5fff3;border-radius:0 15px 15px 0;position:relative}.wind-icon:after{content:'';position:absolute;left:4px;right:6px;top:6px;border-top:2px solid #e5fff3}#dash{position:absolute;right:155px;bottom:25px;pointer-events:auto;width:61px;height:66px;background:linear-gradient(#ffffeb,#d2e5bd);border:2px solid #fffb;border-radius:24px;box-shadow:0 4px 0 #688b7466;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding:6px;font-size:11px;overflow:hidden}.boots{width:33px;height:34px;object-fit:contain;position:absolute;top:3px;left:12px}#dash-cd{position:absolute;inset:0;background:#4e6c5777;color:white;display:none;place-items:center;font-size:22px}#bag{position:absolute;right:max(23px,env(safe-area-inset-right));bottom:max(15px,env(safe-area-inset-bottom));width:115px;height:129px;pointer-events:auto;background:linear-gradient(#fff8dfde,#e1e4cbe8);border:2px solid #fffbe5;border-radius:32px;box-shadow:0 5px 0 #8b98776b;display:flex;flex-direction:column;align-items:center;padding:4px 8px 10px}#bag-image{width:78px;height:78px;object-fit:contain;position:relative;z-index:1;filter:drop-shadow(0 3px 2px #6c855344)}#bag b{font-size:13px;position:relative;z-index:1}#bag .bag-number{position:absolute;top:59px;left:50%;transform:translateX(-50%);background:#587b6de8;color:#fff9de;border:1px solid #fffd;border-radius:11px;padding:2px 7px;font-size:11px;z-index:2;white-space:nowrap}.bag-meter{height:7px;width:78px;margin-top:7px;border-radius:6px;overflow:hidden;background:#c9d5b9;position:relative;z-index:1}.bag-meter i{height:100%;background:#8cc5a1;display:block;transition:width .1s}#bag.full{background:linear-gradient(#ffe99b,#ffc16c);border-color:#fff7ca;box-shadow:0 5px 0 #c77e4e,0 0 20px #ffefa595;animation:bagPulse 1s infinite}#bag.full .bag-meter i{background:#fff8c7}#bag.full b{color:#856039}.bag-glow{position:absolute;inset:0;border-radius:29px;pointer-events:none}#bag.full .bag-glow{background:conic-gradient(from 0deg,#fff0,#fffb,#fff0,#fffb,#fff0);opacity:.4;animation:shine 5s linear infinite}#joystick{position:absolute;width:100px;height:100px;margin-left:-50px;margin-top:-50px;border-radius:50%;border:2px solid #fff8;background:#d6ffe044;pointer-events:none;z-index:4;display:grid;place-items:center}#joystick i{display:block;width:40px;height:40px;background:#fffae8ce;border:2px solid white;border-radius:50%;box-shadow:0 3px 7px #56876644}#screen{position:absolute;inset:0;z-index:6;display:flex;align-items:center;justify-content:center;background:#375f4926;backdrop-filter:blur(3px)}#screen.clear{background:transparent;backdrop-filter:none;justify-content:flex-start;pointer-events:none}.loading{width:min(350px,60%);text-align:center}.loading img{width:100%;filter:drop-shadow(0 5px 0 #71694f22)}.intro{width:min(460px,54%);margin-left:6%;text-align:center;pointer-events:auto}.logo{width:100%;max-height:190px;object-fit:contain;filter:drop-shadow(0 4px 0 #86785628)}.intro .tag{display:inline-block;background:#fff9e2ed;border:1px solid #fff;border-radius:20px;padding:7px 15px;font-size:12px;color:#6b8970;margin:0 0 13px}.intro .tag span{color:#c48948}.primary{display:block;width:100%;padding:15px 22px;border:2px solid #fff1c2;border-radius:23px;background:linear-gradient(#ffca89,#f5a273);box-shadow:0 5px 0 #bd785b;color:#fffbea;text-shadow:0 2px 0 #c3835a;font-size:24px}.secondary{background:linear-gradient(#faffef,#deebcd);border:2px solid #fffce6;border-radius:19px;padding:12px 16px;box-shadow:0 4px 0 #829b7766;font-size:16px;color:#658a73}.intro .secondary{margin-top:13px;width:100%}.intro .mini{display:flex;justify-content:center;gap:14px;margin-top:16px}.text-btn{background:#fff9eac7;border-radius:20px;padding:7px 12px;font-size:12px}.intro p{font-size:11px;margin:13px 0;color:#55745d;text-shadow:0 1px 0 #fffa}.panel{width:min(630px,90%);max-height:94%;overflow:auto;border:3px solid #fffcef;border-radius:30px;background:linear-gradient(#fff9e8,#f4f0dc);box-shadow:0 10px 0 #50745c44,0 18px 35px #405d5d33;padding:25px;text-align:center}.panel h1{margin:0;font-size:28px;color:#826a51}.panel p{margin:10px 0 17px;font-size:13px;color:#8a9175}.panel .buttons{display:flex;gap:12px;margin-top:18px}.panel .buttons>*{flex:1}.panel .primary{font-size:20px;padding:12px}.fields{display:flex;align-items:end;gap:12px;margin:18px 0}.fields label{display:flex;flex-direction:column;gap:7px;text-align:left;flex:1;font-size:12px;color:#829578}.fields input{width:100%;min-width:0;background:#e9eddc;border:2px solid #fff;border-radius:15px;padding:11px 13px;color:#65816b;user-select:text;touch-action:auto}.fields input.code{text-transform:uppercase;letter-spacing:3px}.crew{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:16px 0}.crew-card{border:2px solid #fff;border-radius:19px;background:#e4efdd;padding:9px 4px;min-height:94px}.crew-card.empty{opacity:.5;background:#eceade}.crew-card img{width:57px;height:57px;object-fit:contain}.crew-card b{display:block;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.crew-card small{display:block;font-size:10px;color:#91a184;margin-top:4px}.room-code{display:flex;align-items:center;justify-content:center;gap:15px;background:#e7edd7;padding:10px;border-radius:18px;color:#759173}.room-code strong{font-size:26px;letter-spacing:6px;color:#68856b}.room-code button{background:#fff8e7;border-radius:12px;padding:8px;font-size:12px}.help-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.help-grid div{background:#eaf0dd;border-radius:18px;padding:13px;font-size:13px}.help-grid img{height:58px;width:70px;object-fit:contain;display:block;margin:0 auto 8px}.help-grid b{display:block;color:#7d9977}.help-grid p{font-size:11px;line-height:1.5;margin:7px 0 0}.result-stars{font-size:40px;letter-spacing:10px;color:#ffc961;text-shadow:0 3px 0 #dba451;margin:15px}.results{display:flex;justify-content:center;gap:40px;background:#ececd7;border-radius:20px;padding:18px;margin:16px 0}.results b{display:block;font-size:30px;color:#a68753}.results span{font-size:12px;color:#9aa083}.rotate{display:none;position:absolute;inset:0;background:linear-gradient(#95c9b3,#639b89);z-index:30;align-items:center;justify-content:center;flex-direction:column;gap:14px;color:#fff7d6;text-align:center}.rotate img{width:110px;border-radius:27px;border:3px solid #fff8}.rotate b{font-size:26px}.rotate span{font-size:13px}.error{color:#c08268!important;min-height:16px}.reconnect{color:#bb8651!important}@keyframes bagPulse{50%{transform:translateY(-3px) rotate(-2deg)}}@keyframes shine{to{transform:rotate(360deg)}}@media(orientation:portrait){.rotate{display:flex}}@media(max-height:430px){.logo{max-height:137px}.intro{max-width:350px}.intro .tag{font-size:10px;margin-bottom:8px;padding:5px 12px}.primary{padding:11px;font-size:21px}.intro .secondary{padding:9px;font-size:14px;margin-top:10px}.intro .mini{margin-top:12px}.intro p{margin:10px 0}.panel{padding:16px 22px;border-radius:25px}.panel h1{font-size:23px}.panel p{font-size:11px;margin:7px 0 10px}.fields{margin:11px 0}.crew{margin:11px 0}.crew-card{min-height:84px;padding:6px 3px}.crew-card img{width:48px;height:48px}.panel .buttons{margin-top:11px}.topline{gap:8px}.stage b{font-size:16px}.stage{min-width:94px}.statline{margin-top:6px;gap:8px}.meter{width:88px}.route i{width:22px;height:7px}.network{padding:6px 8px}.score b{font-size:18px}#mission{top:82px;font-size:10px;padding:5px 11px}#bag{width:99px;height:113px;right:17px;bottom:13px;border-radius:27px}#bag-image{width:65px;height:65px}#bag .bag-number{top:50px}#bag b{font-size:12px}.bag-meter{margin-top:6px;width:69px}#dash{right:133px;bottom:21px;width:55px;height:59px}#stick-base{width:79px;height:79px}.move-hint{left:23px;bottom:18px}.suction-status{left:117px;bottom:34px;font-size:11px}.suction-status small{font-size:9px}.help-grid img{height:40px}.help-grid div{padding:10px}.results{padding:12px}.result-stars{margin:8px;font-size:31px}#boss-hud{margin-top:6px;padding:5px 9px}#boss-phase{max-width:120px;font-size:8px}body.boss #mission{top:111px}}@media(max-width:740px){.network{max-width:100px;font-size:9px}.team{gap:3px}.team span{font-size:9px;padding:4px 5px}.health span{max-width:58px}.route{gap:4px}.route i{width:15px}.score{min-width:66px}.cleanliness{gap:4px;font-size:9px;padding:5px 8px}.help-grid{gap:7px}}

.stage{background:#fff9e9e8;padding:4px 9px;border-radius:13px;box-shadow:0 2px 0 #6b876328}.score{background:#fff9e9dd;padding:4px 9px;border-radius:12px}.route{justify-content:center}.crew-card img{border-radius:13px}

body.boss #mission{top:134px}@media(max-height:430px){body.boss #mission{top:111px}}
/* Original illustrated controls, shared across the game and its menus. */
button.painted{position:relative;border:0;box-shadow:none;border-radius:0;background-color:transparent;background-image:url('assets/ui-panel-mint.png');background-repeat:no-repeat;background-size:100% 100%;filter:drop-shadow(0 3px 1px #796a4930);padding-left:44px;text-shadow:0 1px 0 #fff6}
button.painted[data-frame="gold"]{background-image:url('assets/ui-panel-gold.png')}
button.painted:before{content:'';position:absolute;width:31px;height:31px;left:10px;top:50%;transform:translateY(-50%);background:var(--button-icon) center/contain no-repeat;pointer-events:none}
button.painted:disabled{filter:grayscale(.65);opacity:.6}
.intro .primary.painted{padding:16px 28px 16px 54px;font-size:23px;color:#6d714c;text-shadow:0 1px 0 #fff8;height:63px}
.intro .secondary.painted{color:#587d73;height:48px}
button.text-btn.painted{padding:8px 9px 8px 29px;font-size:11px;height:29px;background-image:url('assets/ui-panel-cream.png')}
button.text-btn.painted:before{width:19px;height:19px;left:6px}.intro .mini{gap:6px}
#pause.painted,#equipment.painted{width:39px;height:39px;padding:0;background:none;filter:drop-shadow(0 2px 1px #738a6040);flex-shrink:0;pointer-events:auto}
#pause.painted:before,#equipment.painted:before{display:none}#pause img,#equipment img{width:100%;height:100%;object-fit:contain}
#equipment.painted{width:28px;height:28px}
#growth{display:flex;align-items:center;gap:5px;background:#fff7e6df;padding:5px 8px;border-radius:14px;color:#b1904e;font-size:10px;flex-shrink:0}.xp-meter{width:53px;height:6px;border-radius:5px;overflow:hidden;background:#d9debf}.xp-meter i{display:block;background:linear-gradient(90deg,#f5cf6b,#fff0a4);height:100%;transition:width .1s}
#weapon-bar{position:absolute;left:140px;bottom:14px;display:flex;gap:7px;pointer-events:auto}.weapon-slot.painted{width:51px;height:58px;padding:2px 4px 3px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;filter:drop-shadow(0 3px 1px #4d776d33);background-image:url('assets/ui-panel-cream.png')}.weapon-slot.painted:before{display:none}.weapon-slot img{height:33px;width:38px;object-fit:contain;margin-bottom:1px}.weapon-slot small{font-size:10px;line-height:10px}.weapon-slot span{font-size:8px;color:#a08754;line-height:10px}.weapon-slot.selected{background-image:url('assets/ui-panel-gold.png');filter:drop-shadow(0 0 5px #fff2a9)}.weapon-slot.locked{filter:grayscale(.8);opacity:.5}.weapon-slot.locked img{opacity:.65}.suction-status{bottom:82px;left:143px;text-shadow:0 1px 2px #315b4a}#bag{pointer-events:none;border:0;background:url('assets/ui-panel-cream.png') center/100% 100% no-repeat;box-shadow:none;border-radius:0;filter:drop-shadow(0 4px 2px #61765355)}#bag.full{background:url('assets/ui-panel-gold.png') center/100% 100% no-repeat;box-shadow:none;border:0;filter:drop-shadow(0 0 8px #fff2a9);animation:bagPulse 1s infinite}#bag .bag-glow{display:none}#bag b{font-size:11px}#dash.painted{padding:0;width:68px;height:71px;border:0;background:transparent;box-shadow:none;overflow:visible;filter:drop-shadow(0 3px 1px #5e755c44)}#dash.painted:before{display:none}#dash .boots{left:0;top:0;width:100%;height:100%;object-fit:contain}#dash b{position:absolute;bottom:5px;color:#638073;font-size:11px;text-shadow:0 1px 0 white}#dash-cd{border-radius:18px}
.panel{touch-action:pan-y}.panel .buttons .painted{padding-left:43px}.room-code button.painted{padding:9px 12px 9px 37px;font-size:11px}.room-code button.painted:before{width:22px;height:22px;left:9px}.upgrade-title{display:flex;align-items:center;justify-content:center;gap:10px}.upgrade-title img{width:45px;height:45px;object-fit:contain}.upgrade-title small{display:block;text-align:left;font-size:11px;letter-spacing:2px;color:#b19550}.upgrade-title h1{font-size:25px}.upgrade-options{display:flex;gap:13px;justify-content:center;margin:15px 0}.upgrade-card.painted{width:31%;max-width:185px;min-height:171px;padding:12px 8px 15px;display:flex;align-items:center;flex-direction:column;gap:5px;background-image:none;border:16px solid transparent;border-image:url('assets/ui-panel-cream.png') 22% fill / 16px stretch;filter:drop-shadow(0 4px 1px #6c825333)}.upgrade-card.painted:before{display:none}.upgrade-card img{width:61px;height:61px;object-fit:contain;filter:drop-shadow(0 2px 1px #9d914d22)}.upgrade-card span{font-size:10px;color:#ae9556}.upgrade-card b{font-size:17px;color:#6c8d77}.upgrade-card small{font-size:11px;line-height:1.3;color:#8a967e}.upgrade-card:active{filter:drop-shadow(0 0 9px #efd777)}.equipment-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:9px;margin:13px 0}.equipment-card{padding:8px 5px;background:#e7ecd8;border-radius:16px}.equipment-card img{height:49px;width:56px;object-fit:contain}.equipment-card b{display:block;font-size:11px}.equipment-card span{display:block;font-size:10px;color:#9c9168;margin-top:3px}.equipment-card.locked{opacity:.42;filter:grayscale(.5)}
@media(max-height:430px){.intro .primary.painted{height:56px;font-size:21px;padding:12px 22px 12px 52px}.intro .secondary.painted{height:42px}.intro .mini{margin-top:9px}.intro p{margin-top:9px;font-size:10px}.xp-meter{width:36px}#growth{padding:5px 6px;font-size:9px}#weapon-bar{left:119px;bottom:14px;gap:5px}.weapon-slot.painted{width:43px;height:51px}.weapon-slot img{height:28px;width:32px}.weapon-slot small{font-size:9px}.weapon-slot span{font-size:8px}.suction-status{bottom:75px;left:123px;max-width:170px;font-size:10px}.suction-status small{font-size:9px}#dash.painted{right:132px;width:58px;height:61px;bottom:16px}#bag b{font-size:10px}.upgrade-card.painted{min-height:150px;padding:5px 4px 8px;border-image-width:13px}.upgrade-card img{width:49px;height:49px}.upgrade-card b{font-size:15px}.upgrade-card small{font-size:10px}.upgrade-title h1{font-size:23px}.upgrade-options{margin:10px 0}.equipment-card img{height:37px;width:45px}.equipment-grid{gap:7px;margin:10px 0}.equipment-panel p{font-size:10px}.equipment-card b{font-size:10px}}
@media(max-width:740px){.team span{font-size:8px;padding:4px}.statline{gap:6px}#growth{gap:4px}.upgrade-title h1{font-size:21px}.upgrade-card.painted{width:32%;max-width:none}.equipment-grid{grid-template-columns:repeat(5,1fr)}}

/* Dedicated, top-level mobile play: never scroll the page while steering. */
html{height:100%;height:-webkit-fill-available;overscroll-behavior:none;background:#8ab4a5}body{position:fixed;inset:0;overscroll-behavior:none;-webkit-user-select:none;-webkit-touch-callout:none}#app{position:fixed;inset:0;width:var(--game-width,100vw);height:var(--game-height,100dvh);overflow:hidden}#app:fullscreen{width:100vw;height:100dvh}#world,#controls,#stick-base,#joystick{touch-action:none}#screen{overscroll-behavior:contain}.panel{overscroll-behavior:contain}.fullscreen{font-size:23px;flex-shrink:0}#mission.lesson{top:110px;max-width:90%;white-space:normal;text-align:center;background:#fff4c8f5;border:2px solid #fff5d6;font-size:15px;padding:10px 20px;box-shadow:0 4px 0 #bc996d5c}#mission.lesson::after{content:"";display:block;height:3px;width:40%;margin:6px auto 0;background:#79bba0;border-radius:5px}@media(max-height:450px){#mission.lesson{top:86px;font-size:12px;padding:8px 16px}.topline{gap:7px}.fullscreen{width:30px;height:30px}#hud{left:max(23px,env(safe-area-inset-left));right:max(17px,env(safe-area-inset-right))}}

button.fullscreen.painted{background-image:url(assets/ui-panel-mint.png)!important;font-size:24px;color:#497b68;padding:0!important;border-radius:9px;text-shadow:0 1px #fff8}button.fullscreen.painted::before{display:none!important}

/* Portrait cleanup adventure. The world moves up; both thumbs stay low. */
#app{width:min(var(--game-width,100vw),500px);left:50%;right:auto;transform:translateX(-50%)}
html{background:#7dafa0}.rotate{display:none!important}
@media(orientation:landscape) and (max-height:600px){.rotate{display:flex!important}}
#hud{left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));top:max(10px,env(safe-area-inset-top))}
.topline{display:grid;grid-template-columns:34px 30px minmax(0,1fr) 69px;gap:5px;align-items:center}
#pause.painted{width:34px;height:34px}.fullscreen{width:30px;height:30px}.stage{min-width:0;padding:5px 8px}.stage b{font-size:15px}.stage small{font-size:8px;letter-spacing:.6px}.route{display:none}.score{min-width:0;padding:5px 6px}.score b{font-size:17px}.score small{font-size:8px}
.statline{margin-top:8px;gap:5px;align-items:center}.health{flex:1;min-width:0;padding:5px 7px;gap:5px;height:29px}.health span{font-size:9px;max-width:42px}.meter{flex:1;min-width:23px;width:50px}.health b{font-size:10px;min-width:20px}#growth{padding:5px 6px;font-size:9px;gap:4px}.xp-meter{width:29px}#equipment.painted{width:25px;height:25px}.cleanliness{font-size:8px;gap:3px;padding:5px 7px}.cleanliness b{font-size:16px}.cleanliness span{max-width:30px;line-height:1.05}.network{position:absolute;left:3px;top:85px;padding:4px 8px;font-size:8px;max-width:140px}.team{position:absolute;right:0;top:85px;gap:4px}.team span{font-size:8px;padding:4px 6px}
#mission,#mission.lesson{top:max(120px,calc(env(safe-area-inset-top) + 112px));max-width:calc(100% - 28px);width:max-content;white-space:normal;text-align:center;line-height:1.45;font-size:11px;padding:8px 13px}#mission.lesson{font-size:12px;padding:11px 16px;border-radius:21px}#banner{top:38%;width:92%;white-space:normal;text-align:center;font-size:27px;line-height:1.25}#toast{bottom:210px;max-width:90%;font-size:11px;line-height:1.4;white-space:normal;width:max-content;text-align:center}
#boss-hud{width:100%;margin-top:33px;padding:7px 10px;font-size:10px}#boss-phase{display:none}body.boss #mission{top:max(157px,calc(env(safe-area-inset-top) + 149px))}
#controls{position:absolute;inset:auto 0 0;height:190px;padding-bottom:env(safe-area-inset-bottom);background:linear-gradient(0deg,#e9efdbfa 0%,#e9efdbed 73%,#e9efdb00 100%);pointer-events:none}.move-hint{left:22px;bottom:max(34px,calc(env(safe-area-inset-bottom) + 18px));font-size:10px;color:#658674;text-shadow:0 1px #fff}#stick-base{width:90px;height:90px;background:#b9d9c970;border:2px solid #fffbdcdd;box-shadow:inset 0 0 20px #fff8,0 4px 0 #709f8522}#stick-base i{width:39px;height:39px;background:#e5f2ddbb;border:2px solid #fff9e5}.move-hint span{margin-top:6px}
#bag{right:14px;bottom:max(28px,calc(env(safe-area-inset-bottom) + 12px));width:105px;height:123px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding-top:4px}#bag-image{width:72px;height:70px}#bag .bag-number{top:59px;font-size:10px;padding:2px 7px}#bag b{font-size:10px;margin-top:2px}.bag-meter{width:74px;margin-top:7px}#dash.painted{right:126px;bottom:max(33px,calc(env(safe-area-inset-bottom) + 17px));width:61px;height:64px}
#weapon-bar{left:50%;transform:translateX(-50%);bottom:155px;gap:8px}.weapon-slot.painted{width:53px;height:57px}.weapon-slot img{width:34px;height:31px}.weapon-slot small{font-size:9px}.weapon-slot span{font-size:8px}.suction-status{left:132px;bottom:110px;max-width:100px;font-size:10px;color:#5a8070;text-shadow:0 1px #fff}.suction-status small{font-size:8px;color:#6d8c75}.suction-status .wind-icon{display:none}
#screen{padding:18px 0}.intro{width:calc(100% - 42px);max-width:370px;margin:0 auto}.logo{width:100%;max-height:230px;object-fit:contain}.intro .tag{font-size:10px;padding:7px 12px;margin-bottom:20px;line-height:1.6}.intro .tag span{display:block}.intro .primary.painted{height:65px;font-size:22px}.intro .secondary.painted{height:58px;font-size:14px;margin-top:14px;padding-left:46px}.intro .mini{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:23px}.intro .mini .painted{width:100%;height:34px;font-size:11px}.intro p{font-size:10px;margin-top:18px;line-height:1.6}
.panel{width:calc(100% - 28px);max-height:calc(100% - 26px);padding:22px 17px;border-radius:28px}.panel h1{font-size:24px}.panel p{font-size:12px;line-height:1.5}.fields{flex-direction:column;align-items:stretch;gap:15px}.crew{grid-template-columns:repeat(2,1fr);gap:10px}.crew-card img{width:60px;height:60px}.crew-card{min-height:106px}.room-code{gap:8px;flex-wrap:wrap}.room-code strong{font-size:25px;letter-spacing:4px}.room-code>span{width:100%;font-size:10px}.help-grid{grid-template-columns:1fr;gap:11px}.help-grid div{display:grid;grid-template-columns:66px 1fr;column-gap:8px;text-align:left;align-items:center;padding:12px}.help-grid img{grid-row:1/3;height:60px;margin:0}.help-grid b{font-size:14px}.help-grid p{font-size:11px;margin:4px 0 0}.panel .buttons{gap:8px}.panel .buttons .painted{font-size:14px;padding:12px 8px 12px 35px;min-height:53px}.panel .buttons .painted:before{width:24px;height:24px;left:7px}
.upgrade-title h1{font-size:21px}.upgrade-options{flex-direction:column;gap:12px}.upgrade-card.painted{width:100%;max-width:none;min-height:103px;display:grid;grid-template-columns:70px 1fr;gap:4px 8px;text-align:left;padding:7px 6px;border-image-width:13px}.upgrade-card img{grid-row:1/4;width:63px;height:63px}.upgrade-card b{font-size:17px}.upgrade-card small{font-size:11px}.equipment-grid{grid-template-columns:repeat(3,1fr);gap:9px}.equipment-card img{height:49px;width:54px}.equipment-card b{font-size:10px}.equipment-card span{font-size:9px}.results{gap:13px;padding:16px 8px}.results b{font-size:24px}.results span{font-size:10px}
@media(max-width:360px){.topline{grid-template-columns:30px 26px minmax(0,1fr) 64px;gap:4px}.stage b{font-size:13px}.stage small{font-size:7px}.xp-meter{width:20px}.health span{max-width:31px}.cleanliness{padding:5px}.move-hint{left:14px}#stick-base{width:81px;height:81px}#bag{right:9px;width:95px}#dash.painted{right:109px;width:55px}.suction-status{left:107px;max-width:95px}.intro{width:calc(100% - 34px)}}
@media(max-height:700px) and (orientation:portrait){.logo{max-height:175px}.intro .tag{margin-bottom:12px}.intro .primary.painted{height:58px}.intro .secondary.painted{height:48px;margin-top:11px}.intro .mini{margin-top:15px}.intro p{margin-top:12px}#banner{font-size:23px}}
.intro{margin-right:auto;text-align:center}.intro-hero{display:block;width:140px;height:140px;object-fit:contain;margin:-12px auto 7px;filter:drop-shadow(0 7px 4px #547e5933)}.logo{max-height:155px}.intro .tag{margin-bottom:15px}
@media(max-height:740px) and (orientation:portrait){.intro-hero{height:108px;width:108px;margin:-10px auto 4px}.logo{max-height:120px}.intro .tag{margin-bottom:12px}.intro .mini{margin-top:13px}}
