@font-face{font-family:Mulmaru;src:url(./Mulmaru-C2nrW7hK.woff2) format("woff2");font-display:swap}:root{--font-body: "Segoe UI", "Malgun Gothic", "Apple SD Gothic Neo", sans-serif;--font-display: Mulmaru, "Malgun Gothic", sans-serif;color-scheme:dark;--raised: #243441;--selected: #2d4353;--ally: #b9f3d2;--danger: #ffd0bc;--loss: #ffe3a0;--disabled-bg: #26313b;--disabled-text: #c3ced8;--on-accent: #102119;font-family:var(--font-body);font-weight:400;color:var(--ink);background:var(--paper);font-synthesis:none;--ui-gold: #d7c59b;--paper: #10191e;--sheet: #19272d;--ink: #edf0e9;--muted: #bccbc6;--line: #4c6568;--polish-line: #3f535d;--board-empty: #162127;--board-ally: #17392e;--board-enemy: #3d252c;--board-node-edge: #9aadb5;--board-candidate: #d6f3ff;--board-halo: #080d11;--board-grid-line: #101c2266;--board-empty-plinth: #16212799;--board-wall-line: #a4b5b3;--board-ally-plinth: #17392e99;--board-enemy-plinth: #3d252c99;--board-protected-plinth: #3b342299;--board-moving-plinth: #192b3299}*{box-sizing:border-box}body{margin:0;color:var(--ink)}main{max-width:1600px;margin:auto;padding:28px}h1,h2,h3,h4,p{margin-top:0}h1{font-size:30px;line-height:1.25;margin:8px 0 18px}h2{font-size:21px}h3{font-size:17px}h4{font-size:16px}p{line-height:1.6}small{font-size:13px;color:var(--muted)}a{color:var(--ally)}em{color:var(--loss);font-style:normal}button,input,select{font:inherit}button{color:var(--ink);background:var(--sheet);border:1px solid var(--line);padding:9px 12px;margin:3px;cursor:pointer;border-radius:0;line-height:1.3}button:hover:not(:disabled){background:var(--raised);border-color:var(--ink)}button.primary{color:var(--on-accent);background:var(--ally);border-color:var(--ally);font-weight:700}button.primary:hover:not(:disabled){background:var(--ink);color:var(--on-accent)}button[aria-pressed=true]{background:var(--selected);color:var(--ink);border:3px double var(--ally);padding:7px 10px}button:disabled,button.primary:disabled{color:var(--disabled-text);background:var(--disabled-bg);border:1px dashed var(--line);opacity:1;cursor:not-allowed;font-weight:400}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--loss);outline-offset:3px}input:not([type=checkbox]),select{color:var(--ink);background:var(--paper);border:1px solid var(--line);padding:9px;margin:6px}input[type=checkbox]{accent-color:var(--ally);width:20px;height:20px;flex-shrink:0;vertical-align:middle}input:disabled{opacity:1;color:var(--disabled-text)}option{color:var(--ink);background:var(--paper)}label{line-height:1.6}.toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:12px 0}.result{text-align:center}.result details{text-align:left}.error{border:2px solid var(--danger);padding:12px;color:var(--danger);background:var(--paper)}summary{cursor:pointer;padding:8px 0}pre{color:var(--ink);font-family:ui-monospace,Consolas,Courier New,monospace;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.4;tab-size:4}footer{color:var(--muted);font-size:13px;text-align:center;padding:24px}[hidden]{display:none!important}@media(max-width:900px){main{padding:16px}}.rules-guide{max-width:1000px}.rules-guide p{font-size:15px;line-height:1.8}.rules-guide{line-height:1.7}.graph-link{position:absolute;height:0;border-top:2px dashed #819aa9;transform-origin:left center;pointer-events:none}.compact-offers{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))}.eyebrow{display:block;text-transform:none;letter-spacing:.08em;font-size:.75rem;color:#c8bf9d;margin:0 0 5px}.secondary{color:#cad3d1;font-size:.875rem}body{background:radial-gradient(ellipse at 50% 0,#243437 0,transparent 65%),var(--paper)}.polish-app h1,.polish-battle h1,.terminal-modal>header h2{font-family:Mulmaru,Malgun Gothic,sans-serif;font-weight:500;letter-spacing:.01em}.polish-app button,.polish-battle button,.terminal-modal button{border-radius:6px;border:1px solid #647b83;background:#1b2b34;color:#edf1ed;padding:9px 14px;font:inherit;font-size:.875rem;line-height:1.4;min-height:36px;transition:background .15s,border-color .15s,box-shadow .18s}.polish-app button:hover:not(:disabled),.polish-battle button:hover:not(:disabled),.terminal-modal button:hover:not(:disabled){background:#2b4249;border-color:#c4d6cf}.polish-app button.primary,.polish-battle button.primary,.terminal-modal button.primary{background:#c5dbcd;color:#162c27;border-color:#c5dbcd;font-weight:700}.polish-app button:disabled,.polish-battle button:disabled,.terminal-modal button:disabled{background:#29343c;color:#c0c8c9;border-style:dashed;cursor:not-allowed;opacity:1}.polish-app :focus-visible,.polish-battle :focus-visible,.terminal-modal :focus-visible{outline:3px solid #edcf88;outline-offset:3px}@media(prefers-reduced-motion:reduce){.polish-app *,.terminal-modal *,.card-hover-preview *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.shop-heading{display:flex;align-items:baseline;gap:1rem;flex-wrap:wrap}.shop-heading strong{font-size:1.4rem}.shop-section{margin-bottom:1.5rem}.offer-grid{display:grid;gap:1rem;align-items:stretch}.offer-tile{display:flex;flex-direction:column;gap:.75rem;min-width:0;margin:0}.offer-tile>button,.offer-purchase{margin-top:auto}.offer-purchase{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.offer-tile h4,.offer-tile p{margin-bottom:0}.reward-panel{margin-bottom:1rem}.v4-tabs,.v4-run-hud,.v4-deck-confirm{display:flex;align-items:center;flex-wrap:wrap;gap:1rem;margin-bottom:1rem}.v4-run-hud h1{flex:1 1 100%;font-size:1.5rem}.v4-deck-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,245px),1fr));gap:1rem;margin:1rem 0}.v4-deck-grid>section{min-width:0;display:flex;flex-direction:column;gap:.5rem;padding:.35rem;border:2px solid transparent}.v4-deck-picked{border-color:var(--ally)!important}.v4-deck-confirm{position:sticky;bottom:0;padding:1rem;background:var(--paper);border-top:1px solid var(--line);z-index:5}.v4-route-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,350px),1fr));gap:1rem}.polish-app,.polish-battle{font-size:1rem;line-height:1.55;color:#ecf0ed}.polish-app{width:min(100%,1040px);max-width:1040px;padding:32px}.polish-app h1{font-size:2rem;margin:10px 0 24px}.polish-app h2,.polish-battle h2{font-size:1.1rem}.polish-app button.primary:hover:not(:disabled),.polish-battle button.primary:hover:not(:disabled){background:#e0ebdb}.polish-app button[aria-pressed=true],.polish-battle button[aria-pressed=true],button[role=tab][aria-selected=true]{border-color:#b7d9ca;background:#2d4644;box-shadow:inset 0 -2px #b7d9ca}.polish-app .text-button,.polish-battle .text-button{background:transparent;border-color:transparent;padding:4px 7px;text-decoration:underline;text-underline-offset:4px}.polish-app .panel,.polish-app .offer-tile,.codex-entry{background:#17262e;border:1px solid var(--polish-line);border-radius:8px;padding:20px}.polish-app .app-shell{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--polish-line);margin-bottom:28px;padding-bottom:12px;gap:12px}.app-shell nav{display:flex;gap:8px}.polish-app .v4-tabs{display:flex;gap:8px;margin-bottom:16px}.polish-app .v4-run-hud{border-bottom:1px solid var(--polish-line);padding-bottom:12px;font-size:.875rem;gap:8px 22px;margin-bottom:28px}.starter-preview{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:24px}.starter-preview ul{columns:2;padding-left:18px;line-height:2;font-size:.875rem}.primary-action-bar{padding-block:20px;display:flex;justify-content:flex-end;flex-wrap:wrap;gap:12px}.polish-app .v4-deck-grid>section{padding:5px;border-radius:8px}.polish-app .v4-deck-picked{border-color:#a3d2c5!important}.polish-app .v4-deck-confirm{justify-content:space-between;border-radius:8px;font-size:.875rem}.polish-app .offer-grid{gap:16px}.polish-app .offer-tile{min-width:0;display:flex;flex-direction:column}.polish-app .offer-tile>h2{margin-top:0}.polish-app .offer-tile>button{margin-top:auto}.shop-heading{justify-content:space-between}.shop-heading strong{color:#e6d5a5}.receiver-options{display:flex;flex-wrap:wrap;gap:12px}.codex-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.codex-entry{display:flex;flex-direction:column;gap:6px}.codex-entry h2,.codex-entry p{margin:0 0 8px}.codex-entry>button{align-self:start;margin-top:auto}.enemy-glyph{font:700 1.6rem monospace;color:#e6caae}.polish-rules nav{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.polish-rules nav a{color:#c6ded4;padding:5px}.polish-rules details{border-top:1px solid #52616a;padding-block:14px;scroll-margin-top:20px}.polish-rules summary{cursor:pointer;font-weight:700}.polish-rules details>div{padding:6px 10px}.v4-reward-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px}@media(max-width:600px){.polish-app{padding:20px 16px}}.polish-app .v4-deck-grid,.terminal-modal .v4-deck-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,175px),1fr));gap:16px}.panel{color:var(--ink);background:var(--sheet);border:1px solid var(--line);padding:20px;margin-bottom:16px}.compact-card-wrap{position:relative;min-width:0}.card{color-scheme:light;--paper: #f3ead8;--ink: #302b25;--muted: #564635;--line: #c3b38e;--disabled-bg: #ddd7ca;--disabled-text: #4c4842;display:grid;grid-template-rows:28px minmax(min-content,1fr) minmax(min-content,1fr);min-width:0;min-height:min-content;height:auto;margin:0;padding:10px 12px;aspect-ratio:464 / 656;color:#302b25;background:#f3ead8;background-image:linear-gradient(#fff8e633,#fff8e633),url(./basic-BlXXzUBG.webp);background-size:100% 100%;border:1px solid #b8a67f;border-radius:7px;box-shadow:0 3px 7px #0003;overflow:hidden}:root[data-textures=off] .card{background-image:none}.card header{display:flex;align-items:baseline;gap:10px;font-size:.9375rem;line-height:1.4;padding:0 0 6px;border:0}.card .face{position:relative;min-height:0;width:100%;margin:0;padding:7px 3px;display:block;border:0;border-radius:0;color:#302b25;background:transparent;text-align:left;font-weight:400;overflow-wrap:anywhere}.card .face+.face{border-top:1px solid #c3b38e}.card .face p{font-size:.875rem;line-height:1.5;margin:3px 0 0;padding:0}.card .face-label{display:flex;align-items:center;flex-wrap:wrap;gap:4px;font-size:.75rem;line-height:1.3;color:#564635}.card em{color:#93421e;font-weight:700;font-style:normal}.card .face:hover:not(:disabled){color:#302b25;background:#e9dcc2}.card .face[aria-pressed=true],.card .face-selected{color:#302b25;background:#dfe6d8;box-shadow:inset 3px 0 #5b7862}.card .face-selected .face-label{color:#2a583b}.card .face-selected p,.card .face-selected>b{padding-left:5px}.card .face>b{min-height:0}.card.full-card{grid-template-rows:auto minmax(min-content,1fr) minmax(min-content,1fr)}.terminal-modal .full-card{width:min(100%,350px);margin:20px auto}.terminal-modal .full-card .face p{font-size:1rem}.v4-deck-grid .card{flex:1}.polish-app .card-offers{grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),220px))}.pile-card-grid .compact-card-wrap{width:100%;max-width:260px}.card-hover-preview{position:fixed;z-index:2000;width:min(360px,calc(100vw - 16px));max-height:calc(100dvh - 16px);overflow:auto;pointer-events:none;background:#18272df5;color:#edf0e9;border:1px solid #9eafa3;border-radius:7px;padding:16px 18px;box-shadow:0 8px 24px #0007;font:14px/1.65 Malgun Gothic,sans-serif}.card-hover-preview .preview-name{display:block;font-size:1rem;color:#e6d5a7;margin-bottom:8px}.card-hover-preview section+section{border-top:1px solid #52656a;padding-top:10px;margin-top:10px}.card-hover-preview h3{font-size:.875rem;margin:0 0 4px;color:#bfe0cf}.card-hover-preview p{margin:0}.card .effect-picture img,.apartment-map .effect-picture img{filter:brightness(0)}.card .icon-mark{background:#f0e9d6;color:#302b25}.card.compact-card .face p{display:block;overflow:visible;-webkit-line-clamp:unset}.card .face-label{display:flex;align-items:center;flex-wrap:wrap;gap:4px}.face-label .effect-picture,.face-label .effect-picture img{width:17px;height:17px}.card.compact-card .face{overflow:hidden}.card.compact-card .effect-picture,.card.compact-card .effect-picture img{width:15px;height:15px}.card.compact-card .effect-icon{gap:2px;padding:0}.card.compact-card .effect-value{font-size:.75rem}.card.compact-card .effect-step{gap:2px 4px;padding-block:1px}.card.compact-card .effect-sequence{display:block}.card.compact-card .effect-ordered,.card.compact-card .effect-step{display:inline}.card.compact-card .effect-icon{margin:1px 2px 1px 0}.card.full-card .face{overflow:visible}.card.full-card .effect-picture,.card.full-card .effect-picture img{width:20px;height:20px}.card.full-card .effect-caption,.card.full-card .effect-note{font-size:.875rem}.card.full-card .effect-value{font-size:1rem}@media(max-width:1000px){.card .effect-picture,.card .effect-picture img{width:16px;height:16px}}.terminal-modal{width:min(1220px,95vw);overflow:auto;opacity:1;filter:none;font-family:inherit}.terminal-modal>header{display:flex;justify-content:space-between;gap:16px;margin-bottom:16px}.terminal-modal h2{margin:0;font-size:23px}.terminal-modal p{font-size:15px}.lossChoice{display:flex;align-items:center;gap:12px;border:1px solid var(--line);color:var(--ink);background:var(--sheet);padding:10px;cursor:pointer;line-height:1.4;font-size:15px}.lossChoice:has(input:checked){background:var(--selected);border:3px double var(--ally);padding:8px}.terminal-modal{color:#ecf0ed;background:#16242d;border:1px solid #80938f;border-radius:12px;box-shadow:0 24px 90px #0009;padding:24px;max-width:min(960px,94vw);max-height:90dvh}.terminal-modal::backdrop{background:#040c10bd}.terminal-modal>header{align-items:center;border-bottom:1px solid #50626a;padding-bottom:14px}.dialog-menu{display:grid;gap:10px;min-width:min(320px,70vw)}.pile-control{position:relative}.pile-popover{position:fixed;z-index:80;left:18px;right:18px;overflow:auto;padding:16px;background:#16262f;border:1px solid #a5bcb3;border-radius:8px;box-shadow:0 -6px 24px #0007}.pile-popover h2{margin:0 0 12px;font-size:1rem}.pile-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,180px),1fr));gap:14px}.terminal-modal:has(.v4-deck-grid){width:min(960px,94vw)}@media(max-width:600px){.terminal-modal{padding:18px}}@media(max-width:600px){.pile-card-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}}.damage-health{position:sticky;top:0;z-index:3;display:grid;gap:6px;padding:12px;margin-bottom:14px;border:1px solid var(--line);border-radius:4px;background:var(--paper);color:var(--ink)}.damage-health strong{font-size:1.1rem}.apartment-map{background:linear-gradient(#f2edddbf,#e9e1cbdd),url(./parchment-B15XX3n2.webp) center/100% 100%;border:6px solid #59605b;border-radius:2px;padding:30px;color:#302f2a;box-shadow:0 8px 24px #0004}.apartment-map .eyebrow{color:#62563c}.apartment-map h1{font-family:Mulmaru,sans-serif}.map-rail{width:100%;display:block;margin-block:18px}.map-rail path{stroke:#928367;stroke-width:2;stroke-dasharray:5 5;fill:none}.map-rail rect{fill:#eae3d1;stroke:#827657;stroke-width:2}.map-rail .passed rect{fill:#536d60}.map-rail .passed text{fill:#fff}.map-rail .current rect{fill:#3a5b59;stroke-width:5}.map-rail .current text{fill:#fff}.map-rail text{fill:#453d2d;font:13px Malgun Gothic,sans-serif}.map-rail .unrevealed{opacity:.55}.map-current{text-align:center;border-block:1px solid #a99a78;padding:10px;font-size:.875rem}.map-rooms{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:24px 0}.map-room{border:1px solid #a39472;background:#eee7d6;border-radius:6px;padding:22px;display:flex;flex-direction:column;gap:8px}.map-room h2{font-size:1.25rem;margin:6px 0}.room-sign{font-size:.75rem;color:#64563e;letter-spacing:.1em}.room-threat{font-size:.875rem}.map-room details{font-size:.875rem;margin-block:8px 16px}.map-room summary{cursor:pointer}.map-room p{margin:4px 0}.map-room button{margin-top:auto}.map-history{padding-block:12px;font-size:.875rem}.map-note{font-size:.8125rem;color:#605640}.map-corridor{display:block;width:100%;max-height:180px}.map-corridor rect{fill:#eee7d6;stroke:#817c65;stroke-width:2}.map-corridor .corridor-line{stroke:#a99e81;stroke-width:12;fill:none}.map-corridor .door-line{stroke:#58675a;stroke-width:3;fill:none}.map-corridor text{font:16px Malgun Gothic,sans-serif;fill:#342f25}.map-corridor .door-caption{font-size:12px}.apartment-map header{border-bottom:2px solid #817c65}:root[data-textures=off] .apartment-map{background:#e9e1cb}@media(max-width:600px){.starter-preview,.map-rooms,.codex-grid{grid-template-columns:1fr}}@media(max-width:600px){.apartment-map{padding:18px 14px}}.polish-battle.v4-battle{width:100%;max-width:1172px;margin-inline:auto;height:100dvh;min-height:0;padding:10px 20px;display:grid;grid-template-rows:auto auto minmax(140px,1fr) auto auto auto;grid-template-areas:"header header header" "mission mission mission" "left stage right" "left heroes right" "left controls right" "hands hands hands";gap:8px 16px;overflow:visible;grid-template-columns:minmax(230px,250px) minmax(0,1fr) minmax(230px,250px)}.polish-battle button{margin:0}.v4-battle-header{grid-area:header;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);padding-bottom:8px}.v4-battle-header .eyebrow{margin:0}.v4-battle-header h1{font-size:1.25rem;margin:0}.v4-battle-header small{font:.75rem Malgun Gothic,sans-serif;margin-left:8px;color:var(--muted)}.v4-battle-header nav{display:flex;align-items:center;gap:6px}.v4-battle-header nav>span{font-size:.8125rem;color:var(--ui-gold)}.battle-mission{grid-area:mission;min-height:44px;display:flex;justify-content:space-between;align-items:center;gap:12px}.battle-resources{display:flex;align-items:center;justify-content:flex-end;gap:10px;color:var(--ui-gold);font-size:.8125rem}.battle-mission .eyebrow{display:none}.v4-objective{font-size:.875rem}.battle-stage{grid-area:stage;min-width:0;min-height:0;overflow:hidden;display:flex;align-items:flex-start;justify-content:center;background:radial-gradient(ellipse,#283a3b44,transparent 75%)}.v4-center{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;min-height:0;min-width:0;max-height:100%;height:100%;width:100%;gap:8px}.v4-board-scroll{position:relative;flex:1;width:100%;min-height:0;max-height:calc(var(--board-max-height) + 32px);max-width:100%;overflow:hidden;border:1px solid #465554;border-radius:4px;background:#080d11;box-shadow:inset 0 0 30px #0004,0 8px 25px #0002}.board-fit{position:absolute;left:50%;top:50%;transform-origin:center}.v4-board{position:relative;isolation:isolate}.attack-lines{position:absolute;inset:0;pointer-events:none;z-index:2}.polish-battle .v4-node{position:absolute;width:46px;height:46px;min-height:0;padding:2px;border:1px solid #6d8383;border-radius:3px;background:linear-gradient(135deg,#2a393b,#1e2d30);color:var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:inset 0 1px #ffffff0c,0 2px 3px #0005}.v4-node b{font:700 26px monospace}.v4-node small{font-size:10px;line-height:1}.polish-battle .v4-node.ally{color:#c2f1dc;border:3px double #b1dfca;background:#253d36}.polish-battle .v4-node.enemy{color:#f4c7b5;border:2px solid #ca9a85}.polish-battle .v4-node.protected{color:#f3df9f;border:3px double #dbcf91}.polish-battle .v4-node.goal{box-shadow:inset 0 0 0 2px #d9c17c}.v4-node.candidate{outline:2px dashed #b6d8f3;outline-offset:2px}.v4-node.danger:after{content:"!";position:absolute;top:-5px;right:1px;color:#ffcfb8;font-weight:900;font-size:.875rem}.polish-battle .v4-node.route{background:#395355}.v4-legend{color:var(--muted);font-size:.75rem;text-align:center;margin:0}.board-scroll-hint{display:none}.hero-summaries{grid-area:heroes;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:min(100%,380px);justify-self:center}.polish-battle .hero-summaries button{display:flex;flex-direction:column;align-items:start;gap:2px;padding:6px 9px;text-align:left;font-size:.8125rem}.hero-summaries span{font-size:.75rem}.down{text-decoration:line-through}.v4-hands{grid-area:hands;min-height:0;min-width:0;width:min(calc(100vw - 40px),1262px);justify-self:center}.hand-toolbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:0 auto 5px;width:min(100%,1100px)}.polish-battle .hand-toolbar button{min-height:30px;padding:4px 8px;font-size:.75rem}.hand-utilities{margin-left:auto;display:flex;gap:6px}.v4-hero-hand{padding:0;min-width:0}.v4-hand-row{display:grid;grid-template-columns:repeat(var(--hand-count),minmax(120px,150px));gap:8px;width:max-content;max-width:100%;margin-inline:auto;padding:3px;overflow-x:auto;overflow-y:hidden}.v4-hand-card{min-width:0}.polish-battle .v4-hand-card .card{padding:7px 8px;grid-template-rows:25px minmax(min-content,1fr) minmax(min-content,1fr);min-height:224px;aspect-ratio:auto;height:100%}.v4-hand-card .card header{font-size:.875rem}.v4-hand-card .card .face{padding:3px 2px}.battle-action-bar{display:flex;flex-direction:column;width:min(100%,1100px);padding:0;grid-area:controls;margin:0;align-items:center}.v4-party-controls{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}.v4-party-controls button{font-size:.8125rem;min-height:34px;padding:6px 10px}.v4-effect,.pause-bar{grid-area:controls;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px 10px;min-width:0;border:1px solid #8fae9c;background:#243b34;border-radius:5px;padding:4px 6px;font-size:.8125rem}.polish-battle:has(.v4-effect) .battle-action-bar,.polish-battle:has(.pause-bar) .battle-action-bar{display:none}.v4-start-choice{position:fixed;bottom:10px;left:50%;translate:-50% 0;width:min(90vw,700px);z-index:30;background:var(--sheet)}.v4-loss-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.v4-enemy-table{padding-left:1.3rem}.battle-float{position:absolute;z-index:8;pointer-events:none;transform:translate(-50%,-50%);padding:2px 6px;background:#10191ef5;border:1px solid var(--line);border-radius:3px;white-space:nowrap;font-size:.875rem;font-weight:700;animation:delta-rise .8s ease-out both}.battle-float.damage{color:#ffc7b4}.battle-float.heal{color:#c2efcf}.battle-float.guard{color:#c4e4f8}.card:has(.face-selected){animation:selection-settle .14s ease-out}.result h1{animation:selection-settle .25s ease-out}.battle-outcome.victory{padding:12px;border-left:3px solid #badacc;background:#263f36;animation:selection-settle .25s ease-out}@keyframes delta-rise{0%{opacity:1;translate:0 4px}to{opacity:0;translate:0 -25px}}@keyframes selection-settle{0%{filter:brightness(1.12)}to{filter:brightness(1)}}@media(min-width:1001px)and (max-height:740px){.polish-battle.v4-battle{grid-template-rows:auto auto minmax(110px,1fr) auto auto auto;gap:4px 16px}.v4-hand-row{grid-template-columns:repeat(var(--hand-count),140px)}.v4-battle-header{padding-bottom:6px}.polish-battle .v4-battle-header button{padding:6px 10px}.polish-battle .battle-mission button{min-height:26px;padding-block:2px}.polish-battle .hero-summaries button{padding-block:4px;line-height:1.2}}@media(max-width:1000px){.polish-battle.v4-battle{height:auto;min-height:100dvh;overflow:visible;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:auto auto minmax(240px,auto) auto auto auto auto;grid-template-areas:"header header" "mission mission" "stage stage" "left right" "heroes heroes" "controls controls" "hands hands";padding:12px;gap:10px}.v4-battle-header{align-items:start;gap:8px}.v4-battle-header nav{flex-wrap:wrap;justify-content:end}.v4-battle-header h1{font-size:1.125rem}.v4-battle-header .eyebrow{font-size:.6875rem}.v4-battle-header nav>span{display:none}.polish-battle .v4-battle-header button{padding:6px;font-size:.75rem}.battle-stage{min-height:220px;height:clamp(220px,38dvh,360px)}.v4-center{height:100%;min-height:0}.v4-board-scroll{max-height:340px}.hero-summaries button{flex-direction:column;align-items:start!important}.hand-utilities{margin-left:0}.v4-party-controls button{padding:7px 8px}.board-scroll-hint{display:block;margin-top:4px}}@media(prefers-reduced-motion:reduce){.polish-battle *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.polish-battle .v4-node.list-hover{outline:3px solid #f1d690;outline-offset:3px;box-shadow:0 0 0 5px #10191e;z-index:4}.effect-prompt-info,.effect-prompt-actions{display:flex;align-items:center;flex-wrap:wrap;gap:5px 8px;min-width:0}.effect-prompt-info{color:var(--muted)}.effect-prompt-actions{gap:4px 6px}.effect-prompt-info>strong{color:var(--ink)}.polish-battle .v4-effect button,.polish-battle .pause-bar button{min-height:26px;padding:3px 6px;font-size:.8125rem}.battle-intent-strip{grid-area:right;display:flex;flex-direction:column;min-width:0;min-height:0;overflow:auto;padding:0;align-self:stretch;contain:size;gap:0}.polish-battle .intent-badge{flex:0 0 auto;width:100%;max-width:none;display:flex;flex-direction:column;gap:2px;text-align:left;border-color:#635c51;font-size:.75rem;padding:6px 3px;border:0;border-bottom:1px solid #425457;border-radius:0;background:transparent}.intent-badge b{display:flex;justify-content:space-between;gap:6px}.intent-badge small{font-size:.75rem;color:var(--muted)}.intent-badge>span{color:#efcbb7}.intent-badge>.status-icons{color:#d4e4d8;gap:4px}.intent-badge .status-caption{color:var(--muted);font-size:.6875rem}.battle-intent-strip .intent-badge>span:last-child{width:100%;white-space:normal;overflow:visible;text-overflow:clip}.enemy-intents{display:grid;gap:8px}.enemy-dock{font-size:.875rem}.enemy-dock header{display:flex;justify-content:space-between;align-items:center}.enemy-dock p{margin-block:8px}.composer-left{grid-area:left;min-width:0;min-height:0;display:flex;flex-direction:column;align-self:stretch;overflow:auto;gap:8px}@media(min-width:1001px)and (max-height:740px){.polish-battle .intent-badge{padding:5px 8px}}@media(max-width:1000px){.composer-left{max-height:none;align-self:start;overflow:visible}.battle-intent-strip{contain:none;overflow:visible}.polish-battle .intent-badge{flex:0 0 auto}}.polish-battle .intent-badge.list-hover{border-color:#f1d690;background:#263b3b}.enemy-passive{display:block;color:var(--loss);font-size:.75rem;line-height:1.5;margin-block:4px}.board-tiles{position:absolute;inset:0;pointer-events:none;z-index:0}.floor-tile{position:absolute;background:#9c7751 var(--board-floor,url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAZklEQVR42mO8s7vjPwMUrFu/gyEo0IOBFMDy+P49FAF0PiHAxEAhYDl94RaKADqfEGBEDgNCAFsYsZDqZ3T11A8DQgBdPd4wICZdEAwDQvK0DwNC8iSlA2zhQ3I6QA8f+qcD9PABACBAQU2JeGC8AAAAAElFTkSuQmCC)) repeat;background-size:32px 32px;image-rendering:pixelated;box-shadow:none}.tile-passage{position:absolute;height:32px;margin-top:-16px;transform-origin:left center;background:#9c7751 var(--board-floor,url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAZklEQVR42mO8s7vjPwMUrFu/gyEo0IOBFMDy+P49FAF0PiHAxEAhYDl94RaKADqfEGBEDgNCAFsYsZDqZ3T11A8DQgBdPd4wICZdEAwDQvK0DwNC8iSlA2zhQ3I6QA8f+qcD9PABACBAQU2JeGC8AAAAAElFTkSuQmCC)) repeat;background-size:32px 32px;image-rendering:pixelated}.board-vector-guides{position:absolute;inset:0;width:100%;height:100%;overflow:visible;fill:none;stroke-linejoin:round}.board-vector-guides path,.board-vector-guides rect{vector-effect:non-scaling-stroke}.board-grid-lines{stroke:var(--board-grid-line);stroke-width:1}.board-wall-shadow{stroke:var(--board-halo);stroke-width:9}.board-wall-lines{stroke:var(--board-wall-line);stroke-width:4}.polish-battle .v4-node{z-index:1;background:var(--unit-plinth, var(--board-empty-plinth));border-color:var(--board-node-edge);box-shadow:0 1px 2px #080d1166;border-radius:4px}.polish-battle .v4-node.ally{--unit-plinth: var(--board-ally-plinth);background:var(--unit-plinth);border-color:#b1dfcadd;color:#bcffdb}.polish-battle .v4-node.enemy{--unit-plinth: var(--board-enemy-plinth);border-color:#f4c7b5cc;color:#ffe3ec}.polish-battle .v4-node.protected{--unit-plinth: var(--board-protected-plinth);border-color:#dbcf9199}.polish-battle .v4-node b{-webkit-text-stroke:2px #09151a;paint-order:stroke fill;text-shadow:0 1px 2px #000}.polish-battle .v4-node:not(.ally):not(.enemy):not(.protected):not(.goal)>b{visibility:hidden}.polish-battle .v4-node.route{background:linear-gradient(#67c3f260,#67c3f260),var(--unit-plinth, var(--board-empty-plinth));border-color:#bce4fa80}.polish-battle .v4-node.candidate{background:linear-gradient(#67c3f238,#67c3f238),var(--unit-plinth, var(--board-empty-plinth));outline:2px dashed var(--board-candidate);outline-offset:1px;box-shadow:0 0 0 1px var(--board-halo)}.polish-battle .v4-node:focus-visible{outline:3px solid #fff;outline-offset:1px}.polish-battle .v4-node.danger:after{background:#3d1318;color:#fff0cf;border:1px solid #fff0cf;border-radius:2px;padding:0 2px;top:-3px;right:0}.battle-attack-line{position:absolute;height:0;border-top:2px dashed #f0aa94;transform-origin:left center}.battle-attack-line:after{content:"";position:absolute;right:-1px;top:-5px;border-block:4px solid transparent;border-left:7px solid #f0aa94}.playback-overlay{position:absolute;inset:0;z-index:7;pointer-events:none}.playback-mover{position:absolute;display:grid;place-items:center;width:46px;height:46px;margin:-23px;background:var(--board-moving-plinth);color:#fff7dc;border:2px solid transparent;border-radius:3px;-webkit-text-stroke:2px #09151a;paint-order:stroke fill;text-shadow:0 1px 2px #000;font:700 26px monospace;animation:unit-travel linear both}.playback-hidden>b,.playback-hidden>small{visibility:hidden}.polish-battle .v4-node.playback-hidden{--unit-plinth: var(--board-empty-plinth);border:1px solid var(--board-node-edge)}.polish-battle .v4-node.playback-source{border-color:#fff0b8;box-shadow:0 0 0 2px #080d11,0 0 0 4px #fff0b8}.polish-battle .v4-node.playback-target{outline:3px solid #ffb9aa;outline-offset:1px;animation:target-impact .52s ease-out}.playback-beam{border-top:3px solid #fff0b8;filter:drop-shadow(0 0 2px #080d11);animation:attack-flash .52s ease-out both}.v4-legend{min-height:30px}.playback-caption{display:flex;align-items:center;justify-content:center;gap:10px;min-height:30px;color:var(--ink)}.playback-caption strong{font-size:.8125rem}.polish-battle .playback-caption button{padding:2px 7px;min-height:24px;font-size:.75rem;white-space:nowrap}@keyframes unit-travel{0%{transform:translate(var(--move-x),var(--move-y))}to{transform:translate(0)}}@keyframes target-impact{30%{filter:brightness(1.7)}to{filter:brightness(1)}}@keyframes attack-flash{0%,to{opacity:0}25%,65%{opacity:1}}.effect-icon{display:inline-flex;align-items:center;gap:3px;vertical-align:middle;position:relative;color:inherit;white-space:nowrap;border-radius:3px;padding:1px;line-height:1.2}.effect-icon:focus-visible{outline:2px solid #bc9555;outline-offset:1px}.effect-picture{display:inline-flex;align-items:center;justify-content:center;position:relative;flex-shrink:0;width:17px;height:17px}.effect-picture img{width:17px;height:17px;object-fit:contain;filter:brightness(0) invert(1)}.effect-value{font-size:.875rem;font-weight:700;font-variant-numeric:tabular-nums}.effect-caption,.effect-note{font-size:.75rem;line-height:1.4}.effect-step>.effect-note+.effect-note:before,.effect-step>.effect-icon+.effect-note:before{content:" · "}.effect-caption{white-space:normal}.icon-mark{position:absolute;bottom:-2px;right:-3px;background:var(--paper);color:var(--ink);border-radius:3px;font-size:12px;min-width:12px;text-align:center}.effect-sequence,.effect-step,.effect-ordered{display:inline;vertical-align:middle;max-width:100%}.effect-ordered{gap:4px}.effect-linked{display:inline;max-width:100%}.effect-arrow{color:inherit;opacity:.85;font-size:.8125rem}.effect-step{padding:2px 0}.effect-tooltip{position:fixed;z-index:4000;width:min(280px,calc(100vw - 16px));padding:12px 14px;border:1px solid #a8b9ae;border-radius:6px;background:#12242cf5;color:#eff3eb;box-shadow:0 8px 30px #0008;pointer-events:none;font-size:.875rem;line-height:1.55;max-height:155px;overflow:hidden}.effect-tooltip strong{display:block;color:#e6d5a7;font-size:.9375rem}.effect-tooltip p{margin:5px 0 0}.ui-icon-label{display:inline-flex;align-items:center;justify-content:center;gap:7px}.status-icons{display:inline-flex;align-items:center;flex-wrap:wrap;gap:5px}.battle-intent-strip .effect-picture,.battle-intent-strip .effect-picture img{width:15px;height:15px}.battle-intent-strip .effect-value{font-size:.75rem}.intent-detail-steps{padding-block:10px}.intent-detail-steps .effect-sequence{display:flex;flex-direction:column;align-items:start;gap:10px}.hand-toolbar .effect-picture,.hand-toolbar .effect-picture img{width:16px;height:16px}@media(max-width:1000px){.effect-picture,.effect-picture img{width:18px;height:18px}.v4-hand-row{grid-template-columns:repeat(var(--hand-count),140px)}}.polish-app:has(.deck-preparation){width:min(100%,1160px);max-width:1160px;padding:24px}.deck-preparation{display:grid;grid-template-columns:270px minmax(0,1fr) 220px;grid-template-areas:"heading heading heading" "decks map brief" "confirm confirm confirm";gap:26px;align-items:start}@media(min-width:901px)and (max-height:740px){.practice-preparation .preparation-card-list{max-height:max(160px,calc(100dvh - 470px))}.practice-preparation .preparation-map>svg{max-height:200px}}.preparation-heading{grid-area:heading}.preparation-heading .eyebrow{margin:0}.polish-app .preparation-heading h1{font-size:1.6rem;margin:5px 0 8px}.preparation-heading>p:last-child{color:var(--muted);font-size:.875rem;margin:0}.preparation-decks{grid-area:decks;min-width:0}.preparation-decks .v4-tabs{gap:6px;margin-bottom:10px}.polish-app .preparation-decks [role=tab]{flex:1;padding:8px;text-align:left}.preparation-decks [role=tab] small{display:block;color:var(--muted);margin-top:3px}.preparation-hint,.preparation-deck-status{color:var(--muted);font-size:.75rem;margin:8px 0}.preparation-card-list{display:grid;gap:3px;max-height:min(51vh,520px);overflow:auto;padding:3px;scrollbar-width:thin}.polish-app .deck-name-choice{display:flex;gap:10px;align-items:center;width:100%;margin:0;padding:5px 10px;min-height:31px;border-color:transparent;border-radius:3px;background:transparent;text-align:left}.deck-name-choice>span{width:16px;color:var(--muted)}.polish-app .deck-name-choice[aria-pressed=true]{background:#253b39;box-shadow:inset 2px 0 #b7d9ca;border-color:transparent}.deck-name-choice[aria-pressed=true]>span{color:#c8e4d6}.preparation-center{grid-area:map;min-width:0;padding-top:10px}.preparation-map{margin:0}.preparation-map figcaption{margin-bottom:28px}.preparation-map h2{margin:4px 0}.preparation-map>svg{display:block;width:100%;max-height:350px;overflow:visible}.preparation-map line{stroke:#76948f;stroke-width:2;stroke-dasharray:4 3}.preparation-map rect{fill:#1b2b30;stroke:#607b7c;stroke-width:1}.preparation-map text{fill:#b6c8c9;font:24px monospace}.preparation-map .map-ally rect{stroke:#b5e2cf;stroke-width:2}.preparation-map .map-ally text{fill:#c4efdc}.preparation-map .map-enemy rect{stroke:#d1a18a;stroke-width:2}.preparation-map .map-enemy text{fill:#f3c6af}.preparation-map .map-objective rect{stroke:#ead18c;stroke-width:2}.preparation-map .map-objective text{fill:#ead18c}.preparation-legend,.preparation-map-note{font-size:.75rem;color:var(--muted);text-align:center;margin:16px 0 0}.preparation-map-note{margin-top:5px}.preparation-brief{grid-area:brief;min-width:0}.preparation-brief section{margin-bottom:24px}.polish-app .preparation-brief h2{font-size:.875rem;color:var(--ui-gold);margin:0 0 10px}.preparation-brief h2 small{color:var(--muted);font-size:.75rem;font-weight:400;margin-left:8px}.preparation-brief p{font-size:.875rem;line-height:1.65;margin:0}.preparation-brief ul{list-style:none;padding:0;margin:0;display:grid;gap:10px}.preparation-brief li{display:flex;gap:8px;align-items:baseline;font-size:.8125rem}.preparation-enemy-glyph{font:18px monospace;color:#f3c6af;width:20px}.preparation-brief li b{margin-left:auto;color:var(--muted);font-weight:400}.preparation-brief .preparation-flavor{color:var(--muted);font-size:.75rem;margin-bottom:24px}.preparation-equipment{border-top:1px solid var(--line);padding-top:14px;font-size:.8125rem}.preparation-equipment summary{cursor:pointer}.preparation-equipment label{display:flex;gap:8px;margin-top:14px;align-items:start}.preparation-equipment small{display:block;color:var(--muted);font-size:.75rem;margin-top:4px}.preparation-equipment p{margin-top:12px;color:var(--muted);font-size:.75rem}.preparation-confirm{grid-area:confirm;border-top:1px solid var(--line);padding:20px 0 0;display:flex;align-items:center;justify-content:space-between;gap:16px;text-align:left}.preparation-confirm span{display:inline-block;margin-right:20px;font-size:.875rem}.preparation-confirm p{margin:6px 0 0;font-size:.75rem;color:#f0c7aa}@media(min-width:901px)and (max-height:800px){.polish-app:has(.deck-preparation){padding-block:12px}.polish-app:has(.deck-preparation) .app-shell{margin-bottom:12px;padding-bottom:8px}.polish-app:has(.deck-preparation) .v4-run-hud{margin-bottom:16px;padding-bottom:8px}.deck-preparation{gap:16px 26px}.preparation-heading>p:last-child{font-size:.8125rem}.preparation-brief section{margin-bottom:18px}.preparation-brief .preparation-flavor{display:none}.preparation-map figcaption{margin-bottom:18px}.polish-app .preparation-decks [role=tab]{padding:5px 8px}.preparation-heading{display:grid;grid-template-columns:auto 1fr;align-items:baseline;column-gap:12px}.preparation-heading .eyebrow{grid-column:1 / -1}.preparation-heading>p:last-child{justify-self:end}.preparation-confirm{padding-top:12px}}@media(max-width:900px){.deck-preparation{grid-template-columns:minmax(200px,1fr) minmax(0,1fr);grid-template-areas:"heading heading" "decks map" "decks brief" "confirm confirm";gap:20px}.preparation-card-list{max-height:65vh}}@media(max-width:560px){.polish-app:has(.deck-preparation){padding:16px}.deck-preparation{grid-template-columns:minmax(0,1fr);grid-template-areas:"heading" "map" "decks" "brief" "confirm";gap:24px}.preparation-map figcaption{margin-bottom:16px}.preparation-map>svg{max-height:220px}.preparation-card-list{max-height:none}.preparation-confirm{flex-direction:column;align-items:stretch}.preparation-confirm>button{width:100%}}.party-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:10px;margin-bottom:18px}.party-options button{display:grid;gap:8px;text-align:left;padding:14px}.party-options [aria-pressed=true]{border:2px solid var(--ally);background:var(--selected)}.party-options small{color:var(--muted);line-height:1.6}.extra-progress{display:grid;gap:3px;max-width:650px;font-size:.8125rem}.extra-progress span{font-weight:400}.polish-battle .v4-node.multi-selected{outline:2px solid #fff0ad;background:#f3cd6244}.polish-battle .v4-node.recipient-route{background:#f3cd6233;border:1px dashed #ffe2a0}.hero-summaries small{display:inline;font-size:.6875rem;color:var(--muted)}.polish-app:has(.party-picker){max-width:1160px}.polish-app:has(.practice-preparation)>.party-picker{margin-bottom:12px}.polish-app:has(.practice-preparation)>.party-picker .party-options{grid-template-columns:repeat(5,1fr)}@media(max-width:700px){.polish-app:has(.practice-preparation)>.party-picker .party-options{grid-template-columns:repeat(2,1fr)}}.hero-token{display:inline-block;width:1.35em;height:1.35em;flex:0 0 auto;vertical-align:middle;overflow:hidden;image-rendering:pixelated;pointer-events:none}.v4-node .hero-token,.playback-mover .hero-token{width:38px;height:38px}.v4-node b:has(.hero-token){display:flex;align-items:center;justify-content:center;min-height:0}.v4-node:has(small) .hero-token{width:26px;height:26px}.party-options strong{display:flex;align-items:center;gap:8px}.party-options .hero-token{width:36px;height:36px}.hero-legend-entry{display:inline-flex;align-items:center;gap:3px;vertical-align:middle;white-space:nowrap}.hero-legend-entry+.hero-legend-entry{margin-left:8px}.face-order-controls{display:flex;gap:3px;margin-top:4px}.polish-battle .face-order-controls button{flex:1;padding:4px 2px;min-height:28px;font-size:.6875rem}.erased-text,.card .face-erased{color:#565147;background:#d6d0c3}.card.submitted-card{outline:2px solid #f5d686;outline-offset:3px}.card[role=button]{cursor:pointer}.card[role=button]:focus-visible{outline:3px solid #fff2b2;outline-offset:3px}.card .face-loss{color:#823b12;font-size:.75rem}.starting-relics{max-width:760px;margin:20px auto}.starting-relics article{padding:10px 0;border-bottom:1px solid var(--line)}@media(min-width:1001px){.polish-battle.v4-battle{max-width:1280px;grid-template-columns:minmax(290px,320px) minmax(0,1fr) minmax(180px,220px)}}.round-sequence{min-width:0}.round-sequence>header{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:4px}.round-sequence h2{font-size:.9375rem;color:var(--ui-gold);margin:0}.round-sequence small{font-size:.6875rem;color:var(--muted);line-height:1.4}.round-sequence ol{list-style:none;padding:0;margin:0;display:grid;gap:1px}.round-sequence li{display:flex;gap:9px;padding:2px 0 3px;border-bottom:1px solid var(--line);min-width:0}.sequence-number{flex:0 0 27px;height:27px;display:grid;place-items:center;background:#29463e;color:#fff1c9;border:1px solid #87af9c;border-radius:50%;font-size:1rem;font-weight:700}.sequence-content{min-width:0;flex:1;font-size:.75rem;line-height:1.4}.sequence-content>header{display:flex;align-items:center;justify-content:space-between;gap:4px;color:var(--ui-gold);font-size:.75rem}.sequence-content .face-order-controls{margin:0;gap:4px}.polish-battle .sequence-content .face-order-controls button{min-height:22px;min-width:26px;padding:0 5px;font-size:.8125rem}.polish-battle .sequence-card-name{display:flex;align-items:baseline;flex-wrap:wrap;gap:5px;padding:0;min-height:0;background:transparent;border:0;text-align:left;font-size:.75rem;line-height:1.5}.sequence-card-name small{font-size:.625rem}.sequence-effects{font-size:.75rem;line-height:1.5;margin-top:2px}.sequence-content>small{display:block;margin-top:2px}.sequence-empty p{display:flex;justify-content:space-between;gap:10px;font-size:.75rem;margin:10px 0 20px}.sequence-empty span{color:var(--muted)}.round-sequence [data-action-state=current]{background:#23443b;border-color:#a6d6bd}.round-sequence [data-action-state=done] .sequence-number{background:#162923;color:#c5d8ce}.v4-center{position:relative;gap:0}.battle-playback-status{position:absolute;bottom:7px;left:7px;right:7px;z-index:5;background:#0b171ff0;border:1px solid var(--line);border-radius:4px;padding:4px}@media(min-width:1001px){.polish-battle.v4-battle{grid-template-columns:minmax(270px,300px) minmax(0,1fr) minmax(270px,300px)}}@media(max-width:1000px){.round-sequence ol{grid-template-columns:repeat(2,minmax(0,1fr))}.round-sequence li{align-items:start}.sequence-content>header{flex-wrap:wrap}}.party-options .party-relic-name{color:var(--ui-gold);border-top:1px solid var(--line);padding-top:8px}.party-options .party-relic-effect{color:var(--ink);font-size:.75rem;line-height:1.6}.hero-relic-effects{margin:12px 0 20px}.hero-relic-effects h2{font-size:.875rem;margin:0 0 8px;color:var(--ui-gold)}.hero-relic-effects article{padding:8px 0;border-bottom:1px solid var(--line)}.hero-relic-effects h3{font-size:.8125rem;margin:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:8px}.hero-relic-effects h3 small{font-size:.6875rem;color:var(--muted);font-weight:400}.hero-relic-effects p{font-size:.75rem;line-height:1.65;margin:5px 0 0;overflow-wrap:anywhere}.v4-deck>.hero-relic-effects{max-width:760px}.polish-battle .v4-node.enemy>b{font-size:22px;line-height:24px}.enemy-node-hp{display:block;color:#fff8ed;background:#10171ff2;border-radius:2px;padding:1px 3px;font:700 9px/11px Malgun Gothic,sans-serif;white-space:nowrap;pointer-events:none}.polish-battle .v4-node.threat-range{background:linear-gradient(#d35a4544,#d35a4544),var(--unit-plinth,var(--board-empty-plinth));outline:1px dashed #ffd4bd;outline-offset:-4px}.enemy-hover{position:fixed;z-index:90;max-width:min(264px,calc(100vw - 16px));padding:10px 12px;background:#14252bf5;color:#edf0e9;border:1px solid #a0bcb4;border-radius:5px;box-shadow:0 4px 14px #0008;pointer-events:none;font-size:.75rem;line-height:1.5}.enemy-hover header{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.enemy-hover header span{white-space:nowrap;color:#f1d9b0}.enemy-hover ol{margin:7px 0 0;padding-left:18px}.enemy-hover li+li{margin-top:3px}.enemy-hover p{margin:7px 0 0;color:#c4d8ce;font-size:.6875rem}.rw-skin{position:absolute;inset:0;display:block;pointer-events:none;z-index:-1;overflow:hidden}.rw-skin>svg{position:absolute;overflow:hidden;image-rendering:pixelated}.rw-skin image,.rw-fixed{image-rendering:pixelated}.game-frame,.game-button{position:relative;isolation:isolate;border:0;border-radius:0;box-shadow:none}.game-frame{padding:16px;background:#142021;color:#edf0e9}.game-frame.surface-wood{background:#21160f}.game-frame.surface-slot,.game-frame.surface-thin{background:#142021}button.game-button{padding:9px 14px;min-height:36px;min-width:32px;background:transparent;color:#fff9e9;border:0;border-radius:0;box-shadow:none;cursor:pointer;line-height:1.4;margin:0}.game-button-content{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:6px;max-width:100%}button.game-button[data-ui-state=hover]{color:#000}button.game-button[data-ui-state=pressed]{color:#fff7dc}button.game-button:disabled{color:#d7dfdb;cursor:not-allowed;background:transparent;border:0;padding:9px 14px}button.game-button:focus-visible{outline:2px solid #f4dda0;outline-offset:3px}button.game-button[aria-pressed=true],button.game-button[aria-selected=true]{padding:9px 14px;border:0;box-shadow:inset 0 0 0 2px #b2e2c8}button.game-button.tile{color:#edf0e9;padding:14px;text-align:left}button.game-button.tile[data-ui-state=hover]{color:#fff9e9}button.game-button.tile:disabled{color:#c3d1cc;padding:14px}button.game-button.tile .game-button-content{display:flex;flex-direction:column;align-items:stretch;justify-content:start;width:100%;gap:8px}button.game-button.tile[aria-pressed=true]{box-shadow:inset 0 0 0 2px #b2e2c8;padding:14px}.game-bar{display:flex;flex-direction:column;gap:4px;min-width:90px;width:100%;font-size:.75rem;font-weight:400}.game-bar-label{display:flex;justify-content:space-between;gap:8px;align-items:baseline}.game-bar-track{display:block;position:relative;isolation:isolate;height:10px;width:100%}.game-bar-fill{position:absolute;inset:0;isolation:isolate}.game-bar-cap{position:absolute;top:-2px;image-rendering:pixelated;pointer-events:none}.game-toggle .game-button-content{justify-content:start}@media(prefers-reduced-motion:reduce){.game-button{transition:none}}.polish-app{max-width:1120px}.game-launcher{max-width:480px;margin:40px auto;min-height:0}.game-launcher .launcher-frame{padding:32px}.game-launcher h1{font-size:clamp(2rem,5vw,3rem);text-align:center;margin:0 0 28px}.game-launcher nav{display:grid;gap:10px}.game-launcher .game-button{width:100%;min-height:44px}.game-launcher p{font-size:.75rem;line-height:1.6;margin-bottom:20px}.polish-app button.game-button:not(.tile){--game-label:#fff9e9;color:var(--game-label);background:transparent;border:0;box-shadow:none}.polish-app button.game-button:not(.tile)[data-ui-state=hover]{--game-label:#000000}.polish-app button.game-button:not(.tile)[data-ui-state=pressed]{--game-label:#fff7dc;box-shadow:inset 0 0 0 2px #c5e2cd}.polish-app button.game-button:not(.tile):disabled{--game-label:#d7dfdb}button.game-button.text,button.game-button.text:disabled,button.game-button.text[aria-pressed=true]{min-height:0;padding:2px 4px;background:transparent;color:var(--ink);box-shadow:none}button.game-button.text[data-ui-state=hover]{color:#f3dda6}.party-options{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.party-options strong{display:flex;flex-direction:column;align-items:start;gap:10px;min-height:84px}.party-options .party-relic-effect{font-size:.75rem;line-height:1.6}.party-options .party-relic-name:before{content:"◇ ";color:#e4d3a7}.starting-deck-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,300px);gap:20px;align-items:start}.deck-confirm-buttons{display:flex;gap:8px;flex-wrap:wrap}.deck-loadout{min-width:0}.deck-loadout>header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.deck-loadout h2{font-size:.875rem;color:var(--ui-gold);margin:0}.deck-loadout h2 span{font-size:.75rem;color:var(--ink)}.deck-loadout>h2{margin:12px 0 8px}.loadout-slots{list-style:none;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;padding:0;margin:0}.loadout-slots .game-frame{padding:5px;min-height:66px}.loadout-slots .game-button.text{padding:0;width:100%;height:100%;text-align:center}.loadout-slots .game-button-content{display:flex;flex-direction:column;width:100%;font-size:.625rem;line-height:1.3;overflow-wrap:anywhere;gap:4px}.loadout-slots .empty-slot{display:flex;flex-direction:column;align-items:center;gap:7px;color:var(--muted);font-size:.8125rem}.loadout-slots small{font-size:.625rem}.mini-card-mark{display:inline-block;flex:0 0 auto;width:15px;height:21px;border:1px solid currentColor;background:linear-gradient(transparent 48%,currentColor 48%,currentColor 52%,transparent 52%);opacity:.9}.loadout-owned{display:grid;gap:5px;max-height:330px;overflow:auto;padding:3px}.loadout-owned-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px}.loadout-owned .game-button{font-size:.75rem;padding:7px 10px;min-height:42px;text-align:left}.loadout-owned .loadout-pick .game-button-content{justify-content:start;width:100%;gap:10px}.loadout-owned .loadout-pick span>small{display:block;font-size:.625rem;margin-top:2px;opacity:.9}.loadout-owned .picked{outline:1px solid #b9f3d2}.preparation-decks.game-frame,.preparation-brief.game-frame{padding:14px}.preparation-decks .v4-tabs .game-button{padding:7px 8px;font-size:.75rem}.preparation-brief .hero-relic-effects{margin-top:0}.preparation-confirm{flex-wrap:wrap}.game-modal{position:fixed;isolation:isolate;border:0;border-radius:0;background:#1c211e;box-shadow:0 12px 36px #0008;padding:22px;max-width:calc(100vw - 24px)}.game-modal>.rw-skin{position:absolute;inset:0}.game-modal:has(.full-card){width:min(390px,calc(100vw - 24px))}.game-modal .full-card{width:min(100%,320px);margin:auto}.game-modal>header{align-items:start;gap:16px}.game-modal>header h2{font-size:1.125rem;margin-top:4px}.game-modal>header>.game-button{white-space:nowrap;font-size:.75rem}.game-modal .dialog-menu{display:grid;gap:8px}.game-modal p{line-height:1.65}.v4-battle-header nav{flex-wrap:wrap;justify-content:flex-end}.polish-battle .v4-battle-header .game-button{min-height:30px;padding:6px 9px;font-size:.75rem}.polish-battle .hero-summaries .game-button.tile{padding:6px 9px}.hero-summaries .game-button-content{display:flex;flex-direction:column;align-items:stretch;gap:4px;width:100%}.hero-summaries .game-button-content>b{display:flex;align-items:center;gap:7px;width:100%}.hero-summaries .game-bar{font-size:.6875rem}.hero-summaries .game-button-content>span{font-size:.75rem;text-align:left}.submitted-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin-bottom:7px}.submitted-card.game-frame{padding:5px;display:flex;align-items:center;gap:4px;font-size:.625rem;line-height:1.3}.sequence-content>header>b,.sequence-card-name small{display:inline-flex;align-items:center;gap:3px}.sequence-content>header>b{font-size:.6875rem}.round-sequence li[data-owner=wanderer]{border-left:2px solid #b0dbc2}.round-sequence li[data-owner=repairer]{border-left:2px solid #dfc99d}.round-sequence li[data-owner=courier]{border-left:2px solid #bddbef}.round-sequence li[data-owner=caretaker]{border-left:2px solid #d9d0bc}.round-sequence li[data-owner=roommage]{border-left:2px solid #d5c2e8}.round-sequence li{padding-left:4px}.polish-battle .sequence-card-name .game-button-content{justify-content:start;flex-wrap:wrap;gap:3px}.battle-result-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:16px 0}.battle-result-stats h3{font-size:.9375rem}.battle-result-stats p{font-size:.8125rem;margin:8px 0}.offer-tile.game-frame,.codex-entry.game-frame{padding:18px}.codex-grid{gap:14px}.shop-product .offer-purchase{margin-top:14px;border-top:1px solid var(--line);padding-top:12px}.shop-product .offer-purchase>b{color:#f0d39a}.receiver-options .game-button-content{gap:8px}.game-tooltip{isolation:isolate}@media(max-height:740px)and (min-width:1001px){.polish-battle .hero-summaries .game-button.tile{padding:4px 7px}.submitted-card.game-frame{padding:4px}.sequence-content>small{font-size:.625rem;display:inline}.round-sequence li{padding-top:1px;padding-bottom:2px}.game-launcher{margin-top:12px}.game-launcher .launcher-frame{padding:26px}.game-launcher nav{gap:7px}.party-options strong{min-height:74px}}@media(max-width:1100px){.party-options{grid-template-columns:repeat(3,minmax(0,1fr))}.v4-battle-header{gap:10px}.v4-battle-header nav{gap:4px}.polish-battle .v4-battle-header .game-button{padding:5px 7px}.deck-preparation{grid-template-columns:270px minmax(0,1fr) 220px;gap:16px}.preparation-decks.game-frame,.preparation-brief.game-frame{padding:10px}}@media(max-width:1000px){.polish-battle .v4-battle-header{align-items:start}.hero-summaries{width:min(100%,420px)}.round-sequence ol{grid-template-columns:1fr}.starting-deck-layout{grid-template-columns:minmax(0,1fr) 260px}.loadout-owned{max-height:380px}.v4-hand-row{width:min(100%,780px);grid-template-columns:repeat(var(--hand-count),minmax(0,1fr))}.polish-battle .v4-hand-card .card{min-height:224px}}@media(max-width:900px){.deck-preparation{grid-template-columns:minmax(240px,1fr) minmax(0,1fr);grid-template-areas:"heading heading" "decks map" "decks brief" "confirm confirm"}.starting-deck-layout{grid-template-columns:1fr}.party-options{grid-template-columns:repeat(2,minmax(0,1fr))}.polish-app,.game-modal{padding:18px}.battle-result-stats{gap:8px}}@media(max-width:560px){.party-options{grid-template-columns:1fr}.party-options strong{min-height:0;flex-direction:row;align-items:center}.deck-preparation{grid-template-columns:minmax(0,1fr);grid-template-areas:"heading" "decks" "map" "brief" "confirm"}.game-launcher{margin:8px auto}.game-launcher .launcher-frame{padding:22px}.v4-battle-header{flex-direction:column;align-items:stretch}.v4-battle-header nav{justify-content:start}.battle-result-stats{grid-template-columns:1fr}.polish-battle .v4-hand-row{grid-template-columns:repeat(var(--hand-count),minmax(120px,1fr));width:max-content;max-width:100%}.submitted-cards{max-width:100%}}.game-tooltip.game-frame,.enemy-hover.game-frame,.effect-tooltip.game-frame,.card-hover-preview.game-frame{position:fixed;isolation:isolate;border:0;border-radius:0;background:#1c211e;color:#edf0e9;box-shadow:0 4px 14px #0008}.card-hover-preview.game-frame h3,.card-hover-preview.game-frame .preview-name{color:#f1d9ad}.card-hover-preview.game-frame p{color:#edf0e9}.card-hover-preview.game-frame .erased-text{color:#d8d8cf;background:#344039}.game-modal .game-frame{background:#121d20}.game-button[data-ui-state=normal]{--game-label:#fff9e9}.game-button[data-ui-state=hover]{--game-label:#000000}.game-button[data-ui-state=pressed]{--game-label:#fff7dc}.game-button[data-ui-state=disabled]{--game-label:#d7dfdb}.polish-app button.game-button[data-ui-state],.polish-battle button.game-button[data-ui-state],.game-modal button.game-button[data-ui-state]{color:var(--game-label);background:transparent;border:0;border-radius:0}button.game-button.tile[data-ui-state]{--game-label:#edf0e9}button.game-button.tile[data-ui-state=hover]{--game-label:#fff9e9}button.game-button.text[data-ui-state]{--game-label:var(--ink)}button.game-button.text[data-ui-state=hover]{--game-label:#f3dda6}.game-frame.panel,.game-frame.offer-tile,.game-frame.codex-entry{border:0;border-radius:0;background:#142021;box-shadow:none}.practice-picker-grid{display:grid;grid-template-columns:minmax(240px,340px) minmax(0,1fr);gap:20px;align-items:start}.practice-picker h2{font-size:1rem}.practice-party-summary{display:flex;gap:12px;flex-wrap:wrap;margin:16px 0}.practice-party-summary>span{display:flex;align-items:center;gap:8px;font-size:.8125rem}.practice-picker details .party-options{grid-template-columns:1fr}.practice-picker details .party-options strong{min-height:0;flex-direction:row;align-items:center}.practice-picker details .party-picker h1{font-size:1.25rem}.practice-scenario-select{display:flex;flex-direction:column;gap:6px}.practice-scenario-select select{width:100%;margin:0}.practice-variants{display:grid;gap:16px;margin-top:16px}.practice-variants>div{padding-top:10px;border-top:1px solid var(--line)}.practice-variants p{margin:0 0 6px}.practice-variants small{display:block;line-height:1.6;margin-bottom:10px}.practice-party-editor{margin-bottom:14px}@media(max-width:700px){.practice-picker-grid{grid-template-columns:1fr}}.kind-badge{display:inline-flex;align-items:center;gap:5px;font-size:.75rem;font-weight:400;color:var(--ui-gold)}.kind-badge svg{flex:0 0 16px}.polish-app,.polish-battle,.game-modal,.game-frame,input,select,textarea,option,svg text{font-family:var(--font-body);font-weight:400}body :is(input,select,textarea,option,text,code,pre,.enemy-node-hp,.enemy-glyph,.v4-node){font-family:var(--font-body)}.polish-app :is(h1,h2,h3),.polish-battle :is(h1,h2,h3),.game-modal :is(h2,h3),.game-launcher h1,body button{font-family:var(--font-display);font-weight:400}.polish-app button.game-button,.polish-battle button.game-button,.game-modal button.game-button{font-family:var(--font-display);font-weight:400}body :is(b,strong){font-weight:500}.card header strong,.battle-intent-strip .game-button-content>b,.sequence-content>header>b,.game-bar-label b,.effect-value{font-weight:500}.card .face,.card-hover-preview,.effect-tooltip,.enemy-hover,.info-tooltip,.round-sequence,.hero-summaries,.battle-intent-strip,.game-modal,.loadout-owned{font-family:var(--font-body);font-weight:400}.info-tooltip :is(strong,h3),.effect-tooltip strong,.enemy-hover strong,.card-hover-preview .preview-name{font-family:var(--font-display);font-weight:400}.card header,.party-options strong,.party-relic-name,.loadout-owned-row,.loadout-slots,.preparation-relics .info-hover,.preparation-equipment :is(summary,.info-hover),.hero-relic-effects h3,.game-bar-label,.sequence-content>header>b,.submitted-card,.battle-intent-strip .game-button-content>b,.enemy-dock h2,.receiver-options,.codex-entry h2{font-family:var(--font-display);font-weight:400}.party-options .game-button-content>small:not(.party-relic-name),.card .face,.effect-sequence,.effect-note,.sequence-effects,.info-tooltip p,.effect-tooltip p,.enemy-hover :is(p,ol),.card-hover-preview p{font-family:var(--font-body);font-weight:400}.card header{display:block;position:relative;text-align:center}.card header strong{display:block;width:100%;font-family:var(--font-display);font-weight:400;text-align:center}.card header small{position:absolute;top:100%;left:50%;transform:translate(-50%);font-family:var(--font-display);font-size:.5rem;line-height:1;white-space:nowrap}.party-options button.game-button.tile[aria-pressed=true]{outline:3px solid #cbe5ce;outline-offset:3px;box-shadow:inset 0 0 0 2px #365849}.info-hover{display:inline-block;max-width:100%;outline-offset:3px}.info-hover:focus-visible{outline:2px solid #f4dda0}.loadout-hover{display:block}.slot-hover{display:block;width:100%;height:100%}.info-tooltip.game-frame{position:fixed;z-index:10000;width:320px;max-width:calc(100vw - 16px);padding:16px;pointer-events:none;box-sizing:border-box;font-size:.8125rem;line-height:1.65;color:#edf0e9}.info-tooltip h3{font-size:.75rem;color:#e3cd9c;margin:12px 0 4px}.info-tooltip p{margin:5px 0 10px}.preparation-relics ul{list-style:none;padding:0;display:grid;gap:7px}.preparation-relics li{padding:7px 0;border-bottom:1px solid #42504a;font-size:.8125rem}.preparation-equipment label{display:flex;align-items:center;gap:8px;padding:7px 0}.preparation-equipment input{flex:0 0 auto}.preparation-map g.map-enemy{cursor:help}.preparation-map g.map-enemy:hover rect,.preparation-map g.map-enemy:focus rect{stroke:#f4dda0;stroke-width:3}.brand-seed{display:flex;align-items:center;gap:14px;min-width:0}.current-seed{font-size:.6875rem;color:#c6d2c9;overflow-wrap:anywhere;font-weight:400}.battle-brand-seed{font-size:.6875rem;display:flex;gap:12px;margin-bottom:3px;color:#c5d2c8}.seed-picker{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:18px 0}.seed-picker h2{font-size:1rem;margin:0}.seed-picker label{display:flex;align-items:center;gap:8px;font-size:.8125rem}.seed-picker input[type=text],.seed-picker input:not([type]){max-width:280px}.enemy-intents{display:grid;gap:7px}.polish-battle .enemy-intents button.intent-badge.game-button{padding:10px 12px;text-align:left;min-height:60px}.enemy-intents .intent-badge .game-button-content{display:flex;flex-direction:column;align-items:stretch;gap:6px;width:100%;text-align:left}.enemy-intents .intent-badge .game-button-content>span:first-child{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}.enemy-intents .intent-badge .game-button-content>span:last-child{font-size:.75rem;line-height:1.5}.battle-intent-strip{gap:7px;padding:2px 4px 2px 2px}.polish-battle .battle-intent-strip button.intent-badge.tile{padding:9px 12px;min-height:62px;text-align:left}.battle-intent-strip .intent-badge .game-button-content{display:flex;flex-direction:column;align-items:stretch;gap:5px;width:100%;text-align:left}.battle-intent-strip .intent-badge .game-button-content>b{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:.8125rem;color:#ecdfbe}.battle-intent-strip .intent-badge .game-button-content>b small{font-size:.6875rem;color:#bfdbce;white-space:nowrap}.battle-intent-strip .intent-badge .game-button-content>span{font-size:.75rem;line-height:1.5}.battle-intent-strip .intent-badge.list-hover{outline:2px solid #e1cf9a;outline-offset:1px}.apartment-map{background:#e8e0ca;border:1px solid #b1a27e;padding:24px;box-shadow:inset 0 0 0 5px #384a45,inset 0 0 0 7px #c1b28b}.apartment-map>header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;border-bottom:2px solid #7d8066;padding-bottom:12px;flex-wrap:wrap}.apartment-map>header h1{font-size:1.5rem;margin:0}.apartment-map>header p{font-size:.75rem;margin:0}.apartment-map svg text{font-family:var(--font-body);font-weight:400}.map-rooms{gap:16px}.map-room{background:#f3eddb;border:1px solid #8c947d;border-top:4px solid #3f6258;padding:18px;box-shadow:none}.map-room h2{font-size:1.125rem}.map-room .room-sign{font-size:.6875rem;letter-spacing:.05em;color:#40544a}.map-current{background:#344e45;color:#fff9e9;border:0}.map-rail .current text:last-child{fill:#344e45}.map-rail .unrevealed{opacity:1}.map-rail .unrevealed text{fill:#605d4d}.map-history{font-size:.8125rem;border-top:1px solid #999b7c;padding-top:12px}.preparation-enemy-tooltip>strong{display:block;font-size:.875rem;line-height:1.5}.preparation-enemy-tooltip .preparation-example{display:grid;gap:7px;margin-top:12px}.preparation-enemy-tooltip .preparation-example>small{display:block;color:#d7c59b;font-size:.75rem;line-height:1.5}.preparation-enemy-tooltip .preparation-example>.effect-sequence{display:block;line-height:1.8;overflow-wrap:anywhere}@media(max-width:700px){.brand-seed{flex-wrap:wrap;gap:5px}.seed-picker{align-items:start;flex-direction:column}.apartment-map{padding:16px}.map-rooms{grid-template-columns:1fr}}
