/* Brief, non-blocking celebrations: never loop or obscure the next action. */
.growth-outcome.grown{position:relative;isolation:isolate;overflow:hidden;border:1px solid var(--stat-color);background:linear-gradient(145deg,#f6f6ef,#e1e9e7);box-shadow:inset 0 0 0 2px #fff4,0 3px 12px #243c4720;animation:stat-arrival .65s both}
.growth-outcome.grown strong{display:block;color:var(--stat-color);font-size:28px;text-shadow:0 1px #fff;animation:stat-number .85s cubic-bezier(.2,.7,.2,1) both}
.growth-outcome.grown.is-critical::after{content:'';position:absolute;inset:-70%;z-index:-1;background:linear-gradient(115deg,transparent 40%,#fff6ccaa 49%,transparent 58%);animation:stat-shine 1.3s both;pointer-events:none}
.growth-outcome.grown.is-critical::before{content:'✦';position:absolute;right:8px;top:4px;color:#b4872f;font-size:19px;animation:stat-spark 1.4s both;pointer-events:none}
@keyframes stat-arrival{from{opacity:0;transform:translateY(12px) scale(.96)}to{opacity:1;transform:none}}
@keyframes stat-number{0%{opacity:0;transform:translateY(15px) scale(.7)}60%{opacity:1;transform:translateY(-3px) scale(1.15)}100%{transform:none}}
@keyframes stat-shine{from{transform:translateX(-60%)}to{transform:translateX(60%);opacity:0}}
@keyframes stat-spark{0%{opacity:0;transform:scale(.3) rotate(-30deg)}45%{opacity:1;transform:scale(1.3) rotate(15deg)}100%{opacity:.65;transform:scale(1)}}
.capture-celebration{position:relative;isolation:isolate;overflow:hidden;text-align:center;padding:24px 16px;margin:18px 0;border:2px solid #c9a354;border-radius:12px;background:radial-gradient(ellipse at 50% 0,#947438,#233a30 70%);color:#ffebaf;box-shadow:inset 0 0 0 5px #e0bc5125,0 8px 22px #3b2d1d30;animation:stat-arrival .8s both}
.capture-celebration .capture-seal{display:block;margin:0 auto 10px;width:55px;height:55px;border:3px double #ecc879;font:700 35px/48px var(--serif);background:#823d2c;transform:rotate(-5deg);animation:stat-number .8s both}
.capture-kicker{font-size:11px;letter-spacing:3px}.capture-celebration h3{color:#ffe7a4!important;font:700 22px/1.5 var(--serif);margin:8px 0 15px}
.capture-celebration p{color:#e9d7b2!important;font-size:12px!important;margin:12px 0 0!important}
.capture-rays{position:absolute;inset:-150%;z-index:-1;background:repeating-conic-gradient(from 0deg,#f5d97915 0deg 10deg,transparent 10deg 30deg);animation:capture-rays 2s ease-out both;pointer-events:none}
@keyframes capture-rays{from{opacity:0;transform:rotate(-15deg) scale(.7)}to{opacity:1;transform:none}}
.capture-cities{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}.capture-cities>span{display:flex;align-items:center;gap:8px;border:1px solid #ccac69;background:#f9e6b6;color:#4b3a23;padding:10px 15px;border-radius:7px;font-weight:800;animation:stat-arrival .7s both;animation-delay:calc(var(--i)*.15s + .2s)}.capture-cities b{color:var(--faction-accent,#863f2c);font-size:24px}.capture-cities small{font-weight:400}
.expedition-match{display:block;padding:12px;margin:12px 0;border:1px solid #b99a5c;border-radius:8px;background:#f0e5ce}.expedition-match>small{display:block;margin-top:8px;font-size:11px;line-height:1.7}.expedition-sides{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:center;margin-top:10px}.expedition-person{display:flex;gap:8px;align-items:center;margin:6px 0}.expedition-person small,.expedition-person b{display:block}.expedition-person small{font-size:10px}.expedition-versus{font:700 22px var(--serif);color:var(--red)}
@media(max-width:480px){.expedition-sides{grid-template-columns:1fr}.expedition-versus{text-align:center;font-size:16px}.capture-celebration h3{font-size:19px}}
@media(prefers-reduced-motion:reduce){.growth-outcome.grown,.growth-outcome.grown strong,.growth-outcome.grown::before,.growth-outcome.grown::after,.capture-celebration,.capture-seal,.capture-rays,.capture-cities>span{animation:none!important}.growth-outcome.grown::after{display:none}}
/* Start only when the result enters view, including below-fold growth cards. */
.growth-outcome.grown.effect-pending,.growth-outcome.grown.effect-pending strong,.growth-outcome.grown.effect-pending::before,.growth-outcome.grown.effect-pending::after,.capture-celebration.effect-pending,.capture-celebration.effect-pending .capture-seal,.capture-celebration.effect-pending .capture-rays,.capture-celebration.effect-pending .capture-cities>span{animation-play-state:paused}
.expedition-player-face{width:44px;height:44px;object-fit:cover;border:2px solid #b89656;border-radius:7px;flex:none}

.duo-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.duo-candidate{border:1px solid #b4914d;background:linear-gradient(135deg,#30291e,#171b20);border-radius:12px;padding:16px;color:#f5ebd5;display:flex;flex-direction:column;gap:9px}.duo-candidate h3,.duo-candidate p{margin:0}.duo-candidate small,.duo-picker-guide{line-height:1.7}.duo-candidate .primary{margin-top:auto;width:100%;white-space:normal}.duo-stat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.duo-stat-grid span{padding:6px 8px;background:#ffffff0c;border-radius:5px}.duo-stat-grid b{float:right;color:#ffe2a0}.duo-final-chance{color:#ffe2a0}.duo-picker-guide{margin:12px 0 16px}@media(max-width:540px){.duo-picker{grid-template-columns:1fr}}

.growth-outcome.grown.is-critical{border-color:#d2ab54;background:radial-gradient(ellipse at top,#fff0b1,#e9d9ae);box-shadow:inset 0 0 0 2px #fff4,0 3px 16px #a77c3750}
.growth-critical-label{font:700 10px/1.4 var(--sans);color:#80520d;border:1px solid #c29c45;border-radius:4px;padding:2px 4px;display:inline-block}
.growth-stat-values{display:flex;justify-content:space-between;gap:5px;align-items:center;font-size:11px;color:#42545b;margin:7px 0 5px;font-variant-numeric:tabular-nums}.growth-stat-values b{font-size:12px}
.growth-stat-track{position:relative;isolation:isolate;height:14px;border-radius:6px;background:#253a4624;box-shadow:inset 0 1px 3px #10243230;margin:0 0 10px;overflow:hidden}
.growth-stat-track i{display:block;position:absolute;height:100%;left:0;top:0;border-radius:5px}.growth-stat-base{background:var(--stat-color);opacity:.4}.growth-stat-fill{width:var(--stat-after);background:linear-gradient(0deg,var(--stat-color),#ffffff66),var(--stat-color)}
.grown .growth-stat-fill{animation:stat-bar-rise 1.5s cubic-bezier(.16,.8,.24,1) both;box-shadow:1px 0 9px var(--stat-color)}
.growth-stat-track .growth-stat-gain{left:var(--stat-before);width:var(--stat-gain);background:repeating-linear-gradient(115deg,#fff8 0 2px,transparent 2px 5px);transform-origin:left;animation:stat-gain-rise 1.5s cubic-bezier(.16,.8,.24,1) both}
.grown .growth-stat-fill::after{content:'';position:absolute;right:0;top:0;width:3px;height:100%;background:#fff;box-shadow:0 0 8px 3px var(--stat-color);animation:stat-bar-tip 1.8s both}
@keyframes stat-bar-rise{from{width:var(--stat-before)}to{width:var(--stat-after)}}
@keyframes stat-gain-rise{from{transform:scaleX(0);opacity:0}to{transform:scaleX(1);opacity:.8}}
@keyframes stat-bar-tip{0%{opacity:0}20%,75%{opacity:1}100%{opacity:0}}
.growth-outcome.effect-pending .growth-stat-fill,.growth-outcome.effect-pending .growth-stat-fill::after,.growth-outcome.effect-pending .growth-stat-gain{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.growth-stat-fill,.growth-stat-fill::after,.growth-stat-gain{animation:none!important}.growth-stat-fill::after{display:none}}
.duo-unique-skill{display:block;border:1px solid #b99a5c88;border-left:3px solid #dab56b;padding:10px 12px;background:#bb924615;border-radius:6px;font-size:12px;line-height:1.8;overflow-wrap:anywhere}.duo-unique-skill>b,.duo-unique-skill>span,.duo-unique-skill>small{display:block}.duo-unique-skill>b{color:inherit;font-size:14px}.duo-unique-skill details{margin-top:5px}.duo-unique-skill summary{cursor:pointer}.duo-unique-skill a{color:inherit;text-decoration:underline}.duo-unique-skill details small{display:block}.duo-candidate .duo-unique-skill{color:#efe4ce}.duo-candidate .duo-unique-skill>b{color:#f8d98f}
/* Victory standards unfurl once, then settle. No blocking overlay or repeating flash. */
.capture-celebration{background:radial-gradient(ellipse at 50% 15%,var(--victory-accent,#386044),#121a21 76%);padding:28px 16px 22px;border-color:#bd9653;min-height:330px}
.capture-celebration.capture-grand{border:3px double #f4ce74;box-shadow:inset 0 0 55px #e7ad3e25,0 7px 30px #0005}
.capture-banner-stage{position:relative;height:148px;max-width:330px;margin:0 auto 15px;perspective:600px}
.capture-warflag{display:block;position:absolute;top:0;left:50%;width:88px;height:142px;margin-left:-44px;filter:drop-shadow(0 9px 8px #0008);transform-origin:top center;animation:victory-unfurl 1.2s cubic-bezier(.17,.85,.25,1) both}
.capture-warflag>span{position:absolute;inset:5px 0 0;display:flex;align-items:center;justify-content:center;padding-bottom:15px;background:linear-gradient(95deg,#0005,transparent 24%,#fff2 48%,#0004 74%,transparent),var(--victory-color,#386044);clip-path:polygon(0 0,100% 0,100% 100%,50% 87%,0 100%);color:#ffe8aa;font:800 38px/1.1 var(--serif);letter-spacing:0;border-top:4px solid #e5c379;text-shadow:0 2px 3px #000;box-shadow:inset 0 0 0 4px #e4bd6999;white-space:nowrap}
.capture-warflag>i{position:absolute;top:0;left:-6px;right:-6px;height:5px;background:linear-gradient(#f6dfa3,#a77635);border-radius:5px}
.capture-standard{z-index:2}.capture-flank{width:65px;height:112px;margin-left:-32px;opacity:.7;animation-delay:.15s}.capture-left{left:22%;top:18px;rotate:-13deg}.capture-right{left:78%;top:18px;rotate:13deg}.capture-flank>span{font-size:27px}
.capture-celebration .capture-seal{position:absolute;right:17px;top:20px;width:42px;height:42px;font-size:27px;line-height:35px;animation-delay:.8s}
.capture-celebration h3{animation:victory-title .85s .55s both}.capture-celebration .capture-cities>span{animation-delay:calc(var(--i)*.3s + .9s);background:linear-gradient(125deg,#fff1c7,#dec188);border:1px solid #ffe9a2;box-shadow:0 3px 12px #0005}.capture-celebration .capture-cities b{color:var(--victory-color);font:800 19px var(--serif)}
.capture-victory-ring{position:absolute;left:50%;top:95px;width:240px;height:240px;margin:-100px 0 0 -120px;border:2px solid #eac47488;border-radius:50%;pointer-events:none;animation:victory-ring 1.5s .1s both;z-index:-1}
.capture-embers{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:-1}.capture-embers i{position:absolute;left:calc(5% + var(--spark)*8%);top:60%;width:3px;height:15px;background:#f6d17c;box-shadow:0 0 8px #ffca55;rotate:calc(var(--spark)*11deg - 60deg);animation:victory-ember 1.8s calc(var(--spark)*.045s) both}
.capture-grand .capture-embers i{height:22px;width:4px}.capture-grand .capture-standard{width:100px;margin-left:-50px;height:148px}
@keyframes victory-unfurl{0%{opacity:0;transform:translateY(-35px) rotateX(-70deg) scaleY(.2)}65%{opacity:1;transform:translateY(3px) rotateY(-9deg) scaleY(1.04)}100%{transform:none}}
@keyframes victory-title{from{opacity:0;transform:translateY(12px);letter-spacing:6px}to{opacity:1;transform:none;letter-spacing:0}}
@keyframes victory-ring{0%{opacity:0;transform:scale(.2)}30%{opacity:.8}100%{opacity:0;transform:scale(1.7)}}
@keyframes victory-ember{0%{opacity:0;transform:translateY(35px) scale(.3)}30%{opacity:1}100%{opacity:0;transform:translateY(-180px) scale(.5)}}
.capture-celebration.effect-pending *{animation-play-state:paused!important}
@media(max-width:480px){.capture-celebration{padding:22px 12px;min-height:310px}.capture-banner-stage{max-width:260px}.capture-celebration h3{font-size:20px}.capture-celebration .capture-seal{right:10px;top:12px;width:32px;height:32px;font-size:22px;line-height:26px}.capture-cities>span{padding:8px 10px;font-size:14px}}
@media(prefers-reduced-motion:reduce){.capture-celebration *{animation:none!important}.capture-embers,.capture-victory-ring{display:none}.capture-celebration h3{opacity:1;transform:none}}
/* Defense selection stays compact without changing the expedition companion cards. */
.defense-picker .expedition-person{display:flex;align-items:center;gap:12px}
.defense-picker .historical-face{flex-shrink:0}
.defense-picker .duo-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.defense-picker .duo-stat-grid span{white-space:nowrap;display:flex;align-items:center;justify-content:space-between;gap:4px;min-width:0}
@media(max-width:540px){
 .defense-picker{gap:10px}
 .defense-picker .duo-candidate{padding:12px;gap:7px}
 .defense-picker .historical-face.is-small{width:48px;height:60px}
 .defense-picker .duo-stat-grid{gap:5px;font-size:13px}
 .defense-picker .duo-stat-grid span{padding:5px 7px}
 .defense-picker .duo-candidate p{font-size:13px;line-height:1.35}
 .defense-picker .duo-candidate .primary{min-height:42px;padding:9px 12px}
}
