@charset "UTF-8";
:root{color-scheme:dark;--forest:#203c33;--ink:#283b2d;--cream:#fff4d8;--gold:#e9ad45;--muted:#b7c5b6;--header:66px;--footer:64px;font-family:Trebuchet MS,Segoe UI,sans-serif;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;height:100vh;height:100dvh;display:flex;flex-direction:column;background:#142d26;color:var(--cream);overflow:hidden;overscroll-behavior:none}button,a,input{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;border:0}button:disabled{cursor:default;opacity:.48}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #fff2ae;outline-offset:4px}button,canvas{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}button{touch-action:manipulation}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.masthead{height:var(--header);flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 max(26px,env(safe-area-inset-right)) 0 max(26px,env(safe-area-inset-left));background:var(--forest);border-bottom:1px solid #ffffff13;z-index:3}.wordmark{display:flex;align-items:center;gap:10px;color:var(--cream);text-decoration:none;letter-spacing:2px;font-size:17px;font-weight:900;line-height:1}.wordmark small{display:block;font-size:8px;letter-spacing:1.55px;line-height:1;margin-top:7px;color:#bdc9b0}.brand-mark{width:35px;height:35px;display:grid;place-items:center;background:var(--gold);color:var(--forest);border-radius:9px 5px 10px 5px;transform:rotate(-6deg);font:900 29px/1 Georgia,serif}.header-right{display:flex;align-items:center;gap:8px}.edition{font-size:12px;color:#b7c5b3;margin-right:16px}.icon-button{width:42px;height:42px;display:grid;place-items:center;flex-shrink:0;border-radius:50%;background:#ffffff08;color:var(--cream);border:1px solid #ffffff24;font-weight:700;font-size:21px;transition:background .15s,transform .15s}.icon-button:hover{background:#ffffff1d}.icon-button:active{transform:scale(.92)}.icon-button.is-muted{opacity:.5}.icon-button.is-muted:after{content:"";position:absolute;width:24px;height:2px;background:currentColor;transform:rotate(-45deg)}
#gameShell{flex:1;min-height:0;display:flex;justify-content:center;align-items:stretch;background:radial-gradient(ellipse at center,#415a36,#142d26 80%);padding:0 14px}.stage{position:relative;isolation:isolate;width:100%;max-width:calc((100dvh - var(--header) - var(--footer)) * 16 / 9);height:100%;overflow:hidden;background:#55a2e8;box-shadow:0 0 60px #0004}canvas{display:block;position:absolute;inset:0;width:100%;height:100%;touch-action:none;outline:none;cursor:crosshair}canvas:focus-visible{box-shadow:inset 0 0 0 3px #fff4a8}.hud{position:absolute;top:20px;left:24px;right:24px;display:flex;align-items:flex-start;justify-content:space-between;pointer-events:none;z-index:2;gap:12px}.hud-score{position:relative;background:var(--forest);border:2px solid #fff4d87a;box-shadow:0 4px 0 #132b25,0 5px 14px #0002;min-width:134px;padding:12px 20px 10px;border-radius:9px;transform:rotate(-1deg)}.hud-label{display:block;font-size:9px;letter-spacing:1.7px;font-weight:bold;color:#eadbaf}.hud-score strong{font:900 37px/1.15 Georgia,serif;letter-spacing:.5px;display:block;font-variant-numeric:tabular-nums}.combo{position:absolute;right:-20px;bottom:-12px;background:#ffc454;color:#3e3517;font-size:17px;font-weight:900;padding:5px 8px;border:2px solid #6f411e;border-radius:10px;transform:rotate(8deg)}.hud-clock{background:#fff7dfeb;color:var(--ink);border-radius:30px;padding:10px 19px 14px;position:relative;display:flex;align-items:center;gap:8px;box-shadow:0 3px 0 #735c3840;border:1px solid #fff8e6;min-width:130px}.hud-clock strong{font-size:28px;line-height:1;font-weight:900;font-variant-numeric:tabular-nums}.hud-clock svg{width:22px;height:22px}.time-track{position:absolute;bottom:5px;left:18px;right:18px;height:3px;background:#465c3d20;border-radius:3px;overflow:hidden}.time-track i{display:block;height:100%;width:100%;background:#5f8051;transform-origin:left}.hud-clock.urgent{color:#ac3d2e;background:#fff0d5}.hud-clock.urgent i{background:#bb4636}.hud-secrets{pointer-events:auto;min-height:66px;background:#203c33e8;color:#f7cf76;border:1px solid #fff4d872;border-radius:9px;padding:10px 14px;box-shadow:0 3px 0 #132b25}.hud-secrets>span:nth-child(2){display:block;font-size:26px;letter-spacing:5px;line-height:1.2;margin-top:4px}.hud-secrets .hud-label{font-size:8px;letter-spacing:1.3px}
.screen{position:absolute;inset:0;z-index:5;display:flex;align-items:center;justify-content:center}.intro{justify-content:flex-start;pointer-events:none;background:linear-gradient(90deg,#f8efd880 0%,#f8efd820 42%,transparent 65%)}.intro-card{margin-left:6%;width:420px;max-width:44%;position:relative;pointer-events:auto;padding:32px 30px 23px;background:#fff4d8f2;color:var(--ink);border:1px solid #fff8e6;border-radius:9px 18px 10px 18px;box-shadow:0 14px 40px #23372125;transform:rotate(-1deg)}.eyebrow{display:block;font-size:9px;letter-spacing:1.55px;font-weight:800;color:#5d7153;line-height:1.7}.intro-card .eyebrow{white-space:nowrap;font-size:8px;letter-spacing:1.25px}.eyebrow>span{display:inline-block;background:#bd5940;width:6px;height:6px;border-radius:50%;margin-right:6px}.intro h1{font:900 clamp(54px,6vw,88px)/.84 Georgia,serif;letter-spacing:-5px;margin:25px 0 23px;color:#294d3c;text-shadow:1px 2px 0 #fff}.intro h1>span{display:block;color:#a94a32;margin-left:22px}.tagline{font-size:16px;line-height:1.5;margin:0 0 20px}.intro-facts{display:flex;align-items:center;gap:12px;margin:0 0 22px;font-size:11px;font-weight:bold;color:#58664f}.intro-facts i{width:3px;height:3px;border-radius:50%;background:#b28c55}.primary-button{min-height:52px;width:100%;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 20px;border-radius:7px;background:#dca849;border:1px solid #e8bd67;border-bottom:4px solid #b7792c;color:#283c2c;font-weight:900;font-size:16px;box-shadow:0 4px 9px #60391714;transition:transform .15s,background .15s}.primary-button>span:last-child{font-size:23px;line-height:1}.primary-button:hover:not(:disabled){background:#f0bd5c;transform:translateY(-1px)}.primary-button:active:not(:disabled){transform:translateY(2px);border-bottom-width:2px}.text-button{display:block;margin:10px auto 0;min-height:38px;padding:5px 9px;background:transparent;color:#506048;font-size:12px;text-decoration:underline;text-underline-offset:4px}.intro-hint{font-size:11px;line-height:1.5;color:#66735a;border-top:1px solid #5b6a3628;padding-top:14px;margin:10px 0 0}.scene-stamp{position:absolute;bottom:8%;right:5%;width:112px;height:112px;border:3px double #fcf0cdcc;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;background:#244636d9;color:#fff2cf;transform:rotate(11deg);font-size:10px;line-height:1.4;letter-spacing:1.2px;box-shadow:0 5px 22px #0003}.scene-stamp>span{font:bold 26px Georgia,serif;letter-spacing:0;margin-bottom:3px}
.controlbar{height:var(--footer);flex-shrink:0;padding:0 max(25px,env(safe-area-inset-right)) max(0px,env(safe-area-inset-bottom)) max(25px,env(safe-area-inset-left));display:flex;align-items:center;justify-content:space-between;gap:20px;background:var(--forest);border-top:1px solid #ffffff18;z-index:3}.footer-note{display:flex;align-items:center;gap:9px;color:#bdc7ad;font-size:9px;letter-spacing:1.4px;font-weight:700;min-width:240px}.live-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:#dba951;box-shadow:0 0 0 4px #dba95115}.ammo-panel{display:flex;align-items:center;gap:17px}.ammo-dots{display:flex;gap:5px}.ammo-dots i{display:block;width:9px;height:21px;background:linear-gradient(#e7bd6c 0 65%,#9c7840 65%);border:1px solid #e9c985;border-radius:4px 4px 1px 1px;box-shadow:0 1px 1px #0004}.ammo-dots i.empty{background:#49604e;border-color:#6c7d5e;box-shadow:none}.reload-button{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;gap:10px;color:var(--cream);background:#ffffff0a;border:1px solid #ffffff30;border-radius:7px;padding:8px 14px;min-height:42px;font-size:12px;font-weight:700}.reload-button svg{width:18px;height:18px}.reload-button kbd{background:#f3f1d714;padding:2px 5px;border:1px solid #f3f1d72b;border-radius:3px;font-size:10px}.reload-button.is-reloading{background:linear-gradient(90deg,#b3934670 var(--reload-progress,0%),#ffffff0a var(--reload-progress,0%))}.reload-button.is-reloading svg{animation:turn .8s linear infinite}.controlbar>.icon-button{width:37px;height:37px;margin-left:calc(240px - 37px)}
.modal-shade{background:#102a23a3;backdrop-filter:blur(4px);padding:18px;overflow:auto}.paper-panel{position:relative;flex-shrink:0;background:#fff5dd;color:var(--ink);border:1px solid #fff9e8;box-shadow:0 15px 60px #0c25194d;border-radius:12px;padding:34px;width:420px;max-width:100%;text-align:center;max-height:100%;overflow:auto;scrollbar-width:thin;scrollbar-color:#a6ae8e transparent}.paper-panel h2{font:900 35px/1.05 Georgia,serif;letter-spacing:-1.2px;margin:12px 0 16px}.paper-panel>p{font-size:14px;line-height:1.5;color:#647056;margin:15px 0 23px}.secondary-button{background:transparent;border:1px solid #68745752;border-radius:7px;min-height:45px;width:100%;margin-top:12px;color:#58664f;font-weight:700;font-size:13px}.result-panel{width:480px}.result-panel h2{font-size:31px}.result-score{margin:18px 0 10px;display:flex;align-items:center;flex-direction:column}.result-score strong{font:900 74px/.95 Georgia,serif;letter-spacing:-3px;color:#ac5034;font-variant-numeric:tabular-nums}.result-score>span{font-size:10px;letter-spacing:4px;font-weight:bold;margin-top:9px}.result-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;padding:20px 0;border-top:1px solid #52634128;border-bottom:1px solid #52634128}.result-stats strong{display:block;font-size:23px;line-height:1.2;font-weight:900}.result-stats span{display:block;font-size:10px;margin-top:6px;color:#66745b}.paper-panel .session-best{font-size:11px;margin:15px 0 20px}.help-panel{width:530px;text-align:left;padding:30px}.help-panel h2{font-size:30px;padding-right:20px}.close-button{position:absolute;right:15px;top:12px;width:40px;height:40px;border-radius:50%;background:#213e3210;color:#294832;font-size:28px}.instructions{list-style:none;counter-reset:steps;padding:0;margin:22px 0}.instructions>li{position:relative;padding-left:39px;counter-increment:steps;margin:0 0 16px}.instructions>li:before{content:counter(steps);position:absolute;left:0;top:2px;width:25px;height:25px;border:1px solid #c1b48b;border-radius:50%;text-align:center;line-height:24px;font-size:12px;color:#667249;font-weight:700}.instructions b{display:block;font-size:14px;margin-bottom:4px}.instructions span{display:block;font-size:12px;color:#627054;line-height:1.55}.secret-book{background:#e5e6ce;border:1px dashed #9caa7d;border-radius:6px;padding:15px}.book-title{font-size:8px;font-weight:bold;letter-spacing:1.2px}.secret-book ul{list-style:none;padding:0;margin:10px 0 0}.secret-book li{font-size:12px;color:#62724d;line-height:1.7;margin:3px 0}.secret-book li.found{color:#9b482c;font-weight:bold}.gentle-setting{display:flex;align-items:flex-start;gap:9px;font-weight:700;font-size:12px;margin:20px 0 12px;cursor:pointer}.gentle-setting input{accent-color:#47694b;width:19px;height:19px;margin:0;flex-shrink:0}.gentle-setting small{display:block;font-weight:400;color:#6a765b;margin-top:4px;font-size:10px;line-height:1.5}.paper-panel .keyboard-note{font-size:10px;line-height:1.6;margin:10px 0 18px;color:#7a8066}.toast{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);max-width:86%;width:max-content;background:#203c33ed;color:#fff3d3;padding:11px 20px;box-shadow:0 3px 15px #0002;border:1px solid #fff4d853;border-radius:24px;z-index:4;font-size:12px;font-weight:700;text-align:center;pointer-events:none}.chapter{position:absolute;top:29%;left:0;right:0;text-align:center;font:900 35px/1.1 Georgia,serif;color:#fff7df;text-shadow:2px 3px 0 #274833,0 4px 20px #274833;pointer-events:none;z-index:3;animation:chapter-in .35s ease-out}.chapter small{display:block;font:700 12px Trebuchet MS,sans-serif;letter-spacing:1px;margin-top:10px;color:#fff5cf}.hotspots{position:absolute;inset:0;pointer-events:none;z-index:1}.hotspot{position:absolute;border:0;background:transparent;color:transparent;pointer-events:none;border-radius:50%;padding:0;transform:translate(-50%,-50%)}.hotspot:focus-visible{outline:3px dashed #fff5a8;background:#f6d06133}.hotspot:focus-visible:after{content:attr(aria-label);position:absolute;left:50%;top:calc(100% + 9px);transform:translateX(-50%);background:#203c33;color:#fff3d4;padding:7px 12px;font-size:11px;border-radius:5px;white-space:nowrap;pointer-events:none}.stage.is-playing .intro{display:none}.stage.is-loading:before{content:"";position:absolute;inset:0;background:#39694d}
@keyframes turn{to{transform:rotate(360deg)}}@keyframes chapter-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1700px){.intro-card{width:460px;padding:42px}.intro h1{font-size:96px}.tagline{font-size:18px}}
@media(max-width:900px){:root{--header:58px;--footer:58px}.masthead{padding:0 14px}.edition{display:none}.footer-note{min-width:0;font-size:8px;letter-spacing:.7px;max-width:180px}.controlbar{padding-left:16px;padding-right:16px;gap:10px}.controlbar>.icon-button{margin-left:0}#gameShell{padding:0}.intro-card{width:370px;max-width:48%;padding:23px}.intro h1{font-size:60px}.intro .eyebrow{font-size:6.5px;letter-spacing:.9px}.tagline{font-size:13px}.intro-facts{font-size:9px;gap:9px}.intro-hint{font-size:10px}.scene-stamp{width:88px;height:88px;font-size:8px}.scene-stamp>span{font-size:23px}.hud{top:14px;left:15px;right:15px}.hud-score{padding:9px 13px;min-width:112px}.hud-score strong{font-size:30px}.hud-clock{padding:9px 14px 13px;min-width:114px}.hud-clock strong{font-size:25px}.hud-secrets{padding:8px 10px;min-height:61px}.hud-secrets>span:nth-child(2){font-size:22px}.hud-secrets .hud-label{font-size:7px}}
@media(max-width:600px) and (orientation:portrait){:root{--header:58px;--footer:66px}.masthead{padding-left:14px;padding-right:12px}.wordmark{font-size:14px;letter-spacing:1.4px;gap:8px}.wordmark small{font-size:6px;letter-spacing:1px}.brand-mark{width:30px;height:32px;font-size:25px}.header-right{gap:5px}.icon-button{height:36px;width:36px;font-size:18px}.icon-button svg{width:20px;height:20px}.intro{align-items:flex-start;background:linear-gradient(#d7ebf03b,transparent 75%)}.intro-card{margin:92px auto 0;max-width:calc(100% - 44px);width:342px;padding:22px 23px 17px;transform:rotate(-.7deg)}.intro h1{font-size:68px;line-height:.86;margin:20px 0}.intro h1>span{margin-left:28px}.intro-card .eyebrow{font-size:7px;letter-spacing:1px}.tagline{font-size:14px;line-height:1.4;margin-bottom:15px}.intro-facts{font-size:10px;margin-bottom:16px;gap:10px}.intro-hint{font-size:10px;margin-top:5px;padding-top:10px}.primary-button{min-height:49px;font-size:15px}.scene-stamp{display:none}.controlbar{height:calc(var(--footer) + env(safe-area-inset-bottom));padding:5px 14px calc(5px + env(safe-area-inset-bottom));justify-content:space-between;gap:8px}.footer-note{display:none}.ammo-panel{flex:1;justify-content:space-between;gap:12px}.ammo-dots{gap:5px}.ammo-dots i{width:10px;height:25px}.reload-button{min-height:45px;padding:8px 12px;font-size:11px}.reload-button kbd{display:none}.controlbar>.icon-button{margin-left:3px;width:36px}.hud{top:15px;left:13px;right:13px;gap:7px}.hud-score{min-width:97px;padding:9px 12px}.hud-label{font-size:8px;letter-spacing:1.2px}.hud-score strong{font-size:30px}.hud-clock{min-width:95px;padding:11px 10px 15px;gap:5px;justify-content:center}.hud-clock strong{font-size:22px}.hud-clock svg{width:18px;height:18px}.hud-secrets{min-width:89px;min-height:62px;padding:8px 6px}.hud-secrets .hud-label{font-size:6px;letter-spacing:.7px}.hud-secrets>span:nth-child(2){font-size:22px;letter-spacing:2px}.toast{bottom:15px;padding:10px 15px;font-size:11px}.chapter{top:24%;font-size:30px}.chapter small{font-size:11px}.paper-panel{padding:28px 23px}.paper-panel h2{font-size:29px}.modal-shade{padding:13px}.help-panel{padding:24px 21px}.help-panel h2{font-size:26px}.keyboard-note{display:none}.result-score strong{font-size:64px}}
@media(max-height:700px) and (orientation:portrait){.intro-card{margin-top:36px;padding:19px 22px 15px}.intro h1{font-size:54px;margin:17px 0}.intro-hint{display:none}.tagline{font-size:13px;margin-bottom:12px}.intro-facts{margin-bottom:12px}.intro .text-button{margin-top:5px}}
@media(max-height:530px) and (orientation:landscape){:root{--header:45px;--footer:46px}.masthead{padding:0 12px}.wordmark{font-size:12px}.wordmark small{font-size:6px;margin-top:4px}.brand-mark{height:28px;width:28px;font-size:24px}.icon-button{width:32px;height:32px}.header-right{gap:6px}.icon-button svg{width:19px;height:19px}.controlbar{padding:0 14px}.controlbar>.icon-button{width:32px;height:32px}.intro-card{margin-left:5%;width:290px;padding:16px 20px;max-width:46%;max-height:95%;overflow:auto}.intro h1{font-size:45px;margin:14px 0;letter-spacing:-3px}.intro h1>span{display:inline;margin-left:0}.tagline{font-size:11px;line-height:1.35;margin-bottom:10px}.intro-facts{font-size:9px;gap:8px;margin-bottom:12px}.intro .primary-button{min-height:40px;padding:9px 14px;font-size:12px}.intro .primary-button span:last-child{font-size:18px}.intro-hint{display:none}.intro .text-button{margin-top:3px;min-height:30px;font-size:10px}.hud{top:10px;left:12px;right:12px}.hud-score{padding:5px 11px;min-width:90px}.hud-score strong{font-size:25px}.hud-label{font-size:7px}.hud-clock{padding:7px 10px 11px;min-width:98px}.hud-clock strong{font-size:20px}.hud-clock svg{width:17px;height:17px}.hud-secrets{padding:6px 9px;min-height:50px}.hud-secrets>span:nth-child(2){font-size:18px;margin-top:2px}.hud-secrets .hud-label{font-size:6px}.ammo-dots i{height:18px;width:8px}.reload-button{min-height:34px;font-size:11px;padding:5px 10px}.paper-panel{padding:22px;max-height:100%}.scene-stamp{width:73px;height:73px;bottom:9%;font-size:7px}.scene-stamp>span{font-size:20px}.toast{bottom:10px;font-size:10px;padding:8px 15px}.chapter{font-size:26px}.chapter small{font-size:10px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}.intro-card,.hud-score,.scene-stamp{transform:none}}
@media(max-width:350px) and (orientation:portrait){.hud{left:10px;right:10px;gap:6px}.hud-score{min-width:92px}.hud-clock{min-width:90px}.hud-secrets{min-width:82px}.hud-secrets>span:nth-child(2){font-size:20px;letter-spacing:1px;white-space:nowrap}}
/* Version 2: stationary scene, separate aim and fire controls. */
:root{--footer:162px}
canvas{cursor:default}
.controlbar{height:calc(var(--footer) + env(safe-area-inset-bottom));justify-content:center;gap:32px;padding:8px 14px calc(8px + env(safe-area-inset-bottom));align-items:center}
.dpad{display:grid;grid-template-columns:repeat(3,44px);grid-template-rows:repeat(3,44px);gap:3px;flex-shrink:0;touch-action:none}
.dpad button{display:grid;place-items:center;padding:0;border-radius:8px;border:1px solid #e4d4a74d;background:#ffffff10;color:#fff4d9;font-size:24px;touch-action:none;user-select:none;-webkit-touch-callout:none}
.dpad button.diagonal{color:#c5d0b8;background:#ffffff05;font-size:21px}
.dpad button.is-held{background:#ecc16d;color:#203c33;box-shadow:inset 0 2px 3px #6b4c2244}
.dpad-center{display:grid;place-items:center;color:#afc2a7;font-size:24px}
.shot-controls{display:flex;flex-direction:column;gap:5px;width:165px;flex-shrink:0}
.action-meta{display:flex;align-items:center;justify-content:space-between;min-height:39px;gap:7px}
.action-meta .ammo-dots{gap:5px}.action-meta .ammo-dots i{height:23px;width:9px}.action-meta .icon-button{width:44px;height:44px}
.fire-button{display:flex;align-items:center;justify-content:center;gap:9px;height:48px;min-height:48px;border:1px solid #ffe6a6;border-radius:8px;background:#e3ae4b;color:#243d2e;font-size:16px;font-weight:900;box-shadow:0 3px 0 #9d6f27;touch-action:manipulation}
.fire-button:active{transform:translateY(2px);box-shadow:0 1px 0 #9d6f27}.fire-button:disabled{opacity:.5}
.shot-controls .reload-button{width:100%;justify-content:center;min-height:44px;padding:6px 8px}.shot-controls .reload-button kbd{font-size:9px}
.version-link{color:#d7dfca;min-height:44px;display:flex;align-items:center;text-decoration:none;font-size:12px;padding:8px}
.close-button{width:44px;height:44px}.icon-button{width:44px;height:44px}.wordmark{min-height:44px}
.intro-card{max-height:calc(100% - 24px);overflow:auto}.intro .text-button{min-height:44px}
@media(pointer:coarse){.gentle-setting{min-height:44px;align-items:center}.gentle-setting input{width:24px;height:24px}.text-button{min-height:44px}.keyboard-note{display:none}}
@media(max-width:900px){:root{--footer:162px}}
@media(max-width:600px) and (orientation:portrait){
 :root{--header:60px;--footer:160px}
 .masthead{padding:0 8px 0 10px}.wordmark{font-size:13px;letter-spacing:1px;gap:6px}.wordmark small{font-size:6px;letter-spacing:.4px}.brand-mark{width:26px;height:30px;font-size:23px}.header-right{gap:3px}
 .controlbar{display:flex;gap:12px;justify-content:space-between;padding:7px 10px calc(8px + env(safe-area-inset-bottom))}.version-link{display:none}.shot-controls{width:calc(100% - 151px);max-width:190px}.shot-controls .reload-button{font-size:11px}.reload-button kbd{display:none}
 .intro-card{margin:16px auto 0;padding:18px 22px 12px;max-height:calc(100% - 28px)}.intro h1{font-size:52px;margin:14px 0}.intro-card .eyebrow{font-size:7px;letter-spacing:1px}.tagline{font-size:13px;margin-bottom:12px}.intro-facts{margin-bottom:13px;font-size:10px}.intro-hint{display:none}.intro .text-button{margin-top:4px}
 .hud{left:8px;right:8px;top:10px;gap:5px}.hud-score{min-width:82px;padding:8px 9px}.hud-score strong{font-size:26px}.hud-clock{min-width:85px;padding:9px 8px 13px}.hud-secrets{min-width:79px;min-height:58px;padding:7px 5px}.hud-secrets>span:nth-child(2){font-size:20px;letter-spacing:2px;white-space:nowrap}.hud-secrets .hud-label{font-size:6px}
 .chapter{font-size:26px;top:29%}.chapter small{font-size:10px;letter-spacing:0}.toast{font-size:10px;bottom:9px;padding:8px 11px}
}
@media(max-height:530px) and (orientation:landscape){
 :root{--header:48px;--footer:44px}
 .masthead{padding-left:max(8px,env(safe-area-inset-left));padding-right:max(8px,env(safe-area-inset-right))}.header-right{gap:5px}.icon-button{width:44px;height:44px}.wordmark small{font-size:6px}
 #gameShell{padding:0 max(142px,env(safe-area-inset-right)) 0 max(156px,env(safe-area-inset-left))}.stage{max-width:none}
 .controlbar{height:calc(44px + env(safe-area-inset-bottom));padding:0 10px env(safe-area-inset-bottom);gap:0}.version-link{display:flex;justify-content:center;min-height:44px}
 .dpad{position:fixed;left:max(8px,env(safe-area-inset-left));top:calc(var(--header) + (100dvh - var(--header) - var(--footer) - 138px - env(safe-area-inset-bottom)) / 2)}
 .shot-controls{position:fixed;right:max(8px,env(safe-area-inset-right));top:calc(var(--header) + (100dvh - var(--header) - var(--footer) - 134px - env(safe-area-inset-bottom)) / 2);width:122px}
 .action-meta{justify-content:center;min-height:34px}.action-meta .ammo-dots i{height:22px;width:9px}.action-meta #fullscreenButton{position:fixed;top:2px;right:161px}.fire-button{font-size:14px;gap:5px}.fire-button svg{width:20px;height:20px}.shot-controls .reload-button{font-size:10px;gap:5px}.reload-button kbd{display:none}
 .hud{left:6px;right:6px;top:7px;gap:4px}.hud-score{min-width:68px;padding:5px 6px}.hud-score strong{font-size:21px}.hud-clock{min-width:74px;padding:6px 6px 11px;gap:3px}.hud-clock strong{font-size:18px}.hud-clock svg{width:15px}.hud-label{font-size:6px;letter-spacing:.6px}.hud-secrets{min-width:63px;min-height:44px;padding:5px 5px}.hud-secrets>span:nth-child(2){font-size:16px;letter-spacing:1px;white-space:nowrap}.hud-secrets .hud-label{font-size:5px;letter-spacing:.3px}
 .intro{align-items:center}.intro-card{margin:0;width:calc(100% - 16px);max-width:calc(100% - 16px);padding:13px 15px;max-height:calc(100% - 12px);transform:none}.intro h1{font-size:37px;margin:10px 0}.intro .eyebrow{font-size:6px;letter-spacing:.5px}.tagline{font-size:10px;margin:9px 0}.intro-facts{font-size:8px;margin-bottom:8px}.intro .primary-button{min-height:44px}.intro .text-button{min-height:44px}.scene-stamp{display:none}.chapter{top:30%;font-size:22px}.chapter small{font-size:9px;letter-spacing:0}.toast{bottom:8px;max-width:94%;font-size:9px;padding:6px 8px}
 .modal-shade{padding:6px}.paper-panel{padding:16px;max-height:100%}.paper-panel h2{font-size:24px}.help-panel h2{padding-right:35px}.close-button{right:8px;top:6px}.instructions>li{padding-left:32px}.instructions span{font-size:11px}
}
@media(max-width:350px) and (orientation:portrait){.intro h1{font-size:43px}.intro-card{padding:14px 17px}.intro-facts{font-size:9px}.tagline{font-size:12px}.shot-controls .ammo-dots{gap:4px}.shot-controls .ammo-dots i{width:8px}.fire-button{font-size:14px;gap:6px}}

/* Visible return to version selection, including fullscreen and touch play. */
.game-menu-button{position:absolute;left:max(10px,env(safe-area-inset-left));bottom:max(10px,env(safe-area-inset-bottom));z-index:3;display:flex;align-items:center;justify-content:center;gap:7px;min-width:88px;min-height:44px;padding:9px 12px;border:1px solid #fff4d880;border-radius:8px;background:#203c33ed;color:#fff4d8;text-decoration:none;font-size:13px;font-weight:800;box-shadow:0 2px 6px #0003;touch-action:manipulation}
.game-menu-button svg{width:18px;height:18px}.game-menu-button:hover{background:#315747}.menu-return{display:flex;align-items:center;justify-content:center;min-height:44px;text-decoration:none}
.toast{bottom:64px}

/* Analog thumbstick; all aim/fire gestures stay within the game. */
.joystick{position:relative;display:block;width:138px;height:138px;border:2px solid #f6e7bb55;border-radius:50%;background:radial-gradient(circle,#34594b 0 24%,#24493e 25% 58%,#193b32 59%);box-shadow:inset 0 3px 15px #071c1666;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;flex-shrink:0;overflow:hidden}
.stick-axis{position:absolute;background:#f6e7bb1f;pointer-events:none}.stick-axis.horizontal{height:1px;left:10px;right:10px;top:50%}.stick-axis.vertical{width:1px;top:10px;bottom:10px;left:50%}
.stick-knob{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:51px;height:51px;border-radius:50%;display:grid;place-items:center;border:2px solid #fff1c29c;background:linear-gradient(#f2c568,#bb8d3d);box-shadow:0 4px 10px #071c1680;color:#244537;font-size:27px;pointer-events:none}
.joystick.is-held{border-color:#f2c568}.joystick[aria-disabled=true]{opacity:.5}.joystick:focus-visible{outline:3px solid #fff2ae;outline-offset:3px}
#gameCanvas,#aimStick,#fireButton,#reloadButton{touch-action:none}
@media(max-height:530px) and (orientation:landscape){.joystick{position:fixed}}
html{overflow:hidden;overscroll-behavior:none}body{width:100%;max-width:100%;touch-action:manipulation}
