/* 0.6: physical pieces, clear decisions and restrained cinematic motion. */
.battle-card.revealed-card:disabled{opacity:1;filter:none;cursor:default}
.battle-card-played .battle-card .stats{gap:3px}
.battle-card-played .battle-card .stats span{gap:2px}
.battle-card-played .battle-card .stats svg{width:9px;height:11px}
:root{--surface:#172025;--edge:#ffffff18;--muted:#aeb8ba}
button,a,input,select{touch-action:manipulation}button:focus-visible,a:focus-visible{outline:2px solid #90e0dc;outline-offset:4px}button{cursor:pointer}button:disabled{cursor:not-allowed}
dialog{border-radius:16px;border:1px solid #bda36c66;box-shadow:0 25px 120px #000a;background:radial-gradient(ellipse at 0 0,#6d583c35,transparent 60%),#151c21;color:#e3d9c3}dialog::backdrop{background:#050b10c9;backdrop-filter:blur(9px)}.btn{border-radius:8px}.btn.primary{background:linear-gradient(125deg,#e7cc91,#b18b4e);box-shadow:0 4px 15px #0003}.info-button{border-color:#d5bb7e75}.modal-close{border-radius:50%}.modal-title{letter-spacing:-.025em}.modal-description{color:#b8c0bd}.pdf-link{font:700 10px system-ui;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;color:#e4ca95}.rulebook-link{margin:18px 0 10px}.rulebook-link+.btn{margin-bottom:24px}
.turn-banner{border-left:5px solid var(--owner);background:linear-gradient(90deg,color-mix(in srgb,var(--owner),transparent 80%),transparent 65%),#151d21;border-top:1px solid color-mix(in srgb,var(--owner),transparent 65%);position:relative;gap:15px}.turn-banner strong{color:#f7eedc}.turn-banner.my-turn:after{content:'';position:absolute;left:-5px;top:0;bottom:0;width:5px;background:var(--owner);box-shadow:0 0 22px var(--owner);animation:turn-glow 2.8s ease-in-out infinite}.turn-sigil{display:grid;place-items:center;border-radius:50%;width:38px;height:38px;flex-shrink:0;border:1px solid var(--owner);color:var(--owner);background:#0b141b80}.turn-sigil svg{width:23px;height:23px}.my-turn .turn-sigil{animation:turn-glow 2.8s ease-in-out infinite}.turn-order{display:flex;gap:6px;margin-left:auto}.turn-order span{width:27px;height:27px;border-radius:50%;display:grid;place-items:center;font-size:11px;border:1px solid var(--player);color:var(--player);opacity:.55}.turn-order .current{opacity:1;background:var(--player);color:#081016;box-shadow:0 0 17px color-mix(in srgb,var(--player),transparent 55%)}.turn-banner .table-wallet{margin-left:15px}.turn-toast{border-color:var(--owner);border-radius:12px;color:#fff4df;box-shadow:0 12px 50px #0008;background:linear-gradient(100deg,color-mix(in srgb,var(--owner),#10191f 65%),#10191f)}.player{border-radius:12px}.public-powers-link{width:100%;text-align:left;background:#ffffff07;color:#d7c494;border:1px solid #ffffff12;padding:11px;border-radius:7px;font-size:11px;margin-top:12px}.owner-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0}.owner-tabs button{border:1px solid var(--owner);border-radius:25px;background:transparent;color:#d9dcd9;padding:9px 16px}.owner-tabs button.selected{background:var(--owner);color:#10181e}.owner-tabs b{margin-left:8px}.owner-tabs button:not(.selected){opacity:.7}
#modal[data-kind=deployment],#modal[data-kind=setup],#modal[data-kind=recruit],#modal[data-kind=upgrade],#modal[data-kind=move],#modal[data-kind=powers]{width:min(960px,calc(100vw - 36px));max-width:960px}#modal[data-kind=initiative]{width:min(760px,calc(100vw - 30px));max-width:760px}
.city-choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin:22px 0}.city-choice{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px 12px;border-radius:12px;border:1px solid color-mix(in srgb,var(--city),transparent 70%);background:radial-gradient(ellipse at 50% 0,color-mix(in srgb,var(--city),transparent 80%),transparent),#111a20;color:#ece0c6;transition:transform .2s,border-color .2s}.city-choice.selected{border-color:var(--city);box-shadow:inset 0 0 20px color-mix(in srgb,var(--city),transparent 90%),0 0 0 2px color-mix(in srgb,var(--city),transparent 80%);transform:translateY(-3px)}.city-choice:disabled{opacity:.35}.city-choice strong{font:24px Georgia}.city-choice small{font-size:10px;color:var(--city)}.city-emblem{font-size:34px;color:var(--city)}.deployment-table>p{font-size:12px;color:#bfc4ba}.deployment-table h3{font-size:22px;margin:5px 0}.deployment-table .section-with-info>span{font-size:11px;color:#baa77f}
.fortress-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:20px 0}.fortress-card{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;position:relative;padding:17px 12px;border:1px solid #d3b57635;border-radius:14px;background:radial-gradient(ellipse at 50% 30%,#b6914825,transparent 65%),#10181c;color:#e7d8b8;min-width:0;transition:border .2s,box-shadow .2s}.fortress-card.empty{border-style:dashed;background:#0d161a}.fortress-card.enemy{border-color:#cf665e80}.fortress-card strong{font:18px Georgia;margin:10px 0 5px}.fortress-card small{font-size:10px;color:#aeb8b2}.fortress-name{font-size:10px;text-align:center;letter-spacing:.08em;line-height:1.5;min-height:20px}.fortress-image{width:min(100%,220px);height:100px;flex-shrink:0;filter:drop-shadow(0 10px 8px #0005)}.fortress-card.empty .fortress-image{opacity:.6}.fortress-card:hover{border-color:#d6bd80}.drop-ready{border-color:#7de3c6!important;box-shadow:inset 0 0 35px #4ed1aa28,0 0 0 2px #7de3c6!important;transform:translateY(-2px)}
.miniatures{display:flex;gap:3px;justify-content:center;align-items:flex-end;min-height:48px;flex-wrap:wrap}.miniature{display:inline-flex;align-items:flex-end;justify-content:center;width:29px;height:53px;color:var(--owner,#c6a45a);flex:0 0 29px;opacity:.25;filter:grayscale(.7);background:none;border:0;border-radius:6px;padding:0;transition:transform .15s,opacity .15s,filter .15s}.miniature svg{width:29px;height:53px}.miniature.chosen{opacity:1;filter:drop-shadow(0 5px 3px #0005)}button.miniature{width:39px;flex-basis:39px;height:62px;border-bottom:2px solid transparent}button.miniature.chosen{border-color:var(--owner,#ceaf6d);background:#ffffff05}button.miniature:hover{transform:translateY(-5px)}[data-token-source]{touch-action:none;user-select:none}.token-drag-ghost{position:fixed;pointer-events:none;z-index:9000;display:flex;align-items:center;gap:6px;border:1px solid #b8e7d7;background:#132927ec;border-radius:14px;padding:10px 20px;transform:translate(-50%,-90%);color:#d8c698;box-shadow:0 15px 30px #0008}.token-drag-ghost svg{width:30px;height:52px}.token-drag-ghost b{font:24px Georgia}
.reserve-tray{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:18px;border:1px solid #bda06555;border-radius:14px;background:linear-gradient(120deg,#9f7a3830,transparent),#0c151b}.reserve-tray>div>strong{display:block;font:24px Georgia;margin-top:7px}.reserve-tray>small{flex-basis:100%;font-size:11px;color:#a7b7b7}.carry-token,.relocate-token{border-radius:8px;padding:12px 16px;background:color-mix(in srgb,var(--owner,#bda46c),#111a21 77%);color:#f2e6cb;border:1px solid color-mix(in srgb,var(--owner,#bda46c),transparent 45%);font-size:12px}.carry-token:disabled{opacity:.4}.garrison{display:flex;gap:5px;justify-content:center;flex-wrap:wrap}.garrison>div:nth-child(2){filter:drop-shadow(0 0 5px #e6c37388)}.garrison-buttons{display:flex;gap:8px;margin-top:15px;width:100%}.garrison-buttons button{min-height:40px;border:1px solid #d2b77455;border-radius:7px;background:#d4b46b15;color:#e6d7b8;padding:6px 13px}.garrison-buttons button:last-child{flex:1}.garrison-buttons button:disabled{opacity:.3}.relocate-token{font-size:10px;margin-top:9px;width:100%;padding:8px}.allocation-total{display:flex;justify-content:space-between;gap:10px;background:#080f1455;border-radius:10px;padding:17px;margin:16px 0;color:#b5c2bf;font-size:12px}.allocation-total b{font-size:19px;color:#ecd4a4;margin-right:7px}.march-origin-grid{display:flex;overflow-x:auto;gap:10px;padding:10px 1px}.march-origin{flex:0 0 160px;background:#111a20;color:#ddcba5;border-radius:12px;border:1px solid #9e834b44;padding:10px}.march-origin.selected{border-color:#e0bc6e;background:#c69e3d18}.march-origin .fortress-image{height:70px}.march-origin strong,.march-origin small{display:block;font-size:11px;line-height:1.5}.march-origin small{margin-top:5px;color:#9eaeaf}.march-selection{border:1px solid #af965344;border-radius:12px;padding:18px;background:#0d171c;margin:15px 0;display:flex;align-items:center;gap:15px;flex-wrap:wrap}.march-selection h3{font-size:21px;margin:0}.march-selection p{font-size:12px;max-width:420px}.march-selection>strong{font-size:12px}.march-selection>div:first-child{flex-basis:100%}.move-options button{border-radius:10px;background:#142026;border-color:#7f8d8d44;padding:15px;text-align:left}.move-options button:hover{background:#203337}.move-options button small{display:block;margin-top:5px;font-size:10px;color:#a4b5b5}
.pyramid-workshop{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:20px 0}.pyramid-build{padding:15px 10px;background:radial-gradient(ellipse at center,#a98f4b1a,transparent 70%),#0e171d;border:1px solid #c3aa6835;border-radius:14px;color:#e4d2ad;text-align:center}.pyramid-build.selected{border-color:#e2c47e;box-shadow:0 0 0 2px #c8a85922}.pyramid-build h3{font:23px Georgia;margin:10px 0}.pyramid-build>small{display:block;font-size:11px;margin-top:10px;color:#a9b5b0}.pyramid-figure{--gem:#b74631;display:inline-block;position:relative;width:150px;height:140px;perspective:800px;filter:drop-shadow(0 12px 14px #0007)}.pyramid-figure[data-color="1"]{--gem:#328cca}.pyramid-figure[data-color="2"]{--gem:#e7d5a4}.pyramid-figure i{position:absolute;left:calc(10% + var(--tier)*8%);right:calc(10% + var(--tier)*8%);height:37px;bottom:calc(28px + var(--tier)*20px);background:linear-gradient(120deg,color-mix(in srgb,var(--gem),white 30%),var(--gem) 48%,color-mix(in srgb,var(--gem),black 28%) 49%,var(--gem));clip-path:polygon(15% 0,85% 0,100% 100%,0 100%);border-bottom:3px solid #e1c06d;box-shadow:inset 0 -8px 12px #0003}.pyramid-figure b{position:absolute;left:43%;font-size:22px;color:#ffdf83;bottom:calc(46px + (attr(data-level type(<number>),1) - 1)*20px);text-shadow:0 0 20px #f5b84b80}.pyramid-figure[data-level="2"] b{bottom:67px}.pyramid-figure[data-level="3"] b{bottom:87px}.pyramid-figure[data-level="4"] b{bottom:107px}.pyramid-figure[data-level="0"]{filter:grayscale(1);opacity:.4}.pyramid-figure em{position:absolute;bottom:0;left:0;right:0;font:9px system-ui;letter-spacing:.14em;color:#d6c499}.pyramid-ground{position:absolute;bottom:22px;left:0;right:0;height:25px;background:linear-gradient(150deg,#b39963,#35372f);clip-path:polygon(50% 0,100% 45%,50% 100%,0 45%)}.pyramid-figure.upgraded i{animation:pyramid-rise .65s both;animation-delay:calc(var(--tier)*.1s)}.level-buttons,.district-buttons{display:flex;gap:7px;justify-content:center;margin:12px 0}.level-buttons button,.district-buttons button{flex:1;background:#ffffff07;color:#c5c7bd;border:1px solid #85959533;padding:10px 7px;min-height:42px;border-radius:7px;font-size:12px}.level-buttons button.selected,.district-buttons button.selected{background:#d4b47324;border-color:#d4b473;color:#f5dfad}.level-buttons button:disabled,.district-buttons button:disabled{opacity:.3}.level-buttons small{display:block;font-size:10px;margin-top:6px}.pyramid-evolution{display:flex;align-items:center;justify-content:center;gap:20px;border-radius:14px;background:linear-gradient(90deg,#121e24,#293b3b55);padding:20px}.pyramid-evolution>span:not(.pyramid-figure){font-size:25px;color:#a89870}.pyramid-evolution>div{max-width:220px}.pyramid-evolution strong{display:block;font:35px Georgia;margin:10px 0;color:#f0d29b}.pyramid-evolution small{font-size:9px;letter-spacing:.12em;color:#91b0b1}.pyramid-evolution b{font-size:14px}.pyramid-evolution p{font-size:12px;color:#acb9b3}.district-buttons .fortress-image{display:block;height:65px}
.dice-results>div{border-radius:13px;border:1px solid #bd9d5d44;border-left:4px solid var(--owner);background:linear-gradient(90deg,color-mix(in srgb,var(--owner),transparent 90%),transparent),#0e181f;padding:20px;min-height:100px}.dice-results>div>span{font-size:16px}.dice-results small{display:block;font-size:10px;color:var(--owner);margin-top:7px}.dice-results>div>div{display:flex;gap:18px}.dice-stage{display:inline-grid;place-items:center;width:54px;height:58px;perspective:450px}.dice-cube{display:block;position:relative;width:42px;height:42px;transform-style:preserve-3d;--rx:0deg;--ry:0deg;transform:rotateX(var(--rx)) rotateY(var(--ry))}.dice-face{position:absolute;inset:0;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);padding:7px;gap:3px;border:1px solid #a48447;background:linear-gradient(130deg,#f3dfac,#bea06a);border-radius:7px;backface-visibility:hidden;box-shadow:inset 0 0 9px #4a2f1933}.dice-face .pip{border-radius:50%;background:#26313a;box-shadow:inset 0 1px 2px #0008}.face-1{transform:translateZ(21px)}.face-2{transform:rotateY(90deg) translateZ(21px)}.face-3{transform:rotateX(90deg) translateZ(21px)}.face-4{transform:rotateX(-90deg) translateZ(21px)}.face-5{transform:rotateY(-90deg) translateZ(21px)}.face-6{transform:rotateY(180deg) translateZ(21px)}.dice-cube[data-face="2"]{--ry:-90deg}.dice-cube[data-face="3"]{--rx:-90deg}.dice-cube[data-face="4"]{--rx:90deg}.dice-cube[data-face="5"]{--ry:90deg}.dice-cube[data-face="6"]{--ry:180deg}.rolling .dice-cube{animation:dice-tumble 1.5s cubic-bezier(.14,.7,.31,1) both}
.zone .zone-pin,.zone.city-zone .zone-pin{width:29px;height:29px;border-radius:8px;border:2px solid var(--owner,#ac9158);background:#101d28e8;font-size:13px;box-shadow:0 3px 8px #0008}.zone.occupied .zone-pin:before{content:'♟';font-size:10px;margin-right:3px;color:var(--owner)}.zone.occupied .zone-pin{min-width:39px}.zone-label{border-radius:5px 5px 0 0;font-size:8px;padding:5px 7px;background:#112027e8}.zone-pyramid{display:block;margin-top:4px;border-radius:5px;font:8px system-ui;color:#d8bb7c;background:#131a20e6;padding:3px 6px;white-space:nowrap;border:1px solid #93794b55}.zone-pyramid[data-color="0"]{color:#ff977c;border-color:#c6544677}.zone-pyramid[data-color="1"]{color:#8bd0fa;border-color:#4286b777}.zone-pyramid[data-color="2"]{color:#f0e2b9;border-color:#c9bb8877}.city-standard{display:block;position:absolute;top:100%;left:50%;transform:translateX(-50%);font:8px system-ui;white-space:nowrap;background:#111b22e8;padding:4px 8px;border-radius:5px;color:var(--owner,#c8b17c);max-width:180px;overflow:hidden;text-overflow:ellipsis;margin-top:3px}.zone-reward{display:block;font-size:8px;white-space:nowrap;background:#112027ed;color:#d0be8f;padding:4px 6px;border-radius:0 0 5px 5px}.zone[data-landmark=temple-p] .zone-label{color:#8ed7c0}.zone[data-landmark=temple-r] .zone-label{color:#f5cb77}.zone[data-landmark=temple-a] .zone-label{color:#b6c9f2}.zone[data-landmark=delta] .zone-label{color:#91ceee}.zone[data-landmark=sanctuary] .zone-label{color:#d3afef}
.power-art-wrap{height:auto;aspect-ratio:3/2}.power-illustration{display:block;width:100%;height:100%;object-fit:cover;object-position:center 35%;background-repeat:no-repeat}.atlas-action{background-image:url('../assets/epic/action-atlas.png');background-size:300% 300%;background-position:var(--art-x) var(--art-y)}.atlas-battle{background-image:url('../assets/epic/battle-atlas.png');background-size:600% auto;background-position:var(--art-x) 35%}.power-tile{border-radius:13px;border-color:#9f9c8555;overflow:hidden;background:linear-gradient(160deg,#253039,#161f25);box-shadow:0 8px 20px #0003}.power-tile.can-buy{box-shadow:0 0 0 1px #c4aa5a20,0 10px 30px #0004}.power-tile.locked{opacity:.75;filter:grayscale(.8)}.power-content{padding:15px}.power-content h3{font-size:21px;line-height:1.15}.power-content>p{font-size:12px;color:#c2cbc5;line-height:1.55}.power-eligibility{border-radius:5px;font-size:10px}.power-level{padding:7px;background:linear-gradient(0deg,#0d1727e6,transparent);font-size:10px}.power-art-wrap .info-button{background:#0c1824dd;top:9px;right:9px}.power-details{min-height:38px}.market-filters{border-radius:10px;border-color:#7f938044;background:#1b282c}.market-access{border-radius:10px}.market-notice{border-radius:8px}.help-power-art{float:right;width:160px;height:190px;border-radius:12px;overflow:hidden;margin:0 0 18px 24px;box-shadow:0 10px 30px #0005}.help-power-art .power-illustration{object-position:center center}.owned-grid article{border-radius:12px;padding:18px;overflow:hidden}.owned-grid article>.power-illustration{height:150px;margin:-18px -18px 18px;width:calc(100% + 36px)}.owned-grid article>.info-button{background:#132128e6}.owned-grid article h3{font-size:24px}.owned-grid article p{color:#bac5c0}
.stat-icon{display:inline-block;width:21px;height:24px;vertical-align:middle}.stat-icon.attack,.combat-stat.attack{color:#edc77d}.stat-icon.damage,.combat-stat.damage{color:#e88a75}.stat-icon.defense,.combat-stat.defense{color:#85c6db}.combat-stats{display:flex;gap:10px}.combat-stat{display:grid;grid-template-columns:22px 1fr;align-items:center;gap:3px;background:#07141b70;border:1px solid #a0b0a51a;border-radius:9px;padding:9px 12px}.combat-stat b{font:28px Georgia}.combat-stat small{grid-column:1/3;font:8px system-ui;letter-spacing:.1em;color:#b5c2c1}.army-stat-total{margin:10px 0}.draft-note{display:block;font-size:10px!important;letter-spacing:0!important;margin:8px 0;color:#b7d6c8!important}.war-arena{gap:20px;align-items:stretch}.war-army{border-radius:17px;min-height:230px;box-shadow:0 15px 50px #0004}.war-army-content{padding:22px;width:100%}.war-portrait{inset:0 0 0 38%;opacity:.14;background-image:linear-gradient(90deg,#1c2021,transparent),url('../assets/epic/battle-atlas.png');background-size:100% 100%,600% auto}.war-army h3{font-size:27px;margin-bottom:12px}.army-formation{max-width:60%;min-height:60px}.army-formation .miniatures{justify-content:flex-start}.army-formation .miniature{width:31px;flex-basis:31px;height:58px}.battle-card-played{position:absolute;right:18px;top:55px;width:115px;perspective:900px}.battle-card-played .battle-card{width:100%;min-height:155px;pointer-events:none;padding:10px 7px}.battle-card-played .battle-card h3{font-size:17px}.battle-card-played .stats{font-size:11px}.battle-card-played .card-type{display:none}.sealed-card{height:150px;border:1px solid #ba9c5960;border-radius:9px;background:repeating-linear-gradient(45deg,#be98560c 0 4px,transparent 4px 12px),radial-gradient(ellipse,#b9944b22,#0d1820);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px;font:35px Georgia;color:#bca272}.sealed-card small{font:8px system-ui!important;color:#bda779!important;letter-spacing:.1em!important;text-align:center}.sealed-card.waiting{opacity:.5}.combat-contributions{display:grid;grid-template-columns:1fr;gap:5px;margin-top:18px;font-size:11px;border-top:1px solid #a9ad9425;padding-top:12px}.combat-contributions>div{display:flex;justify-content:space-between;gap:10px;color:#bdc8c1}.combat-contributions svg{width:14px;height:16px;margin:0 5px}.combat-contributions b{white-space:nowrap}.war-owned-powers{display:flex;overflow:auto;gap:7px;margin-top:12px}.war-owned-powers button{position:relative;min-width:70px;width:70px;height:65px;border:1px solid #bfaa6755;border-radius:7px;padding:0;overflow:hidden;background:#18252b}.war-owned-powers small{position:absolute;bottom:0;left:0;right:0;background:#0e1b24e8;color:#e7d4b1;font-size:7px;letter-spacing:0;padding:3px}.war-versus{display:grid;place-items:center;font-size:32px}.war-heading h2{font-size:36px}.war-hand .battle-card{border-radius:10px;min-height:240px}.war-hand .battle-card.play{transform:translateY(-12px) rotate(-2deg)}.war-hand .battle-card.discard{transform:translateY(6px) rotate(3deg)}.war-footer{border-radius:10px 10px 0 0;padding-inline:14px}.survivor-report{display:flex;justify-content:space-between;border-top:1px solid #8c9e8c33;margin-top:12px;padding-top:10px;font-size:12px}.survivor-report b{color:#e18f78}.survivor-report span{color:#a4d1bb}.combat-timeline{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:12px;margin:16px 0 24px;position:relative}.combat-step{padding:16px;border:1px solid #abb98d2b;border-radius:10px;background:#20312b33;display:flex;flex-direction:column;gap:9px;min-width:0}.combat-step>b{font-size:9px;letter-spacing:.12em;color:#e0c58c}.combat-step>span{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:11px;color:#b6c4bc}.combat-step>small{font-size:9px;color:#9caaa5}.force-step .combat-stats{display:none}.force-step strong{font:26px Georgia;color:#f4d49a;display:block;width:100%}.combat-step svg{height:17px;width:15px}.combat-timeline>#skip-reveal{grid-column:1/-1;justify-self:end;font-size:10px;padding:5px 12px}.result-pending{display:none}.cinematic .result-pending{display:inline}.cinematic .result-title{display:none}.cinematic .battle-card-played{animation:card-reveal .9s both}.cinematic .combat-step{opacity:.12;transform:translateY(8px);animation:step-light .7s forwards}.cinematic .force-step{animation-delay:1.5s}.cinematic .damage-step{animation-delay:3.1s}.cinematic .army-stat-total{animation:step-light .7s 1.5s both}.cinematic .survivor-report{animation:step-light .7s 4.3s both}.cinematic .war-decisions{visibility:hidden;pointer-events:none}.resolved .victorious{border-color:var(--owner);box-shadow:0 0 32px color-mix(in srgb,var(--owner),transparent 88%)}.resolved .victorious .army-formation .miniature{animation:victory-salute .8s ease-out;animation-delay:calc(var(--i)*.07s)}.resolved #skip-reveal{display:none}.battle-outcome{position:fixed;z-index:800;inset:auto 50% 12%;transform:translateX(50%);width:min(480px,85vw);border:1px solid var(--owner);background:linear-gradient(135deg,#12252cf5,#17201ff5);border-radius:18px;padding:24px;text-align:center;box-shadow:0 15px 80px #000b;pointer-events:none;animation:outcome-arrive .35s both}.battle-outcome strong{display:block;font:25px Georgia;margin:12px}.battle-outcome>span{font-size:13px;color:#d4c199}.battle-outcome.sacrifice .miniature{animation:immolate 1.5s both;animation-delay:calc(var(--i)*.06s)}.battle-outcome.retreat .miniature{animation:retreat-march 1.5s both;animation-delay:calc(var(--i)*.06s)}.battle-outcome.stay .miniature{animation:victory-salute 1s both;animation-delay:calc(var(--i)*.06s)}
@keyframes turn-glow{50%{filter:brightness(1.4)}}@keyframes pyramid-rise{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}@keyframes dice-tumble{0%{transform:translateY(-15px) rotateX(0) rotateY(0)}45%{transform:translateY(-25px) rotateX(420deg) rotateY(620deg)}75%{transform:translateY(3px) rotateX(630deg) rotateY(950deg)}100%{transform:rotateX(calc(720deg + var(--rx))) rotateY(calc(1080deg + var(--ry)))}}@keyframes card-reveal{from{transform:translateY(35px) rotateY(90deg);opacity:0}to{transform:none;opacity:1}}@keyframes step-light{from{opacity:.12;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes victory-salute{40%{transform:translateY(-9px) rotate(-5deg)}100%{transform:none}}@keyframes immolate{30%{filter:brightness(2) drop-shadow(0 0 12px #f9b852)}100%{opacity:0;transform:translateY(-45px) scale(.2);filter:brightness(4)}}@keyframes retreat-march{40%{transform:translateX(20px) translateY(-3px)}100%{transform:translateX(90px);opacity:0}}@keyframes outcome-arrive{from{opacity:0;margin-bottom:-15px}to{opacity:1;margin-bottom:0}}
@media(max-width:1000px){.war-army-content{padding:16px}.battle-card-played{width:90px;right:12px;top:65px}.battle-card-played .battle-card{min-height:135px}.combat-stat{padding:7px}.combat-stat b{font-size:22px}.combat-stats{gap:5px}.war-hand .battle-card{min-height:195px}}
@media(max-width:700px){.turn-order{display:none}.turn-sigil{width:30px;height:30px}.turn-banner .table-wallet{margin-left:auto}.turn-banner strong{font-size:14px}.header-right .pdf-link{width:30px}.header-right .btn[data-ui=invite]{display:none}.city-choices{grid-template-columns:repeat(3,1fr);gap:7px}.city-choice{padding:13px 5px}.city-choice strong{font-size:19px}.city-choice small{font-size:8px}.city-emblem{font-size:26px}.fortress-grid{gap:8px}.fortress-card{padding:12px 5px}.fortress-card strong{font-size:14px}.fortress-card .fortress-image{height:70px}.fortress-card .miniature{width:18px;flex-basis:18px;height:36px}.fortress-card .miniature svg{height:36px;width:21px}.fortress-name{font-size:8px}.garrison-buttons{gap:4px}.garrison-buttons button{font-size:10px;padding:5px}.pyramid-workshop{gap:7px}.pyramid-build{padding:10px 4px}.pyramid-figure{width:100px;height:130px}.pyramid-build h3{font-size:19px}.pyramid-evolution{gap:8px;padding:12px}.pyramid-evolution>div{max-width:140px}.pyramid-evolution small{font-size:7px}.pyramid-evolution strong{font-size:26px}.pyramid-evolution p{font-size:10px}.help-power-art{width:110px;height:140px;margin-left:12px}.power-content{padding:12px}.power-content h3{font-size:18px}.power-content>p{font-size:11px}.war-arena{grid-template-columns:1fr 18px 1fr;gap:5px}.war-army-content{padding:12px}.war-army h3{font-size:20px}.war-portrait{inset:0}.army-formation{max-width:100%}.battle-card-played{position:static;width:80px;margin:12px auto}.battle-card-played .battle-card{min-height:120px}.combat-stat{grid-template-columns:16px 1fr;padding:5px}.combat-stat svg{width:15px}.combat-stat b{font-size:20px}.combat-stat small{font-size:6px}.war-army p{font-size:9px}.combat-contributions{font-size:9px}.combat-contributions>div{flex-direction:column;gap:3px}.combat-timeline{grid-template-columns:1fr;gap:8px}.combat-step{padding:12px}.war-heading h2{font-size:25px}.army-formation .miniature{width:21px;flex-basis:21px;height:40px}.army-formation .miniature svg{height:40px}.survivor-report{font-size:10px;flex-wrap:wrap;gap:5px}.allocation-total{font-size:10px;padding:12px}.allocation-total b{font-size:16px}.dice-results>div{padding:14px;gap:10px}.dice-results>div>span{font-size:13px}.dice-results>div>div{gap:9px;flex-wrap:wrap}.dice-stage{width:46px}.combat-stats{flex-wrap:wrap}}
@media(orientation:landscape) and (max-height:600px){dialog{border-radius:10px;max-height:96dvh}.city-choices{margin:12px 0}.city-choice{padding:12px}.city-emblem{font-size:26px}.fortress-card .fortress-image{height:75px}.fortress-grid{margin:12px 0}.power-art-wrap{aspect-ratio:2.2;height:auto}.power-content h3{font-size:17px}.power-content>p{font-size:10px}.war-heading h2{font-size:25px}.war-arena{grid-template-columns:1fr 25px 1fr;gap:9px}.war-army-content{padding:12px}.war-army h3{font-size:21px}.army-formation{max-width:65%}.army-formation .miniature,.army-formation .miniature svg{height:40px}.battle-card-played{width:77px;top:45px;position:absolute;margin:0}.battle-card-played .battle-card{min-height:115px}.battle-card-played .battle-card h3{font-size:13px}.battle-card-played .stats{font-size:9px}.sealed-card{height:115px}.combat-contributions{font-size:10px}.combat-contributions>div{flex-direction:row}.war-hand .battle-card{min-height:160px}.war-hand{grid-template-columns:repeat(6,minmax(0,1fr))}.combat-timeline{grid-template-columns:1fr 1fr 1.4fr}.combat-step{padding:12px}.turn-sigil{width:27px;height:27px}.turn-banner{gap:9px}.turn-order span{width:23px;height:23px;font-size:9px}.zone-reward{font-size:6px;padding:2px 4px}.zone-pyramid{font-size:6px;padding:2px 4px}.city-standard{font-size:6px;padding:2px 5px}.zone .zone-pin,.zone.city-zone .zone-pin{height:22px;min-width:24px;width:24px;font-size:10px}.zone.occupied .zone-pin{min-width:31px}.zone-label{font-size:6px;padding:3px 5px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.cinematic .war-decisions{visibility:visible}.cinematic .result-pending{display:none}.cinematic .result-title{display:inline}.cinematic .combat-step,.cinematic .army-stat-total,.cinematic .survivor-report{opacity:1;transform:none}}
.pyramid-figure b{bottom:46px;left:36%;width:28%;height:35px;font-size:0;background:linear-gradient(120deg,#fff0bd,#e2b855 48%,#a87735 49%,#e3c475);clip-path:polygon(50% 0,100% 100%,0 100%)}
.pyramid-figure[data-level="0"] b{bottom:46px}.pyramid-figure[data-level="1"] b{bottom:46px}
.city-choice{padding:14px 10px}.city-emblem{font-size:28px}.city-choices{margin:16px 0}.deployment-table .section-with-info{margin-top:12px}
.cinematic .army-formation .miniature.chosen{animation:combat-lunge .8s 1.6s both}.cinematic [data-side=defender] .army-formation .miniature.chosen{animation-name:combat-brace}.cinematic .army-formation .miniature:not(.chosen){animation:casualty-collapse .8s 3.6s both}.cinematic .war-versus{animation:clash-flash .8s 1.8s both}.sealed-card:not(.waiting){animation:seal-card .45s both}.cinematic .war-heading>p{visibility:hidden}
@keyframes combat-lunge{0%,100%{transform:none}45%{transform:translateX(15px) translateY(-4px) rotate(7deg);filter:brightness(1.3)}}@keyframes combat-brace{0%,100%{transform:none}45%{transform:translateX(-9px) rotate(-7deg);filter:brightness(1.2)}}@keyframes casualty-collapse{from{opacity:1;transform:none;filter:none}to{opacity:.18;transform:translateY(7px) rotate(17deg);filter:grayscale(1)}}@keyframes clash-flash{40%{transform:scale(1.8) rotate(-15deg);color:#ffe8ad;filter:drop-shadow(0 0 20px #e7b24b)}}@keyframes seal-card{from{opacity:0;transform:translateY(20px) rotate(9deg)}to{opacity:1;transform:none}}
