/* A fitted victory scene replaces the scrolling paper dialog. */
#modal.victory-dialog{width:min(100vw,56.25dvh,620px);height:100dvh;max-height:none;padding:0;border:0;border-radius:0;background:radial-gradient(ellipse at 50% 25%,#7067b8 0,#383d77 42%,#20294f 90%);box-shadow:0 0 90px #0b1128bb;color:#fff;overflow:hidden}
#modal.victory-dialog::backdrop{background:#11152ce8;backdrop-filter:blur(5px)}
.victory-dialog #modal-content{height:100%;overflow:hidden;position:relative}
.victory-screen{--victory-gold:#ffdc7e;position:relative;isolation:isolate;height:100%;display:flex;flex-direction:column;align-items:stretch;gap:10px;padding:max(25px,env(safe-area-inset-top)) 6% max(20px,env(safe-area-inset-bottom));overflow:hidden;text-align:center}
.victory-screen:before{content:'';position:absolute;z-index:-2;inset:0;background:radial-gradient(ellipse at 50% 14%,#d4b5f52b,transparent 55%),url('../assets/mark.svg') 50% 50%/110px 110px;opacity:.16;pointer-events:none}
.victory-heading{flex-shrink:0;z-index:2;animation:victory-title .55s cubic-bezier(.2,.8,.3,1.2) both}.victory-chapter{font-size:9px;font-weight:1000;letter-spacing:2px;color:#e3d0fa}
#modal .victory-heading h2{font-size:clamp(34px,8.8cqw,55px);line-height:1;margin:8px 0!important;color:#ffe5a0;-webkit-text-stroke:2px #49344c;paint-order:stroke fill;text-shadow:0 4px #6f4c57,0 7px #1a244b66;letter-spacing:1px;transform:rotate(-2deg)}
#modal .victory-heading p{font-size:clamp(11px,3cqw,16px);color:#e8dfff;line-height:1.2;margin:9px 0 0;font-weight:900}
.victory-portrait{position:relative;flex:1;min-height:100px;max-height:220px;display:flex;align-items:center;justify-content:center;isolation:isolate}
.victory-rays{position:absolute;z-index:-1;inset:-28% -18%;background:repeating-conic-gradient(#ffe1a535 0deg 10deg,transparent 10deg 30deg);mask-image:radial-gradient(ellipse,black 5%,transparent 65%);animation:victory-rays 24s linear infinite;pointer-events:none}
.victory-laurel{position:absolute;width:100%;height:100%;max-width:285px;max-height:230px;bottom:-2%;filter:drop-shadow(0 4px 0 #1d254655);animation:victory-emblem .65s .1s cubic-bezier(.2,.8,.3,1.3) both}
.victory-hero{position:relative;height:91%;max-width:62%;object-fit:contain;filter:drop-shadow(0 7px 6px #181c4655);animation:victory-hero .7s .15s cubic-bezier(.2,.9,.3,1.2) both}
.victory-stars{position:absolute;left:16%;right:16%;bottom:0;display:flex;align-items:flex-end;justify-content:center;gap:7px;filter:drop-shadow(0 3px 2px #171d4255)}
.victory-star{width:clamp(35px,10cqw,58px);height:auto;animation:victory-star .5s .45s cubic-bezier(.2,.9,.3,1.7) both}.victory-star:nth-child(2){width:clamp(46px,13cqw,72px);margin-bottom:8px;animation-delay:.6s}.victory-star:nth-child(3){animation-delay:.75s}
.victory-stats{display:grid;grid-template-columns:repeat(3,1fr);flex-shrink:0;margin:0 7%;padding:7px 4px;background:#232d574d;border:1px solid #b7aed533;border-radius:13px;animation:victory-rise .45s .35s both}.victory-stats>div+div{border-left:1px solid #b4b0d433}.victory-stats strong{display:block;font-size:20px;color:#fff1bb;text-shadow:0 2px #202146}.victory-stats small{display:block;font-size:7px;letter-spacing:.6px;margin-top:3px;font-weight:900;color:#c5cbe8}
.victory-prizes{position:relative;flex-shrink:0;padding:10px;border:2px solid #b79acc;border-radius:17px;background:linear-gradient(140deg,#776092ee,#424875ee);box-shadow:inset 0 2px #dbbde744,0 4px #19213f77;animation:victory-rise .5s .55s both}
.victory-prize-heading{display:flex;align-items:center;justify-content:space-between;gap:5px;margin-bottom:8px}.victory-prize-heading>span{font-size:9px;font-weight:1000;letter-spacing:1px;color:#f4d8a9}.victory-prize-heading>small{font-size:7px;font-weight:900;color:#b4e7c4}
.victory-coins{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:8px}.victory-coins .star-amount{gap:5px;min-width:88px}.victory-coins .star-coin{width:36px;height:36px}.victory-coins .star-amount strong{font-size:29px;color:#ffe9a5;line-height:1;min-width:50px;text-align:left;font-variant-numeric:tabular-nums}.victory-coins>div{display:flex;flex-direction:column;gap:5px;text-align:left}.victory-coins>div>strong{font-size:12px;color:#fff0cf}.victory-coins>div>small{font-size:8px;color:#d3c5e8;line-height:1.25}
.victory-fragments{display:grid;grid-template-columns:repeat(var(--victory-drops),minmax(0,1fr));gap:5px}.victory-fragment{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;padding:5px 2px;background:linear-gradient(#ad83c54d,#4f3c763d);border:1px solid #c7a6d75e;border-radius:10px;animation:victory-loot .4s calc(.8s + var(--reward-order)*.1s) cubic-bezier(.2,.8,.3,1.3) both}.victory-fragment>.weapon-art{width:34px;height:43px;filter:drop-shadow(0 2px #31244977)}.victory-fragment>strong{font-size:16px;line-height:1;color:#ffe7a4;margin-top:3px}.victory-fragment>small{font-size:6px;line-height:1.2;font-weight:900;color:#e1d2ef;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;margin-top:4px}
.victory-run-gold{display:flex;align-items:center;justify-content:center;gap:5px;margin-top:8px;color:#d8c8e5;font-size:8px}.victory-run-gold .currency{font-size:11px;font-weight:1000;color:#ffe4a4;gap:3px}.victory-run-gold .ui-icon{width:17px;height:17px}
.victory-next-preview.act-unlocked{display:flex;flex-direction:row;gap:8px;align-items:center;min-height:50px;padding:4px 8px;border:1px solid #a6d6cc77;border-radius:12px;background:linear-gradient(110deg,#3b8a8055,#555e9655);text-align:left;animation:victory-rise .5s 1.1s both;flex-shrink:0}.victory-next-preview>img{width:57px;height:48px;object-fit:contain;filter:drop-shadow(0 3px #1e254544)}.victory-next-preview>div{display:flex;flex-direction:column;gap:5px}.victory-next-preview strong{font-size:8px;letter-spacing:.8px;color:#abedc9}.victory-next-preview span{font-size:12px;font-weight:1000;color:#f2e9cd}.victory-finale{display:flex;flex-direction:column;gap:5px;color:#ffde84;padding:8px;flex-shrink:0;animation:victory-rise .5s 1.1s both}.victory-finale strong{font-size:15px}.victory-finale span{font-size:9px;color:#d8c6e8}
.victory-actions{margin-top:auto;display:flex;flex-direction:column;gap:8px;flex-shrink:0;animation:victory-rise .4s 1.2s both}.victory-actions .toy-button{margin:0!important;padding:9px 5px!important;min-height:42px!important;line-height:1.1}.victory-actions .victory-primary{display:flex;align-items:center;justify-content:center;gap:10px;font-size:24px!important;min-height:53px!important;border-radius:16px;box-shadow:inset 0 3px #b3ffc5,inset 0 -4px #178c45,0 4px #19213f80}.victory-primary .game-chevron{width:22px;height:22px}.victory-secondary{display:grid;grid-template-columns:1fr 1.45fr;gap:9px}.victory-secondary .toy-button{font-size:14px!important}.victory-actions>small{font-size:8px;color:#b7bddb;line-height:1.25;min-height:10px}
.victory-confetti{position:absolute;z-index:4;inset:0;pointer-events:none;overflow:hidden}.victory-confetti>i{position:absolute;left:var(--confetti-x);top:-20px;width:6px;height:11px;background:var(--confetti-color);border-radius:1px;animation:victory-confetti var(--confetti-duration) var(--confetti-delay) ease-in both}
@keyframes victory-confetti{0%{opacity:0;transform:translate(-8px,-30px) rotate(0)}8%,75%{opacity:1}100%{opacity:0;transform:translate(35px,102dvh) rotate(var(--confetti-turn))}}
@keyframes victory-title{from{opacity:0;transform:translateY(-30px) scale(.7)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes victory-emblem{from{opacity:0;transform:scale(.7) rotate(-12deg)}to{opacity:1;transform:scale(1) rotate(0)}}
@keyframes victory-hero{from{opacity:0;transform:translateY(35px) scale(.8)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes victory-star{from{opacity:0;transform:scale(0) rotate(-45deg)}to{opacity:1;transform:scale(1) rotate(0)}}
@keyframes victory-rise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@keyframes victory-loot{from{opacity:0;transform:translateY(-18px) scale(.7)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes victory-rays{to{transform:rotate(360deg)}}
@media(max-height:730px){.victory-screen{gap:7px;padding:16px 5% 12px}.victory-portrait{max-height:170px;min-height:90px}.victory-heading .victory-chapter{font-size:7px}#modal .victory-heading h2{font-size:36px;margin:5px 0!important}#modal .victory-heading p{font-size:11px;margin-top:6px}.victory-stats{padding:5px 3px}.victory-stats strong{font-size:16px}.victory-stats small{font-size:6px}.victory-prizes{padding:8px}.victory-fragment>.weapon-art{width:28px;height:35px}.victory-fragment>strong{font-size:13px}.victory-fragment>small{font-size:5px}.victory-coins .star-coin{width:29px;height:29px}.victory-coins .star-amount strong{font-size:25px}.victory-coins>div>strong{font-size:10px}.victory-coins>div>small{font-size:7px}.victory-next-preview.act-unlocked{min-height:43px}.victory-next-preview>img{width:46px;height:36px}.victory-next-preview strong{font-size:7px}.victory-next-preview span{font-size:11px}.victory-actions .victory-primary{min-height:44px!important;font-size:21px!important}.victory-secondary .toy-button{min-height:37px!important;font-size:12px!important}.victory-actions>small{font-size:6px}}
@media(max-height:580px){.victory-screen{gap:6px;padding:12px 5% 10px}.victory-portrait{min-height:72px;max-height:120px}#modal .victory-heading h2{font-size:30px}.victory-prize-heading{margin-bottom:6px}.victory-prize-heading>span{font-size:8px}.victory-coins{margin-bottom:5px}.victory-fragment{padding:4px 1px}.victory-fragment>.weapon-art{height:29px;width:23px}.victory-run-gold{margin-top:5px}.victory-next-preview.act-unlocked{min-height:38px}.victory-next-preview>img{height:31px}.victory-actions{gap:6px}.victory-actions .victory-primary{min-height:39px!important;font-size:18px!important}.victory-secondary .toy-button{min-height:33px!important;font-size:11px!important}}
@media(max-height:480px) and (min-width:540px){#modal.victory-dialog{width:min(96vw,760px);height:96dvh;border-radius:20px}.victory-screen{display:grid;grid-template-columns:1fr 1.4fr;grid-template-rows:auto 1fr auto auto;gap:7px 18px;padding:15px 20px}.victory-heading{grid-column:1}.victory-portrait{grid-column:1;grid-row:2/4;min-height:100px;height:100%;max-height:180px}.victory-stats{grid-column:1;grid-row:4;margin:0}.victory-prizes{grid-column:2;grid-row:1/3;align-self:end}.victory-next-preview.act-unlocked,.victory-finale{grid-column:2;grid-row:3}.victory-actions{grid-column:2;grid-row:4;margin:0}.victory-actions .victory-primary{min-height:35px!important;font-size:17px!important}.victory-secondary .toy-button{min-height:29px!important;padding:5px!important;font-size:11px!important}.victory-actions>small{display:none}.victory-laurel{max-height:160px}.victory-hero{height:90%}.victory-prize-heading{margin-bottom:4px}.victory-fragment>.weapon-art{height:32px}}
@media(prefers-reduced-motion:reduce){.victory-confetti,.victory-rays{display:none}.victory-heading,.victory-laurel,.victory-hero,.victory-star,.victory-stats,.victory-prizes,.victory-fragment,.victory-next-preview,.victory-finale,.victory-actions{animation:none}}
.victory-screen:before{background:url('../assets/mark.svg') 50% 50%/130px 130px;opacity:.025}
.victory-actions button:focus-visible{outline:2px solid #ffe3a0;outline-offset:3px}
