:root{--ink: #1d2b3a;--paper: #ffffff;--sun: #ffc83d;--mint: #7ee2b8;--coral: #ff7a66;--lagoon: #2b8fb8;--font: "Fredoka", ui-rounded, "Trebuchet MS", system-ui, sans-serif}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#cfefff;color:var(--ink);font-family:var(--font);-webkit-tap-highlight-color:transparent}#app{position:fixed;top:0;right:0;bottom:0;left:0;user-select:none;-webkit-user-select:none;touch-action:none}#game{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;cursor:grab;touch-action:none}#game:active{cursor:grabbing}.panel{background:var(--paper);border:3px solid var(--ink);border-radius:18px;box-shadow:0 5px 0 var(--ink)}kbd{display:inline-block;min-width:26px;padding:1px 7px 3px;margin-right:3px;text-align:center;font:600 13px var(--font);color:var(--ink);background:#fff;border:2px solid var(--ink);border-bottom-width:4px;border-radius:7px}.hidden{opacity:0;pointer-events:none}.logo{position:absolute;top:max(14px,env(safe-area-inset-top));left:14px;padding:4px 16px 8px;font-size:26px;font-weight:700;letter-spacing:.01em;background:var(--sun);transform:rotate(-2deg)}#guide{position:absolute;top:max(14px,env(safe-area-inset-top));right:14px;padding:10px 14px 12px;font-size:15px;transition:opacity .18s ease}#guide.hidden{opacity:0}#guide .row{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center;padding:3px 0}#guide .row span:last-child{text-align:right;font-weight:600}.prompt{position:absolute;left:50%;top:66%;transform:translate(-50%);display:flex;align-items:center;gap:8px;padding:8px 16px 10px;font-size:18px;font-weight:600;white-space:nowrap;background:var(--mint);transition:opacity .15s ease}.prompt kbd{margin:0}.dialogue{position:absolute;left:50%;bottom:max(28px,env(safe-area-inset-bottom));transform:translate(-50%);width:min(600px,calc(100% - 28px));padding:18px 20px 16px;transition:opacity .18s ease,transform .18s ease}.dialogue.hidden{transform:translate(-50%,14px)}.dialogue .who{position:absolute;top:-17px;left:18px;padding:0 14px 2px;font-size:17px;font-weight:700;background:var(--mint);border:3px solid var(--ink);border-radius:10px}.dialogue p{margin:0;min-height:1.4em;font-size:19px;line-height:1.4}.start{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:20px;background:linear-gradient(180deg,#1d2b3a0d,#1d2b3a66);transition:opacity .35s ease}.start.gone{opacity:0;pointer-events:none}.start-card{max-width:440px;padding:26px 32px 30px;text-align:center}.start-card h1{margin:0 0 6px;font-size:clamp(40px,9vw,60px);line-height:1;font-weight:700;color:var(--lagoon)}.start-card p{margin:0 0 22px;font-size:19px;line-height:1.4}.btn{font:700 24px var(--font);padding:8px 40px 12px;color:#fff;background:var(--coral);border:3px solid var(--ink);border-radius:16px;box-shadow:0 6px 0 var(--ink);cursor:pointer;transition:transform .08s ease,box-shadow .08s ease}.btn:hover{filter:brightness(1.06)}.btn:active{transform:translateY(4px);box-shadow:0 2px 0 var(--ink)}.btn:focus-visible,.round:focus-visible{outline:4px solid var(--lagoon);outline-offset:3px}.touch{display:none;position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}#stick{position:absolute;left:max(22px,env(safe-area-inset-left));bottom:max(26px,env(safe-area-inset-bottom));width:128px;height:128px;border-radius:50%;background:#ffffff8c;border:3px solid var(--ink);pointer-events:auto;touch-action:none}#knob{position:absolute;left:50%;top:50%;width:54px;height:54px;margin:-27px 0 0 -27px;border-radius:50%;background:var(--sun);border:3px solid var(--ink);box-shadow:0 3px 0 var(--ink)}.touch-buttons{position:absolute;right:max(22px,env(safe-area-inset-right));bottom:max(26px,env(safe-area-inset-bottom));display:flex;align-items:flex-end;gap:14px}.round{width:78px;height:78px;border-radius:50%;font:700 17px var(--font);color:var(--ink);border:3px solid var(--ink);box-shadow:0 5px 0 var(--ink);pointer-events:auto;touch-action:none}.round:active{transform:translateY(3px);box-shadow:0 2px 0 var(--ink)}.round.mint{background:var(--mint);width:64px;height:64px;font-size:15px}.round.sun{background:var(--sun)}@media(pointer:coarse){.touch{display:block}#guide,.prompt kbd{display:none}.prompt{top:56%}.dialogue{bottom:176px}}@media(max-width:520px){.logo{font-size:21px}.dialogue p{font-size:17px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}.round.coral{background:var(--coral);color:#fff}.hud-top{position:absolute;top:max(14px,env(safe-area-inset-top));left:50%;transform:translate(-50%);display:flex;align-items:stretch;gap:10px;pointer-events:none}.stat{padding:4px 14px 8px;min-width:70px;text-align:center;font-size:24px;font-weight:700;line-height:1.15}.stat small{display:block;font-size:12px;font-weight:600;opacity:.7}.stat.kills{min-width:150px;font-size:30px;color:#fff;background:var(--coral)}.stat.best{background:var(--sun)}.stat.kills.pop{animation:pop .25s ease}@keyframes pop{0%{transform:scale(1)}40%{transform:scale(1.18) rotate(-2deg)}to{transform:scale(1)}}.toasts{position:absolute;top:calc(max(14px,env(safe-area-inset-top)) + 74px);left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none}.toast{padding:4px 16px 7px;font-size:17px;font-weight:600;background:var(--mint);white-space:nowrap;animation:toast 2.2s ease forwards}@keyframes toast{0%{opacity:0;transform:translateY(-10px) scale(.9)}10%{opacity:1;transform:translateY(0) scale(1)}80%{opacity:1}to{opacity:0;transform:translateY(-6px)}}.hud-health{position:absolute;top:calc(max(14px,env(safe-area-inset-top)) + 58px);left:14px;width:min(230px,38vw);padding:6px 12px 10px;pointer-events:none}.hp-label{display:flex;justify-content:space-between;font-size:15px;font-weight:600}.hp-track,.reload-track{height:14px;margin-top:4px;overflow:hidden;background:#e6ebf0;border:2px solid var(--ink);border-radius:8px}.hp-fill{width:100%;height:100%;background:#58d68d;transition:width .15s ease,background .2s ease}.hud-ammo{position:absolute;right:14px;bottom:max(28px,env(safe-area-inset-bottom));min-width:140px;padding:6px 16px 10px;text-align:right;pointer-events:none}.ammo-line b{font-size:38px;line-height:1}.ammo-line span{margin-left:6px;font-size:18px;font-weight:600;opacity:.65}.reload-track{height:8px;margin-top:2px}.reload-fill{width:0;height:100%;background:var(--lagoon)}.hud-ammo small{display:block;margin-top:3px;font-size:13px;font-weight:600;opacity:.7}.hud-ammo.empty{background:#ffe1dc}.crosshair{position:absolute;left:50%;top:50%;width:26px;height:26px;margin:-13px 0 0 -13px;border:3px solid #fff;border-radius:50%;box-shadow:0 0 0 2px var(--ink),inset 0 0 0 2px var(--ink);pointer-events:none;transition:transform .1s ease,border-color .1s ease}.crosshair:after{content:"";position:absolute;left:50%;top:50%;width:4px;height:4px;margin:-2px 0 0 -2px;border-radius:50%;background:var(--ink)}.crosshair.target{border-color:var(--coral);transform:scale(1.25)}.hitmark{position:absolute;left:50%;top:50%;width:0;height:0;opacity:0;pointer-events:none}.hitmark:before,.hitmark:after{content:"";position:absolute;left:-16px;top:-2px;width:32px;height:4px;background:#fff;border:2px solid var(--ink);border-radius:3px;box-sizing:content-box;margin:-2px 0 0 -2px}.hitmark:before{transform:rotate(45deg)}.hitmark:after{transform:rotate(-45deg)}.hitmark.show{animation:hitmark .22s ease-out}.hitmark.kill:before,.hitmark.kill:after{background:var(--coral)}@keyframes hitmark{0%{opacity:1;transform:scale(.7)}to{opacity:0;transform:scale(1.4)}}.banner{position:absolute;left:50%;top:24%;transform:translate(-50%);padding:8px 34px 14px;text-align:center;background:var(--sun);transition:opacity .3s ease;pointer-events:none}.banner h2{margin:0;font-size:clamp(34px,8vw,56px);line-height:1.1}.banner p{margin:0;font-size:18px;font-weight:600}.lockhint,.peaceful{position:absolute;left:50%;transform:translate(-50%);padding:4px 16px 8px;font-size:17px;font-weight:600;pointer-events:none;transition:opacity .2s ease}.lockhint{top:36%;background:var(--mint)}.peaceful{bottom:max(16px,env(safe-area-inset-bottom));font-size:14px;background:var(--mint)}.vignette{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;box-shadow:inset 0 0 140px 40px #ff282800;transition:box-shadow .4s ease}.vignette.low{box-shadow:inset 0 0 140px 30px #ff282847}.vignette.hit{animation:hurt .45s ease-out}@keyframes hurt{0%{box-shadow:inset 0 0 150px 60px #ff2828b3}to{box-shadow:inset 0 0 150px 60px #ff282800}}.over-title{color:var(--coral)!important}#go-stats{line-height:1.7}#go-stats b{color:var(--lagoon)}.newbest{display:inline-block;padding:0 10px 2px;font-weight:700;background:var(--sun);border:2px solid var(--ink);border-radius:8px}.go-hint{margin:16px 0 0!important;font-size:14px!important;opacity:.7}.touch-combat{position:absolute;right:max(22px,env(safe-area-inset-right));bottom:calc(max(26px,env(safe-area-inset-bottom)) + 96px);display:flex;align-items:flex-end;gap:14px}.round.big{width:92px;height:92px;font-size:20px}.round.small{width:60px;height:60px;font-size:14px}@media(pointer:fine){.touch-combat{display:none}.dialogue{width:min(560px,calc(100% - 360px))}}@media(pointer:coarse){.hud-ammo{top:calc(max(14px,env(safe-area-inset-top)) + 58px);bottom:auto;min-width:110px;padding:4px 12px 8px}.ammo-line b{font-size:28px}.hud-ammo small{display:none}}@media(max-width:760px){.hud-top{top:calc(max(14px,env(safe-area-inset-top)) + 54px);gap:6px}.stat{min-width:54px;padding:2px 8px 6px;font-size:19px}.stat.kills{min-width:108px;font-size:22px}.stat.best{display:none}.toasts{top:calc(max(14px,env(safe-area-inset-top)) + 120px)}.hud-health{top:auto;bottom:calc(max(26px,env(safe-area-inset-bottom)) + 150px)}}.progress-panel{position:absolute;top:calc(max(14px,env(safe-area-inset-top)) + 76px);right:14px;width:min(260px,34vw);padding:10px 13px;pointer-events:none;z-index:4}.level-stat{background:var(--mint)}.progress-heading{display:flex;justify-content:space-between;gap:8px;font-size:13px;font-weight:800}.progress-track{height:10px;margin-top:7px;overflow:hidden;border:2px solid var(--ink);border-radius:8px;background:#e6ebf0}.progress-fill{width:0%;height:100%;background:var(--mint);transition:width .3s ease}.progress-mission{margin-top:6px;font-size:11px;font-weight:700;opacity:.8}@media(max-width:760px){.progress-panel{top:calc(max(14px,env(safe-area-inset-top)) + 112px);right:8px;width:min(220px,48vw);padding:7px 9px}.progress-heading{font-size:11px}.progress-mission{font-size:10px}}.progress-panel{position:absolute;top:calc(max(14px,env(safe-area-inset-top)) + 112px);left:14px;right:auto;width:min(260px,34vw);padding:10px 13px;pointer-events:none;z-index:4}@media(max-width:760px){.progress-panel{top:auto;bottom:calc(max(26px,env(safe-area-inset-bottom)) + 210px);left:8px;right:auto;width:min(220px,48vw);padding:7px 9px}}.progress-panel{top:calc(max(14px,env(safe-area-inset-top)) + 10px);right:14px;left:auto;width:min(280px,34vw);z-index:10}@media(max-width:760px){.progress-panel{top:calc(max(14px,env(safe-area-inset-top)) + 112px);right:8px;left:auto;bottom:auto;width:min(220px,48vw)}}#guide{display:none!important}.hud-top .stat:not(.kills):not(.level-stat){display:none!important}.progress-mission{display:none!important}.progress-panel{width:min(240px,32vw)}@media(max-width:760px){.progress-panel{width:min(200px,46vw)}}@media(pointer:coarse)and (orientation:landscape)and (max-height:500px){#stick{left:max(12px,env(safe-area-inset-left));bottom:max(12px,env(safe-area-inset-bottom));width:100px;height:100px}#knob{width:46px;height:46px;margin:-23px 0 0 -23px}.touch-buttons{right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));gap:8px}.round{width:62px;height:62px;font-size:14px}.round.mint{width:52px;height:52px;font-size:12px}.touch-combat{right:max(12px,env(safe-area-inset-right));bottom:calc(max(12px,env(safe-area-inset-bottom)) + 72px);gap:8px}.round.big{width:68px;height:68px;font-size:16px}.round.small{width:48px;height:48px;font-size:12px}.dialogue{bottom:112px}}.toasts,.banner{display:none!important}@media(pointer:coarse){#stick{width:92px;height:92px}#knob{width:42px;height:42px;margin:-21px 0 0 -21px}.round{width:56px;height:56px;font-size:13px}.round.mint{width:46px;height:46px;font-size:11px}.touch-combat .round.big{width:60px;height:60px;font-size:14px}.touch-combat .round.small{width:44px;height:44px;font-size:11px}}@media(pointer:coarse){.hud-ammo{display:none!important}.hud-health{top:max(12px,env(safe-area-inset-top));left:max(12px,env(safe-area-inset-left));right:auto;bottom:auto;width:118px;padding:5px 8px 7px;z-index:11}.hp-label{font-size:11px}.hp-track{height:8px;margin-top:3px;border-width:1px}.progress-panel{top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));left:auto;bottom:auto;width:min(165px,43vw);padding:5px 7px;z-index:11}.progress-heading{font-size:10px;gap:4px}.progress-track{height:7px;margin-top:4px;border-width:1px}.camera-button{width:58px;height:44px;font-size:10px}}@media(pointer:coarse){.hud-top,.progress-panel,.logo{display:none!important}}.hud-user-hidden{display:none!important}@media(pointer:coarse){.hud-toggle-button{width:58px;height:44px;font-size:10px}}@media(pointer:coarse){#dialogue{display:none!important}}@media(pointer:coarse){.progress-panel:not(.hud-user-hidden){display:block!important}.hud-health:not(.hud-user-hidden){display:block!important}}@media(pointer:coarse){#prompt{display:none!important}}@media(pointer:coarse){.crosshair{width:17px;height:17px;margin:-8.5px 0 0 -8.5px;border-width:2px;box-shadow:0 0 0 1px var(--ink),inset 0 0 0 1px var(--ink)}.crosshair:after{width:3px;height:3px;margin:-1.5px 0 0 -1.5px}}@media(pointer:coarse){.fullscreen-button{width:58px;height:44px;font-size:10px}}
