.win-scene{--scene-unit:1s;position:absolute;inset:0;z-index:5;overflow:hidden;border-radius:10px;pointer-events:none;display:none;background:#fff1ce}
.win-scene.visible{display:block}.scene-backdrop{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 30%,#fffae8,transparent 65%),repeating-linear-gradient(90deg,#f5dc9e55 0 8%,#ffedc166 8% 16%)}
.scene-caption{position:absolute;top:8%;left:0;right:0;text-align:center;font-size:clamp(16px,2.5vw,28px);font-weight:1000;color:#9c532e;letter-spacing:2px;z-index:5;text-shadow:0 2px #fff6d8}
.chase-stage,.vault-stage{display:none;position:absolute;inset:0}.win-scene[data-scene=chase] .chase-stage,.win-scene[data-scene=vault] .vault-stage{display:block}
.chase-floor{position:absolute;bottom:12%;height:8%;left:0;right:0;background:repeating-linear-gradient(90deg,#ac8856 0 80px,#876847 81px 84px);box-shadow:0 -4px #d0b77e}
.runner{position:absolute;bottom:17%;left:0;width:clamp(120px,26%,260px);height:60%;transform:translateX(-130%)}.runner img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 9px 2px #63472333)}
.visible .runner-jerry{animation:jerry-run calc(3 * var(--scene-unit)) linear both}.visible .runner-tom{width:clamp(150px,33%,330px);animation:tom-run calc(3 * var(--scene-unit)) linear both}.visible .runner img{animation:run-bob calc(.16 * var(--scene-unit)) ease-in-out infinite alternate}
.chase-impact{position:absolute;left:71%;top:40%;width:20%;height:35%;opacity:0}.chase-impact i{position:absolute;font-size:48px;color:#efb82e;text-shadow:2px 2px #935929;font-style:normal}.chase-impact i:nth-child(2){left:60%;top:-20%;font-size:36px}.chase-impact i:nth-child(3){left:40%;top:60%;font-size:28px}.visible .chase-impact{animation:impact-stars calc(3 * var(--scene-unit)) ease-out both}
.chase-dust{position:absolute;bottom:19%;left:72%;width:80px;height:35px;border-radius:50%;background:#fff5da;box-shadow:25px -15px #fff5da,-20px -6px #fff5da;opacity:0}.visible .chase-dust{animation:impact-stars calc(3 * var(--scene-unit)) ease-out both}
.win-scene[data-scene=vault]{background:#44354e}.win-scene[data-scene=vault] .scene-backdrop{background:radial-gradient(ellipse at 50% 65%,#ffe09099,transparent 65%)}.win-scene[data-scene=vault] .scene-caption{color:#ffe397;text-shadow:0 3px #57342d}
.vault-cabinet{position:absolute;width:clamp(150px,28%,270px);height:62%;left:50%;top:28%;transform:translateX(-50%);border:8px solid #ac783e;border-radius:12px;background:#573b26;box-shadow:0 7px #30232a,inset 0 0 35px #ffd954;perspective:600px}
.vault-door{position:absolute;top:0;bottom:0;width:50%;border:4px solid #a47542;background:repeating-linear-gradient(0deg,#d3a564 0 35px,#ce9d59 36px 39px);backface-visibility:visible;z-index:3}.door-left{left:0;transform-origin:left}.door-right{right:0;transform-origin:right}.vault-door span{position:absolute;top:46%;width:10px;height:22px;border-radius:10px;background:#ffe497;border:2px solid #83552d}.door-left span{right:10px}.door-right span{left:10px}
.visible .door-left{animation:open-left calc(4 * var(--scene-unit)) ease-in-out both}.visible .door-right{animation:open-right calc(4 * var(--scene-unit)) ease-in-out both}
.vault-key{position:absolute;z-index:4;width:60%;left:40%;top:38%;filter:drop-shadow(0 4px #704a2933)}.visible .vault-key{animation:unlock-vault calc(4 * var(--scene-unit)) ease-in-out both}
.vault-glow{position:absolute;inset:-70%;background:repeating-conic-gradient(#ffe18e55 0deg 10deg,transparent 10deg 25deg);border-radius:50%;opacity:0}.visible .vault-glow{animation:vault-light calc(4 * var(--scene-unit)) ease-out both}
.vault-treasure{position:absolute;inset:0;z-index:2}.vault-treasure img{position:absolute;width:42px;left:var(--left);top:50%;opacity:0}.visible .vault-treasure img{animation:treasure-burst calc(2 * var(--scene-unit)) calc((1.45 + var(--i) * .08) * var(--scene-unit)) ease-out both;--dx:calc((var(--i) - 5.5) * 24px)}
.vault-crown{position:absolute;width:100%;height:90%;object-fit:contain;left:0;top:-5%;z-index:4;opacity:0}.visible .vault-crown{animation:vault-crown calc(4 * var(--scene-unit)) ease-out both}
@keyframes jerry-run{0%{left:-5%;transform:translateX(-130%)}65%{left:73%;transform:translateX(0)}100%{left:120%;transform:translateX(0)}}
@keyframes tom-run{0%,12%{left:-10%;transform:translateX(-130%)}68%{left:61%;transform:translateX(0) rotate(0)}76%{left:64%;transform:translateX(0) rotate(22deg) scaleX(.8)}100%{left:64%;transform:translateX(0) rotate(22deg) scaleX(.8)}}
@keyframes run-bob{to{translate:0 -7px;rotate:3deg}}@keyframes impact-stars{0%,68%{opacity:0;transform:scale(.2)}78%{opacity:1;transform:scale(1.2) rotate(-10deg)}100%{opacity:0;transform:scale(1.5) rotate(30deg)}}
@keyframes open-left{0%,36%{transform:rotateY(0)}65%,100%{transform:rotateY(-110deg)}}@keyframes open-right{0%,36%{transform:rotateY(0)}65%,100%{transform:rotateY(110deg)}}
@keyframes unlock-vault{0%{opacity:0;transform:translate(80px,-30px) rotate(-25deg)}18%,28%{opacity:1;transform:translate(0,0) rotate(0)}38%{opacity:1;transform:rotate(90deg)}48%,100%{opacity:0;transform:rotate(90deg) scale(.6)}}
@keyframes vault-light{0%,35%{opacity:0;transform:scale(.5) rotate(0)}70%,100%{opacity:1;transform:scale(1.2) rotate(45deg)}}
@keyframes treasure-burst{0%{opacity:0;transform:translate(0,0) scale(.4)}20%{opacity:1}65%{opacity:1;transform:translate(var(--dx),-90px) scale(1.1) rotate(60deg)}100%{opacity:0;transform:translate(calc(var(--dx) * 1.3),100px) rotate(140deg)}}
@keyframes vault-crown{0%,60%{opacity:0;transform:translateY(25px) scale(.3)}82%,100%{opacity:1;transform:translateY(-15px) scale(1)}}
@media(max-width:560px){.scene-caption{font-size:16px}.vault-treasure img{width:28px}.chase-impact i{font-size:30px}.vault-cabinet{border-width:5px}}
@media(prefers-reduced-motion:reduce){.win-scene *{animation:none!important}}
