@font-face{font-family:Mulmaru;src:url(./Mulmaru-C2nrW7hK.woff2) format("woff2");font-display:swap}:root{color-scheme:dark;--raised: #243441;--selected: #2d4353;--ally: #b9f3d2;--danger: #ffd0bc;--loss: #ffe3a0;--disabled-bg: #26313b;--disabled-text: #c3ced8;--on-accent: #102119;font-family:Malgun Gothic,Apple SD Gothic Neo,system-ui,sans-serif;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}*{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}.welcome{padding-block:min(10vh,90px)}.welcome-plaque{border:1px solid #7e7a60;padding:44px;background:linear-gradient(145deg,#20313a,#152129);border-radius:3px;box-shadow:0 14px 60px #0004,inset 0 0 0 5px #19262b}.welcome h1{font-size:clamp(2.8rem,8vw,4.5rem);margin:30px 0 12px}.welcome-plaque>p{max-width:600px}.welcome .welcome-tagline{color:#d9c899;font-size:1.125rem}.welcome-actions{display:flex;gap:12px;margin-top:36px}.welcome-actions button{min-width:150px;min-height:48px;font-size:1rem}.welcome-nav{display:flex;gap:8px;margin-top:24px;flex-wrap:wrap}.welcome-nav button{background:transparent}.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}.welcome-plaque{position:relative}.welcome-plaque:before,.welcome-plaque:after{content:"";position:absolute;top:12px;width:5px;height:5px;border-radius:50%;background:#a5a08a;box-shadow:0 1px 2px #000}.welcome-plaque:before{left:12px}.welcome-plaque:after{right:12px}@media(max-width:600px){.polish-app{padding:20px 16px}}@media(max-width:600px){.welcome-actions{flex-direction:column}}@media(max-width:600px){.welcome-actions button{width:100%}}.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))}}.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;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-height) + 6px);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}.v4-effect:has(.effect-prompt-actions>button:nth-child(3)) .effect-prompt-info{flex:1 1 150px}.v4-effect:has(.effect-prompt-actions>button:nth-child(3)) .effect-prompt-actions{flex:3 1 400px}.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}.side-composer{width:100%;flex-shrink:0}.side-composer>header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:4px;color:var(--ui-gold)}.side-composer>header span{color:var(--muted);font-size:.75rem}.selected-card-pair{display:grid;grid-template-columns:minmax(0,1fr);gap:5px}.selected-action-card{min-width:0;display:grid;gap:2px}.selected-order{display:block;color:var(--muted);font-size:.6875rem;margin-bottom:0}.polish-battle .selected-card-detail{display:flex;align-items:baseline;flex-wrap:wrap;gap:3px 8px;width:100%;text-align:left;padding:3px 8px;color:var(--ink);border-color:transparent;background:transparent;border-radius:3px;box-shadow:inset 2px 0 #668a7b}.polish-battle .selected-card-detail:hover{background:#233831;color:var(--ink)}.selected-card-detail strong{display:block;font-size:.8125rem}.selected-card-detail strong:after{content:" ↗";font-size:.75rem;color:var(--muted)}.selected-card-detail p{margin:0;font-size:.75rem;line-height:1.4}.selected-action-title{display:flex;align-items:baseline;flex-wrap:wrap;gap:3px 8px}.composer-controls{display:flex;gap:5px;margin-top:4px}.composer-control-slot{display:contents}.polish-battle .composer-controls button{flex:1;font-size:.75rem;padding:5px 3px;min-height:30px}@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}.selected-card-pair{grid-template-columns:1fr}.side-composer>header{font-size:.875rem}.polish-battle .selected-card-detail{padding:8px}.selected-card-detail p{font-size:.8125rem}.composer-controls{flex-wrap:wrap}.polish-battle .composer-controls button{min-height:36px}.polish-battle .intent-badge{flex:0 0 auto}}.polish-battle .intent-badge.list-hover{border-color:#f1d690;background:#263b3b}.board-tiles{position:absolute;inset:0;pointer-events:none;z-index:auto}.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}.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}.tile-wall{position:absolute;z-index:2;outline:1px solid #353c46;box-shadow:0 3px #252832b0;image-rendering:pixelated}.tile-wall.horizontal{background:#dce0e6 url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAnElEQVR42mNkYGBgyC2s/s9ABpjc38rIkl1Q8T/A34sc/QyvXj3/z8LAwMBgZmpElgGzZs9lYGFgYGA4f+kGA7mAhYGBgUFaSpxsA5jI1SgmIojdAJgEwQB88x67ATAJmngBm+tIMgCb65hItZEkA4gJD7KjESUhTZk6k3wD7t+9xfD9x2+yNHNysDIwMjAwMHj5BpGVnbdtXscIAHlmJ6y1F14dAAAAAElFTkSuQmCC) repeat-x;background-size:24px 12px}.tile-wall.vertical{background:#dce0e6 url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAnElEQVR42mNkYGBgyC2s/s9ABpjc38rIkl1Q8T/A34sc/QyvXj3/z8LAwMBgZmpElgGzZs9lYGFgYGA4f+kGA7mAhYGBgUFaSpxsA5jI1SgmIojdAJgEwQB88x67ATAJmngBm+tIMgCb65hItZEkA4gJD7KjESUhTZk6k3wD7t+9xfD9x2+yNHNysDIwMjAwMHj5BpGVnbdtXscIAHlmJ6y1F14dAAAAAElFTkSuQmCC) repeat-y;background-size:12px 24px}.polish-battle .v4-node{z-index:1;background:#172123a8;border-color:transparent;box-shadow:inset 0 0 0 1px #eee1bc30}.polish-battle .v4-node.ally{background:#254436b0;border-color:#b1dfca}.polish-battle .v4-node.enemy{background:#493b32a0;border-color:#ca9a85}.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}.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%}}
