:root{color:#28332e;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--ink:#26352f;--muted:#646a5d;--paper:#f3ecdd;--line:#bdb39c;--accent:#ad4d29;--teal:#236f68;background:#e9dfc9;font-family:Noto Sans KR,sans-serif;font-size:15px}*{box-sizing:border-box}body{margin:0}button,a,input{font:inherit}button{cursor:pointer;border:1px solid var(--line);color:inherit;background:var(--paper);border-radius:4px;min-height:44px;padding:10px 14px;transition:background .15s,border-color .15s,transform .15s}button:hover:not(:disabled){border-color:var(--ink);background:#fff8e9}button:disabled{opacity:.43;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline-offset:3px;outline:3px solid #b34a25}button[aria-pressed=true]{border-color:var(--teal);background:#dce8da}h1,h2,p{margin-top:0}p{line-height:1.75}h1,h2{overflow-wrap:anywhere}a{color:inherit}.tactics-app{max-width:1540px;min-height:100dvh;margin:auto;padding:0 34px}.site-header{border-bottom:1px solid var(--line);align-items:center;gap:22px;min-height:80px;display:flex}.wordmark{letter-spacing:-1.6px;white-space:nowrap;font-family:Noto Serif KR,serif;font-size:25px;font-weight:700;text-decoration:none}.wordmark span{letter-spacing:-.8px;margin-left:6px;font-size:15px;font-weight:500}.playtest-label{color:var(--accent);border-left:1px solid var(--line);padding-left:22px;font-size:11px}.text-button{background:0 0;border-color:#0000;min-height:40px;padding:8px}.restart-button{margin-left:auto;font-size:12px}.save-line{color:var(--muted);justify-content:space-between;align-items:center;gap:12px;padding:10px 0;font-size:11px;display:flex}.save-line label{white-space:nowrap;align-items:center;gap:5px;display:flex}.save-line input{accent-color:var(--teal);width:15px;height:15px}.save-state:before{content:"✓";color:var(--teal);margin-right:6px}.save-state.unsaved:before{content:"!";color:var(--accent)}.notice{border-left:4px solid var(--accent);background:#f2ddce;flex-wrap:wrap;align-items:center;gap:12px;margin:8px 0;padding:14px 18px;font-size:13px;display:flex}.notice button{flex-shrink:0;margin-left:auto}.primary-button{background:var(--ink);border-color:var(--ink);color:#fff6e6;justify-content:space-between;align-items:center;gap:16px;font-weight:700;display:flex}.primary-button:hover:not(:disabled){color:#fff;background:#3c574a;border-color:#3c574a}.primary-button>span{font-size:21px;font-weight:400}.chapter-kicker{color:var(--accent);letter-spacing:.9px;margin-bottom:13px;font-size:12px;font-weight:700}.site-footer{color:#676f61;border-top:1px solid var(--line);justify-content:space-between;gap:20px;margin-top:28px;padding:26px 0;font-size:11px;display:flex}.briefing-screen{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:center;gap:7%;min-height:calc(100dvh - 190px);padding:24px 2% 30px;display:grid}.briefing-art{isolation:isolate;flex-direction:column;justify-content:center;align-self:stretch;min-height:480px;display:flex;position:relative}.briefing-art:before{content:"";z-index:-1;border:1px solid #c6b99e;position:absolute;inset:4% 1% 5%}.desert-sun{z-index:-1;background:#c87848;border-radius:50%;width:200px;height:200px;position:absolute;top:15%;left:47%}.briefing-art svg{width:115%;margin-left:-6%;overflow:visible}.briefing-art>span{text-align:center;letter-spacing:1px;margin-top:20px;font-family:Noto Serif KR,serif;font-size:17px}.sand{fill:#cdb891}.city-shadow{fill:#c0ac8b}.city-hull{fill:#46524b;stroke:#26332e;stroke-width:2px}.city-top{fill:#bdab85;stroke:#596054;stroke-width:2px}.city-tower{fill:#87937e;stroke:#253a32;stroke-width:2px}.tower-light{fill:#294b42}.city-lines{fill:none;stroke:#e1d0a7;stroke-width:4px}.briefing-art circle{fill:#283a32;stroke:#82907a;stroke-width:7px}.briefing-art .wheel-core{fill:#c9a268;stroke:#283a32;stroke-width:3px}.antenna{stroke:#39493d;stroke-width:5px}.briefing-copy h1{letter-spacing:-1.9px;margin-bottom:10px;font-family:Noto Serif KR,serif;font-size:clamp(30px,3.4vw,47px);line-height:1.35}.briefing-subtitle{color:var(--muted);margin-bottom:27px;font-size:16px}.briefing-copy blockquote{border-left:3px solid #ad4d29;margin:0 0 25px;padding:0 0 0 18px;font-size:15px;line-height:1.85}.briefing-copy blockquote span{color:#945537;margin-bottom:8px;font-size:11px;font-weight:700;display:block}.mission-objective{margin:25px 0}.mission-objective>span{color:var(--muted);margin-bottom:5px;font-size:11px;display:block}.mission-objective strong{font-size:17px;line-height:1.6}.mission-objective p{color:var(--muted);margin:8px 0;font-size:12px}.crew-intro{gap:25px;margin:25px 0;display:flex}.crew-intro>div{align-items:center;gap:10px;display:flex}.crew-intro p{margin:0;line-height:1.4}.crew-intro strong,.crew-intro span{display:block}.crew-intro strong{font-size:14px}.crew-intro p span{color:var(--muted);margin-top:5px;font-size:11px}.crew-monogram{color:#f8eed8;background:#394f45;border-radius:5px 5px 12px 12px;flex-shrink:0;place-items:center;width:39px;height:45px;font-size:19px;font-weight:700;display:grid}.crew-monogram.tama{background:#ab542e}.launch-button{width:100%;padding:15px 21px}.briefing-note{color:var(--muted);margin:12px 0 0;font-size:11px}.mission-header{justify-content:space-between;align-items:center;gap:28px;padding:17px 0 23px;display:flex}.mission-header .chapter-kicker{margin-bottom:6px;font-size:10px}.mission-header h1{letter-spacing:-1px;margin:0 0 7px;font-family:Noto Serif KR,serif;font-size:28px}.mission-header p:last-child{color:var(--muted);margin:0;font-size:12px}.battle-counters{gap:29px;display:flex}.battle-counters>div{flex-direction:column;gap:3px;min-width:75px;display:flex}.battle-counters span{color:var(--muted);font-size:11px}.battle-counters strong{font-variant-numeric:tabular-nums;font-size:26px;font-weight:600}.battle-counters small{color:#727a69;font-size:13px;font-weight:400}.battle-counters .critical strong{color:var(--accent)}.combat-layout{grid-template-columns:minmax(0,1fr) 365px;align-items:start;gap:24px;display:grid}.battlefield{background:#e1d4b9;border:1px solid #bfb196;min-width:0;position:relative;overflow:hidden}.board-topline{border-bottom:1px solid #c9baa0;justify-content:space-between;align-items:center;gap:12px;padding:15px 20px;font-size:11px;display:flex}.board-topline strong{color:var(--teal);font-size:13px}.board-topline span{color:#646a5a}.battle-board{background:radial-gradient(#eee4ce 0%,#dfd2b7 70%);align-items:center;min-height:270px;display:flex}.battle-board svg{-webkit-user-select:none;user-select:none;touch-action:manipulation;width:100%;max-height:560px;overflow:visible}.board-base{fill:#9f8d6d;stroke:#a99472;stroke-width:1px}.board-tile{cursor:pointer;outline:none}.board-tile>polygon:first-of-type{stroke:#ab9878;stroke-width:1px}.board-tile.reachable>polygon:first-of-type{stroke:#367d71;stroke-width:2.3px;fill:#cfdbbc}.board-tile:hover>polygon:first-of-type{fill:#eee9c9}.tile-focus{fill:none;stroke:none;pointer-events:none}.board-tile:focus .tile-focus,.board-tile.targeted .tile-focus{stroke:#fcf5da;stroke-width:4px;filter:drop-shadow(0 0 2px #203e35)}.danger-tile{stroke:#b1502a;stroke-width:1.6px;pointer-events:none}.hazard-tile{stroke:#937026;stroke-width:2px;pointer-events:none}.device-tile{fill:#42a19c73;stroke:#1c6964;stroke-width:3px;stroke-dasharray:5 3;pointer-events:none}.terrain-mark{fill:#71581f;text-anchor:middle;pointer-events:none;font-size:16px;font-weight:800}.wall{pointer-events:none}.wall path:first-child{fill:#727365;stroke:#5c6256;stroke-width:2px}.wall path:last-child{stroke:#abb098;stroke-width:2px;fill:none}.route-line{fill:none;stroke:#174e47;stroke-width:4px;stroke-linecap:round;stroke-dasharray:4 7;pointer-events:none}.core-token{fill:#a68545;stroke:#493f2c;stroke-width:2px}.core-token ellipse{fill:#887c5377;stroke:none}.core-token rect{fill:#49442f;stroke:none}.core-token text{fill:#fff2ce;stroke:none;text-anchor:middle;font-size:13px;font-weight:700}.device-token{fill:#377d77;stroke:#254d47;stroke-width:2px;cursor:pointer}.device-token ellipse{fill:#4c756340;stroke:none}.device-token circle{fill:#e2b661}.device-token text{fill:#285952;stroke:none;text-anchor:middle;font-size:13px;font-weight:700}.device-token.used{opacity:.45}.actor{cursor:pointer}.actor-ring{fill:#426d5d44;stroke:#dde0bd;stroke-width:2px}.actor.chosen .actor-ring{stroke:#fff9cc;stroke-width:4px}.actor-body{fill:#346053;stroke:#193b31;stroke-width:2px}.actor-head{fill:#c8b683;stroke:#374e3f;stroke-width:2px}.actor-detail{fill:#c8b683;stroke:#183f32;stroke-width:3px}.enemy .actor-body{fill:#a85637;stroke:#693d2c}.enemy .actor-detail{fill:none;stroke:#683c2a;stroke-width:3px}.enemy .actor-ring{fill:#98432833;stroke:#a14b30}.enemy .enemy-number{fill:#fff1d4;text-anchor:middle;stroke:none;font-size:17px;font-weight:800}.hp-back{fill:#504a36}.hp-fill{fill:#d9efb6}.enemy .hp-fill{fill:#f4cb72}.unit-name{fill:#2b3a31;stroke:#ede1c4;stroke-width:3px;paint-order:stroke;text-anchor:middle;font-size:15px;font-weight:800}.preview-damage{fill:#913b22;stroke:#fff2d6;stroke-width:3px;paint-order:stroke;text-anchor:middle;font-size:15px;font-weight:800}.preview-ghost path{stroke:#174f47;stroke-width:3px;stroke-dasharray:6 4;fill:none}.preview-ghost ellipse{fill:#dcf0c499;stroke:#174f47;stroke-width:2px;stroke-dasharray:4 3}.preview-ghost text{fill:#194d45;text-anchor:middle;font-size:13px;font-weight:700}.staggered .actor-body{fill:#9b8b65}.stagger-label{fill:#6a3823;stroke:#f3e6c8;stroke-width:3px;paint-order:stroke;text-anchor:middle;font-size:12px;font-weight:700}.reinforcement-marker polygon{fill:#decba9;stroke:#ad4d29;stroke-width:3px;stroke-dasharray:4 3}.reinforcement-marker text{fill:#8c3c25;text-anchor:middle;font-size:13px;font-weight:700}.axis-mark{fill:#867957;font-size:13px}.board-legend{color:#6d654f;flex-wrap:wrap;justify-content:center;gap:16px;padding:12px 10px 14px;font-size:10px;display:flex}.legend-move{color:#245f53}.legend-intent{color:#984222}.legend-hazard{color:#826221}.legend-preview{color:#255a50}.reinforcement-notice{color:#704322;background:#d1b78b66;border-top:1px solid #bcab8b;margin:0;padding:10px 16px;font-size:11px}.command-deck{color:#f1e8d4;background:#293c34;border:1px solid #21332b;min-width:0;padding:17px}.crew-tabs{grid-template-columns:1fr 1fr;gap:7px;display:grid}.crew-tab{color:#f3ead4;text-align:left;background:#35483e;border:1px solid #617165;align-items:center;gap:8px;min-height:72px;padding:9px 8px;display:flex}.crew-tab:hover:not(:disabled){background:#405c4d;border-color:#d4dfb5}.crew-tab[aria-pressed=true]{color:#fff3d6;background:#466451;border-color:#dce8bb}.crew-tab .crew-monogram{width:28px;height:36px;font-size:15px}.crew-tab strong,.crew-tab small{display:block}.crew-tab strong{font-size:14px}.crew-tab small{color:#d0d5bd;margin-top:5px;font-size:10px}.unit-readiness{text-align:right;margin-left:auto}.unit-readiness b{font-size:10px;font-weight:500}.unit-readiness small{font-size:9px}.selected-unit-heading{justify-content:space-between;align-items:center;gap:6px;margin:18px 0 10px;display:flex}.selected-unit-heading strong{font-size:12px}.selected-unit-heading>span{color:#b8c6b2;font-size:10px}.skill-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;display:grid}.skill-grid button{color:#f2e9d3;text-align:left;background:#344a3f;border:1px solid #69786a;min-height:59px;padding:9px 10px}.skill-grid button:hover:not(:disabled){background:#476353;border-color:#d8e6b8}.skill-grid button[aria-pressed=true]{color:#293c30;background:#e1d4b2;border-color:#f8e6b5}.skill-grid button span{justify-content:space-between;align-items:center;gap:5px;font-size:13px;font-weight:600;display:flex}.skill-grid button b{font-size:11px;font-weight:500}.skill-grid small{opacity:.78;margin-top:5px;font-size:10px;display:block}.skill-grid .device-skill{grid-column:1/-1;justify-content:space-between;align-items:center;gap:8px;min-height:52px;display:flex}.skill-grid .device-skill small{margin:0}.action-preview{border-top:1px solid #6b7767;min-height:149px;margin-top:17px;padding:15px 0 12px}.preview-kicker{color:#c7bc91;font-size:10px}.action-preview h2{margin:7px 0;font-family:Noto Sans KR,sans-serif;font-size:15px;font-weight:600;line-height:1.6}.action-preview p{color:#d0d4bf;margin:7px 0;font-size:11px;line-height:1.65}.action-preview ul{color:#e6e9d4;margin:8px 0;padding-left:17px;font-size:12px;line-height:1.75}.action-preview .illegal-reason{color:#ffd7a7}.preview-resources{font-variant-numeric:tabular-nums;border-top:1px dashed #697565;padding-top:9px}.preview-buttons{align-items:center;gap:6px;margin-top:12px;display:flex}.preview-buttons .primary-button{color:#273c2e;background:#e4bc78;border-color:#e4bc78;flex:1;font-size:13px}.preview-buttons .primary-button:hover:not(:disabled){background:#f3d399}.preview-buttons .text-button{color:#e2e7d2;font-size:11px}.turn-actions{border-top:1px solid #6b7767;grid-template-columns:1fr 1fr;gap:7px;padding-top:13px;display:grid}.turn-actions button{color:#d9dfcd;background:0 0;border-color:#7f8a77;padding:10px 7px;font-size:11px}.turn-actions button:hover:not(:disabled){background:#445e4d}.turn-actions .end-turn{color:#fff1d7;background:#ad542e;border-color:#ad542e;justify-content:space-between;align-items:center;padding:10px 12px;font-size:13px;font-weight:600;display:flex}.turn-actions .end-turn:hover{background:#c06a3c}.intel-panel{grid-column:1/-1;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:start;column-gap:32px;display:grid}.enemy-intents{grid-area:1/1/4}.section-heading{justify-content:space-between;align-items:center;gap:8px;margin:0 0 12px;display:flex}.section-heading h2,.battle-log h2{margin:0;font-size:14px;font-weight:700}.section-heading>span{color:var(--muted);font-size:10px}.enemy-list{flex-direction:column;gap:7px;display:flex}.enemy-list button{text-align:left;background:#e4d7bc;border:1px solid #b8ab8f;align-items:center;gap:12px;padding:11px 13px;display:flex}.enemy-list button[aria-pressed=true]{background:#eed9bc;border-color:#ad4d29}.enemy-list button>span:last-child{flex:1;min-width:0}.enemy-list strong{justify-content:space-between;align-items:center;gap:10px;margin-bottom:5px;font-size:12px;display:flex}.enemy-list small{white-space:nowrap;color:#7d5b3e;font-size:11px;font-weight:400}.enemy-list button>span>span{color:#795339;font-size:11px;line-height:1.6;display:block}.enemy-badge{color:#ffecd1;clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);background:#a05233;flex-shrink:0;place-items:center;width:26px;height:30px;font-size:13px;font-weight:700;display:grid}.enemy-detail{color:#77442c;margin-top:10px;font-size:12px}.tactics-help,.dom-map{border-top:1px solid var(--line);padding:13px 0;font-size:12px}.tactics-help summary,.dom-map summary{cursor:pointer;min-height:25px;font-weight:600}.tactics-help p{color:var(--muted);margin:12px 0 0;font-size:12px}.coordinate-list{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:12px;display:grid}.coordinate-list button{min-height:40px;padding:7px 3px;font-size:11px}.coordinate-list p{grid-column:1/-1}.battle-log{border-top:1px solid var(--line);padding-top:14px}.battle-log ol{color:#5c6556;margin:10px 0 0;padding-left:17px;font-size:11px;line-height:1.9}.battle-log li:last-child{color:#283c2e;font-weight:600}.intermission,.ending-screen{text-align:center;max-width:960px;margin:45px auto 60px}.intermission h1,.ending-screen h1{letter-spacing:-2px;margin-bottom:22px;font-family:Noto Serif KR,serif;font-size:clamp(32px,4vw,52px);line-height:1.45}.outcome-copy{max-width:650px;color:var(--muted);margin:0 auto 26px;font-size:15px;line-height:1.8}.result-strip{border-bottom:1px solid var(--line);justify-content:center;gap:35px;margin:10px auto 35px;padding:20px 0 25px;display:flex}.result-strip span{color:var(--muted);align-items:center;gap:10px;font-size:12px;display:flex}.result-strip strong{color:var(--ink);font-size:26px;font-weight:600}.intermission h2{margin-bottom:9px;font-size:19px}.intermission>p:not(.chapter-kicker){color:var(--muted);font-size:14px}.upgrade-options{text-align:left;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin-top:26px;display:grid}.upgrade-options button{text-align:left;background:#e2d4b7;grid-template-columns:44px 1fr;gap:8px 15px;padding:22px;display:grid}.upgrade-icon{color:#365344;background:#d2b780;border-radius:4px;grid-row:1/4;place-items:center;width:44px;height:52px;font-size:27px;display:grid}.upgrade-options button strong{font-size:17px}.upgrade-options button>span:not(.upgrade-icon){color:var(--muted);font-size:12px;line-height:1.8}.upgrade-options button b{color:var(--accent);margin-top:4px;font-size:11px}.ending-screen{max-width:720px;padding:25px 0}.ending-symbol{color:#a76335;place-items:center;width:90px;height:90px;margin:0 auto 30px;font-size:60px;display:grid}.ending-screen .primary-button{min-width:280px;margin:25px auto}.playtest-note{color:var(--muted);max-width:400px;margin:35px auto 0;font-size:11px;line-height:1.8}.restart-dialog{color:var(--ink);background:#f0e7d4;border:1px solid #968469;border-radius:6px;width:min(490px,100vw - 28px);max-height:calc(100dvh - 28px);padding:28px}.restart-dialog::backdrop{background:#152b23be}.restart-dialog h2{font-size:22px}.restart-dialog p{color:var(--muted);font-size:13px}.restart-dialog>div{justify-content:flex-end;gap:10px;margin-top:22px;display:flex}.restart-dialog button{font-size:12px}.reduce-motion *,.reduce-motion :before,.reduce-motion :after{scroll-behavior:auto!important;transition:none!important;animation:none!important}@media (width>=1450px){.combat-layout{grid-template-columns:minmax(0,1fr) 395px}.battle-board{min-height:455px}.command-deck{padding:21px}.skill-grid button{min-height:65px}}@media (width<=1050px){.tactics-app{padding:0 22px}.combat-layout{grid-template-columns:minmax(0,1fr) 320px;gap:17px}.command-deck{padding:13px}.crew-tab .crew-monogram{display:none}.battle-counters{gap:17px}.battle-counters strong{font-size:23px}.briefing-screen{gap:5%;padding:15px 0}.briefing-art{min-height:430px}.crew-intro{gap:12px}.crew-intro p span{max-width:105px}.briefing-copy h1{font-size:32px}.desert-sun{width:150px;height:150px}.board-topline{padding:12px}.board-topline span{font-size:9px}.board-legend{gap:10px}}@media (width<=760px){:root{font-size:14px}.tactics-app{padding:0 14px}.site-header{flex-wrap:wrap;gap:10px;min-height:67px;padding:12px 0;position:relative}.wordmark{letter-spacing:-1px;font-size:20px}.wordmark span{margin-left:4px;font-size:12px}.playtest-label{border:0;margin-left:auto;padding:0;font-size:9px}.restart-button{z-index:1;min-height:29px;padding:4px 0;font-size:10px;position:absolute;top:38px;right:0}.save-line{padding:9px 0;font-size:9px}.save-line>label{margin-right:67px}.save-line input{width:13px;height:13px}.notice{padding:10px;font-size:11px}.notice button{font-size:11px}.site-footer{gap:12px;margin-top:22px;padding:18px 0;font-size:9px}.site-footer span:last-child{text-align:right;max-width:190px}.briefing-screen{flex-direction:column;gap:10px;min-height:0;padding:8px 0 10px;display:flex}.briefing-art{width:100%;min-height:220px;max-height:235px;overflow:hidden}.briefing-art:before{inset:5px 0}.briefing-art svg{align-self:center;width:85%;max-width:380px;margin:-20px 0 0}.desert-sun{width:110px;height:110px;top:14%;left:58%}.briefing-art>span{font-size:12px;position:absolute;bottom:15px;left:20px}.briefing-copy{width:100%;padding:12px 5px}.briefing-copy .chapter-kicker{margin-bottom:7px;font-size:10px}.briefing-copy h1{font-size:29px}.briefing-subtitle{margin-bottom:17px;font-size:13px}.briefing-copy blockquote{margin-bottom:19px;padding-left:12px;font-size:12px;line-height:1.85}.briefing-copy blockquote span{margin-bottom:4px;font-size:10px}.mission-objective{margin:18px 0}.mission-objective strong{font-size:14px}.mission-objective p{font-size:10px}.crew-intro{gap:22px;margin:17px 0}.crew-intro p span{max-width:120px;font-size:9px}.crew-intro strong{font-size:12px}.crew-monogram{width:32px;height:38px;font-size:16px}.launch-button{padding:13px 16px}.briefing-note{font-size:10px}.mission-header{align-items:flex-end;gap:12px;padding:10px 0 13px}.mission-header>div:first-child{flex:1;min-width:0}.mission-header h1{letter-spacing:-.8px;margin-bottom:5px;font-size:21px}.mission-header .chapter-kicker{margin-bottom:5px;font-size:9px}.mission-header p:last-child{max-width:185px;font-size:10px;line-height:1.55}.battle-counters{flex-wrap:wrap;justify-content:flex-end;gap:5px 12px;max-width:155px}.battle-counters>div{gap:0;min-width:0}.battle-counters span{font-size:8px}.battle-counters strong{font-size:19px}.battle-counters small{font-size:10px}.combat-layout{flex-direction:column;gap:0;display:flex}.battlefield{border-bottom:0;width:100%}.board-topline{padding:9px 12px}.board-topline strong{font-size:11px}.board-topline span{font-size:9px}.battle-board{min-height:0;padding:5px 0 0}.battle-board svg{max-height:300px}.board-legend{gap:10px;padding:7px 5px 10px;font-size:8px}.reinforcement-notice{padding:7px 10px;font-size:9px}.command-deck{width:100%;padding:10px 11px 11px}.crew-tabs{gap:7px}.crew-tab{gap:7px;min-height:54px;padding:7px 8px}.crew-tab .crew-monogram{width:25px;height:31px;font-size:13px;display:grid}.crew-tab strong{font-size:12px}.crew-tab small{margin-top:3px;font-size:9px}.unit-readiness b{font-size:9px}.unit-readiness small{font-size:8px}.selected-unit-heading{margin:10px 0 7px}.selected-unit-heading strong{font-size:10px}.selected-unit-heading>span{font-size:8px}.skill-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}.skill-grid button{text-align:center;min-height:52px;padding:7px 5px}.skill-grid button span{font-size:11px;display:block}.skill-grid button b{margin-left:2px;font-size:9px}.skill-grid small{margin-top:4px;font-size:8px;line-height:1.5}.skill-grid .device-skill{grid-column:auto;min-height:52px;display:block}.skill-grid .device-skill span{font-size:10px;line-height:1.4}.skill-grid .device-skill small{margin-top:4px}.action-preview{min-height:0;margin-top:10px;padding:10px 0 9px}.preview-kicker{font-size:9px}.action-preview h2{margin:4px 0;font-size:12px}.action-preview p{margin:4px 0;font-size:10px;line-height:1.6}.action-preview ul{margin:6px 0;padding-left:14px;font-size:10px;line-height:1.6}.preview-buttons{margin-top:8px}.preview-buttons .primary-button{min-height:41px;padding:8px 12px;font-size:12px}.preview-buttons .primary-button>span{font-size:17px}.preview-buttons .text-button{font-size:10px}.preview-resources{padding-top:6px}.turn-actions{gap:7px;padding-top:9px}.turn-actions button{min-height:41px;padding:8px 7px;font-size:10px}.turn-actions .end-turn{padding:8px 12px;font-size:12px}.intel-panel{flex-direction:column;gap:0;width:100%;margin-top:20px;display:flex}.intel-panel>section,.intel-panel>details{width:100%}.section-heading h2,.battle-log h2{font-size:12px}.section-heading>span{font-size:9px}.enemy-list{gap:6px}.enemy-list button{gap:10px;padding:9px 11px}.enemy-list strong{font-size:11px}.enemy-list small,.enemy-list button>span>span{font-size:10px}.enemy-badge{width:24px;height:28px;font-size:12px}.enemy-detail{font-size:10px}.tactics-help{margin-top:17px}.tactics-help,.dom-map{padding:10px 0;font-size:11px}.tactics-help p{font-size:11px}.battle-log{margin-top:0}.battle-log ol{font-size:10px}.coordinate-list{grid-template-columns:repeat(4,minmax(0,1fr))}.coordinate-list button{font-size:10px}.intermission,.ending-screen{margin:27px auto 35px}.intermission h1,.ending-screen h1{margin-bottom:17px;font-size:32px}.outcome-copy{margin-bottom:20px;font-size:12px}.result-strip{flex-wrap:wrap;gap:17px;margin:10px 0 25px;padding:15px 0 20px}.result-strip span{gap:7px;font-size:10px}.result-strip strong{font-size:22px}.intermission h2{font-size:17px}.intermission>p:not(.chapter-kicker){font-size:12px}.upgrade-options{grid-template-columns:1fr;gap:10px;margin-top:21px}.upgrade-options button{grid-template-columns:38px 1fr;gap:6px 13px;padding:16px}.upgrade-options button strong{font-size:15px}.upgrade-options button>span:not(.upgrade-icon){font-size:11px}.upgrade-icon{width:38px;height:45px;font-size:23px}.ending-screen .primary-button{font-size:13px}.playtest-note{font-size:10px}.restart-dialog{padding:20px}.restart-dialog h2{font-size:19px}.restart-dialog>div{flex-direction:column-reverse}.restart-dialog button{justify-content:center;width:100%;min-height:44px}}@media (width<=360px){.tactics-app{padding:0 10px}.wordmark{font-size:18px}.wordmark span{font-size:10px}.playtest-label{font-size:8px}.crew-tab .crew-monogram{display:none}.battle-counters{gap:8px;max-width:128px}.mission-header h1{font-size:18px}.skill-grid button span{font-size:10px}.skill-grid small{font-size:7px}.crew-intro{gap:12px}.crew-intro p span{max-width:98px}.board-legend{gap:7px;font-size:7px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.focused-danger{stroke:#7e281b;stroke-width:4px}.reinforcement-marker .reserved-label{fill:#853922;font-size:11px}.enemy-move-preview path{fill:none;stroke:#8b472c;stroke-width:2px;stroke-dasharray:5 5}.enemy-move-preview polygon{fill:#cf916333;stroke:#9d5635;stroke-width:2px;stroke-dasharray:5 4}.enemy-move-preview text{fill:#7f3b22;text-anchor:middle;font-size:11px;font-weight:700}.enemy-move-preview.focused polygon{stroke-width:4px}.outcome-undo{margin:15px auto 24px}.outcome-undo button{background:0 0;font-size:12px}.battle-board{min-height:0;padding:0;display:block}.board-view-tools{border-bottom:1px solid #c9baa0;justify-content:flex-end;align-items:center;gap:5px;padding:8px 12px;display:flex}.board-view-tools>span{color:#6b6a57;margin-right:auto;font-size:10px}.board-view-tools button{background:#eee4cd;min-width:35px;min-height:35px;padding:4px 8px;font-size:14px}.board-view-tools button:last-child{font-size:11px}.board-view-tools output{text-align:center;font-variant-numeric:tabular-nums;min-width:36px;font-size:10px}.board-viewport{aspect-ratio:840/465;overscroll-behavior:contain;touch-action:pan-x pan-y;scrollbar-width:thin;scrollbar-color:#8a977a #d4c5a6;width:100%;max-height:560px;overflow:auto}.board-surface{aspect-ratio:840/465;min-width:100%}.board-surface svg{touch-action:pan-x pan-y;width:100%;height:auto;max-height:none;display:block;overflow:hidden}.action-preview .skill-description{color:#f1d897;font-weight:600}@media (width<=760px){.mission-header p:last-child{font-size:11px}.board-legend{font-size:9px}.reinforcement-notice{font-size:11px}.crew-tab strong{font-size:13px}.crew-tab small{font-size:11px}.unit-readiness b{font-size:10px}.unit-readiness small{font-size:9px}.skill-grid button span{font-size:12px}.skill-grid small{font-size:9px}.skill-grid .device-skill span{font-size:11px}.selected-unit-heading strong{font-size:12px}.selected-unit-heading>span{font-size:9px}.action-preview h2{font-size:14px}.action-preview p,.action-preview ul{font-size:12px}.action-preview .preview-resources{font-size:11px}.preview-kicker{font-size:10px}.preview-buttons .primary-button{min-height:44px;font-size:13px}.turn-actions button{min-height:44px;font-size:12px}.turn-actions .end-turn,.enemy-list strong{font-size:13px}.enemy-list small{font-size:11px}.enemy-list button>span>span,.enemy-detail,.battle-log ol{font-size:12px}.section-heading h2,.battle-log h2{font-size:14px}.tactics-help,.dom-map,.tactics-help p{font-size:12px}.coordinate-list button{min-height:44px;font-size:12px}.briefing-copy blockquote{font-size:14px}.briefing-note,.briefing-copy .mission-objective p{font-size:12px}.briefing-subtitle{font-size:14px}.crew-intro p span{font-size:10px}}.board-selection-hint{color:#646a5a;text-align:center;margin:0;padding:5px 12px 8px;font-size:10px;line-height:1.5}.r2-app{--ink:#253730;--accent:#a44d2c;overflow-wrap:break-word}.header-actions{align-items:center;gap:6px;margin-left:auto;display:flex}.r2-app .restart-button{margin:0;position:static}.quick-options{gap:16px;display:flex}.notice.info{background:#dce7d2;border-color:#35766c}.character-portrait{object-fit:cover;object-position:50% 30%;flex-shrink:0;max-width:100%;display:block}.battle-inputs{border:0;min-width:0;margin:0;padding:0}.battle-inputs:disabled{opacity:1}.r2-app .site-header{gap:16px}.r2-app textarea{font:inherit;resize:vertical}.r2-app button{letter-spacing:-.2px}.campaign-menu{isolation:isolate;color:#f9efd9;background:#252c27;border:1px solid #a49676;min-height:calc(100dvh - 103px);margin:18px 0 22px;position:relative;overflow:hidden;box-shadow:0 18px 45px #3d39221c}.menu-keyart,.menu-shade{z-index:-2;pointer-events:none;position:absolute;inset:0}.menu-keyart{background-position:67%;background-size:cover}.menu-shade{z-index:-1;background:linear-gradient(90deg,#171f1de8 0%,#1d2923b0 38%,#1c29221a 74%),linear-gradient(#19252477 0%,#0000 70%,#1b262bd6 100%)}.menu-navigation{border-bottom:1px solid #e1c79339;align-items:center;gap:25px;padding:24px 40px;display:flex}.menu-navigation button{color:#e1d6bd;background:0 0;border:0;border-bottom:2px solid #0000;border-radius:0;padding:8px 0;font-size:13px}.menu-navigation button[aria-current=page]{color:#fff4df;border-color:#efbf79}.menu-navigation button:hover:not(:disabled){color:#fff;background:0 0;border-bottom-color:#d7b883}.menu-content{max-width:640px;padding:48px 6% 74px;position:relative}.menu-eyebrow{letter-spacing:1.5px;color:#ebcca0;margin-bottom:28px;font-size:12px}.menu-content h1{letter-spacing:-3px;text-shadow:0 2px 16px #101b17cc;margin-bottom:24px;font-family:Noto Serif KR,serif;font-size:clamp(44px,5vw,70px);font-weight:600;line-height:1.3}.menu-content h1 em{color:#f7d194;font-style:normal}.menu-intro{color:#d8decb;margin-bottom:28px;font-size:16px;line-height:1.9}.menu-start-actions{gap:13px;max-width:345px;display:grid}.menu-continue.primary-button{color:#28362b;text-align:left;background:#e5bb78;border:1px solid #f2c584;min-height:74px;padding:13px 18px}.menu-continue.primary-button>span{font-size:17px;font-weight:700}.menu-continue small{margin-top:7px;font-size:11px;font-weight:400;display:block}.menu-continue b{font-size:24px}.difficulty-options{grid-template-columns:1fr 1fr;gap:8px;max-width:345px;display:grid}.difficulty-options button{color:#e8dbc4;text-align:left;background:#1f2c27b8;border-color:#baa47b70;padding:10px 12px}.difficulty-options button strong{font-size:13px;display:block}.difficulty-options button span{color:#c1c7b4;margin-top:6px;font-size:10px;display:block}.difficulty-options button[aria-pressed=true]{background:#4c5c40b3;border-color:#e2b673}.difficulty-options button:hover:not(:disabled){color:#fff;background:#425843}.menu-new{color:#f5e3c7;text-align:left;background:#24362ce8;border-color:#c2ae837f;justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.menu-new:hover:not(:disabled){color:#fff;background:#4a6046;border-color:#d7b883}.menu-promise{color:#c8c7ae;margin:22px 0 0;font-size:11px}.menu-footer{color:#cfceba;letter-spacing:.5px;background:#192a24b8;border-top:1px solid #b6a98542;justify-content:space-between;gap:12px;padding:16px 32px;font-size:10px;display:flex;position:absolute;bottom:0;left:0;right:0}.menu-panel{background:#1d2c28f2;border:1px solid #bca37b5e;max-width:none;margin:30px 40px 80px;padding:32px 36px 36px}.menu-panel h1{letter-spacing:-1.7px;text-shadow:none;margin-bottom:14px;font-size:36px}.menu-panel .chapter-kicker{color:#d9b37c;font-size:11px}.menu-panel>p{color:#c4cbb9;max-width:650px;font-size:13px}.menu-panel h2{font-size:16px}.menu-panel .primary-button{color:#25362c;background:#e3b777;border-color:#e3b777;width:100%;max-width:360px;margin-top:24px;font-size:14px}.menu-panel .primary-button:hover{background:#f6d494}.mission-picker{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:24px 0;display:grid}.mission-picker button{color:#f0e5cf;text-align:left;background:#283e33;border:1px solid #7e8f704f;grid-template-columns:31px minmax(0,1fr);gap:7px 11px;min-height:100px;padding:16px;display:grid}.mission-picker button>span{color:#c6b085;grid-row:1/3;font-family:serif;font-size:25px}.mission-picker strong{font-size:14px;line-height:1.5}.mission-picker small{color:#b2c3ab;font-size:10px;line-height:1.5}.mission-picker button[aria-pressed=true]{background:#4c6043;border-color:#e4b97e}.mission-picker button:hover:not(:disabled){background:#425742;border-color:#d7ba84}.mission-loadout{border-top:1px solid #83927855;padding-top:20px}.mission-loadout h2 small{color:#cbb88e;margin-left:12px;font-size:11px}.mission-loadout>div{flex-wrap:wrap;gap:9px;display:flex}.mission-loadout button{color:#d8ddc7;text-align:left;background:#25392f;border:1px solid #82957677;flex:145px;padding:12px}.mission-loadout button strong{font-size:12px;display:block}.mission-loadout button small{color:#b6c4ad;margin-top:7px;font-size:10px;line-height:1.7;display:block}.mission-loadout button[aria-pressed=true]{background:#536146;border-color:#e5bf85}.mission-loadout button:hover:not(:disabled){color:#fff;background:#425743}.crew-gallery{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:28px;display:grid}.crew-gallery article{background:#2b3b31;border:1px solid #b59c7147;min-width:0}.crew-gallery .character-portrait{aspect-ratio:1;filter:saturate(.92);width:100%;height:auto}.crew-gallery article>div{padding:18px}.crew-gallery article span{color:#dcb985;font-size:11px}.crew-gallery h2{margin:5px 0 12px;font-family:serif;font-size:24px}.crew-gallery p{color:#c6d0bc;margin:0 0 14px;font-size:12px;line-height:1.8}.crew-gallery strong{color:#eac792;margin:0 0 9px;font-size:11px;display:block}.record-list{flex-direction:column;gap:10px;margin-top:26px;display:flex}.record-list article{background:#2c4034;border:1px solid #b59c7147;grid-template-columns:1fr auto;gap:10px;padding:17px 20px;display:grid}.record-list h2{margin:5px 0 0;font-size:15px}.record-list small{color:#bfccaf;font-size:10px}.record-list p{color:#c8c9b4;grid-column:1/-1;margin:0;font-size:11px}.medals{color:#f1c782;letter-spacing:4px;align-self:center;font-size:19px}.medals i,.earned-medals i{opacity:.35;font-style:normal}.empty-record{text-align:center;padding:45px 0 15px}.empty-record>span{color:#bdab7e;font-size:60px}.empty-record h2{margin:20px 0 10px}.empty-record p{color:#c4ccba;font-size:12px}.empty-record button{color:#e7ddc5;background:#344a3c;border-color:#a796725c;margin-top:15px}.menu-options{max-width:650px;margin:30px 0}.menu-options label{border-bottom:1px solid #a9987054;justify-content:space-between;align-items:center;gap:20px;padding:18px 0;display:flex}.menu-options strong{font-size:14px;display:block}.menu-options small{color:#bac5b0;margin-top:6px;font-size:11px;display:block}.menu-options input{accent-color:#bb975f;width:22px;height:22px}.save-actions{max-width:700px;margin-top:28px}.save-actions p,.menu-help p{color:#c5ceba;font-size:12px}.save-actions>button,.file-button{color:#eee4c9;cursor:pointer;background:#354b3d;border:1px solid #aaad8480;border-radius:4px;align-items:center;min-height:44px;margin-right:8px;padding:11px 16px;font-size:12px;display:inline-flex;position:relative}.file-button:focus-within{outline-offset:3px;outline:3px solid #f3c581}.file-button input{opacity:0;cursor:pointer;width:100%;position:absolute;inset:0}.menu-help{max-width:700px;margin-top:32px}.menu-help details{border-top:1px solid #8d9a795e;padding:15px 0}.menu-help summary{cursor:pointer;font-size:13px}.menu-help p{margin:15px 0 0}.r2-briefing{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:6%;padding:28px 0 35px}.briefing-visual{background:#b79460;border:1px solid #a5916e;align-self:stretch;min-height:530px;position:relative;overflow:hidden}.briefing-visual:after{content:"";pointer-events:none;z-index:1;background:linear-gradient(#0000 35%,#152f2199 100%);position:absolute;inset:0}.briefing-city{object-fit:cover;object-position:60% center;filter:saturate(.8);width:100%;height:100%;position:absolute}.briefing-crew{z-index:2;justify-content:center;align-items:flex-end;display:flex;position:absolute;inset:13% -12% 0}.briefing-body{object-fit:contain;filter:drop-shadow(0 10px 12px #1427188c);width:62%;height:95%;position:absolute;bottom:0}.briefing-body.rean{z-index:3;left:2%}.briefing-body.tama{z-index:2;bottom:5%;left:24%;transform:scale(.94)}.briefing-body.saf{z-index:1;bottom:8%;right:-1%;transform:scale(.92)}.chapter-route{z-index:4;justify-content:center;gap:10px;display:flex;position:absolute;bottom:22px;left:22px;right:22px}.chapter-route span{color:#e4dcc5;background:#1d3928c9;border:1px solid #b5c3a876;place-items:center;width:31px;height:31px;font-size:11px;display:grid}.chapter-route .current{color:#253b2b;background:#e4b774;border-color:#f0d39b;font-weight:700}.chapter-route .complete{color:#fff1ce;background:#6b8260}.character-dialogue{align-items:center;gap:16px;display:flex}.character-dialogue .character-portrait{object-fit:cover;border:1px solid #b4a17e;width:83px;height:101px}.character-dialogue blockquote{border:0;margin:0;padding:0;font-size:14px;line-height:1.9}.character-dialogue blockquote span{color:#a65b35;margin-bottom:8px;font-size:12px}.equipped-line{color:#617158;font-size:11px;line-height:1.7}.r2-briefing .mission-objective{border-block:1px solid #a8977347;padding:19px 0}.r2-briefing .briefing-note{font-size:12px;line-height:1.75}.objective-progress{color:#334e3c;background:#d8dbc3;border:1px solid #acb091;flex-wrap:wrap;align-items:center;gap:12px;margin:0 0 17px;padding:11px 15px;font-size:12px;display:flex}.objective-progress>strong{font-size:13px}.objective-progress>span{margin-right:auto}.objective-progress button{background:#edf0d9;border-color:#91a48a;min-height:39px;padding:7px 12px;font-size:12px}.objective-progress button small{margin-left:5px;font-size:10px}.objective-progress button[aria-pressed=true]{background:#b9d1b9}.r2-app .command-deck{background:linear-gradient(145deg,#2b4035,#20382d)}.r2-app .crew-tabs{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.r2-app .crew-tab{grid-template-columns:32px minmax(0,1fr);gap:6px;min-height:82px;padding:7px 5px;display:grid}.r2-app .crew-tab .character-portrait{border-radius:2px;width:32px;height:42px}.r2-app .crew-tab small{white-space:nowrap;font-size:9px}.r2-app .unit-readiness{text-align:left;grid-column:1/-1;justify-content:space-between;align-items:center;gap:4px;width:100%;margin:0;display:flex}.r2-app .unit-readiness b,.r2-app .unit-readiness small{margin:0;font-size:8px}.selected-character{border-bottom:1px solid #82947757;align-items:center;gap:16px;margin:16px 0;padding:0 0 15px;display:flex}.selected-character .character-portrait{object-position:50% 22%;border:1px solid #d9bf8963;width:91px;height:100px;box-shadow:0 3px 12px #13261a50}.selected-character>div{flex:1;min-width:0}.selected-character span{color:#d4bd90;font-size:10px}.selected-character strong{margin-top:3px;font-family:Noto Serif KR,serif;font-size:22px;line-height:1.5;display:block}.selected-character p{color:#c8d1b5;margin:6px 0 0;font-size:11px}.r2-app .skill-grid button{min-height:57px}.r2-app .skill-grid:has([data-testid=action-objective]) .device-skill{grid-column:auto;display:block}.r2-app .skill-grid:has([data-testid=action-objective]) .device-skill small{margin-top:5px}.r2-app .crew-tab:disabled{filter:grayscale()}.mark-badge{color:#8b3c27;white-space:nowrap;font-size:9px;font-weight:500}.r2-app .board-viewport{background:radial-gradient(#f0e2c5,#cbb894)}.r2-app .actor{will-change:transform;transition:transform .34s cubic-bezier(.2,.6,.35,1)}.r2-app .actor-ring{fill:#207b6266;stroke:#e7efd3;stroke-width:2.5px}.r2-app .actor.enemy .actor-ring{fill:#b5573f4d;stroke:#9d3c28;stroke-width:2.5px;stroke-dasharray:5 2}.r2-app .actor.chosen .actor-ring{stroke:#fffbe2;stroke-width:5px;filter:drop-shadow(0 0 3px #153829)}.r2-app .actor-fallen{opacity:0;transition:transform .34s,opacity .42s}.r2-app .board-surface .enemy-sprite{width:initial;max-height:none;overflow:hidden}.enemy-art.warden{filter:sepia(.4)hue-rotate(320deg)saturate(1.6)drop-shadow(0 0 4px #aa4629)}.r2-app .actor.staggered image{filter:saturate(.35)}.r2-app .unit-name{stroke-width:4px;font-size:14px}.r2-app .hp-back{fill:#3c3d2e;stroke:#ead9b5;stroke-width:1px}.r2-app .hp-fill{fill:#65bc94}.r2-app .enemy .hp-fill{fill:#df8f56}.objective-token ellipse{fill:#b9ceae80;stroke:#346554;stroke-width:3px;stroke-dasharray:5 3;cursor:pointer}.objective-token path{fill:#e9bf74;stroke:#385341;stroke-width:2px}.objective-token text{fill:#2c5344;stroke:#efdfb8;stroke-width:4px;paint-order:stroke;text-anchor:middle;font-size:13px;font-weight:700}.objective-token .objective-symbol{font-size:19px}.objective-token.complete{opacity:.48}.objective-token.complete ellipse{stroke-dasharray:none}.damage-number{fill:#a2301e;stroke:#fff0c9;stroke-width:4px;paint-order:stroke;text-anchor:middle;pointer-events:none;font-size:25px;font-weight:800;animation:.44s ease-out both damage-rise}.marked-label,.charge-label{text-anchor:middle;stroke:#f9e7bd;stroke-width:4px;paint-order:stroke;fill:#9c4027;font-size:12px;font-weight:700}.charge-label{fill:#5b3b7d}.actor-hit{animation:.42s ease-out hit-flash}.actor-attacking{animation:.4s ease-out attack-pulse}.board-resolving .board-tile{cursor:wait}.board-resolving .board-tile:hover>polygon:first-of-type{fill:revert-layer}.r2-app .enemy-list strong{flex-wrap:wrap;row-gap:4px}.r2-app .enemy-list small{margin-left:auto}.board-view-tools button:focus-visible{outline-offset:0}@keyframes damage-rise{0%{opacity:0;transform:translateY(10px)}20%{opacity:1}to{opacity:0;transform:translateY(-18px)}}@keyframes hit-flash{0%,45%{opacity:.35;filter:brightness(1.9)sepia(.6)}25%,70%,to{opacity:1;filter:none}}@keyframes attack-pulse{0%,to{transform:translateY(0)}35%{transform:translateY(-9px)}65%{transform:translateY(2px)}}.r2-intermission{max-width:920px}.return-portrait{width:116px;margin:0 auto 22px;position:relative}.return-portrait .character-portrait{object-position:50% 25%;border:3px double #8c8d6c;width:116px;height:126px}.return-portrait span{color:#f8e4be;background:#304b3c;padding:5px;font-size:11px;position:absolute;bottom:-8px;left:18px;right:18px}.earned-medals{margin:-12px auto 20px}.earned-medals strong{color:#ad7a35;letter-spacing:12px;font-size:29px}.earned-medals p{color:#77765c;margin:9px 0;font-size:11px}.result-strip strong small{color:#7c836b;font-size:13px;font-weight:400}.result-controls{flex-wrap:wrap;justify-content:center;gap:10px;margin:16px 0 30px;display:flex}.result-controls button{background:#efe6d0;min-height:40px;font-size:12px}.share-text{text-align:left;color:#5e6957;max-width:600px;margin:0 auto 30px;font-size:12px;display:block}.share-text textarea{color:#354a3a;background:#faf4e2;border:1px solid #a99d80;border-radius:3px;width:100%;margin-top:8px;padding:12px;line-height:1.7;display:block}.share-text textarea:focus-visible{outline-offset:3px;outline:3px solid #a76136}.r2-intermission .upgrade-options{grid-template-columns:repeat(3,minmax(0,1fr))}.r2-intermission .upgrade-options button{grid-template-columns:1fr;gap:13px;padding:22px}.r2-intermission .upgrade-icon{grid-row:auto;width:44px;height:47px}.r2-intermission .upgrade-options button strong{font-size:16px}.r2-ending{max-width:920px}.ending-city{object-fit:cover;object-position:center 60%;border:1px solid #a99a77;width:100%;height:300px;margin:0 auto 32px;display:block}.campaign-totals{background:#dbdcc5;border-block:1px solid #afb292;flex-wrap:wrap;justify-content:center;gap:18px;margin:22px 0 30px;padding:17px;font-size:12px;display:flex}.campaign-totals strong{font-weight:600}.epilogue-crew{text-align:left;flex-direction:column;gap:20px;max-width:760px;margin:0 auto 30px;display:flex}.epilogue-crew article{align-items:center;gap:22px;display:flex}.epilogue-crew .character-portrait{border:1px solid #a79a77;width:100px;height:100px}.epilogue-crew h2{margin-bottom:8px;font-size:17px}.epilogue-crew p{color:#657057;margin:0;font-size:13px;line-height:1.9}.ending-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;display:flex}.ending-actions .primary-button{min-width:0!important;margin:15px 0!important}.ending-actions>button{font-size:13px}.r2-app.reduce-motion *,.r2-app.reduce-motion :before,.r2-app.reduce-motion :after{transition:none!important;animation:none!important}@media (width>=1450px){.r2-app .combat-layout{grid-template-columns:minmax(0,1fr) 385px}.menu-content{padding-top:65px}.campaign-menu{min-height:790px}}@media (width<=1050px){.r2-app .combat-layout{grid-template-columns:minmax(0,1fr) 320px;gap:16px}.r2-app .crew-tab{grid-template-columns:26px minmax(0,1fr);column-gap:4px;padding:6px 4px}.r2-app .crew-tab .character-portrait{width:26px;height:35px}.r2-app .crew-tab strong{font-size:11px}.r2-app .crew-tab small{font-size:8px}.r2-app .unit-readiness b,.r2-app .unit-readiness small{font-size:7px}.menu-panel{margin:25px 25px 75px;padding:28px}.menu-navigation{gap:22px;padding:19px 27px}.briefing-visual{min-height:470px}.r2-briefing{gap:4%}.character-dialogue{gap:12px}.character-dialogue .character-portrait{width:70px;height:88px}.character-dialogue blockquote{font-size:13px}.mission-picker{grid-template-columns:repeat(2,minmax(0,1fr))}.crew-gallery{gap:13px}.crew-gallery article>div{padding:14px}}@media (width<=760px){.r2-app{padding:0 12px}.r2-app .site-header{gap:7px;min-height:66px;padding:12px 0}.r2-app .wordmark{font-size:19px}.r2-app .wordmark span{font-size:11px}.r2-app .playtest-label{display:none}.header-actions{gap:0}.r2-app .header-actions button{min-height:40px;padding:7px;font-size:10px}.quick-options{gap:9px}.save-line{flex-wrap:wrap;gap:7px;padding:9px 0}.save-line label{font-size:10px}.save-state{font-size:9px}.campaign-menu{min-height:calc(100dvh - 92px);margin:8px 0 15px}.menu-keyart{background-position:60%}.menu-shade{background:linear-gradient(90deg,#142b22d9,#17251d66),linear-gradient(#0000 30%,#183225f2 100%)}.menu-navigation{justify-content:space-between;gap:0;padding:9px 12px}.menu-navigation button{min-height:40px;padding:7px 2px;font-size:11px}.menu-content{max-width:550px;padding:39px 25px 81px}.menu-eyebrow{letter-spacing:.6px;margin-bottom:23px;font-size:10px}.menu-content h1{letter-spacing:-2.2px;margin-bottom:24px;font-size:47px;line-height:1.33}.menu-intro{margin-bottom:25px;font-size:14px}.menu-start-actions{gap:11px;max-width:310px}.menu-continue.primary-button{min-height:67px;padding:12px 15px}.menu-continue.primary-button>span{font-size:16px}.menu-continue small{font-size:10px}.difficulty-options button{padding:9px 11px}.difficulty-options button strong{font-size:12px}.difficulty-options button span{font-size:9px}.menu-new{padding:12px 15px;font-size:13px}.menu-promise{font-size:10px}.menu-footer{letter-spacing:0;padding:13px 15px;font-size:8px}.menu-panel{max-width:none;margin:13px 12px 66px;padding:22px 16px}.menu-panel h1{letter-spacing:-1.3px;margin-bottom:14px;font-size:27px}.menu-panel>p{font-size:12px}.menu-panel .chapter-kicker{font-size:10px}.mission-picker{gap:8px;margin-top:20px}.mission-picker button{grid-template-columns:1fr;gap:7px;min-height:116px;padding:12px}.mission-picker button>span{grid-row:auto;font-size:19px}.mission-picker strong{font-size:12px}.mission-picker small{font-size:9px}.mission-loadout h2{font-size:13px}.mission-loadout>div{gap:7px}.mission-loadout button{flex-basis:105px;padding:10px}.mission-loadout button strong{font-size:11px}.mission-loadout button small{font-size:9px}.menu-panel .primary-button{margin-top:20px;padding:12px;font-size:13px}.crew-gallery{grid-template-columns:1fr;gap:17px;margin-top:22px}.crew-gallery article{grid-template-columns:105px minmax(0,1fr);align-items:start;display:grid}.crew-gallery .character-portrait{aspect-ratio:auto;object-fit:cover;object-position:50% 20%;height:148px}.crew-gallery article>div{padding:11px}.crew-gallery article span{font-size:10px}.crew-gallery h2{margin:3px 0 8px;font-size:19px}.crew-gallery p{margin-bottom:10px;font-size:10px;line-height:1.7}.crew-gallery strong{margin-bottom:7px;font-size:10px}.record-list article{column-gap:5px;padding:13px}.record-list h2{font-size:13px}.record-list small,.record-list p{font-size:10px}.medals{letter-spacing:2px;font-size:15px}.menu-options label{padding:16px 0}.menu-options strong{font-size:13px}.menu-options small{font-size:10px;line-height:1.6}.save-actions>button,.file-button{justify-content:center;width:100%;margin:10px 0 0;font-size:12px;display:flex}.menu-help summary{font-size:12px}.menu-help p,.save-actions p{font-size:11px}.empty-record{padding:25px 0 5px}.empty-record h2{font-size:14px}.empty-record p{font-size:11px}.r2-briefing{gap:14px;padding:5px 0 12px}.briefing-visual{align-self:auto;width:100%;min-height:290px;max-height:330px}.briefing-city{object-position:center 56%}.briefing-crew{inset:-1% 1% -5%}.briefing-body{width:59%;height:108%}.briefing-body.rean{left:-3%}.briefing-body.tama{bottom:1%;left:19%}.briefing-body.saf{bottom:4%;right:-3%}.chapter-route{gap:8px;bottom:13px}.chapter-route span{width:27px;height:27px;font-size:10px}.r2-briefing .briefing-copy{padding:10px 4px}.r2-briefing .briefing-copy h1{font-size:30px}.r2-briefing .briefing-subtitle{margin-bottom:20px;font-size:13px}.character-dialogue .character-portrait{width:75px;height:89px}.character-dialogue blockquote{font-size:13px;line-height:1.85}.character-dialogue blockquote span{font-size:11px}.r2-briefing .mission-objective{margin:20px 0;padding:15px 0}.r2-briefing .mission-objective strong{font-size:15px}.r2-briefing .mission-objective p{font-size:12px}.r2-briefing .launch-button{min-height:49px}.r2-briefing .briefing-note{font-size:11px}.r2-app .combat-layout{gap:0;display:flex}.objective-progress{gap:9px;margin-bottom:11px;padding:10px;font-size:10px}.objective-progress>strong{font-size:11px}.objective-progress>span{flex:1;min-width:150px;line-height:1.5}.objective-progress button{flex:1;min-height:43px;padding:7px;font-size:11px}.objective-progress button small{margin:4px 0 0;font-size:9px;display:block}.r2-app .crew-tab{grid-template-columns:35px minmax(0,1fr);gap:6px;min-height:73px;padding:7px 6px}.r2-app .crew-tab .character-portrait{width:35px;height:40px}.r2-app .crew-tab strong{font-size:12px}.r2-app .crew-tab small{font-size:9px}.r2-app .unit-readiness b,.r2-app .unit-readiness small{font-size:8px}.selected-character{gap:12px;margin:10px 0;padding-bottom:10px}.selected-character .character-portrait{width:60px;height:64px}.selected-character strong{font-size:19px}.selected-character span{font-size:9px}.selected-character p{margin-top:3px;font-size:10px}.r2-app .skill-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.r2-app .skill-grid button{min-height:53px;padding:7px 5px}.r2-app .skill-grid .device-skill{grid-column:span 2;display:block}.r2-app .skill-grid:has([data-testid=action-objective]) .device-skill{grid-column:auto}.r2-app .skill-grid button span{font-size:12px}.r2-app .skill-grid small{font-size:9px;line-height:1.5}.r2-app .skill-grid .device-skill small{margin-top:5px}.r2-app .board-view-tools{padding:6px 8px}.r2-app .board-view-tools>span{font-size:9px}.r2-app .board-view-tools button{min-width:34px;min-height:36px;padding:4px 7px}.r2-app .board-selection-hint{padding-bottom:6px;font-size:9px}.r2-app .board-legend{gap:9px;font-size:8px}.r2-app .battle-counters{gap:9px;max-width:146px}.r2-app .mission-header{gap:7px}.r2-app .mission-header h1{font-size:21px}.r2-app .mission-header p:last-child{font-size:10px}.r2-app .mark-badge{font-size:9px}.r2-intermission .upgrade-options{grid-template-columns:1fr}.r2-intermission .upgrade-options button{grid-template-columns:40px 1fr;gap:8px 13px;padding:16px}.r2-intermission .upgrade-icon{grid-row:1/4;width:40px;height:45px}.r2-intermission .upgrade-options button strong{font-size:15px}.return-portrait{width:96px;margin-bottom:22px}.return-portrait .character-portrait{width:96px;height:106px}.r2-intermission h1,.r2-ending h1{letter-spacing:-1.5px;font-size:29px}.result-controls{gap:8px;margin-bottom:25px}.result-controls button{font-size:11px}.earned-medals strong{letter-spacing:9px;font-size:25px}.earned-medals p{font-size:10px}.ending-city{height:210px;margin-bottom:25px}.epilogue-crew{gap:18px}.epilogue-crew article{align-items:flex-start;gap:13px}.epilogue-crew .character-portrait{width:74px;height:90px}.epilogue-crew h2{margin-bottom:6px;font-size:14px}.epilogue-crew p{font-size:11px;line-height:1.85}.campaign-totals{gap:8px;padding:14px;font-size:10px}.ending-actions{gap:4px}.ending-actions>button{justify-content:center;width:100%;min-height:46px}.share-text{font-size:11px}.r2-app .site-footer{font-size:9px}}@media (width<=360px){.r2-app{padding:0 9px}.menu-content{padding-left:20px;padding-right:20px}.menu-navigation{padding-inline:9px}.menu-navigation button{font-size:10px}.menu-content h1{font-size:41px}.r2-app .wordmark{font-size:18px}.r2-app .wordmark span{font-size:10px}.header-actions button{padding:5px!important}.r2-app .crew-tab{grid-template-columns:28px minmax(0,1fr);gap:4px;padding:6px 4px}.r2-app .crew-tab .character-portrait{width:28px;height:36px}.r2-app .crew-tab strong{font-size:11px}.r2-app .crew-tab small{font-size:8px}.r2-app .unit-readiness b,.r2-app .unit-readiness small{font-size:7px}.menu-panel{padding:18px 12px}.crew-gallery article{grid-template-columns:86px minmax(0,1fr)}}.r2-app .crew-tab{grid-template-columns:26px minmax(0,1fr);column-gap:5px;min-height:100px}.r2-app .crew-tab .character-portrait{width:26px;height:38px}.r2-app .crew-tab strong{font-size:13px}.r2-app .crew-tab small{font-size:11px}.r2-app .unit-readiness{flex-direction:column;align-items:flex-start;gap:4px;display:flex}.r2-app .unit-readiness b,.r2-app .unit-readiness small{font-size:11px;line-height:1.4}.r2-app .skill-grid small{font-size:11px}.r2-app .selected-character p{font-size:12px}.r2-app .selected-character span,.r2-app .board-legend,.r2-app .board-selection-hint,.r2-app .board-view-tools>span{font-size:11px}.r2-app .objective-progress{font-size:12px}.r2-app .objective-progress button small{font-size:11px}@media (width<=760px){.r2-app .crew-tab{min-height:105px;padding:8px 5px}.r2-app .crew-tab .character-portrait{height:39px}.r2-app .board-legend{gap:6px 11px;font-size:10px}.r2-app .mission-header p:last-child{font-size:12px}.r2-app .battle-counters span,.r2-app .board-topline span{font-size:10px}.r2-app .objective-progress>span{font-size:11px}.r2-app .skill-grid button{min-height:60px}.r2-app .board-view-tools>span,.r2-app .board-selection-hint{font-size:10px}.r2-app .selected-character .character-portrait{width:65px;height:73px}}@media (width<=360px){.r2-app .crew-tab{grid-template-columns:22px minmax(0,1fr);gap:4px;padding-inline:4px}.r2-app .crew-tab .character-portrait{width:22px;height:34px}.r2-app .crew-tab strong{font-size:12px}.r2-app .crew-tab small,.r2-app .unit-readiness b,.r2-app .unit-readiness small{font-size:10px}}.ground-art{filter:saturate(.62)brightness(1.03);opacity:.88}.ground-stage-4{filter:saturate(.55)brightness(1.15)}.r2-app .board-tile .floor-tile{fill-opacity:.32;stroke:#806f508c;stroke-width:1.2px}.r2-app .board-tile.reachable .floor-tile{fill-opacity:.57;stroke:#286f61;stroke-width:2.5px}.r2-app .board-tile:hover .floor-tile{fill-opacity:.62}.r2-app .board-tile.targeted .floor-tile{fill-opacity:.56}.r2-app .wall image{filter:saturate(.66)brightness(1.15)drop-shadow(0 3px 2px #36271870)}.r2-app .board-surface .environment-sprite{max-height:none;overflow:hidden}.r2-app .device-token.used{opacity:.74}.r2-app .device-token text{stroke:#f2e1bd;stroke-width:4px;paint-order:stroke}.r2-app .board-base{fill:#7f6e51;stroke:#685841}
