*{box-sizing:border-box}.page-view-container{max-width:none;padding:0}.page-view-header,.page-view-footer{display:none}.page-view-content{line-height:normal}.ez-root{--accent:#ad87c2;position:fixed;inset:0;overflow:hidden;background:#050208;color:#f6eff9;font-family:Inter,-apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif}.ez-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;cursor:crosshair}.ez-boot,.ez-modal{position:absolute;inset:0;z-index:20;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 32%,rgba(137,94,162,.3),rgba(4,2,8,.97))}.ez-boot-card,.ez-modal-card{width:min(650px,100%);padding:clamp(28px,5vw,56px);border:1px solid rgba(199,164,217,.32);border-radius:28px;background:rgba(11,6,16,.94);box-shadow:0 35px 120px #000,0 0 70px rgba(125,79,150,.12)}.ez-boot small,.ez-modal small{color:#b895cb;font:700 10px/1 monospace;letter-spacing:.18em}.ez-boot h1{margin:18px 0 0;font-size:clamp(44px,8vw,84px);line-height:.9;letter-spacing:-.06em}.ez-boot p,.ez-modal p{margin:20px 0 0;color:#c0b4c6;font-size:14px;line-height:1.8}.ez-boot-rules{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:28px}.ez-boot-rules span{min-height:78px;padding:14px;border:1px solid #382b40;border-radius:14px;color:#b5a6bb;font-size:11px;line-height:1.5}.ez-boot-rules b{display:block;margin-bottom:7px;color:#fff;font-size:12px}.ez-boot button,.ez-modal button{width:100%;margin-top:26px;padding:15px;border:0;border-radius:13px;background:#ad87c2;color:#0b0610;font-weight:900;letter-spacing:.1em;cursor:pointer;box-shadow:0 0 26px rgba(173,135,194,.28)}.ez-boot-status{margin-top:12px!important;text-align:center!important;color:#796d80!important;font-size:11px!important}.ez-boot-status.error{color:#ff8c9c!important}.ez-hidden{display:none!important}.ez-hud{position:absolute;inset:0;z-index:5;pointer-events:none}.ez-top{position:absolute;left:20px;right:20px;top:18px;display:flex;justify-content:space-between;align-items:flex-start}.ez-brand b{display:block;color:#b995cc;font:800 16px/1 monospace;letter-spacing:.12em}.ez-brand span,.ez-score span{display:block;margin-top:6px;color:#918298;font-size:10px;letter-spacing:.14em}.ez-score{text-align:right}.ez-score b{font:700 36px/1 monospace}.ez-phase{position:absolute;left:20px;top:90px;padding:10px 13px;border-left:2px solid #ad87c2;background:rgba(12,6,17,.72);font-size:12px}.ez-ammo{position:absolute;right:20px;top:100px;display:flex;align-items:center;gap:9px;color:#b3a3ba;font-size:10px}.ez-ammo i{width:22px;height:22px;border-radius:50%;background:#b85f6a;box-shadow:0 0 22px #b85f6a}.ez-move{position:absolute;right:20px;top:138px;color:#8f8196;font:700 9px/1 monospace;letter-spacing:.12em}.ez-danger{position:absolute;left:20px;bottom:24px;width:220px;color:#b1a3b6;font-size:9px;letter-spacing:.1em}.ez-danger div{height:4px;margin-top:7px;background:#2d2034;overflow:hidden}.ez-danger em{display:block;width:0;height:100%;background:#a867bd;box-shadow:0 0 14px #a867bd}.ez-message{position:absolute;left:50%;bottom:40px;transform:translateX(-50%) translateY(12px);padding:10px 15px;border:1px solid rgba(220,190,234,.16);border-radius:999px;background:rgba(10,4,14,.88);opacity:0;transition:.2s;color:#e2d5e8;font-size:12px}.ez-message.show{opacity:1;transform:translateX(-50%) translateY(0)}.ez-modal{z-index:15;background:rgba(4,1,7,.78);backdrop-filter:blur(8px)}.ez-modal-card h2{margin:15px 0 0;font-size:clamp(30px,5vw,54px);line-height:1}.ez-error{position:absolute;inset:0;z-index:50;display:grid;place-items:center;padding:24px;background:#09070d}.ez-error div{width:min(600px,100%);padding:30px;border:1px solid #6f3344;border-radius:20px;background:#160e14}.ez-error h2{color:#ff9aac}.ez-error p{margin-top:14px;color:#c0b4bc;line-height:1.7}.ez-error button{margin-top:20px;padding:12px 18px;border:0;border-radius:10px;background:#ad87c2;font-weight:800;cursor:pointer}@media(max-width:700px){.ez-boot-rules{grid-template-columns:1fr}.ez-boot-rules span{min-height:0}.ez-top{left:12px;right:12px}.ez-phase{left:12px}.ez-ammo,.ez-move{right:12px}.ez-danger{left:12px;width:180px}}
/* v16: larger current/next ammo display */
.ez-ammo{top:92px;align-items:flex-end;gap:18px;padding:13px 16px;border:1px solid rgba(195,160,211,.18);border-radius:18px;background:rgba(9,4,13,.62);backdrop-filter:blur(8px)}
.ez-ammo-current,.ez-ammo-next{display:grid;justify-items:center;gap:8px;color:#b3a3ba;font:700 9px/1 monospace;letter-spacing:.1em}
.ez-ammo i{display:block;border-radius:50%;background:#b85f6a}
.ez-ammo-current i{width:54px;height:54px;border:2px solid rgba(255,255,255,.28)}
.ez-ammo-next i{width:42px;height:42px;border:1px solid rgba(255,255,255,.2)}
.ez-move{top:205px}
/* v20: tiered combo feedback */
.ez-combo{position:absolute;left:50%;top:34%;display:grid;justify-items:center;gap:6px;transform:translate(-50%,-50%) scale(.65);padding:18px 34px;border:1px solid currentColor;border-radius:18px;background:radial-gradient(circle,rgba(31,14,39,.9),rgba(6,3,9,.72));opacity:0;filter:blur(4px);transition:opacity .18s,transform .22s,filter .22s;color:#d6afe8;text-align:center;box-shadow:0 0 50px currentColor}
.ez-combo.show{opacity:1;filter:blur(0);transform:translate(-50%,-50%) scale(1);animation:ezComboPulse .52s ease-out}
.ez-combo small{font:800 8px/1 monospace;letter-spacing:.25em;opacity:.72}.ez-combo b{font:900 clamp(34px,6vw,68px)/.95 monospace;letter-spacing:-.06em}.ez-combo span{font-size:11px;letter-spacing:.18em}
.ez-combo.tier-2{color:#d2a6e5}.ez-combo.tier-3{color:#83c4ef;background:radial-gradient(circle,rgba(24,38,58,.94),rgba(6,3,9,.72))}.ez-combo.tier-4{color:#f0ce79;background:radial-gradient(circle,rgba(63,37,21,.94),rgba(8,3,10,.74));box-shadow:0 0 75px currentColor,0 0 130px rgba(211,132,188,.5)}
@keyframes ezComboPulse{0%{transform:translate(-50%,-50%) scale(.35) rotate(-3deg)}58%{transform:translate(-50%,-50%) scale(1.14) rotate(1deg)}100%{transform:translate(-50%,-50%) scale(1)}}
/* v22: progressively larger combo popup */
.ez-combo{--combo-scale:1.08;min-width:min(520px,82vw);padding:27px 52px;border-width:2px;border-radius:24px}
.ez-combo.show{transform:translate(-50%,-50%) scale(var(--combo-scale));animation:ezComboPulse .62s cubic-bezier(.2,.8,.2,1)}
.ez-combo b{font-size:clamp(52px,9vw,108px);text-shadow:0 0 24px currentColor}.ez-combo small{font-size:10px}.ez-combo span{font-size:13px}
.ez-combo.tier-3{min-width:min(570px,86vw)}.ez-combo.tier-4{min-width:min(630px,90vw);border-width:3px}
@keyframes ezComboPulse{0%{transform:translate(-50%,-50%) scale(.42) rotate(-4deg);opacity:0}58%{transform:translate(-50%,-50%) scale(1.55) rotate(1deg);opacity:1}100%{transform:translate(-50%,-50%) scale(var(--combo-scale));opacity:1}}
/* v24: slow stage-three pressure and monochrome failure drain */
.ez-root::after{content:"";position:absolute;inset:0;z-index:4;pointer-events:none;opacity:0;box-shadow:inset 0 0 120px 26px rgba(104,48,126,.72),inset 0 0 260px 65px rgba(18,2,25,.7);transition:opacity 1.8s ease}
.ez-root.stage-three::after{opacity:.42;animation:ezPressureBreath 4.2s ease-in-out infinite}
.ez-canvas{transition:filter 1.15s ease,transform 1.2s ease}.ez-root.failure-drain .ez-canvas{filter:grayscale(1) saturate(0) contrast(.92) brightness(.72);transform:scale(1.025)}
.ez-root.failure-drain::after{opacity:.95;animation:none;background:radial-gradient(circle at 50% 48%,transparent 0,rgba(0,0,0,.34) 42%,rgba(0,0,0,.94) 100%);box-shadow:inset 0 0 220px 70px #000}
.ez-root.failure-swallowing::after{opacity:.32;animation:ezFailureSuction .72s ease-in-out infinite;background:radial-gradient(circle at 50% 48%,transparent 0 32%,rgba(33,8,42,.14) 52%,rgba(4,1,8,.62) 100%);box-shadow:inset 0 0 120px 24px rgba(102,53,122,.34),inset 0 0 230px 55px rgba(4,1,8,.64)}
.ez-root.failure-swallowing.failure-drain::after{opacity:.95;animation:none;background:radial-gradient(circle at 50% 48%,transparent 0,rgba(0,0,0,.34) 42%,rgba(0,0,0,.94) 100%);box-shadow:inset 0 0 220px 70px #000}
@keyframes ezFailureSuction{0%,100%{transform:scale(1);opacity:.25}50%{transform:scale(1.018);opacity:.42}}
@keyframes ezPressureBreath{0%,100%{opacity:.28;box-shadow:inset 0 0 78px 12px rgba(104,48,126,.42),inset 0 0 170px 38px rgba(18,2,25,.48)}50%{opacity:.5;box-shadow:inset 0 0 104px 22px rgba(132,64,153,.55),inset 0 0 205px 52px rgba(18,2,25,.62)}}
/* v26: large left-side current and next ball panel */
.ez-ammo{left:20px;right:auto;top:142px;gap:24px;padding:18px 22px;border-color:rgba(214,184,226,.3);border-radius:22px;background:rgba(9,4,13,.76);box-shadow:0 18px 48px rgba(0,0,0,.38),0 0 28px rgba(150,105,171,.09)}
.ez-ammo-current,.ez-ammo-next{gap:11px;font-size:11px;letter-spacing:.14em}
.ez-ammo-current i{width:82px;height:82px;border-width:3px;box-shadow:inset 0 0 18px rgba(255,255,255,.12)}
.ez-ammo-next i{width:62px;height:62px;border-width:2px;box-shadow:inset 0 0 14px rgba(255,255,255,.1)}
.ez-move{top:auto;right:20px;bottom:24px}
@media(max-width:700px){.ez-ammo{left:12px;top:140px;gap:16px;padding:14px 17px}.ez-ammo-current i{width:70px;height:70px}.ez-ammo-next i{width:54px;height:54px}}
/* v28: contextual first-sighting ball explanation */
.ez-ball-tips{position:absolute;inset:0;z-index:7;pointer-events:none;overflow:hidden}.ez-ball-tip{position:absolute;width:min(390px,calc(100vw - 28px));padding:20px 23px;border:1px solid rgba(224,198,235,.52);border-left:5px solid #b88bca;border-radius:18px;background:rgba(10,5,15,.93);box-shadow:0 18px 52px rgba(0,0,0,.52),0 0 34px rgba(155,107,176,.16);opacity:0;transform:translate(-50%,calc(-100% - 16px)) scale(.92);transform-origin:50% 100%;transition:opacity .18s,transform .18s}
.ez-ball-tip::after{content:"";position:absolute;left:50%;bottom:-11px;width:18px;height:18px;border-right:1px solid rgba(224,198,235,.5);border-bottom:1px solid rgba(224,198,235,.5);background:rgba(10,5,15,.93);transform:translateX(-50%) rotate(45deg)}.ez-ball-tip.show{opacity:1;transform:translate(-50%,calc(-100% - 16px)) scale(1)}.ez-ball-tip small{display:block;color:#a98db5;font:800 11px/1 monospace;letter-spacing:.2em}.ez-ball-tip b{display:block;margin-top:10px;color:#f7eef9;font-size:26px;line-height:1.1}.ez-ball-tip p{margin:11px 0 0;color:#d2c4d6;font-size:15px;line-height:1.65}.ez-ball-tip em{display:block;margin-top:12px;color:#95839c;font:normal 11px/1.25 monospace;letter-spacing:.06em}.ez-ball-tip[data-kind="bomb"]{border-left-color:#d79c70}.ez-ball-tip[data-kind="stasis"]{border-left-color:#91bbc9}.ez-ball-tip[data-kind="void"]{border-left-color:#6e6873}
@media(max-width:700px){.ez-ball-tip{width:min(330px,calc(100vw - 20px));padding:16px 18px}.ez-ball-tip b{font-size:22px}.ez-ball-tip p{font-size:14px;line-height:1.5}}
/* v34: full-screen power-up feedback without blocking the aiming layer */
.ez-special-fx{position:absolute;inset:0;z-index:9;display:grid;place-items:center;pointer-events:none;overflow:hidden;opacity:0;visibility:hidden}
.ez-special-fx.show{visibility:visible;opacity:1}
.ez-special-fx::before,.ez-special-fx::after{content:"";position:absolute;inset:-12%;pointer-events:none}
.ez-special-fx-ring{position:absolute;left:50%;top:50%;width:18vmin;height:18vmin;border:4px solid #fff;border-radius:50%;transform:translate(-50%,-50%) scale(.2);opacity:0}
.ez-special-fx b,.ez-special-fx span{position:absolute;left:50%;transform:translateX(-50%);letter-spacing:.18em;text-align:center;text-shadow:0 0 18px currentColor,0 0 42px currentColor}
.ez-special-fx b{top:38%;font:900 clamp(36px,7vw,88px)/1 monospace}.ez-special-fx span{top:50%;font:800 clamp(10px,1.5vw,18px)/1 monospace}
.ez-special-fx.bomb{color:#fff}.ez-special-fx.bomb::before{background:conic-gradient(from 30deg at 50% 50%,rgba(255,38,91,.58),rgba(255,190,35,.5),rgba(207,255,52,.48),rgba(28,245,153,.48),rgba(40,183,255,.52),rgba(141,73,255,.56),rgba(255,48,220,.52),rgba(255,38,91,.58));mix-blend-mode:screen;animation:ezPrismFlash 1.15s ease-out both}.ez-special-fx.bomb::after{background:radial-gradient(circle,rgba(255,255,255,.92) 0,rgba(255,255,255,.25) 10%,transparent 48%);animation:ezPrismCore 1.15s ease-out both}.ez-special-fx.bomb .ez-special-fx-ring{border-color:#fff;box-shadow:0 0 18px #fff,0 0 48px #ff48de,0 0 90px #52d8ff;animation:ezPrismRing 1.05s cubic-bezier(.08,.72,.18,1) both}.ez-special-fx.bomb b{background:linear-gradient(90deg,#ff486a,#ffd24b,#6aff9d,#62dfff,#a57aff,#ff65dc);background-clip:text;-webkit-background-clip:text;color:transparent;animation:ezSpecialTitle 1.15s ease-out both}.ez-special-fx.bomb span{color:#fff;animation:ezSpecialSubtitle 1.15s ease-out both}
.ez-special-fx.stasis{color:#cfffff}.ez-special-fx.stasis::before{background:linear-gradient(115deg,rgba(211,255,255,.35),transparent 18%,rgba(95,206,255,.2) 38%,transparent 56%,rgba(220,255,255,.28) 78%,transparent),radial-gradient(circle at center,rgba(195,250,255,.3),rgba(32,104,170,.12) 52%,rgba(3,20,44,.48));backdrop-filter:saturate(.45) brightness(1.12);animation:ezFreezeField 1.4s ease-out both}.ez-special-fx.stasis::after{inset:0;border:clamp(10px,3vw,38px) solid rgba(191,250,255,.52);clip-path:polygon(0 0,100% 0,100% 100%,0 100%,0 78%,3% 84%,7% 69%,12% 83%,17% 66%,22% 82%,28% 71%,34% 87%,40% 72%,47% 84%,53% 67%,60% 82%,67% 70%,74% 86%,81% 69%,88% 82%,94% 65%,100% 78%,100% 0);filter:drop-shadow(0 0 18px #86e8ff);animation:ezIceBorder 1.4s ease-out both}.ez-special-fx.stasis .ez-special-fx-ring{border-color:#d9ffff;box-shadow:0 0 25px #c6ffff,0 0 80px #52bdff;animation:ezFreezeRing 1.3s ease-out both}.ez-special-fx.stasis b{animation:ezSpecialTitle 1.4s ease-out both}.ez-special-fx.stasis span{animation:ezSpecialSubtitle 1.4s ease-out both}
@keyframes ezPrismFlash{0%{opacity:0;transform:scale(.35) rotate(-25deg)}18%{opacity:.92}100%{opacity:0;transform:scale(1.2) rotate(28deg)}}
@keyframes ezPrismCore{0%{opacity:1;transform:scale(.1)}32%{opacity:.75}100%{opacity:0;transform:scale(1.5)}}
@keyframes ezPrismRing{0%{opacity:1;transform:translate(-50%,-50%) scale(.08)}100%{opacity:0;transform:translate(-50%,-50%) scale(7)}}
@keyframes ezFreezeField{0%{opacity:0;filter:blur(16px)}22%,68%{opacity:1;filter:blur(0)}100%{opacity:0;filter:blur(4px)}}
@keyframes ezIceBorder{0%{opacity:0;transform:scale(1.08)}22%,72%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.99)}}
@keyframes ezFreezeRing{0%{opacity:1;transform:translate(-50%,-50%) scale(4)}44%{opacity:.9;transform:translate(-50%,-50%) scale(1.15)}100%{opacity:0;transform:translate(-50%,-50%) scale(1)}}
@keyframes ezSpecialTitle{0%{opacity:0;transform:translateX(-50%) scale(.45)}25%{opacity:1;transform:translateX(-50%) scale(1.12)}72%{opacity:1;transform:translateX(-50%) scale(1)}100%{opacity:0;transform:translateX(-50%) scale(.96)}}
@keyframes ezSpecialSubtitle{0%,18%{opacity:0;transform:translateX(-50%) translateY(10px)}38%,72%{opacity:1;transform:translateX(-50%) translateY(0)}100%{opacity:0;transform:translateX(-50%) translateY(-5px)}}
@media(prefers-reduced-motion:reduce){.ez-special-fx *,.ez-special-fx::before,.ez-special-fx::after{animation-duration:.25s!important}}
/* v36: restrained diamond-prism burst panel */
.ez-special-fx.bomb::before{inset:0;background:radial-gradient(circle at 50% 46%,rgba(255,255,255,.22),rgba(143,205,255,.08) 24%,transparent 58%);mix-blend-mode:screen;animation:ezDiamondFlash 1.15s ease-out both}
.ez-special-fx.bomb::after{inset:0;background:radial-gradient(circle at 50% 47%,transparent 0 22%,rgba(4,3,9,.16) 54%,rgba(2,1,6,.3) 100%);animation:ezDiamondShade 1.15s ease-out both}
.ez-special-fx.bomb .ez-special-fx-shards{position:absolute;left:50%;top:46%;z-index:1;width:min(560px,62vw);aspect-ratio:1.75;transform:translate(-50%,-50%);clip-path:polygon(50% 0,93% 50%,50% 100%,7% 50%);background:linear-gradient(145deg,rgba(255,255,255,.9),rgba(174,224,255,.3) 24%,rgba(255,199,240,.22) 42%,rgba(255,255,255,.82) 51%,rgba(188,255,235,.25) 68%,rgba(202,185,255,.34));box-shadow:inset 0 0 42px rgba(255,255,255,.72);filter:drop-shadow(0 0 9px rgba(255,255,255,.95)) drop-shadow(0 0 28px rgba(151,206,255,.62));animation:ezDiamondPanel 1.15s cubic-bezier(.16,.72,.22,1) both}
.ez-special-fx.bomb .ez-special-fx-shards::before,.ez-special-fx.bomb .ez-special-fx-shards::after{content:"";position:absolute;inset:0;clip-path:polygon(50% 0,68% 50%,50% 100%,32% 50%);background:linear-gradient(90deg,rgba(255,117,179,.2),rgba(255,247,175,.42),rgba(145,242,255,.32),rgba(196,151,255,.28));mix-blend-mode:screen}.ez-special-fx.bomb .ez-special-fx-shards::after{clip-path:polygon(7% 50%,32% 50%,50% 0,68% 50%,93% 50%,50% 63%);background:rgba(255,255,255,.32)}
.ez-special-fx.bomb .ez-special-fx-ring{z-index:2;width:24vmin;height:24vmin;border-radius:2px;border-width:2px;border-color:rgba(255,255,255,.92);box-shadow:0 0 12px #fff,0 0 34px rgba(121,207,255,.75),0 0 58px rgba(234,146,255,.42);animation:ezDiamondRing 1.05s ease-out both}
.ez-special-fx.bomb b,.ez-special-fx.bomb span{z-index:3;color:#faffff;background:none;-webkit-text-fill-color:initial;text-shadow:0 1px 2px rgba(15,9,24,.9),0 0 12px rgba(255,255,255,.95),0 0 28px rgba(157,216,255,.8)}.ez-special-fx.bomb b{top:41%;font-size:clamp(30px,5.3vw,70px);animation:ezDiamondTitle 1.15s ease-out both}.ez-special-fx.bomb span{top:51%;color:#e9faff;animation:ezSpecialSubtitle 1.15s ease-out both}
@keyframes ezDiamondFlash{0%{opacity:0}18%{opacity:1}100%{opacity:0}}
@keyframes ezDiamondShade{0%{opacity:0}24%,70%{opacity:1}100%{opacity:0}}
@keyframes ezDiamondPanel{0%{opacity:0;transform:translate(-50%,-50%) scale(.18) rotate(12deg)}26%{opacity:.92;transform:translate(-50%,-50%) scale(1.06) rotate(0)}72%{opacity:.84;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-50%) scale(.94)}}
@keyframes ezDiamondRing{0%{opacity:1;transform:translate(-50%,-50%) rotate(45deg) scale(.18)}100%{opacity:0;transform:translate(-50%,-50%) rotate(45deg) scale(4.2)}}
@keyframes ezDiamondTitle{0%{opacity:0;transform:translateX(-50%) scale(.62);letter-spacing:.32em}24%,72%{opacity:1;transform:translateX(-50%) scale(1);letter-spacing:.18em}100%{opacity:0;transform:translateX(-50%) scale(.96);letter-spacing:.22em}}
/* v37: saturated spectral prism burst */
.ez-special-fx.bomb::before{inset:-20%;background:conic-gradient(from -12deg at 50% 46%,transparent 0 3%,rgba(255,37,80,.68) 5% 8%,transparent 10% 16%,rgba(255,157,25,.72) 18% 22%,transparent 24% 31%,rgba(246,255,41,.68) 33% 37%,transparent 39% 46%,rgba(35,245,139,.68) 48% 52%,transparent 54% 61%,rgba(39,190,255,.72) 63% 67%,transparent 69% 76%,rgba(116,73,255,.72) 78% 82%,transparent 84% 90%,rgba(255,43,213,.7) 92% 96%,transparent 98%);-webkit-mask:radial-gradient(circle at 50% 46%,transparent 0 13%,#000 22%,rgba(0,0,0,.72) 42%,transparent 72%);mask:radial-gradient(circle at 50% 46%,transparent 0 13%,#000 22%,rgba(0,0,0,.72) 42%,transparent 72%);mix-blend-mode:screen;animation:ezSpectrumRays 1.2s cubic-bezier(.12,.66,.2,1) both}
.ez-special-fx.bomb::after{background:radial-gradient(circle at 50% 46%,rgba(255,255,255,.88) 0 3%,rgba(125,232,255,.34) 9%,transparent 26%),radial-gradient(circle at 50% 46%,transparent 0 28%,rgba(8,3,18,.22) 56%,rgba(2,1,7,.42) 100%);animation:ezDiamondShade 1.2s ease-out both}
.ez-special-fx.bomb .ez-special-fx-shards{background:conic-gradient(from 18deg at 50% 50%,#ff315d,#ffad24,#f4ff3d,#2df59a,#35c8ff,#7852ff,#ff45d4,#ff315d);box-shadow:inset 0 0 18px rgba(255,255,255,.96),inset 0 -30px 55px rgba(38,6,75,.2);filter:saturate(1.35) drop-shadow(0 0 10px rgba(255,255,255,.98)) drop-shadow(0 0 34px rgba(88,204,255,.82)) drop-shadow(0 0 52px rgba(255,76,210,.48));animation:ezSpectrumPrism 1.2s cubic-bezier(.16,.72,.22,1) both}
.ez-special-fx.bomb .ez-special-fx-shards::before{clip-path:polygon(50% 0,68% 50%,50% 100%,32% 50%);background:linear-gradient(90deg,rgba(255,255,255,.12),rgba(255,255,255,.92) 49%,rgba(255,255,255,.16));mix-blend-mode:screen}.ez-special-fx.bomb .ez-special-fx-shards::after{clip-path:polygon(7% 50%,32% 50%,50% 0,68% 50%,93% 50%,50% 63%);background:linear-gradient(135deg,rgba(255,255,255,.7),transparent 32%,rgba(255,255,255,.68) 53%,transparent 74%);mix-blend-mode:overlay}
.ez-special-fx.bomb .ez-special-fx-ring{border-color:#fff;box-shadow:0 0 12px #fff,0 0 28px #41e5ff,0 0 48px #874fff,0 0 72px #ff43ce;animation:ezSpectrumRing 1.12s ease-out both}
.ez-special-fx.bomb b{top:40%;font-size:clamp(27px,5vw,66px);background:linear-gradient(90deg,#ff4669,#ffc536,#efff57,#55ffad,#58d8ff,#9d73ff,#ff68dc);background-clip:text;-webkit-background-clip:text;color:transparent;-webkit-text-fill-color:transparent;filter:drop-shadow(0 2px 2px rgba(12,4,24,.95)) drop-shadow(0 0 14px rgba(255,255,255,.85));animation:ezSpectrumTitle 1.2s ease-out both}.ez-special-fx.bomb span{top:51%;color:#fff;text-shadow:0 0 12px #fff,0 0 24px #6ad7ff;animation:ezSpecialSubtitle 1.2s ease-out both}
@keyframes ezSpectrumRays{0%{opacity:0;transform:scale(.22) rotate(-18deg)}22%{opacity:1}100%{opacity:0;transform:scale(1.25) rotate(10deg)}}
@keyframes ezSpectrumPrism{0%{opacity:0;transform:translate(-50%,-50%) scale(.12) rotate(16deg)}24%{opacity:1;transform:translate(-50%,-50%) scale(1.1) rotate(-1deg)}68%{opacity:.94;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-50%) scale(.92)}}
@keyframes ezSpectrumRing{0%{opacity:1;transform:translate(-50%,-50%) rotate(45deg) scale(.12)}100%{opacity:0;transform:translate(-50%,-50%) rotate(225deg) scale(4.6)}}
@keyframes ezSpectrumTitle{0%{opacity:0;transform:translateX(-50%) scale(.48);letter-spacing:.34em}24%,70%{opacity:1;transform:translateX(-50%) scale(1);letter-spacing:.13em}100%{opacity:0;transform:translateX(-50%) scale(.96);letter-spacing:.18em}}
/* v39: stasis field lasts for the full five-second freeze; label exits quickly */
.ez-special-fx.stasis::before{animation:ezFreezeFieldFull 5s linear both}.ez-special-fx.stasis::after{animation:ezIceBorderFull 5s linear both}.ez-special-fx.stasis .ez-special-fx-ring{animation:ezFreezeRing 1.15s ease-out both}.ez-special-fx.stasis b,.ez-special-fx.stasis span{animation:ezStasisLabelQuick .9s ease-out both}
@keyframes ezFreezeFieldFull{0%{opacity:0;filter:blur(12px)}5%{opacity:.88;filter:blur(0)}12%,88%{opacity:.62;filter:blur(0)}100%{opacity:0;filter:blur(4px)}}
@keyframes ezIceBorderFull{0%{opacity:0;transform:scale(1.04)}6%{opacity:1;transform:scale(1)}12%,88%{opacity:.78;transform:scale(1)}100%{opacity:0;transform:scale(.995)}}
@keyframes ezStasisLabelQuick{0%{opacity:0;transform:translateX(-50%) scale(.55)}24%,58%{opacity:1;transform:translateX(-50%) scale(1)}100%{opacity:0;transform:translateX(-50%) scale(.94)}}
/* v45: Voidma deep-space transmission panels */
.ez-boot,.ez-modal{--voidma-glow:#b98cff;--voidma-cyan:#77e8ff;isolation:isolate;overflow:hidden;background:radial-gradient(circle at 50% 44%,rgba(78,34,111,.42) 0,rgba(13,7,29,.9) 35%,rgba(2,2,10,.985) 78%)}
.ez-boot::before,.ez-modal::before{content:"";position:absolute;inset:-20%;z-index:-2;pointer-events:none;background-image:radial-gradient(circle,#fff 0 1px,transparent 1.5px),radial-gradient(circle,#b99cff 0 1px,transparent 1.6px),radial-gradient(circle,#64dfff 0 1.2px,transparent 1.8px);background-position:0 0,43px 67px,116px 24px;background-size:113px 113px,157px 157px,211px 211px;opacity:.48;animation:voidmaStarDrift 24s linear infinite}
.ez-boot::after,.ez-modal::after{content:"";position:absolute;left:50%;top:50%;z-index:-1;width:min(1050px,92vw);aspect-ratio:1;border:1px solid rgba(174,135,255,.18);border-radius:50%;pointer-events:none;transform:translate(-50%,-50%) rotateX(72deg);box-shadow:0 0 0 42px rgba(104,213,255,.025),0 0 0 116px rgba(181,112,255,.018),0 0 120px rgba(123,76,208,.16);animation:voidmaOrbitScan 8s linear infinite}
.ez-boot-card,.ez-modal-card{position:relative;z-index:1;overflow:hidden;border:1px solid color-mix(in srgb,var(--voidma-glow) 56%,transparent);border-radius:3px;background:linear-gradient(145deg,rgba(14,10,32,.96),rgba(5,6,18,.91));box-shadow:0 0 0 1px rgba(107,226,255,.08),0 28px 110px rgba(0,0,0,.82),0 0 80px color-mix(in srgb,var(--voidma-glow) 19%,transparent);clip-path:polygon(22px 0,calc(100% - 22px) 0,100% 22px,100% calc(100% - 22px),calc(100% - 22px) 100%,22px 100%,0 calc(100% - 22px),0 22px)}
.ez-boot-card::before,.ez-modal-card::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,transparent 0 36%,rgba(132,228,255,.11) 46%,rgba(205,152,255,.19) 50%,transparent 59%);transform:translateX(-130%);animation:voidmaPanelSweep 4.6s ease-in-out infinite}
.ez-boot-card::after,.ez-modal-card::after{content:"";position:absolute;inset:9px;pointer-events:none;border-top:1px solid rgba(132,235,255,.28);border-bottom:1px solid rgba(192,132,255,.2);box-shadow:inset 0 8px 24px rgba(97,214,255,.025)}
.ez-boot small,.ez-modal small{color:var(--voidma-cyan);font-size:11px;letter-spacing:.26em;text-shadow:0 0 13px color-mix(in srgb,var(--voidma-cyan) 72%,transparent)}
.ez-boot h1,.ez-modal-card h2{position:relative;background:linear-gradient(90deg,#fff 0,#d8c6ff 38%,#80eaff 70%,#fff 100%);background-clip:text;-webkit-background-clip:text;color:transparent;-webkit-text-fill-color:transparent;text-shadow:0 0 38px color-mix(in srgb,var(--voidma-glow) 42%,transparent)}
.ez-boot h1{font-size:clamp(54px,9vw,94px);letter-spacing:.015em;text-transform:none}.ez-modal-card h2{font-size:clamp(34px,5vw,62px);letter-spacing:-.025em}
.ez-boot-rules span{border-color:rgba(133,209,255,.19);border-radius:2px;background:linear-gradient(135deg,rgba(108,72,150,.13),rgba(50,183,213,.045));box-shadow:inset 0 0 24px rgba(93,198,255,.025)}
.ez-boot button,.ez-modal button{position:relative;border:1px solid rgba(169,238,255,.48);border-radius:2px;background:linear-gradient(90deg,#8b61c8,#66d4e7);color:#060512;box-shadow:0 0 22px rgba(99,220,255,.25),0 0 48px rgba(159,102,224,.2);transition:filter .18s,transform .18s,box-shadow .18s}
.ez-boot button:hover,.ez-modal button:hover{filter:brightness(1.18);transform:translateY(-2px);box-shadow:0 0 30px rgba(99,220,255,.42),0 0 68px rgba(159,102,224,.3)}
.ez-modal[data-sequence="stage-2"]{--voidma-glow:#c476ff;--voidma-cyan:#a4efff}.ez-modal[data-sequence="stage-3"]{--voidma-glow:#ff6ccf;--voidma-cyan:#ffcfef}.ez-modal[data-sequence="failure"]{--voidma-glow:#8d8d9c;--voidma-cyan:#d7d7e4}.ez-modal[data-sequence="victory"]{--voidma-glow:#79e1ff;--voidma-cyan:#e3fbff}
.ez-modal.ez-modal-live .ez-modal-card{animation:voidmaPanelArrival .72s cubic-bezier(.16,.8,.2,1) both}.ez-modal.ez-modal-live::after{animation:voidmaStagePulse 1.1s ease-out both,voidmaOrbitScan 8s 1.1s linear infinite}
@keyframes voidmaStarDrift{to{transform:translate3d(-78px,62px,0) rotate(.01deg)}}
@keyframes voidmaOrbitScan{to{transform:translate(-50%,-50%) rotateX(72deg) rotateZ(360deg)}}
@keyframes voidmaPanelSweep{0%,22%{transform:translateX(-130%)}48%,100%{transform:translateX(130%)}}
@keyframes voidmaPanelArrival{0%{opacity:0;transform:scale(.78) translateY(34px);filter:blur(14px)}55%{opacity:1;transform:scale(1.025) translateY(-4px);filter:blur(0)}100%{transform:scale(1) translateY(0)}}
@keyframes voidmaStagePulse{0%{opacity:0;transform:translate(-50%,-50%) rotateX(72deg) scale(.15)}42%{opacity:1}100%{opacity:.42;transform:translate(-50%,-50%) rotateX(72deg) scale(1.18)}}
@media(prefers-reduced-motion:reduce){.ez-boot::before,.ez-modal::before,.ez-boot::after,.ez-modal::after,.ez-boot-card::before,.ez-modal-card::before,.ez-modal.ez-modal-live .ez-modal-card{animation:none}}

/* v47: celestial power-up transmissions */
.ez-ball-tip[data-kind="bomb"],.ez-ball-tip[data-kind="stasis"]{isolation:isolate;overflow:hidden;border:1px solid rgba(159,219,255,.52);border-left-width:4px;border-radius:4px;background:linear-gradient(145deg,rgba(11,8,31,.96),rgba(3,8,22,.94));box-shadow:0 20px 72px rgba(0,0,0,.72),0 0 42px rgba(103,175,255,.22);clip-path:polygon(16px 0,100% 0,100% calc(100% - 16px),calc(100% - 16px) 100%,0 100%,0 16px)}
.ez-ball-tip[data-kind="bomb"]{border-color:rgba(255,181,249,.68);background:radial-gradient(circle at 78% 18%,rgba(95,193,255,.18),transparent 30%),linear-gradient(145deg,rgba(24,8,46,.97),rgba(5,5,24,.95));box-shadow:0 20px 72px rgba(0,0,0,.72),0 0 46px rgba(231,94,255,.25)}
.ez-ball-tip[data-kind="stasis"]{border-color:rgba(126,235,255,.66);background:radial-gradient(circle at 78% 18%,rgba(118,232,255,.2),transparent 30%),linear-gradient(145deg,rgba(5,22,48,.97),rgba(4,6,25,.95));box-shadow:0 20px 72px rgba(0,0,0,.72),0 0 46px rgba(69,190,255,.24)}
.ez-ball-tip[data-kind="bomb"]::before,.ez-ball-tip[data-kind="stasis"]::before{content:"";position:absolute;inset:0;z-index:-1;background-image:radial-gradient(circle,#fff 0 1px,transparent 1.5px),radial-gradient(circle,#8edfff 0 1px,transparent 1.6px);background-size:47px 47px,71px 71px;background-position:0 0,23px 18px;opacity:.34;animation:ezTipStarDrift 10s linear infinite}
.ez-ball-tip[data-kind="bomb"] small{color:#ffb9f4}.ez-ball-tip[data-kind="stasis"] small{color:#9eefff}.ez-ball-tip[data-kind="bomb"] b,.ez-ball-tip[data-kind="stasis"] b{color:#f8fbff;text-shadow:0 0 18px currentColor}
.ez-ball-tip[data-kind="bomb"]::after,.ez-ball-tip[data-kind="stasis"]::after{background:#07091b;border-color:rgba(151,224,255,.5)}

.ez-special-fx{background:radial-gradient(circle at 50% 48%,rgba(14,12,39,.08),rgba(1,2,10,.26) 70%,rgba(0,0,5,.48));transition:opacity .12s}
.ez-special-fx::before{inset:-25%;background-image:radial-gradient(circle,#fff 0 1px,transparent 1.7px),radial-gradient(circle,#83dfff 0 1.2px,transparent 2px),radial-gradient(circle,#c69cff 0 1px,transparent 1.8px);background-size:89px 89px,137px 137px,191px 191px;background-position:0 0,37px 58px,112px 26px;opacity:0}
.ez-special-fx .ez-special-fx-shards{position:absolute;left:50%;top:46%;z-index:1;width:min(620px,70vw);aspect-ratio:1.72;transform:translate(-50%,-50%);clip-path:polygon(50% 0,91% 22%,100% 50%,91% 78%,50% 100%,9% 78%,0 50%,9% 22%)}
.ez-special-fx .ez-special-fx-ring{z-index:2}
.ez-special-fx b,.ez-special-fx span{z-index:4;white-space:nowrap}

.ez-special-fx.bomb::before{inset:-25%;-webkit-mask:none;mask:none;background-image:radial-gradient(circle,#fff 0 1px,transparent 1.7px),radial-gradient(circle,#82e7ff 0 1.2px,transparent 2px),radial-gradient(circle,#ffa7ef 0 1px,transparent 1.8px);background-size:79px 79px,131px 131px,181px 181px;opacity:.72;mix-blend-mode:screen;animation:ezNovaStars 1.35s cubic-bezier(.12,.7,.2,1) both}
.ez-special-fx.bomb::after{inset:0;background:radial-gradient(circle at 50% 46%,#fff 0 2%,rgba(135,229,255,.95) 3%,rgba(187,92,255,.56) 8%,transparent 25%),conic-gradient(from 0deg at 50% 46%,transparent 0 7%,rgba(255,79,218,.32) 8%,transparent 13% 24%,rgba(89,222,255,.36) 25%,transparent 31% 43%,rgba(255,220,94,.3) 44%,transparent 51% 68%,rgba(144,96,255,.34) 69%,transparent 76%);mix-blend-mode:screen;animation:ezNovaLens 1.35s ease-out both}
.ez-special-fx.bomb .ez-special-fx-shards{background:conic-gradient(from 18deg,#ff3a75,#ffca46,#dfff64,#4effb6,#55e5ff,#8a70ff,#ff64e5,#ff3a75);box-shadow:inset 0 0 0 2px rgba(255,255,255,.72),inset 0 0 70px rgba(255,255,255,.68),0 0 22px #fff,0 0 70px rgba(97,214,255,.82),0 0 125px rgba(218,76,255,.58);filter:saturate(1.25);animation:ezNovaPrism 1.35s cubic-bezier(.12,.72,.18,1) both}
.ez-special-fx.bomb .ez-special-fx-ring{width:20vmin;height:20vmin;border:2px solid #f9ffff;border-radius:50%;box-shadow:0 0 16px #fff,0 0 42px #65e3ff,0 0 82px #d85aff;animation:ezNovaRing 1.28s cubic-bezier(.1,.65,.2,1) both}
.ez-special-fx.bomb b{top:40%;font-size:clamp(30px,5.4vw,72px);background:linear-gradient(90deg,#fff,#95ecff 24%,#efb4ff 52%,#ffe79a 76%,#fff);background-clip:text;-webkit-background-clip:text;color:transparent;-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 12px #fff) drop-shadow(0 0 32px #b36fff);animation:ezCosmicTitle 1.35s ease-out both}
.ez-special-fx.bomb span{top:51%;color:#f8fbff;text-shadow:0 0 14px #fff,0 0 30px #74dfff;animation:ezCosmicSub 1.35s ease-out both}

.ez-special-fx.stasis::before{inset:-20%;background-image:radial-gradient(circle,#eaffff 0 1px,transparent 1.7px),radial-gradient(circle,#6ee7ff 0 1.2px,transparent 2px),linear-gradient(rgba(97,208,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(120,117,255,.07) 1px,transparent 1px);background-size:83px 83px,139px 139px,54px 54px,54px 54px;background-position:0 0,42px 17px,center,center;opacity:.75;backdrop-filter:saturate(.68) brightness(.9);animation:ezChronoField 5s linear both}
.ez-special-fx.stasis::after{inset:0;border:0;clip-path:none;background:repeating-radial-gradient(circle at center,transparent 0 7vmin,rgba(115,228,255,.08) 7.2vmin 7.35vmin),linear-gradient(90deg,rgba(4,16,48,.5),transparent 18% 82%,rgba(4,16,48,.5));filter:drop-shadow(0 0 16px #76e9ff);animation:ezChronoGrid 5s linear both}
.ez-special-fx.stasis .ez-special-fx-shards{border:1px solid rgba(186,249,255,.72);background:radial-gradient(circle,rgba(213,255,255,.2),rgba(65,156,255,.09) 42%,transparent 68%);box-shadow:inset 0 0 54px rgba(120,225,255,.22),0 0 42px rgba(75,191,255,.26);clip-path:polygon(50% 0,93% 25%,93% 75%,50% 100%,7% 75%,7% 25%);animation:ezChronoPanel 5s linear both}
.ez-special-fx.stasis .ez-special-fx-ring{width:28vmin;height:28vmin;border:2px solid #d9ffff;border-radius:50%;box-shadow:0 0 18px #d8ffff,0 0 52px #54d5ff,0 0 94px #776eff;animation:ezChronoRing 5s linear both}
.ez-special-fx.stasis b{top:40%;font-size:clamp(30px,5.2vw,70px);color:#eaffff;text-shadow:0 0 14px #fff,0 0 34px #5edcff;animation:ezCosmicTitle .95s ease-out both}
.ez-special-fx.stasis span{top:51%;color:#bdefff;text-shadow:0 0 16px #6be5ff;animation:ezCosmicSub .95s ease-out both}

@keyframes ezTipStarDrift{to{background-position:-47px 47px,-48px 89px}}
@keyframes ezNovaStars{0%{opacity:0;transform:scale(.55) rotate(-8deg)}22%{opacity:.86}100%{opacity:0;transform:scale(1.55) rotate(8deg)}}
@keyframes ezNovaLens{0%{opacity:0;transform:scale(.08) rotate(-20deg)}18%{opacity:1}100%{opacity:0;transform:scale(2) rotate(18deg)}}
@keyframes ezNovaPrism{0%{opacity:0;transform:translate(-50%,-50%) scale(.05) rotate(-24deg)}24%{opacity:1;transform:translate(-50%,-50%) scale(1.08) rotate(2deg)}72%{opacity:.9;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.4) rotate(16deg)}}
@keyframes ezNovaRing{0%{opacity:1;transform:translate(-50%,-50%) scale(.12)}100%{opacity:0;transform:translate(-50%,-50%) scale(8)}}
@keyframes ezChronoField{0%{opacity:0;transform:scale(1.06)}6%{opacity:.9;transform:scale(1)}12%,88%{opacity:.62;transform:scale(1)}100%{opacity:0;transform:scale(.99)}}
@keyframes ezChronoGrid{0%{opacity:0;transform:scale(1.1)}8%{opacity:1;transform:scale(1)}88%{opacity:.7}100%{opacity:0}}
@keyframes ezChronoPanel{0%{opacity:0;transform:translate(-50%,-50%) scale(1.3) rotate(-8deg)}8%{opacity:.9;transform:translate(-50%,-50%) scale(1) rotate(0)}88%{opacity:.46;transform:translate(-50%,-50%) scale(.98) rotate(3deg)}100%{opacity:0;transform:translate(-50%,-50%) scale(.96) rotate(4deg)}}
@keyframes ezChronoRing{0%{opacity:0;transform:translate(-50%,-50%) scale(4) rotate(0)}8%{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(40deg)}88%{opacity:.58;transform:translate(-50%,-50%) scale(.92) rotate(320deg)}100%{opacity:0;transform:translate(-50%,-50%) scale(.88) rotate(360deg)}}
@keyframes ezCosmicTitle{0%{opacity:0;transform:translateX(-50%) scale(.45);letter-spacing:.4em}26%,70%{opacity:1;transform:translateX(-50%) scale(1);letter-spacing:.16em}100%{opacity:0;transform:translateX(-50%) scale(.97);letter-spacing:.2em}}
@keyframes ezCosmicSub{0%,20%{opacity:0;transform:translateX(-50%) translateY(12px)}38%,72%{opacity:1;transform:translateX(-50%) translateY(0)}100%{opacity:0;transform:translateX(-50%) translateY(-8px)}}
@media(max-width:700px){.ez-special-fx b{white-space:normal;width:92vw}.ez-special-fx span{white-space:normal;width:90vw;line-height:1.35}.ez-special-fx .ez-special-fx-shards{width:88vw}}

/* v51: music control and spatial-audio status */
.ez-audio-toggle{position:absolute;left:20px;top:55px;z-index:12;display:flex;align-items:center;gap:9px;width:auto;min-width:116px;padding:8px 12px;border:1px solid rgba(121,225,255,.36);border-radius:3px;background:linear-gradient(110deg,rgba(12,10,31,.92),rgba(6,17,29,.88));color:#bdeeff;font:800 9px/1 monospace;letter-spacing:.16em;cursor:pointer;pointer-events:auto;box-shadow:inset 0 0 22px rgba(92,207,255,.045),0 0 22px rgba(97,196,255,.1);clip-path:polygon(7px 0,100% 0,100% calc(100% - 7px),calc(100% - 7px) 100%,0 100%,0 7px);transition:border-color .18s,color .18s,filter .18s,box-shadow .18s}
.ez-audio-toggle:hover{filter:brightness(1.22);border-color:rgba(157,238,255,.72);box-shadow:inset 0 0 25px rgba(92,207,255,.09),0 0 28px rgba(97,196,255,.2)}
.ez-audio-toggle i{display:block;width:8px;height:8px;border:1px solid #d9fbff;border-radius:50%;background:#78e8ff;box-shadow:0 0 8px #87eaff,0 0 17px #7b79ff;animation:ezAudioPulse 1.6s ease-in-out infinite}
.ez-audio-toggle.muted{border-color:rgba(142,142,166,.28);color:#777587;background:rgba(8,8,17,.84);box-shadow:none}.ez-audio-toggle.muted i{background:transparent;border-color:#777587;box-shadow:none;animation:none}
@keyframes ezAudioPulse{0%,100%{opacity:.62;transform:scale(.82)}50%{opacity:1;transform:scale(1.2)}}
@media(max-width:700px){.ez-audio-toggle{left:12px;top:55px;min-width:106px;padding:7px 10px}.ez-phase{top:94px}}
