body{margin:0;padding:0}#root{width:100%;min-height:100vh}*{box-sizing:border-box;margin:0;padding:0}html,body{overscroll-behavior:none}body{color:#e0e0ff;background:radial-gradient(at 50% 0,#12122a 0%,#0a0a1a 60%);font-family:Segoe UI,system-ui,sans-serif}#root{width:100%}.level-select{text-align:center;flex-direction:column;justify-content:flex-start;align-items:center;min-height:100vh;padding:clamp(10px,3vh,32px) 20px 40px;display:flex}.level-select.main-menu{isolation:isolate;background:#06091d url(/zap-it-menu-background.png) 50%/cover no-repeat;position:relative;overflow:hidden}.main-menu:before{content:"";z-index:0;pointer-events:none;background:radial-gradient(at 50% 16%,#00bfff20 0%,#0000 28%),radial-gradient(at 50% 52%,#006dff18 0%,#0000 24%);position:absolute;inset:0}.main-menu>*{z-index:1;position:relative}.game-logo{object-fit:contain;width:min(92vw,760px);height:auto;margin:0 auto 28px;display:block}@media (width<=700px) and (orientation:portrait){.game-logo{width:min(92vw,560px)}}@media (width<=480px){.game-logo{width:94vw}}.red-laser .laser-beam-line{stroke-width:1.7px;filter:drop-shadow(0 0 2px #fff)drop-shadow(0 0 3px #fff8c7)}.red-laser .laser-head{stroke-width:1.4px;filter:drop-shadow(0 0 3px #fff)drop-shadow(0 0 7px #ffd000)drop-shadow(0 0 5px #d000ff66)}.red-laser .laser-source img{filter:drop-shadow(0 0 3px #d8fbff)drop-shadow(0 0 7px #00eaff99)drop-shadow(0 0 6px #d000ff99);animation:1.05s ease-in-out infinite overchargedEmitterPulse}.red-laser .wall-destroying,.red-laser .impact-hit .wall{animation:.55s ease-in forwards redWallShatter!important}.red-laser .impact-hit:after{border-color:#ff9aa866;box-shadow:0 0 9px #ff304f99}.red-laser .wall-destroying,.red-laser .impact-hit .wall{animation-name:redWallShatter}@keyframes redWallShatter{0%{filter:brightness();transform:scale(1)}20%{filter:brightness(2.8)drop-shadow(0 0 13px #ff304f);transform:scale(1.15)rotate(1.5deg)}45%{filter:brightness(1.9)drop-shadow(0 0 8px #e51f3d);transform:scale(.95)rotate(-2.5deg)translate(2px,-1px)}70%{filter:brightness(2.3)drop-shadow(0 0 10px #ff304f);opacity:.7;transform:scale(.6)rotate(4deg)translate(-2px,1px)}to{filter:brightness(2)drop-shadow(0 0 6px #e51f3d);opacity:0;transform:scale(0)rotate(9deg)}}.powered-laser .laser-beam-line{stroke:#fff1f3;stroke-width:2.1px;filter:drop-shadow(0 0 2px #fff)drop-shadow(0 0 5px #ff304f)}.powered-laser .laser-beam-glow{stroke:#e51f3d;stroke-width:7px;opacity:.96;filter:drop-shadow(0 0 4px #ff5368)drop-shadow(0 0 10px #e51f3d)drop-shadow(0 0 14px #a500ff88)}.powered-laser .laser-source img,.powered-laser .laser-source-active img{filter:none}.red-laser .wall:not(.wall-destroying){background:linear-gradient(135deg,#465a7e,#233758 55%,#172847);border-color:#7892bf;box-shadow:inset 0 1px 5px #c3dcff33,inset 0 0 8px #00bfff22}.red-laser .impact-hit:before{border-color:#fff1f3;box-shadow:0 0 10px #ff304f,0 0 20px #e51f3daa,inset 0 0 10px #fff}.red-laser .impact-hit:after{content:"";pointer-events:none;border:1px solid #ff9aa866;border-radius:50%;animation:.42s ease-out forwards poweredWallShockwave;position:absolute;inset:18%;box-shadow:0 0 9px #ff304f99}@keyframes overchargedBeamFlicker{0%{opacity:.76}to{opacity:.92}}@keyframes overchargedEmitterPulse{0%,to{transform:rotate(var(--laser-rotation)) scale(.94)}50%{transform:rotate(var(--laser-rotation)) scale(1.07)}}@keyframes overchargedEmitterFire{0%{transform:rotate(var(--laser-rotation)) scale(1.02)}to{transform:rotate(var(--laser-rotation)) scale(1.16)}}@keyframes poweredWallShockwave{0%{opacity:.9;transform:scale(.45)}to{opacity:0;transform:scale(1.7)}}.play-btn{cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;width:350px;height:350px;margin-bottom:0;padding:0;font-size:2.8rem;transition:transform .2s,filter .2s;display:flex;position:relative}.play-icon{z-index:1;object-fit:contain;width:350px;height:350px;position:relative}.play-btn:after{content:"";z-index:2;pointer-events:none;background:linear-gradient(115deg,#0000 35%,#fffa 48%,#0000 61%) 0 0/230% 100%;width:350px;height:350px;animation:3.5s ease-in-out infinite playSheen;position:absolute;-webkit-mask:url(/zap-it-lazer-new.png) 50%/contain no-repeat;mask:url(/zap-it-lazer-new.png) 50%/contain no-repeat}@keyframes playSheen{0%,35%{opacity:0;background-position:155%}48%{opacity:.8}62%,to{opacity:0;background-position:-55%}}.main-menu .game-logo{margin-bottom:4px;animation:.95s cubic-bezier(.2,.8,.25,1) both logoFlyIn}.main-menu .level-actions{margin-top:-8px;animation:.9s cubic-bezier(.2,.8,.25,1) .14s both playFlyIn}.main-menu .coffee-link{animation:.8s cubic-bezier(.2,.8,.25,1) .28s both cornerLeftIn}.main-menu .settings-btn{animation:.8s cubic-bezier(.2,.8,.25,1) .34s both cornerRightIn}@keyframes logoFlyIn{0%{opacity:0;transform:translateY(-120vh)rotate(-8deg)scale(.7)}62%{opacity:1;transform:translateY(28px)rotate(2deg)scale(1.03)}78%{transform:translateY(-12px)rotate(-1deg)scale(.99)}90%{transform:translateY(5px)rotate(0)scale(1.01)}to{opacity:1;transform:translateY(0)rotate(0)scale(1)}}@keyframes playFlyIn{0%{opacity:0;transform:translateY(120vh)scale(.55)rotate(18deg)}62%{opacity:1;transform:translateY(-26px)scale(1.04)rotate(-3deg)}78%{transform:translateY(11px)scale(.98)rotate(1deg)}91%{transform:translateY(-4px)scale(1.01)rotate(0)}to{opacity:1;transform:translateY(0)scale(1)rotate(0)}}@keyframes cornerLeftIn{0%{opacity:0;transform:translate(-120vw)rotate(-30deg)scale(.5)}68%{opacity:1;transform:translate(16px)rotate(5deg)scale(1.05)}84%{transform:translate(-7px)rotate(-2deg)scale(.98)}to{opacity:1;transform:translate(0)rotate(0)scale(1)}}@keyframes cornerRightIn{0%{opacity:0;transform:translate(120vw)rotate(30deg)scale(.5)}68%{opacity:1;transform:translate(-16px)rotate(-5deg)scale(1.05)}84%{transform:translate(7px)rotate(2deg)scale(.98)}to{opacity:1;transform:translate(0)rotate(0)scale(1)}}@media (prefers-reduced-motion:reduce){.main-menu .game-logo,.main-menu .level-actions,.main-menu .coffee-link,.main-menu .settings-btn,.play-icon,.play-btn:after{animation:none}}.level-actions{align-items:center;gap:12px;margin-bottom:24px;display:flex}.menu-corner-actions{right:18px;bottom:max(18px, env(safe-area-inset-bottom));z-index:20;pointer-events:none;justify-content:space-between;align-items:center;display:flex;position:fixed;left:18px}.main-menu .menu-corner-actions{left:26px;right:26px}.coffee-link,.settings-btn{width:72px;height:72px;color:inherit;cursor:pointer;pointer-events:auto;background:0 0;border:0;border-radius:0;place-items:center;font-size:1.7rem;line-height:1;transition:color .2s,border-color .2s,background .2s,transform .2s;display:grid}.coffee-link{color:#e8b86a;text-decoration:none}.coffee-icon{object-fit:contain;width:82px;height:82px}.settings-icon,.home-icon{object-fit:contain;width:74px;height:74px}.coffee-link:hover{color:#ffd27a;transform:translateY(-2px)scale(1.05)}.settings-btn:hover,.settings-btn.active{color:#0cf;transform:scale(1.05)}.settings-btn.home{transform:none}.levels-page{background:#0f1024ee;border:1px solid #2a3b56;border-radius:14px;width:min(680px,100%);max-height:calc(100vh - 40px);padding:22px;animation:.2s ease-out levelsMenuIn;overflow-y:auto;box-shadow:0 12px 36px #0005}.levels-page-header{text-align:left;align-items:center;gap:14px;margin-bottom:18px;display:flex}.levels-page-header h2{color:#e0e0ff;letter-spacing:1px;font-size:1.35rem}.levels-page-header p{color:#77829c;margin-top:4px;font-size:.8rem}.levels-home-btn{color:#0cf;cursor:pointer;background:0 0;border:0;flex-shrink:0;width:48px;height:48px;transition:border-color .2s,background .2s,transform .2s}.levels-home-btn .home-icon{width:50px;height:50px}.levels-home-btn:hover{transform:translateY(-2px)}@media (orientation:landscape) and (height<=600px){.level-select{padding-top:10px;padding-bottom:20px}.game-logo{width:min(58vw,540px);margin-bottom:12px}.play-btn{width:270px;height:270px}.play-icon,.play-btn:after{width:255px;height:255px}.level-actions{margin-top:-28px;margin-bottom:14px}.menu-corner-actions{left:12px;right:12px}.coffee-link,.settings-btn{width:64px;height:64px}.coffee-icon{width:68px;height:68px}.settings-icon,.home-icon{width:62px;height:62px}}@media (width<=700px) and (orientation:portrait){.main-menu{justify-content:center;padding-top:16px;padding-bottom:84px}.main-menu .game-logo{width:min(88vw,560px);margin-bottom:4px}.main-menu .level-actions{position:relative;top:-54px}.main-menu .play-btn{width:330px;height:330px}.main-menu .play-icon,.main-menu .play-btn:after{width:305px;height:305px}}@keyframes levelsMenuIn{0%{opacity:0;transform:translateY(-8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.grid-size-setting{color:#777;letter-spacing:1px;text-transform:uppercase;justify-content:center;align-items:center;gap:6px;margin-bottom:20px;font-size:.72rem;display:flex}.grid-size-setting button{color:#888;cursor:pointer;background:#121226;border:1px solid #33334a;border-radius:7px;padding:6px 10px}.grid-size-setting button.selected,.grid-size-setting button:hover{color:#0cf;border-color:#0cf}.all-complete-message{z-index:10;color:#0f8;text-align:center;letter-spacing:2px;background:#080812ee;flex-direction:column;justify-content:center;align-items:center;gap:10px;animation:.25s fadeIn;display:flex;position:fixed;inset:0}.all-complete-message strong{text-shadow:0 0 20px #0f88;font-size:clamp(1.8rem,6vw,3.2rem)}.all-complete-message span{color:#aaa;letter-spacing:1px;font-size:.85rem}.level-transition{z-index:150;pointer-events:none;background:#080812b8;animation:.2s fadeIn;display:block;position:fixed;inset:0}.level-transition span{white-space:nowrap;color:#d9fbff;letter-spacing:6px;-webkit-text-stroke:1px #087dce;paint-order:stroke fill;text-shadow:0 3px #073a82,0 0 12px #0cf9,0 0 24px #7300ff44;max-width:none;font-size:clamp(3rem,11vw,7rem);font-weight:900;animation:.42s cubic-bezier(.17,.67,.21,1.15) both levelMessagePop;position:absolute;top:50%;left:50%}@keyframes levelMessagePop{0%{opacity:0;transform:translate(-50%,-50%)scale(.8)}60%{opacity:1;transform:translate(-50%,-50%)scale(1.05)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}.upgrade-transition{z-index:151;pointer-events:none;background:#050718c2;place-items:center;animation:.22s ease-out both upgradeOverlayIn;display:grid;position:fixed;inset:0;overflow:hidden}.upgrade-transition:before{content:"";aspect-ratio:1;border:1px solid #00d9ff66;border-radius:50%;width:min(76vw,620px);animation:1.8s ease-out both upgradePulse;position:absolute;box-shadow:0 0 22px #00d9ff44,inset 0 0 24px #d000ff33}.upgrade-message{z-index:1;text-align:center;flex-direction:column;align-items:center;gap:8px;width:min(92vw,760px);display:flex;position:relative}.upgrade-kicker,.upgrade-title,.upgrade-subtitle{opacity:0;animation:.48s cubic-bezier(.17,.67,.21,1.15) forwards upgradeTextIn}.upgrade-kicker{color:#e2fbff;letter-spacing:4px;-webkit-text-stroke:1px #087dce;paint-order:stroke fill;text-shadow:0 2px #073a82,0 0 10px #00d9ffbb;font-size:clamp(1.1rem,3vw,2rem);font-weight:900;animation-delay:80ms}.upgrade-title{color:#ffd84a;background:linear-gradient(#fffef1 0%,#ffd84a 35%,#ff8a00 100%);letter-spacing:5px;-webkit-text-stroke:1px #d000ff;paint-order:stroke fill;text-shadow:0 4px #9d3b00,0 0 12px #ffad00aa,0 0 24px #00d9ff66,0 0 30px #d000ff55;-webkit-background-clip:text;background-clip:text;font-size:clamp(2.6rem,8vw,6rem);font-weight:900;line-height:.98;animation-delay:.17s}.upgrade-subtitle{color:#d9fbff;letter-spacing:.4px;text-shadow:0 2px #062b68,0 0 8px #0cf5;max-width:560px;margin-top:8px;font-size:clamp(.85rem,2vw,1.15rem);line-height:1.35;animation-delay:.33s}@keyframes upgradeOverlayIn{0%{opacity:0}to{opacity:1}}@keyframes upgradeTextIn{0%{opacity:0;transform:translateY(14px)scale(.82)}65%{opacity:1;transform:translateY(-3px)scale(1.04)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes upgradePulse{0%{opacity:0;transform:scale(.55)}25%{opacity:.8}to{opacity:0;transform:scale(1.1)}}.subtitle{color:#888;margin-bottom:40px;font-size:1.1rem}.level-grid{flex-direction:column;gap:12px;width:100%;max-width:none;margin:0 auto;display:flex}.levels-page .level-grid{max-width:600px}.level-row{align-items:stretch;gap:8px;display:flex}.level-row .level-btn{flex:1;min-width:0}.level-row .level-btn:hover{transform:none}.edit-level-btn{color:#0cf;letter-spacing:1px;text-transform:uppercase;cursor:pointer;background:#121226;border:1px solid #33445a;border-radius:10px;padding:0 14px;font-size:.75rem;font-weight:700}.edit-level-btn:hover{background:#151530;border-color:#0cf}.level-editor{color:#e0e0ff;min-height:100vh;padding:clamp(16px,4vw,44px)}.editor-heading{justify-content:space-between;align-items:center;gap:16px;max-width:980px;margin:0 auto 12px;display:flex}.editor-level-tag{text-align:center;font-size:.9rem;position:static}.editor-back-btn,.editor-play-btn,.editor-save-btn,.editor-reset-btn{color:#0cf;cursor:pointer;background:#121226;border:1px solid #33445a;border-radius:9px;padding:10px 14px;font-weight:700}.editor-back-btn{place-items:center;width:44px;height:40px;padding:0;display:grid}.editor-back-icon{background:currentColor;width:18px;height:2px;display:block;position:relative}.editor-back-icon:before,.editor-back-icon:after{content:"";transform-origin:0;background:currentColor;width:10px;height:2px;position:absolute;left:0}.editor-back-icon:before{transform:rotate(45deg)}.editor-back-icon:after{transform:rotate(-45deg)}.editor-play-btn,.editor-save-btn{color:#0f8;border-color:#0f8}.editor-layout{justify-content:center;align-items:flex-start;gap:28px;max-width:980px;margin:0 auto;display:flex}.editor-board-column{flex-direction:column;align-items:center;display:flex}.editor-board{touch-action:none;-webkit-user-select:none;user-select:none;background:#0d0d20;border:2px solid #333;border-radius:8px;grid-template-rows:repeat(8,minmax(24px,64px));grid-template-columns:repeat(8,minmax(24px,64px));display:grid;overflow:hidden}.editor-cell{color:#e0e0ff;cursor:crosshair;background:#0d0d20;border:1px solid #1a1a30;justify-content:center;align-items:center;min-width:0;min-height:0;padding:0;display:flex;position:relative}.editor-cell:hover{background:#151530}.editor-wall{background:#334;border:1px solid #445;width:100%;height:100%}.editor-cell-mirrorslash{color:#00d9ff}.editor-cell-mirrorbackslash{color:#62dfff}.editor-cell svg{width:72%;height:72%}.editor-laser{filter:drop-shadow(0 0 4px #0f4);border-top:9px solid #0000;border-bottom:9px solid #0000;border-left:15px solid #0f4;width:0;height:0}.editor-laser-up{transform:rotate(-90deg)}.editor-laser-down{transform:rotate(90deg)}.editor-laser-left{transform:rotate(180deg)}.editor-target{object-fit:contain;pointer-events:none;width:82%;height:82%}.editor-controls{background:#1a1a2e;border:1px solid #333;border-radius:12px;width:min(280px,100%);padding:18px}.editor-controls h3{color:#888;letter-spacing:2px;text-transform:uppercase;margin-bottom:12px;font-size:.9rem}.editor-tool-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.editor-tool{color:#aaa;cursor:pointer;background:#0d0d20;border:1px solid #333;border-radius:8px;justify-content:center;align-items:center;gap:6px;min-height:48px;display:flex}.editor-tool.selected{color:#0f8;border-color:#0f8;box-shadow:0 0 10px #0f83}.editor-tool svg{width:22px;height:22px}.editor-tool-mirrorslash{color:#00d9ff}.editor-tool-mirrorbackslash{color:#62dfff}.editor-laser-directions{margin-top:14px}.editor-direction-label{color:#888;letter-spacing:1px;text-align:center;text-transform:uppercase;margin-bottom:8px;font-size:.75rem;display:block}.editor-direction-buttons{justify-content:center;gap:8px;display:flex}.editor-direction-btn{cursor:pointer;background:#0d0d20;border:1px solid #333;border-radius:7px;place-items:center;width:42px;height:38px;display:grid}.editor-direction-btn.selected{border-color:#0f8;box-shadow:0 0 8px #0f83}.editor-direction-icon{filter:drop-shadow(0 0 3px #0f4);border-top:7px solid #0000;border-bottom:7px solid #0000;border-left:12px solid #0f4;width:0;height:0}.editor-direction-up{transform:rotate(-90deg)}.editor-direction-down{transform:rotate(90deg)}.editor-direction-left{transform:rotate(180deg)}.editor-actions{gap:8px;margin-top:18px;display:grid}.editor-action-row{flex-wrap:wrap;justify-content:center;gap:8px;max-width:980px;margin:0 auto 20px;display:flex}.editor-mirrors{background:#1a1a2e;border:1px solid #333;border-radius:10px;justify-content:center;align-items:center;gap:12px;max-width:980px;margin:0 auto 12px;padding:8px 12px;display:flex}.editor-mirrors-label{color:#888;letter-spacing:1px;text-transform:uppercase;font-size:.8rem;font-weight:700}.editor-mirrors .mirror-palette{min-height:0;margin:0;padding:8px}.editor-mirrors .mirror-palette h3{margin-bottom:8px}.editor-mirrors .mirror-grid{min-height:0}.editor-mirror-counter{align-items:center;gap:8px;display:flex}.editor-mirror-counter svg{width:24px;height:24px}.editor-mirror-blue{color:#0cf}.editor-mirror-yellow{color:#fa0}.editor-mirror-counter button{width:25px;height:25px;color:inherit;cursor:pointer;background:#0d0d20;border:1px solid;border-radius:6px;padding:0;font-size:1rem;line-height:1}.editor-mirror-counter strong{color:#e0e0ff;text-align:center;min-width:18px}.editor-cell-drag-over{box-shadow:inset 0 0 12px #0f85;background:#0f83!important;border-color:#0f8!important}.editor-reset-btn{color:#fa0;border-color:#fa05}.editor-undo-btn:disabled{opacity:.35;cursor:not-allowed}@media (width>=701px){.editor-mirrors{flex-direction:column;align-self:center;margin:0}.editor-mirrors .mirror-grid{flex-direction:column}}@media (width<=700px){.level-row{gap:5px}.edit-level-btn{padding:0 9px}.editor-heading{align-items:flex-start}.editor-layout{flex-direction:column;align-items:center;gap:16px}.editor-mirrors{width:min(92vw,560px);margin-bottom:0}.editor-board{grid-template-rows:repeat(8,1fr);grid-template-columns:repeat(8,1fr);width:min(92vw,560px);height:min(92vw,560px)}.editor-controls{width:min(560px,92vw)}}.level-btn{color:#e0e0ff;cursor:pointer;background:#1a1a2e;border:2px solid #2a2a40;border-radius:12px;align-items:center;gap:16px;padding:16px 24px;font-size:1rem;transition:all .25s;display:flex}.level-btn:hover{background:#1a2a1e;border-color:#0f8;transform:translate(4px);box-shadow:0 0 15px #0f82}.level-btn.completed{background:#0a1a0e;border-color:#0c64}.level-number{color:#0f8;background:#0f82;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:1.1rem;font-weight:700;display:flex}.level-name{text-align:left;flex:1}.check{color:#0f8;font-size:1.2rem}.game{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:#050b2a url(/zap-it-background.png) 50%/cover no-repeat;flex-direction:column;max-width:100vw;height:100dvh;min-height:100dvh;display:flex;position:relative;overflow:clip}.game-shake{animation:.5s ease-out screenShake}@keyframes screenShake{0%,to{transform:translate(0)}10%{transform:translate(-4px,2px)}20%{transform:translate(4px,-2px)}30%{transform:translate(-3px,-3px)}40%{transform:translate(3px,3px)}50%{transform:translate(-2px,1px)}60%{transform:translate(2px,-1px)}70%{transform:translate(-1px,2px)}80%{transform:translate(1px,-1px)}}.level-tag{z-index:5;pointer-events:none;letter-spacing:2px;color:#0cf;text-shadow:0 0 12px #0cf6;white-space:nowrap;padding:0 8px;font-size:2.5rem;font-weight:800;position:absolute;top:6px}.game-header{display:contents}.shot-counter{z-index:5;align-items:center;gap:8px;display:flex;position:absolute;top:12px;right:18px}@media (height<=500px) and (orientation:landscape),(width<=700px) and (orientation:landscape){.level-tag{left:8px}}@media (width<=700px) and (orientation:portrait){.celebration-overlay .celebration-text,.level-transition span{top:43%}.celebration-overlay .celebration-text,.celebration-overlay .celebration-text>span,.level-transition span{line-height:1}.level-transition span{letter-spacing:5px;font-size:clamp(3.8rem,16vw,8rem)}.level-tag{font-size:3.5rem;position:static;left:auto;transform:none}.shot-counter{position:static}.game-header{z-index:5;flex-direction:column;align-items:center;gap:4px;display:flex;position:absolute;top:4px;left:50%;transform:translate(-50%)}}@media (width<=480px){.level-transition span{font-size:clamp(3.5rem,17vw,6.5rem)}.level-tag{font-size:4rem}}.shot-icon{object-fit:contain;filter:drop-shadow(0 0 4px #ff9d00)drop-shadow(0 0 8px #f0c6);width:38px;height:38px}.shot-icon.shot-lost{animation:.7s ease-out forwards shotLost}@keyframes shotLost{0%{opacity:1;transform:scale(1)rotate(0)}30%{filter:grayscale(.2)brightness(1.5)drop-shadow(0 0 12px #ff9d00);transform:scale(1.6)rotate(-18deg)}60%{filter:grayscale()brightness(.8)drop-shadow(0 0 5px #ff9d00);opacity:.8;transform:scale(.7)rotate(12deg)}to{opacity:0;transform:scale(0)rotate(24deg)}}.game-area{flex-direction:column;flex:1;justify-content:flex-start;align-items:center;width:100%;min-width:0;max-width:100%;min-height:0;display:flex;overflow:clip}.game-palette-mobile{flex-shrink:0;width:100%;max-width:100%;padding:6px 12px;display:block}.game-palette-mobile .mirror-palette{padding:8px}.game-palette-mobile .mirror-palette h3{display:none}.game-palette-mobile .mirror-grid{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.game-palette-mobile .palette-hint,.game-sidebar-desktop,.game-info-mobile{display:none}.board-column{flex-direction:column;flex:1;justify-content:center;align-items:center;width:100%;min-width:0;max-width:100%;min-height:0;padding:0 8px;display:flex;overflow:clip}.board-stack{flex-direction:column;justify-content:center;align-items:stretch;width:fit-content;min-width:0;max-width:100%;min-height:0;margin:0 auto;display:flex}.board-wrapper{flex-shrink:1;min-width:0;max-width:100%;min-height:0;margin:0 auto;position:relative}.board{clip-path:polygon(9px 0,calc(100% - 9px) 0,100% 9px,100% calc(100% - 9px),calc(100% - 9px) 100%,9px 100%,0 calc(100% - 9px),0 9px);background:#020c2a;border:2px solid #0000;border-image:linear-gradient(135deg,#00d9ff 0% 72%,#d000ff 100%) 1;border-radius:0;flex-direction:column;display:flex;position:relative;overflow:hidden;box-shadow:0 0 6px #00d9ff55,0 0 10px #4d00ff33,inset 0 0 20px #001c66}.board:after,.mirror-palette:after{content:"";clip-path:polygon(6px 0,calc(100% - 6px) 0,100% 6px,100% calc(100% - 6px),calc(100% - 6px) 100%,6px 100%,0 calc(100% - 6px),0 6px);pointer-events:none;z-index:3;border:1px solid #0b4774aa;position:absolute;inset:5px}.board:before,.mirror-palette:before{content:"";pointer-events:none;z-index:4;filter:drop-shadow(0 0 3px #d000ff99);background:linear-gradient(90deg,#e100ff 0 26px,#0000 26px) 0 0/34px 2px no-repeat,linear-gradient(90deg,#0000 calc(100% - 26px),#e100ff calc(100% - 26px)) 100% 0/34px 2px no-repeat,linear-gradient(90deg,#e100ff 0 26px,#0000 26px) 0 100%/34px 2px no-repeat,linear-gradient(90deg,#0000 calc(100% - 26px),#e100ff calc(100% - 26px)) 100% 100%/34px 2px no-repeat,linear-gradient(0deg,#e100ff 0 26px,#0000 26px) 0 0/2px 34px no-repeat,linear-gradient(0deg,#0000 calc(100% - 26px),#e100ff calc(100% - 26px)) 100% 0/2px 34px no-repeat,linear-gradient(0deg,#e100ff 0 26px,#0000 26px) 0 100%/2px 34px no-repeat,linear-gradient(0deg,#0000 calc(100% - 26px),#e100ff calc(100% - 26px)) 100% 100%/2px 34px no-repeat,linear-gradient(135deg,#0000 41%,#e100ff 42% 58%,#0000 59%) 0 0/13px 13px no-repeat,linear-gradient(45deg,#0000 41%,#e100ff 42% 58%,#0000 59%) 100% 0/13px 13px no-repeat,linear-gradient(45deg,#0000 41%,#e100ff 42% 58%,#0000 59%) 0 100%/13px 13px no-repeat,linear-gradient(135deg,#0000 41%,#e100ff 42% 58%,#0000 59%) 100% 100%/13px 13px no-repeat;position:absolute;inset:0}.board-row{display:flex}.cell{cursor:pointer;background:#02102dcc;border:1px solid #061d42;flex-shrink:0;justify-content:center;align-items:center;transition:background .2s,border-color .2s,box-shadow .2s;display:flex;position:relative}@media (hover:hover){.cell:hover{background:#08214a}}.cell:active{background:#08214a}.cell.on-laser{background:#ff9d0010}.cell.on-laser:after{content:"";background:#fff2a6;border-radius:50%;width:20%;min-width:4px;height:20%;min-height:4px;animation:.8s ease-in-out infinite pulse;display:none;position:absolute;box-shadow:0 0 8px #ffb000,0 0 16px #ff6a0066}.mirror-cell.on-laser:after{background:#fff7cf;width:34%;height:34%;box-shadow:0 0 7px #fff,0 0 14px #ffb000,0 0 22px #ff6a00aa}.mirror-cell .mirror{animation:.22s ease-out mirrorPlaceSnap}@keyframes mirrorPlaceSnap{0%{opacity:.4;transform:scale(.7)}70%{opacity:1;transform:scale(1.06)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{opacity:.7;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}.laser-source{background:0 0;justify-content:center;align-items:center;width:100%;height:100%;display:flex}.laser-source span{display:none}.laser-source img{object-fit:contain;--laser-rotation:0deg;width:150%;height:150%;transform:rotate(var(--laser-rotation)) scale(1);filter:none;animation:1.3s ease-in-out infinite emitterPulse}.laser-source-down img{--laser-rotation:90deg}.laser-source-left img{--laser-rotation:180deg}.laser-source-up img{--laser-rotation:-90deg}.laser-source-active img{filter:none;animation:.18s ease-out infinite alternate emitterFirePulse}.laser-source-active span{display:none}@keyframes emitterPulse{0%,to{transform:rotate(var(--laser-rotation)) scale(.92);opacity:.85}50%{transform:rotate(var(--laser-rotation)) scale(1.05);opacity:1}}@keyframes emitterFirePulse{0%{transform:rotate(var(--laser-rotation)) scale(.98)}to{transform:rotate(var(--laser-rotation)) scale(1.12)}}.target-wrap{width:100%;height:100%;position:relative}.target{object-fit:contain;pointer-events:none;filter:drop-shadow(0 0 3px #00eaff99)drop-shadow(0 0 5px #b000ff55);width:110%;height:110%;animation:3.2s ease-in-out infinite targetIdle;display:block;transform:translate(-5%,-5%)}.target-impact-particles{pointer-events:none;position:absolute;inset:0}.target-impact-particles span{background:#fff7c2;border-radius:50%;width:3px;height:9px;animation:.42s ease-out forwards targetSpark;position:absolute;top:50%;left:50%;box-shadow:0 0 4px #fff,0 0 8px #ff9d00}.target-impact-particles span:first-child{--spark-x:-17px;--spark-y:-20px}.target-impact-particles span:nth-child(2){--spark-x:20px;--spark-y:-16px}.target-impact-particles span:nth-child(3){--spark-x:25px;--spark-y:8px}.target-impact-particles span:nth-child(4){--spark-x:-22px;--spark-y:12px}.target-impact-particles span:nth-child(5){--spark-x:5px;--spark-y:25px}.target-impact-particles span:nth-child(6){--spark-x:-5px;--spark-y:-28px}@keyframes targetSpark{0%{opacity:0;transform:translate(-50%,-50%)scale(.4)}18%{opacity:1}to{opacity:0;transform:translate(calc(-50% + var(--spark-x)), calc(-50% + var(--spark-y))) scale(.7)}}@keyframes targetPulse{0%,to{box-shadow:inset 0 0 10px #f042}50%{box-shadow:inset 0 0 20px #f044}}@keyframes targetIdle{0%,to{filter:drop-shadow(0 0 3px #00eaff99)drop-shadow(0 0 5px #b000ff55);transform:translate(-5%,-5%)scale(1.1)}50%{filter:drop-shadow(0 0 5px #00eaffbb)drop-shadow(0 0 8px #b000ff77);transform:translate(-5%,-5%)scale(1.14)}}.wall{background:linear-gradient(135deg,#3b4966,#202b46 55%,#16203a);border:1px solid #70809e;border-radius:3px;width:100%;height:100%;box-shadow:inset 0 1px 4px #a6bad833}.impact-hit{animation:.45s ease-out impactShake}.impact-hit:before{content:"";pointer-events:none;border:2px solid #f40;animation:.45s ease-out impactCellFlash;position:absolute;inset:2px;box-shadow:0 0 8px #f40,inset 0 0 8px #f40}.impact-hit .wall,.impact-hit .mirror{animation:.45s ease-out impactFlash}@keyframes impactShake{0%,to{transform:translate(0)}20%{transform:translate(-3px,1px)}40%{transform:translate(3px,-1px)}60%{transform:translate(-2px)}80%{transform:translate(2px,1px)}}@keyframes impactFlash{0%,to{filter:brightness()}35%{filter:brightness(2.2)drop-shadow(0 0 10px #f40)}}@keyframes impactCellFlash{0%,to{opacity:0}30%{opacity:1}70%{opacity:.35}}.wall-destroying{animation:.55s ease-in forwards wallShatter}@keyframes wallShatter{0%{filter:brightness();transform:scale(1)}20%{filter:brightness(2.6)drop-shadow(0 0 12px #f40);transform:scale(1.15)rotate(1.5deg)}45%{filter:brightness(1.7);transform:scale(.95)rotate(-2.5deg)translate(2px,-1px)}70%{filter:brightness(2.2);opacity:.7;transform:scale(.6)rotate(4deg)translate(-2px,1px)}to{filter:brightness(2);opacity:0;transform:scale(0)rotate(9deg)}}.mirror{justify-content:center;align-items:center;width:100%;height:100%;padding:12%;display:flex}.mirror-svg{width:100%;height:100%;overflow:visible}.mirror-slash{color:#0cf}.mirror-slash .mirror-svg{filter:drop-shadow(0 0 6px #0cf8)}.mirror-backslash{color:#62dfff}.mirror-backslash .mirror-svg{filter:drop-shadow(0 0 4px #00d9ff88)}.mirror-palette{clip-path:polygon(8px 0,calc(100% - 8px) 0,100% 8px,100% calc(100% - 8px),calc(100% - 8px) 100%,8px 100%,0 calc(100% - 8px),0 8px);text-align:center;background:linear-gradient(#031842e8,#020b29e8);border:1px solid #0000;border-image:linear-gradient(90deg,#00d9ff 0% 68%,#d000ff 100%) 1;border-radius:0;padding:20px;position:relative;box-shadow:0 0 5px #00d9ff44,0 0 9px #7300ff33,inset 0 0 18px #001d66}.mirror-palette h3{color:#d8f4ff;text-transform:uppercase;letter-spacing:2px;text-shadow:0 0 8px #00d9ff;justify-content:center;align-items:center;gap:16px;margin-bottom:16px;font-size:1.05rem;display:flex}.mirror-palette h3:before,.mirror-palette h3:after{content:"";background:linear-gradient(90deg,#0000,#00d9ff);flex:1;height:2px;box-shadow:0 0 6px #00d9ff}.mirror-palette h3:after{background:linear-gradient(90deg,#00d9ff,#0000)}.mirror-grid{flex-wrap:wrap;place-content:center;gap:10px;min-height:112px;display:flex}.mirror-slot{flex:none}.mirror-slot-empty{clip-path:polygon(8px 0,calc(100% - 8px) 0,100% 8px,100% calc(100% - 8px),calc(100% - 8px) 100%,8px 100%,0 calc(100% - 8px),0 8px);opacity:.62;background:linear-gradient(135deg,#061e43 0%,#03132f 48%,#020a22 49%,#041a3a 100%);border:1px solid #17618aaa;width:82px;height:82px;position:relative;box-shadow:inset 0 0 10px #001d4d,0 0 2px #08739a66}.mirror-slot-empty:after{content:"";clip-path:inherit;border:1px solid #0a477466;position:absolute;inset:5px}.mirror-btn{clip-path:polygon(8px 0,calc(100% - 8px) 0,100% 8px,100% calc(100% - 8px),calc(100% - 8px) 100%,8px 100%,0 calc(100% - 8px),0 8px);color:#e0e0ff;cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:linear-gradient(135deg,#061e43 0%,#03132f 48%,#020a22 49%,#041a3a 100%);border:1px solid #00bcee;border-radius:0;justify-content:center;align-items:center;width:82px;height:82px;transition:all .2s;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 0 12px #00bfff44,0 0 5px #00d9ff66}.mirror-btn:before{content:"";clip-path:polygon(8% 0,92% 0,100% 14%,100% 86%,92% 100%,8% 100%,0 86%,0 14%);pointer-events:none;background:linear-gradient(32deg,#0000 0 38%,#00cfff22 39% 42%,#0000 43%),linear-gradient(148deg,#0000 0 52%,#8d00ff22 53% 56%,#0000 57%);border:1px solid #3e8edc88;position:absolute;inset:5px}.mirror-btn:hover{background:#082b68;border-color:#f100ff;transform:scale(1.04);box-shadow:0 0 12px #00d9ff,0 0 18px #f100ff88}.mirror-btn:active{border-color:#f100ff;transform:scale(.98);box-shadow:0 0 8px #f100ff99,0 0 14px #00d9ff66}.mirror-btn.mirror-type-slash{border-color:#00bcee}.mirror-btn.mirror-type-slash:hover{border-color:#8af3ff;box-shadow:0 0 8px #0cf6}.mirror-btn.mirror-type-backslash{border-color:#00bcee}.mirror-btn.mirror-type-backslash:hover{border-color:#8af3ff;box-shadow:0 0 8px #0cf6}.mirror-btn.draggable:active{cursor:grabbing;opacity:1;border-color:#f100ff;transform:translateY(-3px)scale(1.08);box-shadow:0 0 9px #f100ff99,0 0 15px #00d9ff88}.mirror-icon{z-index:1;justify-content:center;align-items:center;width:76%;height:76%;display:flex;position:relative}.mirror-icon .mirror-svg{width:100%;height:100%;overflow:visible}.mirror-type-slash .mirror-icon{color:#d8fbff;filter:drop-shadow(0 0 4px #0cf6)}.mirror-type-backslash .mirror-icon{color:#62dfff;filter:drop-shadow(0 0 4px #00d9ff66)}.palette-empty{color:#555;text-align:center;padding:8px;font-size:.85rem}.mirror-palette{min-height:158px}.game-sidebar-desktop .mirror-palette{flex-direction:column;justify-content:flex-start;width:100%;height:220px;min-height:220px;display:flex}.game-sidebar-desktop .mirror-palette h3{flex:none;margin-bottom:12px}.game-sidebar-desktop .mirror-grid{flex:auto;align-content:center;min-height:0}.game-palette-mobile .mirror-grid{min-height:64px}.game-palette-mobile .mirror-palette{flex-direction:column;justify-content:center;height:118px;min-height:118px;display:flex}.palette-hint{color:#555;text-align:center;margin-top:10px;font-size:.75rem}.hint-box{color:#999;background:#1a1a2e;border:1px solid #2a2a40;border-left:3px solid #fa0;border-radius:12px;padding:14px;font-size:.85rem;line-height:1.5}.hint-box strong{color:#fa0}.move-counter{background:#1a1a2e;border:1px solid #2a2a40;border-radius:12px;flex-direction:column;align-items:center;gap:4px;padding:14px;display:flex}.move-label{color:#888;text-transform:uppercase;letter-spacing:1px;font-size:.75rem}.move-value{color:#0cf;text-shadow:0 0 10px #0cf4;font-size:1.4rem;font-weight:700}.fire-btn{cursor:pointer;text-transform:uppercase;width:156px;min-width:156px;max-width:156px;height:156px;text-shadow:none;background:0 0;border:0;border-radius:0;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:4px;margin:0 auto;padding:0;transition:all .2s;display:flex}.fire-icon{object-fit:contain;pointer-events:none;width:156px;height:156px}.fire-text{letter-spacing:2px;text-align:center;font-size:.8rem;font-weight:700;line-height:1.3}.board-spacer{flex:1 1 0;min-height:0}.fire-wrap{flex:1 1 0;justify-content:center;align-items:center;width:100%;min-width:0;min-height:0;display:flex}.fire-btn:hover:not(:disabled){filter:brightness(1.12)drop-shadow(0 0 6px #00eaff)drop-shadow(0 0 9px #b000ff99);box-shadow:none;background:0 0;transform:scale(1.04)}.fire-btn:active:not(:disabled){transform:scale(.95)}.fire-btn.firing{filter:brightness(.84)drop-shadow(0 0 5px #00eaff)drop-shadow(0 0 8px #b000ff88);cursor:not-allowed;background:0 0;animation:.34s ease-out infinite alternate zapFiringPulse}.fire-btn:disabled{opacity:.7}@keyframes zapFiringPulse{0%{transform:scale(.96)}to{transform:scale(1.01)}}@keyframes zapFiringPulsePositioned{0%{transform:translateY(-50%)scale(.96)}to{transform:translateY(-50%)scale(1.01)}}.celebration-overlay{z-index:200;background:#00000094;justify-content:center;align-items:center;width:100%;height:100%;animation:.15s celebFadeIn;display:flex;position:fixed;inset:0;overflow:hidden}.celebration-flash{background:#fff;animation:.6s ease-out forwards flashBang;position:absolute;inset:0}@keyframes flashBang{0%{opacity:1}to{opacity:0}}.celebration-particles{pointer-events:none;position:absolute;inset:0}.particle{border-radius:50%;width:8px;height:8px;animation:1.6s ease-out forwards particleBurst;position:absolute}.particle-0{background:#f04;box-shadow:0 0 6px #f04}.particle-1{background:#fa0;box-shadow:0 0 6px #fa0}.particle-2{background:#0f8;box-shadow:0 0 6px #0f8}.particle-3{background:#0cf;box-shadow:0 0 6px #0cf}@keyframes particleBurst{0%{opacity:1;transform:translate(0)scale(1)}to{opacity:0;transform:translate(calc((var(--rand,.5) - .5) * 400px), calc((var(--rand,.5) - .5) * 400px)) scale(0)}}.particle-0{--rand:.1}.particle-1{--rand:.3}.particle-2{--rand:.6}.particle-3{--rand:.8}.particle:nth-child(5){--rand:.2}.particle:nth-child(6){--rand:.4}.particle:nth-child(7){--rand:.7}.particle:nth-child(8){--rand:.9}.particle:nth-child(9){--rand:.15}.particle:nth-child(10){--rand:.35}.particle:nth-child(11){--rand:.55}.particle:nth-child(12){--rand:.75}.particle:nth-child(13){--rand:.25}.particle:nth-child(14){--rand:.45}.particle:nth-child(15){--rand:.65}.particle:nth-child(16){--rand:.85}.particle:nth-child(17){--rand:.05}.particle:nth-child(18){--rand:.5}.particle:nth-child(19){--rand:.95}.particle:nth-child(20){--rand:.42}.celebration-text{opacity:0;flex-direction:column;align-items:center;animation:.46s cubic-bezier(.17,.67,.21,1.15) forwards transientMessagePop;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(.8)}.celebration-line-1{color:#ffd84a;letter-spacing:7px;-webkit-text-stroke:1px #ff8a00;paint-order:stroke fill;text-shadow:0 3px #9d3b00,0 0 9px #ffad00aa,0 0 20px #00d9ff55,0 0 28px #d000ff44;font-size:clamp(3rem,8vw,6.5rem);font-weight:900}.celebration-line-2{color:#fa0;letter-spacing:8px;-webkit-text-stroke:2px #fff;paint-order:stroke fill;text-shadow:none;font-size:clamp(4rem,9vw,8rem);font-weight:900;animation:none}.missed-overlay{isolation:isolate;background:#00000094;animation:.15s celebFadeIn,.9s ease-out gameOverBackdrop}.missed-overlay:before{content:"";aspect-ratio:1;pointer-events:none;z-index:0;border:2px solid #7c5cff99;border-radius:50%;width:min(48vw,300px);animation:.9s ease-out forwards gameOverRing;position:absolute;top:50%;left:50%;box-shadow:0 0 18px #00d9ff55,inset 0 0 24px #7c5cff44}.missed-overlay:after{content:"";pointer-events:none;z-index:1;background:radial-gradient(#00d9ff18 0%,#7c5cff0b 38%,#0000 70%);animation:.9s ease-out forwards gameOverGlow;position:absolute;inset:20% 12%}.missed-overlay .celebration-text{z-index:2}@keyframes gameOverBackdrop{0%{background-color:#00d9ff29}35%{background-color:#401e8233}to{background-color:#00000094}}@keyframes gameOverRing{0%{opacity:0;transform:translate(-50%,-50%)scale(.45)}25%{opacity:.9}to{opacity:0;transform:translate(-50%,-50%)scale(1.45)}}@keyframes gameOverGlow{0%{opacity:0;transform:scale(.8)}25%{opacity:1}to{opacity:0;transform:scale(1.12)}}.missed-line-1{color:#e4fbff;letter-spacing:5px;-webkit-text-stroke:1px #1778c2;paint-order:stroke fill;text-shadow:0 3px #062b68,0 0 10px #0cf6,0 0 20px #7300ff44;font-size:clamp(2.2rem,7vw,5rem)}.missed-line-2{color:#0cf;text-shadow:none;animation:none}.miss-overlay{isolation:isolate;background:#00000094;animation:.15s celebFadeIn,.38s ease-out missedOverlayShake,.76s ease-out missedImpactFlash}.miss-overlay:before{content:"⚡";z-index:1;color:#e8fbff;text-shadow:0 0 8px #fff,0 0 18px #00d9ff,0 0 30px #8b35ff;mix-blend-mode:screen;pointer-events:none;font-size:clamp(5rem,20vw,10rem);line-height:1;animation:.76s ease-out forwards missedLightningFlash;position:absolute;top:50%;left:50%}.miss-overlay:after{content:"";aspect-ratio:1;pointer-events:none;border:2px solid #00d9ff99;border-radius:50%;width:min(42vw,260px);animation:.76s ease-out forwards missedShockRing;position:absolute;top:50%;left:50%;box-shadow:0 0 16px #00d9ff66,inset 0 0 14px #d000ff55}@keyframes missedImpactFlash{0%{background-color:#00d9ff33}18%{background-color:#7846ff1f}to{background-color:#00000094}}@keyframes missedLightningFlash{0%{opacity:0;transform:translate(-50%,-50%)scale(.45)rotate(-8deg)}18%{opacity:1;transform:translate(-50%,-50%)scale(1.08)rotate(3deg)}42%{opacity:.75;transform:translate(-50%,-50%)scale(.94)rotate(-2deg)}to{opacity:0;transform:translate(-50%,-50%)scale(1.2)rotate(0)}}@keyframes missedShockRing{0%{opacity:.8;transform:translate(-50%,-50%)scale(.45)}to{opacity:0;transform:translate(-50%,-50%)scale(1.55)}}.miss-overlay .celebration-text{z-index:2;animation:.42s cubic-bezier(.17,.67,.21,1.15) forwards missedMessagePop}.miss-text{color:#d9fbff;letter-spacing:7px;-webkit-text-stroke:1px #0b70ba;paint-order:stroke fill;text-shadow:0 3px #062b68,0 0 10px #0cf6,0 0 18px #7300ff33;font-size:clamp(3rem,8vw,6.5rem);font-weight:900}@keyframes missedOverlayShake{0%,to{transform:translate(0,0)}25%{transform:translate(-3px)}50%{transform:translate(3px)}75%{transform:translate(-1px)}}@keyframes missedMessagePop{0%{opacity:0;transform:translate(-50%,-50%)scale(.82)rotate(-1.2deg)}55%{opacity:1;transform:translate(-50%,-50%)scale(1.04)rotate(.5deg)}78%{transform:translate(-50%,-50%)scale(.99)rotate(-.2deg)}to{opacity:1;transform:translate(-50%,-50%)scale(1)rotate(0)}}@keyframes transientMessagePop{0%{opacity:0;transform:translate(-50%,-50%)scale(.8)}60%{opacity:1;transform:translate(-50%,-50%)scale(1.05)}80%{transform:translate(-50%,-50%)scale(1.05)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@keyframes celebGlow{0%{text-shadow:0 0 20px #fa0,0 0 40px #fa08,0 0 80px #fa04,3px 3px #000}to{text-shadow:0 0 30px #fa0,0 0 60px #fa0a,0 0 100px #fa06,3px 3px #000}}@keyframes celebFadeIn{0%{opacity:0}to{opacity:1}}.win-overlay{z-index:100;background:#000c;justify-content:center;align-items:center;animation:.3s fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.win-modal{text-align:center;background:#1a1a2e;border:2px solid #0f8;border-radius:16px;width:90%;max-width:400px;padding:40px;box-shadow:0 0 40px #0f83,0 20px 60px #00000080}.win-modal h2{color:#0f8;margin-bottom:12px;font-size:1.8rem}.win-modal p{color:#aaa;margin-bottom:24px}.win-buttons{justify-content:center;gap:12px;display:flex}.win-buttons button{color:#0f8;cursor:pointer;background:#0d0d20;border:2px solid #0f8;border-radius:10px;padding:12px 24px;font-size:1rem;transition:all .2s}.win-buttons button:hover{background:#0f82;box-shadow:0 0 12px #0f84}.star-rating{gap:2px;display:flex}.star{font-size:1rem}.star-filled{color:#fa0;text-shadow:0 0 6px #fa06}.star-empty{color:#333}.win-stats{color:#0cf;margin-bottom:16px;font-size:.9rem}.level-score{align-items:center;gap:8px;display:flex}.laser-beam-svg{pointer-events:none;z-index:2;position:absolute;top:0;left:0}.laser-beam-line{stroke:#fffdf0;stroke-width:1.35px;stroke-linecap:round;filter:drop-shadow(0 0 1px #fff)}.laser-beam-glow{stroke:#ff9d00;stroke-width:4px;stroke-linecap:round;opacity:.72;filter:drop-shadow(0 0 3px #ffb000)drop-shadow(0 0 7px #ff6a0077)}.red-laser .laser-beam-glow{stroke:#ff8a00}.laser-complete{animation:.22s ease-out .16s forwards laserFadeOut}@keyframes laserFadeOut{to{opacity:0}}.laser-head{fill:#fff;stroke:#ffb000;stroke-width:1px;filter:drop-shadow(0 0 2px #fff)drop-shadow(0 0 5px #ff9d00)}.laser-reflection-flare{fill:#fff8d0;stroke:#ff9d00;stroke-width:1px;filter:drop-shadow(0 0 2px #fff)drop-shadow(0 0 5px #ff8a00);animation:.26s ease-out forwards reflectionFlare}.laser-target-flare{fill:#fff;stroke:#ffb000;stroke-width:1.5px;filter:drop-shadow(0 0 3px #fff)drop-shadow(0 0 9px #ff8a00);animation:.5s ease-out forwards targetFlare}@keyframes reflectionFlare{0%{opacity:0;transform-origin:50%;transform:scale(.35)}25%{opacity:1;transform:scale(1.15)}to{opacity:0;transform:scale(.6)}}@keyframes targetFlare{0%{opacity:0;transform-origin:50%;transform:scale(.4)}22%{opacity:1;transform:scale(1.7)}to{opacity:0;transform:scale(.9)}}.laser-reflection .mirror{animation:.26s ease-out mirrorReflectionFlash}@keyframes mirrorReflectionFlash{0%,to{filter:brightness()}28%{filter:brightness(2.1)drop-shadow(0 0 7px #00eaff)}}.laser-dir-arrow{fill:#ffb000;filter:drop-shadow(0 0 3px #ff8a00);animation:2s ease-in-out infinite arrowPulse}@keyframes arrowPulse{0%,to{opacity:.4}50%{opacity:.8}}.cell.drop-target{cursor:pointer}@media (hover:hover){.cell.drop-target:hover{background:#00d9ff11;border-color:#00d9ff66}}.cell.drag-over{animation:.6s ease-in-out infinite dragPulse;box-shadow:inset 0 0 15px #f100ff55,0 0 8px #f100ff99;background:#4b087033!important;border:2px solid #f100ff!important}@keyframes dragPulse{0%,to{box-shadow:inset 0 0 15px #f100ff55,0 0 8px #f100ff66}50%{box-shadow:inset 0 0 25px #f100ff77,0 0 15px #f100ffaa}}.target.target-hit{animation:.6s ease-out forwards targetImpact}@keyframes targetImpact{0%{filter:brightness()drop-shadow(0 0 3px #00eaff99)drop-shadow(0 0 5px #b000ff55);transform:translate(-5%,-5%)scale(1.1)}18%{filter:brightness(2.2)drop-shadow(0 0 8px #fff)drop-shadow(0 0 16px #ff8a00);transform:translate(-5%,-5%)scale(1.28)}42%{filter:brightness(1.5)drop-shadow(0 0 7px #00eaff)drop-shadow(0 0 14px #b000ff);transform:translate(-5%,-5%)scale(1.16)}68%{filter:brightness(1.8)drop-shadow(0 0 7px #fff2a6)drop-shadow(0 0 13px #ff8a00);transform:translate(-5%,-5%)scale(1.22)}to{filter:brightness()drop-shadow(0 0 3px #00eaff99)drop-shadow(0 0 5px #b000ff55);transform:translate(-5%,-5%)scale(1.1)}}@keyframes targetExplode{0%{box-shadow:none;background:#f042;transform:scale(1)}15%{background:#fff;transform:scale(1.3);box-shadow:0 0 30px #f04,0 0 60px #f04a}30%{background:#f04;transform:scale(1.1);box-shadow:0 0 40px #f04,0 0 80px #f048}50%{background:#fa0;transform:scale(1.2);box-shadow:0 0 50px #fa0,0 0 100px #fa06}70%{background:#ff0;transform:scale(.9);box-shadow:0 0 40px #ff0,0 0 80px #ff04}85%{background:#0f88;transform:scale(1.05);box-shadow:0 0 20px #0f86}to{background:#0f84;animation:none;transform:scale(1);box-shadow:0 0 15px #0f84}}.cell.mirror-cell{cursor:grab;touch-action:none}.cell.mirror-cell:active{cursor:grabbing}.touch-ghost{pointer-events:none;z-index:999;color:#0cf;text-shadow:0 0 10px #0cf8;background:#1a1a2e;border:2px solid #0cf;border-radius:8px;justify-content:center;align-items:center;width:48px;height:48px;font-size:2rem;display:flex;position:fixed;transform:translate(-50%,-50%);box-shadow:0 0 20px #0cf4}@media (width<=700px) and (orientation:portrait){html:has(.game){height:100%;overflow:hidden}body:has(.game){height:100%;overflow:hidden}#root:has(.game){height:100%;overflow:hidden}.game{width:100%;height:100dvh;min-height:0;position:fixed;inset:0;overflow:clip}.game-area{box-sizing:border-box;padding-top:clamp(120px,19vh,145px);padding-bottom:max(4px, env(safe-area-inset-bottom));flex-direction:column;justify-content:flex-start;align-items:center}.game-palette-mobile{order:-1;width:100%;max-width:100%;padding:0 0 8px;display:block}.board-stack .game-palette-mobile .mirror-palette{height:128px;min-height:128px;padding:10px}.board-stack .game-palette-mobile .mirror-grid{min-height:72px}.game-palette-mobile .mirror-grid[data-count="5"],.game-palette-mobile .mirror-grid[data-count="6"]{flex-wrap:nowrap;gap:4px}.game-palette-mobile .mirror-grid[data-count="5"] .mirror-btn,.game-palette-mobile .mirror-grid[data-count="5"] .mirror-slot-empty{width:60px;height:60px}.game-palette-mobile .mirror-grid[data-count="6"] .mirror-btn,.game-palette-mobile .mirror-grid[data-count="6"] .mirror-slot-empty{width:56px;height:56px}.board-stack .game-palette-mobile .mirror-palette h3{text-align:center;margin-bottom:8px;font-size:.95rem;display:block}.game-info-mobile{flex-direction:column;gap:8px;width:100%;margin:0 0 8px;display:flex}.game-info-mobile .move-counter{flex-direction:row;justify-content:center;gap:8px;padding:8px 12px}.game-info-mobile .move-value{font-size:1.1rem}.game-sidebar-desktop{display:none}.board-column{flex-direction:column;flex:1;order:1;justify-content:flex-start;align-items:center;width:100%;min-height:0;display:flex}.board-column .board-spacer{display:none}.board-column .fire-wrap{flex:none}.board-stack{transform-origin:top;align-items:stretch;margin:0 auto;transform:scale(1.04)}.board-wrapper{margin:0 auto}.fire-btn{margin:clamp(8px,1.5vh,16px) 0 0}.shot-counter{gap:10px}.shot-icon{width:52px;height:52px}}@media (height<=500px) and (orientation:landscape),(width<=700px) and (orientation:landscape){.level-tag{left:8px}.game-palette-mobile{display:none}.game .game-area{flex-direction:row;justify-content:center;align-items:center;gap:0;width:100%;max-width:100%;margin:0;padding:4px 132px 4px 4px;position:relative}.game .game-sidebar-desktop{padding-inline:0;flex-direction:column;flex:0 0 clamp(160px,24vw,240px);order:0;align-self:stretch;gap:8px;width:100%;min-width:160px;max-width:240px;height:100%;max-height:100%;padding-top:56px;display:flex;overflow:visible}.game .game-sidebar-desktop .mirror-palette{width:calc(100% - 16px);height:100%;min-height:0;margin:4px 12px 4px 4px;padding:10px;transform:none}.game .game-sidebar-desktop .mirror-palette h3{gap:6px;margin-bottom:8px;font-size:.78rem}.game .game-sidebar-desktop .mirror-palette h3:before,.game .game-sidebar-desktop .mirror-palette h3:after{display:none}.game .game-sidebar-desktop .mirror-grid{gap:6px;min-height:0}.game .game-sidebar-desktop .mirror-btn{border-radius:0;width:54px;height:54px}.game .game-sidebar-desktop .mirror-slot-empty{width:54px;height:54px}.game .game-sidebar-desktop .mirror-icon{width:78%;height:78%}.game .board-column{flex:1;order:1;justify-content:center;align-items:flex-start;min-width:0;max-width:100%;padding-inline:0;display:flex}.game .board-stack{flex-direction:column;align-items:center;margin:0}.game .board-wrapper{margin:0 auto}.game .board-spacer{display:none}.game .fire-wrap{display:contents}.game .fire-wrap .fire-btn{margin:0;position:absolute;top:50%;right:clamp(32px,8vw,68px);transform:translateY(-50%)}.game .fire-wrap .fire-btn:hover:not(:disabled){transform:translateY(-50%)scale(1.05)}.game .fire-wrap .fire-btn.firing{animation-name:zapFiringPulsePositioned}.game .fire-wrap .fire-btn:active:not(:disabled){transform:translateY(-50%)scale(.95)}.game .fire-wrap .fire-btn,.game .fire-wrap .fire-icon{width:132px;min-width:132px;max-width:132px;height:132px}@media (width<=700px){.game .fire-wrap .fire-btn{right:clamp(32px,8vw,68px)}}@media (width<=480px){.game .fire-wrap .fire-btn{right:clamp(32px,8vw,48px)}}}@media (width>=701px) and (height>=501px){.game .game-palette-mobile{display:none}.game .game-area{flex-direction:row;justify-content:center;align-items:center;gap:clamp(12px,2vw,24px);width:100%;max-width:min(1200px,100%);margin:auto;padding:12px 144px 12px 12px;position:relative}.game .game-sidebar-desktop{flex-direction:column;flex:0 clamp(220px,24vw,300px);order:0;gap:16px;width:100%;min-width:min(220px,100%);max-width:min(300px,100%);max-height:100%;padding:0 clamp(4px,1vw,12px);display:flex;overflow-y:auto}.game .board-column{flex-direction:column;flex:auto;order:1;justify-content:center;align-self:stretch;align-items:center;width:auto;min-width:0;max-width:100%;min-height:0;max-height:100%;display:flex}.game .board-stack{flex:0 auto;min-height:0;margin:auto}.game .board-wrapper{max-width:100%;margin:0 auto}.game .board-spacer{display:none}.game .fire-wrap{display:contents}.game .fire-wrap .fire-btn{margin:0;position:absolute;top:50%;right:16px;transform:translateY(-50%)}.game .fire-wrap .fire-btn:hover:not(:disabled){transform:translateY(-50%)scale(1.05)}.game .fire-wrap .fire-btn.firing{animation-name:zapFiringPulsePositioned}.game .fire-wrap .fire-btn:active:not(:disabled){transform:translateY(-50%)scale(.95)}}@media (width<=700px){.fire-btn{border-radius:0;width:152px;min-width:152px;max-width:152px;height:152px}.fire-icon{width:152px;height:152px}.fire-text{font-size:.72rem}.mirror-btn,.mirror-slot-empty{width:74px;height:74px}.mirror-icon{font-size:1.5rem}.celebration-line-1{letter-spacing:6px;font-size:clamp(2.8rem,14vw,5rem)}.celebration-line-2{letter-spacing:4px;font-size:clamp(3rem,12vw,5.5rem)}.missed-line-1{letter-spacing:4px;white-space:nowrap;font-size:clamp(3rem,14vw,5rem)}.miss-text{font-size:clamp(2.8rem,14vw,5rem)}.win-modal{padding:24px}.win-modal h2{font-size:1.4rem}.win-buttons button{padding:10px 16px;font-size:.85rem}}@media (width<=480px){.fire-btn{border-radius:20px}.fire-icon{width:138px;height:138px}.fire-text{font-size:.65rem}.mirror-btn,.mirror-slot-empty{width:68px;height:68px}.mirror-icon{font-size:1.35rem}.celebration-line-1{letter-spacing:4px;font-size:clamp(2.4rem,16vw,4rem)}.celebration-line-2{letter-spacing:3px;font-size:clamp(2.2rem,10vw,3.5rem)}.missed-line-1{letter-spacing:3px;font-size:clamp(2.8rem,15vw,4.5rem)}.miss-text{font-size:clamp(2.4rem,16vw,4rem)}}.red-laser .laser-beam-glow{stroke:#e51f3d;stroke-width:5px;opacity:.92;filter:drop-shadow(0 0 4px #ff5368)drop-shadow(0 0 10px #e51f3d)drop-shadow(0 0 5px #a500ff66);animation:.28s ease-in-out infinite alternate overchargedBeamFlicker}.red-laser .laser-source-active img{filter:brightness(1.16)drop-shadow(0 0 5px #fff)drop-shadow(0 0 10px #00eaff)drop-shadow(0 0 9px #d000ffcc);animation:.18s ease-out infinite alternate overchargedEmitterFire}
