/* Enlarged mobile navigation: every primary control has a 44px touch target. */
.hud{height:108px;padding:23px 20px;align-items:center}.hud .back{width:46px;height:46px;font-size:32px;line-height:38px;background:#056781bc;border:1px solid #c6fffa78;box-shadow:0 0 15px #66fff452}.demo-logo{top:27px;width:132px;max-height:42px}.hud .balance{min-width:76px;min-height:44px;display:flex;align-items:center;justify-content:center;padding:8px 12px;font-size:14px;font-weight:850;border-color:#ddfffaab;background:#08728ca8;box-shadow:0 0 13px #4bfff347}.headline{top:131px}.headline small{font-size:10px;letter-spacing:.22em}.headline h2{font-size:27px;letter-spacing:.09em;margin:8px 0}.headline p{font-size:10px;letter-spacing:.16em}.vault-picker{top:207px}.replay{top:119px;right:18px;width:46px;height:46px;font-size:25px;border:1px solid #c5fffa96;background:#05718ebc;box-shadow:0 0 15px #5ffff653}.playbar button{min-height:48px;font-size:13px}
/* Charge: compression, heavy shake, rising bubbles and strengthening light. */
.energy-core{position:absolute;inset:16% -22%;border-radius:50%;background:radial-gradient(ellipse,#efffff 0 5%,#a6fff8a6 17%,#38dfe27a 37%,transparent 69%);filter:blur(10px);opacity:0;transform:scale(.45)}.charge .energy-core{animation:coreCharge .85s cubic-bezier(.17,.82,.2,1) both}.charge .chest-zone{animation:compressCharge .85s cubic-bezier(.21,.76,.15,1) both!important}.charge .chest-glow{animation:chargeGlowHard .85s ease-in both!important}.charge-bubbles{position:absolute;inset:0;pointer-events:none;opacity:0}.charge .charge-bubbles{opacity:1}.charge-bubble{position:absolute;left:50%;bottom:28%;width:calc(5px + (var(--size,1) * 2px));height:calc(5px + (var(--size,1) * 2px));border:1px solid #d9fffaaa;border-radius:50%;box-shadow:inset 1px 1px 1px #fff8,0 0 7px #81fff6;animation:chargeBubble .72s cubic-bezier(.16,.76,.25,1) infinite}.charge-bubble.b1{left:12%;--size:1.2;animation-delay:.08s}.charge-bubble.b2{left:23%;bottom:19%;--size:.7;animation-delay:.31s}.charge-bubble.b3{left:34%;bottom:27%;--size:1.6;animation-delay:.14s}.charge-bubble.b4{left:47%;bottom:18%;--size:.8;animation-delay:.42s}.charge-bubble.b5{left:59%;bottom:22%;--size:1.5;animation-delay:.02s}.charge-bubble.b6{left:74%;bottom:20%;--size:.9;animation-delay:.37s}.charge-bubble.b7{left:85%;bottom:29%;--size:1.4;animation-delay:.18s}.charge-bubble.b8{left:18%;bottom:38%;--size:.6;animation-delay:.48s}.charge-bubble.b9{left:69%;bottom:41%;--size:1.1;animation-delay:.26s}.charge-bubble.b10{left:42%;bottom:36%;--size:.75;animation-delay:.56s}
/* Detonation: lid, body shards, shock rings and bubble spray all have separate vectors. */
.chest-fragments{position:absolute;inset:0;pointer-events:none}.chest-fragment{position:absolute;inset:0;opacity:0;transform-origin:50% 50%;overflow:hidden}.chest-fragment img{width:100%;height:100%;object-fit:contain;filter:brightness(1.25) saturate(1.12)}.chest-fragment.f1{clip-path:polygon(0 0,34% 0,28% 36%,0 42%)}.chest-fragment.f2{clip-path:polygon(34% 0,67% 0,62% 34%,32% 35%)}.chest-fragment.f3{clip-path:polygon(67% 0,100% 0,100% 41%,72% 34%)}.chest-fragment.f4{clip-path:polygon(0 43%,29% 37%,35% 100%,0 100%)}.chest-fragment.f5{clip-path:polygon(31% 38%,72% 37%,67% 100%,34% 100%)}.chest-fragment.f6{clip-path:polygon(73% 38%,100% 42%,100% 100%,66% 100%)}.open .chest-fragments{z-index:8}.open .chest-fragment{animation:fragmentBlast .64s .04s cubic-bezier(.1,.79,.18,1) both}.open .chest-fragment.f1{--x:-210px;--y:-120px;--r:-47deg}.open .chest-fragment.f2{--x:-42px;--y:-218px;--r:24deg;animation-delay:.02s}.open .chest-fragment.f3{--x:214px;--y:-132px;--r:52deg;animation-delay:.05s}.open .chest-fragment.f4{--x:-190px;--y:142px;--r:-39deg;animation-delay:.08s}.open .chest-fragment.f5{--x:16px;--y:218px;--r:16deg;animation-delay:.03s}.open .chest-fragment.f6{--x:202px;--y:128px;--r:44deg;animation-delay:.07s}.open .chest-zone{animation:detonationKick .76s cubic-bezier(.1,.82,.16,1) both!important}.open .chest-lid{animation:lidCatapult .42s .03s cubic-bezier(.12,.86,.19,1) both!important}.open .chest-body{animation:bodyCatapult .52s .03s cubic-bezier(.1,.83,.2,1) both!important}.open .energy-core{animation:coreBlast .48s .04s ease-out both}.burst{z-index:7;pointer-events:none;background:radial-gradient(circle,#ffffff 0 4%,#cffffcde 8%,#6bfff489 22%,#16b7d65f 42%,transparent 69%)}.open .burst{animation:detonationFlash .54s .05s ease-out both!important}.impact-ring{position:absolute;left:50%;top:50%;border:3px solid #d9fff8;border-radius:50%;opacity:0;box-shadow:0 0 15px #6ffff4;transform:translate(-50%,-50%) scale(.12)}.ring-a{width:112px;height:112px}.ring-b{width:184px;height:184px;border-color:#79fff0aa}.open .ring-a{animation:shockwave .57s .07s ease-out both}.open .ring-b{animation:shockwave .7s .12s ease-out both}.burst-bubbles{position:absolute;inset:0}.burst-bubble{position:absolute;left:50%;top:50%;width:var(--s,7px);height:var(--s,7px);border:1px solid #eafffd;border-radius:50%;box-shadow:inset 1px 1px 1px #fff,0 0 7px #b6fff9;opacity:0}.open .burst-bubble{animation:sprayBubble .72s var(--d,0s) cubic-bezier(.13,.75,.18,1) both}.q1{--x:-180px;--y:-122px;--s:8px;--d:.03s}.q2{--x:-116px;--y:-205px;--s:5px;--d:.12s}.q3{--x:-49px;--y:-185px;--s:10px;--d:.05s}.q4{--x:41px;--y:-218px;--s:6px;--d:.15s}.q5{--x:139px;--y:-164px;--s:9px;--d:.08s}.q6{--x:213px;--y:-73px;--s:5px;--d:.2s}.q7{--x:178px;--y:37px;--s:11px;--d:.02s}.q8{--x:125px;--y:148px;--s:6px;--d:.14s}.q9{--x:42px;--y:205px;--s:9px;--d:.1s}.q10{--x:-68px;--y:184px;--s:5px;--d:.04s}.q11{--x:-172px;--y:136px;--s:10px;--d:.18s}.q12{--x:-221px;--y:32px;--s:6px;--d:.09s}.q13{--x:-135px;--y:-42px;--s:4px;--d:.22s}.q14{--x:88px;--y:-68px;--s:7px;--d:.06s}.q15{--x:13px;--y:-123px;--s:5px;--d:.17s}.q16{--x:190px;--y:103px;--s:4px;--d:.11s}.q17{--x:-68px;--y:97px;--s:7px;--d:.16s}.q18{--x:79px;--y:71px;--s:5px;--d:.01s}
@keyframes coreCharge{0%{opacity:0;transform:scale(.3)}64%{opacity:.86;transform:scale(1.12)}100%{opacity:1;transform:scale(1.55)}}@keyframes compressCharge{0%{transform:translate(-50%,-48%) scale(1)}20%{transform:translate(-50%,-43%) scale(.91,.78) rotate(-5deg)}39%{transform:translate(-57%,-51%) scale(.98,.86) rotate(6deg)}56%{transform:translate(-43%,-45%) scale(.9,.76) rotate(-6deg)}74%{transform:translate(-54%,-52%) scale(1.04,.9) rotate(5deg)}100%{transform:translate(-50%,-47%) scale(.82,.66) rotate(0)}}@keyframes chargeGlowHard{0%{opacity:.35;transform:scale(.5)}100%{opacity:1;transform:scale(2.55)}}@keyframes chargeBubble{0%{opacity:0;transform:translateY(0) scale(.45)}25%{opacity:1}100%{opacity:0;transform:translateY(-132px) translateX(18px) scale(1.5)}}
@keyframes detonationKick{0%{transform:translate(-50%,-47%) scale(.82,.66)}12%{transform:translate(-50%,-47%) scale(1.52,1.32)}100%{transform:translate(-50%,-55%) scale(.08);opacity:0}}@keyframes lidCatapult{0%{transform:translate(0) rotate(0);opacity:1}100%{transform:translate(162px,-212px) rotate(56deg) scale(1.35);opacity:0}}@keyframes bodyCatapult{0%{transform:translate(0) rotate(0);opacity:1}100%{transform:translate(-144px,168px) rotate(-32deg) scale(.76);opacity:0}}@keyframes fragmentBlast{0%{opacity:1;transform:translate(0) rotate(0) scale(1)}100%{opacity:0;transform:translate(var(--x),var(--y)) rotate(var(--r)) scale(.68)}}@keyframes coreBlast{0%{opacity:1;transform:scale(1.25)}100%{opacity:0;transform:scale(4.2)}}@keyframes detonationFlash{0%{opacity:0;transform:translate(-50%,-50%) scale(.08)}15%{opacity:1;transform:translate(-50%,-50%) scale(.95)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.72)}}@keyframes shockwave{0%{opacity:0;transform:translate(-50%,-50%) scale(.1)}16%{opacity:1}100%{opacity:0;transform:translate(-50%,-50%) scale(4.2)}}@keyframes sprayBubble{0%{opacity:0;transform:translate(-50%,-50%) scale(.25)}18%{opacity:1}100%{opacity:0;transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y))) scale(1.7)}}
@media(max-width:470px){.hud{height:100px;padding:20px 17px}.hud .back,.replay{width:44px;height:44px}.demo-logo{top:26px;width:118px}.hud .balance{min-width:70px;font-size:13px}.headline{top:121px}.headline h2{font-size:24px}.vault-picker{top:196px}.replay{top:108px}}
