@font-face{font-family:Barlow Condensed;src:url(/assets/fonts/BarlowCondensed-Regular.ttf) format("truetype");font-weight:400 500;font-style:normal;font-display:swap}@font-face{font-family:Barlow Condensed;src:url(/assets/fonts/BarlowCondensed-SemiBold.ttf) format("truetype");font-weight:600 700;font-style:normal;font-display:swap}@font-face{font-family:"Noto Serif Display";src:url(/assets/fonts/NotoSerifDisplay-Regular.ttf) format("truetype");font-weight:400 600;font-style:normal;font-display:swap}:root{--ink:#191d18;--ink-deep:#121610;--panel:#252b21;--cream:#eee4ca;--muted:#c0c1a9;--gold:#cbb17d;--gold-light:#efcf92;--line:#8b89624d;--red:#a74432;--serif:"Noto Serif Display",Georgia,serif;--sans:"Barlow Condensed","Arial Narrow",sans-serif;color-scheme:dark;font-family:var(--sans);font-size:16px;color:var(--cream);background:var(--ink);font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,summary{touch-action:manipulation}button{font:inherit;color:inherit;border-radius:0;cursor:pointer;min-height:44px;border:1px solid var(--line);background:transparent}button:disabled{cursor:default;color:#999e87;background:#22271f}button:focus-visible,summary:focus-visible,input:focus-visible{outline:2px solid var(--gold-light);outline-offset:3px}button:hover:not(:disabled){background-color:#ffffff0c}button svg{pointer-events:none}button,a,summary{-webkit-tap-highlight-color:transparent}::selection{background:#aa683e;color:#fff0cf}input{accent-color:var(--gold);caret-color:var(--gold)}.icon{width:28px;height:28px;flex-shrink:0}.hidden{display:none!important}.small-label{display:block;font-size:11px;letter-spacing:1px;color:var(--muted)}#app{min-height:760px;height:100svh;display:flex;flex-direction:column;padding:0 28px;background:var(--ink)}.topbar{min-height:86px;display:flex;align-items:center;gap:24px;flex-shrink:0}.wordmark{display:flex;align-items:center;gap:10px;white-space:nowrap}.brand-mark{width:41px;height:50px;color:#cb694d}.wordmark>span{font:500 33px/1 var(--serif);letter-spacing:2px}.wordmark-the{font-size:14px;vertical-align:middle}.hold-clock{margin-left:auto;text-align:center;min-width:130px}.hold-clock .small-label{color:var(--gold)}.hold-clock strong{font:500 36px/1.2 var(--serif);font-variant-numeric:tabular-nums;letter-spacing:2px}.top-resources{display:flex;gap:26px;margin-left:auto}.resource{display:flex;align-items:center;gap:9px}.resource>.icon{color:var(--gold);width:26px;height:30px}.resource strong{font-size:27px;font-weight:500;line-height:1.2;display:block;font-variant-numeric:tabular-nums}.danger{color:#ffaf91}.utility{display:flex;border-left:1px solid var(--line);padding-left:12px;gap:3px}.utility-button{border:0;width:44px;height:44px;display:grid;place-items:center;color:var(--muted)}.utility-button .icon{width:23px;height:23px}.game-shell{display:flex;flex:1;min-height:0;flex-direction:column;gap:10px}.rear-progress{display:flex;align-items:center;gap:14px;min-height:27px;font-size:13px;color:#d9d8bc}.rear-progress>span:last-child{font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--gold)}progress{height:5px;width:140px;border:0;background:#515542}progress::-webkit-progress-bar{background:#515542}progress::-webkit-progress-value{background:var(--gold)}progress::-moz-progress-bar{background:var(--gold)}.battlefield{flex:1;width:100%;margin-inline:auto;min-height:300px;position:relative;border:1px solid #a5976e80;isolation:isolate;overflow:hidden;overflow:clip;background:#716343;touch-action:none}#game-canvas{position:absolute;inset:0;z-index:-3}#game-canvas canvas{display:block!important;width:100%!important;height:100%!important}.battle-vignette{position:absolute;inset:0;pointer-events:none;z-index:-1;background:linear-gradient(90deg,#101a139c,transparent 24%,transparent 82%,#17201766)}.map-heading{position:absolute;left:22px;top:18px;pointer-events:none;text-shadow:0 2px 7px #132015}.map-heading h1{font:500 27px/1.1 var(--serif);margin:0 0 7px;color:#fff0cc}.map-heading>span{font-size:10px;letter-spacing:1px;color:#e5dcc0}.wave-banner{position:absolute;left:22px;top:100px;display:flex;flex-direction:column;gap:3px;text-shadow:0 2px 7px #152017;pointer-events:none}.wave-banner #phase-label{font-size:11px;color:#e7cda4;letter-spacing:.8px}.wave-banner #wave-count{font:500 25px/1.3 var(--serif);letter-spacing:1px}.wave-banner #wave-name{font-size:13px;color:#e5dfc3}#wave-meter{width:110px;height:3px;background:#e1d6b144;margin-top:8px}#wave-meter span{display:block;height:100%;background:var(--gold-light);transition:width .2s}.deployment-slots{position:absolute;inset:0;pointer-events:none}.deployment-slot{position:absolute;transform:translate(-50%,-50%);width:64px;height:60px;background:none;border:0;pointer-events:auto;z-index:2;display:grid;place-items:center}.slot-focus{height:41px;width:60px;border-radius:50%;border:1px solid transparent;transform:translateY(3px)}.deployment-slot:hover .slot-focus,.deployment-slot:focus-visible .slot-focus{border-color:#fff0b5;background:#e8cf9130}.deployment-slot:focus-visible{outline:2px solid var(--gold-light);outline-offset:-4px}.deployment-slot.valid-position{cursor:crosshair}#battle-overview{position:absolute;top:14px;right:14px;width:136px;border:1px solid #b7ad7d66;background:#182218ed;color:#e7dfbf;padding:6px;z-index:3;touch-action:manipulation}#battle-overview>span{display:block;font-size:10px;text-align:center;letter-spacing:.6px}.overview-key{color:#f29679;display:block;letter-spacing:0}#battle-overview svg{display:block;width:100%;height:84px}#battle-overview>div{display:flex;gap:4px}#battle-overview button{min-width:0;flex:1;font-size:12px;min-height:32px;padding:0 5px}.map-pan{display:none;position:absolute;right:14px;bottom:12px;z-index:4;background:#182218ed}.map-pan button{width:44px;min-height:44px;font-size:24px}.pressure{--pressure-background:#762c21eb;position:absolute;top:14px;left:50%;transform:translate(-50%);color:#ffddbe;background:var(--pressure-background);border:1px solid #f1a07880;padding:8px 14px;font-size:14px;line-height:1.25;min-width:44px;min-height:44px;z-index:5;text-align:left;opacity:0;pointer-events:none;touch-action:manipulation}.pressure.visible{opacity:1;pointer-events:auto}.pressure>span{display:block}.pressure-action{font-weight:600}.pressure:hover:not(:disabled){background-color:var(--pressure-background)}.favor-widget{position:absolute;bottom:18px;left:22px;width:205px;pointer-events:none;text-shadow:0 1px 5px #111}.favor-widget>span{display:flex;justify-content:space-between;gap:8px;color:#f0ddae;font-size:11px;letter-spacing:.4px}.favor-widget strong{font-weight:400;font-variant-numeric:tabular-nums}.favor-track{height:3px;background:#d6cba144;margin-top:7px}.favor-track>span{height:100%;display:block;background:var(--gold-light);transition:width .3s}.war-orders{flex-shrink:0}.orders-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:9px}.next-wave{display:flex;flex-direction:column;gap:2px;min-width:0}.next-wave strong{font-size:12px;font-weight:600;color:var(--gold);letter-spacing:.7px}.next-wave>span{font-size:13px;color:var(--muted);line-height:1.3}.next-wave #wave-tactic{color:#f0d8b0}.commit-button{display:grid;grid-template-columns:25px 1fr;gap:2px 10px;align-items:center;min-width:230px;min-height:53px;background:#9b3e2e;color:#ffdfae;border:1px solid #d0865c88;padding:8px 16px}.commit-button>.icon{grid-row:1/3;width:25px;height:27px}.commit-button>span{font-size:14px;font-weight:600;letter-spacing:1px;white-space:nowrap}.commit-button small{font-size:10px;letter-spacing:1px}.commit-button:hover:not(:disabled){background:#b15239}.commit-button:disabled{border-color:#68704988;color:#b9c19e}.battle-commands{display:flex;gap:8px;margin-bottom:9px}.battle-commands>button{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:5px 14px;font-size:15px;background:#2c3225;color:var(--gold-light)}.battle-commands>button:disabled{background:#20261e;color:#a7ad96}.battle-commands span{display:flex;flex-direction:column;text-align:left}.battle-commands small{display:block;font-size:12px;font-weight:400;color:var(--muted);line-height:1.3}.battle-commands .icon{width:25px;height:25px}.battle-commands #speed{margin-left:auto;flex-direction:column;gap:0;min-width:64px;font-size:21px;line-height:1}.battle-commands #speed small{font-size:11px;margin-top:3px}.defense-roster{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.defense-card{position:relative;min-width:0;min-height:78px;display:flex;align-items:center;gap:10px;text-align:left;border:1px solid #8d8e6b66;background:#292f23;padding:9px 12px}.defense-card:hover{background:#383e2e;border-color:#c1ad74}.defense-card.selected{background:#41472f;border-color:#e0c181}.defense-illustration{flex-shrink:0;color:#d0c18f;width:47px;height:48px}.defense-illustration>.icon{width:100%;height:100%;stroke-width:1.5}.defense-card-copy{display:flex;flex-direction:column;min-width:0;gap:3px}.defense-name{font:500 18px/1.15 var(--serif);color:#eee4ca;white-space:nowrap}.defense-caption{font-size:11px;color:#c2c4ab}.defense-price{font-size:13px;color:#e5c98c;white-space:nowrap}.lock-label{font-size:10px;color:#c1c6b0;white-space:nowrap}.lock-label:empty{display:none}.defense-card.locked{background:#20271d;border-color:#82846955}.defense-card.locked .defense-illustration{color:#949d7f}.defense-card.locked .defense-name{color:#bcc4a9}.defense-card.unaffordable .defense-price{color:#ffb59d}.selection-panel{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;border-top:1px solid var(--line);margin-top:10px;padding-top:10px;min-height:72px}#field-note{font-size:14px;line-height:1.35}#field-note strong{font-size:15px;font-weight:600;color:#ead9b4}#field-note p{margin:3px 0;color:var(--muted)}#field-note #order-description{color:#d2ceb3}.cancel-selection{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--muted);border:0;white-space:nowrap;padding:3px 0 3px 10px;min-height:44px;flex-shrink:0}.cancel-selection .icon{width:18px;height:18px}.defense-detail{flex:1;display:grid;grid-template-columns:minmax(170px,1fr) minmax(255px,1fr);gap:5px 20px}.detail-heading h2{font:500 20px/1.2 var(--serif);margin:0 0 4px}.detail-heading h2 span{font:13px var(--sans);color:var(--gold);margin-left:5px}.detail-heading>span{font-size:13px;color:var(--muted)}.role-explanation{font-size:13px;line-height:1.4;margin:0;color:#d0d2ba;grid-column:1;grid-row:2}.stat-table{border-collapse:collapse;font-size:13px;width:100%;grid-column:2;grid-row:1/4;font-variant-numeric:tabular-nums}.stat-table th,.stat-table td{padding:3px 7px;text-align:right;border-bottom:1px solid #8b89622b;font-weight:400}.stat-table th:first-child{text-align:left;padding-left:0;color:var(--muted)}.stat-table thead th{font-size:11px;color:var(--gold);font-weight:600}.stat-table td:last-child{color:var(--gold-light)}.stat-note{font-size:12px;margin:0;color:var(--muted);line-height:1.3;grid-column:1;grid-row:3}.context-actions{display:flex;gap:7px;grid-column:1/-1;margin-top:4px}.context-actions button{min-height:44px;background:#303727;border:1px solid #aa986588;padding:6px 12px;font-size:13px;color:var(--gold-light)}.context-actions button:disabled{color:#9ba38c;background:#242b21;border-color:#838c5f44}.game-footer{min-height:35px;display:flex;align-items:center;justify-content:space-between;gap:15px;font-size:11px;color:#b5b99e;flex-shrink:0}.game-footer strong{font-weight:600;color:#e5c68a;margin-left:5px}.footer-controls{display:flex;align-items:center;gap:5px}.footer-controls button{border:0;min-height:32px;color:#d1c599;font-size:11px;padding:0 4px}dialog{padding:0;border:1px solid #a9976d88;max-width:min(820px,calc(100vw - 28px));width:600px;background:#22291f;color:var(--cream);box-shadow:0 20px 80px #0009;max-height:calc(100svh - 32px);overflow-y:auto;scrollbar-color:#9d9269 #22291f}dialog::backdrop{background:#0d150ee8}#dialog-content{padding:35px 38px;text-align:center;position:relative}#dialog-content h2{font:500 35px/1.15 var(--serif);margin:0 0 16px;color:#fff0cc}#dialog-content>p{font-size:17px;line-height:1.5;max-width:440px;margin:0 auto 20px;color:#d1d4bc}.modal-primary{background:#9e412e;border:1px solid #c68a5f99;color:#ffe6ba;min-height:50px;display:flex;gap:15px;align-items:center;justify-content:center;font-size:15px;padding:11px 22px;margin:22px auto 0;min-width:230px}.modal-primary>.icon{width:22px;height:22px}.modal-primary:hover{background:#b2533b}.modal-secondary{font-size:13px;border:0;color:var(--muted);margin-top:8px;padding:8px 20px;min-height:44px}.dialog-close{position:absolute;right:7px;top:7px;border:0;color:var(--muted);width:44px;height:44px;display:grid;place-items:center}.dialog-close>.icon{width:21px;height:21px}.manual-steps{padding-left:23px;text-align:left;margin:20px 0;color:#d1d4bc;font-size:15px;line-height:1.5}.manual-steps li{padding-left:4px;margin:12px 0}.manual-steps strong{color:var(--cream)}.manual-more{text-align:left;font-size:14px;color:#cbd1b7;line-height:1.5;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:8px 0}.manual-more summary{min-height:44px;cursor:pointer;padding:10px 0;color:var(--gold-light)}.manual-more p{margin:8px 0}.audio-settings{border:0;border-top:1px solid var(--line);padding:13px 0 0;margin:24px 0 0;text-align:left;display:grid;grid-template-columns:1fr;gap:4px}.audio-settings legend{font-size:14px;color:var(--gold);padding:0 9px 0 0}.audio-settings label{font-size:14px;display:flex;justify-content:space-between;gap:10px}.audio-settings output{font-variant-numeric:tabular-nums;color:var(--gold-light)}.audio-settings input{width:100%;min-height:44px;margin:0}.audio-settings p{font-size:12px;color:var(--muted);line-height:1.4;margin:0}.gift-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.gift-option{display:flex;flex-direction:column;align-items:center;text-align:center;padding:20px 15px;border:1px solid #9c926688;background:#303827;min-height:245px;gap:14px}.gift-option:hover{background:#454b32;border-color:#dfc188}.gift-option>.icon{width:52px;height:58px;color:#e3c88d;stroke-width:1.5}.gift-option>strong{font:500 22px/1.2 var(--serif);color:#f6e5bc}.gift-option>span{font-size:14px;line-height:1.4;color:#d0d7ba}.gift-option>b{margin-top:auto;font-size:12px;font-weight:500;color:#ecd296;display:flex;align-items:center;gap:6px}.gift-option>b>.icon{width:18px;height:18px}dialog:has(.gift-options){width:800px}.defeat-time{display:flex;flex-direction:column;align-items:center;gap:6px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:14px 0;margin:20px 0}.defeat-time>span{font-size:12px;color:var(--gold)}.defeat-time strong{font:500 58px/1.2 var(--serif);letter-spacing:3px}.defeat-stats{display:flex;justify-content:space-around;gap:15px}.defeat-stats span{display:flex;flex-direction:column;gap:5px;font-size:12px;color:#c0c8aa}.defeat-stats strong{font:500 28px var(--serif);color:#eee0b5}.defeat-consequence{text-align:left;margin-top:24px;font-size:15px;line-height:1.4;color:#cbd4b7}.defeat-consequence h3{font-size:17px;color:#ecdbb2;font-weight:500;margin:18px 0 8px}.defeat-consequence p{margin:7px 0}.defeat-consequence ul{padding-left:20px}.defeat-consequence li{margin:5px 0}.new-record{color:var(--gold-light)}#battle-loading{position:absolute;inset:0;display:grid;place-items:center;background:#252b21;color:var(--gold-light);font-size:18px;pointer-events:none;z-index:1}#dialog-content #gift-scout{font-size:14px;line-height:1.35;border-top:1px solid var(--line);padding-top:12px;max-width:none;margin-bottom:16px}#gift-scout>strong{display:block;color:var(--gold-light);font-weight:500;margin-bottom:4px}#gift-scout>span{display:block}.gift-icon-frame{height:84px;width:100%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.gift-icon-frame>.icon{width:52px;height:58px;color:#e3c88d;stroke-width:1.5}.gift-engine{display:block;width:96px;height:80px;background-size:768px 320px;background-repeat:no-repeat}.gift-option .gift-context{font-size:13px;line-height:1.35;color:#eee0ba;border-top:1px solid var(--line);padding-top:10px}.gift-option{gap:11px}.gift-options[data-count="4"]{grid-template-columns:repeat(2,minmax(0,1fr))}.gift-options[data-count="4"] .gift-option{display:grid;grid-template-columns:72px minmax(0,1fr);padding:13px;gap:7px 12px;min-height:0;text-align:left}.gift-options[data-count="4"] .gift-icon-frame{grid-column:1;grid-row:1/3;width:72px;height:76px}.gift-options[data-count="4"] .gift-engine{flex-shrink:0}.gift-options[data-count="4"] .gift-option>strong{grid-column:2;font-size:21px}.gift-options[data-count="4"] .gift-option>span:not(.gift-icon-frame){grid-column:2}.gift-options[data-count="4"] .gift-context,.gift-options[data-count="4"] .gift-option>b{grid-column:1/-1}.gift-options[data-count="4"] .gift-option>b{justify-content:flex-end}@media(min-width:1600px){#app{padding:0 40px}.topbar{min-height:96px}.defense-card{min-height:85px}.defense-name{font-size:21px}.map-heading{left:28px;top:24px}.wave-banner{left:28px;top:115px}}@media(max-width:1000px){#app{padding:0 18px}.topbar{gap:15px}.wordmark>span{font-size:28px}.top-resources{gap:16px}.hold-clock{min-width:110px}.defense-card{gap:7px;padding:8px}.defense-illustration{width:35px;height:44px}.defense-name{font-size:16px}.game-footer>span:first-child{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}.war-orders>.selection-panel{margin:0 0 10px;padding:0 0 10px;min-height:0;border-top:0;border-bottom:1px solid var(--line)}#app[data-opening=true] .battle-commands{display:none}.intel-button{flex-shrink:0;min-height:44px;padding:6px 12px;color:var(--gold-light);font-size:13px;border-color:#aa986588}.target-orders{grid-column:1/-1;min-width:0;margin:6px 0 0;padding:7px 0 0;border:0;border-top:1px solid var(--line)}.target-orders legend{padding:0 8px 0 0;color:var(--gold);font-size:13px}.target-orders>div{display:flex;gap:5px}.target-orders button{flex:1;min-height:44px;padding:5px 12px;font-size:14px;color:var(--muted)}.target-orders button[aria-pressed=true]{color:#fff0c2;background:#41472f;border-color:var(--gold)}.target-orders p{font-size:12px;line-height:1.3;color:var(--muted);margin:6px 0 0}.enemy-intelligence{display:grid;grid-template-columns:1fr 1fr;gap:14px;text-align:left}.enemy-intelligence details{border-top:1px solid var(--line);min-width:0}.enemy-intelligence summary{display:flex;align-items:center;gap:5px;min-height:100px;cursor:pointer;list-style:none;-webkit-tap-highlight-color:transparent}.enemy-intelligence summary::-webkit-details-marker{display:none}.enemy-intelligence summary:after{content:"+";font-size:24px;color:var(--gold);margin-left:auto}.enemy-intelligence details[open]>summary:after{content:"−"}.enemy-entry-heading{flex:1;min-width:0}.enemy-entry-heading>strong{display:block;font:500 21px/1.2 var(--serif);color:var(--gold-light);margin-bottom:5px}.enemy-recognition{display:block;font-size:13px;line-height:1.3;color:var(--muted)}.enemy-portrait{display:block;position:relative;flex:0 0 82px;height:88px;overflow:hidden;background:radial-gradient(ellipse at 50% 80%,#777b4b38,transparent 65%)}.enemy-portrait>span{position:absolute;left:-7px;bottom:5px;width:96px;height:80px;background-size:768px 320px;background-repeat:no-repeat;transform-origin:50% 92.5%}.enemy-intelligence .enemy-presence{display:block;color:var(--gold-light);font-size:13px;margin-top:5px;font-variant-numeric:tabular-nums}.enemy-intelligence dl{margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 12px}.enemy-intelligence dl>div{min-width:0}.enemy-intelligence dt{font-size:11px;color:var(--muted)}.enemy-intelligence dd{font-size:15px;margin:1px 0 0;font-variant-numeric:tabular-nums}.enemy-intelligence details>p{font-size:14px;line-height:1.35;margin:9px 0 12px;color:#d2ceb3}@media(max-width:600px){.enemy-intelligence{grid-template-columns:1fr;gap:0}.enemy-intelligence summary{gap:10px;min-height:94px}.enemy-recognition{font-size:14px}}#app[data-phase=combat] .defense-roster,#app[data-phase=combat] #reinforce,#app[data-phase=combat] #commit,#app[data-phase=combat] #wave-tactic{display:none}.wave-approach{border-top:1px solid #b7a57844;border-bottom:1px solid #b7a57844;margin:0 0 9px;color:var(--muted);font-size:13px}.wave-approach[hidden]{display:none}.wave-approach summary{min-height:44px;padding:11px 5px;cursor:pointer;color:var(--gold-light)}.wave-approach ol{margin:0 0 8px;padding-left:26px}.wave-approach li{padding:5px 5px 7px;line-height:1.4}.wave-approach li strong,.wave-approach li span,.wave-approach li small{display:block}.wave-approach li strong{color:var(--gold-light);font-weight:500}.wave-approach li small{font-size:12px}.wave-approach>p{margin:8px 5px;font-size:12px}#app[data-phase=combat] .war-orders{position:relative}#app[data-phase=combat] .orders-heading{margin-bottom:7px;gap:12px}#app[data-phase=combat] .next-wave{flex:1;flex-direction:row;gap:12px;align-items:center}#app[data-phase=combat] .battle-commands{margin-bottom:0}#app[data-phase=combat] .battle-commands #rally,#app[data-phase=combat] .battle-commands #volley{flex:1}#app[data-phase=combat] .selection-panel{display:none}#app[data-phase=combat] .selection-panel.has-defender{display:flex;position:static;margin:8px 0 0;padding:8px 0 0;max-height:none;overflow:visible;background:none;border:0;border-top:1px solid var(--line);box-shadow:none;border-bottom:0}#app[data-phase=combat] .context-actions{display:none}#app[data-phase=combat] .selection-panel.has-defender{width:100%;gap:8px}#app[data-phase=combat] .defense-detail{display:flex;align-items:center;gap:18px;min-width:0}#app[data-phase=combat] .role-explanation,#app[data-phase=combat] .stat-table,#app[data-phase=combat] .stat-note,#app[data-phase=combat] .target-orders p,#app[data-phase=combat] .cancel-selection span{display:none}#app[data-phase=combat] .cancel-selection{width:44px;min-width:44px;height:44px;padding:0;justify-content:center}.deployment-slot:disabled{background:transparent;pointer-events:none}#app[data-phase=combat] .target-orders{margin-top:6px}#app[data-phase=combat] .target-orders[data-order=support]>p{display:block;color:var(--gold-light);font-size:12px;line-height:1.2;margin:4px 0 0}#volley-label{font-weight:inherit}.rear-message{flex:1;min-width:0;position:relative;height:1.4em;line-height:1.4}.rear-message>#rear-objective{display:block}.rear-message[data-notice=true]>#rear-objective{visibility:hidden}.rear-notice{position:absolute;inset:0;display:flex;align-items:center;pointer-events:none;opacity:0;transition:opacity .16s;color:var(--cream)}.rear-notice.visible{opacity:1}.rear-message[data-notice-kind=milestone] .rear-notice{color:var(--gold-light)}.rear-message[data-notice-kind=loss] .rear-notice{color:#ffb39a}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}#rear-history>ol{padding-left:20px;margin:12px 0}#rear-history li{margin:0 0 12px}#rear-history li strong,#rear-history li span{display:block}#rear-history li strong{color:var(--gold-light);font-size:14px;font-weight:500;margin-bottom:4px}.battle-commands #cancel-volley{flex:0 0 44px;min-width:44px;max-width:44px;min-height:44px;padding:0}.battle-commands #cancel-volley .icon{display:block;width:20px;height:20px}.battle-commands #claim-gift{flex:0 0 44px;min-width:44px;max-width:44px;padding:3px;flex-direction:column;gap:1px;background:#49432b;border-color:var(--gold);color:#fff0c2}.battle-commands #claim-gift .icon{display:block;width:21px;height:23px}.battle-commands #claim-gift small{font-size:10px;line-height:1;color:#fff0c2}#volley[aria-pressed=true]{border-color:var(--gold-light);background:#49472c;color:#fff0c2}.volley-instruction{margin:6px 0 0;color:var(--gold-light);font-size:13px;line-height:1.25}.volley-aim-control{min-height:44px;margin-top:6px;padding:6px 12px;color:var(--gold-light);font-size:15px;background:#2c3225}.volley-aim-control:hover:not(:disabled){background:#39412e}.volley-aim-control:focus-visible{outline:2px solid var(--gold);outline-offset:2px}#app[data-volley-aiming=true] .battlefield{cursor:crosshair}.wave-report{border-left:2px solid var(--gold);padding:6px 12px;margin:0 0 10px;background:#bfa47408;font-size:13px;line-height:1.3}#app:not([data-phase=planning]) .wave-report{display:none}.wave-report-heading{display:flex;gap:8px 18px;align-items:baseline;flex-wrap:wrap}.wave-report-heading strong{font-size:12px;letter-spacing:.7px;color:var(--gold-light)}.wave-report-heading>span{color:var(--cream);font-variant-numeric:tabular-nums}.wave-report-outcome{display:flex;flex-wrap:wrap;gap:6px 18px;margin:4px 0;color:var(--muted)}.wave-report-outcome b{font-weight:600;color:var(--cream)}.wave-report details{float:right;max-width:100%;margin-left:18px}.wave-report summary{min-height:44px;display:list-item;align-content:center;color:var(--gold-light);cursor:pointer;padding:8px 2px;font-size:13px}.wave-report details[open]{float:none;margin-left:0}.wave-report dl{margin:0 0 6px;display:flex;gap:9px 24px;flex-wrap:wrap}.wave-report dl>div{display:flex;gap:8px}.wave-report dt{color:var(--muted)}.wave-report dd{margin:0;color:var(--cream);font-variant-numeric:tabular-nums}.wave-report details p{margin:6px 0;color:var(--muted);font-size:12px}.wave-report-hint{margin:5px 0;color:#e3d5b5;min-height:34px;align-content:center}.wave-report-partial{margin:4px 0;color:var(--muted);font-size:12px}.wave-report:after{content:"";display:block;clear:both}@media(min-width:701px)and (min-height:601px){#app[data-phase=planning]{height:auto}}.formation-training{grid-column:1/-1;min-width:0;border:0;border-top:1px solid var(--line);margin:7px 0 0;padding:8px 0 0}.formation-training legend{font-size:14px;color:var(--gold);padding:0 8px 0 0}.formation-training>p,.formation-training-note{font-size:13px;line-height:1.35;color:var(--muted);margin:0 0 8px}.formation-training-note{grid-column:1/-1;margin:5px 0 0}.formation-training>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.formation-training button{display:flex;flex-direction:column;align-items:flex-start;gap:5px;min-height:44px;padding:9px 11px;text-align:left;background:#292f23}.formation-training button strong{font:500 18px/1.2 var(--serif);color:var(--cream)}.formation-training button span{font-size:13px;line-height:1.35;color:var(--muted)}.formation-training button small{font-size:12px;color:var(--gold-light);margin-top:auto;padding-top:3px}.formation-training button[aria-pressed=true]{background:#41472f;border-color:var(--gold)}.detail-heading h2 .specialization-label{display:inline-block;font-size:12px;line-height:1.3;color:var(--gold-light);border:1px solid var(--line);padding:2px 5px;margin:3px 0 0 7px}.training-comparison thead th{font-size:12px;white-space:normal}#app:not([data-phase=planning]) .formation-training,#app:not([data-phase=planning]) .formation-training-note{display:none}.formation-training #specialization-standard{width:100%;min-height:44px;margin-top:7px;padding:7px 10px;align-items:center;justify-content:center;text-align:center;font-size:13px;color:var(--gold-light)}.delivery-settings{border-top:1px solid var(--line);padding-top:14px;margin-top:18px;text-align:left;font-size:13px;line-height:1.4;color:var(--muted)}.delivery-settings h3{font:500 19px var(--serif);color:var(--gold-light);margin:0 0 10px}.delivery-settings p{margin:7px 0}.delivery-settings #offline-status{color:var(--cream);font-size:14px}.delivery-settings #offline-notice:empty{display:none}.delivery-settings>div{display:flex;flex-wrap:wrap;gap:8px}.delivery-settings button{min-height:44px;padding:8px 12px;color:var(--gold-light);font-size:14px}#battle-overview #threat-focus{display:flex;flex-direction:column;justify-content:center;gap:2px;width:100%;min-height:48px;margin-top:5px;padding:6px 4px;border:1px solid #e4bc76;background:#443c27;color:#ffe1a4;text-align:center;line-height:1.15;white-space:normal}#battle-overview #threat-focus strong{font:600 12px/1.1 var(--sans);letter-spacing:.05em}#battle-overview #threat-focus span{font-size:12px}#battle-overview #threat-focus[data-severity=critical]{background:#74352a;border-color:#f19b7d;color:#ffe0d0}.formation-pressure{margin:4px 0;color:#edc780;font:600 12px/1.25 var(--sans)}.formation-pressure[data-severity=critical]{color:#f19b7d}#app[data-phase=combat] .defense-detail>.target-orders{margin:0 0 0 auto;padding:0;border:0;flex:0 1 340px}.trap-orders{border:0;padding:0;margin:12px 0 0;min-width:0}.slow-legend{display:inline-block;vertical-align:middle;margin-right:5px}.slow-legend svg{display:block;width:24px;height:20px}.rear-dispatch{margin:12px 0 18px;text-align:center}.rear-dispatch img{display:block;width:100%;height:auto;max-height:128px;object-fit:contain}.rear-dispatch figcaption{font:400 15px/1.35 var(--sans);color:var(--gold-light);margin-top:7px}#dialog-content>.rear-outcome{font-size:15px;line-height:1.3;margin:14px auto 0;color:var(--gold-light)}@media(max-width:700px),(max-height:600px){.rear-dispatch img{max-height:96px}.rear-dispatch figcaption{font-size:13px}}.trap-orders legend{font:600 13px var(--sans);color:var(--gold-light);margin-bottom:5px}.trap-orders>div{display:flex;gap:6px}.trap-orders button{min-height:44px;padding:8px 12px;border:1px solid var(--line);background:var(--panel);color:var(--cream);font:500 14px var(--sans)}.trap-orders [aria-pressed=true]{border-color:var(--gold-light);background:#443c27;color:var(--gold-light)}.trap-orders p{font:400 13px/1.3 var(--sans);margin:6px 0;color:var(--muted)}.trap-orders #spring-trap{width:100%;border-color:var(--gold-light);color:var(--gold-light)}#app[data-phase=combat] .defense-detail>.trap-orders{margin:0 0 0 auto;flex:0 1 300px}@media(max-width:700px),(max-height:600px){#app[data-phase=combat] .defense-detail{display:block}#app[data-phase=combat] .defense-detail>.target-orders{margin-top:6px}#app[data-phase=combat] .defense-detail>.trap-orders{margin-top:6px}#app[data-phase=combat] .selection-panel.has-trap{display:block;position:relative;padding:8px 0}#app[data-phase=combat] .has-trap .defense-detail{width:100%}#app[data-phase=combat] .has-trap .cancel-selection{position:absolute;right:0;top:0}#app[data-phase=combat] .has-trap .detail-heading{padding-right:44px}#app[data-phase=combat] .has-trap .detail-heading h2{font-size:18px;line-height:1.2;margin:0}#app[data-phase=combat] .has-trap .detail-heading h2>span{display:none}#app[data-phase=combat] .has-trap .detail-heading>span{font-size:12px;line-height:1.2}#app[data-phase=combat] .has-trap .trap-orders{display:grid;grid-template-columns:1fr 1fr 1.35fr;gap:5px}#app[data-phase=combat] .has-trap .trap-orders>div{display:contents}#app[data-phase=combat] .has-trap .trap-orders legend{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}#app[data-phase=combat] .has-trap .trap-orders button{padding:5px;font-size:13px;min-width:0}#app[data-phase=combat] .has-trap #spring-trap{grid-column:3;grid-row:1}#app[data-phase=combat] .has-trap #trap-status{grid-column:1/-1;grid-row:2;margin:0;font-size:12px}}#app[data-camera-pannable=false] #battle-overview>div,#app[data-camera-pannable=false] .map-pan{display:none}@media(max-width:700px){#app[data-phase=combat] .map-heading,#app[data-phase=combat] .wave-banner{display:none}}.gift-encounter{display:flex;align-items:center;justify-content:center;gap:24px;margin:0 auto 18px;text-align:left}.gift-patron{margin:0;width:80px;flex:0 0 80px;text-align:center}#gift-portrait,.gift-portrait-fallback{display:block;width:100%;height:auto;aspect-ratio:3/4;object-fit:contain}.gift-portrait-fallback{color:var(--gold-light);display:grid;place-items:center}.gift-portrait-fallback>.icon{width:75%;height:75%}.gift-patron figcaption{font:500 20px/1.1 var(--serif);color:#fff0cc;margin-top:4px}.gift-patron figcaption small{display:block;font:400 12px/1.3 var(--sans);color:#d1d4bc}.gift-encounter-text{min-width:0}#dialog-content .gift-encounter h2{margin:0 0 10px;padding:0}#dialog-content .gift-encounter h2:focus{outline:none}#gift-payment{font-size:16px;line-height:1.4;color:#d1d4bc;margin:0;font-variant-numeric:tabular-nums}#gift-payment strong{font-weight:500;color:#ecd296}@media(max-width:700px){.gift-encounter{gap:14px;margin-bottom:16px}.gift-patron{width:64px;flex-basis:64px}.gift-patron figcaption{font-size:18px}#gift-payment{font-size:14px}}@media(max-width:350px),(max-height:450px){.gift-encounter{gap:12px}.gift-patron{width:48px;flex-basis:48px}.gift-patron figcaption{font-size:17px}.gift-patron figcaption small{font-size:11px}#gift-payment{font-size:13px}}.intel-button small{display:block;font-size:11px;line-height:1.2;color:var(--muted);margin-top:2px}#observed-invader{padding:12px 0;margin-bottom:12px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}#observed-invader>strong{display:block;font-size:12px;color:var(--muted);font-weight:400}.observed-health{display:block;font:500 22px/1.3 var(--serif);color:var(--gold-light);font-variant-numeric:tabular-nums}#observed-invader progress{display:block;width:100%;height:6px;margin-top:7px;border:0;border-radius:0;appearance:none;background:#30382b;accent-color:var(--gold)}#observed-invader progress::-webkit-progress-bar{background:#30382b}#observed-invader progress::-webkit-progress-value{background:var(--gold)}#observed-invader progress::-moz-progress-bar{background:var(--gold)}#observed-invader p{font-size:14px;line-height:1.4;margin:8px 0 0;color:var(--gold-light)}.intel-return-bar{position:sticky;bottom:0;z-index:2;margin:16px -14px -12px;padding:12px 0;background:#22291f;border-top:1px solid var(--line);box-shadow:0 -8px 16px #22291faa}.intel-return-bar .modal-primary{margin:0 auto}.enemy-results{list-style:none;padding:0;margin:4px 0 8px}.enemy-results>li{display:grid;grid-template-columns:48px minmax(0,1fr);gap:6px;padding:8px 0;border-top:1px solid var(--line)}.enemy-result-portrait{position:relative;width:48px;height:48px;overflow:hidden}.enemy-result-portrait>span{position:absolute;width:96px;height:80px;left:-24px;bottom:0;background-size:768px 320px;background-repeat:no-repeat;transform:scaleX(-1) scale(.5);transform-origin:50% 92.5%}.enemy-results button{min-height:44px;max-width:100%;border:0;padding:3px 0;text-align:left;color:var(--gold-light);font-weight:600}.enemy-results strong{display:block;margin:4px 0 8px;color:var(--gold-light)}.wave-report .enemy-results dl,.final-enemy-report .enemy-results dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 14px;margin:0;font-size:12px}.enemy-results dl>div{display:flex;justify-content:space-between;gap:5px}.enemy-results dd{margin:0;color:var(--cream);font-variant-numeric:tabular-nums}.enemy-results dt{color:var(--muted)}.enemy-results-note{font-size:12px;color:var(--muted)}.final-enemy-report{margin:12px 0}.final-enemy-report summary{min-height:44px;align-content:center;cursor:pointer;color:var(--gold-light)}.focus-order{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:2px;min-height:44px;max-width:100%;padding:2px 0;text-align:left;border:0;background:none;color:var(--gold-light);font:500 13px/1.2 var(--sans)}.focus-order small{font:400 12px/1.2 var(--sans);color:var(--muted)}.focus-order:hover{color:#ffe2b1}.focus-order:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.focus-choices{display:grid;gap:8px;margin-top:12px}.focus-target{width:100%;min-height:44px;background:#343d2a;border:1px solid var(--gold);color:var(--gold-light);font:500 16px var(--sans)}.focus-target[aria-pressed=true]{background:#634633;color:#ffe2b1}#focus-explanation{font:400 13px/1.35 var(--sans);color:var(--muted);margin:8px 0 0}.invader-picker{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 8px;margin:12px 0;text-align:left}.invader-picker label{grid-column:1/-1;font:400 13px var(--sans);color:var(--muted)}.invader-picker select,.invader-picker button{min-height:44px;min-width:0;max-width:100%;border:1px solid var(--line);background:#171f17;color:var(--gold-light);font:400 15px var(--sans);padding:5px 8px}.save-warning{border-top:1px solid var(--line);padding:8px 0;margin:0 0 12px;color:var(--cream);font-size:14px;line-height:1.4}.stand-backup{border-top:1px solid var(--line);padding-top:14px;margin:18px 0;text-align:left;color:var(--muted);font-size:14px;line-height:1.45}.stand-backup h3{font:500 19px var(--serif);color:var(--gold-light);margin:0 0 10px}.stand-backup p{margin:8px 0}.backup-actions{display:flex;flex-wrap:wrap;gap:8px}.backup-actions button{min-height:44px;padding:10px 14px;color:var(--gold-light)}#backup-notice:empty{display:none}.backup-preview{display:flex;flex-wrap:wrap;gap:14px 30px;text-align:left}.backup-preview dt{color:var(--muted);font-size:13px}.backup-preview dd{margin:4px 0;color:var(--cream);font-size:22px}#salvage[data-full]:after{content:" FULL";font:600 11px/1 var(--sans);letter-spacing:.6px;color:var(--gold-light);vertical-align:middle}.armory-list{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:8px}.armory-item{display:grid;grid-template-columns:44px 1fr auto;gap:10px;align-items:center;padding:8px 10px;border:1px solid #8d8e6b55;background:#1d241b}.armory-icon .icon{width:40px;height:40px;color:#e6c98e}.armory-copy{display:grid;gap:2px;text-align:left}.armory-copy small{opacity:.75}.armory-copy span{font-size:14px;line-height:1.3}.armory-item button{min-height:44px;padding:0 12px;white-space:nowrap}@media(max-width:520px){.armory-item{grid-template-columns:36px 1fr}.armory-item button{grid-column:1/-1}}.defense-card[hidden],#app[data-phase=combat] #armory,#armory[hidden]{display:none}.boon-bar{display:flex;flex-wrap:wrap;gap:6px;grid-column:1/-1}.boon-bar[hidden]{display:none}.boon-bar button{display:flex;align-items:center;gap:8px;min-height:48px;padding:4px 10px;border:1px solid #e6c98e88;background:linear-gradient(#3a3320,#262418);color:#f3e2b6;text-align:left}.boon-bar button[aria-pressed=true]{outline:2px solid #ffd27a;background:#4c3d1c}.boon-bar .icon{width:28px;height:28px;color:#ffd27a}.boon-bar small{display:block;opacity:.8;font-size:12px}.boon-panel{min-width:0;margin:8px 0;border-block:1px solid var(--line);padding:7px 0}.boon-panel[hidden],.boon-notice[hidden]{display:none}.boon-bar button{flex:1 1 200px;min-width:0;max-width:100%;font-size:14px}.boon-bar button>span{min-width:0}.boon-bar .boon-feat{margin-top:4px;color:var(--gold-light)}.boon-bar button:disabled{background:#20261e;color:#b9c19e}.boon-notice{display:flex;gap:8px;align-items:flex-start;padding:8px;background:#3a3320;margin-bottom:7px;color:#f3e2b6}.boon-notice p{margin:0;flex:1;font-size:14px;line-height:1.4}.boon-notice button{flex:0 0 44px;min-width:44px;padding:8px}.boon-notice .icon{width:20px;height:20px}#boon-guide summary{min-height:44px;display:list-item;align-content:center;cursor:pointer;color:var(--gold-light);font-size:13px;padding:8px 0}#boon-guide p,#boon-guide li{font-size:13px;line-height:1.4}#boon-guide ul{padding-left:20px;margin:0}#boon-guide li{margin-bottom:10px}.boon-space{margin:0;font-size:12px;line-height:1.35;color:var(--muted)}.boon-progress{color:var(--gold-light);font-variant-numeric:tabular-nums}.boon-active,.boon-result{margin:0 0 7px;font-size:13px;line-height:1.4;color:var(--gold-light)}.boon-placement{display:flex;align-items:center;gap:8px;margin-bottom:7px;position:sticky;top:0;z-index:1;background:var(--ink)}.boon-placement[hidden]{display:none}.boon-placement p{flex:1;margin:0;font-size:13px;line-height:1.4;color:var(--gold-light)}.boon-placement button{flex:0 0 72px;padding:5px;font-size:12px}#salvage-cap{font-size:10px;letter-spacing:0;white-space:nowrap}.contract-entry{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:7px 10px;margin-bottom:8px;text-align:left;color:var(--gold-light);font-size:15px}.contract-entry span{font-size:12px;color:var(--muted)}.contract-entry[hidden],.contract-status[hidden]{display:none}.contract-status{margin:0 0 8px;border-bottom:1px solid var(--line);font-size:13px;color:var(--gold-light)}.contract-status summary{min-height:44px;align-content:center;cursor:pointer;line-height:1.35;padding:6px 0}.contract-status p{margin:0 0 8px;font-size:12px;line-height:1.4;color:var(--muted)}.contract-board{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:22px;margin:16px 0}.contract-list{list-style:none;padding:0;margin:0}.contract-list li{border-bottom:1px solid var(--line)}.contract-list button{display:flex;flex-direction:column;justify-content:center;gap:3px;width:100%;padding:10px;border:0;text-align:left;min-height:58px}.contract-list button[aria-pressed=true]{background:#3a3320;color:var(--gold-light)}.contract-list button span{font-size:12px;color:var(--muted)}.contract-brief{min-width:0}.contract-brief h3{margin:0;font:500 25px/1.2 var(--serif);color:var(--gold-light)}.contract-brief p,.contract-criteria{font-size:14px;line-height:1.4}.contract-criteria{margin:14px 0}.contract-criteria>div{display:grid;grid-template-columns:60px minmax(0,1fr);gap:10px;margin:6px 0}.contract-criteria dt{color:var(--gold-light)}.contract-criteria dd{margin:0}.contract-brief label{display:block;margin-bottom:6px;color:var(--gold-light)}#contract-doctrine{width:100%;min-height:44px;font:inherit;padding:7px;background:var(--ink);color:var(--gold-light);border:1px solid var(--line)}.doctrine-army{padding-left:20px;font-size:13px;line-height:1.6}.contract-replacement{color:var(--muted)}.contract-actions{position:sticky;bottom:0;background:var(--ink);padding-top:8px}.contract-actions button{margin-top:6px}#contract-record-summary,#contract-personal-best{color:var(--gold-light);font-variant-numeric:tabular-nums}#contract-result{font-size:19px;color:var(--gold-light)}.license-text{font:inherit;font-size:12px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere;max-height:280px;overflow:auto}@media(max-width:700px){.contract-board{grid-template-columns:minmax(0,1fr);gap:18px}.contract-list button{min-height:48px;padding:7px 4px}.contract-brief p,.contract-criteria{font-size:13px}.contract-status{max-height:90px;overflow-y:auto}}@media(max-width:700px){.boon-bar{flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity}.boon-bar button{flex:0 0 220px;scroll-snap-align:start}}@media(max-width:700px){#app[data-phase=combat] .boon-panel{max-height:112px;overflow-y:auto;overscroll-behavior-y:contain;margin:6px 0}}@media(max-width:700px){#app{height:auto;min-height:100svh;padding:env(safe-area-inset-top) max(10px,env(safe-area-inset-right)) env(safe-area-inset-bottom) max(10px,env(safe-area-inset-left));overflow:visible}.topbar{display:grid;grid-template-columns:1fr auto;gap:3px 10px;min-height:109px;padding:10px 0}.wordmark{gap:6px}.brand-mark{width:27px;height:36px}.wordmark>span{font-size:24px;letter-spacing:1px}.wordmark-the{font-size:11px}.hold-clock{grid-column:2;grid-row:1;min-width:70px;margin:0}.hold-clock strong{font-size:25px;letter-spacing:1px}.hold-clock .small-label{font-size:10px;letter-spacing:.5px}.utility{grid-column:2;grid-row:2;display:flex;gap:0;border-left:0;padding:0}.utility-button{height:44px;min-height:44px;width:44px}.utility-button .icon{width:20px;height:20px}.top-resources{grid-row:2;grid-column:1;justify-content:flex-start;gap:12px;margin:0}.resource{gap:6px}.resource>.icon{width:19px;height:22px}.resource>span{display:block}.resource .small-label{font-size:10px;letter-spacing:.5px}.resource strong{font-size:21px;line-height:1.1}.game-shell{gap:7px}.rear-progress{display:grid;grid-template-columns:1fr auto;gap:4px 8px;min-height:38px;font-size:12px;line-height:1.15}.rear-progress progress{grid-row:2;grid-column:1/-1;width:100%;height:3px}.rear-progress #rear-countdown{font-size:12px}.battlefield{flex:none;height:43svh;min-height:300px;max-height:510px}.map-heading{left:10px;top:13px}.map-heading h1{font-size:20px;margin-bottom:4px}.map-heading>span{display:none}.wave-banner{left:10px;top:50px;gap:3px}.wave-banner #phase-label{font-size:10px;letter-spacing:.3px}.wave-banner #wave-count{font-size:20px;line-height:1.2}.wave-banner #wave-name{font-size:12px;max-width:125px;line-height:1.15}#wave-meter{margin-top:5px;width:90px}#battle-overview{width:100px;right:8px;top:9px;padding:4px}#battle-overview>span{font-size:10px;letter-spacing:0}.overview-key{display:none}#battle-overview svg{height:58px}#battle-overview button{font-size:12px;min-height:44px;padding:0 3px}#battle-overview>div{gap:2px}.map-pan{display:flex;right:8px;bottom:8px}.map-pan button{min-height:44px;width:44px}.favor-widget{bottom:15px;left:10px;width:140px}.favor-widget>span{font-size:10px;letter-spacing:0}.favor-track{margin-top:5px}.pressure{inset:auto 8px 58px auto;transform:none;font-size:12px;max-width:155px;padding:6px 8px;line-height:1.2}.orders-heading{gap:8px;margin-bottom:7px;align-items:stretch}.next-wave{flex:1;gap:2px;justify-content:center}.next-wave strong{font-size:10px;letter-spacing:.3px}.next-wave>span{font-size:12px;line-height:1.2}.next-wave #wave-tactic{font-size:12px}.commit-button{min-width:145px;min-height:57px;padding:6px 8px;grid-template-columns:18px 1fr;column-gap:5px}.commit-button>.icon{width:18px;height:22px}.commit-button>span{font-size:12px;letter-spacing:.2px;white-space:normal}.commit-button small{font-size:10px;letter-spacing:.2px}.battle-commands{gap:5px;margin-bottom:7px;display:grid;grid-template-columns:1fr 1.2fr 1.2fr 44px}.battle-commands>button{padding:5px 3px;min-height:49px;gap:3px;font-size:13px;min-width:0}.battle-commands .icon{display:none}.battle-commands small{font-size:12px;line-height:1.2;white-space:normal}.battle-commands #speed{min-width:44px;width:44px;margin:0;font-size:20px}.battle-commands #speed small{font-size:10px}.defense-roster{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;overflow:visible}.defense-card{display:flex;flex-direction:column;justify-content:flex-start;gap:3px;padding:6px 2px;min-width:0;min-height:104px;text-align:center}.defense-illustration{height:30px;width:34px}.defense-card-copy{align-items:center;gap:3px;width:100%}.defense-name{font:600 12px/1.1 var(--sans);white-space:normal;color:#f5ead0}.defense-caption{font-size:10px;line-height:1.1}.defense-price{font-size:12px;line-height:1.1;white-space:normal}.lock-label{font-size:10px;line-height:1.1;white-space:normal}.selection-panel{gap:6px;padding-top:8px;margin-top:8px;min-height:87px;position:relative}#field-note{font-size:12px;line-height:1.4;flex:1;min-width:0}#field-note strong{font-size:13px}#field-note p{margin:3px 0}.cancel-selection{font-size:10px;min-width:44px;max-width:52px;min-height:44px;white-space:normal;line-height:1.15;padding:3px;flex-direction:column;gap:2px;text-align:center}.cancel-selection .icon{width:16px;height:16px}.defense-detail{display:block;min-width:0}.detail-heading h2{font-size:18px;margin-bottom:3px}.detail-heading h2 span,.detail-heading>span{font-size:12px}.role-explanation{font-size:12px;line-height:1.35;margin:6px 0}.stat-table{font-size:12px;line-height:1.2;margin:8px 0}.stat-table thead th{font-size:10px;white-space:nowrap}.stat-table th,.stat-table td{padding:4px 5px}.stat-note{font-size:12px;line-height:1.3}.context-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin-top:8px}.context-actions button{padding:5px 4px;min-height:44px;font-size:12px;line-height:1.2}.game-footer{min-height:34px;font-size:11px;justify-content:flex-end}.game-footer .footer-controls{display:none}.gift-options[data-count="4"]{grid-template-columns:1fr}dialog{max-height:calc(100svh - 24px);max-width:calc(100vw - 22px)}#dialog-content{padding:36px 20px 24px}#dialog-content h2{font-size:27px;line-height:1.15;padding:0 8px}#dialog-content>p{font-size:15px;line-height:1.4}.modal-primary{font-size:14px;min-width:220px;max-width:100%;min-height:50px}.manual-steps{font-size:14px;line-height:1.4;padding-left:20px}.manual-more{font-size:13px}.audio-settings label{font-size:14px}.audio-settings p{font-size:12px}.gift-options{grid-template-columns:1fr;gap:9px}.gift-option{display:grid;grid-template-columns:72px minmax(0,1fr);min-height:125px;gap:7px 12px;padding:13px;text-align:left;align-items:center}.gift-option>.gift-icon-frame{width:72px;height:76px;grid-column:1;grid-row:1/3}.gift-icon-frame>.gift-engine{flex-shrink:0}.gift-icon-frame>.icon{width:43px;height:49px}.gift-option>strong{font-size:20px;grid-column:2}.gift-option>span:not(.gift-icon-frame){font-size:13px;line-height:1.3;grid-column:2}.gift-option>.gift-context,.gift-option>b{grid-column:1/-1}.gift-option>b{font-size:12px;justify-content:flex-end}.defeat-time strong{font-size:49px}.defeat-stats{gap:8px}.defeat-stats span{font-size:11px}.defeat-consequence{font-size:14px}.defeat-consequence h3{font-size:16px}}@media(max-height:600px)and (min-width:701px){#app{height:auto;min-height:100svh;padding:0 12px}.topbar{min-height:62px}.brand-mark{height:37px}.wordmark>span{font-size:26px}.hold-clock strong{font-size:29px}.hold-clock .small-label{font-size:10px}.resource strong{font-size:24px}.game-shell{display:grid;grid-template-columns:minmax(0,1fr) 330px;grid-template-rows:auto 1fr;gap:7px 12px}.rear-progress{grid-column:1/-1;font-size:12px;min-height:23px}.battlefield{height:calc(100svh - 100px);min-height:280px;grid-column:1;grid-row:2}.war-orders{grid-column:2;grid-row:2}.orders-heading{gap:6px}.next-wave strong{font-size:10px}.next-wave>span{font-size:12px}.commit-button{min-width:140px;padding:7px;font-size:12px;grid-template-columns:1fr}.commit-button>.icon{display:none}.commit-button>span{font-size:12px;white-space:normal}.commit-button small{font-size:10px;grid-column:1}.battle-commands{gap:4px}.battle-commands>button{padding:4px;font-size:12px;gap:0;flex:1;min-width:0}.battle-commands .icon{display:none}.battle-commands small{font-size:10px}.battle-commands #speed{min-width:42px;max-width:42px}.defense-roster{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}.defense-card{flex-direction:column;padding:6px 2px;gap:3px;text-align:center;min-height:96px}.defense-illustration{height:29px;width:32px}.defense-card-copy{gap:3px;align-items:center}.defense-name{font:600 12px/1.1 var(--sans);white-space:normal}.defense-caption,.lock-label{font-size:10px;line-height:1.1;white-space:normal}.defense-price{font-size:12px;white-space:normal}.selection-panel{gap:5px}#field-note{font-size:12px}#field-note strong{font-size:13px}.cancel-selection{min-width:44px;max-width:48px;font-size:10px;white-space:normal;flex-direction:column;text-align:center;padding:3px}.defense-detail{display:block}.detail-heading h2{font-size:18px}.detail-heading>span,.detail-heading h2 span,.role-explanation,.stat-note{font-size:12px}.role-explanation{margin:5px 0}.stat-table{font-size:12px}.stat-table thead th{font-size:10px}.context-actions{gap:4px}.context-actions button{padding:5px;font-size:12px;flex:1}.game-footer{display:none}.map-heading h1{font-size:21px}.map-heading>span{display:none}.wave-banner{top:60px;left:14px}.map-heading{top:14px;left:14px}#battle-overview{width:104px;right:8px;top:9px}#battle-overview svg{height:62px}#battle-overview button{min-height:44px}.map-pan{display:flex;right:8px;bottom:8px}.favor-widget{left:14px;bottom:14px;width:155px}.pressure{inset:auto 10px 60px auto;transform:none;max-width:160px;font-size:12px}}@media(max-height:600px)and (min-width:701px){#app{height:100svh;min-height:100svh;overflow:hidden}.game-shell{grid-template-rows:23px minmax(0,1fr)}.battlefield{height:100%;min-height:0}.war-orders{max-height:100%;overflow-y:auto;overscroll-behavior:contain;padding-right:2px}.battle-commands #speed{min-width:44px;max-width:44px}}@media(max-width:375px){.top-resources{gap:9px!important}.resource{gap:4px}.defense-name{font-size:12px}.orders-heading{gap:5px}.commit-button{min-width:130px}.battle-commands>button{font-size:12px}.battle-commands small{font-size:10px}.context-actions button{font-size:12px}}@media(max-width:700px){.intel-button{padding:5px 8px;font-size:12px}.orders-heading{flex-wrap:wrap}.orders-heading .next-wave{flex-basis:40%}.orders-heading .commit-button{margin-left:auto}#app[data-phase=combat]{height:100svh;min-height:100svh;overflow:hidden}#app[data-phase=combat] .topbar{min-height:100px;padding:6px 0}#app[data-phase=combat] .game-shell{gap:7px}#app[data-phase=combat] .rear-progress{min-height:34px}#app[data-phase=combat] .battlefield{flex:1;height:auto;min-height:55svh;max-height:none}#app[data-phase=combat] .orders-heading{flex-wrap:nowrap;min-height:44px;margin-bottom:5px;gap:8px}#app[data-phase=combat] .next-wave{display:flex;flex-basis:auto;flex-direction:column;align-items:flex-start;gap:2px}#app[data-phase=combat] .battle-commands{grid-template-columns:1fr 1.2fr 44px;margin-bottom:0}#app[data-phase=combat] .battle-commands>button{min-height:49px}#app[data-phase=combat] .game-footer{display:none}#app[data-phase=combat] .selection-panel.has-defender{padding:11px;max-height:51svh;gap:6px}.target-orders button{padding:5px 8px;font-size:13px}.enemy-intelligence{grid-template-columns:1fr;gap:16px}.enemy-intelligence dl{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.enemy-intelligence h3{font-size:20px}}@media(max-height:600px)and (min-width:701px){#app[data-phase=combat] .war-orders{position:static}#app[data-phase=combat] .selection-panel.has-defender{position:static;display:flex;margin-top:10px;padding:10px 0 0;border:0;border-top:1px solid var(--line);background:none;box-shadow:none;max-height:none;overflow:visible}#app[data-phase=combat] .next-wave{flex-direction:column;gap:2px;align-items:flex-start}}@media(max-width:700px){#app[data-phase=combat] .selection-panel.has-defender{width:100%;padding:10px;gap:6px}#app[data-phase=combat] .cancel-selection{flex-direction:row}}@media(max-height:600px)and (min-width:701px){#app[data-phase=combat] .selection-panel.has-defender{width:100%;padding:10px 0 0}}@media(max-width:700px){#app[data-phase=combat][data-volley-aiming=true] .battle-commands{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) 44px 44px;margin-bottom:0}#app[data-phase=combat][data-gift-ready=true] .battle-commands{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) 44px 44px}#app[data-phase=combat][data-gift-ready=true][data-volley-aiming=true] .battle-commands{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) 44px 44px 44px}#app[data-phase=combat] .volley-instruction{margin:5px 0 7px;font-size:12px;line-height:1.2}}@media(max-height:600px)and (min-width:600px){#app,#app[data-phase=combat]{height:100svh;min-height:100svh;overflow:hidden;padding:0 12px}#app[data-phase=combat] .topbar,.topbar{display:flex;min-height:62px;padding:0;gap:10px}.brand-mark{height:37px}.wordmark>span{font-size:24px}.hold-clock{margin-left:auto;min-width:70px}.hold-clock strong{font-size:27px}.top-resources{gap:10px}.resource strong{font-size:22px}.utility{gap:0}#app[data-phase=combat] .game-shell,.game-shell{display:grid;grid-template-columns:minmax(0,1fr) 300px;grid-template-rows:23px minmax(0,1fr);gap:7px 10px}#app[data-phase=combat] .rear-progress,.rear-progress{grid-column:1/-1;display:flex;min-height:23px;font-size:12px;gap:8px}.rear-progress progress{width:75px}.rear-progress #rear-countdown{font-size:12px}#app[data-phase=combat] .battlefield,.battlefield{grid-column:1;grid-row:2;height:100%;min-height:0;max-height:none}#app[data-phase=combat] .war-orders,.war-orders{grid-column:2;grid-row:2;position:static;max-height:100%;overflow-y:auto;overscroll-behavior:contain;padding-right:2px}#app[data-phase=combat] .orders-heading,.orders-heading{gap:6px;flex-wrap:wrap}#app[data-phase=combat] .next-wave,.next-wave{flex-direction:column;gap:2px;align-items:flex-start}.next-wave strong{font-size:10px}.next-wave>span{font-size:12px}.commit-button{min-width:140px;padding:7px;grid-template-columns:1fr}.commit-button>.icon{display:none}.commit-button>span{font-size:12px;white-space:normal}.commit-button small{font-size:10px}#app[data-phase=combat] .battle-commands,.battle-commands{display:flex;gap:4px}.battle-commands>button{padding:4px;font-size:12px;gap:0;flex:1;min-width:0}.battle-commands .icon{display:none}.battle-commands small{font-size:10px}.battle-commands #speed{min-width:44px;max-width:44px}#app[data-phase=combat] .selection-panel.has-defender{position:static;width:100%;margin-top:10px;padding:10px 0 0;max-height:none;overflow:visible;border:0;border-top:1px solid var(--line);background:none;box-shadow:none}.defense-roster{grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}.defense-card{flex-direction:column;padding:6px 2px;gap:3px;text-align:center;min-height:96px}.defense-illustration{height:29px;width:32px}.defense-card-copy{gap:3px;align-items:center}.defense-name{font:600 12px/1.1 var(--sans);white-space:normal}.defense-caption,.lock-label{font-size:10px;line-height:1.1;white-space:normal}.defense-price{font-size:12px;white-space:normal}.defense-detail{display:block}.game-footer{display:none}.map-heading{left:10px;top:13px}.map-heading h1{font-size:20px}.map-heading>span{display:none}.wave-banner{left:10px;top:50px}#battle-overview{width:100px;right:8px;top:9px}#battle-overview svg{height:58px}#battle-overview button{min-height:44px}.map-pan{display:flex;right:8px;bottom:8px}}@media(max-height:700px)and (max-width:599px){#app[data-phase=combat] .battlefield{min-height:0}#app[data-phase=combat] .has-trap .detail-heading>span,#app[data-phase=combat] .has-trap #trap-status{display:none}}@media(max-width:700px),(max-height:600px){.wave-report{padding:7px 9px;margin-bottom:8px;font-size:12px}.wave-report-heading{gap:3px 10px}.wave-report-heading strong{font-size:12px;letter-spacing:.3px}.wave-report-outcome{gap:5px 12px}.wave-report details{float:none;margin-left:0}.wave-report summary{min-height:44px;padding:8px 0;font-size:12px}.wave-report-hint{min-height:0;margin-top:3px}.wave-report dl{display:grid;grid-template-columns:minmax(0,1fr);gap:5px}.wave-report dl>div{justify-content:space-between;gap:10px}.wave-report dt{overflow-wrap:anywhere}}@media(max-width:700px){.formation-training>div{gap:5px}.formation-training button{padding:8px 7px;gap:5px}.formation-training button strong{font-size:16px}.formation-training button span,.formation-training>p,.formation-training-note{font-size:12px;line-height:1.35}.training-comparison th,.training-comparison td{font-size:12px;padding:4px 3px}.training-comparison thead th{font-size:12px;white-space:normal}.detail-heading h2 .specialization-label{font-size:12px;margin-left:5px}}:root{--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--app-gutter:28px}@media(min-width:1600px){:root{--app-gutter:40px}}@media(max-width:1000px){:root{--app-gutter:18px}}@media(max-width:700px){:root{--app-gutter:10px}#app[data-phase=combat] .battlefield{min-height:0}}@media(max-height:600px)and (min-width:600px){:root{--app-gutter:12px}}#app,#app[data-phase=combat]{padding:var(--safe-top) max(var(--app-gutter),var(--safe-right)) var(--safe-bottom) max(var(--app-gutter),var(--safe-left))}dialog{position:fixed;inset:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left);max-width:calc(100vw - var(--safe-left) - var(--safe-right) - 24px);max-height:calc(100svh - var(--safe-top) - var(--safe-bottom) - 24px)}#app[data-compact-field=true] .map-heading,#app[data-compact-field=true] .wave-banner{display:none}#app[data-compact-field=true] #battle-overview>span{display:none}#app[data-compact-field=true] .battlefield>#battle-overview svg{height:42px}#app[data-phase=combat][data-compact-field=true] .map-pan,#app[data-phase=combat][data-compact-field=true] .favor-widget{display:none}#app[data-phase=combat][data-compact-field=true] .pressure{inset:8px auto auto 8px;transform:none;max-width:calc(100% - 124px);font-size:12px;padding:6px 8px;line-height:1.2}@media(max-width:350px)and (max-height:650px){#app[data-phase=combat] .target-orders[data-order=support]>p{display:none}}@media(max-width:700px){.rear-progress{grid-template-columns:minmax(0,1fr) auto}.rear-message{height:2.2em;line-height:1.1;display:flex;align-items:center}.rear-notice{line-height:1.1}}@media(max-height:600px)and (min-width:600px){.rear-message{height:1.4em;line-height:1.4}}.map-toggle{display:none;flex:0 0 60px;min-width:60px;min-height:44px;padding:4px;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:14px;line-height:1.1}.map-toggle small{font-size:12px;line-height:1.1;color:var(--muted);white-space:nowrap}.map-toggle[data-severity=attack]{border-color:#e4bc76;color:#ffe1a4}.map-toggle[data-severity=attack] small{color:#ffe1a4}.map-toggle[data-severity=critical]{border-color:#f19b7d;color:#ffe0d0;background:#74352a}.map-toggle[data-severity=critical] small{color:#ffe0d0}@media(max-width:700px),(max-height:600px){.battlefield>#battle-overview,.battlefield>.map-pan{display:none!important}.map-toggle{display:flex}.orders-heading .next-wave{min-width:0}}#game-dialog[data-kind=map]{width:560px}#game-dialog[data-kind=map] #dialog-content{padding:20px}#game-dialog[data-kind=map] #dialog-content h2{font-size:27px;margin-bottom:10px;padding:0}#game-dialog[data-kind=map] #dialog-content>p{font-size:14px;line-height:1.35;margin-bottom:12px}#game-dialog #map-dialog-host #battle-overview{position:static;width:100%;padding:0;border:0;background:none}#game-dialog #map-dialog-host #battle-overview>span{display:none}#game-dialog #map-dialog-host svg{height:170px;max-height:30svh}#map-dialog-host #camera-window{stroke-width:1.5px;vector-effect:non-scaling-stroke}#game-dialog #map-dialog-host button{min-height:44px}#game-dialog #map-dialog-host .map-pan{position:static;display:flex;flex:0 0 auto;flex-wrap:wrap;max-width:92px;gap:4px;background:none}#game-dialog #map-dialog-host .map-pan button{flex:0 0 44px;width:44px;padding:0}#game-dialog[data-kind=map] .modal-primary{margin-top:14px}@media(max-width:350px){#game-dialog #map-dialog-host svg{height:132px}}@media(max-height:450px)and (min-width:600px){#game-dialog #map-dialog-host #battle-overview{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,1fr);gap:8px 12px;align-items:center}#game-dialog #map-dialog-host svg{grid-column:1;grid-row:1/3;height:108px;max-height:none}#game-dialog #map-dialog-host #battle-overview>div{grid-column:2;grid-row:1}#game-dialog #map-dialog-host #threat-focus{grid-column:2;grid-row:2;margin:0}}@media(max-width:700px){.gift-encounter{gap:14px;margin-bottom:10px}.gift-patron{width:56px;flex-basis:56px}.gift-patron figcaption{font-size:16px}.gift-options[data-count] .gift-option{min-height:0;padding:10px 12px;gap:4px 10px}.gift-options[data-count] .gift-option>strong{font-size:18px}.gift-options[data-count] .gift-option .gift-context{font-size:12px;padding-top:6px}.gift-options[data-count] .gift-option>b{display:none}}.favor-widget{text-shadow:0 0 3px #000,0 1px 6px #000}.favor-widget>span{font-weight:600}.favor-track{background:#11170fcc}@media(max-width:700px){#app[data-phase=planning]{padding-bottom:calc(78px + env(safe-area-inset-bottom))}html:has(#app[data-phase=planning]){scroll-padding-bottom:calc(96px + env(safe-area-inset-bottom))}#app[data-phase=planning] .war-orders{display:flex;flex-direction:column}#app[data-phase=planning] .orders-heading{order:-1;margin-top:8px}#app[data-phase=planning] .battle-commands{order:-1}#app[data-phase=planning] .defense-roster{position:fixed;left:0;right:0;bottom:0;z-index:20;padding:6px max(8px,env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));background:#151b14f2;border-top:1px solid #b7ad7d55;box-shadow:0 -6px 16px #0008}#app[data-phase=planning] .defense-card{min-height:64px;padding:4px 2px;gap:1px}#app[data-phase=planning] .defense-illustration{height:22px;width:26px}#app[data-phase=planning] .defense-caption{display:none}}@media(max-width:700px){#app[data-phase=planning][data-opening=true] .orders-heading,#app[data-phase=planning][data-opening=true] .battle-commands,#app[data-phase=planning]:has(#defense-detail:not(.hidden)) .orders-heading,#app[data-phase=planning]:has(#defense-detail:not(.hidden)) .battle-commands{order:0}}@media(max-width:700px){#app[data-phase=planning] .defense-detail:not(.hidden){display:flex;flex-direction:column}#app[data-phase=planning] .defense-detail>.detail-heading{order:-2}#app[data-phase=planning] .defense-detail>.context-actions{order:-1;margin:6px 0 4px}}@media(max-width:700px){#app[data-phase=planning] .defense-roster{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:calc((100% - 16px)/5);overflow-x:auto}}.battlefield-stage{display:contents}@supports (container-type:size){@media(min-width:1000px)and (min-height:601px){#app,#app[data-phase=planning],#app[data-phase=combat]{height:100svh;min-height:0;max-width:calc(150svh + 180px);margin-inline:auto}.game-shell{display:grid;grid-template-columns:minmax(0,1fr) clamp(250px,23vw,300px);grid-template-rows:auto minmax(0,1fr);gap:10px 16px}.rear-progress{grid-column:1/-1;grid-row:1}.battlefield-stage{display:flex;container-type:size;grid-column:1;grid-row:2;min-width:0;min-height:0;align-items:flex-start;justify-content:center}.battlefield{flex:none;width:min(100cqw,150cqh);height:min(66.6666667cqw,100cqh);min-height:0;max-height:none}.war-orders,#app[data-phase=combat] .war-orders{grid-column:2;grid-row:2;max-height:100%;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-right:2px;position:static}.orders-heading{flex-wrap:wrap;gap:6px;margin-bottom:8px}.orders-heading .next-wave{flex:1 0 100%;gap:2px}.next-wave strong{font-size:11px}.next-wave>span{font-size:13px}.intel-button{padding:5px 8px;font-size:13px}.commit-button{margin-left:auto;min-width:150px;min-height:52px;padding:6px 10px}.commit-button>span{font-size:13px}.commit-button small{font-size:10px}.battle-commands{display:grid;grid-template-columns:1fr 1fr;gap:6px}.battle-commands>button{min-width:0;min-height:49px;padding:5px;font-size:13px;gap:4px}.battle-commands .icon{display:none}.battle-commands small{font-size:12px;white-space:normal}.battle-commands #speed{margin:0;min-width:44px;width:100%;font-size:20px}.defense-roster{gap:4px}.defense-card{flex-direction:column;gap:3px;padding:6px 2px;min-height:104px;text-align:center}.defense-illustration{height:30px;width:34px}.defense-card-copy{gap:3px;align-items:center}.defense-name{font:600 12px/1.1 var(--sans);white-space:normal}.defense-caption,.lock-label{font-size:10px;line-height:1.1;white-space:normal}.defense-price{font-size:12px;white-space:normal}.selection-panel{gap:6px}#field-note{flex:1;min-width:0;font-size:13px}#field-note strong{font-size:14px}.cancel-selection{min-width:44px;max-width:48px;min-height:44px;padding:3px;flex-direction:column;gap:2px;white-space:normal;text-align:center;font-size:11px}.cancel-selection .icon{width:17px;height:17px}.defense-detail{display:block;min-width:0}.detail-heading h2{font-size:20px}.detail-heading h2 span,.detail-heading>span{font-size:13px}.role-explanation,.stat-note{font-size:13px;line-height:1.35;margin:6px 0}.stat-table{font-size:13px;margin:8px 0}.stat-table th,.stat-table td{padding:4px}.stat-table thead th{font-size:11px;white-space:normal}.context-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.context-actions button{padding:5px 3px;min-width:0;font-size:12px}.target-orders button{padding:5px;min-width:0;font-size:13px}.formation-training button{padding:7px}.formation-training button strong{font-size:17px}#app[data-phase=combat] .orders-heading .next-wave{flex:1;flex-direction:column;align-items:flex-start;gap:2px}#app[data-phase=combat] .battle-commands{grid-template-columns:1fr 1.2fr 44px;margin-bottom:0}#app[data-phase=combat][data-volley-aiming=true] .battle-commands{grid-template-columns:1fr 1.3fr 44px 44px}#app[data-phase=combat][data-gift-ready=true] .battle-commands{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) 44px 44px}#app[data-phase=combat][data-gift-ready=true][data-volley-aiming=true] .battle-commands{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) 44px 44px 44px}#app[data-phase=combat] .selection-panel.has-defender{gap:6px;margin:0 0 8px;padding:0 0 8px;border-top:0;border-bottom:1px solid var(--line)}#app[data-phase=combat] .defense-detail{display:block}#app[data-phase=combat] .defense-detail>.target-orders{margin-top:7px}.game-footer>.footer-controls{display:none}}}.defense-detail.training-ready{display:block}.formation-training>.training-options{grid-template-columns:minmax(0,1fr);gap:8px}.formation-training .training-choice{display:grid;grid-template-columns:76.8px minmax(0,1fr);gap:9px;align-items:center;padding:10px 8px;min-width:0}.formation-training .training-choice .training-portrait{display:block;width:76.8px;height:64px;background-size:614.4px 256px;background-repeat:no-repeat;pointer-events:none}.formation-training .training-choice .training-copy{display:flex;min-width:0;flex-direction:column;gap:3px}.formation-training .training-choice strong{font:500 21px/1.15 var(--serif);color:var(--cream)}.formation-training .training-choice .training-purpose{font-size:14px;line-height:1.25;color:var(--cream)}.formation-training .training-choice .training-output,.formation-training .training-choice .training-reach,.formation-training .training-choice .training-hold,.formation-training .training-choice .training-health{font-size:13px;line-height:1.2;color:var(--gold-light);font-variant-numeric:tabular-nums}.formation-training .training-choice .training-tradeoff{font-size:13px;line-height:1.25;color:var(--muted);margin-top:3px}.formation-training .training-choice small{font-size:13px;line-height:1.25;padding-top:4px}.formation-training .training-current{color:var(--gold-light);font-size:13px;margin:0 0 9px}.formation-training .training-output-note{font-size:12px;line-height:1.35;margin:9px 0 0}.training-stats{grid-column:1/-1;border-top:1px solid var(--line);margin:8px 0 0;min-width:0}.training-stats>summary{font-size:14px;color:var(--gold-light);cursor:pointer;min-height:44px;display:flex;align-items:center;gap:7px}.training-stats>summary:before{content:"+";font:20px var(--serif)}.training-stats[open]>summary:before{content:"−"}.training-stats .stat-table{margin:0 0 8px}.formation-training{container-type:inline-size}@container (min-width:560px){.formation-training>.training-options{grid-template-columns:repeat(2,minmax(0,1fr))}}.coverage-status{grid-column:1/-1;font-size:13px;line-height:1.3;margin:6px 0;padding:5px 7px;border-left:2px solid var(--gold);color:var(--gold-light)}.coverage-status[data-coverage=none]{border-color:#ce805e;color:#f0b99c}.formation-training .training-choice .training-coverage{font-size:13px;line-height:1.25;color:var(--gold-light);border-left:2px solid var(--gold);padding-left:6px;margin-top:3px}.formation-training .training-choice .training-coverage[data-coverage=none]{color:#f0b99c;border-color:#ce805e}.formation-training .training-choice .training-icon{background:none;display:grid;place-items:center}.formation-training .training-choice .training-icon svg{width:44px;height:44px}#controller-help{font-size:13px;line-height:1.4;color:var(--gold-light);margin:8px 0 10px}#app[data-input=controller] :is(button,summary,select,input,a):focus{outline:2px solid var(--gold-light);outline-offset:3px}
