/* Neo Campus RPG · post-duel victory splash and character-presented boosters. */
.victory-dialog{
 width:min(1040px,96vw);max-width:1040px;max-height:min(94vh,960px);
 padding:0;overflow:hidden;background:#101727;color:#fff;
 border:1px solid #e6a9cc;border-top:6px solid #f9d38e;border-radius:9px;
 box-shadow:0 30px 120px #000e
}
.victory-dialog::backdrop{background:#040716e8;backdrop-filter:blur(8px)}
.victory-stage{position:relative;isolation:isolate;min-height:320px;overflow:hidden;
 display:grid;grid-template-columns:minmax(0,1fr) minmax(200px,39%);align-items:center;
 background:linear-gradient(122deg,#7a315b 0%,#372343 46%,#14192d 90%)}
.victory-stage::before{
 content:"";position:absolute;inset:-15%;z-index:-1;pointer-events:none;
 background:repeating-linear-gradient(153deg,transparent 0 42px,#ffffff13 44px 47px,transparent 49px 87px);
 animation:victory-stripes .72s cubic-bezier(.2,.7,.18,1) both
}
.victory-copy{padding:clamp(20px,5vw,57px);position:relative;z-index:2;min-width:0}
.victory-overline{display:block;font:900 clamp(11px,1.5vw,16px) 'Barlow Condensed',sans-serif;
 letter-spacing:.25em;color:#fff0ce}
.victory-title{
 display:block;max-width:100%;overflow-wrap:anywhere;text-transform:uppercase;
 font:900 clamp(65px,10vw,146px)/.86 'Barlow Condensed',sans-serif;
 letter-spacing:-.03em;color:#fff;
 transform:skewX(-6deg);text-shadow:6px 7px 0 #210f3388;
 animation:victory-title-in .36s cubic-bezier(.18,.8,.33,1) both
}
.victory-subtitle{display:block;margin-top:23px;font:900 clamp(13px,1.8vw,21px) 'Barlow Condensed',sans-serif;letter-spacing:.09em;color:#ffdbb8}
.victory-opponent{display:inline-block;margin-top:18px;padding:5px 13px;border-left:4px solid #f7bfcf;
 background:#191a34a8;font:800 clamp(13px,1.7vw,22px) 'Barlow Condensed',sans-serif;letter-spacing:.06em}
.victory-portrait{height:360px;max-height:45vh;overflow:hidden;
 display:flex;align-items:flex-end;justify-content:center;align-self:end;pointer-events:none}
.victory-portrait img{width:100%;height:100%;max-width:none;object-fit:contain;object-position:center bottom;
 filter:drop-shadow(3px 16px 14px #080c20cf);animation:victory-portrait-in .48s ease-out both}
.victory-portrait .avatar-fallback{font-size:90px;background:transparent}
.victory-footer{padding:18px clamp(18px,4vw,43px) 23px;display:flex;align-items:center;justify-content:space-between;
 flex-wrap:wrap;gap:18px;background:linear-gradient(100deg,#111727,#1f2436)}
.victory-stats{display:flex;flex:1;gap:clamp(9px,3vw,35px);flex-wrap:wrap}
.victory-metric{min-width:105px;display:flex;flex-direction:column;gap:3px}
.victory-metric strong{font:900 clamp(23px,3vw,40px)/1 'Barlow Condensed',sans-serif;color:#ffdbab}
.victory-metric small{font:800 11px 'Barlow Condensed',sans-serif;color:#b9bed1;letter-spacing:.12em}
.victory-continue{
 border:1px solid #ffce97!important;background:linear-gradient(105deg,#b54c79,#eb799b)!important;
 color:#fff!important;font:900 clamp(14px,1.7vw,20px) 'Barlow Condensed',sans-serif!important;
 letter-spacing:.08em;min-height:51px;min-width:185px;clip-path:polygon(0 0,95% 0,100% 24%,100% 100%,0 100%);
 transition:transform .15s ease,filter .15s ease!important
}
.victory-continue:hover,.victory-continue:focus-visible{filter:brightness(1.17);transform:translateX(4px)}
.victory-dialog[data-outcome="defeat"]{border-top-color:#879fcf}
.victory-dialog[data-outcome="defeat"] .victory-stage{background:linear-gradient(125deg,#4c4d6a,#272a43,#0e172b)}
.victory-dialog[data-outcome="defeat"] .victory-title{font-size:clamp(52px,8vw,118px)}
.victory-dialog[data-outcome="draw"]{border-top-color:#d3bfd1}
.victory-dialog[data-outcome="draw"] .victory-stage{background:linear-gradient(125deg,#55436f,#30304c,#111b2d)}
.victory-dialog[data-outcome="draw"] .victory-title{font-size:clamp(56px,8vw,124px)}
/* A character, not a generic rectangle, gives the player their booster. */
.pack-reveal-dialog{border-radius:9px;border-top:5px solid #f1c58c;box-shadow:0 30px 105px #000d;
 background:radial-gradient(ellipse at 72% 1%,#823e65 0%,#26243f 40%,#101728 80%);
}
.pack-reveal-header{position:relative;overflow:hidden;padding:10px 13px 12px;border-left:6px solid #e58bb2;
 background:linear-gradient(105deg,#69294c,#392243a8,transparent)}
.pack-reveal-header h2{font:900 clamp(33px,4.5vw,58px)/.93 'Barlow Condensed',sans-serif;text-transform:uppercase;
 letter-spacing:.02em;margin:3px 0 4px;transform:skewX(-5deg)}
.pack-reveal-header small{font:900 12px 'Barlow Condensed',sans-serif;color:#ffd3aa;letter-spacing:.18em}
.pack-reveal-header p{margin:6px 0;color:#e8d9e6}
.pack-giver{position:relative;margin:11px 0 5px;display:flex;flex-direction:row;
 justify-content:center;align-items:center;gap:18px}
.pack-giver-image{width:min(275px,40%);height:180px;flex:none;overflow:hidden;
 background:radial-gradient(ellipse at center,#935578,#211a35 70%);
 border-radius:4px;
 animation:pack-giver-arrive .32s ease-out both
}
.pack-giver-image img.pack-giver-art{object-fit:cover;object-position:center center}
.pack-reveal-cards{perspective:900px;margin-top:13px}
.pack-card{position:relative;min-height:190px;border-radius:6px;
 transform-origin:center bottom;border-color:#bc76ad;background:linear-gradient(145deg,#783866,#22213b);
 transition:transform .16s ease,border-color .16s ease,filter .16s ease;
 animation:pack-card-deal .32s ease-out backwards;animation-delay:calc(var(--card-position,0)*45ms)
}
.pack-card:hover:not(:disabled),.pack-card:focus-visible{transform:translateY(-8px) rotate(-1deg);filter:brightness(1.12);
 border-color:#ffcae4}
.pack-card.revealed{animation:pack-card-flip .34s ease-out both;background:#293248;border-color:#f1c38c}
.pack-card .pack-card-number{color:#ffd9a9}
.pack-reveal-actions{display:flex;align-items:center;justify-content:flex-end;gap:11px;flex-wrap:wrap}
.pack-reveal-actions button{font:900 15px 'Barlow Condensed',sans-serif;text-transform:uppercase}
.pack-reveal-actions #packContinue{background:#b14d7a;border-color:#ffc6d8}
@keyframes victory-stripes{from{translate:-33% 0;opacity:.25}to{translate:0 0;opacity:1}}
@keyframes victory-title-in{from{opacity:0;translate:-28px 0;scale:.9}to{opacity:1;translate:0 0;scale:1}}
@keyframes victory-portrait-in{from{opacity:0;translate:45px 25px}to{opacity:1;translate:0 0}}
@keyframes pack-giver-arrive{from{opacity:.35;translate:-35px 0}to{opacity:1;translate:0 0}}
@keyframes pack-card-deal{from{opacity:.25;translate:0 30px;rotate:6deg}to{opacity:1;translate:0 0;rotate:0deg}}
@keyframes pack-card-flip{0%{transform:rotateY(85deg) scale(.93)}65%{transform:rotateY(-8deg) scale(1.02)}100%{transform:rotateY(0) scale(1)}}
@media(max-width:650px){
 .victory-stage{min-height:240px;grid-template-columns:1fr 38%}
 .victory-copy{padding:20px 7px 22px 18px}
 .victory-title{font-size:clamp(41px,11vw,70px);line-height:.98}
 .victory-subtitle{font-size:12px;margin-top:13px}
 .victory-opponent{font-size:13px;margin-top:10px}
 .victory-portrait{height:240px;max-height:36vh}
 .victory-footer{padding:14px 16px}
 .victory-stats{gap:14px}.victory-metric{min-width:74px}.victory-metric strong{font-size:25px}
 .victory-continue{width:100%;min-height:48px}
 .pack-giver{gap:10px}.pack-giver-image{height:112px;width:35%}
 .pack-card{min-height:155px}
}
@media(prefers-reduced-motion:reduce){
 .victory-stage::before,.victory-title,.victory-portrait img,.pack-giver-image,.pack-card,.pack-card.revealed{
  animation:none!important;transition:none!important
 }
}


/* Result-screen composition v2: present dedicated CGs without cropping them
   into the same narrow box used for ordinary character busts. */
.victory-dialog{
 width:min(960px,calc(100vw - 30px));max-width:960px;
 border-top-width:4px;border-radius:16px;
}
.victory-stage{
 min-height:390px;
 grid-template-columns:minmax(0,1fr) minmax(0,48%);
 align-items:stretch;
 background:radial-gradient(ellipse at 78% 43%,#4f365f 0%,transparent 48%),
            linear-gradient(115deg,#33324f 0%,#242842 54%,#171b30 100%);
}
.victory-stage::before{
 opacity:.4;
 background:repeating-linear-gradient(153deg,transparent 0 67px,#ffffff11 68px 71px,transparent 72px 130px);
}
.victory-copy{
 display:flex;flex-direction:column;align-items:flex-start;justify-content:center;
 padding:32px 8px 32px clamp(25px,4vw,54px);
}
.victory-title{
 font-size:clamp(60px,8vw,108px);
 line-height:.89;letter-spacing:-.018em;overflow-wrap:normal;
 text-wrap:balance;
}
.victory-dialog[data-outcome="defeat"] .victory-title,
.victory-dialog[data-outcome="draw"] .victory-title{
 font-size:clamp(54px,7vw,94px);
}
.victory-subtitle{margin-top:22px;line-height:1.12}
.victory-portrait{
 position:relative;align-self:stretch;
 min-width:0;height:auto;max-height:none;
 padding:16px 17px 0 5px;
 background:radial-gradient(ellipse at 52% 70%,#ad68b447,transparent 67%);
}
.victory-portrait::before{
 content:"";position:absolute;inset:10% 4% 0 0;pointer-events:none;
 background:linear-gradient(90deg,transparent,#ffffff08 60%,transparent);
 border-radius:50%;
}
.victory-portrait img.victory-result-art{
 position:relative;width:100%;height:100%;
 object-fit:contain;object-position:center bottom;
 filter:drop-shadow(0 14px 19px #080c20a3);
}
.victory-footer{
 padding:18px clamp(22px,4vw,42px);
 border-top:1px solid #f8d9ff22;
}
.victory-metric{min-width:93px}
.victory-metric strong{font-size:clamp(26px,3vw,36px)}
@media(max-width:650px){
 .victory-dialog{width:calc(100vw - 20px);max-height:calc(100dvh - 24px);overflow:auto}
 .victory-stage{grid-template-columns:1fr;min-height:0}
 .victory-copy{padding:27px 23px 10px}
 .victory-overline{font-size:11px}
 .victory-title{font-size:clamp(49px,12vw,77px)}
 .victory-dialog[data-outcome="defeat"] .victory-title,
 .victory-dialog[data-outcome="draw"] .victory-title{font-size:clamp(45px,10.5vw,70px)}
 .victory-subtitle{margin-top:16px}
 .victory-opponent{margin-top:12px}
 .victory-portrait{
  height:clamp(145px,33dvh,265px);max-height:none;
  padding:0 12px;align-self:auto;
 }
 .victory-portrait img.victory-result-art{object-position:center bottom}
 .victory-footer{padding:15px 20px}
 .victory-stats{width:100%;justify-content:space-between;gap:8px}
 .victory-metric{min-width:0;flex:1}
 .victory-metric small{font-size:10px}
}
