@font-face{font-family:Starzone;src:url(/fonts/Starzone.ttf) format("truetype");font-display:swap;font-style:normal;font-weight:400}:root{color-scheme:dark;font-family:Starzone,Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#05020c;color:#f7f7ff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0;overflow:hidden}body{min-width:320px;min-height:100vh}.app-shell{position:relative;width:100%;height:100%;background:#04000a;overflow:hidden}.game-canvas{display:block;width:100vw;height:100vh;outline:none;touch-action:none;cursor:crosshair}.desktop-only-shell{background:radial-gradient(circle at 30% 20%,rgba(53,248,255,.18),transparent 55%),radial-gradient(circle at 75% 80%,rgba(255,79,216,.16),transparent 55%),#04000a}.desktop-only{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:24px;z-index:50}.desktop-only-card{width:min(520px,100%);padding:28px 26px 30px;border:1px solid rgba(53,248,255,.55);border-radius:14px;background:linear-gradient(180deg,#060a1ce0,#02040cf0);box-shadow:0 0 32px #35f8ff47,inset 0 0 18px #f8f7ff0f;color:#f8f7ff;text-align:center;font-family:Inter,ui-sans-serif,system-ui,sans-serif}.desktop-only-card h1{margin:0 0 6px;font-family:Starzone,Inter,ui-sans-serif,system-ui,sans-serif;font-size:clamp(28px,7vw,42px);letter-spacing:.08em;color:#35f8ff;text-shadow:0 0 14px rgba(53,248,255,.7)}.desktop-only-tag{margin:0 0 18px;font-family:Starzone,Inter,ui-sans-serif,system-ui,sans-serif;font-size:clamp(14px,3.6vw,18px);letter-spacing:.22em;color:#ff9b3f;text-shadow:0 0 10px rgba(255,155,63,.45)}.desktop-only-body{margin:0 0 12px;font-size:clamp(13px,3.4vw,15px);line-height:1.5;color:#f8f7ffdb}.desktop-only-controls{list-style:none;margin:18px 0 0;padding:14px 16px;border:1px dashed rgba(53,248,255,.35);border-radius:10px;background:#060a1c8c;display:grid;gap:6px;font-size:clamp(12px,3.2vw,14px)}.desktop-only-controls li{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:baseline}.desktop-only-controls span{color:#f8f7ffbd}.desktop-only-controls b{color:#ff9b3f;font-weight:700}.home-screen{position:absolute;top:0;right:0;bottom:0;left:0;z-index:30;display:grid;grid-template-columns:auto 1fr;grid-template-rows:1fr auto;grid-template-areas:". controls" "start  .";align-items:end;justify-items:start;gap:clamp(14px,2vw,28px);padding:clamp(26px,5.2vw,76px);background:linear-gradient(90deg,#02040c1f,#02040c00 42%,#02040c2e),linear-gradient(0deg,#02040c5c,#02040c00 42%),url(/home/homescreen.webp) center / cover no-repeat}.home-start-button{grid-area:start}.home-controls{grid-area:controls;justify-self:end;align-self:start;position:relative;z-index:1;max-width:min(360px,calc(100vw - 52px));padding:14px 18px 16px;border:1px solid rgba(53,248,255,.55);border-radius:10px;background:linear-gradient(180deg,#060a1cc7,#02040cdb);box-shadow:0 0 18px #35f8ff38,inset 0 0 12px #f8f7ff0f;color:#f8f7ff;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:clamp(11px,1.05vw,14px);letter-spacing:.02em;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.home-controls h3{margin:0 0 8px;font-family:Starzone,Inter,ui-sans-serif,system-ui,sans-serif;font-size:clamp(13px,1.25vw,17px);letter-spacing:.18em;color:#35f8ff;text-shadow:0 0 8px rgba(53,248,255,.6)}.home-controls ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}.home-controls li{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:baseline;padding:2px 0;border-bottom:1px dashed rgba(248,247,255,.08)}.home-controls li:last-child{border-bottom:none}.home-controls span{color:#f8f7ffbd;font-weight:500}.home-controls b{color:#ff9b3f;font-weight:700;text-shadow:0 0 6px rgba(255,155,63,.32)}@media (max-width: 640px){.home-screen{grid-template-columns:1fr;grid-template-rows:1fr auto auto;grid-template-areas:"." "controls" "start";justify-items:center}.home-controls{justify-self:stretch;max-width:none}}.home-screen:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),radial-gradient(circle at 70% 60%,rgba(53,248,255,.16),transparent 30%);background-size:100% 3px,100% 100%;mix-blend-mode:screen}.home-start-button{position:relative;z-index:1;min-width:min(360px,calc(100vw - 52px));min-height:64px;padding:18px 34px 15px;border:1px solid rgba(248,247,255,.72);clip-path:polygon(16px 0,calc(100% - 16px) 0,100% 50%,calc(100% - 16px) 100%,16px 100%,0 50%);background:linear-gradient(90deg,#35f8ffe0,#f8f7fff0 48%,#ff9b3feb),#060312a3;color:#05020c;font-family:Starzone,Inter,ui-sans-serif,system-ui,sans-serif;font-size:clamp(22px,2.35vw,36px);font-weight:900;letter-spacing:0;text-shadow:0 0 10px rgba(248,247,255,.78);box-shadow:0 0 28px #35f8ff75,0 0 46px #ff9b3f3d,inset 0 0 18px #f8f7ff8f;cursor:pointer;transition:transform .16s ease,filter .16s ease,box-shadow .16s ease}.home-start-button:hover:not(:disabled),.home-start-button:focus-visible{transform:translateY(-2px) scale(1.025);filter:saturate(1.18) brightness(1.08);box-shadow:0 0 36px #35f8ffad,0 0 58px #ff9b3f5c,inset 0 0 22px #f8f7ffb3}.home-start-button:focus-visible{outline:2px solid #f8f7ff;outline-offset:6px}.home-start-button:disabled{cursor:wait;opacity:.72}.home-screen.is-launching{cursor:wait}.hud-root{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;-webkit-user-select:none;user-select:none;background:transparent;mix-blend-mode:normal}.hud-top,.hud-mid,.hud-bottom,.boss-bar,.debug-panel{position:absolute;z-index:5}.hud-top{top:max(18px,env(safe-area-inset-top));left:24px;right:24px;display:grid;grid-template-columns:minmax(240px,360px) auto 1fr auto;align-items:center;gap:18px}.hud-mid{top:72px;left:50%;transform:translate(-50%)}.hud-bottom{left:24px;right:24px;bottom:max(22px,env(safe-area-inset-bottom))}.meter{position:relative;height:22px;clip-path:polygon(0 0,calc(100% - 14px) 0,100% 50%,calc(100% - 14px) 100%,0 100%,8px 50%);border:1px solid rgba(248,247,255,.46);background:repeating-linear-gradient(90deg,rgba(255,255,255,.08) 0 2px,transparent 2px 12px),#0603129e;box-shadow:inset 0 0 18px #05020ce6,0 0 18px #35f8ff47;overflow:hidden}.meter span{position:absolute;left:10px;top:50%;z-index:2;transform:translateY(-50%);font-size:11px;font-weight:800;letter-spacing:0;color:#f8f7ffeb;text-shadow:0 0 8px rgba(0,0,0,.8)}.meter b{display:block;height:100%;background:linear-gradient(90deg,#39ff9f,#35f8ff 54%,#f8f7ff),repeating-linear-gradient(90deg,transparent 0 10px,rgba(5,2,12,.18) 10px 12px);box-shadow:0 0 22px #35f8ffbf,inset 0 0 12px #f8f7ff80}.meter.progress{height:18px;clip-path:polygon(0 0,100% 0,calc(100% - 8px) 100%,8px 100%)}.meter.progress span{font-size:9px}.meter.progress b{background:linear-gradient(90deg,#ff9b3f,#ff4fd8)}.readout,.lock-readout{font-weight:900;letter-spacing:0;color:#f8f7ff;text-shadow:0 0 10px rgba(53,248,255,.7),0 0 22px rgba(255,79,216,.35)}.readout{font-size:clamp(14px,1.45vw,22px);text-align:right;white-space:nowrap}.combo{color:#ffe66d}.resources{display:inline-flex;gap:14px;justify-content:flex-start;text-align:left;color:#39ff9f;font-size:clamp(10px,.9vw,14px)}.resources span+span{color:#35f8ff}.lock-readout{min-width:118px;padding:8px 14px;clip-path:polygon(9px 0,calc(100% - 9px) 0,100% 50%,calc(100% - 9px) 100%,9px 100%,0 50%);border:1px solid rgba(248,247,255,.3);background:linear-gradient(90deg,#35f8ff1a,#ff4fd81f),#0603128a;color:#f8f7ff9e;text-align:center;box-shadow:inset 0 0 16px #000000a6}.lock-readout.active{color:#39ff9f;border-color:#39ff9fcc;box-shadow:0 0 24px #39ff9f59}.boss-bar{left:50%;bottom:58px;width:min(760px,calc(100vw - 48px));height:22px;transform:translate(-50%);clip-path:polygon(12px 0,calc(100% - 12px) 0,100% 50%,calc(100% - 12px) 100%,12px 100%,0 50%);border:1px solid rgba(255,79,216,.78);background:repeating-linear-gradient(90deg,rgba(255,255,255,.05) 0 4px,transparent 4px 18px),#0a0212b8;box-shadow:0 0 28px #ff4fd857,inset 0 0 18px #ff355e2e;overflow:hidden}.boss-bar span{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:grid;place-items:center;font-size:12px;font-weight:900;color:#f8f7ff;text-shadow:0 0 8px #05020c}.boss-bar b{display:block;height:100%;background:linear-gradient(90deg,#ff355e,#ff9b3f,#ffe66d,#ff4fd8);box-shadow:0 0 26px #ff4fd8bd}.title-card,.pause-card,.system-message{position:absolute;left:50%;top:50%;z-index:10;width:min(860px,calc(100vw - 40px));transform:translate(-50%,-50%);text-align:center;text-shadow:0 0 18px rgba(255,79,216,.65),0 0 32px rgba(53,248,255,.35)}.title-card h1,.system-message h1{margin:0;font-size:clamp(48px,8vw,118px);line-height:.88;font-weight:950;letter-spacing:0}.title-card h2{margin:10px 0 32px;color:#35f8ff;font-size:clamp(20px,3vw,38px);font-weight:900}.title-card p,.pause-card p,.system-message p{margin:10px auto;max-width:760px;color:#f8f7ffe6;font-size:clamp(11px,1.05vw,15px);line-height:1.45;font-weight:700}.title-card p+p{margin-top:14px}.stage-select{display:grid;gap:7px;width:min(520px,calc(100vw - 64px));margin:0 auto 24px;padding:12px 18px;color:#f8f7ff;background:linear-gradient(90deg,#05020c33,#05020c9e,#05020c33);border-top:1px solid rgba(53,248,255,.44);border-bottom:1px solid rgba(255,230,109,.34);text-shadow:0 0 12px rgba(53,248,255,.8),0 0 22px rgba(255,79,216,.35)}.stage-select span{color:#ffe66d;font-size:clamp(10px,.95vw,14px)}.stage-select b{color:#35f8ff;font-size:clamp(16px,1.75vw,27px);font-weight:950}.stage-select em{color:#f8f7ffd1;font-size:clamp(9px,.85vw,12px);font-style:normal}.continue-copy{display:grid;gap:8px;justify-items:center}.continue-copy b{margin-bottom:8px;color:#ffe66d;font-size:clamp(18px,2vw,34px);font-weight:950;text-shadow:0 0 14px rgba(255,230,109,.72),0 0 24px rgba(255,79,216,.35)}.title-card.bossIntro h1{color:#ff355e;animation:warning-pulse .55s steps(2) infinite}.title-card.continue h1{color:#ffe66d;animation:warning-pulse .7s steps(2) infinite}.title-card.gameOver h1{color:#ff355e}.title-card.victory h1{color:#39ff9f}.title-card.stageClear h1{color:#ffe66d}.stage-notice{position:absolute;left:50%;top:16%;z-index:6;display:grid;gap:4px;min-width:min(560px,calc(100vw - 48px));transform:translate(-50%);text-align:center;color:#f8f7ff;text-shadow:0 0 14px rgba(53,248,255,.75),0 0 24px rgba(255,155,63,.45)}.stage-notice span{color:#ffe66d;font-size:clamp(11px,1vw,15px)}.stage-notice b{font-size:clamp(18px,2.2vw,32px);font-weight:950}.enemy-showcase-banner{position:absolute;left:50%;top:max(88px,calc(env(safe-area-inset-top) + 72px));z-index:8;display:grid;gap:4px;min-width:min(520px,calc(100vw - 48px));transform:translate(-50%);padding:10px 16px;text-align:center;color:#f8f7ff;border-top:1px solid rgba(53,248,255,.48);border-bottom:1px solid rgba(255,230,109,.36);background:linear-gradient(90deg,#05020c14,#05020cb3,#05020c14);text-shadow:0 0 14px rgba(53,248,255,.8),0 0 24px rgba(255,79,216,.35)}.enemy-showcase-banner b{color:#35f8ff;font-size:clamp(17px,1.8vw,28px);font-weight:950}.enemy-showcase-banner span{color:#f8f7ffdb;font-size:clamp(10px,.95vw,13px)}.enemy-showcase-paths{position:absolute;left:18px;bottom:86px;z-index:8;display:grid;gap:3px;width:min(720px,calc(100vw - 280px));max-height:34vh;overflow:hidden;padding:10px 12px;border:1px solid rgba(53,248,255,.26);background:#00000080;color:#f8f7ffd6;font-family:Starzone,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:10px;line-height:1.25}.pause-card{width:min(420px,calc(100vw - 40px));padding:28px;border:1px solid rgba(53,248,255,.45);background:#05020cb8;box-shadow:0 0 38px #35f8ff40}.pause-card h2{margin:0 0 8px;font-size:42px}.system-message{padding:28px}.system-message.error h1{color:#ff355e}.debug-panel{right:18px;bottom:86px;display:grid;gap:4px;padding:10px 12px;min-width:150px;border:1px solid rgba(248,247,255,.2);background:#0000006b;font-family:Starzone,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px;color:#f8f7ffd6;box-shadow:0 0 18px #35f8ff29}.credits-card{position:absolute;left:50%;top:50%;z-index:12;width:min(880px,calc(100vw - 40px));max-height:calc(100vh - 64px);display:flex;flex-direction:column;padding:36px 44px 30px;transform:translate(-50%,-50%);text-align:center;border:1px solid rgba(53,248,255,.5);background:#05020cd6;box-shadow:0 0 38px #35f8ff52,0 0 64px #ff4fd82e,inset 0 0 24px #05020cb3;text-shadow:0 0 14px rgba(53,248,255,.6),0 0 26px rgba(255,79,216,.32)}.credits-scroll-window{position:relative;flex:1 1 auto;min-height:0;height:clamp(260px,56vh,440px);margin:4px 0 14px;overflow:hidden;-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 8%,#000 92%,transparent 100%);mask-image:linear-gradient(to bottom,transparent 0,#000 8%,#000 92%,transparent 100%)}.credits-scroll-track{position:absolute;left:0;right:0;top:0;will-change:transform;animation:creditsScroll 18s linear forwards}.credits-scroll-track .credits-body{margin-bottom:16px}@keyframes creditsScroll{0%{transform:translateY(100%)}8%{transform:translateY(60%)}to{transform:translateY(-110%)}}@media (prefers-reduced-motion: reduce){.credits-scroll-window{overflow-y:auto;-webkit-mask-image:none;mask-image:none}.credits-scroll-track{position:static;animation:none}}.credits-card h1{margin:0 0 6px;color:#ffe66d;font-size:clamp(40px,6vw,76px);font-weight:950;letter-spacing:0;line-height:.95}.credits-card h2{margin:0 0 22px;color:#35f8ff;font-size:clamp(14px,1.6vw,22px);font-weight:900;letter-spacing:0}.credits-body{display:grid;gap:18px;margin-bottom:18px;text-align:left}.credits-body section{padding:12px 16px;border-top:1px solid rgba(53,248,255,.32);border-bottom:1px solid rgba(255,230,109,.22);background:linear-gradient(90deg,#05020c2e,#05020c8c,#05020c2e)}.credits-body h3{margin:0 0 8px;color:#ff9b3f;font-size:clamp(13px,1.35vw,18px);font-weight:900;letter-spacing:0}.credits-body ul{display:grid;gap:4px;margin:0;padding:0;list-style:none}.credits-body li{display:grid;grid-template-columns:minmax(140px,220px) 1fr;gap:14px;align-items:baseline;padding:4px 6px;font-size:clamp(11px,1.05vw,14px);color:#f8f7ffeb}.credits-body li span{color:#35f8ffdb;font-weight:700;letter-spacing:0}.credits-body li b{color:#f8f7ff;font-weight:900;letter-spacing:0}.credits-footer{margin:6px auto 14px;max-width:720px;color:#f8f7ffc7;font-size:clamp(10px,.95vw,13px);font-weight:700}.credits-back{margin:0;color:#ffe66d;font-size:clamp(12px,1.2vw,16px);font-weight:900;letter-spacing:0}@keyframes warning-pulse{50%{opacity:.45}}@media (max-width: 720px){.hud-top{grid-template-columns:1fr;gap:6px}.readout{text-align:left}.hud-mid{top:118px}}.mobile-controls{position:absolute;top:0;right:0;bottom:0;left:0;z-index:20;pointer-events:none;display:none;padding:max(12px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(14px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}@media (pointer: coarse) and (hover: none){.mobile-controls{display:block}.hud-bottom{bottom:max(168px,calc(env(safe-area-inset-bottom) + 158px))}}.mc-left,.mc-right,.mc-top-right{position:absolute;pointer-events:auto;display:flex;gap:14px;user-select:none;-webkit-user-select:none;touch-action:none}.mc-left{left:max(20px,env(safe-area-inset-left));bottom:max(28px,env(safe-area-inset-bottom))}.mc-right{right:max(20px,env(safe-area-inset-right));bottom:max(28px,env(safe-area-inset-bottom));flex-direction:column-reverse;align-items:flex-end}.mc-top-right{top:max(12px,env(safe-area-inset-top));right:max(20px,env(safe-area-inset-right));flex-direction:row;gap:10px}.mc-stick-base{position:relative;width:clamp(140px,28vw,200px);height:clamp(140px,28vw,200px);border-radius:50%;background:radial-gradient(circle at 50% 50%,#35f8ff2e,#0603128c 60%),#0603126b;border:2px solid rgba(53,248,255,.55);box-shadow:0 0 22px #35f8ff52,inset 0 0 18px #05020cd9;touch-action:none}.mc-stick-ring{position:absolute;top:14%;right:14%;bottom:14%;left:14%;border-radius:50%;border:1px dashed rgba(248,247,255,.32)}.mc-stick-knob{position:absolute;left:50%;top:50%;width:48%;height:48%;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle at 35% 30%,#ffffffeb,#35f8ffd9 38%,#ff9b3fc7 78%),#060312b3;border:1px solid rgba(248,247,255,.85);box-shadow:0 0 22px #35f8ff99,inset 0 0 14px #05020c8c;pointer-events:none}.mc-button{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;width:clamp(74px,16vw,108px);height:clamp(74px,16vw,108px);padding:0;border-radius:50%;border:2px solid rgba(248,247,255,.78);background:radial-gradient(circle at 35% 30%,#fff6,#0603128c 60%),#0603128c;color:#f7f7ff;font-family:Starzone,Inter,ui-sans-serif,system-ui,sans-serif;font-weight:900;letter-spacing:.5px;text-shadow:0 0 8px rgba(0,0,0,.85);box-shadow:0 0 22px #35f8ff47,inset 0 0 14px #05020cc7;cursor:pointer;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;touch-action:none;transition:transform 80ms ease,filter 80ms ease}.mc-button:active{transform:scale(.94);filter:brightness(1.25) saturate(1.2)}.mc-button-label{font-size:clamp(13px,2.6vw,18px);line-height:1}.mc-button-sub{margin-top:4px;font-size:clamp(8px,1.4vw,10px);font-weight:700;opacity:.7;letter-spacing:.6px}.mc-fire{border-color:#ff9b3ff2;box-shadow:0 0 26px #ff9b3f8c,inset 0 0 14px #05020ccc;background:radial-gradient(circle at 35% 30%,#ffdcb48c,#ff5a1e80 55%,#060312a6 90%),#0603128c}.mc-bomb{border-color:#ff5078f2;box-shadow:0 0 26px #ff3c648c,inset 0 0 14px #05020ccc;background:radial-gradient(circle at 35% 30%,#ffc8dc80,#dc1e508c 55%,#060312a6 90%),#0603128c}.mc-lock{border-color:#35f8fff2;box-shadow:0 0 26px #35f8ff8c,inset 0 0 14px #05020ccc;background:radial-gradient(circle at 35% 30%,#b4ffff8c,#14c8ff80 55%,#060312a6 90%),#0603128c}.mc-start,.mc-pause{width:clamp(58px,10vw,78px);height:clamp(36px,6vw,46px);border-radius:14px;border-width:1px;background:linear-gradient(140deg,#35f8ff52,#ff9b3f47),#06031299;box-shadow:0 0 14px #35f8ff52,inset 0 0 10px #05020cc7}.mc-start .mc-button-label,.mc-pause .mc-button-label{font-size:clamp(11px,1.8vw,14px)}
