/* Victory cinematics: letterboxed set pieces staged over the live battlefield. */
#battle.cinematic>*:not(#world):not(#victory-stage){visibility:hidden}
body.victory-active #battle-connection,body.victory-active .battle-connection,body.victory-active #toasts,body.victory-active .toast{visibility:hidden}
#victory-stage{position:absolute;inset:0;z-index:40;overflow:hidden;cursor:pointer;color:#f1ead5;font-family:Arial,Helvetica,sans-serif;--vc-accent:#e7b66a;--vc-ink:#f3ead0;user-select:none;-webkit-user-select:none;isolation:isolate}
#victory-stage.fading{animation:vc-fade-out .45s ease both}
#victory-stage>*{position:absolute}
.vc-grade{inset:0;pointer-events:none;mix-blend-mode:soft-light;background:linear-gradient(180deg,#f0b46a66,transparent 45%,#1a1308aa);opacity:0;transition:opacity 1.2s ease}
#victory-stage.lit .vc-grade{opacity:1}
.vc-vignette{inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 55%,transparent 36%,#00000055 72%,#000000a8 100%)}
.vc-bars{inset:0;pointer-events:none;z-index:3}
.vc-bars:before,.vc-bars:after{content:'';position:absolute;left:0;right:0;height:0;background:#06090a;transition:height .7s cubic-bezier(.2,.9,.3,1);z-index:3}
.vc-bars:before{top:0}.vc-bars:after{bottom:0}
#victory-stage.boxed .vc-bars:before,#victory-stage.boxed .vc-bars:after{height:9vh}
.vc-fx{inset:0;pointer-events:none;z-index:2}
.vc-flash{inset:0;background:#fff8e6;opacity:0;pointer-events:none;z-index:4}
.vc-flash.pop{animation:vc-flash .55s ease-out both}
.vc-titles{left:max(6vw,24px);right:max(6vw,24px);bottom:calc(9vh + 5vh);z-index:5;pointer-events:none}
.vc-kicker{font:12px/1.5 'Courier New',monospace;letter-spacing:4px;color:var(--vc-accent);text-transform:uppercase;min-height:18px;white-space:pre-wrap;text-shadow:0 2px 14px #000c}
.vc-kicker:after{content:'▌';animation:vc-caret 1s steps(2) infinite;opacity:.8}
.vc-kicker.done:after{content:''}
.vc-title{font:700 clamp(68px,16vw,196px)/.88 BarlowCondensed,Impact,'Arial Narrow',sans-serif;letter-spacing:.02em;color:var(--vc-ink);text-shadow:0 12px 50px #000c,0 2px 0 #00000055;margin:10px 0 0;opacity:0;transform-origin:left bottom}
.vc-title.in{animation:vc-slam .6s cubic-bezier(.16,1,.3,1) both}
.vc-sub{font:700 clamp(15px,2.6vw,30px)/1.2 BarlowCondensed,Impact,'Arial Narrow',sans-serif;letter-spacing:.32em;color:var(--vc-accent);margin-top:10px;clip-path:inset(0 100% 0 0);text-shadow:0 2px 14px #000c}
.vc-sub.in{animation:vc-wipe .9s cubic-bezier(.2,.9,.3,1) both}
.vc-skip{top:calc(9vh + 16px);right:max(6vw,24px);z-index:6;font:11px 'Courier New',monospace;letter-spacing:3px;color:#d8dccd;background:#0c1416b3;border:1px solid #e7b66a55;padding:9px 16px;backdrop-filter:blur(4px);opacity:0;animation:vc-appear .6s 1.4s ease both}
.vc-skip:hover{background:#1d2a2e}
.vc-skip kbd{font:inherit;color:var(--vc-accent);margin-left:8px}
/* Newspaper front page */
.vc-paper{left:50%;top:50%;width:min(760px,92vw);min-height:min(600px,78vh);padding:clamp(16px,3vw,34px) clamp(16px,3.4vw,38px);color:#1f1a14;background:
 radial-gradient(ellipse at 10% 0%,#d9c89f55,transparent 40%),radial-gradient(ellipse at 90% 100%,#c9b48a66,transparent 45%),repeating-linear-gradient(0deg,#0000 0 3px,#8b7a5a08 3px 4px),#efe5cb;
 box-shadow:0 40px 90px #000c,0 4px 0 #b9a77f inset;transform:translate(-50%,-50%) rotate(-2.5deg) scale(var(--vc-fit,1));z-index:5;font-family:Georgia,'Times New Roman',serif;opacity:0}
.vc-paper.in{animation:vc-spin 1.15s cubic-bezier(.2,.9,.32,1) both}
.vc-paper:before{content:'';position:absolute;inset:0;background:repeating-radial-gradient(circle at 30% 20%,#0000 0 2px,#5c4a2a06 2px 3px);pointer-events:none}
.vc-ears{display:flex;justify-content:space-between;font:italic 10px/1.3 Georgia,serif;letter-spacing:1px;color:#5b4d36;border-bottom:1px solid #2a221a;padding-bottom:4px}
.vc-masthead{font:700 clamp(30px,6.2vw,58px)/1 'Old English Text MT','Times New Roman',Georgia,serif;text-align:center;letter-spacing:.02em;padding:10px 0 6px;border-bottom:3px double #2a221a}
.vc-dateline{display:flex;justify-content:space-between;font:10px/1.4 Georgia,serif;letter-spacing:1.5px;text-transform:uppercase;color:#4a3f30;padding:5px 0;border-bottom:1px solid #2a221a;margin-bottom:12px}
.vc-headline{font:700 clamp(28px,6vw,62px)/.94 BarlowCondensed,Impact,'Arial Narrow',sans-serif;letter-spacing:.01em;text-transform:uppercase;color:#17120d;margin:0 0 8px}
.vc-deck{font:italic clamp(12px,1.6vw,16px)/1.35 Georgia,serif;color:#2c2419;margin:0 0 12px;border-bottom:1px solid #2a221a66;padding-bottom:10px}
.vc-body{display:grid;grid-template-columns:1.15fr .85fr;gap:16px}
.vc-columns{columns:2;column-gap:14px;column-rule:1px solid #2a221a33;font:clamp(10px,1.1vw,12px)/1.45 Georgia,serif;text-align:justify;hyphens:auto;color:#2a2219}
.vc-columns p{margin:0 0 7px}
.vc-columns p:first-of-type:first-letter{font:700 2.6em/.8 BarlowCondensed,Impact,sans-serif;float:left;margin:3px 5px 0 0;color:#17120d}
.vc-columns h4{font:700 13px/1.1 BarlowCondensed,Impact,sans-serif;text-transform:uppercase;letter-spacing:.04em;margin:6px 0 4px;break-after:avoid}
.vc-photo{position:relative;border:1px solid #2a221a;background:#9a8d74;aspect-ratio:4/3;overflow:hidden}
.vc-photo img{display:block;width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.35) brightness(.95) sepia(.35)}
.vc-photo:after{content:'';position:absolute;inset:0;background:radial-gradient(circle,#000 28%,transparent 32%) 0 0/3px 3px;mix-blend-mode:overlay;opacity:.6;pointer-events:none}
.vc-caption{font:italic 10px/1.35 Georgia,serif;color:#3b3023;margin:5px 0 10px}
.vc-numbers{border:2px solid #17120d;padding:7px 9px;font:10px/1.5 'Courier New',monospace;letter-spacing:1px;text-transform:uppercase;color:#17120d;background:#e4d8ba}
.vc-numbers strong{display:block;font:700 13px/1.2 BarlowCondensed,Impact,sans-serif;letter-spacing:.08em;border-bottom:1px solid #17120d;margin-bottom:4px}
.vc-numbers span{display:flex;justify-content:space-between}
.vc-stamp{position:absolute;right:6%;top:30%;font:700 clamp(44px,9vw,96px)/1 BarlowCondensed,Impact,sans-serif;letter-spacing:.12em;color:#b8322c;border:5px double #b8322c;padding:4px 18px 2px;transform:rotate(-14deg) scale(3);opacity:0;mix-blend-mode:multiply;
 mask-image:radial-gradient(circle at 30% 40%,#000 55%,#0009 70%,#000 85%),repeating-radial-gradient(circle at 70% 70%,#000 0 2px,#000a 2px 3px);-webkit-mask-image:radial-gradient(circle at 30% 40%,#000 55%,#0009 70%,#000 85%);z-index:2}
.vc-stamp.in{animation:vc-stamp .38s cubic-bezier(.2,1.5,.5,1) both}
.vc-paper-sub{left:0;right:0;bottom:calc(9vh + 1.5vh);text-align:center;z-index:6;pointer-events:none}
.vc-paper-sub .vc-sub{font-size:clamp(13px,2.1vw,24px)}
/* Field honours medal */
.vc-medal{left:50%;top:0;transform-origin:50% 0;transform:translate(-50%,-110%);z-index:5;display:flex;flex-direction:column;align-items:center;filter:drop-shadow(0 30px 40px #000a)}
.vc-medal.in{animation:vc-swing 3.2s cubic-bezier(.2,.9,.3,1) both}
.vc-ribbon{width:clamp(44px,6vw,64px);height:clamp(120px,24vh,230px);background:linear-gradient(90deg,var(--c1) 0 34%,var(--c2) 34% 67%,var(--c3) 67%);clip-path:polygon(0 0,100% 0,100% 100%,50% 88%,0 100%);box-shadow:inset 0 0 0 1px #0004}
.vc-disc{width:clamp(120px,17vw,180px);aspect-ratio:1;border-radius:50%;margin-top:-10px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#4a3410;
 background:radial-gradient(circle at 35% 30%,#ffe9a8,#d9a53b 45%,#8f6412 72%,#c99a3d 76%,#5e3f0b);box-shadow:0 0 0 4px #d6ad4e,0 0 0 6px #6a4a10,0 18px 40px #0008;border:3px solid #f1d27a}
.vc-disc small{font:10px/1.2 'Courier New',monospace;letter-spacing:2px;text-transform:uppercase;opacity:.9}
.vc-disc strong{font:700 clamp(16px,2.4vw,24px)/1 BarlowCondensed,Impact,sans-serif;letter-spacing:.08em;margin:6px 0;text-transform:uppercase;max-width:86%;text-shadow:0 1px 0 #ffe9a8}
.vc-disc b{font:700 clamp(14px,2vw,20px)/1 'Courier New',monospace}
.vc-disc:before{content:'';position:absolute;inset:14%;border-radius:50%;border:1px solid #6a4a1088}
/* Keyframes */
@keyframes vc-slam{0%{opacity:0;transform:scale(1.9) rotate(-5deg)}55%{opacity:1}100%{opacity:1;transform:none}}
@keyframes vc-wipe{to{clip-path:inset(0 0 0 0)}}
@keyframes vc-caret{to{opacity:0}}
@keyframes vc-appear{to{opacity:1}}
@keyframes vc-flash{0%{opacity:1}100%{opacity:0}}
@keyframes vc-spin{0%{opacity:0;transform:translate(-50%,-50%) rotate(-1440deg) scale(.04)}60%{opacity:1}100%{opacity:1;transform:translate(-50%,-50%) rotate(-2.5deg) scale(var(--vc-fit,1))}}
@keyframes vc-stamp{0%{opacity:0;transform:rotate(-14deg) scale(3)}100%{opacity:.92;transform:rotate(-14deg) scale(1)}}
@keyframes vc-swing{0%{transform:translate(-50%,-110%) rotate(0)}30%{transform:translate(-50%,0) rotate(7deg)}50%{transform:translate(-50%,0) rotate(-5deg)}70%{transform:translate(-50%,0) rotate(3deg)}85%{transform:translate(-50%,0) rotate(-1.5deg)}100%{transform:translate(-50%,0) rotate(0)}}
@keyframes vc-fade-out{to{opacity:0}}
@media (max-width:700px){
 #victory-stage.boxed .vc-bars:before,#victory-stage.boxed .vc-bars:after{height:6vh}
 .vc-titles{bottom:calc(6vh + 4vh)}
 .vc-kicker{font-size:10px;letter-spacing:2.5px}
 .vc-skip{top:calc(6vh + 10px);right:12px;padding:8px 12px}
 .vc-body{grid-template-columns:1fr}
 .vc-columns{columns:1}
 .vc-paper{min-height:0}
 .vc-medal{left:auto;right:12px;transform:translate(0,-110%)}
 .vc-medal.in{animation-name:vc-swing-right}
 .vc-paper-sub{bottom:calc(6vh + 2vh)}
}
@keyframes vc-swing-right{0%{transform:translate(0,-110%) rotate(0)}30%{transform:translate(0,0) rotate(7deg)}50%{transform:translate(0,0) rotate(-5deg)}70%{transform:translate(0,0) rotate(3deg)}85%{transform:translate(0,0) rotate(-1.5deg)}100%{transform:translate(0,0) rotate(0)}}
#result #victory-replay{display:block;margin:13px auto 0}
/* Preserve the designer's type against the game's global font override. */
.vc-paper,.vc-paper *{font-family:Georgia,'Times New Roman',serif!important}
.vc-masthead{font-family:'Old English Text MT','Times New Roman',Georgia,serif!important}
.vc-title,.vc-sub,.vc-headline,.vc-columns h4,.vc-stamp,.vc-numbers strong,.vc-disc strong{font-family:BarlowCondensed,Impact,'Arial Narrow',sans-serif!important}
.vc-kicker,.vc-skip,.vc-skip kbd,.vc-numbers,.vc-numbers span,.vc-numbers i,.vc-numbers b,.vc-disc small,.vc-disc b{font-family:'Courier New',monospace!important}
.vc-skip{min-height:44px;min-width:96px}
