.device-check-message{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100vh;width:100vw;text-align:center;padding:20px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.device-check-content{max-width:400px}.device-check-message h1{font-size:24px;margin-bottom:16px;font-weight:600}.device-check-message p{font-size:16px;opacity:.9;line-height:1.5}.start-screen{width:100vw;width:100dvw;height:100vh;height:100dvh;min-height:-webkit-fill-available;display:flex;justify-content:center;align-items:center;position:relative;overflow:hidden;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);box-sizing:border-box;background-color:#e8f4ec;background-image:var(--start-bg-base);background-size:100% 100%;background-position:center;background-repeat:no-repeat}.start-screen__stack{position:relative;display:inline-block;line-height:0;max-width:100%;max-height:100%;transform:translateZ(0);-webkit-transform:translateZ(0)}.start-screen__bg-start{display:block;width:auto;height:auto;max-width:min(100vw,100%);max-height:calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 16px);object-fit:contain;-webkit-mask-image:radial-gradient(ellipse 100% 96% at 50% 50%,#000 0%,#000 50%,rgba(0,0,0,.92) 62%,rgba(0,0,0,.45) 78%,rgba(0,0,0,.08) 90%,transparent 100%);mask-image:radial-gradient(ellipse 100% 96% at 50% 50%,#000 0%,#000 50%,rgba(0,0,0,.92) 62%,rgba(0,0,0,.45) 78%,rgba(0,0,0,.08) 90%,transparent 100%);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-position:center;mask-position:center}.start-screen__btn-wrap{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.start-button{padding:0;border:none;background:transparent;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:transform .2s ease;pointer-events:auto;display:flex;justify-content:center;align-items:center;animation:buttonCTA 2.5s ease-in-out infinite;filter:drop-shadow(0 0 20px rgba(255,255,255,.6));z-index:2}.start-button-img{width:auto;height:auto;max-width:min(200px,42vw);max-height:min(22vh,22dvh);object-fit:contain;display:block;animation:buttonGlow 2s ease-in-out infinite}@keyframes buttonCTA{0%,to{transform:translateY(0) scale(1);filter:drop-shadow(0 0 20px rgba(255,255,255,.6))}25%{transform:translateY(-5px) scale(1.03);filter:drop-shadow(0 0 25px rgba(255,255,255,.75))}50%{transform:translateY(0) scale(1.05);filter:drop-shadow(0 0 30px rgba(255,255,255,.9))}75%{transform:translateY(-3px) scale(1.03);filter:drop-shadow(0 0 25px rgba(255,255,255,.75))}}@keyframes buttonGlow{0%,to{filter:brightness(1) drop-shadow(0 0 10px rgba(255,255,255,.5))}50%{filter:brightness(1.2) drop-shadow(0 0 20px rgba(255,255,255,.8))}}.start-button:active,.start-button.pressed{transform:scale(.95)!important;animation:none!important;filter:drop-shadow(0 0 10px rgba(255,255,255,.4))}.start-button.pressed .start-button-img{animation:none!important;filter:brightness(.9)}.milestone-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:250;display:flex;align-items:center;justify-content:center;pointer-events:auto;touch-action:none;transition:opacity .48s ease,visibility .48s ease}.milestone-overlay--out{opacity:0;visibility:hidden;pointer-events:none}.milestone-overlay__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 85% 70% at 50% 45%,#06142d59,#000000b8);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.milestone-overlay__stage{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;min-height:min(360px,55vh)}.milestone-bubble-shell{position:relative;display:flex;align-items:center;justify-content:center;opacity:0;transform:scale(.12)}.milestone-bubble-shell--enter.is-visible{animation:milestoneBubblePopIn .78s cubic-bezier(.25,.9,.35,1.15) forwards}@keyframes milestoneBubblePopIn{0%{opacity:.75;transform:scale(.12)}55%{opacity:1;transform:scale(1.06)}to{opacity:1;transform:scale(1)}}.milestone-bubble-sprite{position:absolute;left:50%;top:50%;background-repeat:no-repeat;image-rendering:auto}.milestone-hundred-stack{position:relative;display:flex;align-items:center;justify-content:center;width:min(92vw,420px);min-height:min(280px,40vh)}.milestone-hundred-ring{position:absolute;left:50%;top:50%;width:min(72vw,280px);aspect-ratio:1;margin-left:calc(min(72vw,280px)/-2);margin-top:calc(min(72vw,280px)/-2);border-radius:50%;border:3px solid rgba(255,240,160,.85);box-shadow:0 0 20px #ffdc64e6,0 0 60px #64c8ff80,inset 0 0 30px #ffffff40;pointer-events:none;animation:milestoneHundredRingBurst .85s cubic-bezier(.12,.85,.22,1) both}@keyframes milestoneHundredRingBurst{0%{transform:scale(.2);opacity:0}12%{opacity:1}55%{transform:scale(1.35);opacity:.85}to{transform:scale(2.15);opacity:0}}.milestone-hundred-flash{position:absolute;left:50%;top:50%;width:min(100vw,520px);height:min(100vw,520px);margin-left:calc(min(100vw,520px)/-2);margin-top:calc(min(100vw,520px)/-2);border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.65) 0%,rgba(180,230,255,.35) 28%,transparent 62%);pointer-events:none;animation:milestoneHundredFlash .55s ease-out both}@keyframes milestoneHundredFlash{0%{transform:scale(.15);opacity:0}25%{opacity:1}to{transform:scale(1.1);opacity:0}}.milestone-hundred{position:relative;z-index:1;font-size:clamp(3.75rem,22vw,7rem);font-weight:900;letter-spacing:-.04em;line-height:1;color:#063a7a;text-shadow:0 0 8px rgba(255,255,255,1),0 0 28px rgba(255,240,150,.95),0 0 56px rgba(80,180,255,.65),0 0 100px rgba(255,200,80,.45),0 6px 20px rgba(0,0,0,.4);animation:milestoneHundredReveal .72s cubic-bezier(.18,1.35,.32,1) both}@keyframes milestoneHundredReveal{0%{opacity:0;transform:scale(.08) rotate(-14deg);filter:blur(14px) brightness(2.8)}18%{opacity:1;filter:blur(4px) brightness(1.8)}42%{transform:scale(1.28) rotate(6deg);filter:blur(0) brightness(1.35)}58%{transform:scale(.9) rotate(-3deg);filter:brightness(1.15)}74%{transform:scale(1.1) rotate(2deg)}88%{transform:scale(.97) rotate(-1deg)}to{opacity:1;transform:scale(1) rotate(0);filter:blur(0) brightness(1)}}.victory-fireworks{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none;overflow:visible}.victory-fireworks__burst{position:absolute;width:0;height:0;pointer-events:none}.victory-fireworks__rocket{position:absolute;left:0;bottom:0;width:3px;height:16px;margin-left:-1.5px;border-radius:2px;transform-origin:50% 100%;pointer-events:none;background:linear-gradient(180deg,#ffffff 0%,#fff3c4 28%,var(--rocket-glow, #ffb020) 72%,#ff5c2e 100%);box-shadow:0 0 8px 3px var(--rocket-glow, #ffb020),0 0 18px 6px #ffbe5073;animation:vfRocket var(--dur, 2.8s) var(--delay, 0s) infinite}@keyframes vfRocket{0%{transform:translateZ(0) scaleY(.35);opacity:0;animation-timing-function:ease-in}3%{opacity:1;animation-timing-function:cubic-bezier(.2,.85,.36,1)}11%{transform:translate3d(0,var(--rise, -52vh),0) scaleY(1.12);opacity:1;animation-timing-function:ease-in}13%{transform:translate3d(0,var(--rise, -52vh),0) scaleY(.15);opacity:0}14%,to{transform:translate3d(0,var(--rise, -52vh),0) scaleY(.08);opacity:0}}.victory-fireworks__spark{position:absolute;left:0;bottom:0;border-radius:50%;will-change:transform,opacity;transform-origin:50% 100%;pointer-events:none;animation:vfFireworkSpark var(--dur, 2.8s) var(--delay, 0s) infinite}@keyframes vfFireworkSpark{0%{transform:translateZ(0) scale(.25);opacity:0;animation-timing-function:ease-in}3%{opacity:.7;transform:translateZ(0) scale(.42);animation-timing-function:cubic-bezier(.22,.8,.3,1)}10%{transform:translate3d(0,var(--rise, -52vh),0) scale(.38);opacity:.85;animation-timing-function:cubic-bezier(.05,.9,.2,1)}12%{transform:translate3d(0,var(--rise, -52vh),0) scale(1.08);opacity:1;animation-timing-function:ease-out}24%{transform:translate3d(calc(var(--bx, 0px) * .96),calc(var(--rise, -52vh) + var(--by, 0px) * .96),0) scale(.95);opacity:1;animation-timing-function:ease-out}34%{transform:translate3d(var(--bx, 0px),calc(var(--rise, -52vh) + var(--by, 0px)),0) scale(.72);opacity:.88;animation-timing-function:cubic-bezier(.45,0,.75,.28)}to{transform:translate3d(calc(var(--bx, 0px) + var(--drift, 0px)),calc(var(--rise, -52vh) + var(--by, 0px) + var(--fall, 50vh)),0) scale(.06);opacity:0}}@media (prefers-reduced-motion: reduce){.victory-fireworks{display:none}}.victory-screen{--victory-base-bg: none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;width:100%;max-width:100vw;min-height:100vh;min-height:100dvh;height:100vh;height:100dvh;margin:0;padding:0;overflow:visible;overscroll-behavior:none;box-sizing:border-box;background-color:#e8f4ec;background-image:var(--victory-base-bg);background-size:100% 100%;background-position:center;background-repeat:no-repeat;animation:victoryScreenIn .55s cubic-bezier(.22,1,.36,1) both;isolation:isolate}@keyframes victoryScreenIn{0%{opacity:0}to{opacity:1}}.victory-screen__ground-layer{position:absolute;left:0;right:0;bottom:0;z-index:1;display:flex;justify-content:center;align-items:flex-end;padding-bottom:env(safe-area-inset-bottom,0px);pointer-events:none}.victory-screen__ground-img{display:block;width:100%;max-width:100%;height:auto;object-fit:contain;object-position:center bottom;-webkit-user-select:none;user-select:none}.victory-screen__top-layer{position:absolute;top:0;left:0;right:0;z-index:5;display:flex;justify-content:center;align-items:flex-start;margin-top:10vh;margin-top:10dvh;padding-top:env(safe-area-inset-top,0px);pointer-events:none}.victory-screen__top-img{display:block;width:100%;max-width:100%;height:auto;object-fit:contain;object-position:top center;-webkit-user-select:none;user-select:none}.victory-screen__cta-float{display:none;position:absolute;left:50%;bottom:max(18px,calc(12px + env(safe-area-inset-bottom)));transform:translate(-50%);z-index:6;pointer-events:auto;justify-content:center;align-items:center}.victory-screen__cta{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;cursor:pointer;padding:14px 40px;border-radius:999px;font-size:1.05rem;font-weight:700;color:#0a1628;background:linear-gradient(180deg,#e8f4ff,#7ec8ff);box-shadow:0 4px #3d8cc4,0 12px 32px #003c786b,0 0 0 1px #ffffff59 inset;transition:transform .15s ease,box-shadow .15s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.victory-screen__cta:active{transform:translateY(2px);box-shadow:0 2px #3d8cc4,0 6px 20px #003c7861,0 0 0 1px #ffffff4d inset}.game-screen{width:100vw;height:100vh;position:fixed;top:0;left:0;overflow:hidden;background:transparent;touch-action:none;-webkit-overflow-scrolling:touch}.game-screen--victory-bleed{overflow:visible}.game-screen canvas{position:absolute;top:0;left:0;width:100%;height:100%}.game-score{position:absolute;top:max(20px,env(safe-area-inset-top,0px));left:50%;transform:translate(-50%);display:flex;align-items:center;justify-content:center;z-index:100;pointer-events:none}.game-score-wrapper{display:grid;place-items:center;width:min(194px,50.8vw);aspect-ratio:1}.game-score-wrapper--flash{animation:scoreWrapperFlash .52s ease-out}.game-score-wrapper--flash .score-value{animation:scoreValueBlink .52s ease-out}@keyframes scoreWrapperFlash{0%,to{filter:brightness(1);transform:scale(1)}20%{filter:brightness(1.35);transform:scale(1.08)}40%{filter:brightness(.88);transform:scale(.98)}60%{filter:brightness(1.2);transform:scale(1.05)}80%{filter:brightness(1);transform:scale(1)}}@keyframes scoreValueBlink{0%,to{opacity:1}25%{opacity:.35}50%{opacity:1}75%{opacity:.45}}.game-score-frame{grid-area:1 / 1;width:100%;height:100%;object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none}.score-value{grid-area:1 / 1;position:relative;z-index:1;font-size:clamp(23px,7.16vw,34.5px);font-weight:800;color:#0030ff;letter-spacing:-.02em;line-height:1;text-shadow:0 0 6px rgba(255,255,255,.9),0 1px 2px rgba(255,255,255,.55),0 2px 4px rgba(0,0,0,.2);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif}.destroy-line{position:absolute;left:0;right:0;height:3px;background:linear-gradient(90deg,transparent 0%,#ff0000 50%,transparent 100%);box-shadow:0 0 10px #ff000080;z-index:1000;pointer-events:none}.destroy-line:before{content:"DESTROY LINE";position:absolute;left:50%;transform:translate(-50%);top:-20px;color:red;font-size:12px;font-weight:700;text-shadow:0 0 5px rgba(255,0,0,.8);white-space:nowrap}.debug-info-overlay{position:fixed;top:80px;left:10px;background:#000000b3;color:#fff;padding:10px 15px;border-radius:8px;font-family:Courier New,monospace;font-size:12px;z-index:1000;pointer-events:none;border:2px solid #4CAF50}.debug-stat{margin-bottom:8px;display:flex;align-items:center;gap:8px}.debug-stat:last-child{margin-bottom:0}.debug-label{color:#aaa;font-weight:400}.debug-value{color:#4caf50;font-weight:700;font-size:14px}.debug-detail{color:#888;font-size:11px;margin-left:4px}.animation-test-container{width:100vw;height:100vh;position:fixed;top:0;left:0;background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;touch-action:none;overflow:hidden}.test-info{position:absolute;top:20px;left:20px;background:#000000b3;color:#fff;padding:15px;border-radius:8px;font-family:monospace;font-size:12px;z-index:1000;min-width:200px}.test-info div{margin:5px 0;line-height:1.4}.test-instruction{margin-top:10px;padding-top:10px;border-top:1px solid rgba(255,255,255,.3);color:#ffc107;font-weight:700}.test-controls{position:absolute;top:20px;right:20px;background:#000000b3;color:#fff;padding:15px;border-radius:8px;font-family:monospace;font-size:12px;z-index:1000;min-width:200px}.test-controls label{display:block;margin:10px 0;line-height:1.6}.test-controls input[type=range]{vertical-align:middle}.test-controls button{cursor:pointer;background:#4caf50;color:#fff;border:none;border-radius:4px;font-size:12px}.test-controls button:hover{background:#45a049}.bubble-test{position:absolute;transform:translate(-50%,-50%);pointer-events:none}.bubble-normal{border-radius:50%;background:#fffc;border:3px solid rgba(255,255,255,.9);display:flex;justify-content:center;align-items:center;box-shadow:0 4px 10px #0003;z-index:10}.bubble-icon{font-size:28px;-webkit-user-select:none;user-select:none}.bubble-sprite{position:absolute;top:50%;left:50%;image-rendering:pixelated;image-rendering:-moz-crisp-edges;image-rendering:crisp-edges;image-rendering:auto;background-color:transparent;overflow:hidden}.bubble{position:absolute;border-radius:50%;background:#fffc;border:3px solid rgba(255,255,255,.9);display:flex;justify-content:center;align-items:center;box-shadow:0 4px 10px #0003;pointer-events:none;z-index:10;will-change:transform;transition:none}.bubble-content{display:flex;justify-content:center;align-items:center;width:100%;height:100%}.bubble-icon{width:60%;height:60%;object-fit:contain;-webkit-user-select:none;user-select:none;pointer-events:none}.bubble-popping{border:none;background:transparent;box-shadow:none;overflow:visible;z-index:20}.bubble-normal-sprite{border:none;background:transparent;box-shadow:none;overflow:visible}.bubble-popping-fallback{border:none;background:#fffc;animation:popAnimationFallback .3s ease-out forwards}@keyframes popAnimationFallback{0%{transform:translate(-50%,-50%) scale(1);opacity:1}50%{transform:translate(-50%,-50%) scale(1.2);opacity:.8}to{transform:translate(-50%,-50%) scale(0);opacity:0}}.bubble-sprite{position:absolute;top:50%;left:50%;image-rendering:auto;background-color:transparent;overflow:hidden}.bubble-sprite-background{z-index:1}.bubble-icon-layer{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:2;display:flex;justify-content:center;align-items:center;width:100%;height:100%;pointer-events:none}.bubble-debug{box-shadow:0 0 0 2px #ff000080}.bubble-debug:before{content:attr(data-bubble-id);position:absolute;top:-20px;left:50%;transform:translate(-50%);background:#f00c;color:#fff;font-size:10px;padding:2px 4px;border-radius:3px;white-space:nowrap;z-index:100;pointer-events:none}.bubble-debug[data-is-popping=true]:before{background:#0f0c;content:"ID:" attr(data-bubble-id) " POPPING"}.flying-icon{position:absolute;pointer-events:auto;z-index:100;transition:opacity .1s ease}.flying-icon-content{width:60px;height:60px;object-fit:contain;display:block;-webkit-user-select:none;user-select:none;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3));pointer-events:none}body.memory-test-page,body.memory-test-page #root{overflow:auto!important;height:auto!important;min-height:100vh!important;touch-action:auto!important}.memory-test{min-height:100vh;background:#1a1a1a;color:#fff;padding:20px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;overflow-y:visible;overflow-x:hidden;position:relative;width:100%}.memory-test-header{margin-bottom:30px}.memory-test-header h1{margin:0 0 20px;font-size:24px;color:#fff}.test-controls{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.test-controls button{padding:10px 20px;background:#4caf50;color:#fff;border:none;border-radius:5px;cursor:pointer;font-size:14px;font-weight:600;transition:background .2s}.test-controls button:hover:not(:disabled){background:#45a049}.test-controls button:disabled{background:#666;cursor:not-allowed;opacity:.6}.test-controls label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:14px}.test-controls input[type=checkbox]{width:18px;height:18px;cursor:pointer}.memory-test-stats{display:flex;flex-direction:column;gap:20px;margin-bottom:30px}.stats-section{background:#2a2a2a;padding:20px;border-radius:8px}.stats-section h2{margin:0 0 15px;font-size:18px;color:#4caf50;border-bottom:2px solid #4CAF50;padding-bottom:5px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:15px}.stat-item{background:#333;padding:15px;border-radius:5px;border-left:4px solid #4CAF50}.stat-label{font-size:12px;color:#aaa;margin-bottom:5px;text-transform:uppercase;letter-spacing:.5px}.stat-value{font-size:28px;font-weight:700;color:#4caf50;margin-bottom:5px}.stat-detail{font-size:11px;color:#888;margin-top:5px}.game-container-wrapper{position:relative;width:100%;height:400px;background:#000;border:2px solid #4CAF50;border-radius:8px;overflow:hidden;margin-bottom:30px}.game-container{position:relative;width:100%;height:100%;background:linear-gradient(180deg,#1a4a5c,#2d7a9f)}.memory-test-info{background:#2a2a2a;padding:20px;border-radius:8px}.memory-test-info h3{margin:0 0 15px;font-size:18px;color:#4caf50}.memory-test-info ul{margin:0;padding-left:20px}.memory-test-info li{margin-bottom:8px;line-height:1.6;color:#ccc}@media (max-width: 768px){.memory-test{padding:15px}.memory-test-header h1{font-size:20px}.test-controls{flex-direction:column;align-items:stretch}.test-controls button{width:100%}.stats-grid{grid-template-columns:1fr}.game-container-wrapper{height:300px}}.game-asset-loader{position:fixed;top:0;right:0;bottom:0;left:0;z-index:500;display:flex;align-items:center;justify-content:center;padding:24px;box-sizing:border-box;background:#0a162859;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.game-asset-loader__panel{width:min(320px,88vw);padding:28px 24px;border-radius:20px;background:linear-gradient(165deg,#fffffff2,#e8f4fffa);box-shadow:0 16px 48px #00285a33,0 0 0 1px #fff9 inset;text-align:center}.game-asset-loader__title{font-size:1.05rem;font-weight:700;color:#0a1628;margin-bottom:18px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.game-asset-loader__bar{height:10px;border-radius:999px;background:#0a3c781f;overflow:hidden}.game-asset-loader__bar-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#5eb0ff,#2b8cff,#5eb0ff);transition:width .2s ease-out}.game-asset-loader__pct{margin-top:12px;font-size:.85rem;font-weight:600;color:#3d5a73;font-variant-numeric:tabular-nums;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}*{margin:0;padding:0;box-sizing:border-box}body{margin:0;padding:0;overflow:hidden;touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}#root{width:100vw;width:100dvw;height:100vh;height:100dvh;min-height:-webkit-fill-available;overflow:hidden;background-image:url(/assets/bg-D-84PHsk.png);background-size:100% 100%;background-position:center;background-repeat:no-repeat;background-color:#000;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);box-sizing:border-box}
