:root{color-scheme:light;--ink:#103e58;--soft:#47798b;--blue:#078acb;--orange:#ff6c2e;--orange-dark:#d94b19;--panel:rgba(248,253,255,.93);--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}
*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden}body{background:#87d1ef;color:var(--ink);font-family:"Trebuchet MS","Arial Rounded MT Bold",system-ui,sans-serif;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;user-select:none;-webkit-user-select:none;overscroll-behavior:none}button,a{font:inherit;touch-action:manipulation}button{cursor:pointer;color:inherit}button:disabled{cursor:default}button:focus-visible,a:focus-visible{outline:4px solid #ffb52db3;outline-offset:3px}.hidden{display:none!important}
#game{position:relative;width:100%;height:100%;height:100dvh;min-height:280px;overflow:hidden;isolation:isolate}.scenery,.atmosphere,canvas{position:absolute;inset:0;width:100%;height:100%}.scenery{z-index:-3;background:#dbeef1 url('assets/alpine.webp') center/cover no-repeat}.atmosphere{z-index:-2;background:linear-gradient(0deg,#eefaffbb,transparent 30%)}canvas{display:block;touch-action:none}.playing canvas{cursor:crosshair}.playing .atmosphere{background:linear-gradient(180deg,#e7f7ff99,transparent 23%),linear-gradient(0deg,#effaffdf,transparent 28%)}
.topbar{position:absolute;z-index:8;top:calc(14px + var(--safe-top));right:max(14px,env(safe-area-inset-right))}.top-actions{display:flex;gap:7px}.icon-button{width:44px;height:44px;border:2px solid #103e581a;border-radius:50%;background:#f8fdffeb;box-shadow:0 6px 20px #1655731f;display:grid;place-items:center}.icon-button svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.icon-button.muted{opacity:.65}.icon-button.muted:after{content:"";position:absolute;width:23px;height:2px;background:var(--ink);transform:rotate(-45deg)}
.screen{position:absolute;inset:0;z-index:4;display:flex;align-items:center;justify-content:center;padding:max(22px,var(--safe-top)) max(16px,env(safe-area-inset-right)) max(22px,var(--safe-bottom)) max(16px,env(safe-area-inset-left));background:linear-gradient(180deg,#76c8ed1a,#effafe59)}
.panel,.modal{width:min(92vw,455px);max-height:100%;overflow:auto;overscroll-behavior:contain;padding:clamp(25px,6vw,41px) clamp(20px,6vw,38px) clamp(21px,5vw,32px);border:2px solid #fffffff5;border-radius:30px;background:var(--panel);box-shadow:0 20px 60px #1c5c7a38,inset 0 1px 0 #fff;text-align:center;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);animation:panel-in .32s cubic-bezier(.2,.8,.2,1) both}
.eyebrow{margin:0 0 8px;color:var(--orange);font-size:.76rem;font-weight:1000;letter-spacing:.2em;text-transform:uppercase}h1,h2{margin:0;font-weight:1000;line-height:.9;letter-spacing:-.065em;text-transform:uppercase;text-shadow:0 3px 0 white}h1{font-size:clamp(2.55rem,11vw,4.8rem);line-height:.84;letter-spacing:-.072em}h1 span{display:block;margin-top:11px;color:var(--blue);font-size:.47em;letter-spacing:.07em}h2{font-size:clamp(2.2rem,9vw,3.7rem)}.tagline{max-width:325px;margin:18px auto;color:var(--soft);font-size:clamp(.9rem,3.4vw,1.02rem);font-weight:700;line-height:1.42}
.how-to{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-bottom:18px}.how-step{padding:10px 5px 9px;border-radius:13px;background:#103e580f;color:var(--soft);font-size:.64rem;font-weight:900;line-height:1.25}.how-step b{display:grid;width:25px;height:25px;margin:0 auto 6px;place-items:center;border-radius:50%;background:white;color:var(--blue);font-size:.8rem;box-shadow:0 2px 0 #103e581a}.actions{display:grid;gap:12px}
.primary,.secondary{display:flex;align-items:center;justify-content:center;width:100%;min-height:55px;padding:13px 24px;border:0;border-radius:16px;text-decoration:none;font-size:1rem;font-weight:1000;letter-spacing:.08em;text-transform:uppercase;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}.primary{color:white;background:var(--orange);box-shadow:0 6px 0 var(--orange-dark),0 12px 24px #d94b1938}.primary:hover{background:#ff7b40}.primary:active{transform:translateY(3px) scale(.99);box-shadow:0 2px 0 var(--orange-dark),0 5px 12px #d94b192e}.primary:disabled{opacity:.6}.secondary{min-height:47px;color:var(--soft);background:#103e5812}.secondary:hover{background:#103e581c}.best-badge{margin:18px 0 0;color:var(--soft);font-size:.63rem;font-weight:900;letter-spacing:.09em}.best-badge b{color:var(--ink);margin-left:5px}
.modal-screen{z-index:9}.modal>p:not(.eyebrow){color:var(--soft);font-size:.85rem;font-weight:700;line-height:1.5;margin:16px 0 20px}.modal .primary{margin-top:14px}.modal .secondary{margin-top:14px}.text-button{display:block;margin:auto;background:none;border:0;min-height:44px;padding:12px 10px;color:var(--soft);font-size:.72rem;font-weight:900;text-transform:uppercase}.modal .controls-help{border-top:1px solid #103e581a;padding-top:14px;margin-bottom:0!important;font-size:.65rem!important}.tiny-label{display:block;color:var(--soft);font-size:.6rem;font-weight:1000;letter-spacing:.12em;margin-bottom:4px}.result-score{margin:17px 0 0}.result-score strong{display:block;color:var(--blue);font-size:clamp(3rem,15vw,5.1rem);font-weight:1000;letter-spacing:-.07em;line-height:1}#recordLabel{display:block;color:var(--soft);font-size:.62rem;letter-spacing:.1em;font-weight:900;margin-top:8px}.result-stats{display:flex;justify-content:space-around;gap:8px;padding:20px 0 4px}.result-stats b{display:block;font-size:1.2rem}.result-stats span{display:block;color:var(--soft);font-size:.55rem;font-weight:900;margin-top:4px;letter-spacing:.06em}
#hud{position:absolute;inset:0;pointer-events:none}.scoreboard{position:absolute;left:max(14px,env(safe-area-inset-left));top:calc(14px + var(--safe-top));display:flex;gap:7px}.scoreboard>div,.lives-hud,.wave-hud,.ammo-panel{padding:9px 15px;border:2px solid #103e581a;border-radius:24px;background:#f8fdffde;box-shadow:0 6px 20px #1655731f;text-align:center}.scoreboard strong,.scoreboard b{display:block;font-size:1.4rem;line-height:1;letter-spacing:-.035em}.combo-track{width:40px;height:3px;margin:5px auto 0;background:#103e581a;border-radius:10px;overflow:hidden}.combo-track i{display:block;height:100%;width:0;background:var(--orange)}.wave-hud{position:absolute;top:calc(14px + var(--safe-top));left:50%;transform:translateX(-50%);min-width:145px;padding:12px 18px}.wave-hud>span{font-size:.66rem;font-weight:1000;letter-spacing:.1em}.wave-track{height:4px;margin-top:7px;border-radius:10px;background:#103e581a;overflow:hidden}.wave-track i{display:block;height:100%;width:0;background:var(--blue);transition:width .25s}.lives-hud{position:absolute;right:120px;top:calc(14px + var(--safe-top))}#lives{display:flex;gap:4px;color:#f05234;font-size:1.05rem;line-height:1.1}#lives .lost{color:#47798b44}
.bottom-hud{position:absolute;left:max(14px,env(safe-area-inset-left));right:max(14px,env(safe-area-inset-right));bottom:calc(18px + var(--safe-bottom));display:flex;align-items:center;justify-content:space-between;gap:12px}.ammo-panel{min-width:150px;border-radius:20px;padding:10px 14px}#ammo{display:flex;justify-content:center;gap:7px;margin:7px 0}#ammo i{width:18px;height:18px;border:1px solid #9dc8d8;border-radius:50%;background:#fff;box-shadow:inset -3px -3px 0 #d4e9f0}#ammo i.empty{opacity:.25}#ammoHint{font-size:.42rem;font-weight:900;letter-spacing:.06em;color:var(--soft)}.field-note{color:var(--soft);font-size:.7rem;font-weight:900;text-align:center;background:#f8fdffdb;padding:10px 16px;border-radius:30px}.burst-button{position:relative;overflow:hidden;pointer-events:auto;display:flex;align-items:center;gap:12px;min-width:210px;min-height:68px;padding:12px 16px;border:2px solid #103e581a;border-radius:20px;background:#f8fdffed;text-align:left}.burst-symbol{font-size:30px;line-height:1;color:var(--blue)}.burst-symbol svg{display:block;width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round}.burst-button b{display:block;font-size:.65rem;font-weight:1000;letter-spacing:.08em}.burst-button small{display:block;font-size:.5rem;font-weight:900;margin-top:5px;color:var(--soft)}.burst-button>i{position:absolute;left:0;bottom:0;width:0;height:4px;background:var(--blue);transition:width .25s}.burst-button.ready{border-color:var(--orange);background:var(--orange);color:#fff;box-shadow:0 5px 0 var(--orange-dark)}.burst-button.ready .burst-symbol,.burst-button.ready small{color:#fff}.burst-button.ready>i{background:#ffb52d}.keycap{border:1px solid #47798b55;border-radius:5px;padding:4px;font-size:9px;margin-left:auto}
.announcement{position:absolute;top:27%;left:50%;width:85%;transform:translate(-50%,8px);opacity:0;text-align:center;pointer-events:none;font-size:clamp(1.4rem,4vw,2.5rem);font-weight:1000;text-transform:uppercase;color:var(--ink);text-shadow:0 2px 0 #fff,0 3px 16px #fff;transition:opacity .25s,transform .25s;z-index:3}.announcement.show{opacity:1;transform:translate(-50%,0)}.announcement small{display:block;margin-top:9px;font-size:.7rem;font-weight:900;color:var(--soft);text-transform:none}.load-error{position:absolute;bottom:10px;left:10px;z-index:20;padding:15px;background:#fff;border-radius:12px}.load-error button{background:none;border:0;text-decoration:underline}
@keyframes panel-in{from{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:none}}
@media(max-width:700px){.wave-hud{top:calc(82px + var(--safe-top));left:14px;transform:none;min-width:125px;padding:9px 13px}.lives-hud{right:14px;top:calc(82px + var(--safe-top));padding:8px 13px}.scoreboard>div{padding:9px 12px;min-width:64px}.tiny-label{font-size:.48rem}.scoreboard strong,.scoreboard b{font-size:1.25rem}.bottom-hud{gap:9px}.ammo-panel{min-width:117px;padding:10px}#ammo{gap:5px}#ammo i{width:16px;height:16px}#ammoHint{font-size:.35rem}.burst-button{min-width:161px;padding:11px;gap:8px}.burst-button b{font-size:.55rem}.burst-button small{font-size:.42rem}.keycap{display:none}.field-note{position:absolute;bottom:calc(100% + 12px);left:50%;transform:translateX(-50%);width:max-content;max-width:100%;font-size:.6rem;padding:7px 12px}}
@media(max-height:610px){.panel,.modal{width:min(90vw,560px);padding:17px 28px}h1{font-size:clamp(2.25rem,12vh,3.5rem)}h2{font-size:2.2rem}.tagline{margin:9px auto 11px;font-size:.84rem}.how-to{margin-bottom:11px}.actions{grid-template-columns:1.35fr 1fr}.primary,.secondary{min-height:46px;padding:9px 17px}.best-badge{margin-top:14px}.result-score{margin-top:10px}.result-score strong{font-size:2.8rem}.result-stats{padding:12px 0 0}.modal>p:not(.eyebrow){margin:10px 0;font-size:.75rem}.modal .controls-help{display:none}}
@media(max-height:500px) and (orientation:landscape){.screen{padding-top:max(12px,var(--safe-top));padding-bottom:max(12px,var(--safe-bottom))}.panel,.modal{width:min(72vw,490px);padding:15px 25px}.eyebrow{font-size:.6rem}h1{font-size:2.7rem}h2{font-size:2rem}.tagline{max-width:360px;font-size:.75rem}.how-step{padding:6px 5px;font-size:.55rem}.how-step b{width:20px;height:20px;font-size:.65rem;margin-bottom:4px}.best-badge{font-size:.5rem;margin-top:11px}.wave-hud{left:50%;transform:translateX(-50%);top:calc(14px + var(--safe-top));min-width:120px}.lives-hud{right:14px;top:calc(66px + var(--safe-top));padding:7px 10px}.bottom-hud{bottom:calc(10px + var(--safe-bottom))}.ammo-panel{min-width:130px;padding:8px 12px}.ammo-panel .tiny-label,#ammoHint{display:none}.burst-button{min-height:48px;padding:7px 12px;min-width:170px}.burst-symbol{font-size:25px}.field-note{position:static;transform:none;width:auto;font-size:.55rem}.result-modal{display:grid;grid-template-columns:1fr 1fr;column-gap:22px;align-items:center}.result-modal .eyebrow,.result-modal h2,.result-modal>p{grid-column:1 / -1}.result-score{grid-column:1;grid-row:4 / 6}.result-stats{grid-column:2;padding:8px 0}.result-stats span{font-size:.43rem}.result-modal .primary{grid-column:2;margin-top:8px;font-size:.7rem}.result-modal .secondary{grid-column:2;margin-top:10px;font-size:.7rem}.result-modal .text-button{grid-column:1;grid-row:6;font-size:.6rem}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
