*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#071328;color:#fff;font-family:Nunito,"Trebuchet MS",Arial,sans-serif}body{display:flex;align-items:center;justify-content:center}button{font:inherit;cursor:pointer;touch-action:manipulation;outline-offset:3px}#app{container-type:size;position:relative;width:100vw;height:100vh;height:100dvh;max-width:none;max-height:none;aspect-ratio:auto;background:#061939;overflow:hidden;isolation:isolate;box-shadow:none;flex-shrink:0}#stage{width:100%;height:100%;display:block;object-fit:cover;object-position:center;touch-action:none}.hidden{display:none!important}.screen{position:absolute;inset:0;z-index:10;display:flex;align-items:center;justify-content:center}.intro-screen{z-index:20;background:radial-gradient(ellipse,#395eaf,#071a4d)}.intro-screen video{position:absolute;width:100%;height:100%;object-fit:contain}.intro-screen{cursor:pointer}.intro-skip,.intro-brand{display:none!important}.menu-screen{flex-direction:column;justify-content:flex-start}.menu-shade{position:absolute;inset:0;background:linear-gradient(180deg,#08255b75,#07143b3f 72%,#071d4e65);pointer-events:none}.menu-title{position:absolute;top:4.4%;text-align:center;z-index:4;display:flex;flex-direction:column;align-items:center;gap:1cqw;filter:drop-shadow(0 6px 6px #021338aa)}.menu-title h1{line-height:.92;font-family:"Fredoka",Nunito,sans-serif;font-weight:700;margin:0;letter-spacing:.01em;font-size:7.2cqw;color:#f5fbff;-webkit-text-stroke:.24cqw #2f66ba;text-shadow:0 .42cqw 0 #0d2f6e}.menu-app-icon{width:9.4cqw;max-width:170px;aspect-ratio:1/1;border-radius:50%;box-shadow:0 .55cqw 1.1cqw rgba(1,18,48,.35)}.menu-child{position:absolute;bottom:0.5%;width:22%;z-index:5;pointer-events:none;filter:drop-shadow(0 12px 11px #06163b9c);max-height:67%;object-fit:contain;overflow:visible}.child-left{left:1.8%;transform:rotate(-2deg)}.child-right{right:1.6%;transform:rotate(2deg)}.menu-actions{position:absolute;top:50%;left:50%;transform:translateX(-50%);width:32%;z-index:7;display:flex;flex-direction:column;gap:1.15cqw}.game-button{border-radius:1.6cqw;border:.28cqw solid #fff9;font-size:2.45cqw;font-weight:1000;color:#fff;text-shadow:0 2px 0 #111a48ad;box-shadow:0 .55cqw 0 #071f538c,0 1cqw 1.3cqw #071b428c;padding:.4em .6em;min-height:2.5em;white-space:nowrap;transition:transform .12s,filter .12s}.game-button:hover{filter:brightness(1.08);transform:translateY(-2px)}.game-button:active{transform:translateY(2px)}.primary{background:linear-gradient(#ff7f87,#ec2c46 48%,#ca1538);border-color:#fff1e8}.secondary{background:linear-gradient(#79c9ff,#4085e8 44%,#2054b8);border-color:#ecf8ff}.tertiary{background:linear-gradient(#769ac8,#345b91)}.menu-settings{position:absolute;right:2.4%;top:3%;z-index:8;display:flex;gap:.65cqw}.small-button{border:2px solid #a4d2fc;padding:.5em .8em;font-size:1.34cqw;font-weight:1000;color:white;background:#163970d9;border-radius:99px}.small-button[aria-pressed=false]{background:#435272}.menu-links{position:absolute;top:74%;left:50%;transform:translateX(-50%);z-index:7;display:flex;gap:.8cqw;flex-wrap:wrap;justify-content:center}.link-pill,.playlist-pill{text-decoration:none;color:#fff;font-weight:1000;border-radius:999px;border:2px solid rgba(255,255,255,.8);box-shadow:0 .28cqw 0 rgba(10,28,73,.55);text-shadow:0 1px 0 rgba(11,20,40,.5)}.link-pill{padding:.42em 1em;font-size:1.15cqw;background:linear-gradient(#5c98ea,#2254b8)}.playlist-pill{position:absolute;top:82%;left:50%;transform:translateX(-50%);z-index:7;padding:.5em 1.2em;font-size:1.05cqw;white-space:nowrap;background:linear-gradient(#ff8895,#d52b4e)}.menu-hint{position:absolute;z-index:7;bottom:1.6%;left:18%;right:18%;text-align:center;font-size:1.08cqw;font-weight:900;text-shadow:0 2px 7px #0b2456;background:rgba(4,27,65,.42);border-radius:999px;padding:.22em .7em}
.hud{position:absolute;z-index:6;inset:0;pointer-events:none}.hud-panel{position:absolute;top:2.8%;height:13.4%;border:.18cqw solid #2a5b9a;border-radius:1.3cqw;background:linear-gradient(#c8e8ff,#80adeb);box-shadow:0 .42cqw 0 #061f569a,inset 0 0 0 .12cqw #e5f6ffb2;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#071c48}.hearts{left:2%;width:15.8%}.hits{left:56%;width:15.2%}.ammo{left:72.5%;width:12.4%}.hud-label{position:absolute;top:-.52em;padding:.08em .75em;border:2px solid #ad1b39;border-radius:.55cqw;background:linear-gradient(#ff808c,#d92848);color:#fff;font-size:1.8cqw;line-height:1.1;font-weight:1000;white-space:nowrap;text-shadow:0 2px 0 #831631}.hud-panel strong{font-size:4.1cqw;margin-top:1.3cqw;line-height:1;color:#081d4b;font-weight:1000}.heart-row{display:flex;gap:.45cqw;margin-top:1.25cqw;line-height:1}.live-heart,.lost-heart{font-size:4.5cqw;filter:drop-shadow(0 2px 1px #962039aa)}.live-heart{color:#f22c54}.lost-heart{color:#acb7cf;filter:none}.difficulty-pill{position:absolute;left:43%;top:5%;padding:.35em .85em;border-radius:99px;border:2px solid #cdeaffb1;background:#0e326db9;font-weight:1000;font-size:1.6cqw}.hud-tools{position:absolute;right:1.3%;top:2.8%;width:11.1%;display:flex;flex-direction:column;gap:.65cqw;pointer-events:auto}.hud-button{width:100%;height:4.5cqw;padding:0 .25em;border:.24cqw solid #e4f3ff;border-radius:1cqw;background:linear-gradient(#548acb,#2251a2);color:#fff;font-size:1.36cqw;font-weight:1000;white-space:nowrap;box-shadow:0 .35cqw 0 #102858a8}.pause-button{background:linear-gradient(#ff7888,#df2846)}.hud-button[aria-pressed=false]{background:linear-gradient(#8090a7,#526179)}.reload-button{position:absolute;right:2%;bottom:3%;pointer-events:auto;padding:.53em 1.15em;border:.27cqw solid #fff7;border-radius:1.2cqw;background:linear-gradient(#ff8994,#ee344e 53%,#c71c39);color:#fff;font-size:2.1cqw;font-weight:1000;box-shadow:0 .5cqw 0 #9c1a35;text-shadow:0 2px #721b30}.reload-button span{font-size:.65em;border:2px solid #ffffffc0;border-radius:.25em;padding:.1em .38em;margin-left:.5em}.game-tip{position:absolute;bottom:3%;left:3%;max-width:60%;font-size:1.5cqw;font-weight:1000;text-shadow:0 2px 6px #16356f;white-space:nowrap}
.overlay{z-index:12;background:#041335b5;backdrop-filter:blur(5px)}.results-card,.dialog-card{position:relative;display:flex;flex-direction:column;align-items:center;border:.6cqw solid #396abc;border-radius:2.6cqw;background:linear-gradient(#d6eaff,#bdd9fc);box-shadow:0 0 0 .4cqw #122d68,0 3cqw 4cqw #01122e91;color:#123a7f}.results-card{width:56%;padding:5% 4% 3%;gap:.7cqw}.results-ribbon{position:absolute;top:-.65em;color:#fff;background:linear-gradient(#ff8d96,#e32a46);border:.32cqw solid #b01b36;border-radius:.9cqw;text-shadow:0 2px #8d1b34;padding:.04em .9em;font-weight:1000;font-size:4.7cqw;white-space:nowrap}.results-card h2{font-size:2.1cqw;margin:1.5cqw 0 .4cqw;font-weight:1000}.stat-row{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1cqw;font-size:1.75cqw;font-weight:1000}.stat-row b{min-width:25%;text-align:center;background:#527ccc;color:white;padding:.15em .45em;border-radius:.7cqw;font-size:1.18em}.stat-row.record{border-top:.25cqw solid #6686bd;padding-top:1cqw;margin-top:.5cqw;color:#b75f14}.result-actions{display:flex;width:100%;gap:1cqw;margin-top:1.2cqw}.result-actions button{flex:1;font-size:1.7cqw;min-height:2.5em}.dialog-card{width:51%;max-height:92%;padding:4%;gap:1.1cqw}.dialog-card h2{margin:0;font-size:4cqw;color:#e13252}.dialog-card p{margin:0;font-weight:800;line-height:1.3;text-align:center;font-size:1.6cqw;color:#19467d}.dialog-card .tagline{color:#df3a53;font-weight:1000}.dialog-card .credits{font-size:1.2cqw;color:#53719e}.dialog-card .game-button{min-width:65%;font-size:1.9cqw}.about-card{width:58%;overflow:auto}
@media(max-aspect-ratio:9/12){#app{position:absolute;top:50%;left:50%;width:min(100vh,177.77778vw);height:auto;aspect-ratio:16/9;max-width:none;max-height:none;transform:translate(-50%,-50%) rotate(90deg);width:min(100vh,177.77778vw)} }
@media(prefers-reduced-motion:reduce){.game-button{transition:none}}

/* v1.6 menu snowfall */
.menu-snow{position:absolute;inset:0;z-index:3;overflow:hidden;pointer-events:none}
.menu-flake{position:absolute;display:block;top:-6%;left:var(--x);width:var(--s);height:var(--s);border-radius:50%;background:rgba(249,252,255,var(--a));box-shadow:0 0 .35cqw rgba(227,248,255,.3);animation:snow-fall var(--duration) var(--delay) linear infinite}
@keyframes snow-fall{0%{transform:translate3d(0,-12cqh,0)}100%{transform:translate3d(var(--drift),119cqh,0)}}
.hud-tools{gap:.34cqw}.hud-button{height:3.55cqw;min-height:0;font-size:1.24cqw;border-radius:.75cqw}
@media(prefers-reduced-motion:reduce){.menu-flake{animation-duration:18s!important}}

@container (max-width: 900px){.menu-actions{top:46%;width:48%}.menu-app-icon{width:12cqw}.menu-links{top:73%;gap:1.3cqw}.link-pill{font-size:1.9cqw}.playlist-pill{top:81%;font-size:1.45cqw;max-width:86%;white-space:normal;text-align:center}.menu-hint{font-size:1.55cqw;left:10%;right:10%}.hearts{width:18%}}

/* Finishing touches for v1.7 */
.link-pill:hover,.playlist-pill:hover{filter:brightness(1.13)}.menu-app-icon{background:transparent;object-fit:contain}.hearts{width:15.8%}

/* v1.8 — larger user-provided icon, 10% larger menu characters, icon-only social links */
.menu-title{top:1.4%;gap:.4cqw;z-index:5;}
.menu-title h1{font-size:6.7cqw;line-height:1;}
.menu-app-icon{display:block;width:20cqw;max-width:none;height:20cqw;object-fit:contain;aspect-ratio:1;border-radius:50%;background:transparent;box-shadow:none;filter:drop-shadow(0 .7cqw .7cqw rgba(0,14,45,.65));}
.menu-child{width:24.2%;max-height:74%;bottom:.5%;object-fit:contain;object-position:bottom;}
.child-left{left:.6%;transform:rotate(-2deg)}
.child-right{right:.4%;transform:rotate(2deg)}
.menu-actions{top:51.5%;width:32%;gap:1.15cqw;}
.menu-links{top:79.4%;left:50%;transform:translateX(-50%);gap:1.4cqw;flex-wrap:nowrap;z-index:9;}
.social-icon{height:4cqw;width:4cqw;min-height:0;min-width:0;display:flex;align-items:center;justify-content:center;cursor:pointer;color:white;background:linear-gradient(150deg,#4f9af0,#2854aa);border:.21cqw solid #e0f2ff;border-radius:50%;box-shadow:0 .35cqw 0 rgba(11,39,96,.76),0 .4cqw 1cqw rgba(4,16,48,.35);transition:transform .13s,filter .13s;touch-action:manipulation}
.social-icon svg{display:block;width:57%;height:57%;}
.social-icon:hover{filter:brightness(1.17);transform:translateY(-2px)}
.social-icon:active{transform:translateY(2px)}
.social-icon:focus-visible{outline:3px solid #fff;outline-offset:4px}
.playlist-pill{top:88%;font-size:1.08cqw;}
.menu-hint{bottom:1.5%;}
@container (max-width:900px){
 .menu-title{top:1.4%;gap:.4cqw}
 .menu-title h1{font-size:6.7cqw}
 .menu-app-icon{width:20cqw;height:20cqw;max-width:none}
 .menu-child{width:24.2%;max-height:74%}
 .menu-actions{top:51.5%;width:32%;gap:1.15cqw}
 .menu-links{top:79.4%;gap:1.4cqw}
 .social-icon{width:4cqw;height:4cqw}
 .playlist-pill{top:88%;font-size:1.08cqw;max-width:none;white-space:nowrap}
 .menu-hint{font-size:1.08cqw;left:18%;right:18%}
}

/* Android 1.1: edge-to-edge WebView with proportional, center-cropped game canvas. */
html,body{width:100%!important;height:100%!important;margin:0!important;overflow:hidden!important}
body{display:block!important;background:#061939!important}
#app{position:fixed!important;inset:0!important;top:0!important;left:0!important;
 width:100vw!important;height:100vh!important;height:100dvh!important;
 max-width:none!important;max-height:none!important;aspect-ratio:auto!important;
 transform:none!important;box-shadow:none!important;border:0!important}
#stage{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;
 object-fit:cover!important;object-position:center center!important}
.menu-links{left:2.3%!important;top:23%!important;right:auto!important;
 transform:none!important;display:flex!important;flex-direction:column!important;
 align-items:flex-start!important;gap:.9cqw!important;flex-wrap:nowrap!important}
.social-icon{width:3.8cqw!important;height:3.8cqw!important;min-width:42px!important;min-height:42px!important}
.menu-actions{top:48%!important;gap:1.4cqw!important}
.playlist-pill{top:84.5%!important;left:50%!important}
.menu-hint{bottom:1.2%!important}

/* Android v1.3: SVG hearts never stretch on ultra-wide mobile screens. */
.heart-row{align-items:center!important;justify-content:center!important;gap:.52cqw!important;
 margin-top:1.12cqw!important;line-height:0!important}
.heart-row .live-heart,.heart-row .lost-heart{display:inline-flex!important;align-items:center!important;
 justify-content:center!important;flex:0 0 3.25cqw!important;width:3.25cqw!important;
 height:3.25cqw!important;max-width:100%;font-size:0!important;line-height:0!important;
 filter:none!important}
.heart-row svg{display:block;width:100%;height:100%;aspect-ratio:1/1;overflow:visible}
.heart-row .live-heart svg path{fill:#f32a56;stroke:#bc1841;stroke-width:.65}
.heart-row .lost-heart svg path{fill:#aab6ce;stroke:#7e8da9;stroke-width:.65}
.level-up-notice{position:absolute;z-index:19;top:40%;left:50%;transform:translate(-50%,-50%);
 text-align:center;pointer-events:none;opacity:0;display:flex;flex-direction:column;align-items:center;
 gap:.5cqw;text-shadow:0 .25cqw .4cqw #0e255e}
.level-up-notice strong{font-size:5.7cqw;line-height:1.1;font-weight:1000;color:#fff;
 background:linear-gradient(#72b8ff,#1d63c5);padding:.18em .8em;border:.25cqw solid #e2f5ff;
 border-radius:1.5cqw;box-shadow:0 .35cqw 0 #103971}
.level-up-notice span{font-size:3.2cqw;white-space:nowrap;font-weight:1000;color:white;
 padding:.28em .95em;border:.2cqw solid #fff4b8;border-radius:999px;
 background:linear-gradient(#ff7895,#e82b56)}
.level-up-notice.visible{opacity:1;animation:mkLevelPop 2.4s both}
@keyframes mkLevelPop{0%{opacity:0;transform:translate(-50%,-50%) scale(.65)}
 12%,80%{opacity:1;transform:translate(-50%,-50%) scale(1)}
 100%{opacity:0;transform:translate(-50%,-54%) scale(1.06)}}
@media(prefers-reduced-motion:reduce){.level-up-notice.visible{animation:none;opacity:1}}

/* Android v1.4: intro edge-to-edge with proportional crop, no vertical side bars. */
#intro{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;
 overflow:hidden!important;background:#061939!important}
#introVideo,.intro-screen video{position:absolute!important;inset:0!important;top:0!important;left:0!important;
 width:100%!important;height:100%!important;min-width:100%!important;min-height:100%!important;
 max-width:none!important;max-height:none!important;object-fit:cover!important;object-position:50% 50%!important}

/* Android v1.5 celebratory confetti and 20th-level message. */
.champion-overlay{position:absolute;z-index:31;inset:0;overflow:hidden;pointer-events:none;
 background:radial-gradient(circle at center,rgba(16,40,93,.05),rgba(0,16,47,.28))}
.champion-banner{position:absolute;left:50%;top:38%;transform:translate(-50%,-50%);
 width:min(75%,1000px);display:flex;align-items:center;flex-direction:column;gap:1.3cqw;
 text-align:center;z-index:2;filter:drop-shadow(0 .6cqw .55cqw rgba(5,22,57,.7));
 animation:championEnter 4.55s both}
.champion-banner strong{font-size:5.3cqw;line-height:1;color:#fff;
 background:linear-gradient(#75c5ff,#265abf);border:.28cqw solid #f9f1c9;border-radius:1.5cqw;padding:.2em .8em}
.champion-banner span{font-size:4cqw;line-height:1.08;letter-spacing:.015em;
 color:#fff5cb;text-shadow:.09cqw .1cqw #193c8b,-.09cqw .1cqw #193c8b;
 font-weight:1000;background:linear-gradient(#ff7595,#d92b52);padding:.32em .75em;
 border:.32cqw solid white;border-radius:1.8cqw;box-shadow:0 .5cqw 0 #94253a}
.champion-confetti{position:absolute;top:-12%;left:var(--x);width:1.15cqw;height:2.05cqw;
 border-radius:.25cqw;opacity:0;animation:championFall var(--fall) var(--delay) linear 1 forwards}
@keyframes championFall{0%{opacity:0;transform:translate(0,-10vh) rotate(0)}
 8%{opacity:1}90%{opacity:1}
 100%{opacity:0;transform:translate(var(--drift),118vh) rotate(var(--rot))}}
@keyframes championEnter{0%{opacity:0;transform:translate(-50%,-50%) scale(.55)}
 11%,86%{opacity:1;transform:translate(-50%,-50%) scale(1)}
 100%{opacity:0;transform:translate(-50%,-50%) scale(1.08)}}
@media(prefers-reduced-motion:reduce){.champion-banner{animation:none}.champion-confetti{animation-duration:5s}}
