.victory-playing>.tile{visibility:hidden}.victory-board{position:absolute;inset:0;z-index:4;pointer-events:none;overflow:hidden}.victory-board .tile{transition:transform .26s cubic-bezier(.25,.7,.35,1),opacity .17s}.victory-playing>.forest-fx{z-index:17}
.victory-screen{position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;border-radius:0;background:transparent;color:#ffedac;overflow:hidden;isolation:isolate;outline:none;box-shadow:none;z-index:2147483647}.victory-screen::backdrop{background:radial-gradient(ellipse at center,#071b1433,#020f0bc4);backdrop-filter:blur(2px);animation:victory-screen-dim .35s ease both}.victory-center{position:absolute;inset:0;display:grid;place-items:center;z-index:3;padding:16px}.victory-screen .victory-banner{position:relative;top:auto;left:auto;width:min(660px,96vw,125dvh);z-index:3;pointer-events:none;animation:victory-arrive .7s cubic-bezier(.15,.8,.3,1.12) both;filter:drop-shadow(0 14px 20px #0008) drop-shadow(0 0 26px #ffd97944)}.victory-banner img{display:block;width:100%;height:auto;animation:victory-float 2.5s ease-in-out .7s infinite}.victory-screen .victory-banner:after{content:'';position:absolute;inset:0;background:linear-gradient(110deg,transparent 35%,#fff8cf77 48%,transparent 59%);mask-image:url('forest-victory-banner-v1.svg');mask-size:100% 100%;mask-repeat:no-repeat;pointer-events:none;animation:victory-sheen 1.4s .4s ease-in-out both}.victory-radiance{position:absolute;width:min(110vw,110dvh);aspect-ratio:1;left:50%;top:50%;transform:translate(-50%,-50%);background:radial-gradient(circle,#ffefb433,#f4d1590f 43%,transparent 65%);z-index:1;pointer-events:none}.victory-radiance:before{content:'';position:absolute;inset:0;border-radius:50%;background:repeating-conic-gradient(from 0deg,transparent 0deg 13deg,#ffecaa2b 14deg 19deg,transparent 20deg 30deg);mask-image:radial-gradient(circle,transparent 8%,#000 24%,transparent 67%);animation:victory-rays 18s linear infinite}.victory-radiance:after{content:'';position:absolute;inset:22%;border-radius:50%;box-shadow:0 0 60px 35px #ffde6c19;background:#ffedb50c;animation:victory-glow 1.6s ease-in-out infinite}.victory-sparkles{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden}.victory-sparkles i{position:absolute;left:var(--x);top:90%;width:var(--size);height:var(--size);border-radius:65% 5% 65% 5%;background:#ffe9a7;box-shadow:0 0 9px #ffe89a;opacity:0;animation:victory-spark var(--duration) var(--delay) ease-out infinite}.victory-banner.leaving{animation:victory-leave .33s ease-in forwards!important}.victory-screen.fading .victory-radiance,.victory-screen.fading .victory-sparkles{opacity:0;transition:opacity .3s}.victory-wash{position:absolute;inset:0;z-index:5;pointer-events:none;background:radial-gradient(ellipse at 45% 50%,#70c8dbdd,#36718ece 45%,#565689cc 80%);backdrop-filter:blur(14px);animation:victory-wash .65s ease both}.forest-dialog#result-dialog{overflow:visible}#result-dialog[open] .result-stars{animation:stars-arrive .55s cubic-bezier(.2,.85,.3,1.25)}@keyframes victory-screen-dim{from{opacity:0}to{opacity:1}}@keyframes victory-arrive{0%{opacity:0;transform:translateY(45vh) scale(.65) rotate(-5deg)}30%{opacity:1}73%{transform:translateY(-4vh) scale(1.04) rotate(1deg)}100%{opacity:1;transform:translateY(0) scale(1) rotate(0)}}@keyframes victory-float{50%{transform:translateY(6px)}}@keyframes victory-leave{to{opacity:0;transform:translateY(-45vh) scale(.94)}}@keyframes victory-wash{0%{opacity:0}40%,55%{opacity:1}100%{opacity:0}}@keyframes victory-rays{to{transform:rotate(360deg)}}@keyframes victory-glow{50%{opacity:.5;transform:scale(1.12)}}@keyframes victory-sheen{from{transform:translateX(-70%);opacity:0}40%{opacity:1}to{transform:translateX(70%);opacity:0}}@keyframes victory-spark{0%{opacity:0;transform:translate(0,0) scale(.5) rotate(0)}15%{opacity:1}80%{opacity:.8}100%{opacity:0;transform:translate(var(--drift),-85vh) scale(1) rotate(240deg)}}@media(prefers-reduced-motion:reduce){.victory-banner,.victory-banner img,.victory-screen::backdrop,.victory-radiance:before,.victory-radiance:after{animation:none!important}.victory-sparkles,.victory-wash,.victory-banner:after{display:none}}
