@font-face{font-family:Cinzel;font-style:normal;font-display:swap;font-weight:500;src:url("./media/cinzel-latin-500-normal-VYNGKGRM.woff2") format("woff2"),url("./media/cinzel-latin-500-normal-PJYZLCYT.woff") format("woff")}@font-face{font-family:Cinzel;font-style:normal;font-display:swap;font-weight:700;src:url("./media/cinzel-latin-700-normal-OANOFTBI.woff2") format("woff2"),url("./media/cinzel-latin-700-normal-3TEUQPFT.woff") format("woff")}@font-face{font-family:EB Garamond;font-style:normal;font-display:swap;font-weight:400;src:url("./media/eb-garamond-latin-400-normal-Y34LPGEO.woff2") format("woff2"),url("./media/eb-garamond-latin-400-normal-I3CRRUSS.woff") format("woff")}@font-face{font-family:EB Garamond;font-style:italic;font-display:swap;font-weight:400;src:url("./media/eb-garamond-latin-400-italic-ZHTPCYXT.woff2") format("woff2"),url("./media/eb-garamond-latin-400-italic-WGYRP7QN.woff") format("woff")}@font-face{font-family:EB Garamond;font-style:normal;font-display:swap;font-weight:600;src:url("./media/eb-garamond-latin-600-normal-MADPPJUK.woff2") format("woff2"),url("./media/eb-garamond-latin-600-normal-IX7FAY7S.woff") format("woff")}:root{--night: #120e0a;--wood: #1d150f;--wood-2: #2a1e15;--wood-3: #382819;--parch: #efe3c6;--parch-2: #e3d2ad;--parch-3: #d4bd8f;--ink: #2a1c12;--ink-2: #5a4330;--sepia: #8a6a3a;--gold: #c9a24a;--gold-2: #ecd38f;--crimson: #8e2a1c;--forest: #2f5a3a;--good-light: #a9d38b;--bad: #a3311f;--bad-light: #f0937a;--text: #f3e8cf;--text-2: #d9c8a4;--focus: #f2c75c;--display: "Cinzel", "Trajan Pro", "Palatino Linotype", Palatino, serif;--body: "EB Garamond", "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--shadow: 0 14px 40px #000a;--paper: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='260' height='260'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .32 0 0 0 0 .22 0 0 0 0 .1 0 0 0 .12 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");--grain: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='300' height='300'><filter id='g'><feTurbulence type='fractalNoise' baseFrequency='.012 .6' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .9 0 0 0 0 .7 0 0 0 0 .45 0 0 0 .06 0'/></filter><rect width='100%' height='100%' filter='url(%23g)'/></svg>");--corner-tl: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='44' height='44' fill='none' stroke='%238a6a3a' stroke-width='1.4'><path d='M3 3h30M3 3v30M8 8h14M8 8v14M8 8c9 2 13 6 15 15M14 4c0 6 2 9 8 10M4 14c6 0 9 2 10 8'/><circle cx='8' cy='8' r='2' fill='%238a6a3a'/></svg>");--corner-tr: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='44' height='44' fill='none' stroke='%238a6a3a' stroke-width='1.4'><g transform='matrix(-1 0 0 1 44 0)'><path d='M3 3h30M3 3v30M8 8h14M8 8v14M8 8c9 2 13 6 15 15M14 4c0 6 2 9 8 10M4 14c6 0 9 2 10 8'/><circle cx='8' cy='8' r='2' fill='%238a6a3a'/></g></svg>");--corner-bl: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='44' height='44' fill='none' stroke='%238a6a3a' stroke-width='1.4'><g transform='matrix(1 0 0 -1 0 44)'><path d='M3 3h30M3 3v30M8 8h14M8 8v14M8 8c9 2 13 6 15 15M14 4c0 6 2 9 8 10M4 14c6 0 9 2 10 8'/><circle cx='8' cy='8' r='2' fill='%238a6a3a'/></g></svg>");--corner-br: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='44' height='44' fill='none' stroke='%238a6a3a' stroke-width='1.4'><g transform='matrix(-1 0 0 -1 44 44)'><path d='M3 3h30M3 3v30M8 8h14M8 8v14M8 8c9 2 13 6 15 15M14 4c0 6 2 9 8 10M4 14c6 0 9 2 10 8'/><circle cx='8' cy='8' r='2' fill='%238a6a3a'/></g></svg>")}*{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;overflow:hidden;background:var(--night);color:var(--text);font:17px/1.4 var(--body);-webkit-font-smoothing:antialiased;font-variant-numeric:lining-nums}app-root{display:block;position:fixed;inset:0}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}button:disabled{cursor:not-allowed}button:focus-visible,input:focus-visible,canvas:focus-visible{outline:2px solid var(--focus);outline-offset:2px}h1,h2,h3{font-family:var(--display);font-weight:700;letter-spacing:.02em}kbd{font:600 12px var(--body);padding:0 5px;border:1px solid currentColor;border-radius:2px;margin-left:4px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#8a6a3a99;border-radius:5px}::-webkit-scrollbar-track{background:transparent}.sheet,.modal,.army-pane,.commander-card,.toast{color:var(--ink);background:var(--paper),radial-gradient(ellipse at 50% 40%,var(--parch) 45%,var(--parch-2) 85%,var(--parch-3))}.primary,.secondary,.ghost,.danger{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:9px 18px;border-radius:3px;font:700 15px var(--display);letter-spacing:.06em;transition:background .15s,border-color .15s,color .15s,transform .08s}.primary{background:linear-gradient(180deg,#a23523,#7a2216);color:var(--gold-2);border:1px solid #4a120a;box-shadow:inset 0 0 0 2px #7a2216,inset 0 0 0 3px #d4a94e,0 3px #3e0f08,0 8px 18px #0006}.primary:hover:not(:disabled){background:linear-gradient(180deg,#b8402b,#8a2a1b);color:#fff3cf}.primary:active:not(:disabled){transform:translateY(1px)}.primary:disabled{background:#6d5a48;color:#f3e8cf;border-color:#4a3a2c;box-shadow:inset 0 0 0 2px #6d5a48,inset 0 0 0 3px #a8957a}.secondary{border:1px solid var(--gold);background:#2a1e15cc;color:var(--gold-2);box-shadow:inset 0 0 0 2px #2a1e15,inset 0 0 0 3px #c9a24a55}.secondary:hover:not(:disabled){background:var(--wood-3);color:#fff3cf}.secondary:disabled{border-color:#7d6a50;color:#c4b291}.ghost{color:var(--text-2);font:italic 400 18px var(--body);letter-spacing:0;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:4px}.ghost:hover:not(:disabled){color:var(--gold-2);text-decoration-color:currentColor}.danger{background:transparent;color:var(--bad-light);border:1px solid var(--bad-light)}.danger:hover{background:#a3311f33}.small{padding:4px 10px;font-size:12px}.ghost.small{font-size:15px}.big{padding:13px 24px;font-size:17px;flex-direction:column;gap:2px}.big small{font:italic 400 15px var(--body);letter-spacing:0;color:var(--text-2)}.icon-btn{width:36px;height:36px;display:grid;place-items:center;border:1px solid var(--gold);border-radius:50%;color:var(--gold-2);font-size:16px;background:var(--wood-2);box-shadow:inset 0 0 0 2px var(--wood-2),inset 0 0 0 3px #c9a24a55}.icon-btn:hover{background:var(--wood-3)}.sheet .secondary,.modal .secondary{background:transparent;color:var(--ink);border-color:var(--ink-2);box-shadow:none}.sheet .secondary:hover:not(:disabled),.modal .secondary:hover:not(:disabled){background:#8a6a3a22;color:var(--ink)}.sheet .secondary:disabled,.modal .secondary:disabled{color:#6d5a48;border-color:#a8957a;border-style:dashed}.sheet .ghost,.modal .ghost{color:var(--ink-2)}.sheet .ghost:hover:not(:disabled),.modal .ghost:hover:not(:disabled){color:var(--crimson)}.sheet .danger,.modal .danger{color:var(--bad);border-color:var(--bad)}.modal .icon-btn{background:transparent;color:var(--ink);border-color:var(--ink-2);box-shadow:none}.eyebrow{font:italic 400 16px var(--body);color:var(--sepia);display:flex;align-items:center;gap:10px}.eyebrow:before,.eyebrow:after{content:"";width:28px;height:1px;background:currentColor}.rule{position:relative;height:12px;color:var(--sepia);background:linear-gradient(currentColor,currentColor) left 50% / calc(50% - 14px) 1px no-repeat,linear-gradient(currentColor,currentColor) right 50% / calc(50% - 14px) 1px no-repeat}.rule:after{content:"";position:absolute;left:50%;top:50%;width:8px;height:8px;border:1px solid currentColor;transform:translate(-50%,-50%) rotate(45deg)}.loading-screen{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:18px;background:radial-gradient(circle at 50% 40%,#2a1e15,var(--night));font:italic 400 22px var(--body);color:var(--text-2)}.loading-mark{width:64px;height:64px;fill:none;stroke:var(--gold);stroke-width:1.6;animation:breathe 1.6s ease-in-out infinite}@keyframes breathe{50%{transform:scale(1.08);stroke:var(--gold-2)}}.title-screen{position:absolute;inset:0;display:grid;place-items:center;overflow:hidden;background:linear-gradient(180deg,#0d1418,#1a2a2a 45%,#2a3326 70%,#15120d)}.title-bg{position:absolute;inset:0}.title-bg svg{width:100%;height:100%}.title-bg .moon-halo{fill:#d9e6dc14}.title-bg .moon{fill:#e8ecd9;filter:drop-shadow(0 0 30px #e8ecd966)}.title-bg .far{fill:#2c3c38}.title-bg .spire{fill:#b9cfd0}.title-bg .spire-light{stroke:#e8f4f0;stroke-width:3;filter:drop-shadow(0 0 10px #e8f4f0)}.title-bg .mid{fill:#1b2620}.title-bg .near{fill:#0e110c}.title-shade{position:absolute;inset:0;background:linear-gradient(90deg,#0d0b08f0,#0d0b08c0,#0d0b0800 68%),radial-gradient(ellipse at 50% 50%,transparent 55%,#000a 100%)}.title-card{position:relative;width:min(520px,92vw);justify-self:start;margin-left:max(7vw,24px);display:flex;flex-direction:column;align-items:flex-start}.title-sigil{width:58px;height:58px;fill:none;stroke:var(--gold);stroke-width:1.5;margin-bottom:10px}.title-logo{font:700 104px/.95 var(--display);letter-spacing:.08em;color:var(--parch);text-shadow:0 1px 0 #6b4a2b,0 4px 24px #000c}.title-sub{font:italic 400 46px/1 var(--body);color:var(--gold-2);margin:6px 0 0 4px}.title-card .rule{width:300px;color:var(--gold);margin:18px 0 16px}.title-copy{font-size:19px;color:var(--text-2);max-width:470px;margin-bottom:28px}.title-menu{display:flex;flex-direction:column;gap:12px;width:330px}.record{display:grid;grid-template-columns:repeat(4,auto);gap:24px;margin-top:30px}.record dt,.report-stats dt{font:italic 400 15px var(--body);color:var(--text-2)}.record dd{font:700 26px var(--display);color:var(--parch)}.title-foot{position:absolute;bottom:18px;right:26px;font:italic 400 16px var(--body);color:var(--text-2)}.res-label{font:italic 400 15px var(--body);color:var(--text-2)}.aether-gem{width:11px;height:16px;display:inline-block;background:linear-gradient(160deg,#f1fbfb,#7fb9c4);clip-path:polygon(50% 0,100% 40%,50% 100%,0 40%);flex:none}.aether-text{color:#1f5a66;font-weight:600}.chip{padding:6px 14px;border-radius:3px;border:1px solid var(--sepia);font:700 13px var(--display);letter-spacing:.05em;color:var(--text)}.chip:hover{border-color:var(--gold);color:var(--gold-2)}.chip.active{background:var(--crimson);border-color:var(--gold);color:var(--gold-2)}.unit-icon{display:grid;place-items:center;width:44px;height:44px;flex:none;border-radius:50%;background:#f6edd6;border:1.5px solid var(--ink-2);box-shadow:inset 0 0 0 3px #f6edd6,inset 0 0 0 4px #8a6a3a66}.unit-icon svg{width:30px;height:30px;fill:none;stroke:var(--ink);stroke-width:2.2;stroke-linejoin:round;stroke-linecap:round}.unit-icon.rarity-uncommon{border-color:#3f6f86;box-shadow:inset 0 0 0 3px #f6edd6,inset 0 0 0 4px #3f6f8688}.unit-icon.rarity-rare{border-color:#a07a22;border-width:2px;box-shadow:inset 0 0 0 3px #f6edd6,inset 0 0 0 4px var(--gold)}.regiment-row{display:flex;align-items:center;gap:10px;min-width:0}.reg-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.reg-name{display:flex;align-items:baseline;gap:8px;min-width:0}.reg-name b{font:700 15px var(--display);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink)}.rank-tag{font:italic 400 15px var(--body);color:var(--ink-2);flex:none}.rank-tag.r1{color:var(--ink)}.rank-tag.r2{color:#1f5a66;font-weight:600}.rank-tag.r3{color:var(--crimson);font-weight:600}.reg-bar{height:6px;background:#d9c79f;border:1px solid var(--ink-2);overflow:hidden}.reg-bar i{display:block;height:100%;background:var(--forest)}.reg-bar i.low{background:var(--crimson)}.reg-meta{font:400 14px var(--body);color:var(--ink-2)}.relic-badge{display:flex;align-items:center;gap:10px;text-align:left}.relic-badge svg{width:38px;height:38px;flex:none;padding:7px;border-radius:50%;background:radial-gradient(circle at 40% 35%,#b23e2a,#6e1d12);box-shadow:0 0 0 2px #5a160c,0 2px 4px #0005;fill:#f2d996}.relic-badge.rarity-uncommon svg{background:radial-gradient(circle at 40% 35%,#4d7d8f,#213f4c);box-shadow:0 0 0 2px #1a313b,0 2px 4px #0005;fill:#eef6f4}.relic-badge.rarity-rare svg,.relic-badge.rarity-boss svg{background:radial-gradient(circle at 40% 35%,#e3c26a,#9a7424);box-shadow:0 0 0 2px #6b4f14,0 2px 4px #0005;fill:#3a2a10}.relic-badge.rarity-starter svg{background:radial-gradient(circle at 40% 35%,#4a6a44,#233a22);box-shadow:0 0 0 2px #1b2c1a,0 2px 4px #0005;fill:#f2e6c4}.relic-text{display:flex;flex-direction:column;min-width:0}.relic-text b{font:700 14px var(--display);color:var(--ink)}.relic-text span{font-size:15px;line-height:1.3;color:var(--ink-2)}.offer-tags{display:flex;flex-wrap:wrap;gap:4px 10px}.offer-tags span{font:italic 400 15px var(--body);color:var(--crimson)}.offer-tags span+span:before{content:"\b7";margin-right:10px;color:var(--sepia);font-style:normal}.setup-screen{position:absolute;inset:0;display:flex;flex-direction:column;gap:22px;padding:26px clamp(16px,4vw,56px);overflow:auto;background:var(--grain),radial-gradient(ellipse at 50% 0%,#3a2a1c,var(--night) 70%)}.setup-head{display:flex;align-items:center;gap:24px}.setup-head h1{font-size:40px;color:var(--parch)}.setup-head .eyebrow{color:var(--gold)}.commander-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:22px}.commander-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:0 24px 24px;text-align:left;border-radius:2px;box-shadow:inset 0 0 0 1px var(--sepia),inset 0 0 0 5px transparent,inset 0 0 0 6px #8a6a3a77,inset 0 0 50px #8a6a3a55,0 10px 30px #0008;transition:transform .15s}.commander-card:before{content:"";align-self:stretch;height:10px;margin:0 -24px 6px;background:var(--c);box-shadow:inset 0 -2px #0004}.commander-card:hover{transform:translateY(-3px)}.commander-card.active{box-shadow:inset 0 0 0 2px var(--gold),inset 0 0 0 5px transparent,inset 0 0 0 6px var(--gold),inset 0 0 50px #8a6a3a55,0 0 0 3px var(--crimson),0 14px 40px #000a}.commander-card .emblem{width:56px;height:56px;fill:var(--c);stroke:var(--ink);stroke-width:1.4;filter:saturate(.8) brightness(.8)}.cmd-name{font:700 26px/1.05 var(--display);color:var(--ink)}.cmd-title{font:italic 400 17px var(--body);color:var(--crimson)}.commander-card p{color:var(--ink);font-size:16px}.cmd-relic{display:flex;flex-direction:column;padding:8px 12px;border-left:3px solid var(--crimson);background:#8a6a3a1a;width:100%}.cmd-relic b{font:700 14px var(--display);color:var(--ink)}.cmd-relic span{font-size:15px;color:var(--ink-2)}.cmd-army{display:flex;flex-direction:column;gap:4px;width:100%}.army-chip{display:flex;align-items:center;gap:10px;font:400 16px var(--body);color:var(--ink)}.army-chip .unit-icon{width:32px;height:32px}.army-chip .unit-icon svg{width:22px;height:22px}.setup-foot{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}.option-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.run-screen{position:absolute;inset:0;display:flex;flex-direction:column;background:var(--grain),linear-gradient(180deg,#241a12,#160f0a)}.run-top{display:flex;align-items:center;gap:26px;padding:10px 20px;background:var(--grain),linear-gradient(180deg,#2c1f15,#1c140e);border-bottom:2px solid #0a0705;box-shadow:inset 0 -1px #c9a24a66,0 4px 12px #0007;flex-wrap:wrap;z-index:2}.cmd-tag{display:flex;align-items:center;gap:10px}.cmd-tag svg{width:34px;height:34px;fill:var(--cmd);stroke:#0008}.cmd-tag div,.act-tag{display:flex;flex-direction:column}.cmd-tag b,.act-tag b{font:700 16px var(--display);color:var(--parch)}.cmd-tag span,.act-tag span{font:italic 400 15px var(--body);color:var(--text-2)}.wards{display:flex;align-items:center;gap:6px}.wards i{width:16px;height:19px;background:linear-gradient(180deg,#7fb36a,#2f5a3a);clip-path:polygon(0 0,100% 0,100% 55%,50% 100%,0 55%)}.wards i.lost{background:#4a3a2c}.aether{display:flex;align-items:center;gap:7px}.aether b{font:700 21px var(--display);color:#cfe8ea}.top-spacer{flex:1}.run-body{flex:1;display:grid;grid-template-columns:1fr minmax(320px,370px);gap:14px;padding:14px;min-height:0}.map-pane{position:relative;min-height:0;display:flex;flex-direction:column;color:var(--ink);background:var(--paper),radial-gradient(ellipse at 50% 50%,#efe2c3 40%,#dcc596 80%,#b99a62);box-shadow:inset 0 0 0 1px #6b4a2b,inset 0 0 70px #6b4a2b88,0 10px 30px #000a;border-radius:2px}.map-hint{position:absolute;top:12px;left:50%;transform:translate(-50%);padding:4px 16px;font:italic 400 16px var(--body);color:var(--ink);background:#f3e8cfe6;border:1px solid var(--sepia);pointer-events:none;z-index:1;white-space:nowrap}.act-map{flex:1;min-height:0;display:flex;flex-direction:column}.map-scroll{flex:1;overflow:auto;display:flex;justify-content:center}.map-scroll svg{flex:none}.edge{fill:none;stroke:#7a5c38;stroke-width:1.8;stroke-dasharray:2 6;stroke-linecap:round}.edge.taken{stroke:var(--crimson);stroke-width:3;stroke-dasharray:none}.edge.open{stroke:var(--ink);stroke-width:2.4;stroke-dasharray:7 5;animation:march 1.2s linear infinite}@keyframes march{to{stroke-dashoffset:-12}}.compass circle{fill:none;stroke:#8a6a3a99}.compass path{fill:#8a6a3a55;stroke:#6b4a2b;stroke-width:.8}.compass .north{fill:var(--crimson)}.compass text,.cartouche text{font:700 13px var(--display);fill:var(--ink-2);text-anchor:middle}.cartouche text{font-size:20px;fill:var(--ink);letter-spacing:.06em}.node .disc{fill:#f3e8cf;stroke:var(--ink-2);stroke-width:1.6}.node .glyph{fill:none;stroke:var(--ink);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.node.elite .disc{stroke:var(--crimson);stroke-width:2.2}.node.elite .glyph{stroke:var(--crimson)}.node.event .glyph{stroke:#4a3a6a}.node.shop .glyph{stroke:#1f5a66}.node.rest .glyph{stroke:var(--forest)}.node.treasure .glyph{stroke:#8a5a10}.node.boss .disc{stroke:var(--crimson);stroke-width:3}.node.boss .glyph{stroke:var(--crimson);stroke-width:2.6}.node.open{cursor:pointer}.node.open .disc{fill:#fbf3dc;stroke:var(--ink);stroke-width:2.4}.node.open:hover .disc,.node.open:focus-visible .disc{fill:#f2d996}.node:focus{outline:none}.node .halo{fill:none;stroke:var(--gold);stroke-width:2.4;stroke-dasharray:5 4;animation:halo 3s linear infinite}.node.open:focus-visible .halo{stroke:var(--crimson);stroke-width:3}@keyframes halo{to{stroke-dashoffset:-54}}.node.current .disc{fill:var(--crimson);stroke:#5a160c;stroke-width:2.5}.node.current .glyph{stroke:var(--gold-2)}.node.visited .disc{fill:#e0cfa8;stroke:var(--crimson)}.node.visited .glyph{stroke:var(--crimson)}.node.past .disc{fill:#e6d7b5;stroke:#a08a68}.node.past .glyph{stroke:#7d6a50}.node .tick{fill:var(--crimson);stroke:#f3e8cf;stroke-width:1.5}.map-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 18px;padding:8px 14px 10px;list-style:none;border-top:1px solid #8a6a3a88;font:italic 400 15px var(--body);color:var(--ink)}.map-legend li{display:flex;align-items:center;gap:5px}.legend-glyph{width:20px;height:20px;fill:none;stroke:var(--ink);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.legend-glyph.elite,.legend-glyph.boss{stroke:var(--crimson)}.legend-glyph.event{stroke:#4a3a6a}.legend-glyph.shop{stroke:#1f5a66}.legend-glyph.rest{stroke:var(--forest)}.legend-glyph.treasure{stroke:#8a5a10}.army-pane{display:flex;flex-direction:column;min-height:0;overflow:auto;padding:18px 18px 22px;gap:10px;border-radius:2px;box-shadow:inset 0 0 0 1px #6b4a2b,inset 0 0 50px #6b4a2b66,0 10px 30px #000a}.pane-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;border-bottom:1px solid var(--ink-2);padding-bottom:4px}.pane-head h2{font-size:20px;color:var(--ink)}.pane-head span{font:italic 400 15px var(--body);color:var(--ink-2)}.army-list{display:flex;flex-direction:column}.army-entry{display:block;width:100%;text-align:left;padding:8px 4px;border-bottom:1px dotted #8a6a3a99;color:var(--ink)}.army-entry:hover,.army-entry.open{background:#8a6a3a1c}.reg-detail{display:flex;flex-direction:column;gap:4px;padding:6px 6px 10px 58px;font-size:15px;color:var(--ink);border-bottom:1px dotted #8a6a3a99}.reg-detail>span{color:var(--ink-2);font-size:14px}.relic-list{display:flex;flex-direction:column;gap:10px;padding-top:4px}.sheet-wrap{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:20px;background:radial-gradient(ellipse at 50% 50%,#0a0705aa,#0a0705e6);overflow:auto}.sheet{position:relative;width:min(940px,100%);max-height:calc(100vh - 40px);overflow:auto;display:flex;flex-direction:column;gap:12px;padding:38px 48px;border-radius:2px;box-shadow:inset 0 0 0 1px #6b4a2b,inset 0 0 0 7px transparent,inset 0 0 0 8px #8a6a3a88,inset 0 0 80px #6b4a2b77,0 24px 70px #000}.sheet:before{content:"";position:absolute;inset:12px;pointer-events:none;background:var(--corner-tl) top left / 44px no-repeat,var(--corner-tr) top right / 44px no-repeat,var(--corner-bl) bottom left / 44px no-repeat,var(--corner-br) bottom right / 44px no-repeat}.sheet.act-intro,.sheet.event,.sheet.treasure,.sheet.rest,.sheet.prebattle{width:min(660px,100%)}.sheet .eyebrow{color:var(--crimson)}.sheet h2{font-size:38px;line-height:1.08;color:var(--ink)}.sheet h2:after{content:"";display:block;width:180px;height:10px;margin-top:10px;background:linear-gradient(var(--sepia),var(--sepia)) left 50% / 80px 1px no-repeat,linear-gradient(var(--sepia),var(--sepia)) right 50% / 80px 1px no-repeat,radial-gradient(circle,var(--crimson) 3px,transparent 3.5px) center / 10px 10px no-repeat}.sheet h2.good{color:var(--forest)}.sheet h2.bad{color:var(--crimson)}.sheet h3{font-size:18px;margin-top:8px;color:var(--ink)}.sheet-lead{font-size:18px;color:var(--ink)}.sheet-lead b{font-weight:600}.sheet.event .sheet-lead:first-letter,.sheet.act-intro .sheet-lead:first-letter{float:left;font:700 54px/.85 var(--display);color:var(--crimson);margin:6px 8px 0 0}.sheet-actions{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:6px}.sheet .fine{color:var(--ink-2)}.enemy-roster{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:6px 16px}.enemy-chip{display:flex;align-items:center;gap:10px;padding:4px 0;border-bottom:1px dotted #8a6a3a99;font:400 17px var(--body);color:var(--ink)}.enemy-chip .unit-icon{width:36px;height:36px;border-color:var(--crimson);box-shadow:inset 0 0 0 3px #f6edd6,inset 0 0 0 4px #8e2a1c66}.enemy-chip .unit-icon svg{width:24px;height:24px;stroke:var(--crimson)}.odds{display:flex;align-items:center;gap:14px;font:italic 400 16px var(--body);color:var(--ink)}.odds b{font:700 15px var(--display)}.odds-bar{flex:1;height:10px;background:#e8b9a8;border:1px solid var(--ink-2);overflow:hidden}.odds-bar i{display:block;height:100%;background:var(--forest)}.report-notes{list-style:none;display:flex;flex-direction:column;gap:2px;font-size:16px;font-style:italic}.report-notes .good{color:var(--forest)}.report-notes .bad{color:var(--crimson)}.reward-list,.relic-choices{display:flex;flex-wrap:wrap;gap:10px}.reward-item{display:flex;align-items:center;gap:10px;padding:10px 16px;border:1px solid var(--ink-2);border-radius:2px;background:#fbf3dc88;font:700 15px var(--display);color:var(--ink);text-align:left}.reward-item:hover:not(.static){border-color:var(--crimson);background:#f2d99666}.reward-item.relic{max-width:440px}.relic-choices .reward-item{flex:1 1 250px}.offer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.offer-grid.four{grid-template-columns:repeat(auto-fit,minmax(195px,1fr))}.unit-offer{display:flex;flex-direction:column;gap:8px;padding:14px;border:1px solid var(--ink-2);background:#fbf3dc77;box-shadow:inset 0 0 0 3px transparent,inset 0 0 0 4px #8a6a3a44}.unit-offer.rarity-uncommon{border-color:#3f6f86}.unit-offer.rarity-rare{border-color:#a07a22;box-shadow:inset 0 0 0 3px transparent,inset 0 0 0 4px var(--gold)}.unit-offer.sold{background:transparent;border-style:dashed}.offer-head{display:flex;align-items:center;gap:10px}.offer-head div{display:flex;flex-direction:column}.offer-head b{font:700 16px/1.1 var(--display);color:var(--ink)}.rarity{font:italic 400 15px var(--body);color:var(--ink-2);text-transform:capitalize}.rarity-uncommon .rarity{color:#1f5a66}.rarity-rare .rarity{color:#8a5a10;font-weight:600}.offer-role{font-size:16px;line-height:1.3;color:var(--ink);flex:1}.offer-stats{display:flex;gap:16px;border-top:1px dotted #8a6a3a99;padding-top:6px}.offer-stats div{display:flex;gap:5px;align-items:baseline}.offer-stats dt{font:italic 400 14px var(--body);color:var(--ink-2)}.offer-stats dd{font:700 14px var(--display);color:var(--ink)}.pick-list{display:flex;flex-direction:column}.pick-list .regiment-row{padding:8px 4px;border-bottom:1px dotted #8a6a3a99}.row-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.shop-relic{flex:1 1 260px;display:flex;flex-direction:column;gap:10px;padding:12px 14px;border:1px solid var(--ink-2);background:#fbf3dc77}.shop-relic.sold{border-style:dashed;background:transparent}.choice-grid,.event-choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}.choice{display:flex;flex-direction:column;gap:4px;padding:12px 16px;border:1px solid var(--ink-2);border-left:4px solid var(--crimson);background:#fbf3dc77;text-align:left;color:var(--ink)}.choice b{font:700 16px var(--display)}.choice span{font-size:16px;line-height:1.3;color:var(--ink-2)}.choice:hover:not(:disabled){background:#f2d99666;border-color:var(--crimson)}.choice:disabled{border-style:dashed;border-left-color:#a8957a;background:transparent;cursor:not-allowed}.choice:disabled b{color:#6d5a48}.event-result{padding:10px 16px;border-left:3px solid var(--crimson);background:#8a6a3a1a;font:italic 400 18px var(--body);color:var(--ink)}.report-stats{display:flex;justify-content:center;gap:30px;flex-wrap:wrap;margin:6px 0}.report-stats.wide{justify-content:flex-start}.sheet .report-stats dt,.modal .report-stats dt{color:var(--ink-2)}.report-stats dd{font:700 28px var(--display)}.report-stats .good{color:var(--forest)}.report-stats .bad{color:var(--crimson)}.relic-strip{display:flex;flex-wrap:wrap;gap:8px}.modal-backdrop{position:fixed;inset:0;background:#0a0705b8;z-index:60}.modal-backdrop.solid{background:#0a0705e0}.modal{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:61;border-radius:2px;box-shadow:inset 0 0 0 1px #6b4a2b,inset 0 0 0 6px transparent,inset 0 0 0 7px #8a6a3a88,inset 0 0 70px #6b4a2b66,0 24px 70px #000;max-height:calc(100vh - 40px);overflow:auto}.modal-head{display:flex;align-items:center;gap:20px;padding:22px 28px 12px;border-bottom:1px solid #8a6a3a88}.modal-head h2{font-size:28px;color:var(--ink)}.modal-head .eyebrow{color:var(--crimson)}.result-modal,.small-modal{width:min(540px,calc(100vw - 30px));padding:30px 34px;display:flex;flex-direction:column;gap:12px;text-align:center}.result-modal .eyebrow{justify-content:center;color:var(--crimson)}.result-modal h2{font-size:52px;line-height:1;color:var(--crimson)}.result-modal.won h2{color:var(--forest)}.small-modal h2{font-size:28px;color:var(--ink)}.report-lead{color:var(--ink);font-size:18px;font-style:italic}.fine{font-size:15px;font-style:italic;color:var(--text-2)}.modal .fine{color:var(--ink-2)}.result-modal{width:min(640px,calc(100vw - 30px))}.result-table{max-height:34vh;overflow:auto;text-align:left;border-top:1px solid var(--ink-2);border-bottom:1px solid var(--ink-2)}.result-row{display:grid;grid-template-columns:1fr 100px 60px;padding:4px 8px;align-items:center;font-size:16px;color:var(--ink)}.result-row:nth-child(2n){background:#8a6a3a14}.result-row.head{font:italic 400 15px var(--body);color:var(--ink-2);position:sticky;top:0;background:var(--parch-2)}.result-row span:first-child{display:flex;align-items:center;gap:8px}.result-row svg{width:24px;height:24px;fill:none;stroke:var(--ink);stroke-width:2.2;stroke-linejoin:round;stroke-linecap:round}.result-row span:not(:first-child){font:700 14px var(--display)}.manual{width:min(780px,calc(100vw - 30px));z-index:71}app-manual .modal-backdrop{z-index:70}.manual-tabs{display:flex;gap:4px;padding:8px 28px 0;border-bottom:1px solid #8a6a3a88}.manual-tabs button{padding:8px 14px;font:700 14px var(--display);color:var(--ink-2);border-bottom:3px solid transparent}.manual-tabs button.active{color:var(--ink);border-bottom-color:var(--crimson)}.manual-body{padding:16px 32px 30px;color:var(--ink)}.manual-body h3{font-size:18px;color:var(--crimson);margin:14px 0 8px}.manual-body p{margin-bottom:10px}.manual-body ul{padding-left:22px;display:flex;flex-direction:column;gap:5px}.manual-body li::marker{color:var(--crimson)}.manual-body li b{font-weight:600}.keys{display:grid;grid-template-columns:1fr 1fr;gap:2px 22px}.keys div{display:flex;justify-content:space-between;gap:10px;padding:4px 0;border-bottom:1px dotted #8a6a3a99;font-size:15px}.keys dt{font-weight:600;color:var(--ink)}.keys dd{color:var(--ink-2);text-align:right;font-style:italic}.toast{position:fixed;left:50%;bottom:30px;transform:translate(-50%);padding:10px 22px;z-index:80;font:italic 400 18px var(--body);box-shadow:inset 0 0 0 1px #6b4a2b,inset 0 0 30px #6b4a2b55,var(--shadow)}.battle-screen{position:absolute;inset:0;display:block;-webkit-user-select:none;user-select:none;--hud: #1d140ef2;--hud-edge: #c9a24a88}.battle-canvas{position:absolute;inset:0}.battle-canvas canvas{display:block}.battle-error{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:14px;text-align:center;padding:20px}.battle-top,.clock,.place,.speed,.minimap-wrap,.cards,.orders,.hover-card,.paused-chip,.mode-hint{background:var(--grain),var(--hud);border:1px solid #0a0705;box-shadow:inset 0 0 0 1px var(--hud-edge),0 6px 18px #0009}.battle-top{position:absolute;top:12px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:14px;padding:8px 16px;border-radius:3px;z-index:10}.morale-side{display:flex;align-items:center;gap:9px}.morale-name{font:700 15px var(--display);color:var(--c);filter:brightness(1.25);min-width:80px}.morale-side.enemy .morale-name{text-align:right}.morale-side b{font:700 16px var(--display);width:34px;text-align:center;color:var(--parch)}.morale-bar{width:190px;height:12px;background:#0009;border:1px solid var(--gold);overflow:hidden;display:flex}.morale-side.enemy .morale-bar{justify-content:flex-end}.morale-bar i{display:block;height:100%;background:linear-gradient(180deg,color-mix(in srgb,var(--c) 70%,#fff),var(--c));transition:width .3s}.flag-row{display:flex;gap:6px}.flag-chip{position:relative;width:34px;height:38px;display:grid;place-items:center;padding-bottom:4px;font:700 17px var(--display);background:var(--parch);color:var(--ink);overflow:hidden;clip-path:polygon(0 0,100% 0,100% 78%,50% 100%,0 78%)}.flag-chip.mine{background:var(--c0);color:#fff}.flag-chip.enemy{background:var(--c1);color:#fff}.flag-chip i{position:absolute;left:0;top:0;height:4px;background:var(--c0)}.flag-chip i.toward-enemy{background:var(--c1)}.battle-meta{position:absolute;top:12px;left:12px;display:flex;flex-direction:column;align-items:flex-start;gap:6px;z-index:10}.battle-corner{position:absolute;top:12px;right:12px;display:flex;gap:6px;z-index:10}.clock{font:700 16px var(--display);padding:5px 12px;border-radius:3px;color:var(--parch)}.place{font:italic 400 16px var(--body);padding:5px 12px;border-radius:3px;color:var(--text)}.speed{display:flex;border-radius:3px;overflow:hidden}.speed button{padding:5px 11px;font:700 13px var(--display);color:var(--text-2)}.speed button.active{background:var(--crimson);color:var(--gold-2)}.deploy-banner{position:absolute;top:74px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:16px;padding:14px 20px;color:var(--ink);background:var(--paper),radial-gradient(ellipse at 50% 40%,var(--parch) 45%,var(--parch-2));box-shadow:inset 0 0 0 1px #6b4a2b,inset 0 0 30px #6b4a2b55,var(--shadow);z-index:10;max-width:calc(100vw - 30px)}.deploy-banner div{display:flex;flex-direction:column;max-width:560px}.deploy-banner b{font:700 18px var(--display);color:var(--forest)}.deploy-banner span{font-size:15px;color:var(--ink)}.deploy-banner .ghost{color:var(--ink-2)}.rout-banner{position:absolute;top:90px;left:50%;transform:translate(-50%);font:700 42px var(--display);color:var(--bad-light);text-shadow:0 2px 0 #3a0f08,0 4px 22px #000;z-index:10;pointer-events:none;white-space:nowrap}.rout-banner.good{color:var(--gold-2)}.paused-chip,.mode-hint{position:absolute;left:50%;top:76px;transform:translate(-50%);padding:6px 16px;border-radius:3px;font:italic 400 17px var(--body);color:var(--parch);z-index:10;pointer-events:none}.hover-card{position:absolute;left:50%;bottom:196px;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;padding:6px 16px;border-radius:3px;pointer-events:none;z-index:10}.hover-card.enemy{box-shadow:inset 0 0 0 1px var(--bad-light),0 6px 18px #0009}.hover-card b{font:700 15px var(--display);color:var(--parch)}.hover-card span{font-size:15px;color:var(--text-2)}.mode-hint{top:auto;bottom:196px}.battle-bottom{position:absolute;left:10px;right:10px;bottom:10px;display:grid;grid-template-columns:276px 1fr 360px;gap:10px;align-items:end;pointer-events:none;z-index:10}.battle-bottom>*{pointer-events:auto}.minimap-wrap{border-radius:3px;padding:6px}.minimap-wrap canvas{display:block;width:264px;height:140px;cursor:pointer}.minimap-foot{display:flex;justify-content:space-between;font:italic 400 14px var(--body);color:var(--text-2);padding:4px 3px 0}.cards{display:flex;flex-wrap:wrap-reverse;align-content:flex-start;gap:5px;max-height:176px;overflow-y:auto;padding:6px;border-radius:3px}.card{position:relative;width:64px;height:78px;border-radius:2px;border:1px solid #6b4a2b;background:var(--paper),linear-gradient(180deg,#f1e5c7,#d9c49a);display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding:4px 5px 5px;color:var(--ink)}.card svg{position:absolute;top:6px;left:50%;transform:translate(-50%);width:36px;height:36px;color:var(--ink);fill:none;stroke:currentColor;stroke-width:2.2;stroke-linejoin:round;stroke-linecap:round}.card:hover:not(:disabled){border-color:var(--gold)}.card.selected{border-color:var(--crimson);box-shadow:0 0 0 2px var(--gold),0 0 12px #c9a24a99;background:var(--paper),linear-gradient(180deg,#f8e3a4,#e3c477)}.card.engaged:after{content:"";position:absolute;inset:2px;border:1px dashed var(--crimson);pointer-events:none}.card.dead{background:#4a3a2c;border-style:dashed}.card.dead svg{color:#c4b291}.card-men{font:700 13px var(--display);margin-bottom:3px}.card-group{position:absolute;top:3px;left:4px;font:700 12px var(--display);color:var(--crimson)}.card-rank{position:absolute;top:3px;right:3px;display:flex;flex-direction:column;gap:1px}.card-rank i{width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid var(--crimson)}.card-state{position:absolute;top:36px;right:4px;font:700 13px var(--display);color:var(--crimson)}.card-bar{width:100%;height:4px;background:#0003;overflow:hidden}.card-bar i{display:block;height:100%;background:var(--forest)}.orders{border-radius:3px;padding:10px 12px;display:flex;flex-direction:column;gap:8px}.orders-head{display:flex;justify-content:space-between;align-items:baseline}.orders-head b{font:700 16px var(--display);color:var(--parch)}.orders-head span{font:italic 400 15px var(--body);color:var(--text-2)}.order-buttons{display:grid;grid-template-columns:1fr 1fr;gap:5px}.order-buttons button,.ability{padding:6px 8px;border-radius:2px;border:1px solid #c9a24a99;background:#2a1e15;font:700 12px var(--display);letter-spacing:.03em;color:var(--parch);display:flex;align-items:center;justify-content:space-between;gap:4px}.order-buttons button:hover:not(:disabled),.ability:hover:not(:disabled){border-color:var(--gold-2);background:var(--wood-3)}.order-buttons button.active,.ability.active{background:var(--crimson);border-color:var(--gold-2);color:var(--gold-2)}.order-buttons button:disabled,.ability:disabled{border-style:dashed;border-color:#7d6a50;background:transparent;color:var(--text-2)}.order-buttons kbd{font-size:11px}.cp-row{display:flex;align-items:center;gap:8px}.cp-label{font:italic 400 15px var(--body);color:var(--text-2)}.cp-bar{flex:1;height:8px;background:#0009;border:1px solid #c9a24a99;overflow:hidden}.cp-bar i{display:block;height:100%;background:linear-gradient(90deg,#a07a22,var(--gold-2))}.cp-row b{font:700 15px var(--display);color:var(--gold-2);width:34px;text-align:right}.ability-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.ability{flex-direction:column;align-items:flex-start;min-height:52px;text-align:left}.ability em{font:italic 400 14px var(--body);letter-spacing:0;color:var(--text-2)}.ability.active em{color:var(--gold-2)}@media (max-width: 900px){.run-body{grid-template-columns:1fr;grid-template-rows:1fr auto}.army-pane{max-height:40vh}.offer-grid{grid-template-columns:1fr}}
