.board-effects{position:absolute;top:.22rem;right:.22rem;bottom:.22rem;left:.22rem;z-index:5;pointer-events:none}.setup-board{position:relative}.board-stage:has(.fx-fog) .board-fog{animation:fx-fog-reveal var(--fog-enter-ms) ease-out both}.board-effect{position:absolute;display:grid;place-items:center;pointer-events:none}.board-effect>svg{width:100%;height:100%;overflow:visible}.fx{color:#f7ce7e;pointer-events:none;filter:drop-shadow(0 0 1px #302015aa)}.fx-ring,.fx-core,.fx-particle{animation-duration:var(--fx-ms);animation-delay:var(--fx-delay, 0ms);animation-timing-function:ease-out;animation-fill-mode:both;transform-origin:0 0}.fx-ring{animation-name:fx-ring}.fx-core{animation-name:fx-core}.fx-particle{animation-name:fx-spark;stroke:#30201588;stroke-width:.5}.fx-skill{color:#b4ffe3}.fx-portal-in,.fx-portal-out,.fx-rewind{color:#b8d9ff}.fx-portal-in .fx-ring,.fx-portal-out .fx-ring{stroke-width:3;stroke-dasharray:35 6 8 6}.fx-portal-out .fx-ring{animation-name:fx-contract}.fx-mark,.fx-strike{color:#ffb05e}.fx-glue{color:#a7de75}.fx-glue .fx-ring{stroke-width:4;stroke-dasharray:7 4}.fx-fog{color:#d2dfeb}.board-effect-rewind{top:0;right:0;bottom:0;left:0}.fx-rewind .fx-core,.fx-rewind .fx-particles{display:none}.fx-rewind .fx-ring{stroke-width:.5;stroke-dasharray:28 72;animation-name:fx-rewind}.board-effect-fog{top:0;right:0;bottom:50%;left:0;overflow:hidden}.board-effect-fog>svg{width:70%;height:180%}.fx-fog .fx-ring{stroke-width:5;opacity:.4}.fx-boss-win .fx-core,.fx-run-win .fx-core{display:none}.fx-run-win .fx-ring{stroke-width:1}@keyframes fx-ring{0%{opacity:0;transform:scale(.6)}15%{opacity:.95}to{opacity:0;transform:scale(1.5)}}@keyframes fx-core{0%{opacity:.28;transform:scale(.4)}to{opacity:0;transform:scale(1.15)}}@keyframes fx-spark{0%{opacity:0;transform:translate(calc(var(--fx-x) * .55),calc(var(--fx-y) * .55)) scale(.7)}15%{opacity:1}to{opacity:0;transform:translate(var(--fx-x),var(--fx-y)) scale(.25)}}@keyframes fx-contract{0%{opacity:.9;transform:scale(1.1) rotate(0)}to{opacity:0;transform:scale(.15) rotate(-110deg)}}@keyframes fx-rewind{0%{opacity:0;stroke-dashoffset:0}20%{opacity:.9}to{opacity:0;stroke-dashoffset:100}}@keyframes fx-fog-reveal{0%{opacity:0}to{opacity:.85}}@media(prefers-reduced-motion:reduce){.fx .fx-ring,.fx .fx-core,.fx .fx-particle{animation:none}.fx-core,.fx-particles{display:none}.fx .fx-ring{opacity:.5;stroke-dasharray:none}.board-stage .board-fog,.board-stage:has(.fx-fog) .board-fog{animation:none}}@font-face{font-family:Alegreya;font-style:normal;font-weight:600 700;font-display:swap;src:url(/assets/alegreya-latin-wght-BG9rTJo4.woff2) format("woff2")}@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:200 900;font-display:swap;src:url(/assets/source-sans-3-latin-wght-Bo_j9asI.woff2) format("woff2")}:root{--font-heading: "Alegreya", Georgia, "Times New Roman", serif;--font-ui: "Source Sans 3", ui-sans-serif, system-ui, sans-serif;--font-size-small: .8125rem}:root{color:var(--ink);background:var(--bg);font-family:var(--font-ui);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--bg: #161a24;--bg-raised: #1f2534;--bg-sunken: #10131b;--ink: #edf1f7;--ink-soft: #aab4c6;--line: rgba(255, 255, 255, .1);--accent: #ffb547;--accent-ink: #2a1a00;--danger: #ff4d4d;--ok: #58d68d;--blue-deep: #2f6fd6;--square-light: #e8e2d4;--square-dark: #8a9a6b;--board-frame: #2b3140;--gold: #ffd84f;--skill: #7fdccd}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100dvh;overflow-x:clip}button,input,select,textarea{font:inherit}button{touch-action:manipulation}small{font-size:max(var(--font-size-small),.8em)}button:disabled{cursor:not-allowed;opacity:.55}.app-shell{display:flex;flex-direction:column;min-height:100dvh;width:100%;overflow-x:clip}.app-main{width:min(64rem,calc(100% - 1.5rem));margin:0 auto;padding:.75rem 0 1.5rem;overflow-x:clip}.app-placeholder{display:grid;gap:1rem;justify-items:center;margin:3rem auto;color:var(--ink-soft);text-align:center}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:2.6rem;padding:.5rem 1.1rem;border:1px solid var(--line);border-radius:.8rem;background:var(--bg-raised);color:var(--ink);cursor:pointer;font-weight:700}.btn:hover:not(:disabled){border-color:#ffffff40}.btn-primary{border-color:transparent;background:var(--accent);color:var(--accent-ink)}button:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.lang-switch{display:inline-flex;gap:.2rem;padding:.25rem;border:1px solid var(--line);border-radius:.85rem;background:var(--bg-raised)}.lang-switch button{min-width:2.4rem;min-height:2.2rem;padding:0 .55rem;border:0;border-radius:.6rem;color:var(--ink-soft);background:transparent;cursor:pointer;font-weight:800;font-size:var(--font-size-small);letter-spacing:.03em}.lang-switch button.active{color:var(--accent-ink);background:var(--accent)}.start-screen{display:grid;gap:1rem;justify-items:center;width:min(100%,34rem);margin:2rem auto;text-align:center}.start-title{margin:0;font-size:clamp(2.4rem,8vw,3.6rem);letter-spacing:.02em}.start-pitch{margin:0;color:var(--ink-soft)}.start-choice{display:flex;flex-direction:column;align-items:center;gap:.4rem}.start-choice-label{color:var(--ink-soft);font-size:var(--font-size-small);letter-spacing:.06em;text-transform:uppercase}.start-difficulty,.start-clock{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.5rem}.start-clock .btn{min-width:5.5rem}.run-choice{white-space:nowrap}.start-hint{margin:0;color:var(--ink-soft);font-size:.9rem}.start-run,.start-resume{min-width:14rem}.start-guide{width:100%;padding:.85rem 1rem;border:1px solid var(--line);border-radius:.8rem;text-align:left;color:var(--ink-soft);line-height:1.5}.start-guide summary{color:var(--ink);cursor:pointer;font-weight:700}.start-guide ul{display:grid;gap:.6rem;padding-left:1.2rem;margin-bottom:0}.start-history{width:100%;margin-top:.5rem;padding:1rem;border:1px solid var(--line);border-radius:1rem;background:var(--bg-raised);text-align:left}.start-history h2{margin:0 0 .4rem;font-size:1.1rem}.start-best,.start-empty{margin:0;color:var(--ink-soft)}.history-list{display:grid;gap:.4rem;margin:.6rem 0 0;padding:0;list-style:none}.history-entry{display:flex;flex-wrap:wrap;gap:.3rem .8rem;justify-content:space-between;padding:.4rem .6rem;border-radius:.6rem;background:var(--bg-sunken);font-size:.9rem}.history-outcome{font-weight:800}.history-won .history-outcome{color:var(--ok)}.history-time .history-outcome,.history-lost .history-outcome{color:var(--danger)}.history-date,.history-detail{color:var(--ink-soft)}.history-record{outline:1px solid var(--accent);outline-offset:-1px}.history-record-mark{color:var(--accent);font-weight:800}.board-wrap{position:relative;padding:.5rem;border-radius:1.2rem;background:var(--bg-raised);box-shadow:0 1.2rem 2.8rem #00000073}.quick-board{display:grid;margin:0 auto;overflow:hidden;border:.22rem solid var(--board-frame);border-radius:1rem;background:var(--board-frame);box-shadow:0 1.4rem 3.2rem #083b792e;touch-action:none}.quick-square{position:relative;display:grid;min-width:0;min-height:0;place-items:center;border:0;padding:0;cursor:pointer}.quick-square.light{background:var(--square-light)}.quick-square.dark{background:var(--square-dark)}.quick-square:focus-visible{z-index:5;outline:.24rem solid var(--gold);outline-offset:-.24rem}.quick-square.movable{cursor:grab}.quick-piece{position:relative;z-index:2;display:grid;width:88%;aspect-ratio:1;place-items:center;pointer-events:none;-webkit-user-select:none;user-select:none;filter:drop-shadow(0 .16rem .22rem rgba(4,30,66,.35))}.quick-piece.drag-origin{opacity:.3}.board-coin{position:absolute;z-index:4;top:2%;right:2%;width:40%;aspect-ratio:1;display:grid;place-items:center;filter:drop-shadow(0 2px 2px #39240566);pointer-events:none}.board-coin img{display:block;width:100%;height:100%;object-fit:contain;-webkit-user-select:none;user-select:none}.board-coin-skill{filter:drop-shadow(0 1px 1px #102f2be6) drop-shadow(0 0 2px #a9ebd891)}.piece-svg{width:100%;height:100%;object-fit:contain;display:block}.rank-label,.file-label{position:absolute;z-index:4;color:#072c668f;font-size:clamp(.56rem,1.6vw,.78rem);font-weight:900;line-height:1;pointer-events:none}.rank-label{top:.24rem;left:.28rem}.file-label{right:.28rem;bottom:.24rem}.selected-square{box-shadow:inset 0 0 0 .24rem var(--gold)}.last-move{box-shadow:inset 0 0 0 clamp(1px,.45cqi,2px) #ae8c3f6b}.premove-square{box-shadow:inset 0 0 0 .2rem #9646c8e6,inset 0 0 .9rem .25rem #9646c859}.ability-badge{display:inline-flex;align-items:center;gap:.08em;height:1em;color:var(--gold)}.ability-badge svg{display:block;flex:none;fill:currentColor}.ability-badge .ability-mark{width:1em;height:1em;fill:none}.ability-badge .ability-pay{width:.7em;height:.7em}.ability-pays-gold .ability-pay{color:var(--gold)}.ability-pays-clock .ability-pay{color:#8fdcff}.ability-pays-dread .ability-pay{color:#dbc1ed}.ability-pays-skill .ability-pay{color:#a3efd0}.ability-pays-officer .ability-pay,.sym-officer{color:#f1b68d}.ability-badge-capture{color:#e0a640}.ability-badge-check{color:#5ad0ff}.ability-badge-death{color:#ff6a6a}.ability-badge-arrival{color:#c99cff}.ability-badge-move{color:#7ad67a}.quick-board,.setup-board{container-type:inline-size}.square-badges{position:absolute;bottom:3%;left:50%;transform:translate(-50%);display:flex;align-items:flex-start;gap:.15em;font-size:clamp(.8125rem,3cqi,1rem);pointer-events:none;z-index:3}.quick-square:has(.square-badges) .file-label,.setup-cell:has(.square-badges) .file-label{top:.24rem;bottom:auto}.ability-badge.board-badge{display:inline-flex;flex:none;height:auto;gap:.12em;padding:1px 3px;border:1px solid #f1ebdd99;border-radius:3px;background:#17231f;color:#fff6df;box-shadow:0 1px 2px #0007}.board-badge .ability-pay{width:.7em;height:.7em}.badge-countdown{position:absolute;bottom:calc(100% - 1px);left:0;min-width:1.3em;padding:.1em .2em;border:1px solid #e7d7aa;border-radius:.5em;background:#182420;color:#f3e7c4;box-shadow:0 1px 2px #0008;font-size:clamp(.65rem,2.2cqi,.8rem);font-weight:700;line-height:1.25;text-align:center}.badge-countdown.is-now{background:#d9a441;color:#1b1408}.chip-badges{display:inline-flex;gap:.1rem;font-size:.8rem}.glue-slime{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;pointer-events:none;background:radial-gradient(58% 34% at 50% 72%,rgba(104,201,66,.78) 0 55%,rgba(88,178,54,.4) 75%,transparent 100%),radial-gradient(16% 26% at 34% 88%,rgba(88,178,54,.7) 0 60%,transparent 100%),radial-gradient(12% 20% at 68% 90%,rgba(104,201,66,.65) 0 60%,transparent 100%);filter:drop-shadow(0 .1rem .2rem rgba(46,110,20,.35))}.kamikaze-mark{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;pointer-events:none;border-radius:inherit;box-shadow:inset 0 0 0 .18rem #ff8c00f2,inset 0 0 .8rem .2rem #ff8c0073}.kamikaze-mark:after{content:"";position:absolute;top:8%;right:8%;width:22%;aspect-ratio:1;border-radius:50%;background:#ff8c00;box-shadow:0 0 .4rem #ff8c00e6}.board-fog{position:absolute;top:0;left:0;right:0;height:50%;z-index:4;pointer-events:none;border-radius:.8rem .8rem 0 0;background:linear-gradient(135deg,#96a0b0b8,#748296c7);animation:fog-drift 4s ease-in-out infinite alternate}@keyframes fog-drift{0%{opacity:.75}to{opacity:.95}}.match-status.weapon-mode{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.5rem .8rem;width:100%;padding:.5rem .8rem;border:1px solid rgba(255,181,71,.6);border-radius:.9rem;background:#ffb54714;color:var(--ink)}.weapon-mode-btn{min-height:2rem;padding:.25rem .8rem;font-size:.85rem}.match-status.weapon-notice{color:var(--accent)}.weapon-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.5rem .7rem;width:100%;padding:.4rem .8rem;border:1px solid var(--line);border-radius:.9rem;background:var(--bg-raised)}.weapon-bar-uses{margin-right:auto;color:var(--ink-soft);font-size:var(--font-size-small);font-weight:800;font-variant-numeric:tabular-nums}.weapon-control{display:inline-flex;max-width:100%}.weapon-btn{min-width:0;min-height:2.75rem;padding:.3rem .8rem;border-radius:.8rem 0 0 .8rem;font-size:.9rem}.equipment-inspect,.equipment-close{display:inline-flex;flex:none;align-items:center;justify-content:center;min-width:2.75rem;min-height:2.75rem;padding:.3rem;border:1px solid var(--line);border-radius:.6rem;background:var(--bg-raised);color:var(--ink);font:inherit;cursor:pointer}.equipment-inspect{border-left:0;border-radius:0 .8rem .8rem 0}.equipment-inspect>span{display:inline-grid;place-items:center;width:1.2rem;height:1.2rem;border:1px solid currentColor;border-radius:50%;font-size:.8rem;font-weight:800}.equipment-inspect:hover,.equipment-close:hover,.equipment-inspect[aria-expanded=true]{background:var(--bg-sunken);color:var(--accent)}.equipment-details{flex-basis:100%;display:grid;gap:.5rem;min-width:0;padding:.5rem .2rem;border-top:1px solid var(--line);text-align:left;font-size:.9rem;line-height:1.5}.equipment-details-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.equipment-details p{margin:0}.equipment-note{color:var(--ink-soft)}.equipment-restriction{color:var(--accent)}.badge-details{display:flex;width:100%;padding:.1rem .7rem .3rem;border:1px solid var(--line);border-radius:.9rem;background:var(--bg-sunken)}.badge-details .equipment-details{border-top:0}.badge-details-carrier{display:flex;align-items:center;gap:.4rem}.rune-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.35rem;width:100%;padding:.3rem .6rem;border:1px solid var(--line);border-radius:.9rem;background:var(--bg-sunken)}.rune-slot{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.15rem;min-width:2.75rem;min-height:2.75rem;padding:.2rem .4rem;border:1px solid var(--line);border-radius:.5rem;background:var(--bg-raised);color:var(--ink-soft);font:inherit;transition:color .16s ease,border-color .16s ease,background .16s ease}button.rune-slot{cursor:pointer}.rune-slot[aria-expanded=true]{border-color:var(--accent);color:var(--ink)}.rune-slot .rune-sign{display:block;flex:none;width:1.1rem;height:1.1rem;fill:currentColor}.rune-acts{font-size:.7rem;font-weight:800;font-variant-numeric:tabular-nums}.rune-wear{white-space:nowrap}.rune-slot.is-acting{border-color:var(--accent);background:#ffb54729;color:var(--accent)}.rune-flash{position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border:2px solid var(--accent);border-radius:.65rem;pointer-events:none;animation:rune-pulse .9s ease-out forwards}@keyframes rune-pulse{0%{opacity:.9;transform:scale(1)}to{opacity:0;transform:scale(1.3)}}.rune-slot-free{border-style:dashed;background:none;opacity:.4}.offer-name-signed{display:inline-flex;align-items:center;gap:.35rem}.offer-name-signed .rune-sign{flex:none;width:1.05em;height:1.05em;fill:currentColor;color:var(--accent)}.setup-weapons{display:grid;gap:.4rem;width:100%;justify-items:center}.setup-weapon-list{display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem}.setup-weapon{padding:.2rem .6rem;border:1px solid var(--line, currentColor);border-radius:999px;font-size:.9rem}.setup-uses{font-size:.9rem;color:var(--ink-soft)}.setup-spell-toggle.selected{border-color:var(--gold);box-shadow:0 0 0 2px var(--gold)}.belt-count{color:var(--ink-soft);font-weight:800;font-variant-numeric:tabular-nums}.hint-square{box-shadow:inset 0 0 0 .2rem #58d68de6,inset 0 0 .9rem .25rem #58d68d59}.king-in-check:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:6;pointer-events:none;border-radius:inherit;box-shadow:inset 0 0 0 .18rem #dc1e1e,inset 0 0 .8rem .3rem #dc1e1e8c,inset 0 0 1.6rem .5rem #b400004d}.move-dot{position:absolute;width:22%;aspect-ratio:1;border-radius:50%;background:#053d7d73;box-shadow:0 0 0 .32rem #ffffff3d}.chess-dot{z-index:3;width:30%;background:#0b3c7880;box-shadow:0 0 0 .22rem #ffffff4d}.capture-ring{position:absolute;z-index:3;width:86%;aspect-ratio:1;border-radius:50%;border:.28rem solid rgba(255,216,79,.9);pointer-events:none}.drag-ghost{position:fixed;top:0;left:0;z-index:40;display:grid;place-items:center;pointer-events:none;filter:drop-shadow(0 .3rem .5rem rgba(0,0,0,.45))}.board-overlay{position:absolute;z-index:20;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:1rem;border-radius:1.2rem;background:#072c6652;animation:overlay-fade .18s ease-out}.board-overlay-window{position:relative;display:grid;gap:.55rem;width:min(19rem,100%);max-height:100%;overflow-y:auto;padding:1.1rem 1.1rem 1rem;border:1px solid rgba(255,255,255,.8);border-radius:1rem;background:#f4f6fb;box-shadow:0 1.6rem 3.6rem #00000080;text-align:center;animation:overlay-pop .22s ease-out}.board-overlay-close{position:absolute;top:.35rem;right:.35rem;display:grid;width:1.9rem;height:1.9rem;place-items:center;border:0;border-radius:50%;background:#0a4da31a;color:var(--blue-deep);cursor:pointer;font-size:1.25rem;line-height:1;font-weight:800}.board-overlay-close:hover{background:#0a4da333}.promotion-choices{display:flex;flex-wrap:wrap;justify-content:center;gap:.55rem}.promotion-choice{width:3.6rem;height:3.6rem;padding:.35rem;border:1px solid rgba(10,77,163,.25);border-radius:.85rem;background:#0a4da314;cursor:pointer;transition:background .12s ease,transform .12s ease}.promotion-choice:hover{background:#0a4da333;transform:translateY(-2px)}.overlay-title{margin:0;color:#072c66;font-family:var(--font-heading);font-size:1.5rem;line-height:1.15}@keyframes overlay-fade{0%{opacity:0}to{opacity:1}}@keyframes overlay-pop{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}.setup-screen{display:grid;gap:.8rem;justify-items:center;width:min(100%,36rem);margin:1rem auto;padding:1.2rem;border:1px solid var(--line);border-radius:1.2rem;background:var(--bg-raised);text-align:center}.setup-screen h2{margin:0;font-size:1.3rem}.setup-heading,.setup-controls,.setup-layout{display:grid;gap:.9rem;min-width:0;width:100%;justify-items:center;align-content:start}.setup-steps{display:flex;width:100%;gap:.5rem;padding-bottom:.5rem;border-bottom:1px solid var(--line)}.setup-step{display:flex;flex:1;align-items:center;justify-content:center;gap:.45rem;min-height:2.75rem;padding:.5rem;border:1px solid transparent;border-radius:.7rem;background:transparent;color:var(--ink-soft);cursor:pointer;font-size:.9rem;font-weight:700}.setup-step>span{display:grid;place-items:center;flex-shrink:0;width:1.5rem;height:1.5rem;border:1px solid var(--line);border-radius:50%}.setup-step.selected{border-color:#ffb54773;background:var(--bg-sunken);color:var(--accent)}.setup-preview{display:grid;place-items:start center;min-width:0;width:100%}.setup-for-boss h2{color:var(--accent)}.setup-limits,.setup-hint,.setup-note{margin:0;color:var(--ink-soft);font-weight:700}.setup-limits{padding:.3rem .9rem;border:1px solid rgba(255,181,71,.45);border-radius:999px;background:var(--bg-sunken);color:var(--accent);font-size:1.05rem;font-weight:900;font-variant-numeric:tabular-nums}.setup-note-active{color:var(--accent)}.setup-board{display:grid;width:fit-content;max-width:100%;overflow:hidden;border:.22rem solid var(--board-frame);border-radius:.8rem;background:var(--board-frame)}.setup-cell{position:relative;display:grid;aspect-ratio:1;place-items:center}.setup-cell.light{background:var(--square-light)}.setup-cell.dark{background:var(--square-dark)}.setup-cell .quick-piece{width:80%}.setup-slot{border:0;padding:0;cursor:pointer;font:inherit}.setup-slot:focus-visible{z-index:5;outline:.24rem solid var(--gold);outline-offset:-.24rem}.setup-slot.selected{box-shadow:inset 0 0 0 .24rem var(--gold)}.setup-slot.target:after{content:"";position:absolute;width:26%;aspect-ratio:1;border-radius:50%;background:#0b3c7873}.setup-slot:disabled{cursor:default;opacity:1;color:inherit}.setup-rearranged{margin:0;color:var(--ink-soft);font-weight:700}.setup-army{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.6rem}.setup-group-label{color:var(--ink-soft);font-size:var(--font-size-small);font-weight:800;letter-spacing:.08em;text-transform:uppercase}.setup-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.6rem;width:100%;position:sticky;bottom:0;z-index:6;padding:.8rem 0 max(.5rem,env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--bg-raised)}.setup-actions .btn{min-height:2.75rem}.piece-chip-cost{min-width:1rem;margin-right:.25rem;color:var(--ink-soft);font-variant-numeric:tabular-nums}.setup-badge-empty{padding:1rem;border:1px dashed var(--line);border-radius:.8rem;font-weight:400;line-height:1.5}.screen-tools{display:flex;align-items:center;justify-content:center;gap:.6rem}.sound-toggle{min-width:2.2rem;min-height:2.2rem;padding:.2rem .5rem;border:1px solid var(--line);border-radius:999px;background:var(--bg-sunken);color:var(--ink);font:inherit;font-size:1rem;cursor:pointer}.sound-toggle[aria-pressed=false]{opacity:.6}.camp-screen{display:grid;gap:.8rem;justify-items:center;width:min(100%,36rem);margin:1rem auto;padding:1.2rem;border:1px solid var(--line);border-radius:1.2rem;background:var(--bg-raised);text-align:center}.camp-screen h2{margin:0;font-size:1.3rem}.camp-heading,.camp-context,.camp-market,.camp-shop-actions{display:grid;gap:.8rem;align-content:start;justify-items:center;width:100%;min-width:0}.camp-badge-shortcut{justify-content:space-between;width:100%;min-height:3rem;border-color:#ffb54773;color:var(--accent);background:var(--bg-sunken)}.camp-next{margin:0;color:var(--ink-soft);font-weight:700}.camp-next-boss{color:var(--accent)}.run-track{display:flex;align-items:center;justify-content:center;gap:.32rem;min-height:.8rem}.run-track-mark{width:.5rem;height:.5rem;border:1.5px solid var(--ink-soft);border-radius:50%;opacity:.55}.run-track-done{background:var(--ink-soft);opacity:.8}.run-track-now{width:.72rem;height:.72rem;border-color:var(--ink);background:var(--ink);box-shadow:0 0 0 .16rem #ffffff29;opacity:1}.run-track-boss{width:.62rem;height:.62rem;border-color:var(--accent);border-radius:.14rem;opacity:.85;transform:rotate(45deg)}.run-track-boss.run-track-done{background:var(--accent)}.run-track-boss.run-track-now{width:.8rem;height:.8rem;background:var(--accent);box-shadow:0 0 0 .16rem #ffb5474d;opacity:1}.camp-opponent{display:flex;flex-wrap:wrap;align-items:stretch;justify-content:center;gap:.8rem;width:100%}.camp-formation,.camp-cap{display:grid;align-content:start;justify-items:center;gap:.4rem;flex:1 1 12rem;padding:.7rem .8rem;border:1px solid var(--line);border-radius:.9rem;background:var(--bg-sunken)}.camp-formation-summary{color:var(--ink-soft);font-size:.9rem;font-weight:700;font-variant-numeric:tabular-nums}.formation-board{display:grid;width:fit-content;max-width:100%;overflow:hidden;border:.18rem solid var(--board-frame);border-radius:.6rem;background:var(--board-frame)}.formation-cell{position:relative;display:grid;aspect-ratio:1;place-items:center}.formation-cell.light{background:var(--square-light)}.formation-cell.dark{background:var(--square-dark)}.formation-cell .quick-piece{width:80%}.camp-cap-under{color:var(--ink-soft);font-size:.85rem;font-weight:700}.camp-cap{border-color:#ffb54773}.camp-cap .piece-chips{justify-content:center}.camp-cap-status{display:flex;align-items:center;justify-content:center;gap:.5rem;color:var(--ink-soft);font-size:.85rem;font-weight:700}.camp-tabs{display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem}.camp-tab{min-height:2.75rem;padding:.3rem 1rem;border:1px solid var(--line);border-radius:999px;background:var(--bg-sunken);color:var(--ink);font:inherit;font-weight:800;cursor:pointer}.camp-tab.selected{border-color:var(--accent);background:var(--bg-sunken);color:var(--accent)}.camp-panel{display:grid;gap:1rem;width:100%}.camp-section{display:grid;gap:.4rem;width:100%;justify-items:center}.camp-section-label{color:var(--ink-soft);font-size:var(--font-size-small);font-weight:800;letter-spacing:.08em;text-transform:uppercase}.camp-rows{display:grid;gap:.35rem;width:100%;margin:0;padding:0;list-style:none}.camp-row{display:grid;grid-template-columns:2rem 1fr auto auto;align-items:center;gap:.6rem;padding:.3rem .6rem;border-radius:.7rem;background:var(--bg-sunken);text-align:left}.camp-row-glyph{width:2rem}.camp-row-name{font-weight:700;text-transform:capitalize}.camp-row-cost{color:var(--ink-soft);font-size:.85rem;font-variant-numeric:tabular-nums}.camp-row-btn{min-height:2rem;padding:.25rem .8rem}.offer-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:.4rem;width:100%;margin:0;padding:0;list-style:none}.offer-card{display:grid;align-content:start;gap:.2rem;padding:.5rem .7rem;border-radius:.7rem;background:var(--bg-sunken);text-align:left}.offer-card-taken{place-items:center;color:var(--ink-soft);font-style:italic}.offer-name{font-weight:800}.offer-effect{color:var(--ink-soft);font-size:.85rem}.offer-price{color:var(--gold);font-weight:800;font-variant-numeric:tabular-nums}.owned-rune-wear{display:inline-flex;align-items:center;gap:.35rem;font-size:.85rem;font-weight:700}.offer-foot{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.offer-buy{min-height:2rem;padding:.25rem .8rem}.camp-reroll,.camp-view-tree{font-variant-numeric:tabular-nums}.owned-rune{border:1px solid var(--line)}.owned-rune-actions{display:inline-flex;gap:.3rem}.owned-runes.is-sortable .owned-rune{cursor:grab;-webkit-user-select:none;user-select:none}.camp-rune-grip{padding:.25rem .5rem;cursor:grab;touch-action:none;-webkit-touch-callout:none}.camp-rune-grip:disabled{cursor:default}.grip-sign{width:1rem;height:1rem;fill:currentColor}.owned-rune.is-lifted{border-style:dashed;border-color:var(--accent);background:transparent;box-shadow:none}.owned-rune.is-lifted>*{visibility:hidden}.owned-runes.rune-drag-ghost{position:fixed;top:0;left:0;z-index:40;grid-template-columns:minmax(0,1fr);pointer-events:none;filter:drop-shadow(0 .6rem 1rem rgba(0,0,0,.5))}.rune-drag-ghost .owned-rune{border-color:var(--accent);rotate:1.5deg}.camp-screen.is-sorting-runes,.camp-screen.is-sorting-runes *,.camp-screen.is-sorting-runes .owned-runes.is-sortable .owned-rune{cursor:grabbing}.camp-screen.is-sorting-runes .term:hover .term-hint{display:none}.camp-pick-option{display:inline-flex;align-items:center;gap:.2rem;padding:.25rem .5rem}.camp-pick-option .camp-row-glyph{width:1.8rem}.camp-army-summary{color:var(--ink-soft);font-size:.9rem;font-weight:700;font-variant-numeric:tabular-nums}.camp-owned-runes{width:100%;min-width:0;padding-top:.8rem;border-top:1px solid var(--line)}.camp-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.6rem}.piece-chips{display:inline-flex;flex-wrap:wrap;gap:.35rem}.piece-chip{position:relative;display:inline-flex;align-items:center;gap:.15rem;padding:.25rem;border:1px solid var(--line);border-radius:.7rem;background:var(--bg-sunken);font-weight:800;font-size:.9rem}.piece-chip-button{color:var(--ink);cursor:pointer}.piece-chip-button:hover:not(:disabled){border-color:var(--accent)}.piece-chip-button.selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}.piece-chip-glyph{display:inline-grid;width:2.2rem;height:2.2rem;place-items:center}.piece-chip-glyph .piece-svg{display:block;width:100%;height:100%}.piece-chips-empty{color:var(--ink-soft)}.piece-chip:not(.piece-chip-button){cursor:help;outline:none}.piece-chip:not(.piece-chip-button):focus-visible{box-shadow:0 0 0 2px var(--accent)}.badge-hint{visibility:hidden;position:absolute;bottom:calc(100% + .35rem);left:0;z-index:6;display:grid;gap:.15rem;width:max-content;max-width:min(17rem,calc(100vw - 1rem));padding:.35rem .6rem;border:1px solid var(--line);border-radius:.45rem;background:var(--bg-raised);color:var(--ink);font-size:var(--font-size-small);font-weight:600;line-height:1.3;text-align:left;white-space:normal;box-shadow:0 .35rem .9rem #00000073;pointer-events:none}.badge-hint-below{top:calc(100% + .35rem);bottom:auto}.badge-hint-head{font-weight:800}.badge-hint-effect{color:var(--ink-soft)}.piece-chip-button:disabled{opacity:1}.piece-chip-button:disabled>:not(.badge-hint){opacity:.55}.piece-chip:hover>.badge-hint,.piece-chip:focus-visible>.badge-hint,.piece-chip:not(.piece-chip-button):focus>.badge-hint{visibility:visible}.match-screen{display:grid;gap:.7rem;justify-items:center;width:min(100%,36rem);margin:0 auto}@media(min-width:64rem){.match-screen{width:100%;grid-template-columns:minmax(0,1fr) 20rem;grid-template-areas:"board header" "board status" "board badge" "board runes" "board weapons" "board actions" "board spare";grid-template-rows:auto auto auto auto auto auto 1fr;align-items:start;justify-items:stretch;column-gap:1.2rem}.match-screen .board-wrap{grid-area:board;justify-self:center;width:100%}.match-screen .match-header{grid-area:header;flex-direction:column;align-items:flex-start}.match-screen .match-status{grid-area:status;text-align:left}.match-screen .badge-details{grid-area:badge}.match-screen .rune-bar{grid-area:runes;justify-content:flex-start}.match-screen .weapon-bar{grid-area:weapons;justify-content:flex-start}.match-screen .match-actions,.match-screen .match-result{grid-area:actions;justify-content:flex-start}}.match-screen .board-wrap{width:100%}.match-header{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.4rem 1rem;width:100%}.match-header h2{margin:0;font-size:1.25rem}.match-boss .match-header h2{color:var(--accent)}.elo-pill{position:relative;display:inline-flex;align-items:center;gap:.3em;padding:.2rem .7rem;border:1px solid var(--line);border-radius:999px;background:var(--bg-raised);color:var(--ink);font-size:1.05rem;font-weight:800;letter-spacing:.02em;font-variant-numeric:tabular-nums}.elo-lost{font-size:.75em;font-weight:700;white-space:nowrap;color:var(--ink-soft)}.hud-elo{gap:.35em;padding:.3rem .8rem;border-color:#c7a0dc;border-radius:.6rem;background:linear-gradient(135deg,#3c304b,#241f32);color:#f5e5ff;font-size:2rem;line-height:1.15;box-shadow:inset 0 1px #ffffff14,0 0 1.2rem #c49ade20;isolation:isolate}.hud-elo>.sym{width:.9em;height:.9em;filter:drop-shadow(0 0 3px #e9d2ff88)}.hud-elo>.amount-value{min-width:4ch;text-align:center}.hud-elo .elo-lost{font-size:var(--font-size-small);color:#ddbee9;letter-spacing:0}.elo-flash{position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;z-index:-1;border:2px solid #e0b9ff;border-radius:inherit;pointer-events:none}.elo-flash-drain{animation:elo-drain .45s ease-out both}.elo-flash-hit{animation:elo-impact .65s ease-out both}.elo-hit>.amount-value{animation:elo-number-hit .5s ease-out}.elo-drop{position:absolute;right:.5rem;top:calc(100% + .2rem);z-index:1;padding:.15rem .5rem;border:1px solid #e0b9ff;border-radius:.35rem;background:#392844;color:#f5e5ff;font-size:1.05rem;font-weight:900;line-height:1.2;box-shadow:0 .15rem .6rem #0006;pointer-events:none;animation:elo-drop 1.6s ease-out both}@keyframes elo-drain{0%{opacity:.7;box-shadow:0 0 .6rem #cc9feb55}to{opacity:0;box-shadow:0 0 1rem #cc9feb00}}@keyframes elo-impact{0%{opacity:1;background:#d5a8f355;box-shadow:0 0 1.3rem #cc9feb88}to{opacity:0;transform:scale(1.1,1.2);background:transparent;box-shadow:0 0 1.8rem #cc9feb00}}@keyframes elo-number-hit{0%,to{transform:translateY(0) scale(1)}25%{transform:translateY(2px) scale(.92);color:#fff}55%{transform:translateY(-1px) scale(1.06)}}@keyframes elo-drop{0%{opacity:0;transform:translateY(-.5rem) scale(.85)}15%,70%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(.4rem)}}.elo-explained{cursor:help;outline:none}.elo-explained:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.elo-card{position:absolute;top:calc(100% + .4rem);left:0;z-index:20;display:grid;gap:.15rem;min-width:13rem;padding:.5rem .65rem;border:1px solid var(--line);border-radius:.5rem;background:var(--bg-raised);color:var(--ink);font-size:.82rem;font-weight:600;line-height:1.3;letter-spacing:0;text-align:left;white-space:nowrap;box-shadow:0 .35rem .9rem #00000073;pointer-events:none;cursor:default}.elo-card-right{right:0;left:auto}.elo-card-row{display:flex;align-items:center;justify-content:space-between;gap:1.2rem}.elo-card-label{display:inline-flex;align-items:center;gap:.3rem}.elo-card-label .rune-sign{width:1em;height:1em;fill:currentColor}.elo-card-value{font-weight:800;font-variant-numeric:tabular-nums}.elo-card-group{margin-top:.3rem;color:var(--ink-soft);font-size:var(--font-size-small);letter-spacing:.05em;text-transform:uppercase}.elo-card-part{padding-left:.5rem}.elo-card-sum{margin-top:.25rem;padding-top:.25rem;border-top:1px solid var(--line)}.elo-card-note{margin-top:.3rem;color:var(--ink-soft);font-size:var(--font-size-small)}.board-wrap-ended{filter:saturate(.6) brightness(.85);pointer-events:none}.match-status{margin:0;min-height:1.4em;color:var(--ink-soft);font-weight:700;text-align:center}.match-actions,.match-result{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.6rem 1rem;width:100%}.match-draw:not(:disabled){border-color:var(--accent);background:#ffb5471f;color:var(--accent);box-shadow:0 0 .65rem #ffb5472e;animation:draw-ready-pulse 2s ease-in-out infinite}.match-draw:hover:not(:disabled){border-color:var(--accent);background:#ffb54733}@keyframes draw-ready-pulse{0%,to{box-shadow:0 0 #ffb5473d,0 0 .65rem #ffb5472e}50%{box-shadow:0 0 0 .3rem #ffb54700,0 0 1.1rem #ffb54766}}.match-result{padding:.7rem 1rem;border:1px solid var(--line);border-radius:.9rem;background:var(--bg-raised)}.match-result-title{font-size:1.6rem;font-weight:900;letter-spacing:.03em;text-transform:uppercase}.match-result-win .match-result-title{color:var(--ok)}.match-result-draw .match-result-title{color:var(--ink-soft)}.match-result-loss .match-result-title{color:var(--danger)}.clock-bar{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:center;gap:.6rem 1.5rem;width:100%;padding:.4rem .8rem;border:1px solid var(--line);border-radius:1rem;background:var(--bg-sunken)}.clock-bar-clock{position:relative;display:grid;justify-items:center;gap:.1rem}.clock-sym{width:.5em;height:.5em;margin-right:.12em;vertical-align:.08em;color:var(--ink-soft)}.clock-value{font-size:clamp(2.2rem,7vw,3.4rem);font-weight:900;line-height:1;font-variant-numeric:tabular-nums}.clock-low{color:var(--danger);animation:clock-pulse 1s ease-in-out infinite}@keyframes clock-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(1.04)}}.clock-gain,.clock-warn{position:absolute;right:calc(100% + .4rem);top:-.2rem;font-size:1.1rem;font-weight:900;white-space:nowrap;animation:gain-float 1.6s ease-out both;pointer-events:none}.clock-gain{color:var(--ok)}.clock-gain-neg,.clock-warn{color:var(--danger)}.clock-flash{animation:clock-flash .6s ease-out both}@keyframes clock-flash{0%{color:var(--danger);transform:scale(1.15);text-shadow:0 0 .8rem var(--danger)}to{transform:scale(1);text-shadow:none}}@keyframes gain-float{0%{opacity:0;translate:0 .6rem}20%{opacity:1;translate:0 0}70%{opacity:1}to{opacity:0;translate:0 -.4rem}}.board-clock-warn{position:absolute;z-index:12;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:#ff3c3c8c;font-size:clamp(3rem,16vmin,7rem);font-weight:900;line-height:1;font-variant-numeric:tabular-nums;text-shadow:0 0 .5rem rgba(0,0,0,.35);pointer-events:none;animation:board-clock-warn 1.2s ease-out both}@keyframes board-clock-warn{0%{opacity:0;transform:scale(1.2)}15%{opacity:1;transform:scale(1)}65%{opacity:1}to{opacity:0}}.board-draw-offer{position:absolute;z-index:11;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;container-type:inline-size;pointer-events:none}.board-draw-offer-text{color:#e9bb6d73;font-family:var(--font-heading);font-size:13cqi;font-weight:700;line-height:1;letter-spacing:.02em;-webkit-text-stroke:.025em rgba(40,30,16,.85);text-shadow:0 0 .15em rgba(233,187,109,.5),0 .03em .1em rgba(0,0,0,.45);animation:board-draw-offer 2.2s ease-out both}@keyframes board-draw-offer{0%{opacity:0;transform:scale(.85);filter:blur(.25rem)}12%{opacity:1;transform:scale(1);filter:blur(0)}55%{opacity:1;transform:scale(1);filter:blur(0)}to{opacity:0;transform:scale(1.12);filter:blur(.75rem)}}@media(prefers-reduced-motion:reduce){.match-draw:not(:disabled),.clock-low,.clock-flash,.board-clock-warn,.board-draw-offer-text,.hud-gold,.gold-popup,.badge-burst-ring,.badge-burst-mark,.badge-burst-gold,.rune-flash{animation:none}.rune-flash,.gold-popup,.badge-burst{opacity:0}}.hud{position:sticky;top:0;z-index:10;display:grid;gap:.4rem;width:min(64rem,calc(100% - 1.5rem));margin:0 auto;padding:.5rem 0 .4rem;background:var(--bg)}.hud-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.6rem 1.2rem;padding:.35rem .8rem;border:1px solid var(--line);border-radius:.9rem;background:var(--bg-raised)}.hud-compact{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"label resources" "clock resources";gap:.15rem .6rem;align-items:center}.hud-compact .clock-bar{grid-area:clock;padding:.3rem .6rem}.hud-compact .clock-value{font-size:1.5rem}.hud-compact .hud-row{grid-area:resources;min-height:2.75rem}@media(min-width:64rem){.setup-screen,.camp-screen{width:100%}.setup-heading{grid-template-columns:1fr auto;text-align:left;justify-items:start}.setup-heading .run-track{grid-column:1}.setup-heading .setup-limits{grid-column:2;grid-row:1}.setup-layout{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:start;gap:1.5rem}.setup-preview{position:sticky;top:6rem}.setup-controls{padding:1rem;border:1px solid var(--line);border-radius:.9rem;background:var(--bg-sunken)}.camp-screen{grid-template-columns:18rem minmax(0,1fr);align-items:start;gap:1.25rem}.camp-heading{grid-column:1 / -1;display:flex;justify-content:space-between;align-items:center}.camp-context{grid-column:1}.camp-market{grid-column:2}.camp-screen>.camp-actions{grid-column:2}.camp-owned-runes{grid-column:1 / -1}.camp-context .camp-opponent{flex-direction:column}.camp-context .camp-formation,.camp-context .camp-cap{flex-basis:auto}}.hud-item{display:flex;align-items:center;gap:.5rem}.hud-sym{width:1.1rem;height:1.1rem}.hud-gold{display:inline-block;color:var(--accent);font-size:1.3rem;font-weight:900;line-height:1;font-variant-numeric:tabular-nums}.hud-gold.is-gain{animation:hud-gold-gain .6s ease-out}.hud-gold.is-loss{animation:hud-gold-loss .5s ease-out}.hud-difficulty{padding:.15rem .55rem;border:1px solid var(--line);border-radius:999px;font-size:var(--font-size-small);font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft)}@keyframes hud-gold-gain{0%{transform:scale(1)}40%{transform:scale(1.3);color:var(--ok)}to{transform:scale(1)}}@keyframes hud-gold-loss{0%,to{transform:translate(0)}25%{transform:translate(-.25rem);color:var(--danger)}75%{transform:translate(.25rem)}}.board-stage{position:relative;margin:0 auto}.gold-popup-layer{position:absolute;z-index:7;top:.22rem;right:.22rem;bottom:.22rem;left:.22rem;pointer-events:none}.gold-popup{position:absolute;display:grid;place-items:center;color:var(--accent);font-size:clamp(2rem,6.4vw,3.4rem);font-weight:900;line-height:1;text-shadow:0 0 .3rem rgba(0,0,0,.9),0 .12rem .3rem rgba(0,0,0,.6);animation:gold-popup 1.8s ease-out forwards}.skill-popup{grid-auto-flow:column;place-content:start center;place-items:center;gap:.1em;color:var(--skill);font-size:clamp(1.2rem,3.8vw,2rem)}.skill-popup-sign{width:.9em;height:.9em;fill:currentColor;filter:drop-shadow(0 0 .2rem rgba(0,0,0,.9))}@keyframes gold-popup{0%{opacity:0;transform:translateY(18%) scale(.7)}9%{opacity:1;transform:translateY(0) scale(1.15)}18%{transform:translateY(-6%) scale(1)}70%{opacity:1;transform:translateY(-14%) scale(1)}to{opacity:0;transform:translateY(-78%)}}.badge-burst{position:absolute;container-type:size;color:var(--gold);pointer-events:none}.badge-burst-capture{color:#e0a640}.badge-burst-check{color:#5ad0ff}.badge-burst-death{color:#ff6a6a}.badge-burst-arrival{color:#c99cff}.badge-burst-move{color:#7ad67a}.badge-burst-ring{position:absolute;top:8%;right:8%;bottom:8%;left:8%;border:.22rem solid currentColor;border-radius:50%;box-shadow:0 0 .6rem currentColor,inset 0 0 .6rem currentColor;animation:badge-ring 1.8s ease-out both}.badge-burst-marks{position:absolute;top:10%;right:8%;bottom:40%;left:8%;display:flex;justify-content:center;align-items:center;gap:6%;font-size:48cqmin;filter:drop-shadow(0 0 .35rem rgba(0,0,0,.95)) drop-shadow(0 0 .7rem currentColor);animation:badge-mark 1.8s ease-out both}.badge-burst-marks-many{font-size:36cqmin}.badge-burst-gold.badge-burst-gold-wide{font-size:19cqmin;white-space:nowrap}.badge-burst-gold{position:absolute;right:0;bottom:3%;left:0;color:var(--accent);font-size:34cqmin;font-weight:900;line-height:1;text-align:center;text-shadow:0 0 .3rem rgba(0,0,0,.9),0 .12rem .3rem rgba(0,0,0,.6);animation:badge-gold 1.8s ease-out both}@keyframes badge-ring{0%{opacity:0;transform:scale(.35)}12%{opacity:1;transform:scale(1)}45%{opacity:.85;transform:scale(1.25)}to{opacity:0;transform:scale(1.5)}}@keyframes badge-mark{0%{opacity:0;transform:scale(.3)}12%{opacity:1;transform:scale(1.2)}25%{transform:scale(1)}60%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.1)}}@keyframes badge-gold{0%{opacity:0;transform:translateY(45%)}15%{opacity:1;transform:translateY(0)}65%{opacity:1;transform:translateY(-12%)}to{opacity:0;transform:translateY(-60%)}}.result-screen{display:grid;gap:.8rem;justify-items:center;width:min(100%,30rem);margin:1.5rem auto;padding:1.4rem;border:1px solid var(--line);border-radius:1.2rem;background:var(--bg-raised);text-align:center}.result-screen h2{margin:0;font-size:1.25rem}.result-boss h2{color:var(--accent)}.result-outcome{margin:0;font-size:2rem;font-weight:900;line-height:1;letter-spacing:.03em;text-transform:uppercase}.result-win .result-outcome{color:var(--ok)}.result-draw .result-outcome{color:var(--ink-soft)}.result-loss .result-outcome{color:var(--danger)}.result-reason,.result-next{margin:0;color:var(--ink-soft)}.result-next{font-weight:700}.result-list{display:grid;gap:.6rem;width:100%;margin:0;text-align:left}.result-list>div{display:flex;align-items:center;justify-content:space-between;gap:1rem}.result-list dt{color:var(--ink-soft);font-weight:700}.result-list dd{margin:0;font-weight:900;font-variant-numeric:tabular-nums}.result-abilities{display:grid;gap:.2rem;margin:0;padding:0;list-style:none;font-size:.9rem;text-align:right}.result-gain{color:var(--ok);font-size:1.15rem}.result-captures{display:inline-flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.35rem}.result-capture{display:inline-flex;align-items:center;gap:.1rem;padding:.15rem .45rem .15rem .15rem;border:1px solid var(--line);border-radius:.7rem;background:var(--bg-sunken);color:var(--accent);font-size:.9rem}.result-capture .piece-chip-glyph{width:1.7rem;height:1.7rem}.result-capture-total{margin-left:.2rem;color:var(--accent);font-size:1.15rem}.piece-chips-gain .piece-chip{border-color:#58d68d8c}.debug-panel{position:fixed;right:.5rem;bottom:.5rem;z-index:50;font-size:var(--font-size-small)}.debug-toggle{padding:.2rem .5rem;border:1px solid var(--line);border-radius:.5rem;background:var(--bg-sunken);color:var(--ink-soft);cursor:pointer;opacity:.6}.debug-body{display:grid;gap:.35rem;margin-top:.3rem;padding:.5rem;border:1px solid var(--line);border-radius:.6rem;background:var(--bg-sunken)}.debug-body label,.debug-body span{display:flex;align-items:center;gap:.3rem}.debug-body input,.debug-body select{width:5rem;padding:.15rem .3rem;border:1px solid var(--line);border-radius:.3rem;background:var(--bg);color:var(--ink);font:inherit}.debug-body button{padding:.15rem .45rem;border:1px solid var(--line);border-radius:.4rem;background:var(--bg-raised);color:var(--ink);cursor:pointer;font:inherit}.debug-info{color:var(--ink-soft)}.run-end{display:grid;gap:.9rem;justify-items:center;width:min(100%,30rem);margin:2rem auto;padding:1.4rem;border:1px solid var(--line);border-radius:1.2rem;background:var(--bg-raised);text-align:center}.run-end h2{margin:0;font-size:1.8rem}.run-end-good h2{color:var(--ok)}.run-end-bad h2{color:var(--danger)}.run-end-meta{margin:0;color:var(--ink-soft);font-size:.9rem}.run-end-best{margin:0;color:var(--ok);font-weight:800}.sym{display:inline-block;flex:none;width:1em;height:1em;vertical-align:-.14em;fill:currentColor}.sym-gold{color:var(--gold)}.sym-skill{color:var(--skill)}.sym-piece{display:inline-grid;place-items:center;width:1.2em;height:1.2em;padding:.06em;border-radius:.3em;background:var(--square-light);vertical-align:-.24em;box-sizing:border-box}.sym-piece .piece-svg{width:100%;height:100%}.sym-piece .piece-svg>svg{display:block}.amount{display:inline-flex;align-items:center;gap:.22em;white-space:nowrap;font-variant-numeric:tabular-nums}.offer-name-badge{display:inline-flex;align-items:center;gap:.4rem;min-width:0}.offer-name-badge>span:last-child{min-width:0;overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto}.offer-carriers{justify-self:start;margin-top:.05rem}.offer-badge-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem}.badge-category{padding:.1rem .4rem;border:1px solid var(--line);border-radius:.35rem;background:var(--bg-raised);color:var(--ink-soft);font-size:var(--font-size-small);font-weight:700;line-height:1.4}.carrier-sign{display:inline-flex;align-items:center;padding:.05rem .2rem;border:1px solid var(--line);border-radius:.35rem;background:var(--bg-raised);line-height:1;cursor:default}.carrier-piece{display:inline-grid;width:1.15rem;height:1.15rem;place-items:center}.carrier-piece .piece-svg{display:block;width:100%;height:100%}.carrier-piece+.carrier-piece{margin-left:-.3rem}.badge-pay-row{display:inline-flex;flex-wrap:wrap;align-items:center;gap:.3rem}.badge-pay{display:inline-flex;align-items:center;gap:.25rem;padding:.1rem .35rem .1rem .15rem;border:1px solid var(--line);border-radius:.35rem;background:var(--bg-raised);color:var(--ink);font-size:.85rem;font-weight:800;line-height:1.3;white-space:nowrap;cursor:default}.badge-pay .carrier-sign{padding:0;border:0;background:none}.badge-pay-explained{padding:0}.badge-pay-trigger{display:inline-flex;align-items:center;gap:.25rem;padding:.1rem .35rem .1rem .15rem;border:0;border-radius:inherit;background:transparent;color:inherit;font:inherit;line-height:inherit;cursor:help}.badge-pay-trigger .carrier-sign{cursor:inherit}.badge-pay-trigger:hover,.badge-pay-trigger[aria-expanded=true]{background:color-mix(in srgb,var(--accent) 12%,transparent)}.badge-pay-hint{position:fixed;z-index:60;display:grid;gap:.4rem;width:max-content;max-width:min(19rem,calc(100vw - 1rem));max-height:calc(100dvh - 1rem);overflow-y:auto;padding:.65rem .8rem;border:1px solid var(--accent);border-radius:.45rem;background:var(--bg-raised);color:var(--ink);font-size:.85rem;font-weight:500;line-height:1.45;text-align:left;white-space:normal;box-shadow:0 .5rem 1.4rem #0008}.badge-pay-hint>strong{color:var(--accent)}.badge-pay-hint-condition{color:var(--ink-soft)}.badge-pay .carrier-sign-black{padding:.05rem .1rem;border-radius:.25rem;background:var(--square-light)}.badge-pay-boosted{border-color:var(--gold);color:var(--gold)}.badge-pay-boost{font-size:.65em}.badge-pay-factor{font-variant-numeric:tabular-nums}.badge-hint-pay{margin-top:.15rem}.badge-preview{position:absolute;top:4%;left:50%;z-index:4;transform:translate(-50%);font-size:clamp(.7rem,2.6cqi,.9rem);pointer-events:none}.badge-preview .badge-pay-amount,.setup-carrier .badge-pay-amount{display:inline-flex;padding:.05em .3em;border:1px solid #f1ebdd99;border-radius:.4em;background:#17231fee;color:#fff6df;font-weight:800;line-height:1.25;white-space:nowrap;box-shadow:0 1px 2px #0008}.setup-carrier .badge-pay-amount{font-size:var(--font-size-small)}.badge-preview .badge-pay-boosted,.setup-carrier .badge-pay-boosted{border-color:var(--gold);color:var(--gold)}.setup-badges,.setup-pawn-badge{display:grid;gap:.4rem;width:100%;justify-items:center}.setup-pawn-badge-picks{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.4rem}.setup-pawn-badge-picks .btn{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .6rem;font-size:.9rem}.setup-pawn-badge-effect{max-width:28rem;margin:0;text-align:center}.setup-carrier.selected{border-color:var(--accent)}.setup-bag{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.4rem}.setup-bag-badge{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .6rem;font-size:.9rem}.setup-bag-badge.selected{border-color:var(--gold);box-shadow:0 0 0 .12rem var(--gold)}.setup-slot.badge-target{box-shadow:inset 0 0 0 .24rem var(--gold);animation:badge-target-pulse 1.1s ease-in-out infinite alternate}.setup-carrier.badge-target{border-color:var(--gold)}@keyframes badge-target-pulse{0%{box-shadow:inset 0 0 0 .24rem var(--gold)}to{box-shadow:inset 0 0 0 .12rem var(--gold)}}@media(prefers-reduced-motion:reduce){.setup-slot.badge-target{animation:none}}.setup-badge-hint{margin:0}.camp-pawn-badge{margin-top:.4rem}.term{position:relative;text-decoration:underline dotted;text-decoration-thickness:1px;text-underline-offset:.16em;cursor:help;outline:none}.term:focus-visible{border-radius:.2rem;box-shadow:0 0 0 2px var(--accent)}.term-hint{display:none;position:absolute;bottom:calc(100% + .35rem);left:0;z-index:6;width:max-content;max-width:min(17rem,calc(100vw - 1rem));padding:.25rem .55rem;border:1px solid var(--line);border-radius:.45rem;background:var(--bg-raised);color:var(--ink);font-size:var(--font-size-small);font-weight:600;line-height:1.3;text-align:left;white-space:normal;box-shadow:0 .35rem .9rem #00000073;pointer-events:none}.term:hover .term-hint,.term:focus .term-hint{display:block}.term-button{text-decoration:underline dashed;-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline;margin:0;padding:0;border:0;border-radius:0;background:none;color:inherit;font:inherit;letter-spacing:inherit;text-align:inherit;cursor:pointer}.term-button:hover,.term-button[aria-expanded=true]{color:var(--accent)}.term-box{position:fixed;top:0;left:0;z-index:70;box-sizing:border-box;width:min(17rem,calc(100vw - 1rem));border:1px solid #d3b77c;border-radius:.6rem;padding:.25rem;background:#122e2a;color:#f6f0df;text-align:left;box-shadow:0 0 0 3px #0b1819e6,0 .65rem 1.8rem #0008;animation:term-box-enter .12s ease-out;transition-property:none}.term-box:before{content:"";position:absolute;width:.6rem;height:.6rem;background:#183b33;border:1px solid #d3b77c;transform:rotate(45deg)}.term-box[data-side=right]:before{left:-.36rem;top:calc(var(--term-pointer) - .3rem);border-top:0;border-right:0}.term-box[data-side=left]:before{right:-.36rem;top:calc(var(--term-pointer) - .3rem);border-bottom:0;border-left:0}.term-box[data-side=below]:before{top:-.36rem;left:calc(var(--term-pointer) - .3rem);border-bottom:0;border-right:0}.term-box[data-side=above]:before{bottom:-.36rem;left:calc(var(--term-pointer) - .3rem);border-top:0;border-left:0}.term-box-heading{position:relative;display:flex;align-items:center;justify-content:space-between;gap:.5rem;min-height:2.25rem;padding-left:.7rem;border:1px solid #ab966344;border-bottom:0;border-radius:.35rem .35rem 0 0;background:linear-gradient(110deg,#345344,#203b33)}.term-box-title{color:#f2d49c;font-family:var(--font-heading);font-size:.9rem;font-weight:700;letter-spacing:.06em;line-height:1.3;text-transform:uppercase}.term-box-close{flex:0 0 2.25rem;width:2.25rem;height:2.25rem;padding:0;border:0;border-radius:.25rem;background:transparent;color:#e0ceb0;font:400 1.25rem/1 sans-serif;cursor:pointer}.term-box-close:hover{background:#ffffff12;color:#fff4dc}.term-box-panel{padding:.65rem .7rem .75rem;border:1px solid #ab966344;border-top:1px solid #d3b77c55;border-radius:0 0 .35rem .35rem;background:linear-gradient(135deg,#23483b,#183b33)}.term-box-meaning{margin:0;font-size:.875rem;font-weight:400;line-height:1.5;text-wrap:pretty}.term-box-pieces{display:flex;justify-content:center;width:max-content;max-width:100%;margin:.65rem auto 0;padding:.2rem;border:1px solid #c7b78455;border-radius:.3rem;background:#102d28}.term-box-piece{display:block;width:2.15rem;height:2.15rem;background:#b5bea34a}.term-box-piece:nth-child(2n){background:#84966a26}.term-box-piece .piece-svg{filter:drop-shadow(0 2px 1px #0007)}@keyframes term-box-enter{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){.term-box{animation:none}}:root{--bg: #111b1b;--bg-raised: #202b2a;--bg-sunken: #131d1e;--ink: #f1ebdd;--ink-soft: #babeb1;--line: #52605a;--accent: #e9bb6d;--accent-ink: #281e10;--danger: #ff8a78;--ok: #9bd0b0;--gold: #f3ca80;--skill: #8fdccf;--board-frame: #3c4035;--workshop-width: 76rem;--workshop-side: 21rem;--workshop-board: min(100%, max(19rem, calc(100dvh - 13rem) ), 35rem)}body{background:linear-gradient(180deg,#0c191a88,#101919ee 90%),url(/art/woodland-workshop.jpg) center top / cover fixed}.app-main{width:min(var(--workshop-width),calc(100% - 2rem));padding:1.4rem 0 3rem;overflow:visible}.btn{border-radius:.4rem;background:linear-gradient(#303c37,#232e2c);border-color:#67705c;min-height:2.75rem}.btn:hover:not(:disabled){border-color:var(--accent);background:#3a473c}.btn-primary{color:var(--accent-ink);background:linear-gradient(#efd092,#d5a75e);border-color:#f0cf91;box-shadow:0 2px #7f5b31,inset 0 1px #fff5}.btn-primary:hover:not(:disabled){color:var(--accent-ink);background:#f3d69e}.phase-match .btn.btn-primary{color:var(--accent-ink);background:linear-gradient(#efd092,#d5a75e);border-color:#f0cf91;box-shadow:0 2px #7f5b31,inset 0 1px #fff5}.phase-match .btn.btn-primary:hover:not(:disabled){color:var(--accent-ink);background:#f3d69e;border-color:#f0cf91}button:disabled{opacity:.57}button:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid #a2e0d6;outline-offset:3px}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:700;letter-spacing:.025em}.screen-eyebrow,.start-eyebrow{margin:0;color:var(--accent);font-size:var(--font-size-small);letter-spacing:.18em;text-transform:uppercase;font-weight:800}.hud,.hud.hud-compact{width:min(var(--workshop-width),calc(100% - 2rem));min-height:5.25rem;padding:.7rem 1rem;display:grid;grid-template-columns:auto minmax(7rem,1fr) auto auto;grid-template-rows:auto;grid-template-areas:"brand clock resources settings";gap:.5rem 1.3rem;align-items:center;background:#132020f5;border:1px solid #73765c;border-top:0;border-radius:0 0 .6rem .6rem;box-shadow:0 .4rem 1.8rem #0004}.hud-brand{grid-area:brand;max-width:6em;font:700 1.05rem/1.1 var(--font-heading);letter-spacing:.06em;text-transform:uppercase;text-wrap:balance;color:var(--accent)}.hud-clock{grid-area:clock;display:flex;flex-direction:column;align-items:center;gap:.3rem;min-width:0}.hud-opponent:empty{display:none}.hud .clock-bar,.hud-compact .clock-bar{grid-area:clock;width:auto;min-width:0;padding:.1rem .5rem;background:transparent;border:0}.hud .clock-value{font-size:2.25rem}.hud-compact .clock-value{font-size:1.55rem}.hud-compact .hud-elo{font-size:1.4rem;padding:.2rem .65rem}.hud .hud-row{grid-area:resources;background:transparent;border:0;padding:0;gap:.8rem}.hud .hud-gold{font-size:1.4rem}.hud .game-settings{grid-area:settings}.hud-difficulty{color:var(--ink-soft)}.game-settings{position:relative;text-align:left;font-size:.85rem;z-index:30}.game-settings>summary{display:grid;place-items:center;width:2.75rem;height:2.75rem;padding:.45rem;cursor:pointer;list-style:none;border:1px solid var(--line);border-radius:.4rem;color:var(--ink);background:var(--bg-sunken)}.game-settings>summary::-webkit-details-marker{display:none}.settings-gear{display:block;width:1.6rem;height:1.6rem;filter:drop-shadow(0 1px 1px #0006)}.game-settings>summary:hover,.game-settings[open]>summary{border-color:#edca87}.game-settings-panel{position:absolute;right:0;top:calc(100% + .5rem);padding:1rem;display:grid;gap:.8rem;min-width:12rem;border:1px solid #a89c73;border-radius:.4rem;background:#1e2b29;box-shadow:0 .7rem 2rem #000a}.lang-switch,.lang-switch button,.sound-toggle{border-radius:.3rem}.camp-screen{width:100%;margin:0;padding:0;border:0;border-radius:0;background:transparent;gap:1.2rem;text-align:left}.camp-heading{width:100%;display:flex;gap:1rem;align-items:end;justify-content:space-between}.camp-screen h2{margin-top:.3rem;font-size:2rem}.camp-market,.camp-context,.camp-owned-runes{min-width:0;width:100%;padding:1.1rem;background:#192624f5;border:1px solid #72765a;border-radius:.6rem;box-shadow:0 .6rem 2rem #0004}.camp-context{align-content:start;justify-items:stretch;gap:1rem}.camp-context .camp-next{margin:0;line-height:1.65}.camp-context .camp-opponent{width:100%;padding:.7rem 0;background:transparent;border:0}.camp-context .camp-formation,.camp-context .camp-cap{width:100%}.camp-section-label,.setup-group-label{color:var(--accent);font-size:var(--font-size-small);font-weight:800;letter-spacing:.06em}.camp-tabs{display:flex;flex-wrap:wrap;gap:.4rem;padding:0 0 .9rem;border-bottom:1px solid var(--line)}.camp-tab{flex:1;min-height:2.75rem;border-radius:.3rem;background:transparent;border:1px solid transparent}.camp-tab.selected{color:var(--accent);background:#303c32;border-color:#978562}.camp-panel{width:100%;gap:1.2rem}.camp-badge-filters{width:100%;display:grid;gap:.6rem}.camp-badge-filter-options{display:flex;flex-wrap:wrap;gap:.4rem}.camp-badge-filter{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .65rem;font-size:var(--font-size-small)}.camp-badge-filter[aria-pressed=true]{color:var(--accent);background:#303c32;border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.camp-badge-filter-piece{display:inline-flex;width:1.5rem;height:1.5rem;flex-shrink:0}.camp-badge-filter-count{min-width:1.4rem;padding:.1rem .3rem;border-radius:.3rem;background:#14201e;font-variant-numeric:tabular-nums;text-align:center}.camp-shop-actions{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;width:100%;padding:.8rem 0}.camp-reroll{font-size:.85rem}.offer-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,12rem),1fr));gap:.8rem;width:100%}.offer-card{display:flex;flex-direction:column;width:auto;min-width:0;flex:unset;border:1px solid #66705d;border-radius:.45rem;background:linear-gradient(145deg,#303c32,#1b2725);padding:1rem;gap:.8rem;text-align:left;box-shadow:inset 0 1px #ebd49a12,0 .2rem .6rem #0002}.offer-card-taken{min-height:7rem;color:var(--ink-soft);background:#15221f;border-style:dashed;box-shadow:none;justify-content:center}.offer-name{color:var(--ink);font-size:1.1rem;line-height:1.3}.offer-name,.equipment-name,.equipment-details-head>strong,.badge-hint-name,.weapon-card-name,.setup-rook-spell-heading>strong,.run-end-row-runes dd,.analysis-reward-badge .analysis-reward-name,.analysis-reward-rune .analysis-reward-name{font-family:var(--font-heading);font-weight:600;overflow-wrap:anywhere;min-width:0}.amount,.clock-value,.elo-pill,.rune-acts{font-family:var(--font-ui);font-variant-numeric:lining-nums tabular-nums}.analysis-reward-name small{font-family:var(--font-ui)}.offer-effect{color:#d0d3c7;line-height:1.65;font-size:.85rem}.offer-foot{margin-top:auto;flex-wrap:wrap;align-items:center}.offer-buy{margin-left:auto}.offer-price{color:var(--gold)}.equipment-art{display:block;width:min(100%,10rem);height:8rem;margin:-.25rem auto 0;object-fit:contain;filter:drop-shadow(0 .35rem .3rem #0005)}.equipment-art-small{width:2.9rem;height:2.9rem;margin:-.15rem 0;flex-shrink:0}.badge-art{--badge-metal: #ebc67d;--badge-enamel: #29382b;--badge-size: 8rem;--badge-pay-size: clamp(1.25rem, calc(var(--badge-size) * .5), 2rem);position:relative;display:inline-grid;flex:none;width:max-content;max-width:100%;padding-right:max(0px,calc(var(--badge-pay-size) - var(--badge-size) * .24));padding-bottom:max(0px,calc(var(--badge-pay-size) - var(--badge-size) * .44));margin:-.15rem auto 0;color:var(--badge-metal);background:radial-gradient(circle,#bd94561f,transparent 70%)}.badge-art-clock{--badge-metal: #a1dfe3;--badge-enamel: #1e353e;background:radial-gradient(circle,#75c6c81f,transparent 70%)}.badge-art-dread{--badge-metal: #dbc1ed;--badge-enamel: #322a40;background:radial-gradient(circle,#bb8fd51f,transparent 70%)}.badge-art-skill{--badge-metal: #a3efd0;--badge-enamel: #173e32;background:radial-gradient(circle,#77d7af26,transparent 70%)}.badge-art-officer{--badge-metal: #f1b68d;--badge-enamel: #463026;background:radial-gradient(circle,#dc916226,transparent 70%)}.badge-art-crest{position:relative;display:block;width:var(--badge-size);aspect-ratio:1;flex:none}.badge-art-frame{display:block;width:100%;height:100%;filter:drop-shadow(0 .25rem .2rem #0006)}.badge-art-metal{fill:#3b3d34;stroke:var(--badge-metal);stroke-width:2}.badge-art-enamel{fill:var(--badge-enamel);stroke:var(--badge-metal);stroke-width:.7}.badge-art-highlight{fill:none;stroke:#fff8db;stroke-width:1;opacity:.55;stroke-linecap:round}.badge-art-rivets{fill:var(--badge-metal);stroke:#182420;stroke-width:.6}.badge-art-flourish{fill:none;stroke:var(--badge-metal);stroke-width:1.2;opacity:.6}.badge-art-symbol{position:absolute;width:44%;height:44%;left:28%;top:24%;fill:none;stroke-width:1.2;filter:drop-shadow(0 2px 0 #070e0bb3) drop-shadow(0 -1px 0 #fff4)}.badge-art-pay{position:absolute;left:calc(var(--badge-size) * .76);top:calc(var(--badge-size) * .56);display:grid;place-items:center;width:var(--badge-pay-size);aspect-ratio:1;border:1px solid var(--badge-metal);border-radius:50%;background:#182420;color:var(--badge-metal);box-shadow:0 0 0 2px #182420,0 .15rem .35rem #0008}.badge-art-pay svg{width:65%;height:65%;fill:currentColor}.badge-art-small{--badge-size: 3rem;margin:0}.equipment-details>.badge-art{--badge-size: 6rem;margin:.6rem auto}.badge-hint>.badge-art{margin:.25rem auto .4rem}.setup-bag{width:100%;justify-content:stretch}.setup-bag>.setup-group-label{width:100%}.setup-bag-badge{display:grid;grid-template-columns:3.875rem minmax(0,1fr);column-gap:.75rem;width:100%;padding:.65rem .75rem;text-align:left;justify-items:start;align-items:center}.setup-bag-badge>.badge-art{grid-column:1;grid-row:1}.setup-bag-badge>span:last-child{grid-column:2;grid-row:1;overflow-wrap:anywhere}.purchase-reason{display:block;flex:1 0 100%;margin:.3rem 0 0;color:#d3c7a9;font-size:var(--font-size-small);font-weight:500;line-height:1.45}.camp-pawn-hire{padding:1rem 0;display:grid;gap:.7rem;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.camp-pawn-hire h3{margin:0;font-size:1rem;display:flex;align-items:center;gap:.5rem}.camp-pawn-hire p{margin:0;color:var(--ink-soft);font-size:.85rem;line-height:1.5}.pawn-hire-action{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}.pawn-hire-badge{display:inline-flex;flex:none;margin-right:.25rem}.pawn-hire-hired{color:var(--ok);font-size:.9rem}.camp-view-tree{width:100%}.camp-owned-runes{padding:1rem}.owned-runes{grid-template-columns:repeat(auto-fit,minmax(min(100%,11rem),1fr))}.owned-runes .offer-card{padding:.8rem}.owned-runes .offer-name{font-size:.95rem}.owned-runes .offer-effect{font-size:var(--font-size-small)}.owned-rune-empty{min-height:6rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;list-style:none;border:1px dashed #596255;border-radius:.4rem;color:#a8b3a1;font-size:var(--font-size-small)}.owned-rune-empty>span:first-child{font-size:1.8rem;color:#8b9b86}.owned-rune-actions{display:flex;gap:.3rem;flex-wrap:wrap}.camp-rune-grip{min-width:2.75rem;padding:.3rem}.camp-actions,.setup-actions{display:flex;width:100%;justify-content:space-between;align-items:center;gap:1rem}.camp-continue,.setup-next,.setup-confirm{margin-left:auto;min-width:12rem}.setup-screen,.match-screen{width:100%;margin:0;padding:0;border:0;background:transparent;border-radius:0;gap:1rem;align-items:start;justify-items:stretch}.setup-layout{display:contents}.setup-preview,.match-screen .board-wrap{width:var(--workshop-board);padding:.5rem;position:relative;top:auto;justify-self:center;border-radius:.6rem;background:linear-gradient(135deg,#72715c,#343e35 40%,#171f1d);box-shadow:0 .7rem 2.5rem #0007,inset 0 1px #d6c99055}.setup-board,.match-screen .board-stage,.match-screen .quick-board{width:100%!important}.setup-board,.match-screen .quick-board{border-radius:.2rem}.setup-heading{padding:1rem;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;text-align:left;gap:.7rem;background:#192624f5;border:1px solid var(--line);border-radius:.5rem}.setup-heading h2{width:100%;font-size:1.5rem}.setup-heading .run-track{order:3;width:100%}.setup-controls{padding:1rem;border:1px solid var(--line);border-radius:.5rem;background:#192624f5;text-align:left;justify-items:stretch}.setup-hint,.setup-note{font-size:.85rem;line-height:1.6;font-weight:500}.setup-steps{gap:.2rem}.setup-step{font-size:var(--font-size-small)}.setup-weapon{display:inline-flex;align-items:center;gap:.5rem;background:#28372f;border-radius:.3rem}.setup-bag-badge,.piece-chip{border-color:#65705d;background-color:#293831;border-radius:.4rem}.setup-pawn-badge-picks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;align-items:stretch}.setup-pawn-badge-picks>.btn{display:flex;flex-direction:column;padding:.6rem .25rem;gap:.45rem;min-width:0;font-size:var(--font-size-small);text-align:center}.setup-pawn-badge-picks>.btn>span:last-child{overflow-wrap:anywhere}.setup-actions{padding-top:.3rem}.setup-rook-spell{display:grid;gap:.65rem;padding:.9rem;border:1px solid var(--line);border-radius:.5rem;background:#101d1b80}.setup-rook-spell.is-active{border-color:#bc9a5e;background:#30382a}.setup-rook-spell-heading{display:flex;gap:.55rem;align-items:center;color:var(--accent)}.setup-rook-spell-heading>span:last-child{margin-left:auto;font-size:var(--font-size-small)}.setup-rook-spell p{margin:0;color:var(--ink-soft);font-size:var(--font-size-small);line-height:1.55}.setup-rook-spell .setup-spell-preview{color:var(--accent)}.setup-rook-spell .setup-spell-returned{color:var(--ink)}.setup-spell-knight>span{display:inline-flex;align-items:center;gap:.35rem}.setup-spell-knight .piece-svg{width:1.6rem;height:1.6rem}.setup-spelled{box-shadow:inset 0 0 0 2px #d2a862}.setup-spell-mark{position:absolute;top:.2rem;right:.2rem;z-index:2;display:grid;place-items:center;width:1.1rem;height:1.1rem;border-radius:50%;background:#28372f;color:#ffda8d;font-size:.85rem;line-height:1;pointer-events:none}:is(.setup-confirm-dialog,.retreat-dialog){width:min(31rem,calc(100% - 2rem));max-height:calc(100dvh - 2rem);margin:auto;padding:0;overflow:auto;color:var(--ink);background:#192623;border:1px solid #9b8358;border-radius:1rem;box-shadow:0 2rem 6rem #0009,0 0 0 5px #dec08b0a;text-align:left;color-scheme:dark}:is(.setup-confirm-dialog,.retreat-dialog)[open]{animation:setup-confirm-enter .2s ease-out}:is(.setup-confirm-dialog,.retreat-dialog)::backdrop{background:#07110ec9;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}:is(.setup-confirm-content,.retreat-dialog-content){position:relative;padding:2rem;background:radial-gradient(ellipse at 50% 0,#d7b77a15,transparent 65%)}:is(.setup-confirm-content,.retreat-dialog-content):before{content:"";position:absolute;top:0;left:25%;right:25%;height:2px;background:linear-gradient(90deg,transparent,#e9bb6d,transparent)}:is(.setup-confirm-close,.retreat-dialog-close){position:absolute;top:.65rem;right:.65rem;display:grid;place-items:center;width:2.75rem;height:2.75rem;padding:0;border:0;border-radius:50%;color:var(--ink-soft);background:transparent;font-size:1.5rem;cursor:pointer}:is(.setup-confirm-close,.retreat-dialog-close):hover{color:var(--ink);background:#ffffff0c}:is(.setup-confirm-emblem,.retreat-dialog-emblem){display:grid;place-items:center;width:3.25rem;height:3.25rem;margin-bottom:1.3rem;border:1px solid #aa8b514d;border-radius:.85rem;color:var(--accent);background:linear-gradient(135deg,#e9bb6d19,#e9bb6d04);box-shadow:inset 0 1px #f5d59815}.setup-confirm-emblem .sym{width:1.55rem;height:1.55rem}.retreat-dialog-emblem svg{width:1.7rem;height:1.7rem}:is(.setup-confirm-eyebrow,.retreat-dialog-eyebrow){margin:0 0 .6rem;color:var(--accent);font-size:var(--font-size-small);font-weight:800;letter-spacing:.17em;text-transform:uppercase}:is(.setup-confirm-dialog,.retreat-dialog) :is(.setup-confirm-content,.retreat-dialog-content) h2{margin:0;max-width:20rem;color:var(--ink);font-size:clamp(1.6rem,5vw,1.9rem);line-height:1.2;letter-spacing:-.02em;text-wrap:balance}:is(.setup-confirm-description,.retreat-dialog-description){margin:.85rem 0 1.5rem;color:var(--ink-soft);font-size:.9rem;line-height:1.7}.setup-confirm-material{padding:1.1rem;border:1px solid #d0b57c26;border-radius:.65rem;background:#0b18164d}.setup-confirm-material-heading{display:flex;align-items:center;justify-content:space-between;gap:.5rem;color:var(--ink-soft);font-size:var(--font-size-small)}.setup-confirm-capacity{padding:.25rem .5rem;border-radius:.3rem;color:var(--accent);background:#e9bb6d10;white-space:nowrap}.setup-confirm-total{display:flex;align-items:baseline;gap:.45rem;margin:.5rem 0 .8rem;font-variant-numeric:tabular-nums}.setup-confirm-total .sym{align-self:center;margin-right:.2rem;color:var(--accent)}.setup-confirm-total strong{font-size:2.1rem;font-weight:600;line-height:1.2}.setup-confirm-total>span{color:var(--ink-soft);font-size:1rem}.setup-confirm-meter{display:block;-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:.35rem;overflow:hidden;border:0;border-radius:1rem;background:#34433a}.setup-confirm-meter::-webkit-meter-bar{height:.35rem;border:0;border-radius:1rem;background:#34433a;box-shadow:none}.setup-confirm-meter::-webkit-meter-optimum-value{border-radius:1rem;background:linear-gradient(90deg,#a8844e,#e7c78a)}.setup-confirm-meter::-moz-meter-bar{border-radius:1rem;background:linear-gradient(90deg,#a8844e,#e7c78a)}.setup-confirm-reinforcement{display:flex;align-items:center;gap:.8rem;margin-top:1.1rem;padding-top:1rem;border-top:1px solid #d0b57c1c}.setup-confirm-piece{display:grid;place-items:center;flex:0 0 2.9rem;height:2.9rem;border:1px dashed #b8b49455;border-radius:.45rem;background:#a9b0900a}.setup-confirm-piece .piece-svg{width:2.4rem;height:2.4rem}.setup-confirm-piece svg{display:block;width:100%;height:100%;filter:drop-shadow(0 2px 2px #0004)}.setup-confirm-reinforcement>div{display:grid;gap:.3rem}.setup-confirm-piece-hint{color:var(--ink-soft);font-size:var(--font-size-small)}.setup-confirm-reinforcement strong{font-size:.95rem;font-weight:600;text-transform:capitalize}.setup-confirm-reinforcement>.amount{margin-left:auto;color:var(--accent);font-size:.9rem}:is(.setup-confirm-dialog-actions,.retreat-dialog-actions){display:grid;grid-template-columns:1.15fr 1fr;gap:.65rem;margin-top:1.5rem}:is(.setup-confirm-dialog-actions,.retreat-dialog-actions) .btn{min-height:3rem;padding:.65rem .7rem;font-size:var(--font-size-small);line-height:1.4}.retreat-dialog-actions .retreat-dialog-confirm{color:var(--danger);border-color:#b97d6d80;background:#aa504010}.retreat-dialog-actions .retreat-dialog-confirm:hover{color:#ffd3c9;border-color:var(--danger);background:#aa50402b}.setup-confirm-dialog-actions .setup-confirm-anyway{border-color:#75817366;background:transparent;color:var(--ink-soft)}.setup-confirm-dialog-actions .setup-confirm-anyway:hover{color:var(--ink);background:#ffffff08}.setup-confirm-anyway>span{margin-left:.15rem}@keyframes setup-confirm-enter{0%{opacity:0;transform:translateY(.6rem) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:420px){:is(.setup-confirm-content,.retreat-dialog-content){padding:1.5rem}:is(.setup-confirm-dialog-actions,.retreat-dialog-actions){grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){:is(.setup-confirm-dialog,.retreat-dialog)[open]{animation:none}}.match-header{padding:0;border:0;border-radius:.5rem;background:transparent;gap:.5rem}.match-header h2{margin:0;font-size:1.5rem}.match-title-accessible{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.badge-effects{position:relative;z-index:8;width:100%;min-width:0}.badge-effects-summary{display:flex;align-items:center;gap:.5rem;width:100%;height:3.375rem;padding:.4rem .75rem;border:1px solid var(--line);border-radius:.5rem;background:#192624f5;color:var(--ink);text-align:left;cursor:pointer}.badge-effects-summary:disabled{opacity:1;cursor:default}.badge-effects-summary.has-effects{border-color:#a18a5c}.badge-effects-summary.has-effects:hover{background:#28372f}.badge-effects-content{display:grid;flex:1;min-width:0;gap:.2rem}.badge-effects-label{color:var(--accent);font-size:var(--font-size-small);font-weight:700;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:1.2}.badge-effects-totals{display:flex;gap:.65rem;align-items:center;min-width:0;height:1.25rem;font-size:clamp(var(--font-size-small),3.5vw,.95rem);font-weight:700}.badge-effects-totals>span{min-width:0}.badge-effects-totals .amount-gold{color:var(--gold)}.badge-effects-totals .amount-clock{color:var(--ok)}.badge-effects-totals .amount-might{color:#d2b3ed}.badge-effects-empty{font-size:var(--font-size-small);font-weight:400;color:var(--ink-soft)}.badge-effects-info{flex:0 0 auto;color:var(--ink-soft);font-size:1rem}.badge-effects-details{position:absolute;top:calc(100% + .4rem);left:0;width:100%;max-height:min(24rem,calc(100dvh - 12rem));overflow-y:auto;overscroll-behavior:contain;padding:.75rem;border:1px solid #a18a5c;border-radius:.5rem;background:#192624;box-shadow:0 .6rem 1.5rem #0008}.badge-effects-details-heading{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.badge-effects-details h3{margin:0;font-size:.85rem;color:var(--accent)}.badge-effects-details ul{display:grid;gap:.65rem;margin:.5rem 0 0;padding:0;list-style:none}.badge-effects-details li{display:grid;gap:.2rem;font-size:var(--font-size-small);line-height:1.5;overflow-wrap:anywhere}.badge-effects-details small{margin-left:.3rem;color:var(--ink-soft)}.badge-effects-details strong{color:var(--ink)}.match-status,.match-status.weapon-mode{display:flex;flex-wrap:nowrap;align-items:center;gap:.5rem;width:100%;height:calc(3em + 1rem + 2px);margin:0;padding:.5rem .75rem;background:#1b302bef;border:1px solid #6c8c76;border-radius:.4rem;text-align:left;line-height:1.5}.match-status-text{flex:1;min-width:0}.match-status .weapon-mode-btn{flex:0 0 auto;min-height:2.75rem;padding-inline:.6rem}.match-inspector{display:grid;gap:.75rem;width:100%;min-width:0}.match-inspector:empty{display:none}.match-screen>.badge-details{display:contents}.equipment-details{margin:0;padding:1rem;background:#28372f;border:1px solid #a58e60;border-radius:.4rem;text-align:left}.equipment-details:focus-visible{outline:3px solid #a2e0d6;outline-offset:3px}.equipment-effect{line-height:1.65;color:#e4e5d9}.equipment-close,.equipment-inspect{min-width:2.75rem;min-height:2.75rem;border-radius:.35rem;background:#23362f;border-color:#8f9b7c;color:var(--ink)}.weapon-bar{padding:.9rem;width:100%;background:#192624f5;border:1px solid var(--line);border-radius:.4rem;gap:.6rem}.weapon-bar-uses{width:100%;margin:0 0 .3rem}.weapon-control{width:100%;display:flex;gap:.4rem}.weapon-btn{flex:1;padding:.5rem;justify-content:flex-start;text-align:left;font-size:.85rem}.match-recent{padding:.9rem 1rem;width:100%;border:1px solid #586659;border-radius:.4rem;background:#182621f5}.match-recent h3{margin:0 0 .6rem;font-size:var(--font-size-small);letter-spacing:.05em;color:var(--accent)}.match-recent p,.match-recent li{margin:.3rem 0;font-size:var(--font-size-small);color:var(--ink-soft);line-height:1.55}.match-recent ul{margin:0;padding:0;list-style:none}.match-recent li{display:grid;gap:.1rem}.match-recent strong{color:var(--ink);font-weight:600}.match-recent small{margin-left:.3rem}.rune-effect{display:flex;align-items:flex-start;gap:.55rem;min-width:0;text-align:left}.rune-effect>.rune-sign{width:1.5rem;height:1.5rem;flex:0 0 1.5rem;color:var(--accent);fill:currentColor;margin-top:.1rem}.rune-effect-body{display:grid;gap:.1rem;min-width:0;line-height:1.4;overflow-wrap:anywhere}.rune-effect-name{color:var(--accent);font-size:.85rem;font-weight:700}.rune-effect-copy{color:var(--ink-soft);font-size:var(--font-size-small);font-weight:500}.rune-effect-pay{color:var(--ok);font-size:var(--font-size-small);font-weight:600}.match-recent .rune-effect-pay{color:var(--ok)}.match-recent .rune-effect-copy{margin-left:0}.match-recent .recent-runes{display:grid;gap:.5rem;margin-top:.5rem}.match-recent .recent-rune{position:relative;isolation:isolate;overflow:hidden;margin:0;padding:.45rem .55rem;border:1px solid #e9bb6d26;border-radius:.35rem;background:#e9bb6d08}.recent-rune.is-rune-triggered{animation:recent-rune-glow 1.2s ease-out}.recent-rune.is-rune-triggered:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:linear-gradient(105deg,transparent 20%,#ffe6ab38 50%,transparent 80%);opacity:0;animation:recent-rune-sweep .85s ease-out}.recent-rune.is-rune-triggered .rune-sign{animation:recent-rune-sign .7s ease-out}@keyframes recent-rune-glow{0%{border-color:var(--accent);background:#e9bb6d30;box-shadow:0 0 1rem #e9bb6d40,inset 0 0 .65rem #e9bb6d20}25%{border-color:var(--accent);background:#e9bb6d22;box-shadow:0 0 .8rem #e9bb6d30,inset 0 0 .65rem #e9bb6d14}to{border-color:#e9bb6d26;background:#e9bb6d08;box-shadow:0 0 0 transparent,inset 0 0 0 transparent}}@keyframes recent-rune-sweep{0%{opacity:0;transform:translate(-100%)}20%{opacity:1}to{opacity:0;transform:translate(100%)}}@keyframes recent-rune-sign{0%{transform:scale(.85);filter:drop-shadow(0 0 0 transparent)}30%{transform:scale(1.25);filter:drop-shadow(0 0 .4rem var(--accent))}to{transform:scale(1);filter:drop-shadow(0 0 0 transparent)}}.match-board{width:var(--workshop-board);min-width:0;justify-self:center}.rune-notifications{display:flex;flex-wrap:wrap;align-content:flex-start;gap:.35rem;width:100%;min-height:2.75rem;padding-top:.5rem}.rune-notice{max-width:100%;padding:.3rem .5rem;border:1px solid #a58e60;border-radius:.35rem;background:#14251d}.rune-effect-compact{align-items:center;gap:.4rem}.rune-effect-compact>.rune-sign{width:1.2rem;height:1.2rem;flex-basis:1.2rem;margin:0}.rune-effect-compact .rune-effect-body{display:block}.rune-notice .rune-effect{animation:rune-notice-in .22s ease-out}@keyframes rune-notice-in{0%{opacity:0;transform:translateY(-.35rem)}to{opacity:1;transform:translateY(0)}}.match-actions{border-top:1px solid var(--line);padding-top:.9rem;width:100%}.match-actions .btn{background:#172420;color:var(--ink-soft);font-size:var(--font-size-small)}.match-result{padding:1rem;background:#21382c;border:1px solid var(--ok);border-radius:.4rem}.rune-bar{width:100%;padding:1rem;margin:0;display:flex;flex-wrap:wrap;justify-content:center;gap:.8rem;background:#182623f5;border:1px solid #73775b;border-radius:.5rem}.rune-slot{border-radius:.45rem;background:linear-gradient(145deg,#394535,#1f3029);border-color:#89936f}.rune-slot-free{border-style:dashed;color:#85977d;background:#14231f;font-size:1.6rem}.start-screen{width:min(100%,46rem);margin:clamp(1rem,8vh,6rem) auto 2rem;padding:clamp(1.5rem,4vw,3.5rem);border:1px solid #9b916b;border-radius:.7rem;background:linear-gradient(150deg,#142421ee,#1d2925f5);box-shadow:0 1rem 4rem #0008;gap:1.3rem}.start-title{max-width:7em;font-size:clamp(2.5rem,7vw,4rem);line-height:1.05;letter-spacing:.04em;text-transform:uppercase;text-wrap:balance;color:#f1d6a0;text-shadow:0 3px 1px #0008}.start-pitch{line-height:1.7;max-width:31rem}.start-hint{font-size:var(--font-size-small)}.start-difficulty .btn,.start-clock .btn{font-size:.9rem}.run-history{width:100%;text-align:left}.history-entry{border-color:var(--line);background:#172620}.result-screen,.run-end{padding:clamp(1rem,3vw,2rem);border:1px solid #818062;border-radius:.6rem;background:#192624f5;box-shadow:0 1rem 3rem #0005}.result-screen{width:min(100%,45rem)}.result-screen h2,.run-end h2{color:var(--accent)}.result-outcome{font-family:var(--font-heading);font-weight:700;font-size:2.6rem}.result-highlights{display:flex;flex-wrap:wrap;justify-content:center;gap:1.5rem;padding:1.3rem;width:100%;background:#2a3b2d;border:1px solid #798468;border-radius:.4rem;font-size:1.6rem;color:var(--gold);font-weight:800}.result-details{width:100%;text-align:left}.result-details>summary{cursor:pointer;padding:1rem 0;color:var(--accent);min-height:2.75rem}.result-list{width:100%}.result-list>div{min-width:0;flex-wrap:wrap}.result-list dd{min-width:0;overflow-wrap:anywhere}.result-list>.result-row-runes{align-items:flex-start}.result-row-runes dd{flex:1;max-width:30rem}.result-runes{display:grid;gap:.65rem;margin:0;padding:.65rem .8rem;list-style:none;border:1px solid var(--line);border-radius:.4rem;background:#14231f}.result-rune-total{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:.75rem;margin-top:.5rem}.result-rune-total:empty{display:none}@media(min-width:64rem){.phase-setup,.phase-match{--workshop-width: 84rem}.setup-screen,.match-screen{--desktop-board: min(44rem, max(24rem, calc(100dvh - 12rem) ));--workshop-board: min(100%, var(--desktop-board));--workshop-side: 24rem}.camp-screen{grid-template-columns:minmax(0,1fr) var(--workshop-side);grid-template-areas:"heading heading" "market context" "runes runes" "actions actions";align-items:start}.camp-heading{grid-area:heading}.camp-market{grid-area:market}.camp-context{grid-area:context}.camp-owned-runes{grid-area:runes}.camp-screen>.camp-actions{grid-area:actions}.camp-context .camp-opponent{flex-direction:column}.setup-screen,.match-screen{grid-template-columns:minmax(0,var(--desktop-board)) var(--workshop-side);column-gap:1.6rem;justify-content:center}.setup-screen{grid-template-areas:"board heading" "board controls" "board spare" "runes runes" "actions actions";grid-template-rows:auto auto 1fr auto auto}.setup-preview{grid-area:board}.setup-heading{grid-area:heading}.setup-controls{grid-area:controls}.setup-screen>.rune-bar{grid-area:runes}.setup-actions{grid-area:actions}.match-screen{grid-template-areas:"board header" "board status" "board weapons" "board inspect" "board recent" "board actions" "board spare" "runes runes";grid-template-rows:auto auto auto auto auto auto 1fr auto}.match-screen .match-board{grid-area:board}.match-screen .match-header{grid-area:header;align-items:flex-start}.match-screen .match-status{grid-area:status}.match-screen .weapon-bar{grid-area:weapons}.match-screen .match-inspector{grid-area:inspect}.match-screen .match-recent{grid-area:recent}.match-screen .match-actions,.match-screen .match-result{grid-area:actions}.match-screen .rune-bar{grid-area:runes;justify-content:flex-start}.setup-screen>.rune-bar{justify-content:flex-start}}@media(max-width:63.999rem){.app-main{max-width:46rem}.camp-heading{flex-wrap:wrap}.camp-context{order:1}.camp-market{order:2}.camp-owned-runes{order:3}.camp-actions{order:4}.setup-heading{order:0}.setup-preview{order:1}.setup-controls{order:2}.setup-screen>.rune-bar{order:3}.setup-actions{order:4}.match-header{order:0}.match-screen .match-board{order:1}.match-status{order:2}.weapon-bar{order:3}.match-inspector{order:4}.match-recent{order:5}.match-screen .rune-bar{order:6}.match-actions,.match-result{order:7}}@media(max-width:40rem){body{background-attachment:scroll}.app-main{width:calc(100% - 1rem);padding-top:1rem}.hud,.hud.hud-compact{width:100%;padding:.6rem;grid-template-columns:minmax(5rem,1fr) auto auto;grid-template-areas:"clock resources settings";gap:.4rem;min-height:4.5rem;border-radius:0}.hud-brand{display:none}.hud .clock-value{font-size:1.8rem}.hud:has(.hud-elo){grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"clock resources" "clock settings"}.hud:has(.hud-elo) .hud-row,.hud:has(.hud-elo) .game-settings{justify-self:end}.hud-elo{font-size:1.75rem;padding:.3rem .6rem}.hud-compact .clock-value{font-size:1.4rem}.hud-compact .hud-elo{font-size:1.3rem;padding:.2rem .5rem}.hud .hud-row{gap:.2rem;flex-direction:column}.hud .hud-gold{font-size:1.1rem}.hud-difficulty{font-size:var(--font-size-small)}.camp-market,.camp-context{padding:.8rem}.camp-heading{padding:0 .3rem}.camp-tab{font-size:var(--font-size-small);padding:.5rem}.offer-cards{grid-template-columns:repeat(auto-fit,minmax(min(100%,10rem),1fr));gap:.6rem}.offer-card{padding:.8rem}.owned-runes{grid-template-columns:repeat(2,minmax(0,1fr))}.owned-rune-empty{min-height:4rem}.camp-continue,.setup-next,.setup-confirm{min-width:0}.camp-actions,.setup-actions{gap:.5rem}.camp-actions .btn,.setup-actions .btn{font-size:var(--font-size-small)}.rune-bar{gap:.5rem;padding:.7rem}.rune-slot{flex-shrink:0}.equipment-art{height:7rem}.equipment-art-small{width:2.9rem;height:2.9rem}.result-highlights{font-size:1.3rem}}@media(prefers-reduced-motion:reduce){.recent-rune.is-rune-triggered,.recent-rune.is-rune-triggered .rune-sign{animation:none}.recent-rune.is-rune-triggered{border-color:var(--accent);background:#e9bb6d18}.recent-rune.is-rune-triggered:after{animation:none}.rune-notice .rune-effect{animation:none}.elo-flash,.elo-hit>.amount-value,.elo-drop{animation:none!important}.elo-flash{opacity:.65}*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.rune-slot.is-acting{outline:2px solid var(--accent);outline-offset:2px}}:root{--arrow-best: #74b4f0;--arrow-better: #62d06e;--analysis-eval: 1.5rem}.analysis-screen{--analysis-board: min(35rem, max(19rem, calc(100dvh - 15rem) ));display:grid;gap:1rem;width:min(100%,84rem);margin:0 auto;padding:clamp(.75rem,2.5vw,1.5rem);border:1px solid #818062;border-radius:.6rem;background:#192624f5;box-shadow:0 1rem 3rem #0005}.analysis-header{display:flex;flex-wrap:wrap;align-items:flex-start;gap:.75rem 1rem}.analysis-heading{display:grid;gap:.2rem;min-width:0}.analysis-heading h2{margin:0;color:var(--accent);font-size:clamp(1.2rem,3vw,1.6rem)}.analysis-eyebrow{margin:0;color:var(--ink-soft);font-size:var(--font-size-small);letter-spacing:.08em;text-transform:uppercase}.analysis-outcome{margin:0;color:var(--ink-soft)}.analysis-win .analysis-outcome strong{color:var(--ok)}.analysis-draw .analysis-outcome strong{color:var(--accent)}.analysis-loss .analysis-outcome strong{color:var(--danger)}.analysis-games{display:flex;flex-wrap:wrap;gap:.35rem}.analysis-game{min-width:2.75rem;padding:0 .6rem;font-variant-numeric:tabular-nums;border-bottom-width:3px}.analysis-game-win{border-bottom-color:var(--ok)}.analysis-game-draw{border-bottom-color:var(--accent)}.analysis-game-loss{border-bottom-color:var(--danger)}.analysis-game sup{font-size:.65em;margin-left:.1em}.analysis-main{display:grid;gap:1rem;min-width:0}.analysis-board-area{display:grid;gap:1rem;justify-items:center;width:min(100%,var(--analysis-board));min-width:0;margin-inline:auto}.analysis-board-row{display:flex;gap:.5rem;align-items:stretch;width:100%;min-width:0}.analysis-board{width:100%;min-width:0;flex:1 1 auto;padding:.5rem;border-radius:.6rem;background:linear-gradient(135deg,#72715c,#343e35 40%,#171f1d);box-shadow:0 .7rem 2.5rem #0007,inset 0 1px #d6c99055}.analysis-board .board-stage,.analysis-board .quick-board{width:100%!important}.analysis-board .quick-square{cursor:default}.board-arrows{position:absolute;z-index:7;top:.22rem;right:.22rem;bottom:.22rem;left:.22rem;width:calc(100% - .44rem);height:calc(100% - .44rem);pointer-events:none;overflow:visible}.board-arrow{opacity:.82}.board-arrow-best{color:var(--arrow-best)}.board-arrow-better{color:var(--arrow-better)}.arrow-sign{display:inline-block;width:1.1em;height:.7em;margin-right:.3em;vertical-align:.05em}.arrow-sign-best{color:var(--arrow-best)}.arrow-sign-better{color:var(--arrow-better)}.analysis-eval{position:relative;flex:0 0 var(--analysis-eval);overflow:hidden;border:1px solid #67705c;border-radius:.35rem;background:#20262a}.analysis-eval-white{position:absolute;left:0;right:0;bottom:0;background:#ece6d6;transition:height .35s ease-out}.analysis-eval.is-pending .analysis-eval-white{opacity:.45}.analysis-eval-score{position:absolute;left:0;right:0;z-index:1;padding:.2rem 0;font-size:.62rem;font-weight:800;text-align:center;font-variant-numeric:tabular-nums;writing-mode:vertical-rl;transform:rotate(180deg)}.analysis-eval-score.is-white{bottom:0;color:#20262a}.analysis-eval-score.is-black{top:0;color:#ece6d6}.analysis-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:center;gap:.35rem;width:calc(100% - var(--analysis-eval) - .5rem);justify-self:end;margin-left:auto;padding:.5rem;border:1px solid var(--line);border-radius:.5rem;background:#13242bee}.analysis-nav .btn{min-width:0;min-height:2.75rem;padding:0}.analysis-side{display:grid;align-content:start;gap:.75rem;min-width:0}.analysis-current{container-type:inline-size;min-width:0;overflow:hidden;border:1px solid #5d6b5e;border-radius:.65rem;background:#172620;box-shadow:0 .3rem 1rem #0002}.analysis-current p{margin:0}.analysis-current-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.65rem 1rem;padding:1rem;background:linear-gradient(120deg,#d7bd7520,transparent)}.analysis-current-move{display:grid;gap:.25rem;min-width:0}.analysis-section-label{margin:0;color:var(--ink-soft);font-size:var(--font-size-small);font-weight:700;letter-spacing:.075em;text-transform:uppercase}.analysis-current-text{color:var(--ink);font-size:1.45rem;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.analysis-move-context{display:grid;justify-items:end;gap:.35rem;color:var(--ink-soft);font-size:var(--font-size-small)}.analysis-who{display:inline-flex;align-items:center;gap:.4rem;color:var(--ink)}.analysis-who:before{content:"";width:.55rem;height:.55rem;border:1px solid #9da798;border-radius:50%;background:#ece6d6}.analysis-who-b:before{background:#20262a}.analysis-verdict{margin:0 1rem 1rem;padding:.7rem .8rem;border-left:3px solid currentColor;border-radius:.25rem .4rem .4rem .25rem;background:#ffffff05}.analysis-verdict-title{display:flex;align-items:center;gap:.5rem;font-size:.95rem;font-weight:700}.analysis-verdict-sign{min-width:1.4rem;font-size:1.05rem;font-weight:800}.analysis-better{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.35rem .6rem;margin-top:.6rem!important;color:var(--arrow-better);font-size:.85rem}.analysis-better strong,.analysis-best strong{font-size:1rem;font-variant-numeric:tabular-nums}.analysis-section{display:grid;gap:.65rem;padding:.9rem 1rem;border-top:1px solid #b2c6af20}.analysis-eval-line{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.4rem;color:var(--ink-soft);font-size:.85rem}.analysis-score{display:flex;flex-wrap:wrap;align-items:baseline;gap:.8rem}.analysis-score strong{color:var(--ink);font-size:1.45rem;font-variant-numeric:tabular-nums}.analysis-depth{color:var(--ink-soft);font-size:var(--font-size-small)}.analysis-best{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.4rem .75rem;padding:.6rem .7rem;border-radius:.35rem;background:#74b4f00b;color:var(--arrow-best)}.analysis-best-label{font-size:var(--font-size-small)}.analysis-summary{display:grid;gap:.6rem;margin:0;padding:.85rem 1rem;border:1px solid #b2c6af20;border-radius:.5rem;background:#131d1e80;color:var(--ink-soft);font-size:.85rem}.analysis-verdict-counts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;list-style:none;padding:0;margin:0}.analysis-verdict-count{display:grid;gap:.15rem;min-width:0}.analysis-verdict-count+.analysis-verdict-count{padding-left:.5rem;border-left:1px solid #b2c6af20}.analysis-verdict-count strong{font-size:1.2rem;font-variant-numeric:tabular-nums}.analysis-verdict-count span{color:var(--ink-soft);font-size:var(--font-size-small);overflow-wrap:anywhere}.analysis-progress{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;font-size:var(--font-size-small)}.analysis-progress progress{flex:1;min-width:3rem;width:5rem;height:.3rem;overflow:hidden;border:0;border-radius:1rem;background:#ffffff12;color:var(--arrow-best);accent-color:var(--arrow-best)}.analysis-progress progress::-webkit-progress-bar{background:#ffffff12;border-radius:1rem}.analysis-progress progress::-webkit-progress-value{background:var(--arrow-best);border-radius:1rem}.analysis-progress progress::-moz-progress-bar{background:var(--arrow-best);border-radius:1rem}.analysis-notes{display:grid;gap:.3rem;margin:0;padding:0;list-style:none}.analysis-note{display:flex;align-items:center;gap:.6rem;font-size:.85rem;line-height:1.5}.analysis-note .equipment-art{width:1.7rem;height:1.7rem;flex:0 0 1.7rem;border-radius:.25rem}.analysis-move-table{min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:.5rem;background:#131d1e}.analysis-move-table-heading{display:grid;grid-template-columns:2rem minmax(0,1fr) minmax(0,1fr);gap:.2rem;padding:.65rem .35rem;border-bottom:1px solid #b2c6af20;color:var(--ink-soft);font-size:var(--font-size-small)}.analysis-move-table-heading>span{display:flex;align-items:center;justify-content:space-between;gap:.35rem;padding:0 .4rem}.analysis-move-table-heading>span:first-child{justify-content:flex-end}.analysis-move-table-heading .sym{font-size:.9rem}.analysis-moves{position:relative;display:grid;gap:.15rem;margin:0;padding:.35rem;list-style:none;max-height:min(16rem,35dvh);overflow-y:auto;scrollbar-width:thin}.analysis-row:nth-child(2n){background:#ffffff03;border-radius:.3rem}.analysis-row{display:grid;grid-template-columns:2rem minmax(0,1fr) minmax(0,1fr);gap:.2rem;align-items:center}.analysis-number{color:var(--ink-soft);font-size:var(--font-size-small);text-align:right;font-variant-numeric:tabular-nums}.analysis-move{display:flex;align-items:center;gap:.25rem;min-width:0;min-height:2.25rem;padding:.2rem .4rem;border:1px solid transparent;border-radius:.3rem;background:none;color:var(--ink);text-align:left;cursor:pointer;font-variant-numeric:tabular-nums}.analysis-move:hover{border-color:#67705c}.analysis-move:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.analysis-move.is-current{border-color:var(--accent);background:#2b3a2f}.analysis-move-empty{color:var(--ink-soft);cursor:default}.analysis-move-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.analysis-move-meta{margin-left:auto;padding-left:.2rem;color:var(--ink-soft);font-size:var(--font-size-small);white-space:nowrap}.analysis-mark{font-weight:800}.analysis-weapon{display:inline-flex;flex:0 0 auto}.analysis-weapon .equipment-art{width:1.15rem;height:1.15rem;border-radius:.2rem}.analysis-reward-mark{flex:0 0 auto;color:var(--gold);font-size:.75rem;line-height:1}.analysis-reward-details{border-top:1px solid #b2c6af20;background:#00000010}.analysis-reward-details>summary{display:grid;gap:.6rem;min-height:2.75rem;padding:.85rem 1rem;cursor:pointer;list-style:none}.analysis-reward-details>summary::-webkit-details-marker{display:none}.analysis-reward-details>summary:hover{background:#ffffff05}.analysis-reward-details>summary:focus-visible{outline-offset:-3px}.analysis-reward-heading{display:flex;justify-content:space-between;align-items:center;gap:.5rem;color:var(--ink);font-size:var(--font-size-small);font-weight:700}.analysis-disclosure-chevron{font-size:1.2rem;line-height:1}.analysis-reward-details[open] .analysis-disclosure-chevron{transform:rotate(180deg)}.analysis-reward-total{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .75rem;font-size:1rem;font-weight:700}.analysis-reward-total:empty{display:none}.analysis-rewards{display:grid;gap:0;margin:0;padding:0 1rem .5rem;list-style:none}.analysis-reward{display:grid;grid-template-columns:1.5rem minmax(0,1fr) fit-content(48%);align-items:center;gap:.35rem .5rem;padding:.65rem 0;border-top:1px solid #b2c6af18;font-size:var(--font-size-small)}.analysis-reward-sign{display:inline-grid;place-items:center;font-size:1.05rem}.analysis-reward-sign .sym-material{color:#e0a640}.analysis-reward-sign .rune-sign{width:1.25rem;height:1.25rem;color:var(--accent);fill:currentColor}.analysis-reward-name{min-width:0;overflow-wrap:anywhere}.analysis-reward-name small{color:var(--ink-soft);font-variant-numeric:tabular-nums}.analysis-reward-pays{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.2rem .6rem;font-weight:700}.analysis-reward-amount{display:inline-flex;flex-wrap:wrap;align-items:center;gap:.25rem}.analysis-reward-scope{color:var(--ink-soft);font-size:var(--font-size-small);font-weight:500}.analysis-reward-gold{color:var(--gold)}.analysis-reward-clock{color:var(--ok)}.analysis-reward-elo,.analysis-reward-wear{color:#ddbee9}.analysis-reward-points{color:var(--skill)}.analysis-reward-none{color:var(--ink-soft);font-size:var(--font-size-small);font-weight:500;text-align:right}@container (max-width: 22rem){.analysis-reward{grid-template-columns:1.5rem minmax(0,1fr)}.analysis-reward-pays{grid-column:2;justify-content:flex-start}.analysis-reward-none{text-align:left}}.end-marks{position:absolute;z-index:8;top:.22rem;right:.22rem;bottom:.22rem;left:.22rem;pointer-events:none}.end-mark-square{position:absolute;container-type:size}.end-mark{position:absolute;top:-8cqmin;right:-8cqmin;display:grid;place-items:center;width:38cqmin;height:38cqmin;border-radius:50%;border:max(1px,2.5cqmin) solid #10181a;color:#fff;font-weight:900;line-height:1;box-shadow:0 .1rem .35rem #000a}.end-mark svg{width:64%;height:64%;fill:currentColor}.end-mark-text{font-size:26cqmin}.end-mark-win{background:#3f9e5c}.end-mark-mate,.end-mark-resign,.end-mark-time{background:#d4483c}.end-mark-draw{background:#7d8580}.weapon-card{position:fixed;z-index:65;display:grid;gap:.55rem;width:max-content;max-width:min(20rem,calc(100vw - 1rem));padding:.6rem .75rem;border:1px solid #818062;border-radius:.5rem;background:#1d2b28;color:var(--ink);font-size:.85rem;line-height:1.35;box-shadow:0 .6rem 1.6rem #000a;pointer-events:none}.weapon-card-item{display:grid;grid-template-columns:2.5rem minmax(0,1fr);gap:.6rem;align-items:start}.weapon-card .equipment-art{width:2.5rem;height:2.5rem;border-radius:.3rem}.weapon-card-text{display:grid;gap:.15rem;min-width:0}.weapon-card-name{color:var(--accent)}.weapon-card-effect{color:var(--ink-soft);font-size:var(--font-size-small)}.verdict-inaccuracy,.verdict-inaccuracy .analysis-mark{color:#e8cf6a}.verdict-mistake,.verdict-mistake .analysis-mark{color:#f0a052}.verdict-blunder,.verdict-blunder .analysis-mark{color:var(--danger)}.analysis-verdict.verdict-best{color:var(--ok)}.result-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem}.archived-games{display:flex;flex-wrap:wrap;gap:.35rem;margin:.4rem 0 0;padding:0;list-style:none}.archived-game{min-height:2.75rem;padding:0 .7rem;font-size:.85rem;border-bottom-width:3px}.archived-game-win{border-bottom-color:var(--ok)}.archived-game-draw{border-bottom-color:var(--accent)}.archived-game-loss{border-bottom-color:var(--danger)}.history-games{flex-basis:100%}.history-games>summary{cursor:pointer;color:var(--accent);padding:.7rem 0}.run-end-games{width:100%;text-align:left}.run-end-games h3{margin:0;font-size:1rem;color:var(--accent)}.match-board-row{display:flex;gap:.5rem;align-items:stretch;justify-content:center;width:100%}.match-board-row>.board-wrap{flex:0 1 auto}.match-screen .match-board-row.has-eval>.board-wrap{width:calc(var(--workshop-board) - var(--analysis-eval) - .5rem)}.match-screen.is-over .board-wrap-ended{filter:none}.match-board>.analysis-nav{margin-top:1.75rem}.match-screen.is-over .rune-notifications:empty{display:none}.match-analysis{display:grid;gap:.75rem;width:100%;min-width:0;align-content:start}.match-screen.is-over .match-result{justify-content:space-between;gap:.75rem}.match-continue{min-width:8rem}.match-screen.is-over .match-header{display:contents}.match-screen>.match-status.is-ended{position:absolute;width:1px;height:1px;padding:0;border:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}@media(min-width:64rem){.match-screen.is-over{grid-template-areas:"board analysis" "board actions" "board inspect" "board spare" "runes runes";grid-template-rows:auto auto auto 1fr auto}.match-screen .match-analysis{grid-area:analysis}.analysis-screen{--analysis-board: min(44rem, max(24rem, calc(100dvh - 12rem) ))}.analysis-main{grid-template-columns:minmax(0,var(--analysis-board)) minmax(18rem,1fr);align-items:start}}@media(max-width:63.999rem){.match-screen .match-analysis{order:3}.match-screen.is-over .match-result{order:4}.match-screen.is-over .match-inspector{order:5}}@media(max-width:63.999rem)and (max-height:30rem){.match-screen.is-over{grid-template-areas:"board analysis" "board actions" "board inspect" "runes runes"}.match-screen .match-analysis{grid-area:analysis}.analysis-nav{width:100%;gap:.2rem;padding:.35rem}}@media(max-width:40rem){.analysis-nav{width:100%;gap:.2rem;padding:.35rem}.analysis-move{display:grid;grid-template-columns:minmax(0,1fr) repeat(3,auto);min-height:2.75rem;gap:.15rem}.analysis-move-text{font-size:.9rem;white-space:normal;overflow:visible;overflow-wrap:anywhere}.analysis-move-meta{grid-column:1 / -1;margin-left:0;padding-left:0}}@media(prefers-reduced-motion:reduce){.analysis-eval-white{transition:none}}body{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.camp-context-toggle{display:none}.camp-context-content{display:grid;gap:1rem;min-width:0}.camp-badge-select{display:none}.phase-camp .hud{position:sticky;top:0;flex-shrink:0}.phase-setup .hud,.phase-skillTree .hud{position:relative}@media(max-width:63.999rem){html{scroll-padding-top:6.5rem;scroll-padding-bottom:7rem}.phase-camp .app-main,.phase-setup .app-main,.phase-skillTree .app-main{padding-bottom:calc(7rem + env(safe-area-inset-bottom))}.camp-screen>.camp-actions,.setup-actions{position:fixed;z-index:9;left:max(.5rem,env(safe-area-inset-left));right:max(.5rem,env(safe-area-inset-right));bottom:max(.5rem,env(safe-area-inset-bottom));width:auto;max-width:46rem;margin:0 auto;padding:.7rem .75rem;border:1px solid #72765a;border-radius:.5rem;background:#132020;box-shadow:0 -.35rem 1.25rem #0005;gap:.75rem}.camp-continue{width:100%}.camp-actions .camp-continue{min-height:3rem;font-size:1rem}.setup-actions .btn{flex:1;min-width:0}.camp-context-toggle{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;min-height:3rem;padding:0;border:0;background:transparent;color:var(--ink);cursor:pointer;text-align:left}.camp-context-toggle>span:first-child{display:grid;gap:.35rem}.camp-context-chevron{font-size:1.4rem;color:var(--accent)}.camp-context-toggle[aria-expanded=true] .camp-context-chevron{transform:rotate(180deg)}.camp-context-content{display:none}.camp-context-content.is-expanded{display:grid;padding-top:1rem;border-top:1px solid var(--line)}.camp-context-content>.camp-section-label,.camp-context-content .camp-next{display:none}.camp-tabs{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) minmax(0,1fr) minmax(0,.85fr);gap:.2rem;width:100%}.camp-tab{min-width:0;white-space:nowrap;padding-inline:.2rem}.lang-switch button,.sound-toggle{min-width:2.75rem;min-height:2.75rem}.start-guide>summary,.result-details>summary{min-height:2.75rem;align-content:center}.match-screen .match-status{order:1}.match-screen .match-board{order:2}}@media(max-width:40rem){.app-main{width:calc(100% - 1rem);padding-top:.65rem}.hud,.hud.hud-compact{padding-top:max(.5rem,env(safe-area-inset-top))}.hud:has(.hud-elo){grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"clock resources settings"}.hud:has(.hud-elo) .hud-row{gap:.4rem}.hud .hud-clock{gap:.15rem}.hud .hud-elo{font-size:clamp(1.25rem,5vw,1.75rem)}.hud .hud-difficulty{font-size:var(--font-size-small)}.start-screen{margin:.75rem auto 1rem;padding:1.25rem 1rem;gap:1rem}.start-title{font-size:3rem}.start-pitch{margin:0;font-size:.95rem;line-height:1.6}.start-difficulty{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.start-difficulty .btn{min-width:0;padding-inline:.4rem;font-size:.85rem}.start-difficulty .btn:last-child{grid-column:1 / -1}.start-choice{width:100%}.start-clock{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}.start-clock .btn{min-width:0;padding-inline:.4rem;font-size:.85rem}.start-run,.start-resume{width:100%;min-width:0}.start-history{padding:.8rem}.camp-screen,.setup-screen,.match-screen{gap:.75rem}.camp-screen h2{font-size:1.6rem}.camp-context{gap:.75rem}.camp-badge-filter-options{display:none}.camp-badge-select{display:block;width:100%;min-width:0;min-height:3rem;padding:.65rem .75rem;border:1px solid #978562;border-radius:.4rem;background:#23362f;color:var(--ink);color-scheme:dark;font:inherit;font-size:1rem;font-weight:600;cursor:pointer}.camp-badge-select:focus-visible{outline:3px solid #a2e0d6;outline-offset:3px}.offer-cards{grid-template-columns:minmax(0,1fr)}.offer-card{display:grid;grid-template-columns:3.5rem minmax(0,1fr);gap:.6rem .75rem;padding:.8rem;align-content:start}.offer-card>*{grid-column:1 / -1;min-width:0}.offer-card>.badge-art,.offer-card>.equipment-art{grid-column:1;grid-row:1 / span 2;width:3.5rem;height:3.5rem;margin:0}.offer-card:has(>.badge-art){grid-template-columns:4.5rem minmax(0,1fr)}.offer-card>.badge-art{--badge-size: 3.5rem;width:max-content;height:auto}.offer-card:has(>.badge-art,>.equipment-art)>.offer-name,.offer-card:has(>.badge-art,>.equipment-art)>.offer-effect{grid-column:2}.offer-card>.offer-name{font-size:1rem;align-self:center}.offer-card>.offer-effect{font-size:.85rem;line-height:1.5}.offer-card>.offer-foot{width:100%;padding-top:.5rem;border-top:1px solid var(--line)}.offer-card-taken{min-height:4rem}.owned-runes{grid-template-columns:repeat(5,minmax(0,1fr))}.owned-runes .offer-card{grid-column:1 / -1}.owned-rune-empty{min-height:3rem}.owned-rune-empty>span:last-child{display:none}.owned-rune-empty>span:first-child{font-size:1.4rem}.setup-heading{padding:.75rem;gap:.5rem}.setup-heading h2{font-size:1.25rem}.setup-controls{padding:.75rem;scroll-margin-top:.75rem}.setup-step{font-size:var(--font-size-small);gap:.3rem;padding-inline:.3rem}.match-header h2{font-size:1.25rem}.rune-notifications:empty{min-height:0;padding-top:0}.weapon-bar{padding:.7rem}.rune-bar{gap:.4rem;padding:.6rem}.phase-camp .debug-panel,.phase-setup .debug-panel,.phase-skillTree .debug-panel{bottom:calc(5.5rem + env(safe-area-inset-bottom))}}@media(max-width:22.5rem){.camp-tab{font-size:var(--font-size-small)}.setup-pawn-badge-picks{grid-template-columns:1fr}.setup-pawn-badge-picks>.btn{flex-direction:row;justify-content:flex-start;gap:.6rem;padding:.35rem .6rem;font-size:.85rem}.setup-pawn-badge-picks .badge-art-small{--badge-size: 2.5rem}}@media(max-width:63.999rem)and (max-height:30rem){.phase-match .hud{position:relative}html{scroll-padding-top:1rem}.phase-match .app-main{max-width:none;width:calc(100% - 1rem);padding-top:.5rem}.phase-match .hud .clock-value{font-size:1.5rem}.phase-match .hud .hud-elo{font-size:1.25rem}.match-screen{grid-template-columns:min(45vw,max(17.5rem,calc(100dvh - 7rem))) minmax(0,1fr);grid-template-areas:"board header" "board status" "board weapons" "board inspect" "runes recent" "actions actions";gap:.6rem}.match-screen .match-board{grid-area:board;width:100%}.match-screen .match-header{grid-area:header;padding:0}.match-screen .match-status{grid-area:status;padding:.5rem .75rem}.match-screen .weapon-bar{grid-area:weapons;padding:.6rem}.match-screen .match-inspector{grid-area:inspect}.match-screen .match-recent{grid-area:recent}.match-screen .rune-bar{grid-area:runes}.match-screen .match-actions,.match-screen .match-result{grid-area:actions}}.phase-match{position:relative;isolation:isolate}.phase-match .hud{background:#142e3af5;border-color:#967d51;box-shadow:inset 0 2px #edc17f33,0 8px 24px #06131b77}.phase-match .match-screen .board-wrap{background:linear-gradient(135deg,#bca16c,#665c43 12%,#233b43 40%,#10222e);box-shadow:0 18px 0 -8px #071722,0 25px 35px #0008,inset 0 1px #f6d996}.phase-match .match-status,.phase-match .weapon-bar,.phase-match .match-recent{background:#142d39f5;border:1px solid #49616a;box-shadow:0 4px #071923}.phase-match .match-status{border-left:3px solid #96dfd1}.phase-match .btn{background:#24434f;border-color:#657e83;box-shadow:none}.phase-match .btn:hover:not(:disabled){background:#325663;border-color:#e5bf7c}.phase-match .weapon-btn{background:#30494d;border-color:#ae905c}.phase-match .match-retreat{background:#162c36;border-color:#49616a}@media(max-width:600px){.phase-match .match-screen .board-wrap{box-shadow:0 8px 18px #0006,inset 0 1px #f6d996}}.phase-match .app-main{padding-top:2rem}.phase-match .hud{background:linear-gradient(105deg,#35525a,#132d3a 48%,#203e48);border:1px solid #b3935c;border-top:0;border-radius:0 0 18px 18px;box-shadow:0 6px #081b25,0 7px #6d6345,0 18px 40px #0006,inset 0 -3px #9d834c44}.phase-match .match-screen .board-wrap{border-radius:9px;background:linear-gradient(135deg,#e0bd7c,#8c704a 18%,#3a4e4e,#122d38 78%,#94764b);box-shadow:0 0 0 2px #b7985f,0 0 0 5px #172e35,0 0 0 7px #766343,0 14px 0 -2px #10232c,0 16px 0 -2px #967649,0 23px 30px #0009,inset 0 2px #ffe3a8}.phase-match .match-status{background:linear-gradient(100deg,#2f555d,#183745);border:1px solid #749593;border-left:4px solid #a2e0d6;border-radius:3px 12px 12px 3px;box-shadow:0 5px #091e29,inset 0 1px #b5d9ca33}.phase-match .weapon-bar{padding:18px 14px 20px;background:linear-gradient(135deg,#97764a22,transparent 50%),#19333e;border:1px solid #ad8d58;border-radius:10px;box-shadow:inset 0 0 0 4px #0c2330,inset 0 0 0 5px #657065,0 7px #091d27,0 8px #796443;gap:12px}.phase-match .weapon-bar-uses{color:#e8d3a5;letter-spacing:.06em}.phase-match .weapon-btn{min-height:66px;padding:8px 14px;background:linear-gradient(135deg,#446066,#25424c);border:1px solid #bca06a;border-radius:6px;box-shadow:0 4px #0a202a,inset 0 1px #ead09a55}.phase-match .weapon-btn .equipment-art{width:44px;height:44px;filter:drop-shadow(0 4px 2px #04182199)}.phase-match .equipment-inspect{background:#102c38;color:#bbd8d3;border-color:#6b8584}.phase-match .match-actions .btn{background:#142f3c;border-color:#59757b}@media(max-width:600px){.phase-match .app-main{padding-top:1rem}.phase-match .match-screen .board-wrap{box-shadow:0 0 0 2px #a88b59,0 7px #0c2330,0 9px #887047,0 15px 20px #0006}.phase-match .weapon-bar{padding:12px;gap:8px}.phase-match .weapon-btn{min-height:52px}.phase-match .weapon-btn .equipment-art{width:32px;height:32px}}@media(max-width:63.999rem)and (max-height:30rem){.phase-match .app-main{padding-top:.5rem}}:root{--theatre-panel: linear-gradient(135deg, #27424bf7, #102833fa 65%);--theatre-card: radial-gradient(ellipse at 25% 0%, #b584413d, transparent 65%), #193641;--theatre-inset: #102833;--theatre-edge: #627b7c;--theatre-brass: #997d51;--theatre-shadow: inset 0 2px #eab76755, 0 8px 24px #020e18aa}body,body:has(.phase-match){background:linear-gradient(180deg,#07172522,#071725cc),var(--theatre-background);background-position:center top;background-size:cover;background-attachment:fixed}.hud,.hud.hud-compact,.phase-match .hud{background:linear-gradient(110deg,#30454c,#102531 70%);border-color:#ad8a50;box-shadow:inset 0 2px #edc17f44,0 5px 20px #0007}.camp-market,.camp-context,.camp-owned-runes,.start-screen,.skill-tree,.result-screen,.run-end,.analysis-screen,.setup-heading,.setup-controls,.rune-bar{background:var(--theatre-panel);border-color:var(--theatre-brass);box-shadow:var(--theatre-shadow)}.offer-card{background:var(--theatre-card);border-color:var(--theatre-edge);box-shadow:inset 0 1px #eac18455,0 4px #071b26}.offer-card-taken,.owned-rune-empty{background:var(--theatre-inset);border-color:#49616a;box-shadow:none}.camp-tab.selected{background:#35535b;border-color:#d4a66a}.camp-badge-filter{background:#244653;border-color:var(--theatre-edge)}.camp-badge-filter[aria-pressed=true]{background:#35535b;border-color:var(--accent)}.camp-badge-filter-count{background:#102531}.btn:not(:where(.analysis-game,.archived-game,.retreat-dialog-confirm,.setup-confirm-anyway)),.phase-match .btn:not(:where(.analysis-game,.archived-game,.retreat-dialog-confirm,.setup-confirm-anyway)){background:#244653;border-color:#729297;box-shadow:none}.btn:hover:not(:disabled):not(:where(.retreat-dialog-confirm,.setup-confirm-anyway)),.phase-match .btn:hover:not(:disabled):not(:where(.retreat-dialog-confirm,.setup-confirm-anyway)){background:#325663;border-color:#e5bf7c}.btn.btn-primary,.phase-match .btn.btn-primary{background:#efbc68;color:#201b15;border-color:#ffe1a5;box-shadow:0 3px #7a512a}.btn.btn-primary:hover:not(:disabled),.phase-match .btn.btn-primary:hover:not(:disabled){background:#f3d69e;border-color:#ffe1a5}.analysis-game,.archived-game{background:#244653}.game-settings>summary,.game-settings-panel,.lang-switch,.equipment-details,.badge-hint,.badge-pay-hint,.term-hint,.elo-card,.weapon-card,.badge-effects-summary,.badge-effects-details,.setup-confirm-dialog,.retreat-dialog,.skill-sheet-panel{background:var(--theatre-inset);border-color:var(--theatre-brass)}.game-settings-panel,.equipment-details,.badge-effects-details,.badge-hint,.badge-pay-hint,.elo-card,.weapon-card{box-shadow:inset 0 1px #edc17f22,0 8px 24px #020e18aa}.equipment-close,.equipment-inspect,.phase-match .equipment-inspect,.skill-sheet-close{background:#244653;border-color:#729297}.badge-effects-summary.has-effects:hover{background:#244653}.setup-preview,.analysis-board{background:linear-gradient(135deg,#bca16c,#665c43 12%,#233b43 40%,#10222e);box-shadow:0 .7rem 2.5rem #0007,inset 0 1px #eac18488}.setup-weapon,.setup-bag-badge,.piece-chip{background-color:#24404a;border-color:var(--theatre-edge)}.setup-rook-spell,.setup-confirm-material{background:#10283380}.setup-rook-spell.is-active{background:#35494a}.setup-spell-toggle.selected,.setup-spell-knight.selected{border-color:var(--accent)}.phase-match .match-status{background:linear-gradient(100deg,#2f555d,#183745)}.phase-match .weapon-bar,.phase-match .match-recent{background:var(--theatre-panel);border-color:var(--theatre-brass)}.phase-match .weapon-btn{background:var(--theatre-card);border-color:#ae905c;box-shadow:inset 0 1px #eac18455,0 4px #071b26}.phase-match .match-retreat{background:#142f3c;border-color:#59757b}.rune-notice{background:#102833}.rune-slot{background:linear-gradient(145deg,#35535b,#193641);border-color:#87958a}.rune-slot-free{background:#102833}.badge-art-highlight,.badge-art-rivets,.badge-art-flourish{opacity:0}.badge-art-metal{fill:#d5a75f;stroke:#ffe0a0}.badge-art-enamel{fill:#153b4c}.badge-art-frame{filter:none}.badge-art,.equipment-art{filter:drop-shadow(0 5px 2px #06151aaa)}.run-history,.history-entry,.camp-formation,.camp-cap,.result-capture,.result-runes,.analysis-move-table,.analysis-summary,.analysis-nav{background:var(--theatre-inset)}.result-highlights{background:var(--theatre-card);border-color:var(--theatre-brass)}.analysis-current{background:#15303b;border-color:var(--theatre-edge)}.analysis-move.is-current{background:#35535b}@media(max-width:48rem){body,body:has(.phase-match){background-attachment:scroll}}.engine-emblem{width:2rem;height:2rem;display:inline-block;flex:0 0 auto;vertical-align:middle;overflow:visible}.engine-housing{fill:#8a6b3d;stroke:#f0ce8c;stroke-width:1.5}.engine-core{fill:#a9e0d1}.engine-rotor{transform-origin:40px 40px}.engine-thinking .engine-rotor{animation:engine-turn 3s linear infinite}.engine-weakened .engine-core{fill:#efbc68}.engine-weakened .engine-rotor{stroke-dasharray:5 4}.engine-boss .engine-housing{stroke-width:3;stroke:#ffe3a6}.engine-defeated{animation:engine-victory 1.6s ease-out both}.engine-defeated .engine-core{fill:#ffe1a5}.engine-defeated .engine-rotor{transform:rotate(45deg)}@keyframes engine-turn{to{transform:rotate(360deg)}}@keyframes engine-victory{35%{filter:drop-shadow(0 0 16px #f7ce7e)}}.elo-pill .engine-emblem{width:1.2em;height:1.2em}.result-screen>.engine-emblem,.run-end>.engine-emblem{width:4.5rem;height:4.5rem}.match-result>.engine-emblem{width:2.5rem;height:2.5rem}.result-boss.result-win,.run-end-won{background:radial-gradient(ellipse at top,#ae854a33,transparent 60%),var(--theatre-panel)}.start-screen{width:min(100%,64rem);margin:2rem auto;padding:clamp(1.25rem,3vw,2.5rem);display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:1.5rem 2.5rem;text-align:left;align-items:center}.start-heading{position:relative;grid-column:1 / -1;width:100%}.start-intro{display:flex;flex-direction:column;align-items:flex-start;gap:1rem;min-width:0}.start-title{width:min(100%,22rem);max-width:none;margin:0 auto;line-height:0}.start-title-name{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.start-title-art{display:block;width:100%;height:auto}.start-heading .screen-tools{position:absolute;top:0;right:0;margin:0}.start-intro .start-choice{align-items:flex-start}.start-difficulty,.start-clock{justify-content:flex-start}.start-hint{margin:-.5rem 0 0}.start-screen .start-choice .btn[aria-pressed=true]{background:#36575d;color:#fff3d8;border:2px solid #bdd9d3;box-shadow:inset 0 -3px #bdd9d3}.start-screen .start-choice .btn{min-height:2.75rem}.start-run,.start-resume{width:100%;min-height:3rem}.start-guide,.start-history{grid-column:1 / -1;width:100%}.start-guide{border-top:1px solid #587077;padding-top:.6rem}.start-history.is-empty{display:flex;flex-wrap:wrap;gap:.4rem 1rem;align-items:baseline;padding-top:.75rem}.start-history.is-empty h2{font-size:.95rem}.start-history.is-empty p{margin:0;font-size:var(--font-size-small)}.start-preview{margin:0;min-width:0;display:grid;gap:1rem;justify-items:center}.preview-opponent{display:flex;align-items:center;gap:.7rem;font-size:var(--font-size-small);color:#cbd7d1}.preview-opponent .engine-emblem{width:3rem;height:3rem}.preview-board{width:100%;max-width:20rem;padding:.45rem;border:1px solid #b39761;border-radius:.4rem;background:#263a3e;box-shadow:0 14px 30px #0006}.preview-board .quick-board{width:100%!important}.preview-board .rank-label,.preview-board .file-label{font-size:min(4cqi,.5rem);font-weight:600}.preview-board .square-badges{font-size:min(4cqi,.75rem)}.preview-board .board-badge{padding:.08em .2em;border-radius:.2em}.preview-board .quick-square:has(.square-badges) .quick-piece{transform:translateY(-12%)}.camp-market .offer-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.camp-market .offer-card{display:grid;grid-template-columns:3.25rem minmax(0,1fr);gap:.5rem .75rem;padding:.85rem;align-content:start;box-shadow:none;border-color:#50686d}.camp-market .offer-card>*{grid-column:1 / -1;min-width:0}.camp-market .offer-card>.badge-art,.camp-market .offer-card>.equipment-art{grid-column:1;grid-row:1 / span 2;width:3.25rem;height:3.25rem;margin:0}.camp-market .offer-card:has(>.badge-art){grid-template-columns:4.25rem minmax(0,1fr)}.camp-market .offer-card>.badge-art{--badge-size: 3.25rem;width:max-content;height:auto}.camp-market .offer-card:has(>.badge-art,>.equipment-art)>.offer-name,.camp-market .offer-card:has(>.badge-art,>.equipment-art)>.offer-effect{grid-column:2}.camp-market .offer-name{font-size:1rem}.camp-market .offer-effect{line-height:1.45}.camp-market .offer-foot{padding-top:.5rem;border-top:1px solid #50686d;width:100%;align-self:end}.camp-context,.camp-owned-runes,.setup-heading,.setup-controls,.rune-bar{border-color:#526b70;box-shadow:0 5px 16px #020e1844}.owned-rune-empty,.rune-slot-free{opacity:.65}.play-hint{width:100%;color:#cfddd8;font-size:var(--font-size-small);text-align:left}.play-hint>summary{cursor:pointer;padding:.6rem 0;min-height:2.75rem;align-content:center;text-decoration:underline;text-underline-offset:.2em}.play-hint p{margin:.25rem 0 .75rem;line-height:1.6}.match-inspector .play-hint{padding-inline:.75rem}.phase-match .match-recent{border-color:#50686d;box-shadow:none}.recent-pickups .amount{color:var(--gold)}.recent-pickups .amount:has(.sym-skill){color:var(--skill)}.match-recent li+li,.match-recent ul+ul{padding-top:.35rem;border-top:1px solid #50686d}@media(min-width:64rem){.phase-camp .app-main{padding-bottom:7rem}.camp-screen>.camp-actions{position:fixed;z-index:9;bottom:1rem;left:50%;transform:translate(-50%);width:min(calc(100% - 3rem),76rem);padding:.75rem 1rem;border:1px solid #627b7c;border-radius:.5rem;background:#102833f5;box-shadow:0 -8px 24px #0004;justify-content:flex-end}html:has(.phase-camp){scroll-padding-bottom:7rem}}@media(max-width:63.999rem){.start-screen{display:flex;flex-direction:column;gap:1.25rem;margin-top:.75rem;max-width:34rem}.start-heading{padding-top:2.75rem}.start-intro{width:100%;gap:.75rem}.start-title{width:min(100%,18rem)}.start-preview{width:100%;grid-template-columns:minmax(0,9rem) minmax(0,1fr);gap:.6rem 1rem;padding-top:1.25rem;border-top:1px solid #50686d}.preview-board{grid-column:1}.preview-opponent{grid-column:2;grid-row:1;align-self:center}.preview-opponent .engine-emblem{width:2rem;height:2rem}.start-intro .start-choice{width:100%}.match-screen .match-status{height:3.75rem;font-size:.85rem;box-shadow:none}.match-recent{padding:.6rem .75rem}.match-recent h3{margin-bottom:.25rem}}@media(max-width:40rem){.camp-market .offer-cards{grid-template-columns:minmax(0,1fr)}.start-screen{padding:1rem}.start-choice{gap:.35rem}.start-difficulty .btn,.start-clock .btn{font-size:var(--font-size-small);padding-inline:.6rem}}@media(prefers-reduced-motion:reduce){.engine-emblem,.engine-rotor{animation:none!important}}.phase-match .match-recent.has-combination{border-left:3px solid #e1bc78;background:linear-gradient(100deg,#b58a3522,transparent),var(--theatre-panel)}.recent-badge-name{display:flex;align-items:center;gap:.35rem}.preview-board{align-self:center}@media(min-width:64rem){.start-preview{justify-self:stretch;width:100%}}@media(max-width:63.999rem){.match-screen .badge-effects-summary{height:2.75rem}.match-screen .badge-effects-summary:not(.has-effects) .badge-effects-content{flex-direction:row;align-items:center;gap:.7rem}.match-screen .match-status{height:3.25rem}}@media(max-width:40rem){.start-screen .start-difficulty{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.start-screen .start-difficulty .btn:last-child{grid-column:auto}.start-screen .start-hint{font-size:var(--font-size-small)}.start-screen .screen-tools{margin:0}}@media(max-width:22rem){.start-preview{grid-template-columns:minmax(0,8rem) minmax(0,1fr)}.start-screen{gap:.6rem}}.start-footer{grid-column:1 / -1;width:100%;text-align:center;padding-top:.8rem;font-size:.85rem}.start-footer a,.legal-page a,.email-link{color:var(--ink-soft)}.legal-page{width:min(760px,calc(100% - 2rem));margin:1.5rem auto;padding:1.5rem 1.75rem;background:#102833eb;border:1px solid var(--line);border-radius:.8rem;line-height:1.55;overflow-wrap:anywhere}.legal-page h1{margin-top:.6rem}.legal-page h2{margin-top:2rem;padding-bottom:.3rem;border-bottom:1px solid var(--line)}.legal-page h3{margin-bottom:.3rem}.legal-updated{font-size:.85rem;color:var(--ink-soft)}.legal-meta{display:grid;grid-template-columns:auto 1fr;gap:.35rem 1.2rem}.legal-meta dt{font-weight:700}.legal-meta dd{margin:0}.email-link{background:none;border:0;padding:0;font:inherit;text-decoration:underline;cursor:pointer}@media(max-width:30rem){.legal-page{padding:1.1rem 1rem}.legal-meta{grid-template-columns:1fr}.legal-meta dd{margin-bottom:.4rem}}
