:root{font-family:Arial,Helvetica,sans-serif;color:#fff9df;background:#b8c9bd;font-synthesis:none;font-synthesis-weight:none;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}*{box-sizing:border-box}body{margin:0;overflow:hidden;overscroll-behavior:none}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #ffcf72;outline-offset:5px}#game{display:block;width:100vw;height:100dvh;touch-action:none}.hud{position:fixed;top:max(28px,env(safe-area-inset-top));left:max(34px,env(safe-area-inset-left));right:max(34px,env(safe-area-inset-right));display:flex;align-items:flex-start;justify-content:space-between;pointer-events:none;z-index:2}.wordmark{color:#fff8d9;text-decoration:none;font-size:42px;font-weight:1000;letter-spacing:-3px;line-height:.9;transform:rotate(-4deg);text-shadow:0 2px 0 #3a5d4d,0 4px 12px #243e3930;pointer-events:auto}.wordmark span{display:block;font:700 7px/2.8 monospace;letter-spacing:1.6px;transform:rotate(4deg);white-space:nowrap}.mission{background:#1b3d35e8;padding:12px 20px;display:flex;align-items:center;gap:9px;border:1px solid #e8e5b22c;border-radius:3px;box-shadow:0 5px 18px #15352918;font:700 10px monospace;letter-spacing:1px;position:absolute;left:50%;transform:translate(-50%)}.live-dot{width:6px;height:6px;border-radius:50%;background:#ebc76d;box-shadow:0 0 9px #ebc76d40}.mission strong{font:900 24px Arial;white-space:nowrap;letter-spacing:-1px;margin-left:9px}.mission i{font-size:16px;font-style:normal;color:#a6b8a0}.pips{position:absolute;bottom:-5px;display:flex;left:50%;transform:translate(-50%);gap:5px}.pips b{width:24px;height:4px;background:#668173;border-radius:1px;transition:background .25s}.pips b.down{background:#f6b360}.sound{pointer-events:auto;width:40px;height:40px;border-radius:50%;background:#254c4055;color:#fff8d9;border:1px solid #f9f0cc4a;display:grid;place-items:center}.sound svg{width:20px;height:20px}.muted,.sound.is-muted .waves{display:none}.sound.is-muted .muted{display:initial}.intro{position:fixed;left:5.5%;top:25%;pointer-events:none;text-shadow:0 2px 16px #1d39303b;transition:opacity 1.2s,transform 1.2s}.eyebrow{font:700 9px monospace;letter-spacing:2px;color:#fff0bd}.intro h1{font-size:clamp(30px,4.2vw,62px);font-weight:900;line-height:1.02;letter-spacing:-2px;margin:17px 0 18px}.intro em,.victory em{font-style:normal;color:#ffd184}.intro p{font-size:13px;line-height:1.7;color:#fff7de}.intro.fade{opacity:0;transform:translateY(-12px)}.hints{position:fixed;bottom:max(64px,calc(env(safe-area-inset-bottom) + 40px));left:5%;right:5%;display:flex;align-items:center;justify-content:space-between;pointer-events:none;transition:opacity 1s}.hints>div{display:flex;gap:18px;align-items:center;font:700 9px monospace;letter-spacing:2px}.hints>div span{font:300 26px Arial;width:48px;height:48px;border:1px solid #fff4cc65;border-radius:50%;display:grid;place-items:center;background:#254f4220}.hints p{font:700 8px monospace;letter-spacing:2px;opacity:.75}.hints.fade,.desktop-hint.fade{opacity:0}.desktop-hint{position:fixed;bottom:130px;left:50%;transform:translate(-50%);display:flex;gap:5px;align-items:center;pointer-events:none;transition:opacity 1s}.desktop-hint kbd{padding:4px 7px;border:1px solid #f1e7c267;border-radius:3px;font:11px monospace;background:#22453850}.desktop-hint span{font:10px monospace;opacity:.85;margin-left:5px}.level-label{position:fixed;bottom:max(22px,env(safe-area-inset-bottom));left:34px;right:34px;text-align:center;font:700 8px monospace;letter-spacing:1.7px;opacity:.85;pointer-events:none}.level-label span{border:1px solid #fff5c880;padding:3px 5px;margin-right:8px}.level-label i{font-style:normal;margin:0 8px}#toast{position:fixed;top:21%;left:50%;transform:translate(-50%,12px) rotate(-4deg);opacity:0;transition:opacity .2s,transform .2s;pointer-events:none;text-align:center;white-space:nowrap;z-index:3}#toast.show{opacity:1;transform:translate(-50%) rotate(-4deg)}#toast strong{font-size:clamp(24px,4vw,48px);font-weight:1000;letter-spacing:-1.5px;color:#ffe3a3;text-shadow:2px 3px 0 #315448,0 4px 12px #24423760}#toast span{display:block;font:700 10px monospace;letter-spacing:1.5px;margin-top:6px;text-shadow:0 2px 6px #254839}.victory{position:fixed;inset:0;z-index:5;background:#183c3299;backdrop-filter:blur(7px);display:grid;place-items:center}.victory[hidden],#error[hidden]{display:none}.victory-card{width:min(400px,88vw);text-align:center;animation:appear .5s ease-out;padding:35px 28px}.victory .eyebrow{font-size:8px;letter-spacing:2px}.stamp{margin:26px auto 20px;width:70px;height:70px;border:1px solid #eac575;border-radius:50%;display:grid;place-items:center;font:900 24px Arial;color:#ffd184;transform:rotate(-9deg)}.victory h2{font-size:clamp(42px,9vw,60px);line-height:.98;letter-spacing:-2px;margin:0 0 24px;font-weight:1000}.victory p{font:700 12px/1.8 monospace;letter-spacing:1px}#victory-time{font:10px monospace;opacity:.6;margin:18px 0 28px}#restart,#error button{border:0;background:#ffd184;color:#294c3c;padding:18px 24px;width:100%;font:900 14px Arial;letter-spacing:1px;box-shadow:0 4px #b89150;border-radius:2px}#restart span{float:right}.victory small{display:block;font:9px monospace;opacity:.6;margin-top:24px}#loading{position:fixed;inset:0;z-index:10;background:#25483e;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:17px;transition:opacity .4s}#loading strong{font-size:50px;letter-spacing:-3px;color:#ffcf7e}#loading>span:last-child{font:11px monospace;opacity:.6}.loading-cat{font:30px monospace;color:#ffb35f;animation:bob .8s infinite alternate}#error{position:fixed;inset:0;z-index:20;background:#25483e;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px;text-align:center}#error p{max-width:450px;font:13px/1.6 monospace}#error button{max-width:260px}#debug{position:fixed;left:8px;bottom:6px;background:#10271ed9;color:#cceabb;padding:10px;font:10px monospace;pointer-events:none;white-space:pre;z-index:4}@keyframes appear{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes bob{to{transform:translateY(-7px)}}@media(max-width:600px){.hud{top:max(20px,env(safe-area-inset-top));left:18px;right:18px}.wordmark{font-size:33px}.wordmark span{font-size:5px;letter-spacing:1px}.mission{top:56px;padding:8px 13px;font-size:9px;gap:7px}.mission strong{font-size:21px}.sound{width:35px;height:35px}.intro{top:23%;left:7%}.intro h1{font-size:34px}.intro .eyebrow{font-size:7px;letter-spacing:1px}.intro p{font-size:11px}.hints{left:7%;right:7%;bottom:max(80px,calc(env(safe-area-inset-bottom) + 60px))}.hints p{display:none}.hints>div{gap:9px;font-size:8px;letter-spacing:1px}.hints>div span{width:39px;height:39px}.desktop-hint{display:none}.level-label{font-size:7px;letter-spacing:1px;left:10px;right:10px}.level-label i{margin:0 4px}}@media(max-height:500px){.intro{top:30%;left:5%}.intro h1{font-size:28px;margin:8px 0}.intro p{display:none}.intro .eyebrow{font-size:7px}.hints{bottom:43px}.desktop-hint{bottom:60px}.victory-card{padding:12px}.stamp{width:40px;height:40px;font-size:16px;margin:10px auto}.victory h2{font-size:34px;margin-bottom:10px}.victory p{font-size:10px}#victory-time{margin:9px 0}#restart{padding:12px}.victory small{margin-top:12px}}.intro{top:118px;left:50%;transform:translate(-50%);white-space:nowrap;text-align:center}.intro p{font:10px monospace;letter-spacing:.5px}.intro.fade{transform:translate(-50%,-5px)}@media(max-width:600px){.intro{top:133px;left:50%}.intro p{font-size:8px;letter-spacing:0}}@media(max-height:500px){.intro{top:82px;left:50%}.intro p{display:block;font-size:8px}}#joystick{position:fixed;z-index:3;left:max(12px,env(safe-area-inset-left));bottom:max(12px,env(safe-area-inset-bottom));width:min(43vw,230px);height:min(32vh,215px);touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none}.joystick-ring{position:absolute;left:50%;top:50%;width:118px;height:118px;margin:-59px;border:1px solid #fff3cc6b;background:#234a3935;border-radius:50%;box-shadow:inset 0 0 22px #254a3633;pointer-events:none;transition:background .2s}.joystick-knob{position:absolute;width:48px;height:48px;left:34px;top:34px;border:1px solid #fff3c79c;background:#edd4a76b;border-radius:50%;box-shadow:0 4px 12px #143e3826;will-change:transform}.joystick-cross{position:absolute;inset:0;display:grid;place-items:center;color:#fff4ca45;font:32px monospace}.active .joystick-ring{background:#234a3966}.active{cursor:grabbing}.joystick-label{position:absolute;bottom:7px;left:0;width:100%;text-align:center;font:8px monospace;letter-spacing:1px;color:#fff3cb;pointer-events:none;text-shadow:0 1px 4px #183b2d}.hints{left:260px;bottom:max(35px,env(safe-area-inset-bottom));right:max(30px,env(safe-area-inset-right))}.hints p{font-size:9px;letter-spacing:1px}.desktop-hint{bottom:45px}.hints>div{margin-left:auto}.hints>div span{width:38px;height:38px}#debug{top:95px;bottom:auto;font-size:10px;max-width:95vw;overflow:hidden}.intro p{background:#24463a80;padding:7px 12px;border-radius:3px}@media(max-width:600px){.hints{left:auto;right:22px;bottom:max(40px,calc(env(safe-area-inset-bottom) + 20px))}.hints p{display:none}.hints>div{font-size:8px}.joystick-ring{width:112px;height:112px;margin:-56px}.joystick-knob{left:31px;top:31px}#debug{top:150px;font-size:8px}.intro{top:139px}}@media(pointer:fine){#joystick{opacity:.72}.hints p{display:none}}#camera-debug{position:fixed;right:max(8px,env(safe-area-inset-right));top:100px;max-width:95vw;padding:10px;background:#10271ee8;color:#bcffe2;white-space:pre;font:10px/1.5 monospace;pointer-events:none;z-index:4}#camera-debug[hidden]{display:none}@media(max-width:600px){#camera-debug{top:170px;font-size:9px}}@media(max-height:500px){#camera-debug{top:85px;font-size:9px}}
