/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--default-font-family:var(--font-ui);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.fixed{position:fixed}.static{position:static}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.contents{display:contents}.grid{display:grid}.hidden{display:none}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}:root{--paper:#efe5ce;--paper-light:#fbf6e8;--paper-deep:#ded0af;--ink:#24211c;--ink-soft:#6e6658;--ink-faint:#9d927e;--line:#41382a33;--line-strong:#2f29205c;--vermilion:#a93f2c;--vermilion-deep:#78291e;--jade:#2f6f60;--jade-deep:#204c43;--gold:#aa7a2b;--shadow:0 18px 48px #392d1b1f;--radius-lg:22px;--radius-md:14px;--radius-sm:9px;--background:var(--paper);--foreground:var(--ink)}*{box-sizing:border-box}html{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;min-width:320px;min-height:100%}body{min-height:100vh;color:var(--ink);background:radial-gradient(circle at 8% 4%, #ffffffb8, transparent 24rem), radial-gradient(circle at 94% 18%, #976f3417, transparent 30rem), linear-gradient(135deg, #70562f06 25%, transparent 25%) 0 0 / 18px 18px, var(--paper);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;margin:0;font-family:Noto Serif SC,Songti SC,STSong,ui-serif,Georgia,serif}button,input,select,textarea{font:inherit}button{color:inherit}button:not(:disabled){cursor:pointer}button:disabled{cursor:not-allowed;opacity:.46}button:focus-visible,[tabindex]:focus-visible{outline-offset:3px;outline:3px solid #2f6f6061}.game-shell{width:min(1440px,100%);min-height:100vh;margin:0 auto;padding:26px clamp(18px,3.2vw,48px) 44px}.topbar{z-index:20;justify-content:space-between;align-items:center;gap:24px;margin-bottom:22px;display:flex;position:relative}.brand{align-items:center;gap:13px;min-width:0;display:flex}.brand h1,.brand p{margin:0}.brand h1{letter-spacing:.09em;font-size:clamp(1.35rem,2.2vw,2rem);font-weight:760;line-height:1.1}.brand p{color:var(--ink-soft);letter-spacing:.08em;margin-top:5px;font-family:ui-sans-serif,system-ui,sans-serif;font-size:.77rem}.seal{color:#fff7e7;background:var(--vermilion);border:2px solid #742017a6;border-radius:8px 5px 9px 6px;flex:none;place-items:center;width:48px;height:48px;font-size:1.35rem;font-weight:800;line-height:1;display:grid;transform:rotate(-2deg);box-shadow:inset 0 0 0 2px #ffefd33d,0 6px 14px #6523192e}.resource-row{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.resource-pill{min-height:34px;color:var(--ink-soft);border:1px solid var(--line);white-space:nowrap;background:#fffbefa3;border-radius:999px;align-items:center;gap:7px;padding:6px 11px;font-family:ui-sans-serif,system-ui,sans-serif;font-size:.77rem;display:inline-flex;box-shadow:0 3px 9px #382d1d0d}.resource-pill strong{color:var(--ink);font-variant-numeric:tabular-nums;font-size:.88rem}.resource-pill--loot{color:#7a5323;cursor:pointer}.resource-pill--loot:hover{background:#f5e2afb8;border-color:#9f6f2c6b}.resource-pill--rank{color:#6f4a19;cursor:pointer;background:linear-gradient(135deg,#fff7d9db,#e6cf917a);border-color:#9b6e2b57}.resource-pill--rank:hover{background:#f5e2afcc;border-color:#9b6e2b8f}.audio-control{font-family:ui-sans-serif,system-ui,sans-serif;position:relative}.resource-pill--audio{color:var(--jade-deep);background:linear-gradient(135deg,#f0f9efe0,#cbe0d080);border-color:#2f6f604d}.resource-pill--audio>span{color:#f7f4e9;background:var(--jade);border-radius:50%;place-items:center;width:20px;height:20px;font-family:Noto Serif SC,Songti SC,serif;font-size:.68rem;font-weight:800;display:grid}.resource-pill--audio:hover,.resource-pill--audio[aria-expanded=true]{background:#d7ebdae6;border-color:#2f6f608f}.resource-pill--audio-muted{color:var(--ink-faint);border-color:var(--line);background:#e7e2d5b8}.resource-pill--audio-muted>span{background:#8c8578}.audio-settings{z-index:50;width:min(360px,100vw - 24px);color:var(--ink);background:linear-gradient(145deg, #fffef8fa, #f2e9d3fa), var(--paper-light);border:1px solid #3e362747;border-radius:15px;padding:17px;position:absolute;top:calc(100% + 12px);right:0;box-shadow:0 20px 45px #31271938}.audio-settings:before{content:"";background:#fffdf6;border-top:1px solid #3e36273d;border-left:1px solid #3e36273d;width:12px;height:12px;position:absolute;bottom:100%;right:25px;transform:translateY(6px)rotate(45deg)}.audio-settings__header{justify-content:space-between;align-items:center;gap:12px;display:flex}.audio-settings__header h2{letter-spacing:.08em;margin:2px 0 0;font-family:Noto Serif SC,Songti SC,serif;font-size:1.02rem}.audio-settings__eyebrow{color:var(--vermilion);letter-spacing:.2em;font-size:.62rem;font-weight:800}.audio-master-toggle{min-height:30px;color:var(--vermilion-deep);background:#fffaeeb8;border:1px solid #a93f2c47;border-radius:999px;padding:5px 9px;font-size:.72rem}.audio-settings__status{color:var(--ink-soft);background:#fffcf2a8;border:1px dashed #483c2a33;border-radius:9px;align-items:center;gap:7px;margin:12px 0 14px;padding:8px 10px;font-size:.69rem;display:flex}.audio-dot{background:#9c9486;border-radius:50%;flex:none;width:8px;height:8px}.audio-dot--ready{background:var(--jade);animation:1.8s ease-in-out infinite audio-ready-pulse;box-shadow:0 0 0 4px #2f6f601f}@keyframes audio-ready-pulse{50%{box-shadow:0 0 0 7px #2f6f6005}}.audio-switch-row{border-top:1px solid #483c2a1f;justify-content:space-between;align-items:center;gap:14px;min-height:48px;padding:9px 0;display:flex}.audio-switch-row>span{gap:2px;display:grid}.audio-switch-row b,.audio-volume-row b{font-size:.76rem}.audio-switch-row small{color:var(--ink-faint);font-size:.65rem;line-height:1.35}.audio-switch-row input{width:18px;height:18px;accent-color:var(--jade);flex:none}.audio-volume-row{color:var(--ink-soft);gap:6px;padding:2px 0 11px;font-size:.69rem;display:grid}.audio-volume-row>span{justify-content:space-between;display:flex}.audio-volume-row input[type=range]{width:100%;accent-color:var(--jade)}.music-stage-status{color:var(--ink-soft);background:#2f6f6012;border:1px solid #2f6f6029;border-radius:9px;justify-content:space-between;align-items:center;gap:10px;margin:0 0 8px;padding:8px 9px;font-size:.62rem;display:flex}.music-stage-status b{color:var(--jade-deep);text-align:right;font-size:.68rem}.music-stage-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin-bottom:9px;display:grid}.music-stage-chip{min-width:0;color:var(--ink-soft);text-align:left;background:#fffcf29e;border:1px solid #483c2a21;border-radius:8px;gap:1px;padding:7px 8px;font-family:ui-sans-serif,system-ui,sans-serif;display:grid}.music-stage-chip:not(:disabled):hover{background:#e0eddcc7;border-color:#2f6f6057}.music-stage-chip small,.music-stage-chip em{color:var(--ink-faint);font-size:.54rem;font-style:normal}.music-stage-chip b{color:var(--ink);font-size:.66rem}.music-stage-chip--active{box-shadow:inset 3px 0 0 var(--jade);background:linear-gradient(135deg,#d5e8d5d1,#faf0d0ad);border-color:#2f6f6061}.main-grid{grid-template-columns:minmax(0,1fr) minmax(290px,360px);align-items:start;gap:clamp(16px,2vw,28px);display:grid}.game-panel,.side-panel{background:linear-gradient(#fffdf6c7, #fffaeba3), var(--paper-light);border-radius:var(--radius-lg);box-shadow:var(--shadow);border:1px solid #483c2a38;position:relative;overflow:hidden}.game-panel:before,.side-panel:before{z-index:0;content:"";background:var(--vermilion);opacity:.88;border-radius:0 0 3px 3px;width:70px;height:3px;position:absolute;top:0;left:20px}.game-panel>*,.side-panel>*{z-index:1;position:relative}.game-panel{--board-cell-size:46px;--board-gap:2px;padding:clamp(16px,2.3vw,28px)}.side-panel{padding:18px;position:sticky;top:18px}.panel-title{color:var(--ink);letter-spacing:.08em;justify-content:space-between;align-items:center;gap:12px;margin:0 0 16px;font-size:clamp(1rem,1.5vw,1.2rem);font-weight:760;display:flex}.loot-discovery{--loot-color:#a67736;width:100%;color:var(--ink);text-align:left;background:linear-gradient(90deg, var(--loot-color), transparent 62%), #fffcf2c2;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;margin:-4px 0 14px;padding:8px 10px;display:grid}@supports (color:color-mix(in lab, red, red)){.loot-discovery{background:linear-gradient(90deg, color-mix(in srgb, var(--loot-color) 15%, transparent), transparent 62%), #fffcf2c2}}.loot-discovery{border:1px solid var(--loot-color)}@supports (color:color-mix(in lab, red, red)){.loot-discovery{border:1px solid color-mix(in srgb, var(--loot-color) 42%, var(--line))}}.loot-discovery{box-shadow:inset 3px 0 0 var(--loot-color);border-radius:10px;animation:.42s cubic-bezier(.2,.8,.2,1) loot-discovery-in}.loot-discovery-glyph{color:#fff8e8;background:var(--loot-color);border-radius:8px;place-items:center;width:32px;height:32px;font-size:.92rem;font-weight:800;display:grid;box-shadow:inset 0 0 0 2px #fff3}.loot-discovery>span:nth-child(2){gap:1px;display:grid}.loot-discovery small,.loot-discovery em{color:var(--ink-faint);font-family:ui-sans-serif,system-ui,sans-serif;font-size:.59rem;font-style:normal}.loot-discovery b{font-size:.78rem}.loot-discovery em{color:var(--jade-deep);white-space:nowrap}@keyframes loot-discovery-in{0%{opacity:0;transform:translateY(-7px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}.phase-badge{min-height:28px;color:var(--vermilion-deep);letter-spacing:.04em;white-space:nowrap;background:#a93f2c14;border:1px solid #a93f2c38;border-radius:999px;align-items:center;padding:4px 9px;font-family:ui-sans-serif,system-ui,sans-serif;font-size:.7rem;font-weight:700;display:inline-flex}.recruit-strip{grid-template-columns:repeat(5, var(--board-cell-size));justify-content:center;gap:var(--board-gap);margin-inline:auto;width:max-content;max-width:100%;margin-bottom:13px;display:grid}.recruit-slot{width:var(--board-cell-size);height:var(--board-cell-size);aspect-ratio:1;min-width:0;min-height:0;color:var(--ink-faint);border-radius:var(--radius-md);background:#7e68450b;border:1px dashed #4f422d4d;place-items:center;padding:2px;display:grid;overflow:hidden}.recruit-slot:has(.token){background:#fffcf1d1;border-style:solid;box-shadow:0 5px 12px #392d1b0f}.recruit-slot.is-selected{border-color:var(--vermilion);border-style:solid;box-shadow:inset 0 0 0 2px #a93f2c33,0 0 0 2px #a93f2c14}[data-weapon-aura=azure]{--weapon-glow:#6ed8ff;--weapon-core:#e7fbff;--weapon-deep:#236f9c}[data-weapon-aura=jade]{--weapon-glow:#6ed59b;--weapon-core:#ecffe3;--weapon-deep:#286f4b}[data-weapon-aura=ember]{--weapon-glow:#ff7b46;--weapon-core:#fff0a8;--weapon-deep:#9f2f22}[data-weapon-aura=gold]{--weapon-glow:#f2c554;--weapon-core:#fff7c9;--weapon-deep:#9b681d}[data-weapon-aura=violet]{--weapon-glow:#b58cff;--weapon-core:#f4eaff;--weapon-deep:#63448f}.token{isolation:isolate;touch-action:none;-webkit-user-select:none;user-select:none;color:#f9f1dd;background:linear-gradient(145deg,#3d3a32,#201e1a);border:1px solid #14120fb8;border-radius:5px;place-items:center;width:100%;height:100%;min-height:0;padding:2px;font-size:clamp(.94rem,1.55vw,1.2rem);font-weight:790;line-height:1;display:grid;position:relative;box-shadow:inset 0 0 0 1px #fff8e51f,0 5px 12px #261f172e}.token>b,.token>.level-dots{z-index:2}.token--hero{color:#fff3d4;background:linear-gradient(145deg,#b24b36,#76291f);border-color:#6c251d}.token--hero-part{color:#dce4df;background:radial-gradient(circle at 70% 25%,#d2e4e029,#0000 34%),linear-gradient(145deg,#4b5551,#29312f);border-color:#39443f;box-shadow:inset 0 0 0 1px #e2f1ec1a,0 4px 10px #262e2b26}.resting-mark{z-index:5;color:#e7f4ef;background:#2b443ddb;border:1px solid #d8ebe46b;border-radius:50%;place-items:center;min-width:14px;height:14px;font-family:ui-sans-serif,system-ui,sans-serif;font-size:.43rem;font-weight:800;line-height:1;display:grid;position:absolute;top:2px;left:2px}.token--hero-part:after{z-index:1;content:"Z";color:#dcefe894;font-family:ui-sans-serif,system-ui,sans-serif;font-size:.5rem;font-weight:800;animation:1.8s ease-in-out infinite resting-drift;position:absolute;top:5px;right:5px}.token--weapon-equipped{box-shadow:inset 0 0 0 1px var(--weapon-glow), 0 0 10px var(--weapon-glow), 0 5px 12px #261f172e;overflow:visible}@supports (color:color-mix(in lab, red, red)){.token--weapon-equipped{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--weapon-glow) 52%, white), 0 0 10px color-mix(in srgb, var(--weapon-glow) 48%, transparent), 0 5px 12px #261f172e}}.token-weapon-fx{z-index:1;pointer-events:none;border:1px solid var(--weapon-glow);position:absolute;inset:-3px;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.token-weapon-fx{border:1px solid color-mix(in srgb, var(--weapon-glow) 62%, transparent)}}.token-weapon-fx{border-radius:7px;animation:1.8s ease-in-out infinite weapon-aura-pulse}.token-weapon-fx:before{content:"";border:1px dashed var(--weapon-core);position:absolute;inset:3px}@supports (color:color-mix(in lab, red, red)){.token-weapon-fx:before{border:1px dashed color-mix(in srgb, var(--weapon-core) 70%, transparent)}}.token-weapon-fx:before{border-radius:50%;animation:4.2s linear infinite weapon-orbit}.token-weapon-fx img{object-fit:contain;opacity:.72;width:58%;height:58%;filter:drop-shadow(0 0 4px var(--weapon-glow));position:absolute;bottom:-6px;right:-5px;transform:rotate(9deg)}.token--farmer{color:#f5eed6;background:linear-gradient(145deg,#4d7a66,#285347);border-color:#24493f}.token--tool{isolation:isolate;color:#352616;background:radial-gradient(circle at 18% 78%,#52301652 0 3px,#0000 4px),radial-gradient(circle at 79% 24%,#ffe7a84d 0 2px,#0000 3px),linear-gradient(152deg,#d7b16c 0 44%,#a96f32 45% 100%);border-color:#815325;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #ffefc447,inset 0 -12px 18px #532f1433,0 5px 12px #261f172e}.token--tool:before,.piece.token--tool:before{z-index:2;content:"";transform-origin:50% 88%;background:linear-gradient(90deg,#6c3517,#c7833f 38% 66%,#623014);border:1px solid #43210fb8;border-radius:999px 999px 3px 3px;width:6px;height:64%;position:absolute;top:7%;left:46%;transform:translate(-50%)rotate(27deg);box-shadow:inset 1px 0 #ffda9875,1px 2px 2px #341d0e4d}.token--tool:after,.piece.token--tool:after{z-index:3;content:"";clip-path:polygon(20% 0,80% 0,100% 72%,78% 100%,22% 100%,0 72%);background:linear-gradient(135deg,#f0eee4 0 18%,#a9aaa4 42%,#5e625f 78%,#d2d0c5 100%);border:1px solid #353836d6;border-radius:3px 3px 8px 8px;width:19px;height:15px;position:absolute;bottom:12%;left:57%;transform:translate(-50%)rotate(27deg);box-shadow:inset 2px 1px #fffff6b8,1px 3px 3px #36211257}.token--tool>b,.piece.token--tool .piece-glyph{z-index:4;color:#fff2cf;text-shadow:0 1px #271408b3;background:#462712d1;border:1px solid #ffe1a461;border-radius:3px;padding:2px 3px;font-family:ui-serif,Songti SC,STSong,serif;font-size:.52rem;font-weight:850;line-height:1;position:absolute;bottom:2px;right:2px}.token--tool .level-dots{z-index:4;color:#4c2b14;font-size:.42rem;position:absolute;top:2px;right:3px}.level-dots{justify-content:center;align-items:center;gap:3px;min-height:5px;display:flex}.level-dots>*{opacity:.78;background:currentColor;border-radius:50%;width:4px;height:4px}.action-row{flex-wrap:wrap;align-items:center;gap:9px;margin:12px 0 18px;display:flex}.odds-note{min-height:32px;color:var(--ink-soft);border:1px dashed var(--line-strong);background:#fffbefb8;border-radius:999px;align-items:center;padding:6px 10px;font-family:ui-sans-serif,system-ui,sans-serif;font-size:.67rem;line-height:1.2;display:inline-flex}.odds-note b{color:var(--vermilion-deep);font-variant-numeric:tabular-nums;margin:0 2px}.odds-note--button{text-align:left;border-style:solid;flex-direction:column;align-items:flex-start;gap:2px}.odds-note--button span{color:var(--ink-faint);font-size:.56rem}.odds-note--button:not(:disabled):hover{background:#fffaf0;border-color:#a93f2c66}.primary-btn,.secondary-btn,.tiny-btn{border-radius:var(--radius-sm);justify-content:center;align-items:center;font-family:ui-sans-serif,system-ui,sans-serif;font-weight:720;line-height:1.1;transition:transform .15s,box-shadow .15s,background-color .15s;display:inline-flex}.primary-btn:not(:disabled):active,.secondary-btn:not(:disabled):active,.tiny-btn:not(:disabled):active{transform:translateY(1px)}.primary-btn{color:#fff8e8;background:linear-gradient(180deg, #b44b36, var(--vermilion));border:1px solid var(--vermilion-deep);min-height:42px;padding:9px 16px;box-shadow:0 6px 14px #872c1f2e}.primary-btn:not(:disabled):hover{box-shadow:0 8px 18px #872c1f40}.secondary-btn{min-height:42px;color:var(--ink);border:1px solid var(--line-strong);background:#fffbefb8;padding:9px 15px;box-shadow:0 3px 9px #382d1d0d}.secondary-btn:not(:disabled):hover{background:#fffaf0}.board-wrap{overscroll-behavior-inline:contain;border:1px solid var(--line);background:radial-gradient(circle at 48% 45%,#4e6d5717,#0000 50%),#ded0af57;border-radius:18px;width:100%;padding:8px;overflow:auto;box-shadow:inset 0 2px 12px #4a3b250d}.battlefield{grid-template-columns:repeat(9, var(--board-cell-size));gap:var(--board-gap);width:max-content;min-width:0;margin-inline:auto;display:grid}.cell{aspect-ratio:1;min-width:0;color:var(--ink-soft);background:#faf4e1d1;border:1px solid #5044303b;border-radius:4px;place-items:center;transition:border-color .14s,background-color .14s,transform .14s;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff47}.cell--locked{color:#4d433473;background:repeating-linear-gradient(135deg,#5346320d 0 7px,#0000 7px 14px),#78684d1f;border-style:dashed}.cell--farmland{color:#31523e;background:repeating-linear-gradient(90deg,#583f2233 0 2px,#0000 2px 9px),linear-gradient(145deg,#d5c493,#bda76f);border-color:#496841b8;box-shadow:inset 0 0 0 2px #faeebd33}.cell--farmland:before{z-index:0;pointer-events:none;content:"";border:1px dashed #3d5b3657;border-radius:3px;position:absolute;inset:3px}.cell--farmland .piece{z-index:1;inset:3px;box-shadow:inset 0 0 0 1px #fff7e126,0 3px 8px #372f1b33}.cell--selected{border-color:var(--vermilion);box-shadow:inset 0 0 0 2px #a93f2c38,0 0 0 2px #a93f2c17}.cell--valid{border-color:var(--jade);background:#daebdbe6;box-shadow:inset 0 0 0 2px #2f6f602e}.cell--hero-tail:after{pointer-events:none;content:"";border:1px solid #a93f2c8c;border-radius:3px;position:absolute;inset:2px}.cell-label{display:none}.piece{touch-action:none;-webkit-user-select:none;user-select:none;color:#f8eed7;background:linear-gradient(145deg,#3e3a31,#23211c);border:1px solid #16130fc7;border-radius:4px;place-items:center;transition:transform .14s,box-shadow .14s;display:grid;position:absolute;inset:2px;box-shadow:inset 0 0 0 1px #fff7e11f,0 5px 11px #32281b2b}.piece:hover{transform:translateY(-1px);box-shadow:inset 0 0 0 1px #fff7e124,0 7px 14px #32281b36}.drag-preview{z-index:9999;pointer-events:none;color:#fff3da;opacity:.82;background:linear-gradient(145deg,#3e3a31e6,#1c1a16e0);border:1px solid #1c1813c2;border-radius:7px;grid-template-rows:1fr auto;place-items:center;width:24px;height:24px;font-family:Noto Serif SC,Songti SC,serif;display:grid;position:fixed;top:0;left:-9999px;overflow:hidden;box-shadow:0 4px 10px #271f1540}.drag-preview--wide{width:32px}.drag-preview--hero{background:linear-gradient(145deg,#b24b36eb,#67231be6);border-color:#5c1d17d1}.drag-preview--farmer{background:linear-gradient(145deg,#4d7a66eb,#264e42e6);border-color:#20463bd1}.drag-preview--tool{color:#392614;background:linear-gradient(145deg,#e2bf7bf0,#a3672deb);border-color:#74481fd1}.drag-preview b{align-self:end;font-size:.82rem;line-height:1}.drag-preview small{opacity:.76;align-self:start;font-family:ui-sans-serif,system-ui,sans-serif;font-size:.38rem;line-height:1}.game-shell--dragging .recruit-slot>:not(.drop-target-marker),.game-shell--dragging .cell>:not(.drop-target-marker){pointer-events:none}.recruit-slot[draggable=true],.cell[draggable=true]{cursor:grab}.game-shell--dragging .recruit-slot,.game-shell--dragging .cell{cursor:grabbing}.recruit-slot--drag-source,.cell--drag-source{background:#fffbef6b!important;border-style:dashed!important;border-color:#a93f2c6b!important;box-shadow:inset 0 0 0 1px #a93f2c1a!important}.recruit-slot--drag-source .token,.cell--drag-source .piece{opacity:.24;filter:saturate(.55);transition:opacity .16s,filter .16s,transform .16s cubic-bezier(.2,.8,.2,1);transform:scale(.66)}.drop-target{z-index:12;transition:border-color .12s,background-color .12s,box-shadow .12s,transform .12s;transform:scale(.96)}.drop-target--move{border-color:var(--jade)!important;background:#daebdbf0!important;box-shadow:inset 0 0 0 2px #2f6f603d,0 0 0 2px #2f6f6029!important}.drop-target--swap{background:#f6e0a5eb!important;border-color:#a87524!important;box-shadow:inset 0 0 0 2px #a8752447,0 0 0 2px #a875242b!important}.drop-target--merge{background:#e0eedaf5!important;border-color:#4f823f!important;box-shadow:inset 0 0 0 2px #4f823f47,0 0 0 2px #4f823f2e!important}.drop-target--invalid{background:#f4dad2e0!important;border-style:dashed!important;border-color:#a93f2cb3!important;box-shadow:inset 0 0 0 2px #a93f2c26!important}.drop-target-marker{z-index:30;pointer-events:none;color:#fffaf0;background:var(--jade-deep);border:1px solid #fffceeb3;border-radius:999px;place-items:center;min-width:17px;height:17px;padding:0 3px;font-family:ui-sans-serif,system-ui,sans-serif;font-size:.58rem;font-weight:800;line-height:1;display:grid;position:absolute;top:2px;right:2px;box-shadow:0 2px 5px #28201533}.drop-target--swap .drop-target-marker{background:#94621c}.drop-target--merge .drop-target-marker{background:#447439}.drop-target--invalid .drop-target-marker{background:var(--vermilion-deep)}.piece.token--hero,.cell--hero-tail .piece{color:#fff3d5;background:linear-gradient(145deg,#b54e39,#76291f);border-color:#6c251d}.piece.token--hero-part{color:#dce4df;background:radial-gradient(circle at 72% 26%,#d7ebe426,#0000 34%),linear-gradient(145deg,#4b5551,#29312f);border-color:#39443f}.piece.token--hero-part .piece-glyph{opacity:.78;text-shadow:0 0 6px #c6e0d73d}.piece.token--hero-part .piece-meta{color:#e1efeab8}.cell--weapon-equipped{z-index:7;border-color:var(--weapon-glow);overflow:visible}@supports (color:color-mix(in lab, red, red)){.cell--weapon-equipped{border-color:color-mix(in srgb, var(--weapon-glow) 62%, #5044303b)}}.piece--weapon-equipped{isolation:isolate;border-color:var(--weapon-glow);overflow:visible}@supports (color:color-mix(in lab, red, red)){.piece--weapon-equipped{border-color:color-mix(in srgb, var(--weapon-glow) 58%, #6c251d)}}.piece--weapon-equipped{box-shadow:inset 0 0 0 1px var(--weapon-core), 0 0 9px var(--weapon-glow), 0 5px 11px #32281b33}@supports (color:color-mix(in lab, red, red)){.piece--weapon-equipped{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--weapon-core) 34%, transparent), 0 0 9px color-mix(in srgb, var(--weapon-glow) 55%, transparent), 0 5px 11px #32281b33}}.piece--weapon-equipped .piece-glyph,.piece--weapon-equipped .piece-meta{z-index:3;position:relative}.piece--weapon-equipped .piece-glyph{text-shadow:0 0 5px var(--weapon-core), 0 1px 2px var(--weapon-deep)}.equipped-weapon-fx{z-index:1;pointer-events:none;border-radius:8px;position:absolute;inset:-6px;overflow:visible}.equipped-weapon-orbit{border:1px solid var(--weapon-glow);position:absolute;inset:1px}@supports (color:color-mix(in lab, red, red)){.equipped-weapon-orbit{border:1px solid color-mix(in srgb, var(--weapon-glow) 68%, transparent)}}.equipped-weapon-orbit{box-shadow:0 0 7px var(--weapon-glow);border-block-style:dashed;border-radius:50%}@supports (color:color-mix(in lab, red, red)){.equipped-weapon-orbit{box-shadow:0 0 7px color-mix(in srgb, var(--weapon-glow) 48%, transparent)}}.equipped-weapon-orbit{animation:3.6s linear infinite weapon-orbit,1.7s ease-in-out infinite weapon-aura-pulse}.equipped-weapon-orbit:before,.equipped-weapon-orbit:after{content:"";background:var(--weapon-core);width:4px;height:4px;box-shadow:0 0 6px 2px var(--weapon-glow);border-radius:50%;position:absolute}.equipped-weapon-orbit:before{top:4px;right:3px}.equipped-weapon-orbit:after{bottom:3px;left:5px}.equipped-weapon-fx img{z-index:2;object-fit:contain;opacity:.88;width:24px;height:24px;filter:drop-shadow(0 0 4px var(--weapon-glow));position:absolute;bottom:-3px;left:-5px;transform:rotate(-8deg)}.cell--weapon-equipped.cell--attacking .equipped-weapon-orbit{animation-duration:1.6s,.8s}.piece.token--farmer{background:linear-gradient(145deg,#4f7c67,#285347);border-color:#24493f}.piece.token--tool{isolation:isolate;color:#352616;background:radial-gradient(circle at 18% 78%,#52301652 0 3px,#0000 4px),radial-gradient(circle at 79% 24%,#ffe7a84d 0 2px,#0000 3px),linear-gradient(152deg,#d7b16c 0 44%,#a96f32 45% 100%);border-color:#815325;overflow:hidden;box-shadow:inset 0 0 0 1px #ffefc447,inset 0 -10px 16px #532f1433,0 5px 11px #32281b2b}.piece.token--tool .piece-meta{z-index:4;color:#3e220fe0;font-size:.4rem;inset:2px auto auto 2px}.piece-glyph{font-size:clamp(.72rem,1.15vw,1.05rem);font-weight:800;line-height:1}.piece-meta{color:#fff8e7d6;text-overflow:ellipsis;white-space:nowrap;max-width:calc(100% - 8px);font-family:ui-sans-serif,system-ui,sans-serif;font-size:.43rem;line-height:1;position:absolute;bottom:1px;right:1px;overflow:hidden}.combat-panel{border:1px solid var(--line);border-radius:var(--radius-md);background:#faf5e7ad;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;margin-top:14px;padding:12px 14px;display:grid}.lane{gap:7px;min-width:0;display:grid}.enemy{color:var(--ink-soft);justify-content:space-between;align-items:center;gap:10px;font-family:ui-sans-serif,system-ui,sans-serif;font-size:.76rem;font-weight:680;display:flex}.enemy-health,.progress-track{background:#3c32251f;border:1px solid #3c32251f;border-radius:999px;height:8px;position:relative;overflow:hidden}.enemy-health-fill,.progress-fill{border-radius:inherit;width:0;transition:width .22s;position:absolute;inset:0 auto 0 0}.enemy-health-fill{background:linear-gradient(90deg,#76291f,#b34a35)}.progress-fill{background:linear-gradient(90deg, var(--jade-deep), #4b8a76)}.log-line{min-height:1.3em;color:var(--ink-soft);margin:8px 0 0;font-family:ui-sans-serif,system-ui,sans-serif;font-size:.75rem;line-height:1.45}.tab-row{background:#705b3b14;border-radius:11px;grid-auto-columns:1fr;grid-auto-flow:column;gap:4px;margin:2px 0 16px;padding:4px;display:grid}.tab-btn{min-height:36px;color:var(--ink-soft);background:0 0;border:0;border-radius:8px;padding:7px 8px;font-family:ui-sans-serif,system-ui,sans-serif;font-size:.74rem;font-weight:700}.tab-btn--active{color:var(--ink);background:#fffcf1f0;box-shadow:0 3px 8px #392d1b17}.library-grid{gap:10px;display:grid}.card{border:1px solid var(--line);background:#fffcf2b3;border-radius:12px;padding:13px}.card--equipped{box-shadow:inset 3px 0 0 var(--jade);background:#e4efe5a8;border-color:#2f6f607a}.weapon-card{grid-template-columns:76px minmax(0,1fr);column-gap:11px;display:grid}.weapon-card-visual{background:radial-gradient(circle at 50% 43%, var(--weapon-glow), transparent 58%), linear-gradient(145deg, #fffcf0e0, #e0d3b494);grid-row:1/span 3;place-items:center;width:76px;height:94px;display:grid;position:relative;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.weapon-card-visual{background:radial-gradient(circle at 50% 43%, color-mix(in srgb, var(--weapon-glow) 22%, transparent), transparent 58%), linear-gradient(145deg, #fffcf0e0, #e0d3b494)}}.weapon-card-visual{border:1px solid var(--weapon-glow)}@supports (color:color-mix(in lab, red, red)){.weapon-card-visual{border:1px solid color-mix(in srgb, var(--weapon-glow) 45%, var(--line))}}.weapon-card-visual{box-shadow:inset 0 0 12px var(--weapon-glow);border-radius:10px}@supports (color:color-mix(in lab, red, red)){.weapon-card-visual{box-shadow:inset 0 0 12px color-mix(in srgb, var(--weapon-glow) 14%, transparent)}}.weapon-card-visual:before{content:"";border:1px dashed var(--weapon-glow);position:absolute;inset:7px}@supports (color:color-mix(in lab, red, red)){.weapon-card-visual:before{border:1px dashed color-mix(in srgb, var(--weapon-glow) 36%, transparent)}}.weapon-card-visual:before{border-radius:50%}.weapon-card-visual img{z-index:1;object-fit:contain;filter:drop-shadow(0 3px 3px #2d21142e);width:70px;height:70px;transition:transform .18s,filter .18s}.weapon-card-visual span{z-index:2;color:var(--weapon-deep);padding:3px 4px;position:absolute;bottom:4px;left:4px;right:4px;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.weapon-card-visual span{color:color-mix(in srgb, var(--weapon-deep) 86%, #372d23)}}.weapon-card-visual span{text-align:center;text-overflow:ellipsis;white-space:nowrap;background:#fffcefdb;border-radius:999px;font-family:ui-sans-serif,system-ui,sans-serif;font-size:.48rem;font-weight:760}.weapon-card:hover .weapon-card-visual img,.weapon-card.card--equipped .weapon-card-visual img{filter:drop-shadow(0 0 7px var(--weapon-glow));transform:scale(1.08)rotate(-2deg)}.weapon-card.card--equipped .weapon-card-visual{animation:1.8s ease-in-out infinite weapon-aura-pulse}.weapon-card>.card-title,.weapon-card>.card-copy,.weapon-card>.card-actions{grid-column:2}.card-title{justify-content:space-between;align-items:baseline;gap:8px;margin:0 0 5px;font-size:.92rem;font-weight:760;display:flex}.card-copy{color:var(--ink-soft);margin:0;font-family:ui-sans-serif,system-ui,sans-serif;font-size:.74rem;line-height:1.55}.card-actions{flex-wrap:wrap;gap:7px;margin-top:10px;display:flex}.tiny-btn{min-height:29px;color:var(--jade-deep);background:#fffdf6c7;border:1px solid #2f6f6052;padding:6px 9px;font-size:.68rem}.tiny-btn:not(:disabled):hover{background:#ddede2cc}.hero-roster-panel{gap:15px;display:grid}.rank-panel{gap:12px;display:grid}[data-rank-tier=bronze]{--rank-color:#9a6848}[data-rank-tier=silver]{--rank-color:#8594a3}[data-rank-tier=gold]{--rank-color:#c7912d}[data-rank-tier=diamond]{--rank-color:#3f9db7}[data-rank-tier=starshine]{--rank-color:#7555b7}[data-rank-tier=king]{--rank-color:#b43f35}.rank-summary{--rank-color:#9a6848;color:var(--ink);background:radial-gradient(circle at 15% 10%, var(--rank-color), transparent 44%), #fffcf2c2;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:11px;padding:13px;display:grid}@supports (color:color-mix(in lab, red, red)){.rank-summary{background:radial-gradient(circle at 15% 10%, color-mix(in srgb, var(--rank-color) 24%, transparent), transparent 44%), #fffcf2c2}}.rank-summary{border:1px solid var(--rank-color)}@supports (color:color-mix(in lab, red, red)){.rank-summary{border:1px solid color-mix(in srgb, var(--rank-color) 40%, var(--line))}}.rank-summary{box-shadow:inset 4px 0 0 var(--rank-color);border-radius:13px}.rank-emblem,.rank-tier-mark{color:#fff8e8;background:linear-gradient(145deg, var(--rank-color), var(--rank-color));place-items:center;display:grid}@supports (color:color-mix(in lab, red, red)){.rank-emblem,.rank-tier-mark{background:linear-gradient(145deg, color-mix(in srgb, var(--rank-color) 80%, white), var(--rank-color))}}.rank-emblem,.rank-tier-mark{border:2px solid var(--rank-color)}@supports (color:color-mix(in lab, red, red)){.rank-emblem,.rank-tier-mark{border:2px solid color-mix(in srgb, var(--rank-color) 72%, #3b2718)}}.rank-emblem,.rank-tier-mark{border-radius:50%;font-family:ui-serif,Songti SC,STSong,serif;font-weight:900}.rank-emblem{width:44px;height:44px;font-size:1.1rem}.rank-summary small,.rank-summary>b,.rank-rule-note,.rank-record,.rank-tier-card{font-family:ui-sans-serif,system-ui,sans-serif}.rank-summary small{color:var(--ink-faint);letter-spacing:.12em;font-size:.52rem}.rank-summary h3{margin:1px 0 2px;font-size:1.15rem}.rank-summary>b{color:var(--rank-color);white-space:nowrap;font-size:.68rem}.rank-stars{color:#5648362e;gap:3px;font-size:.8rem;display:flex}.rank-stars .rank-star--filled{color:var(--rank-color);filter:drop-shadow(0 1px 2px var(--rank-color))}@supports (color:color-mix(in lab, red, red)){.rank-stars .rank-star--filled{filter:drop-shadow(0 1px 2px color-mix(in srgb, var(--rank-color) 35%, transparent))}}.rank-record{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}.rank-record span{color:var(--ink-faint);text-align:center;background:#705b3b0e;border-radius:9px;gap:1px;padding:8px 5px;font-size:.52rem;display:grid}.rank-record b{color:var(--ink);font-size:.78rem}.rank-rule-note{color:var(--ink-soft);background:#30655712;border:1px solid #30655729;border-radius:10px;gap:3px;padding:10px;font-size:.58rem;line-height:1.4;display:grid}.rank-rule-note b{color:var(--jade-deep);font-size:.65rem}.rank-tier-list{gap:6px;display:grid}.rank-tier-card{--rank-color:#9a6848;border:1px solid var(--line);opacity:.72;background:#fffcf29e;border-radius:10px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px;display:grid}.rank-tier-card--current{border-color:var(--rank-color)}@supports (color:color-mix(in lab, red, red)){.rank-tier-card--current{border-color:color-mix(in srgb, var(--rank-color) 52%, var(--line))}}.rank-tier-card--current{box-shadow:inset 3px 0 0 var(--rank-color);opacity:1}.rank-tier-mark{width:28px;height:28px;font-size:.65rem}.rank-tier-title{justify-content:space-between;align-items:baseline;gap:5px;display:flex}.rank-tier-title b{font-size:.68rem}.rank-tier-title small,.rank-tier-card p,.rank-tier-card em{color:var(--ink-faint);font-size:.5rem}.rank-tier-card p{margin:2px 0 0;line-height:1.3}.rank-tier-card em{color:var(--rank-color);white-space:nowrap;font-style:normal;font-weight:800}.hero-odds-card{box-shadow:inset 3px 0 0 var(--vermilion);background:linear-gradient(135deg,#a93f2c1a,#0000 54%),#fffcf2b8;border:1px solid #a93f2c3d;border-radius:12px;grid-template-columns:minmax(92px,.78fr) minmax(0,1.7fr);gap:10px;padding:11px;display:grid}.hero-odds-value{border-right:1px dashed #a93f2c3d;align-content:center;justify-items:center;padding-right:9px;font-family:ui-sans-serif,system-ui,sans-serif;display:grid}.hero-odds-value span{color:var(--ink-faint);font-size:.55rem}.hero-odds-value strong{color:var(--vermilion-deep);font-variant-numeric:tabular-nums;font-size:1.55rem;line-height:1.05}.hero-odds-breakdown{align-content:center;gap:3px;font-family:ui-sans-serif,system-ui,sans-serif;display:grid}.hero-odds-breakdown b{color:var(--ink);font-size:.7rem}.hero-odds-breakdown span,.hero-odds-breakdown small{color:var(--ink-soft);font-size:.56rem;line-height:1.35}.hero-odds-breakdown small{color:var(--ink-faint)}.hero-probability-rule{color:var(--ink-soft);background:#705b3b0d;border-radius:10px;gap:4px;padding:10px 11px;font-family:ui-sans-serif,system-ui,sans-serif;font-size:.57rem;line-height:1.35;display:grid}.hero-probability-rule b{color:var(--ink);font-size:.65rem}.hero-probability-rule strong{color:var(--vermilion-deep);margin-top:3px}.hero-roster-section{gap:9px;display:grid}.hero-roster-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:0;display:grid}.hero-roster-stats>div{text-align:center;border:1px solid var(--line);background:#fffcf29e;border-radius:9px;padding:8px;font-family:ui-sans-serif,system-ui,sans-serif}.hero-roster-stats dt{color:var(--ink-faint);font-size:.53rem}.hero-roster-stats dd{color:var(--ink);font-variant-numeric:tabular-nums;margin:2px 0 0;font-size:.82rem;font-weight:800}.hero-roster-list{gap:5px;display:grid}.hero-roster-entry{border:1px solid var(--line);background:#fffcf294;border-radius:9px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px;padding:7px 9px;display:grid;box-shadow:inset 2px 0 #705b3b38}.hero-roster-entry--drawn{box-shadow:inset 3px 0 0 var(--jade);background:#e2efe494;border-color:#2f6f6052}.hero-roster-entry--partial{background:#e2ad4b1a;border-color:#a9701d47;box-shadow:inset 3px 0 #c38423b8}.hero-roster-entry--used{color:var(--ink-faint);background:#705b3b0b;border-color:#705b3b24;box-shadow:inset 3px 0 #a93f2c70}.hero-roster-index{color:var(--ink-faint);font-variant-numeric:tabular-nums;font-family:ui-sans-serif,system-ui,sans-serif;font-size:.52rem}.hero-roster-entry>div{align-items:baseline;gap:8px;min-width:0;display:flex}.hero-roster-entry b,.hero-roster-entry del{color:var(--ink);-webkit-text-decoration-color:var(--vermilion);-webkit-text-decoration-color:var(--vermilion);-webkit-text-decoration-color:var(--vermilion);text-decoration-color:var(--vermilion);font-size:.7rem;font-weight:800;text-decoration-thickness:2px}.hero-roster-entry--used del{color:var(--ink-faint)}.hero-roster-entry small,.hero-roster-entry em{color:var(--ink-faint);font-family:ui-sans-serif,system-ui,sans-serif;font-size:.52rem;font-style:normal}.hero-roster-entry--drawn em,.hero-roster-entry--partial em{color:var(--jade-deep);font-weight:700}.hero-roster-entry--partial em{color:#8d5b18}.hero-roster-entry--used em{color:var(--vermilion-deep)}.hero-roster-legend{color:var(--ink-faint);gap:3px;margin:0;font-family:ui-sans-serif,system-ui,sans-serif;font-size:.53rem;line-height:1.35;display:grid}.hero-skill-codex{border-top:1px dashed #705b3b3d;gap:9px;padding-top:13px;display:grid}.hero-skill-codex>p{color:var(--ink-faint);margin:0;font-family:ui-sans-serif,system-ui,sans-serif;font-size:.54rem;line-height:1.45}.hero-skill-codex-grid{gap:7px;display:grid}.hero-skill-codex-card{background:#fffcf2ad;border:1px solid #9a5c3738;border-radius:9px;grid-template-columns:68px repeat(2,minmax(0,1fr));gap:7px;padding:8px;font-family:ui-sans-serif,system-ui,sans-serif;display:grid;box-shadow:inset 3px 0 #a93f2c7a}.hero-skill-codex-title,.hero-skill-codex-tier{align-content:start;gap:2px;min-width:0;display:grid}.hero-skill-codex-title span{color:var(--vermilion-deep);font-family:ui-serif,Songti SC,serif;font-size:.82rem;font-weight:900}.hero-skill-codex-title small,.hero-skill-codex-tier small{color:var(--ink-faint);font-size:.46rem}.hero-skill-codex-tier{border-left:1px solid #705b3b24;padding-left:7px}.hero-skill-codex-tier b{color:var(--ink);font-size:.58rem}.hero-skill-codex-tier span{color:var(--ink-soft);font-size:.49rem;line-height:1.35}.loot-armory{gap:15px;display:grid}.loot-section{gap:9px;display:grid}.loot-section+.loot-section{border-top:1px dashed #705b3b38;padding-top:14px}.loot-section-title{justify-content:space-between;align-items:end;gap:8px;display:flex}.loot-section-title h3{color:var(--ink);margin:1px 0 0;font-size:.87rem}.loot-section-title>span{color:var(--ink-faint);text-align:right;font-family:ui-sans-serif,system-ui,sans-serif;font-size:.56rem}.loot-loadout-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;display:grid}.loot-loadout-card{--loot-color:#9b9487;min-width:0;color:var(--ink-soft);background:#fffcf28f;border:1px solid #705b3b2e;border-radius:10px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;padding:9px;display:grid}.loot-loadout-card--armed{background:linear-gradient(135deg, var(--loot-color), #fffaf0 72%)}@supports (color:color-mix(in lab, red, red)){.loot-loadout-card--armed{background:linear-gradient(135deg, color-mix(in srgb, var(--loot-color) 11%, #fffaf0), #fffaf0 72%)}}.loot-loadout-card--armed{border-color:var(--loot-color)}@supports (color:color-mix(in lab, red, red)){.loot-loadout-card--armed{border-color:color-mix(in srgb, var(--loot-color) 40%, var(--line))}}.loot-loadout-card--armed{box-shadow:inset 3px 0 0 var(--loot-color)}.loot-type-glyph{color:#fff9e9;background:var(--loot-color);border-radius:8px;place-items:center;width:30px;height:30px;font-size:.75rem;font-weight:800;display:grid}.loot-loadout-card:not(.loot-loadout-card--armed) .loot-type-glyph{color:var(--ink-faint);background:#705b3b1a}.loot-loadout-card>div{gap:2px;min-width:0;display:grid}.loot-loadout-card small,.loot-loadout-card em{color:var(--ink-faint);text-overflow:ellipsis;font-family:ui-sans-serif,system-ui,sans-serif;font-size:.52rem;font-style:normal;line-height:1.35;overflow:hidden}.loot-loadout-card b{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:.68rem;overflow:hidden}.loot-stack-list{gap:5px;display:grid}.loot-stack{--loot-color:#8f969f;border:1px solid var(--loot-color);background:#fffcf299;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:7px 9px;display:grid}@supports (color:color-mix(in lab, red, red)){.loot-stack{border:1px solid color-mix(in srgb, var(--loot-color) 32%, var(--line))}}.loot-stack{box-shadow:inset 2px 0 0 var(--loot-color);border-radius:9px}.loot-stack>span{color:var(--loot-color);font-size:.72rem;font-weight:800}.loot-stack>div{gap:1px;min-width:0;display:grid}.loot-stack b{color:var(--ink);font-size:.64rem}.loot-stack small,.loot-stack em{color:var(--ink-faint);font-family:ui-sans-serif,system-ui,sans-serif;font-size:.52rem;font-style:normal}.loot-empty{color:var(--ink-faint);background:#705b3b0b;border:1px dashed #705b3b33;border-radius:10px;justify-content:center;align-items:center;gap:10px;padding:14px;display:flex}.loot-empty>span{border:1px solid #705b3b38;border-radius:50%;place-items:center;width:34px;height:34px;display:grid}.loot-empty p{margin:0;font-size:.68rem;line-height:1.4}.loot-empty small{font-family:ui-sans-serif,system-ui,sans-serif;font-size:.53rem}.loot-tier-list{gap:5px;display:grid}.loot-tier{--loot-color:#8f969f;border:1px solid var(--loot-color);background:#fffcf28c;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;padding:7px 8px;display:grid}@supports (color:color-mix(in lab, red, red)){.loot-tier{border:1px solid color-mix(in srgb, var(--loot-color) 29%, var(--line))}}.loot-tier{border-radius:9px}.loot-tier-level{color:#fff9ec;background:var(--loot-color);border-radius:7px;place-items:center;width:28px;height:28px;font-family:ui-sans-serif,system-ui,sans-serif;font-size:.65rem;font-weight:800;display:grid}.loot-tier>div{min-width:0}.loot-tier-heading{justify-content:space-between;align-items:baseline;gap:6px;display:flex}.loot-tier-heading b{color:var(--ink);font-size:.62rem}.loot-tier-heading small,.loot-tier p{color:var(--ink-faint);font-family:ui-sans-serif,system-ui,sans-serif;font-size:.5rem}.loot-tier p{text-overflow:ellipsis;white-space:nowrap;margin:2px 0 0;line-height:1.35;overflow:hidden}.reward-overlay{z-index:50;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#1d1a16ad;place-items:center;padding:20px;display:grid;position:fixed;inset:0;overflow:auto}.reward-card{background:radial-gradient(circle at 50% 0, #a93f2c14, transparent 15rem), var(--paper-light);border:1px solid #fff4d685;border-radius:22px;width:min(700px,100%);padding:clamp(20px,4vw,34px);box-shadow:0 30px 80px #0e0c0966}.reward-card h2{letter-spacing:.08em;text-align:center;margin:0 0 7px;font-size:clamp(1.35rem,3vw,2rem)}.reward-card>p{color:var(--ink-soft);text-align:center;margin:0 auto 20px;font-family:ui-sans-serif,system-ui,sans-serif;font-size:.82rem;line-height:1.6}.survival-settlement{width:min(560px,100%);color:var(--ink);background:linear-gradient(90deg,#3a775b1c,#fffbefd1,#a03d2b1c);border:1px solid #4d402d33;border-radius:13px;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:12px;margin:-8px auto 18px;padding:12px 14px;display:grid}.survival-settlement>div{gap:1px;display:grid}.survival-settlement>div:last-child{text-align:right}.survival-settlement small,.survival-settlement span,.survival-settlement em{font-family:ui-sans-serif,system-ui,sans-serif}.survival-settlement small,.survival-settlement span{color:var(--ink-soft);font-size:.6rem}.survival-settlement b{font-variant-numeric:tabular-nums;font-size:1.15rem}.survival-settlement em{color:#fff7e3;background:var(--jade-deep);white-space:nowrap;border-radius:999px;padding:4px 8px;font-size:.6rem;font-style:normal;font-weight:780}.survival-settlement[data-result=loss] em{background:var(--vermilion-deep)}.survival-settlement[data-result=draw] em{color:#533c1f;background:#dfbd79}.rank-settlement{width:min(520px,100%);color:var(--ink);background:#e8f1e1b8;border:1px solid #3770583d;border-radius:12px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:11px;margin:-8px auto 18px;padding:10px 12px;display:grid}.rank-settlement[data-result=loss]{background:#f2e5dabd;border-color:#9846303d}.rank-settlement[data-result=draw]{background:#f0e8cbc2;border-color:#9b732f42}.rank-settlement-mark{color:#fff7e3;background:var(--jade-deep);border-radius:50%;place-items:center;width:38px;height:38px;font-weight:900;display:grid}.rank-settlement[data-result=loss] .rank-settlement-mark{background:var(--vermilion-deep)}.rank-settlement[data-result=draw] .rank-settlement-mark{color:#523817;background:#dfbd79}.rank-settlement small,.rank-settlement p,.rank-settlement em{font-family:ui-sans-serif,system-ui,sans-serif;display:block}.rank-settlement small{color:var(--ink-faint);font-size:.52rem}.rank-settlement b{font-size:.75rem}.rank-settlement p,.rank-settlement em{color:var(--ink-soft);margin:2px 0 0;font-size:.58rem;line-height:1.35}.rank-settlement em{color:#8a5c20;font-style:normal;font-weight:700}.choice-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;display:grid}.choice-card{min-height:156px;color:var(--ink);border:1px solid var(--line);text-align:left;background:#fffdf7c7;border-radius:13px;padding:15px;transition:transform .15s,border-color .15s,box-shadow .15s}.choice-card:not(:disabled):hover{border-color:var(--vermilion);transform:translateY(-2px);box-shadow:0 9px 20px #45301a1f}.toast{z-index:60;color:#fff8e8;background:#24211cf0;border:1px solid #fff8e82e;border-radius:10px;max-width:min(360px,100vw - 40px);padding:11px 15px;font-family:ui-sans-serif,system-ui,sans-serif;font-size:.78rem;line-height:1.45;position:fixed;bottom:20px;right:20px;box-shadow:0 10px 30px #1c17113d}.rules-list{counter-reset:rules;gap:8px;margin:0;padding:0;list-style:none;display:grid}.rules-list li{min-height:24px;color:var(--ink-soft);counter-increment:rules;padding-left:30px;font-family:ui-sans-serif,system-ui,sans-serif;font-size:.76rem;line-height:1.5;position:relative}.rules-list li:before{content:counter(rules, cjk-ideographic);width:22px;height:22px;color:var(--vermilion-deep);background:#a93f2c14;border-radius:6px;place-items:center;font-family:ui-serif,serif;font-size:.66rem;font-weight:760;display:grid;position:absolute;top:0;left:0}.footnote{color:var(--ink-faint);margin:13px 0 0;font-family:ui-sans-serif,system-ui,sans-serif;font-size:.68rem;line-height:1.5}.empty-state{min-height:120px;color:var(--ink-faint);border:1px dashed var(--line-strong);text-align:center;border-radius:12px;place-items:center;padding:18px;font-family:ui-sans-serif,system-ui,sans-serif;font-size:.76rem;line-height:1.5;display:grid}.camp-intro{text-align:left;grid-template-columns:auto minmax(0,1fr);gap:18px;margin-bottom:14px}.camp-intro h3,.camp-intro p{margin:0}.camp-intro p{margin:7px 0 14px}.hero-mark{aspect-ratio:1;color:#fff3d5;text-align:center;background:linear-gradient(145deg,#b64f39,#76291f);border:2px solid #672219;border-radius:50% 48% 52% 46%;place-items:center;width:78px;font-size:1rem;font-weight:800;line-height:1.3;display:grid;box-shadow:inset 0 0 0 3px #ffefd32b,0 8px 18px #66261b2e}.rival-ladder{color:#f7ead0;background:radial-gradient(circle at 92% 0,#bd482b3d,#0000 15rem),linear-gradient(135deg,#312b22f5,#1c1d1af5);border:1px solid #66472d94;border-radius:14px;margin-bottom:14px;padding:15px;box-shadow:inset 0 1px #fff6da14}.rival-ladder-title{justify-content:space-between;align-items:end;gap:14px;margin-bottom:11px;display:flex}.rival-ladder-title h3,.rival-ladder-title p,.rival-level-card p{margin:0}.rival-ladder-title .eyebrow{color:#dcae6a}.rival-ladder-title h3{margin-top:3px;font-size:.94rem}.rival-ladder-title p{color:#f6e8ccad;text-align:right;max-width:340px;font-family:ui-sans-serif,system-ui,sans-serif;font-size:.66rem;line-height:1.45}.rival-level-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;display:grid}.rival-level-card{color:#f7ead0b8;background:#fff7e20e;border:1px solid #f4daac1f;border-radius:9px;align-content:start;gap:3px;min-height:105px;padding:9px 10px;display:grid}.rival-level-card>span,.rival-level-card small,.rival-level-card p{font-family:ui-sans-serif,system-ui,sans-serif}.rival-level-card>span{color:#c99958;letter-spacing:.08em;font-size:.56rem;font-weight:800}.rival-level-card b{color:#fff2d4;font-size:.78rem}.rival-level-card small{color:#f7ead08f;font-size:.55rem}.rival-level-card p{margin-top:3px;font-size:.6rem;line-height:1.42}.rival-level-card--active{color:#fff4d9;background:linear-gradient(135deg,#ac3f277a,#742b1e40);border-color:#ebb262a8;box-shadow:inset 3px 0 #d69a4d,0 5px 16px #0d0b0838}.rival-duel{background:linear-gradient(90deg,#2b685121,#0000 42%,#9d342521),#fffbefb8;border:1px solid #55412a3b;border-radius:12px;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:stretch;gap:10px;margin:0 0 12px;padding:10px 12px 9px;display:grid;position:relative;overflow:hidden}.rival-duel-side{align-content:center;gap:2px;display:grid}.rival-duel-side--ai{text-align:right;animation:.38s cubic-bezier(.2,.8,.25,1) rival-heart-hit}.rival-duel-side>span,.rival-duel-side small,.rival-duel-versus,.rival-duel>p{font-family:ui-sans-serif,system-ui,sans-serif}.rival-duel-side>span{color:var(--ink-faint);letter-spacing:.07em;font-size:.54rem;font-weight:760}.rival-duel-side b{font-size:.86rem}.rival-duel-side small{color:var(--ink-soft);font-size:.58rem}.duel-hearts{color:#4d3f2c2b;gap:2px;font-size:.74rem;display:flex}.rival-duel-side--ai .duel-hearts{justify-content:flex-end}.duel-hearts i{font-style:normal}.duel-hearts .duel-heart--full{color:#a43a2c;filter:drop-shadow(0 1px 2px #76271d2e)}.rival-duel-versus{text-align:center;place-content:center;min-width:94px;display:grid}.rival-duel-versus em{color:var(--vermilion-deep);letter-spacing:.12em;font-family:ui-serif,Songti SC,serif;font-size:1.05rem;font-style:normal;font-weight:900}.rival-duel-versus b{font-size:.62rem}.rival-duel-versus small{color:var(--ink-faint);font-size:.52rem}.rival-duel-progress{background:#4b3c291c;border-radius:999px;grid-column:1/-1;height:3px;overflow:hidden}.rival-duel-progress span{border-radius:inherit;background:linear-gradient(90deg,#b16b32,#a43a2c);height:100%;transition:width .24s linear;display:block}.rival-duel>p{color:var(--ink-faint);text-align:center;grid-column:1/-1;margin:-2px 0 0;font-size:.54rem;line-height:1.35}@keyframes rival-heart-hit{0%,to{filter:none;transform:translate(0)}28%{filter:brightness(1.35)saturate(1.5);transform:translate(3px)}52%{transform:translate(-2px)}}.map-select{border:1px solid var(--line);background:#fffbef7a;border-radius:14px;padding:15px}.map-select-title,.map-card-name,.map-hud,.map-hud-stats{justify-content:space-between;align-items:center;gap:10px;display:flex}.map-select-title h3,.map-select-title p{margin:0}.map-select-title p{max-width:330px;color:var(--ink-soft);text-align:right;font-family:ui-sans-serif,system-ui,sans-serif;font-size:.7rem;line-height:1.45}.map-picker{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;display:grid}.boss-wave-card{color:#4d211a;background:linear-gradient(115deg,#f6dca7db,#fff8ddb8);border:1px solid #8b3a2559;border-radius:11px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;margin:8px 0;padding:8px 10px;display:grid;box-shadow:inset 4px 0 #9b3b2c}.boss-wave-glyph{color:#fff3cf;background:linear-gradient(145deg,#9b3b2c,#4b1814);border:2px solid #5b2119;border-radius:50%;place-items:center;width:34px;height:34px;font-family:ui-serif,Songti SC,STSong,serif;font-size:1rem;font-weight:900;display:grid}.boss-wave-card>div{min-width:0}.boss-wave-card small,.boss-wave-card b,.boss-wave-card p{display:block}.boss-wave-card small,.boss-wave-card em{font-family:ui-sans-serif,system-ui,sans-serif;font-size:.54rem}.boss-wave-card b{margin-top:1px;font-size:.72rem}.boss-wave-card p{color:var(--ink-soft);margin:2px 0 0;font-family:ui-sans-serif,system-ui,sans-serif;font-size:.56rem}.boss-wave-card em{color:#7e2c21;white-space:nowrap;background:#fffae2b3;border:1px solid #7e2c2138;border-radius:999px;padding:4px 7px;font-style:normal}:is(.board-wrap,.map-card)[data-map-theme=canyon]{--map-ground:#d6c99f;--map-ground-hi:#eee3be;--map-road:#b28759;--map-road-edge:#755437;--map-surround:#c1ae80;--map-wash:#774b252e}:is(.board-wrap,.map-card)[data-map-theme=forest]{--map-ground:#bbc99b;--map-ground-hi:#dce4b8;--map-road:#9d7951;--map-road-edge:#654b33;--map-surround:#91a77a;--map-wash:#255c3d33}:is(.board-wrap,.map-card)[data-map-theme=river]{--map-ground:#becfca;--map-ground-hi:#e0e9df;--map-road:#919d96;--map-road-edge:#5f6d67;--map-surround:#91b1b5;--map-wash:#31647738}.map-card{min-width:0;color:var(--ink);background:linear-gradient(145deg, var(--map-ground-hi), var(--map-surround));text-align:left;border:1px solid #3a302333;border-radius:11px;padding:9px;transition:transform .14s,border-color .14s,box-shadow .14s}.map-card:not(:disabled):hover{transform:translateY(-2px)}.map-card--selected{border-color:var(--vermilion);box-shadow:0 0 0 2px #a93f2c26,0 7px 14px #372a1b1a}.map-card-preview{grid-template-columns:repeat(9,1fr);gap:1px;margin-bottom:8px;display:grid}.map-card-tile{aspect-ratio:1;background:var(--map-ground);border-radius:2px}.map-card-name small{color:var(--vermilion-deep);background:#fff8e69e;border-radius:999px;padding:2px 5px;font-family:ui-sans-serif,system-ui,sans-serif;font-size:.55rem}.map-card-copy{color:#2d271eb3;margin-top:5px;font-family:ui-sans-serif,system-ui,sans-serif;font-size:.62rem;line-height:1.4;display:block}.map-hud{align-items:end;margin:2px 2px 8px}.map-hud>div:first-child{gap:2px;display:grid}.map-hud b{font-size:1rem}.map-hud small{color:var(--ink-soft);font-family:ui-sans-serif,system-ui,sans-serif;font-size:.66rem}.map-hud-stats{flex-wrap:wrap;justify-content:flex-end}.map-hud-stats span{color:var(--ink-soft);border:1px solid var(--line);background:#fffbefb3;border-radius:999px;padding:4px 7px;font-family:ui-sans-serif,system-ui,sans-serif;font-size:.63rem}.unit-inspector{z-index:30;width:min(360px,100% - 20px);color:var(--ink);-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);pointer-events:none;background:#fffbeff5;border:1px solid #2f6f6061;border-radius:12px;gap:9px;padding:10px 12px;display:grid;position:absolute;top:10px;box-shadow:0 12px 30px #2d231638,inset 3px 0 #2f6f6080}.unit-inspector--left{left:10px}.unit-inspector--right{right:10px}.unit-inspector:before{content:"";border-block:9px solid #0000;width:0;height:0;position:absolute;top:30px}.unit-inspector--left:before{border-left:10px solid #2f6f608c;right:-10px}.unit-inspector--right:before{border-right:10px solid #2f6f608c;left:-10px}.unit-inspector-title{grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:10px;display:grid}.unit-inspector-title h3{margin:1px 0 0;font-size:.94rem}.unit-inspector-title h3 small{color:var(--vermilion-deep);font-family:ui-sans-serif,system-ui,sans-serif;font-size:.64rem}.inspector-glyph{color:#f8eed7;background:#302c25;border-radius:8px;place-items:center;min-width:38px;height:38px;font-weight:800;display:grid}.inspector-glyph--hero{background:linear-gradient(145deg,#b54e39,#76291f);font-size:.72rem}.inspector-weapon{max-width:180px;color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;background:#b8873c1a;border:1px solid #9a6e2f38;border-radius:999px;padding:4px 7px;font-family:ui-sans-serif,system-ui,sans-serif;font-size:.61rem;overflow:hidden}.inspector-weapon--loot{--loot-color:#a67736;color:var(--loot-color)}@supports (color:color-mix(in lab, red, red)){.inspector-weapon--loot{color:color-mix(in srgb, var(--loot-color) 78%, #382f24)}}.inspector-weapon--loot{border-color:var(--loot-color)}@supports (color:color-mix(in lab, red, red)){.inspector-weapon--loot{border-color:color-mix(in srgb, var(--loot-color) 42%, transparent)}}.inspector-weapon--loot{box-shadow:inset 2px 0 0 var(--loot-color)}.inspector-weapon-art{background:radial-gradient(circle, var(--weapon-glow), transparent 68%), #fffcf0b3;place-items:center;width:54px;height:54px;display:grid;position:relative;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.inspector-weapon-art{background:radial-gradient(circle, color-mix(in srgb, var(--weapon-glow) 24%, transparent), transparent 68%), #fffcf0b3}}.inspector-weapon-art{border:1px solid var(--weapon-glow)}@supports (color:color-mix(in lab, red, red)){.inspector-weapon-art{border:1px solid color-mix(in srgb, var(--weapon-glow) 46%, var(--line))}}.inspector-weapon-art{box-shadow:inset 0 0 9px var(--weapon-glow);border-radius:10px}@supports (color:color-mix(in lab, red, red)){.inspector-weapon-art{box-shadow:inset 0 0 9px color-mix(in srgb, var(--weapon-glow) 18%, transparent)}}.inspector-weapon-art img{object-fit:contain;filter:drop-shadow(0 2px 2px #2d21142e);width:48px;height:48px}.inspector-weapon-art small{color:var(--weapon-deep);padding:2px 3px;position:absolute;bottom:3px;left:3px;right:3px;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.inspector-weapon-art small{color:color-mix(in srgb, var(--weapon-deep) 88%, #352a20)}}.inspector-weapon-art small{text-align:center;text-overflow:ellipsis;white-space:nowrap;background:#fffdf4db;border-radius:999px;font-family:ui-sans-serif,system-ui,sans-serif;font-size:.42rem;font-weight:760;line-height:1.2}.inspector-weapon-art--equipped{border-color:var(--weapon-glow)}@supports (color:color-mix(in lab, red, red)){.inspector-weapon-art--equipped{border-color:color-mix(in srgb, var(--weapon-glow) 68%, var(--line))}}.inspector-weapon-art--equipped{box-shadow:inset 0 0 11px var(--weapon-glow), 0 0 9px var(--weapon-glow)}@supports (color:color-mix(in lab, red, red)){.inspector-weapon-art--equipped{box-shadow:inset 0 0 11px color-mix(in srgb, var(--weapon-glow) 28%, transparent), 0 0 9px color-mix(in srgb, var(--weapon-glow) 45%, transparent)}}.inspector-weapon-art--equipped{animation:1.8s ease-in-out infinite weapon-aura-pulse}.inspector-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;max-width:190px;display:flex}.inspector-close{min-height:26px;color:var(--jade-deep);pointer-events:auto;background:#fffdf6cc;border:1px solid #2f6f6047;border-radius:999px;padding:4px 7px;font-family:ui-sans-serif,system-ui,sans-serif;font-size:.58rem}.unit-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:0;display:grid}.unit-stat-grid>div{background:#705b3b0f;border-radius:7px;padding:6px 8px;font-family:ui-sans-serif,system-ui,sans-serif}.unit-stat-grid dt{color:var(--ink-faint);font-size:.56rem}.unit-stat-grid dd{margin:2px 0 0;font-size:.72rem;font-weight:760}.unit-ability--resting{color:#31584d;background:radial-gradient(circle at 91% 20%,#d1e8df9e,#0000 32%),#e5f0eabd;border-color:#3763563d;box-shadow:inset 3px 0 #37635675}.hero-progression{background:linear-gradient(145deg,#99362514,#b9843314);border:1px solid #99362533;border-radius:9px;gap:7px;padding:8px;font-family:ui-sans-serif,system-ui,sans-serif;display:grid}.hero-progression-head{justify-content:space-between;align-items:flex-end;gap:8px;display:flex}.hero-progression-head>div{gap:1px;display:grid}.hero-progression-head span,.hero-progression-head small{color:var(--ink-faint);font-size:.54rem}.hero-progression-head b{color:var(--vermilion-deep);font-size:.68rem}.hero-xp-track{background:#684a2c21;border-radius:999px;height:5px;display:block;overflow:hidden}.hero-xp-track>span{border-radius:inherit;background:linear-gradient(90deg,#a33327,#d29436);height:100%;transition:width .24s;display:block}.hero-skill-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.hero-skill-card{background:#fffdf6c7;border:1px solid #6f543026;border-radius:7px;gap:2px;min-width:0;padding:6px 7px;display:grid}.hero-skill-card>span,.hero-skill-card>small{color:var(--ink-faint);font-size:.48rem;line-height:1.35}.hero-skill-card>b{color:var(--ink);font-size:.66rem}.hero-skill-card>p{color:var(--ink-soft);margin:1px 0 0;font-size:.5rem;line-height:1.35}.hero-skill-card--unlocked{border-color:#ae4d2d59;box-shadow:inset 2px 0 #ae4d2da3}.hero-skill-card--locked{opacity:.52;filter:grayscale(.55)}.unit-ability{color:var(--jade-deep);margin:0;font-family:ui-sans-serif,system-ui,sans-serif;font-size:.64rem;line-height:1.4}.unit-ability--loot{color:#8a5e24}.unit-simulation-note{color:var(--ink-faint);margin:0;font-family:ui-sans-serif,system-ui,sans-serif;font-size:.56rem;line-height:1.4}.board-wrap[data-map-theme]{background:radial-gradient(circle at 50% 40%, var(--map-wash), transparent 58%), var(--map-surround)}.battlefield{isolation:isolate;position:relative}.cell:disabled{cursor:default;opacity:1}.board-wrap[data-map-theme] .cell:not(.cell--path):not(.cell--locked):not(.cell--farmland):not(.cell--valid){background:#fffdf6}.cell--path{z-index:2;background:repeating-linear-gradient(115deg, #ffffff14 0 7px, #2d20140f 7px 11px), var(--map-road);border-color:var(--map-road-edge);border-style:solid;overflow:visible;box-shadow:inset 0 0 0 2px #fff4da1f,inset 0 7px 14px #ffffff14}.path-road{z-index:0;place-items:center;display:grid;position:absolute;inset:0}.path-link{z-index:0;background:var(--map-road);border-color:var(--map-road-edge);position:absolute}.path-link--e{border-block:1px solid var(--map-road-edge);inset:34% -3px 34% 50%}.path-link--w{border-block:1px solid var(--map-road-edge);inset:34% 50% 34% -3px}.path-link--n{border-inline:1px solid var(--map-road-edge);inset:-3px 34% 50%}.path-link--s{border-inline:1px solid var(--map-road-edge);inset:50% 34% -3px}.path-node{z-index:1;aspect-ratio:1;color:#372517a6;background:#fff4da38;border-radius:50%;place-items:center;width:42%;font-family:ui-sans-serif,system-ui,sans-serif;font-size:clamp(.42rem,.8vw,.64rem);font-weight:800;display:grid;position:relative}.attack-range{z-index:7;left:var(--range-left);top:var(--range-top);width:var(--range-width);height:var(--range-height);pointer-events:none;background:radial-gradient(circle,#2f6f6014 0 64%,#2f6f6029 65% 68%,#0000 69%);border:1px solid #23584cb3;border-radius:50%;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 2px #eef6e457,inset 0 0 18px #2f6f601a}.cell--attacking{z-index:10;overflow:visible}.piece--striking{transform-origin:50%;will-change:transform, filter}.piece--striking[data-attack-kind=melee]{animation:attacker-melee var(--attack-duration,.56s) cubic-bezier(.16, .82, .24, 1) both}.piece--striking[data-attack-kind=pierce]{animation:attacker-pierce var(--attack-duration,.56s) cubic-bezier(.12, .82, .2, 1) both}.piece--striking[data-attack-kind=ranged]{animation:attacker-ranged var(--attack-duration,.56s) cubic-bezier(.2, .72, .3, 1) both}.piece--striking[data-attack-kind=area]{animation:attacker-area var(--attack-duration,.56s) cubic-bezier(.14, .72, .22, 1) both}.battlefield-impact{z-index:11;pointer-events:none;border-radius:9px;position:absolute;inset:-4px;overflow:hidden}.battlefield-impact:before,.battlefield-impact:after{content:"";pointer-events:none;position:absolute}.battlefield-impact:before{border-radius:inherit;border:2px solid #ffd36880;animation:.38s ease-out 75ms both battlefield-impact-vignette;inset:0;box-shadow:inset 0 0 28px #cd3f1f33}.battlefield-impact:after{filter:blur(2px);background:linear-gradient(90deg,#0000,#fff7c18c,#0000);width:18%;animation:.42s ease-out 70ms both battlefield-impact-sweep;top:-16%;bottom:-16%;left:48%;transform:skew(-24deg)}.battlefield-impact--light:before{border-color:#ffe09152;box-shadow:inset 0 0 16px #ce5a271f}.battlefield-impact--finisher:before{border-color:#ffe87fc7;box-shadow:inset 0 0 42px #ae251852,0 0 14px #f0a33447}.unit-attack-fx{z-index:9;pointer-events:none;color:#f5c751;text-shadow:0 0 3px #fff4b7,0 1px 2px #56221180;font-size:clamp(.55rem,1vw,.82rem);font-weight:900;position:absolute}.unit-attack-fx--melee{isolation:isolate;color:#ffe28a;text-shadow:0 0 4px #fff1ad,0 0 8px #d8431fdb,0 1px 2px #562211b3;width:30px;height:30px;animation:blade-slash var(--attack-duration,1s) ease-out both;place-items:center;font-size:clamp(.66rem,1.25vw,.94rem);display:grid;top:5%;left:52%}.unit-attack-fx--melee:before{z-index:-1;content:"";filter:drop-shadow(0 0 3px #ffe585eb);transform-origin:50%;width:28px;height:3px;animation:double-slash var(--attack-duration,1s) cubic-bezier(.2, .78, .25, 1) both;background:linear-gradient(90deg,#0000,#fff6c7 16%,#f3b43c 48%,#bd321f 82%,#0000);border-radius:999px;position:absolute;top:48%;left:50%;transform:translate(-50%,-50%)rotate(-38deg);box-shadow:0 8px 0 -.5px #e0431fe0,0 8px 4px #ffcf4d85}.unit-attack-fx--melee:after{z-index:2;content:"✦";color:#fff5b3;text-shadow:-7px 2px #f4a32d,5px -5px #d94a25,5px 6px #ffd551e6,0 0 8px #fff0a8;animation:melee-spark var(--attack-duration,1s) ease-out both;font-size:1rem;line-height:1;position:absolute;top:42%;left:72%}.unit-attack-fx--ranged{color:#fff0aa;animation:arrow-shot var(--attack-duration,1s) cubic-bezier(.2, .7, .3, 1) both;top:34%;left:58%}.unit-attack-fx--pierce{isolation:isolate;color:#e9f5d1;text-shadow:0 0 5px #eaffbcf2,0 1px 2px #294a30b8;width:42px;height:22px;animation:spear-thrust var(--attack-duration,1s) cubic-bezier(.14, .78, .24, 1) both;place-items:center;display:grid;top:24%;left:44%}.unit-attack-fx--pierce:before{z-index:-1;content:"";width:48px;height:4px;animation:pierce-trail var(--attack-duration,1s) ease-out both;background:linear-gradient(90deg,#0000,#f7ffd8 18%,#8bcf9a 58%,#2f6f60 88%,#0000);border-radius:999px;position:absolute;left:-5px;box-shadow:0 0 7px #8cd59be0}.unit-attack-fx--pierce:after{content:"››";color:#f6ffd9;letter-spacing:-.18em;text-shadow:0 0 6px #78b989;font-size:.88rem;position:absolute;right:-5px}.unit-attack-fx--area{isolation:isolate;color:#ffe7a3;text-shadow:0 0 5px #fff1ba,0 1px 2px #5b2714b8;width:50px;height:50px;animation:cavalry-impact var(--attack-duration,1s) cubic-bezier(.12, .72, .24, 1) both;background:radial-gradient(circle,#ffdd8247,#b74b2726 42%,#0000 66%);border:2px solid #b74b27c7;border-radius:50%;place-items:center;display:grid;top:50%;left:50%;box-shadow:0 0 0 4px #d272321f,inset 0 0 10px #ffe49d75}.unit-attack-fx--area:before{z-index:-1;content:"";animation:cavalry-ring var(--attack-duration,1s) ease-out both;border:2px dashed #c25b2b9e;border-radius:50%;position:absolute;inset:-8px}.unit-attack-fx--area:after{content:"•••";color:#8a532aad;letter-spacing:.08em;animation:cavalry-dust var(--attack-duration,1s) ease-out both;font-size:.86rem;position:absolute;bottom:-6px;right:-4px}.battlefield-actors{z-index:12;pointer-events:none;position:absolute;inset:0}.path-enemy{left:var(--enemy-left);top:var(--enemy-top);aspect-ratio:1;opacity:0;filter:drop-shadow(0 4px 5px #2a1b114d);width:clamp(22px,4.25%,34px);transition:left .26s linear,top .26s linear,opacity .16s,transform .16s;position:absolute;transform:translate(-50%,-50%)scale(.7)}.path-enemy--visible{opacity:1;transform:translate(-50%,-50%)scale(1)}.path-enemy--defeated,.path-enemy--escaped{z-index:16;opacity:1;transition:none}.path-enemy--defeated{animation:.46s cubic-bezier(.2,.74,.24,1) both enemy-defeated}.path-enemy--defeated .path-enemy-body{animation:.46s ease-out both enemy-defeated-body}.path-enemy--defeated:after{z-index:8;content:"破";color:#fff0a8;text-shadow:-7px -4px #d74427,7px 3px #f3b43f,0 0 8px #fff0a8;font-family:ui-serif,Songti SC,STSong,serif;font-size:clamp(.7rem,1.8vw,1rem);font-weight:900;animation:.46s ease-out both defeated-mark;position:absolute;top:50%;left:50%}.path-enemy--escaped{animation:.43s cubic-bezier(.22,.72,.35,1) both enemy-escaped}.path-enemy--escaped .path-enemy-body{animation:.43s ease-out both gate-impact}.path-enemy--escaped:after{z-index:8;content:"撞";color:#fff1d4;background:#9f2f24;border:1px solid #4a1410db;border-radius:50%;padding:4px;font-family:ui-serif,Songti SC,STSong,serif;font-size:clamp(.55rem,1.5vw,.82rem);font-weight:900;line-height:1;animation:.43s ease-out both escaped-mark;position:absolute;top:48%;left:50%;box-shadow:0 0 0 4px #b52c1f38,0 0 10px #b82b1db8}.path-enemy--boss{width:clamp(27px,5.1%,40px)}.path-enemy-body{color:#fff1d3;background:linear-gradient(145deg,#714134,#351f1a);border:2px solid #291713;border-radius:50% 50% 46% 46%;place-items:center;width:100%;height:100%;font-size:clamp(.78rem,2vw,1.15rem);font-weight:800;animation:.42s ease-in-out infinite alternate enemy-march;display:grid;box-shadow:inset 0 0 0 2px #ffe8c11f}.path-enemy[data-hit-kind=melee]{--hit-recoil-x:5px;--hit-recoil-y:1px;--hit-recoil-rotate:6deg;--hit-recoil-scale:.8}.path-enemy[data-hit-kind=pierce]{--hit-recoil-x:4px;--hit-recoil-y:-1px;--hit-recoil-rotate:3deg;--hit-recoil-scale:.86}.path-enemy[data-hit-kind=ranged]{--hit-recoil-x:2px;--hit-recoil-y:0px;--hit-recoil-rotate:2deg;--hit-recoil-scale:.9}.path-enemy[data-hit-kind=area]{--hit-recoil-x:0px;--hit-recoil-y:4px;--hit-recoil-rotate:-3deg;--hit-recoil-scale:.76}.path-enemy--boss{--hit-recoil-scale:.9}.path-enemy--hit .path-enemy-hp{animation:.3s ease-out 80ms both enemy-hp-kick}.path-enemy--hit .path-enemy-hp-fill{transition-duration:.15s;transition-delay:70ms}.path-enemy--boss .path-enemy-body{color:#fff0b5;background:linear-gradient(145deg,#9b3b2c,#4d1814)}.path-enemy--guarded .path-enemy-body{box-shadow:inset 0 0 0 2px #ffe8c11f,0 0 0 3px #517b8b6b,0 0 10px #517b8b7a}.path-enemy--stunned .path-enemy-body{animation:.26s steps(2,end) infinite enemy-stunned;box-shadow:inset 0 0 0 2px #fff3ae59,0 0 0 3px #ecb13061,0 0 14px #fad450bd}.path-enemy--rooted .path-enemy-body{animation-play-state:paused;box-shadow:inset 0 0 0 2px #dff4ff42,0 0 0 3px #4e8fa96b,0 0 12px #5ab0cb9e}.path-enemy--revived .path-enemy-body{animation:.42s ease-in-out infinite alternate enemy-march,1.2s ease-in-out infinite revived-pulse}.path-enemy--revived.path-enemy--stunned .path-enemy-body{animation:.26s steps(2,end) infinite enemy-stunned,1.2s ease-in-out infinite revived-pulse}.path-enemy--revived.path-enemy--rooted .path-enemy-body{animation:1.2s ease-in-out infinite revived-pulse}.path-enemy--hit:not(.path-enemy--defeated):not(.path-enemy--escaped):not(.path-enemy--consumed) .path-enemy-body{animation:.31s cubic-bezier(.12,.82,.22,1) 80ms both enemy-hit-recoil}.path-enemy--consumed{animation:.65s ease-in both enemy-consumed}.enemy-state-mark{z-index:4;color:#eaf7ff;background:#406a7a;border:1px solid #d4e8ec;border-radius:50%;place-items:center;width:16px;height:16px;font-size:.45rem;font-weight:900;display:grid;position:absolute;top:-8px;right:-8px}.enemy-state-mark--revived{color:#e8ffd7;background:#54762f;border-color:#d9ebb7;top:auto;bottom:-7px;right:-7px}.enemy-state-mark--hero-stun,.enemy-state-mark--hero-root{color:#3c2818;background:#f0c653;border-color:#fff0ad;width:19px;height:19px;line-height:.8;top:-9px;left:-9px;right:auto}.enemy-state-mark--hero-root{color:#e9f9ff;background:#39768e;border-color:#bce9f7}.enemy-state-mark--hero-stun small,.enemy-state-mark--hero-root small{font-size:.36rem;line-height:1;position:absolute;top:100%}.piece-control{z-index:8;color:#fff4cf;pointer-events:none;background:#2c1b3ec2;border:1px solid #e5cfffcc;border-radius:50%;place-content:center;animation:.78s ease-in-out infinite alternate controlled-pulse;display:grid;position:absolute;inset:4px}.piece-control--charm{color:#fff0f5;background:#78244fc7;border-color:#ffbedcdb}.piece-control b{font-size:.78rem;line-height:1}.piece-control small{font-family:ui-sans-serif,system-ui,sans-serif;font-size:.42rem}.boss-skill-event{z-index:25;color:#fff2d1;text-align:center;pointer-events:none;background:#4a1814eb;border:1px solid #f8cf87c7;border-radius:999px;max-width:min(88%,480px);padding:7px 12px;font-family:ui-sans-serif,system-ui,sans-serif;font-size:clamp(.54rem,1.2vw,.68rem);animation:1.8s both boss-event;position:absolute;top:8px;left:50%;transform:translate(-50%);box-shadow:0 6px 20px #32140f47}.hero-skill-events{z-index:24;pointer-events:none;position:absolute;inset:0;overflow:hidden}.hero-skill-event,.hero-skill-visual{position:absolute;inset:0}.hero-skill-copy{right:8px;bottom:calc(8px + var(--hero-event-index,0) * 38px);color:#fff3d1;background:#3e231be0;border:1px solid #f2c263a3;border-radius:8px;min-width:150px;padding:5px 9px;font-family:ui-sans-serif,system-ui,sans-serif;animation:2.2s both hero-skill-copy;display:grid;position:absolute;box-shadow:0 6px 16px #28191233}.hero-skill-copy b{font-size:.64rem}.hero-skill-copy small{color:#fff3d1bd;font-size:.48rem}.hero-skill-visual:before,.hero-skill-visual:after{content:"";pointer-events:none;position:absolute}[data-hero-id=zhang-fei] .hero-skill-visual:before{aspect-ratio:1;border:5px double #d14a2ad1;border-radius:50%;width:34px;animation:1.25s ease-out both hero-roar;top:50%;left:50%;box-shadow:0 0 0 8px #f19b3633}[data-hero-id=huang-zhong] .hero-skill-visual:before{content:"➶  ➶  ➶  ➶  ➶  ➶  ➶  ➶";color:#e9ab39d6;letter-spacing:clamp(12px,4vw,34px);text-shadow:0 0 7px #ffe697db;width:130%;font-size:clamp(.9rem,3vw,1.6rem);line-height:2.4;animation:1.45s ease-in both hero-arrow-sweep;top:4%;bottom:4%;left:-35%;transform:rotate(-8deg)}[data-hero-id=guan-yu] .hero-skill-visual:before{filter:drop-shadow(0 0 7px #97e9b4c7);border-top:7px solid #439365d1;border-radius:50%;width:55%;height:65%;animation:1.25s ease-out both hero-crescent-sweep;top:18%;left:-15%}[data-hero-id=zhao-yun] .hero-skill-visual:before{background:linear-gradient(90deg,#0000,#dcefff 38%,#fff4ad 70%,#0000);width:65%;height:4px;animation:1.25s ease-out both hero-spear-rush;top:48%;left:-15%;transform:skew(-24deg);box-shadow:0 -14px #b7def280,0 14px #f5d57773}[data-control-kind=stun] .hero-skill-visual:after,[data-control-kind=root] .hero-skill-visual:after{background:radial-gradient(circle,#0000 20%,#557e9d33 100%);animation:1.1s ease-out both hero-control-flash;inset:0}[data-control-kind=knockback] .hero-skill-visual:after{background:linear-gradient(90deg,#0000,#efe6bf52);width:36%;animation:1s ease-out both hero-knockback-flash;top:8%;bottom:8%;right:0}@keyframes revived-pulse{50%{filter:drop-shadow(0 0 6px #82d25fcc)}}@keyframes enemy-consumed{to{opacity:0;filter:blur(3px);transform:translate(-50%,-50%)scale(.15)rotate(25deg)}}@keyframes controlled-pulse{to{transform:scale(1.04);box-shadow:0 0 12px #ab7ddfb8}}@keyframes enemy-stunned{50%{transform:translate(-2px)rotate(-4deg)}to{transform:translate(2px)rotate(4deg)}}@keyframes hero-skill-copy{0%{opacity:0;transform:translate(8px)}10%,78%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(5px)}}@keyframes hero-roar{0%{opacity:.95;transform:translate(-50%,-50%)scale(.4)}to{opacity:0;transform:translate(-50%,-50%)scale(11)}}@keyframes hero-arrow-sweep{0%{opacity:0;transform:translate(-18%)rotate(-8deg)}18%{opacity:1}to{opacity:0;transform:translate(48%)rotate(-8deg)}}@keyframes hero-crescent-sweep{0%{opacity:0;transform:translate(-25%)rotate(-20deg)scale(.7)}25%{opacity:1}to{opacity:0;transform:translate(245%)rotate(18deg)scale(1.5)}}@keyframes hero-spear-rush{0%{opacity:0;transform:translate(-20%)skew(-24deg)}20%{opacity:1}to{opacity:0;transform:translate(190%)skew(-24deg)}}@keyframes hero-control-flash{0%{opacity:0}30%{opacity:1}to{opacity:0}}@keyframes hero-knockback-flash{0%{opacity:.8;transform:translate(0)}to{opacity:0;transform:translate(-170%)}}@keyframes boss-event{0%{opacity:0;transform:translate(-50%,-8px)scale(.96)}12%,78%{opacity:1;transform:translate(-50%)scale(1)}to{opacity:0;transform:translate(-50%,-5px)scale(.98)}}.path-enemy-hp{z-index:2;background:#221a16b3;border:1px solid #221411c7;border-radius:999px;height:6px;position:absolute;bottom:calc(100% + 3px);left:-10%;right:-10%;overflow:hidden}.path-enemy-hp-fill{width:var(--enemy-hp);background:linear-gradient(90deg,#8d251c,#df6448);height:100%;transition:width .22s;display:block}.enemy-hit-fx,.hit-ring,.damage-number{pointer-events:none;position:absolute}.enemy-hit-fx{z-index:4;inset:0}.enemy-hit-fx:before{z-index:6;content:"✦";color:#fff0a0;text-shadow:-9px -2px #f9b437,8px -5px #d94125,7px 7px #ffd55f,-6px 8px #b62d1be0,0 0 9px #fff2a9;font-size:clamp(.9rem,2.2vw,1.35rem);line-height:1;animation:.43s ease-out 80ms both hit-burst;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.enemy-hit-fx:after{z-index:5;content:"";background:radial-gradient(circle,#fff2abf5 0 8%,#eb5822bd 10% 18%,#0000 34%);border:2px solid #ffc236c7;border-radius:50%;animation:.43s ease-out 80ms both impact-bloom;position:absolute;inset:-8px}.enemy-hit-fx[data-hit-kind=pierce]:before{content:"✧";color:#efffd0;text-shadow:-10px -2px #8fcf77,9px -4px #e8f9af,7px 7px #367e5d,0 0 10px #f5ffd7}.enemy-hit-fx[data-hit-kind=ranged]:before{content:"✣";color:#fff5c2;text-shadow:-8px -1px #d79e35,9px -3px #fff0a3,5px 7px #8b5425,0 0 9px #fff6c8}.enemy-hit-fx[data-hit-kind=area]:before{content:"✹";color:#ffe0a0;text-shadow:-11px -4px #c75a29,10px -5px #f6ad3f,8px 9px #82351f,-7px 10px #e58836,0 0 12px #ffe6a9;font-size:clamp(1rem,2.5vw,1.52rem)}.enemy-hit-fx[data-impact=finisher]:after{background:radial-gradient(circle,#fffcd3 0 10%,#f25d23d1 12% 24%,#0000 43%);border-width:3px;inset:-12px}.hit-ring{border:3px solid #ffd054e6;border-radius:50%;animation:.43s ease-out 80ms both enemy-hit-ring;inset:-6px}.enemy-hit-fx[data-impact=heavy] .hit-ring,.enemy-hit-fx[data-impact=finisher] .hit-ring{border-width:4px;inset:-10px;box-shadow:0 0 9px #f49330ad}.impact-streaks{z-index:3;pointer-events:none;animation:.39s ease-out 75ms both impact-streaks;position:absolute;inset:-10px;transform:rotate(-12deg)}.impact-streaks:before,.impact-streaks:after{content:"";background:linear-gradient(90deg,#0000,#fff2a7f2,#d93d1ed9,#0000);border-radius:999px;width:38px;height:2px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(34deg);box-shadow:0 0 5px #ffd55ab8}.impact-streaks:after{transform:translate(-50%,-50%)rotate(-42deg)}.damage-number{z-index:5;color:#8e2118;font-variant-numeric:tabular-nums;text-shadow:0 1px #fff4d9,0 0 5px #fff5d2b8;font-family:ui-sans-serif,system-ui,sans-serif;font-size:clamp(.68rem,1.7vw,.96rem);font-weight:900;animation:.62s cubic-bezier(.18,.78,.28,1) .11s both damage-float;top:-9px;left:50%}.damage-number[data-impact=heavy]{color:#c84a1f;text-shadow:0 1px #fff1c1,0 0 7px #f5a837d6;font-size:clamp(.8rem,2vw,1.12rem);animation-name:damage-float-heavy;top:-12px}.damage-number[data-impact=finisher]{color:#a91f17;text-shadow:0 1px #fff1b5,0 0 9px #ffbd3ef0,2px 2px #6f1b122e;font-size:clamp(.9rem,2.25vw,1.28rem);animation-name:damage-float-finisher;top:-14px}.cell--attacking .piece:after{content:"";border-radius:inherit;animation:attack-pulse var(--attack-duration,.56s) ease-out both;border:2px solid #e5b852;position:absolute;inset:-2px}.combat-panel{grid-template-columns:1fr}.lane{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px}.enemy,.gate{aspect-ratio:1;color:#fff0d4;background:#4a2b22;border:1px solid #2e1915;border-radius:50%;place-items:center;width:34px;font-size:.75rem;font-weight:800;display:grid}.gate{color:#e8f2df;background:var(--jade-deep);border-color:#183d35}.lane-copy{gap:6px;min-width:0;display:grid}.lane-copy>div:first-child{color:var(--ink-soft);justify-content:space-between;gap:8px;font-family:ui-sans-serif,system-ui,sans-serif;font-size:.7rem;display:flex}.lane-copy>div:first-child b{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.combat-feedback{color:var(--ink-soft);flex-wrap:wrap;gap:5px 12px;font-family:ui-sans-serif,system-ui,sans-serif;font-size:.65rem;display:flex}.combat-feedback strong{color:var(--ink);font-variant-numeric:tabular-nums}@keyframes attacker-melee{0%{filter:brightness(.94);transform:translate(-2px,2px)scale(.94)rotate(-3deg)}24%{transform:translate(-3px,3px)scale(.9)rotate(-5deg)}42%{filter:brightness(1.25);transform:translate(6px,-4px)scale(1.08)rotate(4deg)}58%{transform:translate(2px,-1px)scale(1.02)}to{filter:none;transform:translate(0)scale(1)}}@keyframes attacker-pierce{0%{filter:brightness(.94);transform:translate(-3px)scaleX(.94)}28%{transform:translate(-5px)scaleX(.9)}46%{filter:brightness(1.22);transform:translate(7px)scaleX(1.1)}64%{transform:translate(2px)scaleX(1.02)}to{filter:none;transform:translate(0)scale(1)}}@keyframes attacker-ranged{0%{transform:translate(0)scale(1)}22%{filter:brightness(1.12);transform:translate(2px)scaleX(1.04)scaleY(.96)}40%{transform:translate(-3px)scale(.96)}68%{transform:translate(1px)scale(1.01)}to{filter:none;transform:translate(0)scale(1)}}@keyframes attacker-area{0%{filter:brightness();transform:translateY(-2px)scale(1.02)}28%{transform:translateY(-5px)scale(1.08)}44%{filter:brightness(1.28);transform:translateY(4px)scaleX(1.12)scaleY(.82)}64%{transform:translateY(-1px)scale(1.03)}to{filter:none;transform:translateY(0)scale(1)}}@keyframes battlefield-impact-vignette{0%{opacity:0}24%{opacity:1}to{opacity:0}}@keyframes battlefield-impact-sweep{0%{opacity:0;transform:translate(-260%)skew(-24deg)}24%{opacity:.8}to{opacity:0;transform:translate(260%)skew(-24deg)}}@keyframes enemy-march{to{transform:translateY(-2px)rotate(2deg)}}@keyframes enemy-hit-recoil{0%{filter:brightness()saturate();transform:translate(0)scale(1)}18%{transform:translate(var(--hit-recoil-x,3px), var(--hit-recoil-y,0)) scale(var(--hit-recoil-scale,.84)) rotate(var(--hit-recoil-rotate,4deg));filter:brightness(2.35)saturate(.1)contrast(1.15)}42%{transform:translate(var(--hit-recoil-x,3px), var(--hit-recoil-y,0)) scale(var(--hit-recoil-scale,.84)) rotate(var(--hit-recoil-rotate,4deg));filter:brightness(2.05)saturate(.18)}68%{filter:brightness(1.24)saturate(1.25);transform:translate(-1px)scale(1.06)rotate(-1deg)}to{filter:none;transform:translate(0)scale(1)}}@keyframes enemy-hp-kick{0%,to{transform:translateY(0)scaleX(1)}28%{filter:brightness(1.35);transform:translateY(-2px)scaleX(1.08)}62%{transform:translateY(1px)scaleX(.98)}}@keyframes enemy-hit-ring{0%{opacity:1;transform:scale(.62)}to{opacity:0;transform:scale(1.3)}}@keyframes damage-float{0%{opacity:0;transform:translate(-50%,6px)scale(.62)}18%{opacity:1;transform:translate(-50%,-2px)scale(1.1)}56%{opacity:1;transform:translate(-50%,-13px)scale(1)}to{opacity:0;transform:translate(-50%,-29px)scale(.9)}}@keyframes damage-float-heavy{0%{opacity:0;transform:translate(-50%,7px)scale(.48)rotate(-4deg)}18%{opacity:1;transform:translate(-50%,-3px)scale(1.25)rotate(2deg)}52%{opacity:1;transform:translate(-50%,-16px)scale(1.05)}to{opacity:0;transform:translate(-50%,-34px)scale(.92)}}@keyframes damage-float-finisher{0%{opacity:0;transform:translate(-50%,9px)scale(.4)rotate(-7deg)}16%{opacity:1;transform:translate(-50%,-4px)scale(1.42)rotate(3deg)}48%{opacity:1;transform:translate(-50%,-18px)scale(1.12)}to{opacity:0;transform:translate(-50%,-40px)scale(.96)}}@keyframes impact-streaks{0%{opacity:0;transform:rotate(-12deg)scale(.35)}24%{opacity:1;transform:rotate(-5deg)scale(1.08)}to{opacity:0;transform:rotate(5deg)scale(1.55)}}@keyframes attack-pulse{0%{opacity:.9;transform:scale(.84)}to{opacity:0;transform:scale(1.16)}}@keyframes blade-slash{0%{opacity:0;transform:translate(-10px,12px)scale(.5)rotate(-42deg)}18%{opacity:1}48%{opacity:1;transform:translate(7px,-7px)scale(1.3)rotate(8deg)}to{opacity:0;transform:translate(17px,-17px)scale(1.45)rotate(24deg)}}@keyframes double-slash{0%{opacity:0;transform:translate(-72%,25%)scaleX(.2)rotate(-38deg)}16%{opacity:1}48%{opacity:1;transform:translate(-45%,-50%)scaleX(1.15)rotate(-38deg)}to{opacity:0;transform:translate(-12%,-115%)scaleX(1.35)rotate(-38deg)}}@keyframes melee-spark{0%,30%{opacity:0;transform:translate(-50%,-50%)scale(.2)rotate(-35deg)}48%{opacity:1;transform:translate(-50%,-50%)scale(1.25)rotate(8deg)}to{opacity:0;transform:translate(-38%,-76%)scale(1.7)rotate(34deg)}}@keyframes hit-burst{0%{opacity:0;transform:translate(-50%,-50%)scale(.2)rotate(-25deg)}28%{opacity:1;transform:translate(-50%,-50%)scale(1.35)rotate(8deg)}to{opacity:0;transform:translate(-50%,-50%)scale(1.9)rotate(38deg)}}@keyframes impact-bloom{0%{opacity:0;transform:scale(.25)}24%{opacity:1}to{opacity:0;transform:scale(1.45)}}@keyframes enemy-defeated{0%{opacity:1;filter:drop-shadow(0 4px 5px #2a1b114d);transform:translate(-50%,-50%)scale(1)}42%{opacity:1;transform:translate(-50%,-62%)scale(1.08)rotate(-7deg)}to{opacity:0;filter:blur(2px)drop-shadow(0 0 8px #ad351c8c);transform:translate(-50%,-90%)scale(.32)rotate(15deg)}}@keyframes enemy-defeated-body{0%{opacity:1;filter:saturate()}52%{opacity:.72;filter:saturate(1.5)brightness(1.3)}to{opacity:0;filter:grayscale()}}@keyframes defeated-mark{0%{opacity:0;transform:translate(-50%,-50%)scale(.35)rotate(-18deg)}34%{opacity:1;transform:translate(-50%,-50%)scale(1.2)rotate(4deg)}to{opacity:0;transform:translate(-50%,-92%)scale(1.55)rotate(16deg)}}@keyframes enemy-escaped{0%{opacity:1;transform:translate(-50%,-50%)scale(1)}30%{opacity:1;transform:translate(-38%,-50%)scale(1.16)rotate(6deg)}58%{opacity:1;transform:translate(-52%,-50%)scale(.94)rotate(-7deg)}to{opacity:0;transform:translate(-44%,-50%)scale(1.3)rotate(4deg)}}@keyframes gate-impact{0%{filter:saturate()}30%{filter:saturate(1.7)brightness(1.35);box-shadow:0 0 0 5px #b12d1f47,inset 0 0 0 2px #ffe8c14d}to{filter:saturate(.65)}}@keyframes escaped-mark{0%{opacity:0;transform:translate(-50%,-50%)scale(.4)}30%{opacity:1;transform:translate(-50%,-50%)scale(1.2)}to{opacity:0;transform:translate(-50%,-50%)scale(1.65)}}@keyframes arrow-shot{0%{opacity:0;transform:translate(-7px,5px)scale(.65)rotate(-10deg)}12%{opacity:1}72%{opacity:1}to{opacity:0;transform:translate(42px,-7px)scale(.9)rotate(-10deg)}}@keyframes spear-thrust{0%{opacity:0;transform:translate(-15px,9px)scaleX(.45)rotate(-12deg)}16%{opacity:1}54%{opacity:1;transform:translate(12px,-4px)scaleX(1.12)rotate(-12deg)}to{opacity:0;transform:translate(30px,-10px)scaleX(1.24)rotate(-12deg)}}@keyframes pierce-trail{0%{opacity:0;transform-origin:0;transform:scaleX(.1)}28%{opacity:1}to{opacity:0;transform-origin:0;transform:scaleX(1.25)}}@keyframes cavalry-impact{0%{opacity:0;transform:translate(-50%,-50%)scale(.28)}24%{opacity:1;transform:translate(-50%,-50%)scale(.78)}58%{opacity:.95;transform:translate(-50%,-50%)scale(1.08)}to{opacity:0;transform:translate(-50%,-50%)scale(1.42)}}@keyframes cavalry-ring{0%{opacity:.9;transform:scale(.38)rotate(0)}to{opacity:0;transform:scale(1.35)rotate(35deg)}}@keyframes cavalry-dust{0%,24%{opacity:0;transform:translate(-9px,8px)scale(.35)}48%{opacity:.9}to{opacity:0;transform:translate(14px,-3px)scale(1.35)}}@keyframes weapon-aura-pulse{0%,to{opacity:.72;filter:saturate(.92)}50%{opacity:1;filter:saturate(1.25)brightness(1.08)}}@keyframes weapon-orbit{to{transform:rotate(360deg)}}@keyframes resting-drift{0%,to{opacity:.38;transform:translateY(2px)scale(.88)}50%{opacity:.76;transform:translate(3px,-3px)scale(1.05)}}.sr-only{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}@media (width<=980px){.main-grid{grid-template-columns:1fr}.side-panel{position:relative;top:auto}.library-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=680px){.game-shell{padding:18px 12px 30px}.topbar{flex-direction:column;align-items:flex-start;gap:14px}.resource-row{justify-content:flex-start;width:100%}.audio-settings{width:auto;max-width:360px;margin:0 auto;position:fixed;top:96px;left:12px;right:12px}.audio-settings:before{display:none}.game-panel,.side-panel{border-radius:16px}.game-panel{--board-cell-size:42px;padding:14px 10px}.recruit-strip{gap:var(--board-gap)}.recruit-slot{border-radius:7px;min-height:0;padding:2px}.token{border-radius:5px;min-height:0;font-size:1rem}.board-wrap{border-radius:13px;padding:6px}.battlefield{grid-template-columns:repeat(9, var(--board-cell-size));gap:var(--board-gap);min-width:0}.piece{inset:3px}.combat-panel,.choice-grid,.library-grid{grid-template-columns:1fr}.choice-card{min-height:118px}.camp-intro{text-align:center;grid-template-columns:1fr}.rival-ladder-title{flex-direction:column;align-items:flex-start}.rival-ladder-title p{text-align:left}.rival-level-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.rival-duel{grid-template-columns:minmax(0,1fr) 64px minmax(0,1fr);gap:6px;padding-inline:9px}.rival-duel-versus{min-width:0}.rival-duel>p{text-align:left}.survival-settlement{gap:7px;padding-inline:10px}.hero-mark{width:66px}.map-select-title,.map-hud{flex-direction:column;align-items:flex-start}.map-select-title p{text-align:left}.map-picker{scroll-snap-type:x proximity;grid-template-columns:repeat(3,minmax(145px,1fr));padding:2px 2px 6px;overflow-x:auto}.map-card{scroll-snap-align:start}.map-hud-stats{justify-content:flex-start}.boss-wave-card{grid-template-columns:auto minmax(0,1fr)}.boss-wave-card em{grid-column:1/-1;justify-self:start}.unit-inspector-title{grid-template-columns:auto minmax(0,1fr) auto}.unit-inspector{width:auto;max-height:calc(100% - 16px);left:8px;right:8px;overflow-y:auto}.unit-inspector:before{display:none}.inspector-actions{grid-column:1/-1;justify-self:start}.inspector-weapon-art{grid-area:1/3}.inspector-weapon{max-width:min(72vw,300px)}.unit-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.path-enemy{width:clamp(20px,4.25%,32px)}}@media (width<=380px){.game-panel{--board-cell-size:40px}.resource-pill{padding-inline:8px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.path-enemy,.path-enemy-hp-fill{transition:none!important}.damage-number{opacity:1;transform:translate(-50%)}.unit-attack-fx--melee:before,.unit-attack-fx--melee:after,.unit-attack-fx--pierce,.unit-attack-fx--pierce:before,.unit-attack-fx--area,.unit-attack-fx--area:before,.unit-attack-fx--area:after,.piece--striking,.battlefield[data-impact],.battlefield-impact,.battlefield-impact:before,.battlefield-impact:after,.path-enemy--hit .path-enemy-body,.path-enemy--hit .path-enemy-hp,.enemy-hit-fx:before,.enemy-hit-fx:after,.hit-ring,.impact-streaks,.damage-number,.path-enemy--defeated,.path-enemy--defeated .path-enemy-body,.path-enemy--defeated:after,.path-enemy--escaped,.path-enemy--escaped .path-enemy-body,.path-enemy--escaped:after,.token-weapon-fx,.token-weapon-fx:before,.equipped-weapon-orbit,.inspector-weapon-art--equipped,.weapon-card.card--equipped .weapon-card-visual,.rival-duel-side--ai,.token--hero-part:after{animation:none!important}.piece--striking,.battlefield[data-impact]{filter:none!important;transform:none!important}.battlefield-impact,.impact-streaks{display:none}.path-enemy--hit:not(.path-enemy--defeated):not(.path-enemy--escaped):not(.path-enemy--consumed) .path-enemy-body{filter:brightness(1.32)saturate(.72);outline:2px solid #ffde7dcc;transform:none}.path-enemy--defeated,.path-enemy--escaped{opacity:1;transform:translate(-50%,-50%)scale(1)}.path-enemy--defeated .path-enemy-body{opacity:.22;filter:grayscale()}.path-enemy--escaped .path-enemy-body{filter:saturate(1.5)brightness(1.18)}.path-enemy--defeated:after,.path-enemy--escaped:after{opacity:1;transform:translate(-50%,-50%)}}.board-wrap[data-map-theme] .cell:not(.cell--path):not(.cell--locked):not(.cell--farmland){background:#fffdf6}.board-wrap[data-map-theme] .cell--locked{color:#3e5e47;background:linear-gradient(140deg,#b7cdb6,#9fbba6);border:1px solid #7d9c86;box-shadow:inset 0 0 0 1px #d4dfc644}.board-wrap[data-map-theme] .cell--locked:hover{background:#c3d8bf}.board-wrap[data-map-theme] .cell--purchase-selected{outline-offset:-3px;background:#d5e1bb;outline:3px solid #ab7738}.cell--locked .lock-mark{color:#476c51;font-size:23px}.cell--locked .cell-label{color:#385140;font-size:10px}.land-purchase-bar{background:#e3ead955;border:1px solid #8ba18b66;border-radius:10px;align-items:center;gap:10px;margin:12px 0;padding:13px 16px;display:flex}.land-purchase-bar>div{flex:1}.land-purchase-bar b{font-size:14px;display:block}.land-purchase-bar span{color:#64735e;margin-top:4px;font-size:11px;display:block}.land-purchase-bar small{color:#54704f;white-space:nowrap}.land-purchase-bar .primary-btn{white-space:nowrap;min-height:44px;padding:10px 14px}.land-cancel{background:0 0;border:0;min-width:36px;min-height:44px;font-size:24px}@media (width<=520px){.land-purchase-bar{gap:6px;padding:10px}.land-purchase-bar span{font-size:10px}.land-purchase-bar .primary-btn{padding:9px;font-size:12px}}.source-credit{text-align:center;color:var(--ink-soft);margin:20px auto 0;font-size:11px;line-height:1.8}.source-credit a{text-underline-offset:3px}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}:root{--flow-paper:#eee9da;--flow-ink:#343b31;--flow-muted:#7a7d6f}body{background:radial-gradient(ellipse at 50% 0%,#fbf8ed 0,transparent 65%),var(--flow-paper)}button{-webkit-tap-highlight-color:transparent}.game-shell{width:min(1140px,100%);min-height:100dvh;padding:25px 36px 24px}.topbar{gap:12px;margin:0 auto 28px}.brand{gap:11px}.brand .seal{width:39px;height:42px;box-shadow:none;border-radius:3px;font-size:22px}.brand h1{letter-spacing:.12em;font-size:21px}.brand p{letter-spacing:.14em;margin-top:6px;font-size:10px}.camp-header-tools{align-items:center;gap:28px;display:flex}.camp-header-tools>span{color:var(--flow-muted);letter-spacing:.12em;font-size:12px}.main-grid{display:block}.game-panel{box-shadow:none;background:0 0;border:0;padding:0;overflow:visible}.game-panel:before,.side-panel:before{display:none}.camp-opening{border-top:1px solid #68695229;justify-content:space-between;align-items:center;padding:28px 0 40px;display:flex}.camp-opening .eyebrow{color:#8c543c;letter-spacing:.22em;margin:0 0 17px;font-size:11px}.camp-opening h2{letter-spacing:.09em;color:#32392e;margin:0 0 18px;font-size:clamp(32px,4vw,48px);font-weight:600;line-height:1.45}.camp-opening p:not(.eyebrow){color:#7c7c6a;font-size:12px;line-height:2}.camp-ink{isolation:isolate;place-items:center;width:43%;height:225px;display:grid;position:relative;overflow:hidden}.camp-ink:before,.camp-ink:after{content:"";z-index:-1;clip-path:polygon(0 95%,25% 26%,34% 50%,55% 2%,72% 55%,82% 35%,100% 95%);background:linear-gradient(140deg,#78917b33,#0000 75%);position:absolute;inset:20% -20% -25%}.camp-ink:after{background:#6e7b6220;transform:translate(28px,42px)scale(1.2)}.camp-ink>span{color:#40513e;opacity:.87;font-family:STKaiti,KaiTi,Songti SC,serif;font-size:130px;transform:rotate(-5deg)}.camp-ink i{writing-mode:vertical-rl;color:#a34d3e;letter-spacing:.25em;border:1px solid #ae5543;padding:7px 4px;font-size:10px;font-style:normal;position:absolute;top:20%;right:13%}.map-select{box-shadow:none;background:0 0;border:0;margin:0;padding:0}.map-select-title{align-items:center;margin-bottom:17px}.map-select-title .eyebrow{display:none}.map-select-title h3{letter-spacing:.13em;font-size:17px;font-weight:600}.map-select-title p{color:var(--flow-muted);font-size:11px}.map-picker{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.map-card{box-shadow:none;background:#f7f4e978;border:1px solid #7d806a38;border-radius:7px;padding:12px;transition:border-color .18s,background .18s,transform .18s}.map-card:hover{transform:translateY(-2px)}.map-card--selected{background:#e3e8d9;border:1px solid #455f4e;box-shadow:inset 0 0 0 1px #455f4e}.map-card--selected .map-card-name:after{content:"已选";color:#46604d;margin-left:auto;font-size:10px}.map-card-preview{background:#b5c4a866;border:0;border-radius:3px;gap:2px;height:116px;padding:9px}.map-card-tile{background:#91a88970;border:0;border-radius:1px;min-height:0}.map-card-tile--path{background:#e0ceaa;box-shadow:inset 0 0 0 1px #a9916740}.map-card-name{justify-content:flex-start;gap:9px;margin-top:12px}.map-card-name b{letter-spacing:.1em;font-size:17px}.map-card-name small{background:0 0;border:0;padding:0;font-size:10px}.map-card-copy{color:#787c6b;margin-top:6px;font-size:10px;line-height:1.6}.camp-preparation{border-block:1px solid #7d806a28;justify-content:space-between;align-items:center;gap:18px;margin:27px 0;padding:20px 0;display:flex}.camp-preparation>div>span{font-size:14px;font-weight:600}.camp-preparation p{color:var(--flow-muted);margin:6px 0 0;font-size:11px}.camp-preparation nav{flex-wrap:wrap;gap:8px;display:flex}.camp-preparation button{background:#fffdf44d;border:1px solid #7d806a38;border-radius:4px;min-height:44px;padding:10px 14px;font-size:12px}.camp-preparation button:hover{background:#e4e8d7}.camp-preparation button small{color:#8b8c78;margin-left:5px}.camp-departure{justify-content:space-between;align-items:center;gap:20px;display:flex}.camp-departure>div{align-items:baseline;gap:16px;display:flex}.camp-departure>div span,.camp-departure small{color:var(--flow-muted);font-size:11px}.camp-departure strong{letter-spacing:.15em;font-size:22px}.camp-departure .primary-btn{border-radius:5px;justify-content:space-between;gap:30px;min-width:225px;min-height:54px;padding:14px 24px;display:flex}.primary-btn{background:#a94d35;border:1px solid #8e4230;box-shadow:0 3px #703424}.primary-btn:not(:disabled):hover{background:#97422d}.primary-btn:not(:disabled):active{transform:translateY(2px);box-shadow:0 1px #703424}.game-shell:is(.game-shell--setup,.game-shell--combat){width:min(780px,100%);padding:18px 24px}.game-shell:is(.game-shell--setup,.game-shell--combat) .topbar{grid-template-columns:1fr auto 1fr;max-width:none;margin-bottom:8px;display:grid}.field-icon{color:#465340;background:#f6f2e5;border:1px solid #6e705a55;border-radius:50%;place-items:center;width:42px;height:42px;font-size:21px;display:grid;box-shadow:0 2px #8b8c7430}.field-icon:hover{background:#e4e7d7}.field-location{text-align:center}.field-location>span{color:#878875;letter-spacing:.14em;font-size:10px}.field-location h1{letter-spacing:.2em;text-indent:.2em;margin:3px 0 0;font-size:28px;font-weight:600;line-height:1.3}.field-header-tools{justify-content:flex-end;align-items:center;gap:8px;display:flex}.field-header-tools .resource-pill--audio{width:36px;height:36px;box-shadow:none;background:0 0;border:0;justify-content:center;gap:0;min-height:0;padding:0;font-size:0}.field-header-tools .resource-pill--audio>span{color:#68745f;background:0 0;border:1px solid #8b957962;width:30px;height:30px;font-size:13px}.field-header-tools .resource-pill--audio>b{display:none}.field-status{grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;padding:10px 2px 14px;display:grid}.field-gold{color:#8f7035;font-variant-numeric:tabular-nums;align-items:baseline;gap:8px;font-size:25px;display:inline-flex}.field-gold b{color:#404632;font-size:24px;font-weight:600}.field-gold small{color:#858774;font-size:10px}.field-wave{align-items:baseline;gap:12px;display:flex}.field-wave b{letter-spacing:.06em;font-size:16px;font-weight:600}.field-wave span{color:#838570;font-size:10px}.field-intel{text-align:right;color:#80816b;background:0 0;border:0;gap:3px;min-height:40px;padding:0;font-size:10px;display:grid}.field-intel b{color:#ae5944;letter-spacing:3px;margin-left:7px;font-size:12px}.field-intel>span:last-child b{color:#7d8b6f}.game-shell:is(.game-shell--setup,.game-shell--combat) .board-wrap{border:2px solid #5e654f;border-radius:5px;margin:0;padding:6px;overflow:visible;box-shadow:0 4px #77745145,0 16px 40px #59543510}.game-shell:is(.game-shell--setup,.game-shell--combat) .battlefield{grid-template-rows:repeat(6,minmax(0,1fr));grid-template-columns:repeat(9,minmax(0,1fr));gap:2px;width:100%;height:min(53dvh,466px)}.game-shell:is(.game-shell--setup,.game-shell--combat) .cell{aspect-ratio:auto;border-radius:2px;min-height:0}.game-shell:is(.game-shell--setup,.game-shell--combat) .piece{width:auto;height:auto;inset:2px}.game-shell:is(.game-shell--setup,.game-shell--combat) .piece-glyph{font-size:clamp(25px,3.2vw,41px)}.game-shell:is(.game-shell--setup,.game-shell--combat) .cell--locked .lock-mark{opacity:.5;font-size:20px}.game-shell:is(.game-shell--setup,.game-shell--combat) .cell .cell-label{display:none}.field-context{align-items:center;gap:10px;height:54px;margin:5px 0;padding:7px 3px;display:flex}.field-context>div{flex:1;min-width:0}.field-context b{font-size:12px}.field-context small{color:#858572;margin-top:3px;font-size:10px;display:block}.field-context .primary-btn{white-space:nowrap;border-radius:4px;min-height:40px;padding:9px 14px;font-size:12px}.context-close{color:#858572;background:0 0;border:0;width:34px;height:42px;font-size:23px}.detail-button{color:#5f7153;white-space:nowrap;background:0 0;border:0;min-height:40px;margin-left:auto;padding:10px 2px 10px 10px;font-size:11px}.land-legend{color:#858572;align-items:center;gap:6px;font-size:10px;display:flex}.land-legend i{background:#adc3a9;border:1px solid #8b9d7d;width:9px;height:9px;display:inline-block}.land-legend i:nth-of-type(2){background:#fffdf6;border-color:#c8c6b6;margin-left:7px}.field-hand-heading{justify-content:space-between;align-items:center;margin:0 1px 9px;display:flex}.field-hand-heading h2{letter-spacing:.12em;color:#575e48;margin:0;font-size:12px;font-weight:600}.field-hand-heading span{color:#8b8c78;font-size:10px}.game-panel .recruit-strip{grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;width:100%;margin:0;padding:0;display:grid}.game-panel .recruit-slot{aspect-ratio:auto;border-radius:5px;width:100%;height:79px;padding:2px}.game-panel .recruit-strip .token{border-radius:4px;width:100%;min-width:0;height:75px;min-height:0;margin:0}.game-panel .recruit-strip .token>b{font-size:34px}.game-panel .recruit-strip .token--empty{background:#f3eedf;border:1px dashed #b4b39c}.game-panel .action-row{flex-wrap:wrap;align-items:center;gap:9px;margin:13px 0 0;display:flex}.game-panel .action-row>.primary-btn{border-radius:5px;flex:1.1;min-height:48px;font-size:15px}.game-panel .action-row>.secondary-btn{color:#59654e;min-height:48px;box-shadow:none;background:#ece9da;border:1px solid #84907760;border-radius:5px;flex:1;padding:10px;font-size:13px}.game-panel .action-row>.odds-note{text-align:right;background:0 0;border:0;flex-basis:100%;padding:0;font-size:10px}.field-message{color:#858571;text-align:center;white-space:nowrap;text-overflow:ellipsis;min-height:18px;margin:13px 0 0;font-size:11px;line-height:1.6;overflow:hidden}.field-drawer{width:min(410px,100%);max-width:none;height:100dvh;max-height:none;color:var(--ink);background:#f4f0e4;border:0;border-left:1px solid #a8ab9470;margin:0;padding:0;position:fixed;inset:0 0 0 auto;overflow:hidden;box-shadow:-12px 0 60px #383c2b20}.field-drawer[open]{flex-direction:column;animation:.2s ease-out drawer-enter;display:flex}.field-drawer::backdrop{-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);background:#30362835}.drawer-heading{border-bottom:1px solid #969b7e35;flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:10px;padding:25px 25px 19px;display:flex}.drawer-heading>div>span{color:#949681;letter-spacing:.16em;font-size:10px}.drawer-heading h2{letter-spacing:.11em;margin:8px 0 0;font-size:25px;font-weight:600}.drawer-heading p{color:#839077;margin:9px 0 0;font-size:10px}.drawer-close{color:#6f795e;background:0 0;border:1px solid #a1a78b50;border-radius:50%;flex-shrink:0;width:38px;height:38px;font-size:25px}.drawer-scroll{overscroll-behavior:contain;padding:20px 24px max(24px,env(safe-area-inset-bottom));flex:1;min-height:0;overflow-y:auto}.field-drawer .side-panel{box-shadow:none;background:0 0;border:0;border-radius:0;padding:0;position:static;overflow:visible}.field-drawer .tab-row{z-index:5;background:#f4f0e4;border-bottom:1px solid #969b7e30;border-radius:0;gap:5px;margin:0 0 20px;padding:0 0 12px;display:flex;position:sticky;top:-20px}.field-drawer .tab-btn{border-radius:3px;flex:1;min-height:40px;padding:10px 7px;font-size:11px}.field-drawer .tab-btn--active{box-shadow:none;color:#405c44;background:#dce3d3}.field-drawer .unit-inspector{width:100%;max-width:none;max-height:none;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;pointer-events:auto;background:0 0;border:0;margin-bottom:20px;padding:0;position:static;inset:auto}.field-drawer .unit-inspector:before{display:none}.field-drawer .unit-inspector-title{flex-wrap:wrap}.field-drawer .rival-ladder{background:0 0;border:0;margin-bottom:20px;padding:0}.field-drawer .rival-level-grid{grid-template-columns:1fr}.field-drawer .rival-duel{margin:0 0 20px}.field-drawer .map-hud{margin:15px 0}.field-drawer .map-hud-stats{flex-wrap:wrap}.field-drawer .combat-panel{margin:16px 0;padding:12px}.field-drawer .lane{display:flex}.field-drawer .combat-feedback{flex-wrap:wrap}.field-drawer .lane-copy{min-width:0}.field-drawer .rival-duel p,.field-drawer .log-line{white-space:normal;font-size:10px}.roster-probabilities{color:#737963;border-bottom:1px solid #a6aa8e45;margin-bottom:18px;padding-bottom:12px;font-size:11px}.roster-probabilities summary{cursor:pointer;padding:10px 0}.roster-probabilities .hero-odds-card{margin-top:15px}.pause-menu{gap:12px;display:grid}.pause-map{padding:18px 0 25px}.pause-map span{color:#9b9c85;letter-spacing:.15em;font-size:10px}.pause-map h3{letter-spacing:.16em;margin:16px 0 12px;font-size:34px}.pause-map p{color:#798469;font-size:12px}.pause-menu>button{border-radius:5px;min-height:48px}.leave-match{color:#8b826c;border-top:1px solid #b9bda035;margin-top:20px;padding-top:20px;font-size:12px}.leave-match summary{cursor:pointer}.leave-match p{margin:15px 0;line-height:1.8}.leave-match .tiny-btn{color:#a74b36;min-height:40px}.game-shell[data-paused=true] .board-wrap *{animation-play-state:paused!important}.reward-page{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;min-height:65dvh;padding:32px 0;position:static}.reward-page .reward-card{width:min(680px,100%);max-height:none;box-shadow:none;background:0 0;border:0;padding:16px 0;overflow:visible}.reward-page .reward-seal{width:68px;height:68px;font-size:36px}.reward-page h2{letter-spacing:.08em}.reward-page .choice-grid{margin-top:25px}.source-credit{color:#969783;margin-top:32px;font-size:9px}.audio-settings{z-index:60}@keyframes drawer-enter{0%{opacity:.5;transform:translate(25px)}to{opacity:1;transform:none}}@media (width>=1180px){:is(.game-shell:is(.game-shell--setup,.game-shell--combat):has(.field-drawer[open])>.topbar,.game-shell:is(.game-shell--setup,.game-shell--combat):has(.field-drawer[open])>.main-grid){transition:transform .2s;transform:translate(-150px)}}@media (width<=720px){.game-shell{padding:20px 18px}.camp-header-tools{gap:10px}.camp-header-tools>span{display:none}.camp-opening{padding:25px 0 28px}.camp-opening h2{letter-spacing:.04em;font-size:29px}.camp-opening p:not(.eyebrow){font-size:10px}.camp-ink{width:37%;height:185px}.camp-ink>span{font-size:94px}.camp-ink i{right:0}.map-select-title p{display:none}.map-picker{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.map-card{padding:8px}.map-card-preview{gap:2px;height:90px;padding:6px}.map-card-name b{font-size:15px}.map-card-name small,.map-card--selected .map-card-name:after,.map-card-copy{font-size:9px}.camp-preparation{margin:20px 0;display:block}.camp-preparation nav{gap:6px;margin-top:15px}.camp-preparation button{white-space:nowrap;flex:1;padding:9px 6px;font-size:11px}.camp-departure>div{gap:3px;display:grid}.camp-departure strong{font-size:18px}.camp-departure small{font-size:9px}.camp-departure .primary-btn{min-width:0;padding:12px 18px;font-size:13px}.game-shell:is(.game-shell--setup,.game-shell--combat){padding:max(12px,env(safe-area-inset-top)) 12px max(12px,env(safe-area-inset-bottom))}.field-location h1{font-size:25px}.field-location>span{font-size:9px}.field-header-tools{gap:2px}.field-header-tools>.field-icon{width:35px;height:35px;font-size:17px}.field-status{gap:6px;padding:6px 0 10px}.field-gold{gap:5px;font-size:22px}.field-gold b{font-size:22px}.field-gold small{display:none}.field-wave{justify-items:center;gap:5px;display:grid}.field-wave b{font-size:14px}.field-wave span,.field-intel{font-size:9px}.field-intel b{letter-spacing:1px;margin-left:3px;font-size:10px}.game-shell:is(.game-shell--setup,.game-shell--combat) .board-wrap{border-width:1px;padding:3px}.game-shell:is(.game-shell--setup,.game-shell--combat) .battlefield{gap:1px;height:clamp(280px,48dvh,450px)}.game-shell:is(.game-shell--setup,.game-shell--combat) .piece-glyph{font-size:26px}.game-shell:is(.game-shell--setup,.game-shell--combat) .piece-meta{font-size:7px}.game-panel .recruit-strip{gap:5px}.game-panel .recruit-strip .token{height:65px}.game-panel .recruit-slot{height:69px}.game-panel .recruit-strip .token>b{font-size:30px}.game-panel .action-row{gap:7px;margin-top:11px}.game-panel .action-row>.primary-btn{font-size:13px}.game-panel .action-row>.secondary-btn{font-size:11px}.field-context{gap:6px;height:48px}.land-legend{gap:4px;font-size:9px}.detail-button{font-size:10px}.field-message{margin-top:12px;font-size:10px}.field-drawer{border:1px solid #a8ab9470;border-bottom:0;border-radius:20px 20px 0 0;width:100%;height:min(82dvh,780px);inset:auto 0 0}.field-drawer[open]{animation-name:drawer-up}.drawer-heading{padding:22px 22px 15px}.drawer-heading:before{content:"";background:#b6bba2;border-radius:4px;width:36px;height:3px;position:absolute;top:8px;left:calc(50% - 18px)}.drawer-heading h2{font-size:23px}.drawer-scroll{padding:16px 20px max(24px,env(safe-area-inset-bottom))}.audio-settings{width:auto;max-height:85dvh;padding:20px;position:fixed;inset:auto 10px 10px;overflow-y:auto}.reward-page{padding:15px 0}.reward-page .choice-grid{grid-template-columns:1fr}@keyframes drawer-up{0%{opacity:.5;transform:translateY(30px)}to{opacity:1;transform:none}}}@media (height<=740px) and (width<=720px){.game-shell:is(.game-shell--setup,.game-shell--combat) .battlefield{height:40dvh;min-height:238px}.game-panel .recruit-strip .token{height:55px}.game-panel .recruit-slot{height:59px}.field-context{height:43px}}@media (prefers-reduced-motion:reduce){.field-drawer[open],.game-shell .main-grid,.game-shell .topbar{transition:none;animation:none}}html,body,#root{height:100%;min-height:0;overflow:hidden}.game-shell{height:100dvh;min-height:0;padding-block:max(20px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-bottom));flex-direction:column;display:flex}.game-shell>.topbar{flex:none;width:100%;margin-bottom:20px}.game-shell>.main-grid{flex:1;align-items:stretch;min-width:0;min-height:0;display:flex}.game-shell .game-panel{flex:1;min-width:0;min-height:0}.map-picker,.drawer-scroll,.reward-scroll,.audio-settings{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#9ba58b transparent;scrollbar-gutter:stable}.game-shell--camp .game-panel{border-top:1px solid #68695229;grid-template-rows:minmax(0,1fr) auto auto;grid-template-columns:minmax(220px,.8fr) minmax(0,1.6fr);column-gap:36px;padding-top:24px;display:grid}.camp-opening{border:0;grid-area:1/1;align-items:flex-start;padding:0;position:relative;overflow:hidden}.camp-opening>div:first-child{z-index:1;position:relative}.camp-opening h2{margin-bottom:12px;font-size:clamp(28px,3.1vw,40px);line-height:1.5}.camp-opening .eyebrow{margin-bottom:12px}.camp-ink{opacity:.45;width:85%;height:190px;position:absolute;bottom:0;right:0}.game-shell--camp .map-select{flex-direction:column;grid-area:1/2/3;min-height:0;display:flex}.map-select-title{flex-direction:row;flex:none;margin-bottom:14px}.map-select-title p{max-width:200px;font-size:10px}.map-picker{flex:1;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:12px;min-height:0;padding:3px 8px 8px 3px;overflow:hidden auto}.map-card-preview{grid-template-rows:repeat(6,minmax(0,1fr));height:clamp(80px,13dvh,116px)}.map-card-tile{aspect-ratio:auto;min-width:0}.map-card-name b{font-size:16px}.camp-preparation{border-bottom:0;grid-area:2/1;margin:18px 0 0;padding:18px 0 0;display:block}.camp-preparation nav{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:14px;display:grid}.camp-preparation button{padding:10px 8px}.camp-departure{border-top:1px solid #7d806a38;grid-area:3/1/auto/-1;margin-top:20px;padding-top:16px}.game-shell:is(.game-shell--setup,.game-shell--combat) .game-panel{grid-template-rows:auto minmax(0,1fr) auto;align-content:start;max-height:880px;padding:0 4px 4px;display:grid;overflow:visible}.game-shell:is(.game-shell--setup,.game-shell--combat) .board-wrap{min-height:0}.game-shell:is(.game-shell--setup,.game-shell--combat) .battlefield{height:100%;min-height:0}.field-controls{min-width:0}.game-shell:is(.game-shell--setup,.game-shell--combat) .field-status{padding-block:4px 10px}.field-message{margin-top:8px}.field-drawer .tab-row{top:-20px}.audio-settings{max-height:calc(100dvh - 110px);overflow-y:auto}.reward-page{flex:1;min-height:0;padding:0;overflow:hidden}.reward-page .reward-card{flex-direction:column;height:100%;min-height:0;padding:8px 0 0;display:flex}.reward-page .reward-card>*{flex-shrink:0}.reward-page .reward-card>.reward-scroll{flex:1;min-height:0;padding:12px 12px 24px;overflow-y:auto}.reward-scroll>p{color:var(--ink-soft);text-align:center;margin:0 auto 20px;font-size:12px;line-height:1.8}@media (width<=720px){.game-shell{padding:max(12px, env(safe-area-inset-top)) 14px max(8px, env(safe-area-inset-bottom))}.game-shell>.topbar{flex-direction:row;align-items:center;margin-bottom:12px}.game-shell--camp .game-panel{grid-template-rows:auto minmax(0,1fr) auto auto;grid-template-columns:minmax(0,1fr);gap:0;padding-top:12px}.camp-opening{grid-area:1/1;padding-bottom:14px}.camp-opening h2{letter-spacing:.06em;margin:0;font-size:23px;line-height:1.4}.camp-opening h2 br{display:none}.camp-opening .eyebrow{margin-bottom:6px;font-size:9px}.camp-opening p:not(.eyebrow),.camp-ink{display:none}.game-shell--camp .map-select{grid-area:2/1}.map-select-title{margin-bottom:8px}.map-select-title h3{font-size:14px}.map-picker{gap:8px}.map-card-preview{height:86px}.map-card-name{gap:5px;margin-top:8px}.map-card-name b{font-size:14px}.camp-preparation{grid-area:3/1;margin-top:8px;padding-top:10px}.camp-preparation>div{display:none}.camp-preparation nav{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin:0}.camp-preparation button{padding:8px 2px;font-size:10px}.camp-preparation button small{margin-left:2px}.camp-departure{grid-area:4/1;gap:8px;margin-top:10px;padding-top:10px}.camp-departure>div{grid-template-columns:auto auto;gap:2px 6px}.camp-departure>div>span{font-size:9px}.camp-departure small{grid-column:1/-1}.camp-departure .primary-btn{gap:14px;min-height:48px;padding:10px 14px}.field-drawer .tab-row{top:-16px}}@media (height<=700px){.game-shell:is(.game-shell--setup,.game-shell--combat){padding-top:max(8px, env(safe-area-inset-top));padding-bottom:max(8px, env(safe-area-inset-bottom))}.game-shell:is(.game-shell--setup,.game-shell--combat) .topbar{margin-bottom:4px}.field-location h1{font-size:22px}.field-context{height:40px;margin:3px 0}.field-hand-heading{margin-bottom:5px}.game-panel .recruit-slot{height:55px}.game-panel .recruit-strip .token{height:51px}.game-panel .recruit-strip .token>b{font-size:27px}.game-panel .action-row{margin-top:8px}.game-panel .action-row>:is(.primary-btn,.secondary-btn){min-height:44px;padding-block:8px}.camp-ink{display:none}.reward-page .reward-seal{width:44px;height:44px;margin-bottom:8px;font-size:26px}.reward-page .reward-card>.eyebrow{margin-bottom:8px}}@media (height<=480px){.game-shell--camp .camp-opening{display:none}.game-shell--camp .game-panel{grid-template-rows:minmax(0,1fr) auto;padding-top:8px}.game-shell--camp .map-select{grid-row:1}.game-shell--camp .camp-preparation{grid-row:1;align-self:end}.game-shell--camp .camp-departure{grid-row:2;margin-top:8px;padding-top:8px}}@media (height<=480px) and (width<=720px){.game-shell--camp .game-panel{grid-template-rows:minmax(0,1fr) auto auto}.game-shell--camp .camp-preparation{grid-row:2}.game-shell--camp .camp-departure{grid-row:3}}@media (height<=540px) and (width>=600px){.game-shell:is(.game-shell--setup,.game-shell--combat){width:min(1100px,100%);padding-inline:16px}.game-shell:is(.game-shell--setup,.game-shell--combat) .game-panel{grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr) minmax(240px,.62fr);column-gap:18px}.game-shell:is(.game-shell--setup,.game-shell--combat) .field-status{grid-area:1/1}.game-shell:is(.game-shell--setup,.game-shell--combat) .board-wrap{grid-area:2/1}.field-controls{grid-area:1/2/3;align-self:center}.game-panel .action-row{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.game-panel .action-row>.odds-note,.game-panel .action-row>.secondary-btn:nth-child(3){grid-column:1/-1}.game-shell:is(.game-shell--setup,.game-shell--combat):has(.field-drawer[open])>:is(.topbar,.main-grid){transform:none}}
