:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:#111d2a;color:#eef4f5;font-synthesis:none}*{box-sizing:border-box}body{margin:0;overscroll-behavior:none}button{font:inherit;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:disabled{opacity:.6;cursor:wait}button:focus-visible{outline:3px solid #caff78;outline-offset:5px}#game{position:relative;isolation:isolate;width:100%;height:100dvh;min-height:560px;overflow:hidden;background:radial-gradient(ellipse at 50% 45%,#253849,#101d2b)}#world{width:100%;height:100%;display:block;touch-action:none;outline:0}header{position:absolute;top:max(24px,env(safe-area-inset-top));left:32px;right:32px;display:flex;justify-content:space-between;align-items:flex-start;pointer-events:none}.brand{font-size:26px;letter-spacing:-1.4px;font-weight:900;line-height:1;filter:drop-shadow(0 2px 5px #0c1628)}.brand>span{color:#caff78}.brand small{display:block;font-size:12px;letter-spacing:2px;font-weight:500;margin-top:9px;color:#a8bdca}.top-tools{display:flex;gap:9px;pointer-events:auto}.icon-button{border:1px solid #53657466;border-radius:12px;background:#142332df;min-width:44px;height:44px;color:#e8eef2;font-size:20px;display:flex;justify-content:center;align-items:center;gap:3px;backdrop-filter:blur(14px)}.icon-button span{font-size:12px;letter-spacing:.5px}.scoreboard{position:absolute;left:32px;top:114px;min-width:180px;text-shadow:0 2px 10px #111a22}.score-label{font-size:12px;letter-spacing:2.3px;color:#b0c2ce;font-weight:650}.score-row{display:flex;align-items:center;gap:13px}#score{font-size:52px;line-height:1.2;letter-spacing:-2px;font-variant-numeric:tabular-nums;font-weight:800}#combo{font-size:22px;color:#caff78;font-weight:850;opacity:.55}#combo.hot{opacity:1;filter:drop-shadow(0 0 10px #caff7870)}#combo-text{font-size:12px;color:#a9c0cd}.map-panel{position:absolute;right:32px;top:96px;width:150px;border:1px solid #61758545;border-radius:14px;background:#142331d9;padding:11px;backdrop-filter:blur(12px)}.map-panel>div{display:flex;align-items:center;justify-content:space-between;gap:5px}.map-panel #room-name{font-size:12px;font-weight:750;letter-spacing:1.4px}.map-panel button{border:0;background:transparent;color:#caff78;font-size:24px;width:30px;height:28px;line-height:20px}.map-panel canvas{display:block;width:100%;height:auto;margin:8px 0 3px}.map-note{font-size:12px;color:#8ba2b1;display:block;text-align:center}.mission{position:absolute;bottom:37px;left:50%;transform:translateX(-50%);width:310px;pointer-events:none;text-shadow:0 1px 8px #142230}.mission-label{display:flex;justify-content:space-between;align-items:center;font-size:12px;letter-spacing:1.2px;color:#d6e4ea;font-weight:600}.mission-label strong{color:#caff78;font-size:20px;letter-spacing:0;font-variant-numeric:tabular-nums}.progress-track{height:5px;background:#576b7959;border-radius:3px;margin:9px 0;overflow:hidden}.progress-track>div{height:100%;width:0;background:#caff78;border-radius:3px;box-shadow:0 0 14px #caff7880;transition:width .2s}.mission-detail{display:flex;justify-content:space-between;font-size:12px;color:#9fb5c3;font-variant-numeric:tabular-nums}.controls{position:absolute;bottom:28px;left:32px;right:32px;display:flex;justify-content:space-between;align-items:center;pointer-events:none}.keyboard-hint{pointer-events:none;opacity:.85;user-select:none;font-size:12px;color:#b0c1ce}.key-row{display:flex;gap:5px;align-items:center}.key-row:first-child{padding-left:32px;margin-bottom:5px}.key-row span{margin-left:5px}.keyboard-hint p{margin:10px 0 0;display:flex;align-items:center;gap:7px}kbd{display:inline-flex;justify-content:center;align-items:center;min-width:27px;height:27px;padding:3px 7px;background:#273d4b99;border:1px solid #849dac42;border-radius:5px;font:600 12px ui-monospace,SFMono-Regular,monospace;color:#cad9e1}.keyboard-hint p kbd{height:23px}#boost{width:90px;height:90px;border-radius:50%;border:1px solid #caff7866;background:#caff7812;color:#caff78;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;box-shadow:inset 0 0 30px #caff7809,0 5px 30px #0002;pointer-events:auto;user-select:none;touch-action:none;backdrop-filter:blur(10px);transition:background .15s,transform .15s}.bolt{font-size:30px;line-height:24px;font-weight:800}#boost strong{font-size:12px;letter-spacing:1.5px}#boost.held{background:#caff783e;transform:scale(.95)}.boost-track{height:3px;width:40px;background:#7c986c50;overflow:hidden;border-radius:3px;margin-top:4px}#boost-fill{height:100%;width:100%;background:#caff78;display:block}#joystick{position:relative;width:136px;height:136px;border:1px solid #a6c2d248;border-radius:50%;background:radial-gradient(#344d5d33,#263b4933);pointer-events:auto;touch-action:none;user-select:none;display:none;backdrop-filter:blur(6px)}.joystick-arrows{position:absolute;inset:0;display:grid;place-items:center;color:#91aebd3a;font-size:110px;font-weight:100}#stick{position:absolute;width:57px;height:57px;top:39px;left:39px;border:1px solid #d4e2e868;background:linear-gradient(130deg,#778f9eaa,#233e50b0);box-shadow:0 4px 20px #0005,inset 0 1px 0 #fff3;border-radius:50%;pointer-events:none}.game-footnote{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);font-size:12px;color:#768e9d;white-space:nowrap;pointer-events:none}.overlay{position:absolute;inset:0;display:grid;place-items:center;background:#09132074;backdrop-filter:blur(4px);padding:20px;z-index:5}.overlay[hidden]{display:none}.start-card{width:390px;max-width:100%;text-align:center;padding:27px 34px 24px;border:1px solid #607b8e5c;border-radius:24px;background:linear-gradient(140deg,#203747f8,#112433f8);box-shadow:0 28px 120px #060d1977}.robot-portrait{width:94px;height:94px;margin:0 auto 17px;border-radius:50%;overflow:hidden;border:3px solid #caff78;box-shadow:0 0 0 6px #caff780a}.robot-portrait img{width:100%;height:100%;object-fit:cover;object-position:50% 57%;transform:scale(1.43)}.card-kicker{display:block;font-size:12px;font-weight:700;letter-spacing:2px;color:#caff78}h1{margin:12px 0 10px;font-size:49px;line-height:1.01;font-weight:800;letter-spacing:-2.5px}.start-card>p{font-size:16px;color:#acbfcc;line-height:1.6;margin:13px 0 21px}.instructions{display:grid;text-align:left;gap:12px;margin-bottom:24px;font-size:14px;color:#d0e0e8}.instructions span{display:flex;gap:10px;align-items:center}.instructions b{font-size:12px;color:#89a4b5;font-weight:500}.primary{display:block;width:100%;padding:14px 18px;min-height:48px;border:0;border-radius:11px;background:#caff78;color:#18291c;font-weight:800;font-size:16px;box-shadow:0 5px 22px #caff7812}.primary:hover{background:#d7ff9b}.secondary{display:block;width:100%;padding:14px 18px;min-height:48px;background:transparent;color:#b5cbd5;border:1px solid #72889866;border-radius:11px;margin-top:12px}#loading-note{display:block;font-size:12px;line-height:1.5;color:#7895a7;margin-top:13px}dialog{border:1px solid #607b8e7c;border-radius:22px;background:#192e3e;color:#f1f5f7;padding:32px;max-width:calc(100% - 40px);width:385px;text-align:center;box-shadow:0 20px 100px #040b1599}dialog::backdrop{background:#07142190;backdrop-filter:blur(7px)}dialog h2{font-size:31px;line-height:1.15;letter-spacing:-1px;margin:16px 0 12px}dialog p{color:#a9c1cd;font-size:15px;line-height:1.6;margin:10px 0 25px}#final-score{font-size:57px;letter-spacing:-2px;color:#caff78;display:block}#toast{position:absolute;top:29%;left:50%;transform:translate(-50%,-8px);font-size:15px;background:#182f3ded;border:1px solid #caff7855;color:#dfffad;border-radius:30px;padding:11px 20px;opacity:0;transition:opacity .2s,transform .2s;pointer-events:none;text-align:center;width:max-content;max-width:80%;z-index:4}#toast.show{opacity:1;transform:translate(-50%,0)}#popups{position:absolute;inset:0;pointer-events:none;overflow:hidden}.pickup{position:absolute;color:#d7ff92;font-weight:850;font-size:18px;text-shadow:0 2px 5px #08212b;animation:pickup .8s ease-out forwards;transform:translate(-50%,-50%)}@keyframes pickup{0%{opacity:1;translate:0 0}100%{opacity:0;translate:0 -45px}}@media(pointer:coarse){#joystick{display:block}.keyboard-hint{display:none}}@media(max-width:680px){#game{min-height:530px}header{left:20px;right:20px;top:max(18px,env(safe-area-inset-top))}.brand{font-size:23px}.brand small{font-size:12px;letter-spacing:1.3px}.icon-button{min-width:40px;height:40px}.scoreboard{left:20px;top:90px}.score-label{font-size:12px}#score{font-size:39px}#combo{font-size:18px}#combo-text{font-size:12px}.map-panel{right:20px;top:78px;width:126px;padding:8px}.map-note{font-size:12px}.map-panel #room-name{font-size:12px;letter-spacing:.8px}.controls{bottom:max(35px,env(safe-area-inset-bottom));left:23px;right:23px}#joystick{display:block;width:124px;height:124px}#stick{top:33px;left:33px}.joystick-arrows{font-size:100px}.keyboard-hint{display:none}#boost{width:83px;height:83px}.mission{bottom:184px;width:calc(100% - 48px);max-width:350px}.mission-label{font-size:12px}.mission-label strong{font-size:18px}.mission-detail{font-size:12px}.game-footnote{bottom:10px;font-size:12px}.start-card{padding:22px 27px 21px;width:350px;border-radius:22px}h1{font-size:43px}.robot-portrait{width:76px;height:76px;margin-bottom:13px}.start-card>p{margin:10px 0 18px;font-size:16px}.instructions{font-size:14px;gap:10px;margin-bottom:20px}#toast{font-size:13px;top:24%}}@media(max-height:690px){.start-card{padding:18px 26px;max-height:calc(100dvh - 36px);overflow:auto}.robot-portrait{width:65px;height:65px;margin-bottom:10px}h1{font-size:38px}.start-card>p{margin:10px 0 15px}.instructions{margin-bottom:16px;gap:9px}#loading-note{margin-top:10px}.mission{bottom:154px}.controls{bottom:21px}#joystick{width:108px;height:108px}#stick{left:25px;top:25px}.joystick-arrows{font-size:85px}}@media(prefers-reduced-motion:reduce){.pickup{animation-duration:.1s}*{transition:none!important}}

.map-panel .camera-angles{display:grid;grid-template-columns:repeat(2,1fr);gap:4px;margin-top:8px}.map-panel .camera-angles button{width:100%;height:36px;font-size:14px;border:1px solid #61758566;border-radius:7px;color:#b6cbd7;background:#1e3444}.map-panel .camera-angles button[aria-pressed="true"]{background:#caff78;color:#18291c;border-color:#caff78}

.asset-download{display:block;color:#9db7c7;font-size:12px;margin-top:12px;text-decoration:underline}.start-card{max-height:calc(100dvh - 40px);overflow:auto}

#dog-status{font-size:14px;font-weight:700;color:#ffc58b;margin:10px 0 0}#dog-status.danger{color:#ff8073}#dog-bark{position:absolute;pointer-events:none;display:none;transform:translate(-50%,-100%);padding:6px 11px;border-radius:12px 12px 12px 0;background:#ffe3ad;color:#563110;font-size:17px;font-weight:900;box-shadow:0 3px 12px #0003}#lose-dialog .card-kicker{color:#ff9b85}

/* Compact power status and mobile playfield. */
#battery-panel{height:40px;padding:0 9px;display:flex;align-items:center;gap:7px;border:1px solid #637b8f55;border-radius:12px;background:#142331e8;color:#caff78;text-shadow:none;position:relative;white-space:nowrap}
.battery-label{display:contents}.battery-label strong{font-size:14px;font-variant-numeric:tabular-nums;font-weight:750}
#battery-state,#battery-note{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.battery-track{order:-1;position:relative;width:22px;height:12px;border:1.5px solid currentColor;border-radius:3px;padding:2px;flex:none}.battery-track::after{content:'';position:absolute;right:-4px;top:3px;width:2px;height:4px;background:currentColor;border-radius:1px}.battery-track i{display:block;height:100%;width:100%;background:currentColor;border-radius:1px}
#battery-panel.low{color:#ffd081}#battery-panel.critical{color:#ff7c6d}#battery-panel.charging{color:#a3f2ff}#battery-panel.charging .battery-track::before{content:'ϟ';position:absolute;inset:-5px 0 0;font-size:19px;text-align:center;font-weight:900;background:#142331;z-index:1}
#map-details{display:none}.map-panel #map-body{display:block}#map-body>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:5px}
@media(max-width:680px){
 #game{min-height:0;height:100dvh}header{left:14px;right:14px;top:max(12px,env(safe-area-inset-top));align-items:center}.brand{font-size:22px}.brand small{display:none}.top-tools{gap:6px;align-items:center}.icon-button{min-width:40px;height:40px}#sound-state{display:none}
 .scoreboard{left:16px;top:70px;min-width:0;max-width:calc(100% - 166px)}.score-label{font-size:12px;letter-spacing:1.1px}#score{font-size:31px;letter-spacing:-1px}.score-row{gap:9px}#combo{font-size:16px}#combo-text{display:none}#dog-status{font-size:13px;line-height:1.35;margin:5px 0 0}
 .map-panel{right:14px;top:68px;width:136px;padding:0;border-radius:10px}.map-panel #map-details{display:block;width:100%;height:40px;color:#c8dce7;font-size:14px;line-height:1;border-radius:10px;background:#142331e8}.map-panel #map-body{display:none;padding:8px}.map-panel.expanded #map-body{display:block}.map-panel.expanded #map-details{color:#caff78}.map-panel .camera-angles button{height:40px}.map-note{display:none}
 .mission{bottom:143px;width:calc(100% - 32px);max-width:none}.mission-label{font-size:12px;letter-spacing:.5px}.mission-label strong{font-size:17px}.mission-detail{font-size:12px}.progress-track{margin:6px 0;height:4px}
 .controls{left:18px;right:18px;bottom:max(20px,env(safe-area-inset-bottom))}#joystick{width:104px;height:104px}#stick{width:48px;height:48px;left:27px;top:27px}.joystick-arrows{font-size:88px}#boost{width:76px;height:76px}.game-footnote{display:none}#toast{top:auto;bottom:202px;font-size:14px;padding:8px 14px;max-width:calc(100% - 32px);border-radius:12px}
}
@media(max-height:500px) and (pointer:coarse){.mission{bottom:14px;max-width:40%;}.controls{bottom:14px}.scoreboard{top:64px}.map-panel{top:62px}#toast{bottom:90px}}
