:root{font-family:"Segoe UI",system-ui,sans-serif;font-weight:700;color:#263d37;background:#bce4e8}*{box-sizing:border-box}body{margin:0;overflow:hidden}button{font:inherit;cursor:pointer;touch-action:none;color:#354236;background:#fffceb;border:2px solid #fff;border-radius:16px;box-shadow:0 5px 0 #233b3426;padding:13px 18px;-webkit-tap-highlight-color:transparent}button:active{transform:translateY(3px)}button:focus-visible,a:focus-visible{outline:3px solid #306fca;outline-offset:3px}[hidden]{display:none!important}#scene{display:block;width:100vw;height:100dvh;touch-action:none}header{position:fixed;top:max(14px,env(safe-area-inset-top));left:78px;right:20px;display:flex;justify-content:space-between;align-items:center;pointer-events:none}.brand{font-size:25px;letter-spacing:-.035em;font-weight:950;text-shadow:0 2px #fff8}.brand small{display:block;letter-spacing:.12em;font-size:9px;margin-top:3px}header button{pointer-events:auto;font-size:21px}.scoreboard{position:fixed;top:88px;left:20px;display:flex;gap:24px;padding:14px 20px;background:#fffdeced;border:2px solid #fff;border-radius:19px;box-shadow:0 7px 25px #254b3914}.scoreboard span{font-size:8px;letter-spacing:.09em}.scoreboard b{display:block;font-size:24px;letter-spacing:-.04em;margin-top:2px}.mission{position:fixed;top:188px;left:20px;width:240px;border-radius:4px 20px 20px 20px;padding:17px 19px;background:#254e43ed;color:#fff9df;pointer-events:none}.mission>span{font-size:8px;letter-spacing:.14em;color:#bce1c5}.mission strong{display:block;font-size:16px;margin:9px 0 12px}.mission small{display:block;font-size:11px;line-height:1.65;color:#c9e0c9}.progress{height:6px;background:#fff3;border-radius:10px;overflow:hidden;margin-bottom:12px}.progress i{height:100%;display:block;background:#ffde65;width:0;transition:width .2s}#target{position:fixed;pointer-events:none;translate:-50% -50%;color:#fff9df;filter:drop-shadow(0 2px 3px #315e3e);text-align:center}#target span{font-size:52px;line-height:1}#target small{display:block;font-size:9px;letter-spacing:.14em;background:#234e3e99;border-radius:6px;padding:3px}#toast{position:fixed;top:30%;left:50%;translate:-50% 0;background:#fff8d6f2;border:2px solid white;border-radius:20px;padding:15px 24px;font-size:17px;text-align:center;width:max-content;max-width:90%;opacity:0;transition:opacity .2s;pointer-events:none}#toast.show{opacity:1}.dpad{position:fixed;bottom:max(26px,env(safe-area-inset-bottom));left:22px;text-align:center;user-select:none}.dpad button{height:51px;width:54px;padding:0;font-size:21px;margin:3px;background:#ffffedce}.weapon{position:fixed;left:50%;bottom:43px;translate:-50% 0;display:flex;gap:12px;align-items:center;padding:14px 20px;border:2px solid white;border-radius:20px;background:#fffdebe8;pointer-events:none}.weapon>span{font-size:33px}.weapon div>*{display:block}.weapon small{font-size:8px;letter-spacing:.12em;color:#81916e}.weapon strong{font-size:14px;margin:4px 0}.weapon div>span{font-size:10px;color:#6d836e}#shoot{position:fixed;right:28px;bottom:max(34px,env(safe-area-inset-bottom));width:142px;height:130px;border-radius:38px;background:#ffe075;color:#66501e;box-shadow:0 7px 0 #c89f35,0 12px 25px #204c3525;font-size:40px}#shoot strong{display:block;font-size:13px}#shoot small{display:block;font-size:8px;margin-top:5px}.hint{position:fixed;bottom:7px;left:50%;translate:-50% 0;font-size:10px;white-space:nowrap;pointer-events:none;color:#2a593b}#overlay{position:fixed;inset:0;z-index:10;background:#244c4a66;backdrop-filter:blur(6px);display:grid;place-items:center;padding:20px;overflow:auto}.card{width:min(510px,100%);max-height:100%;overflow:auto;padding:29px 34px;background:linear-gradient(135deg,#fffdeb,#eef3d7);border:2px solid white;border-radius:32px;text-align:center;box-shadow:0 25px 80px #20463245}.eyebrow{font-size:9px;letter-spacing:.16em;color:#759170}.hero{font-size:60px;margin-top:15px}h1{font-size:48px;letter-spacing:-.055em;line-height:1.02;margin:10px 0 18px}h1 em{font-style:normal;color:#c69224}#story{font-size:13px;line-height:1.7;color:#607460}.instructions{padding:5px 17px;background:#fff9;border-radius:17px;text-align:left;margin:18px 0}.instructions p{font-size:11px;line-height:1.7}.primary{width:100%;background:#315e43;color:#fff7db;font-size:15px;font-weight:900;min-height:54px}#restart{width:100%;margin-top:12px;background:transparent}#error{position:fixed;inset:0;z-index:20;background:#fffbed;padding:80px 24px;text-align:center}#error a{display:block;margin:24px;color:#315e43}
@media(max-width:600px){header{top:12px;right:12px}.brand{font-size:20px}.brand small{font-size:7px}header button{padding:10px 14px}.scoreboard{top:78px;left:12px;right:12px;justify-content:space-around;gap:8px;padding:10px}.scoreboard b{font-size:23px}.mission{top:163px;left:12px;width:215px;padding:12px 14px}.mission strong{font-size:14px}.mission>span{font-size:7px}.mission small{font-size:10px}.progress{margin-bottom:8px}.dpad{left:7px;bottom:25px}.dpad button{width:43px;height:46px;margin:2px}#shoot{right:14px;bottom:30px;width:111px;height:104px;border-radius:30px;font-size:30px}#shoot strong{font-size:11px}#shoot small{font-size:6px}.weapon{bottom:158px;padding:9px 13px;gap:9px;width:max-content;max-width:94vw}.weapon>span{font-size:24px}.weapon strong{font-size:12px}.weapon div>span{font-size:9px}.hint{display:none}.card{padding:23px}.hero{font-size:40px;margin-top:12px}h1{font-size:40px}#toast{font-size:14px;top:36%;padding:12px 17px}}
@media(max-height:520px) and (min-width:601px){.scoreboard{top:12px;left:auto;right:90px;gap:20px;padding:8px 18px}.scoreboard b{font-size:20px}.mission{top:87px;left:15px;padding:12px;width:220px}.mission strong{font-size:14px}.dpad button{width:43px;height:39px}.dpad{bottom:22px;left:16px}#shoot{width:113px;height:100px;font-size:26px;bottom:25px}.weapon{bottom:30px;padding:10px 15px}.hero{display:none}h1{font-size:30px}h1 br{display:none}.card{padding:18px 26px}#story{font-size:11px}.instructions{margin:10px 0}.instructions p{margin:7px 0}}
