@font-face { font-family:IslandReward; src:url('./fonts/reward-title-black.woff2?v=20261104-DXRXte') format('woff2'); font-weight:900; font-style:normal; font-display:swap; }
/* Every tier owns a composition and a single bounded presentation clock. */
.celebration { position:fixed; inset:0; width:100%; height:100svh; max-width:none; max-height:none; padding:0; margin:0; border:0; overflow:hidden; color:#fff3c8; background:transparent; font-family:var(--body-font); isolation:isolate; opacity:var(--exit-opacity,1); }
.celebration[open] { display:flex; align-items:center; justify-content:center; }
.celebration::backdrop { background:#0027328a; }
.celebration-night,.celebration-horizon,.celebration-rays,.celebration-rings,.celebration-palms,.celebration-particles { position:absolute; inset:0; pointer-events:none; }
.celebration-night { background:radial-gradient(ellipse at 50% 43%,#0a535be0 0,#042b39ed 70%); animation:ceremony-veil .2s both; z-index:-3; }
.celebration-stage { position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; width:min(730px,94vw); min-width:0; max-height:calc(100svh - 105px); margin:0 auto 25px; text-align:center; z-index:2; animation:ceremony-stage .45s cubic-bezier(.16,.8,.25,1.1) both; }
.celebration:not([data-reduced=true]) .celebration-stage { translate:var(--impact-x,0px) var(--impact-y,0px); scale:var(--impact-scale,1); }
.celebration-stage::before { content:''; position:absolute; inset:-12% -18%; z-index:-2; pointer-events:none; background:radial-gradient(ellipse at 50% 44%,#ffd06b70,transparent 62%); opacity:var(--impact-light,0); }
.celebration-eyebrow { position:relative; font-size:11px; font-weight:bold; letter-spacing:4px; color:#c3e5d1; text-transform:uppercase; margin-bottom:24px; }
.celebration-plaque { position:relative; width:88%; padding:15px 28px 19px; background:linear-gradient(135deg,#936024,#52381e 30%,#946228 52%,#4f3219); border:2px solid #f2c66d; border-radius:9px; box-shadow:0 5px 0 #51321c,0 7px 0 #d7a448,inset 0 0 0 4px #693f19,inset 0 0 0 5px #d2a14a; }
.celebration-plaque::before,.celebration-plaque::after { content:''; position:absolute; inset:8px auto 8px -15px; width:27px; z-index:-1; background:linear-gradient(#f8e29b,#c38a2c); clip-path:polygon(100% 0,100% 100%,0 100%,25% 50%,0 0); }
.celebration-plaque::after { left:auto; right:-15px; transform:scaleX(-1); }
.celebration h2 { position:relative; margin:0; font:900 clamp(35px,6.5vw,76px)/1.08 var(--display-font); text-wrap:balance; color:#ffe59b; letter-spacing:.025em; text-shadow:0 2px 0 #9d5d23,0 4px 0 #482815; }
.celebration h2::after { content:attr(data-lettering) / ''; position:absolute; inset:0; opacity:0; color:transparent; -webkit-text-fill-color:transparent; text-shadow:none; background:linear-gradient(108deg,transparent 36%,#fff9d544 43%,#fffdf4 48%,#fff7c7aa 51%,transparent 58%); background-size:320% 100%; background-position:140% 0; background-clip:text; -webkit-background-clip:text; pointer-events:none; animation:ceremony-lettering-light var(--ceremony-duration) linear both; }
.celebration-subtitle { display:block; font-size:10px; letter-spacing:3px; color:#fff0bc; margin-top:10px; text-transform:uppercase; }
.celebration-prize { position:relative; margin-top:22px; display:flex; align-items:baseline; justify-content:center; gap:12px; }
.celebration-prize::before { content:''; position:absolute; inset:-22px -25px; z-index:-1; border-radius:50%; background:radial-gradient(ellipse,#ffe09166,transparent 67%); opacity:calc(.12 + var(--impact-light,0) * .7); transform:scale(calc(.9 + var(--impact-light,0) * .25)); pointer-events:none; }
.celebration-prize::after { content:''; position:absolute; left:8%; right:8%; height:2px; bottom:-9px; background:linear-gradient(90deg,transparent,#ffdf8d,#fffbe0,#ffdf8d,transparent); opacity:0; transform:scaleX(.2); }
.celebration-count { font:900 clamp(68px,13vw,146px)/1 var(--display-font); letter-spacing:-.02em; font-variant-numeric:tabular-nums; color:#fff3be; text-shadow:0 3px 0 #ce8830,0 6px 0 #80501c,0 10px 25px #0008; }
.celebration-unit { font-size:16px; font-weight:bold; color:#f6d27d; }
.celebration-multiple { display:block; margin-top:17px; font:600 23px/1 var(--display-font); letter-spacing:2px; color:#f1c967; }
.celebration-hero,.celebration-wreath,.celebration-sun,.celebration-chest,.celebration-horizon,.celebration-rays,.celebration-rings,.celebration-palms { display:none; }
.celebration-actions { position:absolute; bottom:max(23px,env(safe-area-inset-bottom)); left:16px; right:16px; z-index:5; display:flex; align-items:center; justify-content:center; gap:13px; }
.celebration-actions button { min-height:44px; border:1px solid #edd38d7a; border-radius:24px; background:#0b3438d9; padding:10px 20px; color:#f9e4ad; font:600 12px/1.2 var(--body-font); }
.celebration-actions .celebration-skip { background:linear-gradient(#fff0b5,#e8bb57); color:#4e371d; border-color:#fff2b5; box-shadow:0 3px 0 #86602b; min-width:130px; }
.celebration-actions button:focus-visible { outline:3px solid #fff9db; outline-offset:4px; }
.celebration-actions button:disabled { color:#c4d6bc; border-color:#8dab8f66; background:#153e35; box-shadow:none; cursor:default; }
.celebration-sr { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.celebration-particles { z-index:3; overflow:hidden; }
.celebration-effects { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.celebration-fruit { position:absolute; width:94px; height:94px; filter:drop-shadow(0 6px 3px #002a3099); }
.celebration[data-tier=harvest] .celebration-night { background:radial-gradient(ellipse,#034650ba,#032f3cd9); }
.celebration[data-tier=harvest] .celebration-stage { padding-top:70px; }
.celebration[data-tier=harvest] .celebration-wreath { display:block; position:absolute; inset:-25px 0 auto; height:100px; }
.celebration[data-tier=harvest] .celebration-fruit { left:calc(50% - 47px + (var(--i) - 1) * 85px); top:0; animation:ceremony-fruit-leap .7s calc(var(--i) * .055s) cubic-bezier(.15,.7,.3,1) both; }
.celebration[data-tier=super] .celebration-night { background:radial-gradient(ellipse at 50% 45%,#087777f5,#042d3bf2 75%); }
.celebration[data-tier=super] .celebration-plaque { background:linear-gradient(135deg,#15756b,#064940 45%,#22846a); box-shadow:0 5px 0 #12352c,0 7px 0 #caa348,inset 0 0 0 4px #2a6950,inset 0 0 0 5px #beac60; }
.celebration[data-tier=super] .celebration-palms,.celebration[data-tier=ultimate] .celebration-palms { display:block; }
.celebration-palms i { position:absolute; width:330px; height:210px; left:calc(50% - 420px); top:calc(50% - 140px); background:linear-gradient(135deg,#d7e68a,#4e9d52 24%,#176e49 55%,#0c5137); clip-path:polygon(100% 100%,80% 64%,98% 65%,72% 48%,91% 46%,61% 31%,76% 23%,47% 17%,49% 8%,29% 14%,16% 0,9% 21%,0 32%,21% 34%,6% 48%,35% 46%,18% 62%,48% 58%,38% 78%,67% 72%); transform-origin:100% 100%; animation:ceremony-palm-open .65s .13s cubic-bezier(.15,.65,.3,1) both; }
.celebration-palms i:last-child { left:auto; right:calc(50% - 420px); transform:scaleX(-1); animation-name:ceremony-palm-open-right; }
.celebration[data-tier=carnival] .celebration-night { background:radial-gradient(ellipse,#136c6eea,#063844f5 75%); }
.celebration[data-tier=carnival] .celebration-stage { padding-block:42px; animation:ceremony-carnival-stage var(--ceremony-duration) both; }
.celebration[data-tier=carnival] .celebration-plaque { width:90%; border-radius:48% / 24%; background:linear-gradient(145deg,#b95731,#762b26 48%,#9d6328); box-shadow:inset 0 0 0 4px #9d4225,inset 0 0 0 5px #ffd27d,0 8px 0 #492b1c; }
.celebration[data-tier=carnival] .celebration-wreath { display:block; position:absolute; top:50%; left:50%; width:min(80vw,440px); aspect-ratio:1; border-radius:50%; z-index:-1; transform:translate(-50%,-50%); animation:ceremony-wreath var(--ceremony-duration) both; }
.celebration[data-tier=carnival] .celebration-fruit { left:calc(50% - 37px); top:calc(50% - 37px); width:74px; height:74px; transform:rotate(var(--angle)) translateY(-215px) rotate(calc(-1 * var(--angle))); }
.celebration[data-tier=carnival] .celebration-prize { animation:ceremony-three-beats var(--ceremony-duration) both; }
.celebration-confetti { position:absolute; left:var(--x); top:-5%; width:8px; height:15px; background:var(--color); animation:ceremony-confetti 2.45s var(--delay) both; }
.celebration[data-tier=legend] .celebration-night { background:radial-gradient(ellipse at 50% 35%,#385339,#062b35 60%,#021b2b); }
.celebration[data-tier=legend] .celebration-hero { display:block; width:200px; height:180px; position:relative; margin-top:-30px; }
.celebration[data-tier=legend] .celebration-sun { display:block; position:absolute; width:220px; height:220px; top:-20px; left:-10px; animation:ceremony-sunrise 1.25s cubic-bezier(.2,.65,.25,1) both; }
.celebration[data-tier=legend] .celebration-eyebrow { order:0; margin-bottom:5px; }
.celebration[data-tier=legend] .celebration-plaque { background:transparent; border:0; box-shadow:none; padding:0; }
.celebration[data-tier=legend] .celebration-plaque::before,.celebration[data-tier=legend] .celebration-plaque::after,.celebration[data-tier=ultimate] .celebration-plaque::before,.celebration[data-tier=ultimate] .celebration-plaque::after { display:none; }
.celebration[data-tier=legend] .celebration-rays,.celebration[data-tier=ultimate] .celebration-rays { display:block; inset:auto; top:50%; left:50%; width:max(130vw,1400px); aspect-ratio:1; z-index:-2; background:repeating-conic-gradient(from 0deg,#ffe7a000 0deg 9deg,#ffe7a01f 12deg 16deg,#ffe7a000 20deg 30deg); mask-image:radial-gradient(circle,#000 5%,#0009 30%,transparent 67%); animation:ceremony-rays var(--ceremony-duration) both; }
.celebration[data-tier=legend] .celebration-rings,.celebration[data-tier=ultimate] .celebration-rings { display:block; z-index:-1; }
.celebration-rings i { position:absolute; width:450px; height:450px; top:calc(50% - 225px); left:calc(50% - 225px); border:2px solid #ffe7a88a; border-radius:50%; box-shadow:0 0 20px #f9be4b22,inset 0 0 20px #f9be4b22; animation:ceremony-ring 1.7s .9s both; }
.celebration-rings i:nth-child(2) { animation-delay:1.15s; }.celebration-rings i:nth-child(3) { animation-delay:1.4s; }
.celebration[data-tier=legend] .celebration-prize { animation:ceremony-legend-impact var(--ceremony-duration) both; }
.celebration[data-tier=ultimate] .celebration-night { background:linear-gradient(#032737ee,#0b4e52e8 48%,#1d4735f0),var(--island-art, none) center/cover; animation:ceremony-dawn var(--ceremony-duration) both; }
.celebration[data-tier=ultimate] .celebration-horizon { display:block; z-index:-2; background:radial-gradient(ellipse at 50% 75%,#ffcc5a77,transparent 52%),radial-gradient(ellipse at 50% 100%,#ffdf7577,transparent 65%); animation:ceremony-horizon var(--ceremony-duration) both; }
.celebration[data-tier=ultimate] .celebration-stage { margin-top:-20px; }
.celebration[data-tier=ultimate] .celebration-eyebrow { margin-bottom:0; color:#fff0b1; }
.celebration[data-tier=ultimate] .celebration-hero { display:block; width:260px; height:230px; position:relative; }
.celebration-chest { position:absolute; inset:-25px -25px -15px; perspective:900px; animation:ceremony-chest-arrive .7s both; }
.celebration-chest::before { content:''; position:absolute; inset:-30% -30% 12%; z-index:-1; background:radial-gradient(ellipse at 50% 80%,#fff3ad 0,#ffe09277 12%,#ffbd3b33 29%,transparent 60%); transform-origin:50% 85%; animation:ceremony-chest-radiance var(--ceremony-duration) both; }
.celebration[data-tier=ultimate] .celebration-chest { display:block; }
.celebration-chest i { position:absolute; inset:0; background:center/contain no-repeat; }
.chest-open { background-image:url('./reward-chest-open.webp?v=20261104-DXRXte')!important; animation:ceremony-chest-open var(--ceremony-duration) both; }
.chest-closed { background-image:url('./reward-chest-closed.webp?v=20261104-DXRXte')!important; animation:ceremony-chest-closed var(--ceremony-duration) both; }
.celebration[data-tier=ultimate] .celebration-plaque { background:transparent; box-shadow:none; border:0; padding:0; width:100%; }
.celebration[data-tier=ultimate] h2 { font-size:clamp(38px,6.5vw,80px); color:#fff0ac; }
.celebration[data-tier=ultimate] .celebration-prize { margin-top:10px; animation:ceremony-ultimate-impact var(--ceremony-duration) both; }
.celebration[data-tier=ultimate] .celebration-count { font-size:clamp(76px,14vw,160px); }
.celebration[data-tier=ultimate] .celebration-palms i { top:auto; bottom:-40px; left:-90px; width:430px; height:350px; opacity:.65; background:linear-gradient(#072d25,#051f24); transform:rotate(-10deg); animation:none; }
.celebration[data-tier=ultimate] .celebration-palms i:last-child { right:-90px; left:auto; transform:scaleX(-1) rotate(-10deg); }
.celebration[data-state=landed] .celebration-count { color:#fffbe4; }
.celebration[data-state=landed]:not([data-skipped=true]):not([data-reduced=true]) .celebration-count { animation:ceremony-number-land calc(var(--ceremony-duration) * .12) cubic-bezier(.16,1,.3,1) both; }
.celebration[data-state=landed]:not([data-skipped=true]):not([data-reduced=true]) .celebration-prize::after { animation:ceremony-number-line calc(var(--ceremony-duration) * .12) ease-out both; }
.celebration-plaque { order:1; }
.celebration .celebration-eyebrow,.celebration[data-tier=legend] .celebration-eyebrow,.celebration[data-tier=ultimate] .celebration-eyebrow { order:2; margin:18px 0 0; }
.celebration-prize { order:3; margin-top:8px; }
.celebration-multiple { order:4; }
.celebration-particles { z-index:1; }
.celebration-palms i { width:360px; height:250px; left:calc(50% - 470px); top:calc(50% - 205px); background:url('./reward-palm.webp?v=20261104-DXRXte') center/contain no-repeat; clip-path:none; }
.celebration-palms i:last-child { right:calc(50% - 470px); transform-origin:50% 50%; }
.celebration-stage { animation-duration:calc(.45s * var(--ceremony-speed,1)); }
.celebration[data-tier=harvest] .celebration-fruit { animation-duration:calc(.7s * var(--ceremony-speed,1)); animation-delay:calc(var(--i) * .055s * var(--ceremony-speed,1)); }
.celebration-palms i { animation-duration:calc(.65s * var(--ceremony-speed,1)); animation-delay:calc(.13s * var(--ceremony-speed,1)); }
.celebration[data-tier=carnival] .celebration-stage { animation-duration:var(--ceremony-duration); }
.celebration-confetti { animation-duration:calc(2.45s * var(--ceremony-speed,1)); animation-delay:calc(var(--delay) * var(--ceremony-speed,1)); }
.celebration[data-tier=legend] .celebration-sun { animation-duration:calc(1.25s * var(--ceremony-speed,1)); }
.celebration-chest { animation-duration:calc(.7s * var(--ceremony-speed,1)); }
.celebration-rings i { animation-duration:calc(1.7s * var(--ceremony-speed,1)); animation-delay:calc(.9s * var(--ceremony-speed,1)); }
.celebration-rings i:nth-child(2) { animation-delay:calc(1.15s * var(--ceremony-speed,1)); }
.celebration-rings i:nth-child(3) { animation-delay:calc(1.4s * var(--ceremony-speed,1)); }
.celebration[data-tier=ultimate] .celebration-palms i { background:url('./reward-palm.webp?v=20261104-DXRXte') center/contain no-repeat; filter:brightness(.15) saturate(.5); }
.celebration[data-skipped=true] * { animation-play-state:paused!important; }
@keyframes ceremony-veil { from{opacity:0}to{opacity:1} }
@keyframes ceremony-stage { from{opacity:0;transform:translateY(28px) scale(.75)}to{opacity:1;transform:translateY(0) scale(1)} }
@keyframes ceremony-fruit-leap { 0%{opacity:0;transform:translateY(130px) scale(.6) rotate(-18deg)}60%{opacity:1;transform:translateY(-15px) scale(1.08) rotate(5deg)}100%{transform:translateY(0) scale(1) rotate(0)} }
@keyframes ceremony-palm-open { from{opacity:0;transform:rotate(65deg) scale(.55)}to{opacity:1;transform:rotate(0) scale(1)} }
@keyframes ceremony-palm-open-right { from{opacity:0;transform:scaleX(-1) rotate(65deg) scale(.55)}to{opacity:1;transform:scaleX(-1) rotate(0) scale(1)} }
@keyframes ceremony-confetti { from{opacity:0;transform:translateY(-10vh) rotate(0)}12%{opacity:1}to{opacity:0;transform:translateY(110vh) rotate(var(--spin))} }
@keyframes ceremony-wreath { 0%{opacity:0;transform:translate(-50%,-50%) rotate(-30deg) scale(.55)}20%{opacity:1}100%{opacity:1;transform:translate(-50%,-50%) rotate(12deg) scale(1)} }
@keyframes ceremony-carnival-stage { 0%{opacity:0;transform:scale(.8)}18%,100%{opacity:1;transform:scale(1)} }
@keyframes ceremony-three-beats { 0%,34%,56%,78%,100%{transform:scale(1)}38%,60%,83%{transform:scale(1.075)} }
@keyframes ceremony-sunrise { from{opacity:0;transform:translateY(80px) scale(.4) rotate(-25deg)}to{opacity:1;transform:translateY(0) scale(1) rotate(0)} }
@keyframes ceremony-rays { 0%{opacity:0;transform:translate(-50%,-50%) rotate(-15deg) scale(.6)}30%{opacity:1}100%{opacity:.7;transform:translate(-50%,-50%) rotate(20deg) scale(1)} }
@keyframes ceremony-ring { from{opacity:.8;transform:scale(.25)}to{opacity:0;transform:scale(3)} }
@keyframes ceremony-legend-impact { 0%,28%,78%,100%{transform:scale(1)}30%{transform:scale(1.09)}83%{transform:scale(1.13)} }
@keyframes ceremony-dawn { 0%{opacity:0}15%,100%{opacity:1} }
@keyframes ceremony-horizon { 0%,15%{opacity:0;transform:translateY(90px)}48%,100%{opacity:1;transform:translateY(0)} }
@keyframes ceremony-chest-arrive { from{opacity:0;transform:translateY(30px) scale(.6)}to{opacity:1;transform:translateY(0) scale(1)} }
@keyframes ceremony-chest-open { 0%,19%{opacity:0;transform:scale(.96)}26%,100%{opacity:1;transform:scale(1)} }
@keyframes ceremony-chest-closed { 0%,19%{opacity:1}26%,100%{opacity:0} }
@keyframes ceremony-ultimate-impact { 0%,22%,78%,100%{transform:scale(1)}25%{transform:translateY(-3px) scale(1.12)}27%{transform:translateY(2px) scale(1.04)}83%{transform:scale(1.15)} }
@keyframes ceremony-lettering-light { 0%,8%{background-position:140% 0;opacity:0}12%{opacity:.9}32%{background-position:-40% 0;opacity:0}73%{background-position:140% 0;opacity:0}79%{opacity:1}98%,100%{background-position:-40% 0;opacity:0} }
@keyframes ceremony-chest-radiance { 0%,19%{opacity:0;transform:scale(.35)}25%{opacity:1;transform:scale(1.12)}38%{opacity:.5;transform:scale(.95)}66%{opacity:.8;transform:scale(1.08)}100%{opacity:.45;transform:scale(1)} }
@keyframes ceremony-number-land { 0%{transform:translateY(-3px) scale(1.09)}42%{transform:translateY(1px) scale(.99)}100%{transform:translateY(0) scale(1)} }
@keyframes ceremony-number-line { 0%{opacity:0;transform:scaleX(.2)}25%{opacity:.9}100%{opacity:0;transform:scaleX(1.25)} }
@media(max-width:600px) {
  .celebration[data-auto=true] .celebration-stage { margin-bottom:95px; max-height:calc(100svh - 165px); }
  .celebration[data-auto=true] .celebration-actions { display:grid; grid-template-columns:1fr 1fr; width:calc(100% - 32px); max-width:320px; left:50%; right:auto; transform:translateX(-50%); }
  .celebration[data-auto=true] .celebration-skip { grid-column:auto; }
  .celebration-stage { width:94vw; margin-bottom:35px; }
  .celebration-eyebrow { font-size:9px; letter-spacing:2px; margin-bottom:22px; }
  .celebration-plaque { padding:15px 14px 18px; width:89%; }
  .celebration h2 { font-size:clamp(31px,9vw,52px); }
  .celebration-subtitle { font-size:8px; letter-spacing:1.6px; margin-top:8px; }
  .celebration-count { font-size:clamp(72px,20vw,110px); }
  .celebration-unit { font-size:13px; }
  .celebration-prize { gap:8px; margin-top:24px; }
  .celebration-multiple { margin-top:15px; font-size:22px; }
  .celebration-actions { gap:8px; bottom:max(22px,env(safe-area-inset-bottom)); }
  .celebration-actions button { padding-inline:16px; font-size:11px; }
  .celebration-palms i { width:200px; height:145px; left:calc(50% - 240px); }
  .celebration-palms i:last-child { right:calc(50% - 240px); }
  .celebration[data-tier=carnival] .celebration-fruit { transform:rotate(var(--angle)) translateY(-175px) rotate(calc(-1 * var(--angle))); width:62px; height:62px; left:calc(50% - 31px); top:calc(50% - 31px); }
  .celebration[data-tier=legend] .celebration-hero { width:155px; height:150px; }
  .celebration[data-tier=legend] .celebration-sun { width:190px; height:190px; left:-18px; }
  .celebration[data-tier=ultimate] .celebration-hero { width:220px; height:200px; }
  .celebration[data-tier=ultimate] .celebration-stage { margin-top:-15px; }
  .celebration[data-tier=ultimate] h2 { font-size:clamp(32px,10vw,52px); }
  .celebration[data-tier=ultimate] .celebration-count { font-size:clamp(74px,22vw,120px); }
}
@media(max-height:650px) {
  .celebration-stage { margin-bottom:32px; }
  .celebration-eyebrow { margin-bottom:14px; }
  .celebration[data-tier=ultimate] .celebration-hero { width:180px; height:155px; }
  .celebration[data-tier=legend] .celebration-hero { height:125px; }
  .celebration[data-tier=legend] .celebration-sun { width:155px; height:155px; left:0; top:-12px; }
  .celebration[data-tier=ultimate] .celebration-stage { margin-top:0; }
}
@media(orientation:landscape) and (max-height:560px) {
  .celebration-stage { width:min(600px,76vw); margin-top:-12px; margin-bottom:35px; }
  .celebration-eyebrow { font-size:8px; margin-bottom:8px; }
  .celebration h2,.celebration[data-tier=ultimate] h2 { font-size:36px; }
  .celebration-plaque { padding:10px 22px; }
  .celebration-subtitle { font-size:8px; margin-top:5px; }
  .celebration-prize,.celebration[data-tier=ultimate] .celebration-prize { margin-top:10px; }
  .celebration-count,.celebration[data-tier=ultimate] .celebration-count { font-size:77px; }
  .celebration-multiple { font-size:18px; margin-top:9px; }
  .celebration-actions { bottom:12px; }
  .celebration-actions button { min-height:40px; padding-block:7px; }
  .celebration[data-tier=harvest] .celebration-stage { padding-top:42px; }
  .celebration[data-tier=harvest] .celebration-wreath { top:-25px; }
  .celebration[data-tier=harvest] .celebration-fruit { width:68px; height:68px; }
  .celebration[data-tier=legend] .celebration-hero { height:78px; }
  .celebration[data-tier=legend] .celebration-sun { width:115px; height:115px; left:44px; top:-23px; }
  .celebration[data-tier=ultimate] .celebration-hero { height:100px; width:155px; }
  .celebration[data-tier=ultimate] .celebration-chest { inset:-20px; }
}
.celebration[data-reduced=true] *,.celebration[data-reduced=true] *::before,.celebration[data-reduced=true] *::after { animation:none!important; transition:none!important; }
.celebration[data-reduced=true] .celebration-rays,.celebration[data-reduced=true] .celebration-rings,.celebration[data-reduced=true] .celebration-particles,.celebration[data-reduced=true] .celebration-palms,.celebration[data-reduced=true] .celebration-horizon { display:none; }
.celebration[data-reduced=true] .chest-closed { display:none; }
.celebration[data-reduced=true] .chest-open { opacity:1; }
@media(prefers-reduced-motion:reduce) { .celebration *,.celebration *::before,.celebration *::after { animation:none!important; transition:none!important; } }

/* Fixed English lettering is part of the reward artwork, in every locale. */
.celebration h2[lang=en] { font-size:90px; line-height:.98; letter-spacing:.015em; }
.celebration[data-tier=legend] h2[lang=en] { font-size:76px; }
@media(max-width:600px) {
  .celebration h2[lang=en] { font-size:54px; }
  .celebration[data-tier=super] h2[lang=en] { font-size:50px; }
  .celebration[data-tier=legend] h2[lang=en] { font-size:40px; }
  .celebration[data-tier=ultimate] h2[lang=en] { font-size:48px; }
}
@media(orientation:landscape) and (max-height:560px) {
  .celebration h2[lang=en],.celebration[data-tier=ultimate] h2[lang=en] { font-size:46px; }
  .celebration[data-tier=legend] h2[lang=en] { font-size:40px; }
}

/* A real black weight, raised contour and moving light belong to the lettering. */
.celebration h2 { z-index:0; isolation:isolate; font-family:IslandReward,var(--display-font); font-weight:900; color:#ffe08b; -webkit-text-stroke:.8px #fff1a4; paint-order:stroke fill; text-shadow:0 -1px 0 #fff8d4,0 2px 0 #f2b339,0 4px 0 #c77d22,0 6px 0 #8a4313,0 8px 0 #4c260e; scale:calc(1 + var(--impact-light,0) * .035); animation:ceremony-wordmark-arrive calc(.54s * var(--ceremony-speed,1)) cubic-bezier(.16,1,.3,1) both,ceremony-wordmark-glow 1.65s .54s ease-in-out infinite; }
.celebration h2[lang=en] { font-size:96px; letter-spacing:.012em; line-height:1.02; }
.celebration[data-tier=legend] h2[lang=en] { font-size:82px; }
.celebration h2::before { content:attr(data-lettering) / ''; position:absolute; inset:0; z-index:-1; color:#6c340e; -webkit-text-stroke:5px #64310f; paint-order:stroke fill; text-shadow:0 4px 0 #3e210e,0 11px 13px #002530aa; }
.celebration h2::after { -webkit-text-stroke:0; background:linear-gradient(108deg,transparent 35%,#fff7cd44 42%,#fffdf3 48%,#fff3aeaa 52%,transparent 59%); background-size:320% 100%; background-clip:text; -webkit-background-clip:text; animation:ceremony-metal-sweep 1.55s .18s ease-in-out infinite; }
.celebration-mark { position:absolute; inset:-30px -35px; z-index:-1; background:radial-gradient(ellipse,#ffdf9266,transparent 65%); opacity:calc(.25 + var(--impact-light,0) * .7); pointer-events:none; }
.celebration-title-sparks { position:absolute; inset:9% 3% 23%; pointer-events:none; z-index:3; }
.celebration-title-sparks i { position:absolute; left:var(--spark-x); top:var(--spark-y); width:23px; height:23px; background:radial-gradient(circle,#ffe7a388,transparent 70%); animation:ceremony-title-spark 1.45s calc(var(--spark-i) * .17s + .16s) ease-in-out infinite both; }
.celebration-title-sparks i::before { content:''; position:absolute; inset:4px; background:#fff9df; clip-path:polygon(50% 0,59% 40%,100% 50%,59% 59%,50% 100%,40% 59%,0 50%,40% 40%); }
.celebration-title-sparks i::after { content:''; position:absolute; inset:10px; border-radius:50%; background:#fff; }
.celebration[data-tier=harvest] .celebration-plaque { border-color:#fff0aa; box-shadow:0 5px 0 #51321c,0 8px 0 #e9ba5a,inset 0 0 0 4px #693f19,inset 0 0 0 6px #efc76a; }
.celebration[data-tier=super] .celebration-plaque { border-color:#fff0b0; box-shadow:0 5px 0 #12352c,0 8px 0 #e4bb5c,inset 0 0 0 4px #2a6950,inset 0 0 0 6px #ecd182; }
.celebration[data-final=true] .celebration-prize { animation:none; transform:none; }
.celebration[data-final=true] .celebration-count { color:#fffbe4; }
.celebration[data-final=true]:not([data-skipped=true]):not([data-reduced=true]) .celebration-count { animation:ceremony-number-land min(320ms,calc(var(--count-duration) * .15)) cubic-bezier(.16,1,.3,1) both; }
.celebration[data-final=true]:not([data-skipped=true]):not([data-reduced=true]) .celebration-prize::after { animation:ceremony-number-line .42s ease-out both; }
.celebration[data-state=exit]::backdrop { animation:ceremony-veil-out var(--exit-duration,200ms) linear both; }
.celebration[data-skipped=true] *::before,.celebration[data-skipped=true] *::after { animation-play-state:paused!important; }
@keyframes ceremony-wordmark-arrive { 0%{opacity:.3;transform:translateY(-16px) scale(.64) rotate(-3deg)}62%{opacity:1;transform:translateY(2px) scale(1.07) rotate(.4deg)}100%{opacity:1;transform:translateY(0) scale(1) rotate(0)} }
@keyframes ceremony-wordmark-glow { 0%,100%{filter:brightness(1) drop-shadow(0 5px 7px #092b3277)}43%{filter:brightness(1.19) drop-shadow(0 6px 9px #e5a63c66)} }
@keyframes ceremony-metal-sweep { 0%,8%{background-position:140% 0;opacity:0}18%{opacity:.95}58%{background-position:-40% 0;opacity:.8}69%,100%{background-position:-40% 0;opacity:0} }
@keyframes ceremony-title-spark { 0%,18%,100%{opacity:0;transform:translate(-50%,-50%) rotate(-15deg) scale(.3)}36%{opacity:1;transform:translate(-50%,-50%) rotate(0) scale(1.22)}60%{opacity:.5;transform:translate(-50%,-50%) rotate(18deg) scale(.65)} }
@keyframes ceremony-veil-out { to{opacity:0} }
@media(max-width:600px) {
  .celebration h2[lang=en] { font-size:64px; }
  .celebration[data-tier=super] h2[lang=en] { font-size:58px; }
  .celebration[data-tier=legend] h2[lang=en] { font-size:44px; }
  .celebration[data-tier=ultimate] h2[lang=en] { font-size:54px; }
  .celebration h2::before { -webkit-text-stroke:3.5px #64310f; text-shadow:0 3px 0 #3e210e,0 7px 9px #002530aa; }
  .celebration h2 { -webkit-text-stroke:.6px #fff1a4; text-shadow:0 -1px 0 #fff8d4,0 2px 0 #efad34,0 4px 0 #b56c1c,0 6px 0 #66320f; }
  .celebration-title-sparks i { width:19px; height:19px; }
  .celebration-title-sparks i::after { inset:8px; }
}
@media(orientation:landscape) and (max-height:560px) {
  .celebration h2[lang=en],.celebration[data-tier=ultimate] h2[lang=en] { font-size:52px; }
  .celebration[data-tier=legend] h2[lang=en] { font-size:44px; }
}
.celebration[data-reduced=true] h2 { scale:1; filter:none; }
.celebration[data-reduced=true] .celebration-title-sparks,.celebration[data-reduced=true] .celebration-mark { display:none; }
