/* Layered celebration: character / shrine / title / counter / light / particles.
   Lucky Mischief supplies the hierarchy and timing; all artwork is Akatsuki. */
#celebration{--prize-hot:#ef4155;--prize-light:#ffce8e;--prize-dark:#59182a;background:transparent;display:block;overflow:hidden;isolation:isolate;touch-action:manipulation}
#celebration[data-tier="1"]{--prize-hot:#c38df2;--prize-light:#f7d9b5;--prize-dark:#412653;background:transparent}
#celebration[data-tier="2"]{--prize-hot:#ffb947;--prize-light:#fff1b7;--prize-dark:#6c2a23;background:transparent}
.prize-backdrop{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 43%,color-mix(in srgb,var(--prize-dark) 70%,transparent),#080a12ec 75%);backdrop-filter:blur(2px);transition:background .6s;animation:prize-fade-in .35s both}
.prize-coins{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}
#prize-scene{position:absolute;top:50%;left:50%;width:756px;height:1120px;transform:translate(-50%,-50%);transform-origin:center;pointer-events:none;z-index:2}
.prize-moon{position:absolute;left:163px;top:90px;width:430px;height:430px;border-radius:50%;background:radial-gradient(circle at 39% 34%,#ffdebe,var(--prize-hot) 45%,var(--prize-dark) 74%);box-shadow:0 0 20px var(--prize-hot),0 0 100px color-mix(in srgb,var(--prize-hot) 55%,transparent);opacity:.55;transition:background .5s;animation:prize-moon-in .8s both}
.prize-rays{position:absolute;inset:80px -200px -50px;background:repeating-conic-gradient(from 0deg at 50% 48%,transparent 0deg 14deg,color-mix(in srgb,var(--prize-light) 18%,transparent) 16deg,transparent 24deg);mask-image:radial-gradient(ellipse,#000,transparent 65%);animation:prize-ray-turn 35s linear infinite}
.prize-seal{position:absolute;left:50%;top:48px;width:580px;height:580px;transform:translateX(-50%);opacity:.24;filter:drop-shadow(0 0 12px var(--prize-hot))}
.prize-seal img{width:100%;height:100%;animation:prize-ray-turn 35s linear infinite reverse}
.prize-heroes{position:absolute;left:30px;right:30px;top:15px;height:620px}
.prize-hero{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;transform:translateY(35px) scale(.87);filter:drop-shadow(0 8px 18px #000b) drop-shadow(0 0 9px var(--prize-hot));transition:opacity .4s,transform .75s cubic-bezier(.16,.8,.2,1)}
.prize-hero.is-active{opacity:1;transform:translateY(0) scale(1)}
.prize-hero[data-hero="2"]{width:730px;left:-17px}
.prize-shrine{position:absolute;left:46px;right:46px;top:580px;height:365px;background:linear-gradient(100deg,#150f1be8,#2c1724f2 48%,#130e19f2);border:2px solid #c9a178;border-top:10px ridge #f3cf9d;border-bottom:7px ridge #b78660;clip-path:polygon(4% 0,96% 0,100% 7%,96% 7%,96% 94%,100% 100%,0 100%,4% 94%,4% 7%,0 7%);box-shadow:inset 0 0 65px var(--prize-dark),0 0 55px var(--prize-hot)}
.prize-shrine:before,.prize-shrine:after{content:"";position:absolute;top:18px;bottom:18px;width:19px;background:linear-gradient(90deg,#523347,#f8deb1 40%,#a67a62 60%,#321d31);border:1px solid #f7dc9c80}
.prize-shrine:before{left:31px}.prize-shrine:after{right:31px}
.prize-shrine i{position:absolute;left:80px;right:80px;top:20px;height:1px;background:linear-gradient(90deg,transparent,var(--prize-light),transparent)}
.prize-shrine i+i{top:auto;bottom:24px}
.prize-copy{position:absolute;left:26px;right:26px;top:575px;display:flex;align-items:center;flex-direction:column;gap:12px;text-align:center;z-index:2}
.prize-kicker{color:#eacda9;font:600 17px/1.3 Arial,sans-serif;letter-spacing:5px;margin-top:32px;opacity:.7}
#celebration #celebration-title{font:900 91px/.98 Georgia,'Times New Roman',serif;letter-spacing:-4px;color:var(--prize-light);max-width:100%;padding:0 8px;-webkit-text-stroke:1.3px #fff1b6;paint-order:stroke fill;text-shadow:0 3px #6c192a,0 6px #6c192a,0 8px 2px #080611,0 0 26px var(--prize-hot);margin-top:0}
#celebration[data-tier="2"] #celebration-title{font-size:66px;letter-spacing:-2px;max-width:590px;line-height:1.02}
#celebration #celebration-value{display:block;position:relative;font:900 var(--number-size,136px)/1 Georgia,'Times New Roman',serif;font-variant-numeric:tabular-nums;color:#fff1bb;-webkit-text-stroke:2px #f9d385;paint-order:stroke fill;letter-spacing:-4px;text-shadow:0 3px #af622d,0 7px #7e2837,0 9px 1px #150813,0 0 20px color-mix(in srgb,var(--prize-hot) 75%,transparent);margin:7px 0 1px;white-space:nowrap}
#prize-subtitle{font:600 17px/1.5 Arial,sans-serif;color:#e6bb9e;letter-spacing:4px;margin-top:6px}
.prize-clouds{position:absolute;left:22px;right:22px;top:876px;display:flex;justify-content:space-between;filter:drop-shadow(0 2px 1px #1c0611)}
.prize-clouds img{width:90px;height:63px;object-fit:contain;transform:rotate(-14deg)}.prize-clouds img+img{transform:rotate(14deg) scaleX(-1)}
.prize-floor{position:absolute;left:63px;right:63px;top:936px;height:48px;background:radial-gradient(ellipse,color-mix(in srgb,var(--prize-hot) 50%,transparent),transparent 70%);filter:blur(8px)}
#prize-hint{position:absolute;top:1024px;left:0;width:100%;font:400 24px/1.4 Arial,sans-serif;color:#d9c7c8;letter-spacing:.5px;text-shadow:0 1px 8px #000;animation:prize-hint-pulse 2s ease-in-out infinite alternate}
#celebration[data-phase="holding"] #celebration-value{filter:brightness(1.06)}
#celebration[data-phase="leaving"]{animation:prize-fade-out var(--prize-fade,.5s) both}
#celebration[data-kind="free"] .prize-copy{top:585px}
#celebration[data-kind="free"] #celebration-value{font-size:137px}
.prize-obito{display:none;position:absolute;left:103px;top:44px;width:550px;height:550px}
.prize-obito img{position:absolute;inset:35px;width:480px;height:480px;object-fit:contain;filter:drop-shadow(0 0 28px #f66e36)}
.prize-portal{position:absolute;inset:-30px;border-radius:50%;background:repeating-conic-gradient(from 0deg,#db623700 0deg 22deg,#ee9d624c 30deg,#7b213800 45deg);mask-image:radial-gradient(circle,transparent 20%,#000 48%,transparent 72%);animation:prize-ray-turn 18s linear infinite reverse}
#celebration[data-kind="free"] .prize-obito{display:block}
#celebration[data-kind="free"] .prize-heroes,#celebration[data-kind="free"] .prize-seal{display:none}
#celebration[data-kind="free"]{--prize-hot:#ec7044;--prize-light:#ffe0b5;--prize-dark:#6a2536}
#celebration[data-kind="free"] #prize-subtitle{font-size:18px;letter-spacing:2px}
body.reduce-motion .prize-portal{animation:none}
#celebration[data-kind="total"] #celebration-title{font-size:84px}
.landscape #prize-scene{transform:translate(-50%,-50%) scale(.69)}
.landscape .prize-backdrop{background:radial-gradient(ellipse,var(--prize-dark),#080a12ed 74%)}
#info .info-award-art{display:none;position:absolute;inset:0;pointer-events:none;z-index:0}
#info.is-medium{overflow:visible;background:linear-gradient(90deg,#632032,#b53343 48%,#632032);border-color:#ffd5a0;box-shadow:0 0 25px #ef465177,inset 0 0 23px #ffbb6744;transition:background .2s}
#info.is-medium .info-award-art{display:block}
#info #win-label{position:relative;z-index:2;white-space:nowrap;gap:14px}
#info #win-caption{font-size:27px;font-weight:800}
#info.is-medium #win-value{font:900 61px/1 Georgia,serif;color:#fff1bb;text-shadow:0 3px #6c2231,0 0 16px #ffc273}
.info-crow{position:absolute;width:152px;height:152px;object-fit:contain;bottom:-4px;filter:drop-shadow(0 0 6px #dcbca4);transform-origin:bottom center;animation:info-crow-rise .45s ease-out both,info-crow-float .65s .45s ease-in-out infinite alternate}
.info-crow.left{left:-10px;--crow-flip:1}.info-crow.right{right:-10px;--crow-flip:-1}
.info-fire{position:absolute;bottom:0;width:135px;height:125px;border-radius:50% 0 50% 0;background:radial-gradient(ellipse at 50% 90%,#ffe5b3aa,#ed375755 42%,transparent 70%);mix-blend-mode:screen;animation:info-flame .2s ease-in-out infinite alternate;z-index:-1}
.info-fire.left{left:45px}.info-fire.right{right:45px;animation-delay:.1s}
.info-shock{position:absolute;inset:-35px -2px;border-radius:50%;border:2px solid #ffe5b5;opacity:0;animation:info-ring .65s ease-out both}
#info.award-complete #win-value{animation:info-complete .45s ease-out both}
#info.award-complete .info-shock{animation:info-ring-end .65s ease-out both}
body.reduce-motion .prize-hero,body.reduce-motion .prize-backdrop{transition:none}
body.reduce-motion .prize-rays,body.reduce-motion .prize-seal,body.reduce-motion .prize-coins,body.reduce-motion .info-fire,body.reduce-motion .info-shock{display:none}
body.reduce-motion .info-crow{transform:scaleX(var(--crow-flip))}
@keyframes prize-fade-in{from{opacity:0}to{opacity:1}}
@keyframes prize-fade-out{to{opacity:0;transform:scale(1.025)}}
@keyframes prize-moon-in{from{opacity:0;transform:scale(.6)}to{opacity:.55;transform:scale(1)}}
@keyframes prize-ray-turn{to{rotate:360deg}}
@keyframes prize-hint-pulse{to{opacity:.55}}
@keyframes info-crow-rise{from{opacity:0;transform:scaleX(var(--crow-flip)) translateY(40px) scale(.55)}to{opacity:1;transform:scaleX(var(--crow-flip)) translateY(0) scale(1)}}
@keyframes info-crow-float{from{transform:scaleX(var(--crow-flip)) rotate(-3deg)}to{transform:scaleX(var(--crow-flip)) rotate(3deg) translateY(-3px)}}
@keyframes info-flame{to{transform:scale(.9,1.14);opacity:.65}}
@keyframes info-ring{from{opacity:.85;transform:scale(.7)}to{opacity:0;transform:scale(1.1,1.4)}}
@keyframes info-ring-end{from{opacity:1;transform:scale(.9)}to{opacity:0;transform:scale(1.2,1.5)}}
@keyframes info-complete{50%{transform:scale(1.1);filter:brightness(1.3)}}

.prize-preview-link{display:block;margin:22px 0 0;padding:20px 22px;border:1px solid #694257;border-radius:12px;color:#edc4bf;text-align:center;text-decoration:none;font-size:23px;background:#2c1b29}.prize-preview-link:focus-visible{outline:3px solid #ed8996}
