@font-face{font-family:Oswald;src:url("assets/fonts/oswald-500.ttf") format("truetype");font-style:normal;font-weight:500;font-display:swap}
@font-face{font-family:Oswald;src:url("assets/fonts/oswald-700.ttf") format("truetype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"Roboto Slab";src:url("assets/fonts/roboto-slab-900.ttf") format("truetype");font-style:normal;font-weight:900;font-display:swap}

:root{--red:#E8382F;--cream:#FFF3DC;--cobalt:#1F4FD1;--mustard:#FFC22E;--mint:#3FD6A8;--pink:#FF6FA8;--ink:#0E1636;--warm:#FFD98A;--gold:#D99A27;--paper:#FFF9EB;--safe-top:max(14px,env(safe-area-inset-top));--safe-right:max(16px,env(safe-area-inset-right));--safe-bottom:max(14px,env(safe-area-inset-bottom));--safe-left:max(16px,env(safe-area-inset-left))}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--ink)}
body{margin:0;color:var(--ink);background:var(--cream);font-family:Oswald,"Arial Narrow",Arial,sans-serif;font-weight:500;overflow-x:hidden}
body.modal-open{overflow:hidden}
button,a{-webkit-tap-highlight-color:transparent}
button{font:inherit;cursor:pointer}
a{color:inherit}
button:focus-visible,a:focus-visible{outline:3px solid var(--mustard);outline-offset:4px}
[hidden]{display:none!important}
.hero{position:relative;min-height:100vh;min-height:100svh;overflow:hidden;background:var(--ink);isolation:isolate;scroll-margin-top:0}
.scene{position:absolute;inset:0;z-index:0;touch-action:none;cursor:default}
.hero.is-playing .scene{cursor:none}
.scene canvas{display:block;width:100%;height:100%;touch-action:none}
.scene-vignette{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,rgba(6,12,36,.28),transparent 19%,transparent 77%,rgba(6,12,36,.3));box-shadow:inset 0 0 120px rgba(4,8,28,.28)}
.game-bar{position:absolute;z-index:12;top:var(--safe-top);left:var(--safe-left);right:var(--safe-right);display:grid;grid-template-columns:1fr auto 1fr;align-items:start;gap:16px;pointer-events:none}
.game-bar a,.game-bar button{pointer-events:auto}
.hud-cluster{display:flex;gap:8px;align-items:flex-start}
.tin-plaque{position:relative;min-width:100px;padding:7px 15px 6px;color:var(--ink);background:var(--cream);border:2px solid var(--red);border-radius:5px;box-shadow:0 0 0 2px var(--warm),0 4px 0 rgba(53,20,16,.28),inset 0 1px rgba(255,255,255,.8);text-align:center;line-height:1}
.tin-plaque::before,.tin-plaque::after{content:"";position:absolute;top:50%;width:5px;height:5px;margin-top:-2px;border-radius:50%;background:var(--gold);box-shadow:inset 0 1px #fff5}
.tin-plaque::before{left:5px}.tin-plaque::after{right:5px}
.tin-plaque span{display:block;font-size:10px;letter-spacing:.16em;color:var(--red)}
.tin-plaque strong{display:block;margin-top:4px;font-size:27px;line-height:1;font-weight:700;font-variant-numeric:tabular-nums}
.best-plaque{min-width:88px}.best-plaque strong{font-size:22px;margin-top:5px}
.hero-nav{display:flex;gap:4px;padding:4px;background:var(--cream);border:2px solid var(--red);border-radius:5px;box-shadow:0 0 0 2px var(--warm),0 4px 0 #3019;pointer-events:auto}
.hero-nav a{padding:7px 14px;text-decoration:none;font-size:12px;letter-spacing:.12em;line-height:1;border-radius:2px}
.hero-nav a:first-child{color:var(--cream);background:var(--red)}
.hero-nav a:hover{background:var(--mustard);color:var(--ink)}
.bar-actions{justify-self:end;display:flex;gap:8px;pointer-events:auto}
.sound-button,.pause-button{min-height:38px;padding:8px 13px;color:var(--ink);background:var(--cream);border:2px solid var(--red);border-radius:5px;box-shadow:0 0 0 2px var(--warm),0 4px 0 #3019;font-size:11px;font-weight:700;letter-spacing:.1em}
.sound-button{display:flex;align-items:center;gap:7px}
.sound-dot{width:10px;height:10px;border-radius:50%;background:var(--mint);box-shadow:inset 0 1px #fff8,0 0 0 2px #0e16361a}
.sound-button[aria-pressed="false"] .sound-dot{background:var(--red)}
.pause-button{background:var(--mustard)}
.round-hud{position:absolute;z-index:11;top:calc(var(--safe-top) + 74px);left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;pointer-events:none}
.timer-plaque{min-width:104px;padding:6px 14px 7px;text-align:center;color:var(--cream);background:var(--red);border:2px solid var(--warm);border-radius:0 0 14px 14px;box-shadow:0 3px 0 #7c1e1c,0 6px 16px #0e163633;line-height:1}
.timer-plaque span{display:block;font-size:10px;letter-spacing:.18em}.timer-plaque strong{display:block;margin-top:3px;font-size:32px;font-variant-numeric:tabular-nums}
.timer-plaque.danger{background:var(--mustard);color:var(--ink);animation:timer-pulse .5s ease-in-out infinite alternate}
.combo{min-height:28px;margin-top:8px;color:var(--mustard);font-size:20px;font-weight:700;letter-spacing:.06em;text-shadow:0 2px 0 #6b231c,0 0 14px #0e1636;transform:rotate(-2deg)}
.start-dock{position:absolute;z-index:14;left:50%;bottom:calc(var(--safe-bottom) + 36px);transform:translateX(-50%);width:min(760px,calc(100% - 34px));min-height:112px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:17px 20px 17px 25px;color:var(--ink);background:var(--cream);border:3px solid var(--red);border-radius:8px;box-shadow:0 0 0 3px var(--warm),0 8px 0 #671e1b99,0 18px 45px #080d2799,inset 0 2px #fff9}
.start-dock::before,.start-dock::after{content:"";position:absolute;top:12px;bottom:12px;width:7px;background:radial-gradient(circle,var(--gold) 0 2px,transparent 2.5px) center top/7px 14px repeat-y;opacity:.85}
.start-dock::before{left:7px}.start-dock::after{right:7px}
.start-copy{display:flex;flex-direction:column;gap:4px;min-width:0}
.eyebrow{color:var(--red);font-size:11px;font-weight:700;letter-spacing:.18em}
.start-copy>strong{font-size:clamp(19px,2.3vw,29px);line-height:1.05;letter-spacing:.025em}
.start-detail{font-size:13px;color:#4b4a4a;letter-spacing:.02em}
.save-scope{min-height:0;font-size:10px;color:#73654e;letter-spacing:.06em}
.save-scope:empty{display:none}
.primary-button{position:relative;flex:none;min-height:54px;padding:13px 25px;color:var(--cream);background:linear-gradient(180deg,#ff5a4e 0%,var(--red) 45%,#bd241f 100%);border:2px solid var(--warm);border-radius:6px;box-shadow:0 0 0 2px #a72620,0 5px 0 #761d1a,0 8px 16px #3314,inset 0 2px #ffffff66;font-size:17px;font-weight:700;letter-spacing:.07em;text-shadow:0 2px #7c201c;transition:transform .12s,filter .12s}
.primary-button:hover{filter:brightness(1.08) saturate(1.08);transform:translateY(-1px)}
.primary-button:active{transform:translateY(3px);box-shadow:0 0 0 2px #a72620,0 2px 0 #761d1a,inset 0 2px #ffffff55}
.primary-button:disabled{cursor:wait;filter:grayscale(.3);opacity:.75}
.key-hint{position:absolute;right:26px;bottom:-26px;color:var(--cream);font-size:9px;letter-spacing:.16em;text-shadow:0 1px 4px #000}
.game-controls{position:absolute;z-index:13;left:50%;bottom:calc(var(--safe-bottom) + 34px);transform:translateX(-50%);width:min(610px,calc(100% - 32px));display:grid;grid-template-columns:132px minmax(96px,1fr) minmax(132px,auto);align-items:center;gap:14px;padding:10px 14px;background:var(--cream);border:2px solid var(--red);border-radius:7px;box-shadow:0 0 0 2px var(--warm),0 6px 0 #4718}
.aim-control{position:relative;display:grid;place-items:center;padding-top:14px}
.control-caption{position:absolute;top:0;left:50%;transform:translateX(-50%);color:var(--red);font-size:10px;font-weight:700;letter-spacing:.16em;line-height:1;pointer-events:none}
.aim-pad{position:relative;width:126px;height:126px;padding:0;overflow:hidden;border:3px solid var(--warm);border-radius:50%;background:radial-gradient(circle at 50% 50%,#fff9eb 0 8%,#fff3dc 9% 57%,#efd9b4 58% 61%,#fff3dc 62% 100%);box-shadow:0 0 0 2px var(--red),inset 0 0 0 4px #fff8,inset 0 -9px 15px #9b5e2026,0 4px 0 #761d1a33;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}
.aim-pad::before,.aim-pad::after{content:"";position:absolute;left:50%;top:50%;background:var(--cobalt);opacity:.25;pointer-events:none}
.aim-pad::before{width:76%;height:1px;transform:translate(-50%,-50%)}
.aim-pad::after{width:1px;height:76%;transform:translate(-50%,-50%)}
.aim-pad.active{cursor:grabbing;box-shadow:0 0 0 2px var(--red),inset 0 0 0 4px #fff8,inset 0 -9px 15px #9b5e2026,0 0 0 5px #ffc22e44}
.aim-knob{position:absolute;z-index:1;left:50%;top:50%;display:grid;place-items:center;width:48px;height:48px;border:3px solid var(--red);border-radius:50%;background:radial-gradient(circle at 35% 28%,#fff 0 5%,var(--cream) 28%,#edc98f 100%);box-shadow:0 0 0 2px var(--warm),0 4px 7px #4a1c1644,inset 0 2px #fff;transform:translate(-50%,-50%);will-change:transform;pointer-events:none}
.aim-knob::before,.aim-knob::after{content:"";position:absolute;left:50%;top:50%;background:var(--red);transform:translate(-50%,-50%)}
.aim-knob::before{width:23px;height:2px}.aim-knob::after{width:2px;height:23px}
.aim-knob i{position:relative;z-index:1;width:7px;height:7px;border-radius:50%;background:var(--mustard);border:1px solid var(--red)}
.control-center{display:flex;min-width:0;flex-direction:column;align-items:center;justify-content:center;gap:10px}
.ammo{display:flex;align-items:center;justify-content:center;gap:5px;min-height:28px;padding:0 4px}
.ammo i{display:block;width:9px;height:25px;border-radius:5px 5px 2px 2px;background:linear-gradient(90deg,#b66c18,#ffe293 45%,#d38b20 75%,#87500f);border:1px solid #825015;box-shadow:inset 0 2px #fff7;transform-origin:50% 100%;transition:transform .2s,opacity .2s}
.ammo i.spent{opacity:.22;transform:scaleY(.55)}
.fire-button{min-width:148px;min-height:64px;padding:10px 16px;color:var(--cream);background:linear-gradient(180deg,#ff6255 0%,var(--red) 48%,#b9211d 100%);border:2px solid var(--warm);border-radius:5px;box-shadow:0 0 0 2px #a72620,0 4px 0 #761d1a,inset 0 2px #ffffff66;font-size:19px;font-weight:700;letter-spacing:.06em;line-height:1;text-shadow:0 2px #7c201c;touch-action:manipulation}
.fire-button:hover{filter:brightness(1.08)}
.fire-button:active{transform:translateY(3px);box-shadow:0 0 0 2px #a72620,0 1px 0 #761d1a,inset 0 2px #ffffff55}
.fire-button:disabled{cursor:wait;filter:grayscale(.35);opacity:.6}
.fire-button kbd{display:block;width:max-content;margin:6px auto 0;padding:2px 5px;font-size:8px;letter-spacing:.1em}
.reload-button{min-height:40px;max-width:100%;padding:7px 11px;color:var(--cream);background:var(--red);border:1px solid #a0221e;border-radius:4px;font-size:11px;font-weight:700;letter-spacing:.08em;box-shadow:inset 0 1px #fff5;touch-action:manipulation}
.reload-button:disabled{opacity:.55;cursor:wait}
kbd{display:inline-block;margin-left:5px;padding:2px 4px;color:var(--ink);background:var(--cream);border:0;border-radius:2px;font:inherit;font-size:9px}
.persistent-hint{position:absolute;z-index:12;left:50%;bottom:var(--safe-bottom);transform:translateX(-50%);width:max-content;max-width:calc(100% - 28px);color:#fff1d6;text-align:center;font-size:11px;letter-spacing:.05em;text-shadow:0 2px 4px #000,0 0 12px #000;pointer-events:none}
.prize-toast{position:absolute;z-index:17;top:24%;left:50%;max-width:calc(100% - 32px);padding:10px 20px;color:var(--ink);background:var(--mustard);border:2px solid var(--cream);border-radius:5px;box-shadow:0 0 0 2px var(--red),0 5px 0 #5919;font-size:18px;font-weight:700;letter-spacing:.07em;text-align:center;opacity:0;pointer-events:none;transform:translate(-50%,-12px) rotate(-2deg) scale(.9);transition:opacity .18s,transform .28s cubic-bezier(.2,1.6,.4,1)}
.prize-toast.show{opacity:1;transform:translate(-50%,0) rotate(-2deg) scale(1)}
.aim-view{position:absolute;inset:0;z-index:10;overflow:hidden;pointer-events:none}
.aim-rifle{position:absolute;left:0;top:0;width:1024px;height:1024px;transform-origin:0 0;will-change:transform;pointer-events:none;filter:drop-shadow(0 18px 15px rgba(4,8,24,.42))}
.aim-rifle img{display:block;width:100%;height:auto;user-select:none;transform-origin:93.75% 74.21875%}
.muzzle-flash{position:absolute;width:110px;height:110px;margin:-55px 0 0 -55px;border-radius:50%;background:radial-gradient(circle,#fff 0 5%,#fff3c4 9%,#ffd98acc 22%,#ffc22e66 42%,transparent 70%);mix-blend-mode:screen;opacity:0;transform:scale(.45)}
.muzzle-flash.show{animation:muzzle-pop .14s ease-out}
.hit-layer{position:absolute;inset:0;z-index:9;overflow:hidden;pointer-events:none}
.hit-score{position:absolute;color:var(--cream);font-size:28px;font-weight:700;text-shadow:0 2px 0 var(--red),2px 0 0 var(--red),-2px 0 0 var(--red),0 -2px 0 var(--red),0 5px 12px #0009;animation:score-rise .8s cubic-bezier(.16,.8,.3,1) forwards}
.hit-score.perfect{color:var(--mustard);font-size:35px}
.modal-backdrop{position:absolute;inset:0;z-index:40;display:grid;place-items:center;padding:20px;background:rgba(7,13,39,.74)}
.paper-modal{position:relative;width:min(510px,100%);max-height:calc(100svh - 40px);overflow:auto;padding:28px;color:var(--ink);background:var(--paper);border:4px solid var(--red);border-radius:8px;box-shadow:0 0 0 3px var(--warm),0 12px 0 #5d191888,0 30px 80px #0009;text-align:center}
.paper-modal::before{content:"";position:absolute;inset:8px;border:1px solid #e8382f44;pointer-events:none}
.paper-modal h2{position:relative;margin:6px 0 14px;font-size:38px;line-height:1;letter-spacing:.03em}.paper-modal h3{position:relative;margin:8px 0 3px;color:var(--red);font-size:27px;line-height:1.1}.paper-modal p{position:relative;margin:8px auto 18px;max-width:380px;font-size:14px;line-height:1.4;color:#5a4a3b}
.pause-card{width:min(410px,100%)}
.result-card{width:min(560px,100%);padding:23px 28px}
.result-main{position:relative;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:15px}
.prize-portrait{height:175px;display:grid;place-items:center;background:radial-gradient(ellipse at 50% 70%,#ffc22e55,transparent 68%)}
.prize-portrait img{display:block;max-width:100%;max-height:175px;object-fit:contain;filter:drop-shadow(0 10px 6px #5b281c33);animation:prize-arrive .65s cubic-bezier(.15,1.45,.35,1) both}
.result-numbers>span{display:block;color:var(--red);font-size:11px;letter-spacing:.16em}.result-numbers>strong{display:block;font-size:55px;line-height:1;font-variant-numeric:tabular-nums}
.result-stats{display:flex;flex-direction:column;gap:4px;margin-top:11px;font-size:12px;text-align:left}.result-stats span{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid #e8382f33;padding-bottom:3px}.result-stats b{color:var(--red)}
.new-best{display:inline-block;margin-top:9px;padding:4px 8px;color:var(--ink);background:var(--mustard);border:1px solid var(--red);font-size:11px;font-weight:700;letter-spacing:.1em;transform:rotate(-2deg)}
.result-card>.primary-button{margin:3px 0 17px}
.leaderboard{position:relative;padding-top:11px;border-top:2px solid var(--red);text-align:left}
.leaderboard-title{display:flex;justify-content:space-between;align-items:center;color:var(--red);font-size:11px;font-weight:700;letter-spacing:.13em}.leaderboard-title button{padding:2px 5px;color:var(--red);background:transparent;border:1px solid var(--red);font-size:9px}
#leaderboard-rows{min-height:22px;margin-top:7px;font-size:12px}.leader-row{display:grid;grid-template-columns:25px 1fr auto;gap:7px;padding:3px 4px;border-bottom:1px dashed #d8a33b66}.leader-row.mine{color:var(--red);background:#ffc22e26}.leader-row a{text-decoration:underline;text-decoration-color:#e8382f55}.leader-empty{padding:5px 0;color:#756450;text-align:center}
.loading{position:absolute;inset:0;z-index:60;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--cream);background:radial-gradient(circle at 50% 45%,#1f4fd177,transparent 45%),var(--ink);letter-spacing:.1em;transition:opacity .45s}
.loading.done{opacity:0;pointer-events:none}.loading strong{font-size:24px}.loading span{font-size:12px;color:var(--warm)}
.loading-bulb{width:54px;height:54px;border:4px solid #9b5e20;border-radius:50%;background:radial-gradient(circle at 35% 28%,#fff 0 5%,#fff2b5 13%,#ffd98a 45%,#e59323 75%);box-shadow:0 0 18px #ffd98a,0 0 65px #ffc22e88;animation:bulb-breathe .7s ease-in-out infinite alternate}
.collection{position:relative;padding:clamp(48px,7vw,92px) max(18px,4vw) 28px;background-color:var(--cream);background-image:radial-gradient(#b67b3417 .7px,transparent .8px),linear-gradient(90deg,#e8382f08 1px,transparent 1px);background-size:7px 7px,52px 100%;scroll-margin-top:0}
.collection::before{content:"";position:absolute;top:0;left:0;right:0;height:12px;background:repeating-linear-gradient(90deg,var(--red) 0 42px,var(--cream) 42px 84px);border-bottom:3px solid var(--gold)}
.collection-heading{max-width:1240px;margin:0 auto 38px;text-align:center}.collection-heading h1{margin:7px 0 5px;color:var(--red);font-family:"Roboto Slab",Georgia,serif;font-size:clamp(35px,5.4vw,67px);line-height:1;letter-spacing:-.035em;text-shadow:2px 2px 0 var(--mustard)}.collection-heading p{margin:12px auto 0;max-width:590px;color:#6b513e;font-size:15px;line-height:1.45}
.concept-sheet{position:relative;max-width:1240px;margin:0 auto 58px;padding:20px 24px 24px;background:var(--paper);border:3px solid var(--red);box-shadow:0 0 0 5px var(--cream),0 0 0 7px var(--red),0 14px 0 #9d251f22}
.sheet-heading{display:flex;align-items:center;gap:17px;padding:0 0 15px;border-bottom:2px solid var(--red)}
.sheet-number{display:grid;place-items:center;flex:none;width:49px;height:49px;color:var(--cream);background:var(--red);border:2px solid var(--gold);border-radius:50%;box-shadow:inset 0 2px #fff4;font-size:22px;font-weight:700}
.sheet-heading h2{margin:0;color:var(--red);font-size:30px;line-height:1;letter-spacing:.045em}.sheet-heading p{margin:5px 0 0;color:#6d5847;font-size:13px;line-height:1.2}.sheet-note{margin-left:auto;color:#8d6d4f;font-size:10px;letter-spacing:.13em;text-align:right}
.sheet-stage{position:relative;width:100%;overflow:visible}.sheet-stage canvas{display:block;width:100%;height:100%;pointer-events:none}.targets-stage{height:520px}.prizes-stage{height:550px}.booth-stage{height:610px}.materials-stage{height:250px}
.sheet-labels{position:absolute;inset:0;display:grid;pointer-events:none}.targets-stage .sheet-labels{grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(2,1fr)}.prizes-stage .sheet-labels{grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,1fr)}.materials-stage .sheet-labels{grid-template-columns:repeat(6,1fr);grid-template-rows:1fr}
.object-label{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding-bottom:0;line-height:1.05;text-align:center;transform:translateX(-50%)}.object-label strong{font-size:15px;letter-spacing:.06em}.object-label span{margin-top:5px;color:#8b6b4d;font-size:10px;letter-spacing:.1em}.object-label b{margin-top:4px;padding:3px 7px;color:var(--cream);background:var(--red);border-radius:2px;font-size:11px;letter-spacing:.05em}.materials-stage .object-label strong{font-size:12px}.materials-stage .object-label span{font-size:9px}
.booth-sheet{max-width:1080px}.booth-sheet .sheet-stage{background:radial-gradient(ellipse at 50% 76%,#ffc22e26,transparent 62%)}
.palette{display:grid;grid-template-columns:repeat(7,1fr);gap:12px;padding:22px 0 5px}.palette>div{display:grid;grid-template-columns:35px 1fr;grid-template-rows:1fr 1fr;column-gap:8px;align-items:center}.palette i{grid-row:1/3;display:block;width:35px;height:35px;background:var(--chip);border:2px solid var(--cream);border-radius:50%;box-shadow:0 0 0 1px #9f5c35,0 3px 4px #4c291c2e,inset 4px 4px 8px #fff5}.palette span{align-self:end;font-size:10px;font-weight:700;letter-spacing:.06em}.palette b{align-self:start;color:#8a6a4b;font-size:9px;font-weight:500}
.collection-footer{max-width:1240px;margin:70px auto 0;padding-top:20px;border-top:2px solid var(--red);display:flex;justify-content:space-between;gap:20px;color:var(--red);font-size:11px;letter-spacing:.12em}.collection-footer a{font-weight:700;text-decoration:none}.collection-footer a:hover{text-decoration:underline}
@keyframes bulb-breathe{to{transform:scale(1.06);filter:brightness(1.2)}}
@keyframes timer-pulse{to{transform:scale(1.06)}}
@keyframes score-rise{0%{opacity:0;transform:translate(-50%,-10%) scale(.6) rotate(-6deg)}22%{opacity:1;transform:translate(-50%,-45%) scale(1.15) rotate(2deg)}100%{opacity:0;transform:translate(-50%,-155%) scale(.95) rotate(-2deg)}}
@keyframes rifle-recoil{0%{transform:none}32%{transform:scale(1.03) translate(-2px,-1px)}100%{transform:none}}
@keyframes rifle-reload{0%{transform:none}28%{transform:translate(28px,85px)}62%{transform:translate(18px,58px)}100%{transform:none}}
@keyframes muzzle-pop{0%{opacity:1;transform:scale(.35) rotate(0)}35%{opacity:.95;transform:scale(1.15) rotate(20deg)}100%{opacity:0;transform:scale(1.65) rotate(35deg)}}
@keyframes prize-arrive{0%{opacity:0;transform:translateY(35px) rotate(-8deg) scale(.65)}70%{transform:translateY(-5px) rotate(2deg) scale(1.05)}100%{opacity:1;transform:none}}
@media(min-width:651px) and (min-height:521px){.game-controls{bottom:calc(var(--safe-bottom) + 20px);width:min(480px,calc(100% - 32px));grid-template-columns:96px minmax(78px,1fr) minmax(120px,auto);gap:10px;padding:7px 11px}.aim-control{padding-top:12px}.control-caption{font-size:9px}.aim-pad{width:92px;height:92px}.aim-knob{width:38px;height:38px}.aim-knob::before{width:19px}.aim-knob::after{height:19px}.control-center{gap:6px}.ammo{min-height:24px}.ammo i{width:8px;height:22px}.fire-button{min-width:120px;min-height:60px;padding:8px 13px;font-size:17px}.reload-button{min-height:34px;padding:5px 9px}.persistent-hint{left:var(--safe-left);bottom:var(--safe-bottom);transform:none;max-width:calc(50% - 88px);text-align:left;font-size:10px;line-height:1.1}}
@media(max-width:900px){.game-bar{grid-template-columns:1fr auto}.hero-nav{display:none}.bar-actions{grid-column:2}.best-plaque{display:none}.sheet-note{display:none}.palette{grid-template-columns:repeat(4,1fr);row-gap:18px}.targets-stage{height:500px}}
@media(max-width:650px){.game-bar{gap:8px}.tin-plaque{min-width:78px;padding:6px 11px}.tin-plaque strong{font-size:23px}.score-plaque span{font-size:9px}.sound-button,.pause-button{min-height:35px;padding:7px 9px;font-size:10px}.sound-button #sound-label{display:none}.sound-button{min-width:35px;justify-content:center}.start-dock{bottom:calc(var(--safe-bottom) + 38px);min-height:0;flex-direction:column;align-items:stretch;gap:12px;padding:15px 20px;text-align:center}.start-copy>strong{font-size:21px}.start-detail{font-size:12px}.start-dock .primary-button{width:100%}.key-hint{display:none}.round-hud{top:calc(var(--safe-top) + 64px)}.timer-plaque{min-width:82px;padding:5px 10px}.timer-plaque strong{font-size:26px}.game-controls{bottom:calc(var(--safe-bottom) + 35px);gap:8px;padding:8px}.fire-button{min-width:116px;min-height:50px;padding:9px 11px;font-size:16px}.fire-button kbd{display:none}.reload-button{font-size:10px}.persistent-hint{font-size:10px}.muzzle-flash{width:78px;height:78px;margin:-39px 0 0 -39px}.hit-score{font-size:23px}.collection{padding-left:14px;padding-right:14px}.collection-heading{margin-bottom:30px}.collection-heading p{font-size:13px}.concept-sheet{padding:15px 13px 17px;margin-bottom:43px}.sheet-heading{gap:11px}.sheet-number{width:39px;height:39px;font-size:17px}.sheet-heading h2{font-size:23px}.sheet-heading p{font-size:11px}.targets-stage{height:790px}.targets-stage .sheet-labels{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(4,1fr)}.prizes-stage{height:790px}.prizes-stage .sheet-labels{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(3,1fr)}.booth-stage{height:440px}.materials-stage{height:500px}.materials-stage .sheet-labels{grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,1fr)}.palette{grid-template-columns:repeat(3,1fr);gap:15px 8px}.palette>div{grid-template-columns:29px 1fr;column-gap:6px}.palette i{width:29px;height:29px}.palette span{font-size:9px}.palette b{font-size:8px}.collection-footer{flex-direction:column;text-align:center}.paper-modal{padding:22px 18px}.paper-modal h2{font-size:31px}.result-card{padding:20px 18px}.result-main{gap:6px}.prize-portrait{height:140px}.prize-portrait img{max-height:140px}.result-numbers>strong{font-size:46px}.modal-backdrop{padding:14px}.paper-modal{max-height:calc(100svh - 28px)}}
@media(max-width:380px){.start-copy>strong{font-size:18px}.start-detail{font-size:11px}.ammo{gap:3px;padding:0 2px}.ammo i{width:6px}.game-controls{gap:5px;padding:7px 6px}.fire-button{min-width:96px;padding:8px;font-size:14px}.reload-button{padding:6px;font-size:9px}.reload-button kbd{display:none}.targets-stage,.prizes-stage{height:720px}.palette{grid-template-columns:repeat(2,1fr)}}
@media(max-width:650px){.game-controls{width:calc(100% - 24px);grid-template-columns:110px minmax(74px,1fr) minmax(108px,auto);gap:9px;padding:8px 10px}.aim-pad{width:104px;height:104px}.aim-knob{width:42px;height:42px}.aim-control{padding-top:13px}.control-caption{font-size:9px}.control-center{gap:8px}.fire-button{min-width:108px;min-height:58px}.reload-button{padding:6px 8px}}
@media(max-width:380px){.game-controls{width:calc(100% - 18px);grid-template-columns:94px minmax(64px,1fr) minmax(96px,auto);gap:6px;padding:7px 6px}.aim-pad{width:90px;height:90px}.aim-knob{width:38px;height:38px}.aim-knob::before{width:19px}.aim-knob::after{height:19px}.fire-button{min-width:96px;min-height:54px}.control-center{gap:6px}}
@media(max-height:520px){.game-controls{left:0;right:0;bottom:calc(var(--safe-bottom) + 25px);transform:none;grid-template-columns:104px 1fr 124px;width:100%;gap:10px;padding:6px max(12px,env(safe-area-inset-right)) 6px max(12px,env(safe-area-inset-left));background:transparent;border:0;box-shadow:none;pointer-events:none}.game-controls>*{pointer-events:auto}.aim-control{align-self:end}.aim-pad{width:88px;height:88px}.aim-knob{width:38px;height:38px}.aim-control{padding-top:12px}.control-caption{font-size:9px}.control-center{align-self:end;justify-self:center;gap:5px;padding:6px 9px;background:var(--cream);border:2px solid var(--red);border-radius:6px;box-shadow:0 0 0 2px var(--warm),0 4px 0 #4718}.fire-button{align-self:end;min-width:112px;min-height:50px}.fire-button kbd{display:none}.reload-button{min-height:32px;padding:5px 8px}.persistent-hint{font-size:9px}.aim-knob::before{width:19px}.aim-knob::after{height:19px}}
@media(max-width:380px) and (max-height:520px){.game-controls{grid-template-columns:82px minmax(56px,1fr) minmax(88px,auto);gap:5px;padding:6px}.aim-pad{width:76px;height:76px}.aim-knob{width:34px;height:34px}.fire-button{min-width:88px;min-height:46px;font-size:13px}.reload-button{font-size:8px}.ammo{gap:3px}.ammo i{width:6px;height:21px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
@media(pointer:coarse){.fire-button kbd,.reload-button kbd{display:none}}
