/* P0 model review mode: the canvas contains the actual WebGL geometry. */
.model .headline small{color:#a9fff4}.model .headline h2{font-size:24px}.model .chest-zone{display:block;top:49%;width:360px;height:410px;filter:none!important;perspective:none}.model .energy-core,.model .chest-glow,.model .charge-bubbles,.model .chest-shadow,.model .chest-model,.model .chest-blast,.model .chest-fragments{display:none!important}.three-vault{position:absolute;inset:0;z-index:5;touch-action:none;cursor:grab}.three-vault:active{cursor:grabbing}.three-vault canvas{display:block;width:100%;height:100%;outline:0}.model-guide{position:absolute;z-index:7;left:12px;right:12px;bottom:116px;text-align:center;color:#d4fff9;font-size:9px;font-weight:800;letter-spacing:.12em;text-shadow:0 1px 6px #003049}.model-views{position:absolute;z-index:7;left:19px;right:19px;bottom:70px;display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.model-views button{min-height:34px;padding:0 4px;border:1px solid #a9f9f181;border-radius:8px;background:#063d57cf;color:#d9fffb;font-size:8px;font-weight:900;letter-spacing:.07em}.model-views button:hover,.model-views button:focus{background:#62e5e6;color:#04313e}.model-return{position:absolute;z-index:7;left:20px;right:20px;bottom:20px;border:1px solid #bffff673;border-radius:12px;background:#65dedc;color:#023442;font-weight:900;padding:13px;letter-spacing:.09em}.model .playbar{display:none}@media(max-width:470px){.model .chest-zone{width:330px;height:390px}.model-views{bottom:68px}.model-guide{bottom:111px}}

/* V6 WebGL animation mode: same model, no 2-D vault fallback. */
.opening .chest-zone{display:block;top:49%;width:360px;height:410px;filter:none!important;perspective:none}.opening .three-vault{cursor:default}.opening-state{position:absolute;z-index:7;left:0;right:0;bottom:39px;text-align:center;color:#aafffa;font-size:9px;font-weight:900;letter-spacing:.18em;text-shadow:0 0 10px #00a8bd}.opening .playbar{display:none}@media(max-width:470px){.opening .chest-zone{width:330px;height:390px}.opening-state{bottom:37px}}

/* The carousel renders the same WebGL vault mesh used by the opening stage. */
.vault-model-thumb{position:absolute;inset:0;display:block;pointer-events:none}.vault-model-thumb canvas{display:block;width:100%;height:100%}.vault-choice .vault-number{pointer-events:none}

/* Only the visible result page accepts result-area input. This prevents an
   invisible result layer from ever covering the restored carousel. */
.result-panel,.reveal-card{pointer-events:none}.result .result-actions{pointer-events:auto}
.result .reveal-card.sold-card:after{content:'SOLD';position:absolute;z-index:9;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-11deg);padding:12px 22px;border:5px solid #fff;color:#fff;background:#052f40e8;font-size:48px;line-height:1;font-weight:1000;letter-spacing:.1em;text-shadow:0 2px 9px #001e28;box-shadow:0 0 30px #6dfff0c9}
.detonation-flash{position:absolute;z-index:20;inset:0;pointer-events:none;opacity:0;background:linear-gradient(125deg,rgba(255,255,255,0) 18%,rgba(213,255,255,.96) 43%,rgba(67,230,255,.9) 54%,rgba(2,139,218,.46) 68%,rgba(0,69,141,0) 88%);mix-blend-mode:screen}.detonation-particles{position:absolute;z-index:21;inset:0;pointer-events:none;overflow:hidden}.detonation-particles i{position:absolute;left:50%;top:50%;width:6px;height:6px;border-radius:50%;background:#e8ffff;box-shadow:0 0 12px 3px #5eeeff;opacity:0}.opening.detonating .detonation-flash{animation:screenImpact .56s cubic-bezier(.08,.82,.13,1) both}.opening.detonating .detonation-particles i{animation:screenParticle .52s var(--d) cubic-bezier(.08,.72,.2,1) both}@keyframes screenImpact{0%{opacity:0;transform:scale(.35)}12%{opacity:1;transform:scale(1)}35%{opacity:.78;transform:scale(1.14)}100%{opacity:0;transform:scale(1.48)}}@keyframes screenParticle{0%{opacity:0;transform:translate(-50%,-50%) scale(.2)}10%{opacity:1}100%{opacity:0;transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y))) scale(1.8)}}
.sell-flash{position:absolute;z-index:20;inset:0;pointer-events:none;opacity:0;background:linear-gradient(135deg,transparent 18%,#dfffffde 45%,#53eef0ab 58%,transparent 86%);mix-blend-mode:screen}.sell-particles{position:absolute;z-index:21;inset:0;pointer-events:none;overflow:hidden}.sell-particles i{position:absolute;left:50%;top:48%;width:7px;height:7px;border-radius:50%;background:#efffff;box-shadow:0 0 14px 3px #53eff6;opacity:0}.result.selling{animation:sellScreenShake .52s cubic-bezier(.2,.72,.22,1) both}.result.selling .sell-flash{animation:sellFlash .42s ease-out both}.result.selling .sell-particles i{animation:sellParticle .44s var(--d) cubic-bezier(.12,.73,.18,1) both}.result.selling .reveal-card.sold-card:after{animation:soldStamp .5s cubic-bezier(.12,.86,.2,1) both}@keyframes sellScreenShake{0%,100%{transform:translate(0,0)}12%{transform:translate(-11px,6px)}25%{transform:translate(10px,-7px)}39%{transform:translate(-7px,5px)}54%{transform:translate(5px,-3px)}70%{transform:translate(-2px,1px)}}@keyframes sellFlash{0%{opacity:0;transform:scale(.4)}15%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1.32)}}@keyframes sellParticle{0%{opacity:0;transform:translate(-50%,-50%) scale(.2)}12%{opacity:1}100%{opacity:0;transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y))) scale(1.65)}}@keyframes soldStamp{0%{opacity:0;transform:translate(-50%,-50%) rotate(-11deg) scale(.25)}65%{opacity:1;transform:translate(-50%,-50%) rotate(-11deg) scale(1.18)}100%{opacity:1;transform:translate(-50%,-50%) rotate(-11deg) scale(1)}}
