/*! 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{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--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}::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--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-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::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]){-webkit-appearance:button;appearance:button}::file-selector-button{-webkit-appearance: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{.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.shrink{flex-shrink:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rounded{border-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.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,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--app-bg:#111512;--surface-1:#191e1a;--surface-2:#222923;--surface-3:#303930;--accent:#b8c7a8;--accent-strong:#8d9d7f;--accent-soft:#c5d1b9;--control-radius:4px;--control-border:#414b42;--control-surface:#222923;--control-shadow:none;--control-primary:#c5d1b9;--board-light:#e9e2d0;--board-dark:#657395;--ink:#f6f3ea;--muted:#a9b0a6;--panel:var(--surface-2);--panel-border:#414b42;--gold:#d0b477;--olympus:#6eafff;--nile:#62d7c8;--green:#9ab58c;--red:#e88979;--board-angle:0deg;--board-twist:0deg;--font-geist-sans:system-ui, -apple-system, sans-serif;--font-geist-mono:ui-monospace, monospace}*{box-sizing:border-box}html{background:var(--app-bg);min-width:280px}body{min-height:100svh;color:var(--ink);font-family:var(--font-geist-sans), system-ui, sans-serif;background:var(--app-bg);margin:0}h1,h2{font-family:var(--font-display), var(--font-geist-sans), sans-serif;font-weight:700}button,select{font:inherit}button{cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:disabled{opacity:.38;cursor:not-allowed}:is(button:focus-visible,select:focus-visible,a:focus-visible,input:focus-visible){outline:3px solid var(--gold);outline-offset:3px}a,button,input,select{scroll-margin-block:20px 100px}button,select{color:inherit}button{border:0}.ui-icon{flex:none;width:24px;height:24px;display:block}@media (max-width:760px){html:has(aside[aria-label=Main\ navigation]){scroll-padding-bottom:calc(96px + env(safe-area-inset-bottom))}}.app-shell a,.app-shell button,.app-shell select{scroll-margin-block:8px}.app-shell .square-hit-target{scroll-margin:0}.app-shell{isolation:isolate;width:100%;max-width:1100px;height:100dvh;min-height:100svh;padding:max(14px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(14px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));margin:auto;position:relative}.app-shell:before{content:"";z-index:-2;pointer-events:none;background:radial-gradient(at 50% 44%,#2b3452 0,#171a2b 62%,#111321 100%);position:fixed;inset:0}.game-table{grid-template-rows:auto minmax(0,1fr);gap:12px;height:100%;min-height:0;display:grid}.command-bar{z-index:80;background:#20243aeb;border:1px solid #7d88ac24;border-radius:12px;grid-template-columns:repeat(3,minmax(0,1fr));justify-self:center;align-items:center;gap:16px;width:min(100%,800px);min-height:62px;padding:7px 8px 7px 12px;display:grid;position:relative;box-shadow:0 8px 24px #0c0e193d}.compact-brand{min-width:0;color:inherit;align-items:center;gap:10px;text-decoration:none;display:flex}.compact-brand>span{width:36px;height:40px;color:var(--gold);place-items:center;display:grid}.compact-brand .ui-icon{width:28px;height:28px}.compact-brand strong{letter-spacing:-.02em;white-space:nowrap;font-size:16px}.battle-player-card{min-width:0;color:inherit;align-items:center;gap:9px;text-decoration:none;display:flex}.battle-player-card>span:last-child,.command-opponent>span{gap:1px;min-width:0;display:grid}.battle-player-card strong,.command-opponent strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:1.15;overflow:hidden}.battle-player-card small,.command-opponent small{color:#9ba3bc;font:700 9px/1.2 var(--font-geist-mono), monospace;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.battle-player-card small{color:#e7c76c}.command-opponent{text-align:right;justify-content:end;justify-self:end;align-items:center;gap:8px;min-width:0;display:flex}.command-opponent .menu-trigger{margin-left:3px}.opponent-avatar{flex:none;display:flex;position:relative}.mobile-difficulty{display:none}.turn-chip{color:#fff9e5;text-align:center;justify-content:center;align-items:center;gap:9px;min-width:0;height:48px;min-height:48px;font-size:14px;font-weight:650;line-height:1.25;display:flex}.turn-chip>span{min-width:0}.turn-chip i{background:var(--green);border-radius:50%;flex:none;width:8px;height:8px;box-shadow:0 0 0 4px #91e6c615}.turn-chip.black i{background:var(--red);box-shadow:0 0 0 4px #ff967f15}.menu-trigger{color:#fff5e8;background:#343b57;border:1px solid #7d88ac2b;border-radius:9px;flex:none;justify-content:center;justify-self:end;align-items:center;gap:8px;width:104px;min-width:46px;min-height:46px;padding:0 14px;font-size:14px;font-weight:750;display:flex}.menu-trigger:active{background:#f4cc7a26}.play-area{flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:0;display:flex}.battle-feedback{display:contents}.battle-feedback>.draw-warning-slot{order:-1}.board-stage{aspect-ratio:1;isolation:isolate;flex:none;width:min(100%,100dvh - 390px,700px);position:relative}.board-stage.mode-3d{--board-angle:48deg;perspective:1100px;perspective-origin:50% 40%}@media (min-width:601px) and (min-height:561px){.board-stage.mode-3d{width:min(82%,100dvh - 390px,650px)}}.board-plane{transform-origin:50%;transform-style:preserve-3d;position:absolute;inset:0}.mode-3d .board-plane{scale:.92;transform:rotateX(var(--board-angle)) rotateZ(var(--board-twist))}.battlefield-art{z-index:0;filter:drop-shadow(0 18px 14px #11100ed0);pointer-events:none;background-position:50%;background-repeat:no-repeat;background-size:contain;display:block;position:absolute;inset:0}.mode-3d .battlefield-art{filter:drop-shadow(0 28px 18px #080914d4)}.theme-classic .battlefield-art{--battlefield-image:url(/boards/classic-board.webp);background-image:var(--battlefield-image)}.theme-terracotta .battlefield-art{--battlefield-image:url(/boards/terracotta-board.webp);background-image:var(--battlefield-image)}.theme-tidal .battlefield-art{--battlefield-image:url(/boards/tidal-board.webp);background-image:var(--battlefield-image)}.theme-frostbound .battlefield-art{--battlefield-image:url(/boards/frostbound-board.webp);background-image:var(--battlefield-image)}.theme-wildwood .battlefield-art{--battlefield-image:url(/boards/wildwood-board.webp);background-image:var(--battlefield-image)}.theme-astral .battlefield-art{--battlefield-image:url(/boards/astral-board.webp);background-image:var(--battlefield-image)}.theme-lookingglass .battlefield-art{--battlefield-image:url(/boards/lookingglass-board.webp);background-image:var(--battlefield-image)}.theme-gaslight .battlefield-art{--battlefield-image:url(/boards/gaslight-board.webp);background-image:var(--battlefield-image)}.theme-gaslight .mode-3d .battlefield-art{--battlefield-image:url(/boards/gaslight-plate-3d-v2.webp)}.gaslight-lantern{--lamp-x:8.2%;--lamp-y:12%;--lamp-height:13%;left:var(--lamp-x);top:calc(var(--lamp-y) - var(--lamp-height));width:6.4%;height:var(--lamp-height);transform-origin:50% 100%;translate:-50%;transform:translateZ(3px) rotateZ(calc(0deg - var(--board-twist))) rotateX(calc(0deg - var(--board-angle)));pointer-events:none;-webkit-user-select:none;user-select:none;filter:drop-shadow(2px 3px 2px #1c100866);background:url(/boards/gaslight-lantern-3d-v2.webp) bottom/contain no-repeat;position:absolute}.gaslight-lantern.back-right,.gaslight-lantern.front-right{--lamp-x:91.8%}.gaslight-lantern.front-left,.gaslight-lantern.front-right{--lamp-y:94%}.gaslight-lantern:before{content:"";pointer-events:none;background:radial-gradient(#ffc25838,#0000 70%);position:absolute;inset:30% 18% 35%}@media (max-width:600px),(max-height:560px){.app-shell .gaslight-lantern{--lamp-x:2.2%;--lamp-y:2%;--lamp-height:7.8%;width:3.8%}.app-shell .gaslight-lantern.back-right,.app-shell .gaslight-lantern.front-right{--lamp-x:97.8%}.app-shell .gaslight-lantern.front-left,.app-shell .gaslight-lantern.front-right{--lamp-y:99%}}.mode-3d .board-plane:after{content:"";z-index:-1;transform-origin:top;pointer-events:none;background:linear-gradient(#dfbb78,#89613e 18%,#513a2b 75%,#c7a06a);border-inline:1px solid #947349;height:18px;position:absolute;top:96%;left:4%;right:4%;transform:rotateX(-90deg);box-shadow:0 18px 28px #061a2b8a}.battle-board{z-index:2;width:79.2%;height:79.2%;transform-style:preserve-3d;background:0 0;border:0;outline:0;grid-template-rows:repeat(8,minmax(0,1fr));grid-template-columns:repeat(8,minmax(0,1fr));display:grid;position:absolute;top:10.1%;left:10.4%}.theme-lookingglass .battle-board{width:69.7%;height:69.7%;top:14.7%;left:15.2%}.app-shell.theme-lookingglass{overflow-x:clip}.theme-lookingglass .light-square{color:#243e40}.theme-lookingglass .dark-square{color:#fff4d8}.theme-lookingglass .mode-3d .board-plane:after{background:linear-gradient(#e3c886,#8d6330 18%,#153d3d 75%,#4b2029)}.army-option.army-lookingglass{border-top:3px solid #b43e51}.theme-gaslight .battle-board{width:71.8%;height:71.8%;top:15%;left:14.1%}.app-shell.theme-gaslight{overflow-x:clip}.theme-gaslight .light-square{color:#23392e}.theme-gaslight .dark-square{color:#fff0ce}.theme-gaslight .mode-3d .board-plane:after{background:linear-gradient(#d9b87d,#856232 18%,#30231a 75%,#9c753e)}.army-option.army-gaslight{border-top:3px solid #b88a46}.battle-board:after{content:"";z-index:45;pointer-events:none;border:1px solid #f4d99e38;position:absolute;inset:0;box-shadow:inset 0 0 12px #1b171238}.square{width:100%;min-width:0;height:100%;min-height:0;transform-style:preserve-3d;place-items:center;padding:0;display:grid;position:relative;overflow:visible}.square-hit-target{z-index:12;touch-action:manipulation;background:0 0;width:100%;height:100%;padding:0;position:absolute;inset:0}.square-hit-target:focus-visible{outline:none}.piece,.piece-motion,.piece-art,.piece-sprite,.health,.unit-mark,.ground-shadow{pointer-events:none}.mode-3d .square-hit-target{z-index:32;transform:translateZ(10px)}.mode-3d .legal-move .square-hit-target,.mode-3d .legal-attack .square-hit-target,.mode-3d .legal-castle .square-hit-target,.mode-3d .legal-en-passant .square-hit-target{z-index:40;width:110%;height:110%;inset:-5%}.light-square{background:var(--board-light);color:#39425e}.dark-square{background:var(--board-dark);color:#fff7e9}.square:before{content:"";pointer-events:none;background:linear-gradient(145deg,#ffffff10,#0000 60%,#162d3720);position:absolute;inset:0;box-shadow:inset 0 0 0 1px #152f391a}.last-square:after{content:"";pointer-events:none;background:#ffd46b26;position:absolute;inset:0}.selected-square{z-index:10}.attacker-square{z-index:18}.hit-square,.death-square{z-index:19}.selected-square:before,.battle-board .square.selected-square:before{background:radial-gradient(at 50% 65%,#ffdb6570,#ffdb6535 58%,#ffdb6512)}.square:has(.square-hit-target:focus-visible){z-index:20}.selection-marker{--selection-rgb:255, 202, 102;z-index:3;opacity:0;pointer-events:none;width:74%;height:25%;transition:opacity .16s ease-out;position:absolute;top:62%;left:13%;transform:translateZ(1px)}.selection-marker:before{content:"";background:radial-gradient(ellipse, rgba(var(--selection-rgb), .62), rgba(var(--selection-rgb), .28) 40%, rgba(var(--selection-rgb), .08) 62%, transparent 76%);box-shadow:0 3px 8px rgba(var(--selection-rgb), .28), inset 0 -2px 0 rgba(var(--selection-rgb), .8);border-radius:50%;position:absolute;inset:0}.selection-marker:after{content:"";aspect-ratio:1;background:rgb(var(--selection-rgb));width:8%;box-shadow:0 0 5px rgba(var(--selection-rgb), .6);position:absolute;top:96%;left:46%;transform:rotate(45deg)}.selected-square>.selection-marker{opacity:1}.square:has(.square-hit-target:focus-visible)>.selection-marker{opacity:1}.online-combat-board button:focus-visible>.selection-marker{opacity:1}.square:not(.selected-square):has(.square-hit-target:focus-visible)>.selection-marker{--selection-rgb:151, 232, 245}.online-combat-board button:not([aria-pressed=true]):focus-visible>.selection-marker{--selection-rgb:151, 232, 245}.online-combat-board .selected-square:before{content:"";pointer-events:none;position:absolute;inset:0}.rank-label,.file-label{font:700 12px/1 var(--font-geist-mono), monospace;pointer-events:none;z-index:2;position:absolute}.rank-label{top:3px;left:3px}.file-label{bottom:2px;right:3px}.piece,.piece *,.attack-source-fx,.combat-fx,.damage-billboard,.move-indicator,.hint-route,.hint-target-marker{pointer-events:none}.piece{z-index:5;width:92%;height:92%;transform:translateZ(2px) rotateZ(calc(0deg - var(--board-twist))) rotateX(calc(0deg - var(--board-angle)));transform-origin:50% 100%;display:block;position:relative}.piece-motion{transform-origin:50% 90%;display:block;position:absolute;inset:0 0 10%}.piece-art{-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block;position:relative}.piece-sprite{filter:drop-shadow(0 2px 1px #14242ba6);width:100%;height:100%;position:absolute;inset:0;overflow:visible}.piece-art.black .piece-sprite{transform:scaleX(-1)}.render-3d .piece-sprite{filter:drop-shadow(1px 1px #fff1b233)drop-shadow(2px 4px 2px #0c203b80)}.selected-square .piece-sprite{filter:drop-shadow(0 0 1px #fff1bc)drop-shadow(0 0 5px #ffc857a6)drop-shadow(0 2px 1px #14242b80)}.mode-3d .piece{height:105%;position:absolute;bottom:10%}.mode-3d .piece-motion{inset:0 0 10%}.ground-shadow{pointer-events:none;display:none}.mode-3d .ground-shadow{background:radial-gradient(at 36% 44%,#091d32a6,#142c3666 35%,#0000 72%);border-radius:50%;width:66%;height:49%;display:block;position:absolute;top:43%;left:27%;transform:translateZ(1px)rotate(-22deg)}.mode-3d .square:before{box-shadow:inset 0 2px #ffffff23,inset 1px 0 #ffffff12,inset 0 -2px #0b253533}.unit-mark{color:#254c40;z-index:3;background:#eafff1;border:1px solid #1f454b88;border-radius:50%;place-items:center;width:18px;height:18px;font:17px/1 Georgia,serif;display:grid;position:absolute;bottom:-1px;left:0}.piece.black .unit-mark{color:#ffd2a9;background:#293741;border-color:#ffc09488}.health{background:#20343c;border:1px solid #203d42;border-radius:4px;width:52%;height:13px;position:absolute;bottom:0;left:29%;overflow:hidden;box-shadow:0 1px 3px #061c2980}.health-fill{background:#91e6c6;height:100%;transition:width .22s ease-out .22s;display:block}.piece.black .health-fill{background:#f5b195}.health-fill.health-danger{background:#ff685b}.health-value{font:800 11px/1 var(--font-geist-mono), monospace;color:#092e30;text-shadow:0 1px #ffffff50;place-items:center;display:grid;position:absolute;inset:0}.health-danger+.health-value{color:#201a1b}.move-indicator{aspect-ratio:1;z-index:7;background:#133c3677;border:2px solid #e9fff299;border-radius:50%;width:19%;position:absolute}.legal-attack .move-indicator,.legal-en-passant .move-indicator{aspect-ratio:auto;background:#e95e381f;border:2px solid #ffbf82;border-radius:8px;width:auto;inset:6%;box-shadow:inset 0 0 12px #ff6b3626}.legal-attack .move-indicator:after,.legal-en-passant .move-indicator:after{content:"";background:#dc573e;border:2px solid #fec;border-radius:50%;width:8px;height:8px;position:absolute;top:-4px;right:-4px}.move-indicator.lethal-indicator{border-style:double;border-width:3px}.legal-en-passant .move-indicator{border-style:dashed}.legal-castle .move-indicator{background:#f4cc7a;border-radius:3px}.battle-status{color:#d0dfdf;flex:none;justify-content:space-between;align-items:safe center;gap:16px;width:min(100%,610px);height:3lh;min-height:42px;font-size:14px;line-height:1.4;display:flex;overflow-y:auto}.battle-status>span:first-child{min-width:0}.battle-status>small{color:#adc3c8;font:12px/1.4 var(--font-geist-mono), monospace;flex:none}.battle-status strong{overflow-wrap:anywhere;color:#ffedbd;min-width:0;font-weight:650}.repetition-warning{color:#ffe3ad;overflow-wrap:anywhere;background:#3c2c25;border:1px solid #e7b26966;border-radius:9px;width:min(100%,610px);margin:0;padding:9px 12px;font-size:12px;line-height:1.45}.draw-warning-slot{flex:none;width:min(100%,610px)}.draw-warning-slot .repetition-warning{width:100%}.draw-warning-slot[data-active=false]{visibility:hidden}.draw-move-marker{z-index:8;aspect-ratio:1;color:#39271c;width:22%;font:800 clamp(10px, 1.5vw, 16px)/1 var(--font-geist-mono), monospace;pointer-events:none;background:#ffe3ad;border-radius:50%;place-items:center;display:grid;position:absolute;top:4%;right:6%}.ruleset-badge{color:#efbb82;font-size:9px;font-weight:650;line-height:1.35;display:block}.ruleset-note{color:#bbc4d7;margin:8px 0 16px;font-size:12px;line-height:1.6}.counter-risk{z-index:29;color:#3e271b;white-space:nowrap;font:800 clamp(10px, 1vw, 12px)/1.2 var(--font-geist-mono), monospace;pointer-events:none;background:#ffcf92;border:1px solid #9c603b;border-radius:4px;padding:2px 3px;position:absolute;top:3%;left:50%;transform:translate3d(-50%,0,5px)}.counter-risk.fatal{color:#fff5ec;background:#9c3a37}.mode-3d .counter-risk{transform:translate3d(-50%, 0, 36px) rotateZ(calc(0deg - var(--board-twist))) rotateX(calc(0deg - var(--board-angle)));transform-origin:bottom}.battle-status strong span{color:#b7cecf;margin-left:6px;font-size:12px}.unit-readout{flex-wrap:wrap;flex:none;justify-content:end;gap:4px 12px;width:105px;font-size:13px;display:flex}.unit-readout b{color:#a8f0d6}.battle-dock{z-index:80;background:#20243aeb;border:1px solid #7d88ac24;border-radius:14px;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;width:min(100%,610px);padding:6px;display:grid;position:relative;box-shadow:0 8px 28px #0c0e1945}.battle-dock button{color:#e7eddf;background:0 0;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:5px;min-width:0;min-height:72px;padding:6px 2px;display:flex}.battle-dock button:active{background:#f4cc7a14}.dock-icon{color:#f6cf85;place-items:center;width:30px;height:30px;display:grid}.dock-icon .ui-icon{width:26px;height:26px}.pieces-icon{color:#92e3d6}.undo-icon{color:#b8caff}.hint-icon{color:#fae690}.battle-dock small{overflow-wrap:anywhere;max-width:100%;font-size:14px;line-height:1.25}.result-overlay{width:100%;max-width:none;height:100%;max-height:none;padding:max(20px, env(safe-area-inset-top)) 20px max(20px, env(safe-area-inset-bottom));color:var(--ink);background:0 0;border:0;margin:0;position:fixed;inset:0}.result-overlay[open]{place-items:center;display:grid}.result-overlay:not([open]){display:none}.game-menu-card,.result-card,.rules-card,.promotion-card,.army-picker,.store-card{overscroll-behavior:contain;background:var(--surface-1);width:min(520px,100%);min-width:0;max-height:100%;box-shadow:none;border:1px solid #7d88ac4d;border-radius:4px;padding:30px;position:relative;overflow:auto}.game-menu-card h2,.result-card h2,.rules-card h2,.promotion-card h2,.army-picker h2,.store-card h2{letter-spacing:-.025em;margin:7px 48px 22px 0;font-size:clamp(24px,3vw,30px);font-weight:650;line-height:1.15}.panel-kicker{color:var(--gold);letter-spacing:.12em;text-transform:uppercase;font-size:12px}.close-button{color:#dce7e7;background:#ffffff0c;border-radius:50%;place-items:center;width:44px;height:44px;display:grid;position:absolute;top:14px;right:14px}.close-button:active{background:#ffffff20}.sheet-handle{display:none}.language-field,.menu-section,.picker-mode-row{background:var(--surface-2);border:1px solid #7d88ac40;border-radius:4px;justify-content:space-between;align-items:center;gap:12px;min-width:0;min-height:62px;margin:10px 0;padding:8px 10px 8px 14px;font-size:14px;display:flex}.language-field>span,.menu-section>span,.picker-mode-row>span{min-width:0}.language-field select{background:var(--surface-2);border:1px solid #7d88ac66;border-radius:4px;flex:none;width:150px;min-width:0;max-width:50%;min-height:44px;padding:0 8px;font-size:14px}.language-field>.localized-footprint,.menu-section>.localized-footprint{flex:1;align-self:center}.view-toggle{background:var(--surface-2);border-radius:4px;flex:0 0 128px;grid-template-columns:repeat(2,1fr);width:128px;padding:3px;display:grid}.view-toggle button{min-width:0;min-height:40px;color:var(--muted);background:0 0;border-radius:4px;font-size:14px;font-weight:700}.view-toggle button.active{color:#171421;background:var(--accent-soft);box-shadow:none}.menu-armies{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:16px;display:grid}.menu-armies button{text-align:left;background:#ffffff05;border:1px solid #6b888c70;border-radius:4px;min-height:95px;padding:14px}.menu-armies small,.menu-armies strong,.menu-armies span{display:block}.menu-armies small{color:var(--muted);font-size:12px}.menu-armies strong{overflow-wrap:anywhere;margin:6px 0;font-size:14px;line-height:1.25}.menu-armies span{color:var(--gold);font-size:12px}.menu-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:16px;display:grid}.menu-actions button,.menu-actions a{text-align:left;min-height:58px;color:inherit;background:var(--control-surface);border:1px solid var(--control-border);border-radius:var(--control-radius);box-shadow:none;justify-content:flex-start;align-items:center;gap:9px;padding:10px 12px;font-size:14px;line-height:1.25;text-decoration:none;display:flex}.menu-actions .ui-icon{width:21px;height:21px;color:var(--gold)}.menu-actions button.danger{color:#ffc5ae;border-color:#e98c6e55}.menu-actions button.danger .ui-icon{color:#ffb796}.primary-button,.secondary-button{border-radius:var(--control-radius);text-align:center;border:1px solid var(--control-border);min-width:0;min-height:48px;box-shadow:none;justify-content:center;align-items:center;gap:8px;padding:12px 18px;font-size:14px;font-weight:750;line-height:1.35;text-decoration:none;transition:background-color .16s,border-color .16s,box-shadow .16s;display:inline-flex}.primary-button{color:#241b20;background:var(--control-primary);box-shadow:none;border-color:#ffcf9266}.secondary-button{color:#eef1fb;background:var(--control-surface)}:is(.primary-button:focus-visible,.secondary-button:focus-visible){outline:2px solid var(--accent-soft);outline-offset:3px}@media (hover:hover) and (pointer:fine){.primary-button:hover:not(:disabled){box-shadow:none;border-color:#ffe0b4}.secondary-button:hover:not(:disabled){background:var(--surface-1);border-color:#c5cde354}}.result-actions{justify-content:center;gap:10px;margin-top:24px;display:flex}.result-card{text-align:center;background:var(--surface-1);box-shadow:none;border-color:#b2bed22b;border-radius:4px}.result-card a,.result-card button{scroll-margin-block:8px}.result-card h2{margin-right:0}.result-card [data-dialog-heading]:focus{outline:none}.result-card p{color:var(--muted);font-size:16px;line-height:1.5}.result-crown{color:#f5c98b;background:var(--surface-1);width:68px;height:68px;box-shadow:none;border:1px solid #f0c68740;border-radius:4px;place-items:center;margin:0 auto 16px;display:grid}.result-crown .ui-icon{width:40px;height:40px}.battle-report-card{width:min(590px,100%)}.battle-report-card>p{margin:-10px 0 18px}.result-versus{background:var(--surface-2);border:1px solid #ffffff14;border-radius:4px;grid-template-columns:1fr auto 1fr;align-items:center;gap:13px;padding:13px;display:grid}.result-versus>div{text-align:left;align-items:center;gap:9px;min-width:0;display:flex}.result-versus>div:last-child{text-align:right;justify-content:end}.result-versus>i{color:var(--muted);font:800 10px var(--font-geist-mono), monospace;font-style:normal}.result-versus span{min-width:0;display:grid}.result-versus b{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.result-versus small{color:var(--muted);font-size:10px}.report-title{text-align:left;letter-spacing:.02em;margin:19px 0 10px;font-size:13px}.result-stats{grid-template-columns:repeat(4,1fr);gap:7px;display:grid}.result-stats span{background:var(--surface-1);min-width:0;box-shadow:none;border:1px solid #ffffff09;border-radius:4px;padding:10px 7px}.result-stats small,.result-stats b{display:block}.result-stats small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:9px;overflow:hidden}.result-stats b{font:800 18px var(--font-geist-mono), monospace;margin-top:5px}.kill-breakdown{grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;margin-top:9px;display:grid}.kill-breakdown>span{background:var(--surface-2);text-align:left;border:1px solid #ffffff0d;border-radius:4px;grid-template-columns:auto 1fr;align-items:center;gap:1px 5px;min-width:0;padding:7px 6px;display:grid}.kill-breakdown i{color:var(--accent-soft);grid-row:1/3;font:19px/1 Georgia,serif}.kill-breakdown small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:7px;line-height:1.1;overflow:hidden}.kill-breakdown b{font:800 13px/1 var(--font-geist-mono), monospace}.result-reward{color:var(--muted);background:var(--surface-2);text-align:left;border-radius:4px;grid-template-columns:1fr auto;align-items:center;gap:2px 12px;margin-top:10px;padding:12px 14px;display:grid}.result-reward strong{color:var(--muted);font:900 20px var(--font-geist-mono), monospace;grid-area:1/2/3}.result-reward small{font-size:10px}.result-actions a{justify-content:center;align-items:center;gap:7px;text-decoration:none;display:inline-flex}.result-actions .ui-icon{width:18px;height:18px}.result-actions>*{flex:1 1 0}@media (max-width:420px){.result-actions{flex-direction:column}.result-actions>*{width:100%}}@media (max-width:520px){.kill-breakdown{grid-template-columns:repeat(3,minmax(0,1fr))}.kill-breakdown small{font-size:8px}}.rules-card{width:min(620px,100%)}.rules-card ol{counter-reset:rules;margin:20px 0;padding:0;list-style:none}.rules-card li{counter-increment:rules;border-top:1px solid #66848b55;grid-template-columns:28px minmax(0,1fr);gap:4px 10px;padding:16px 0;display:grid}.rules-card li:before{content:"0" counter(rules);color:var(--gold);font:12px/1.7 var(--font-geist-mono), monospace;grid-row:span 2}.rules-card li b{font-size:16px;font-weight:650}.rules-card li span{color:var(--muted);font-size:16px;line-height:1.5}.special-rule{color:var(--muted);border-top:1px solid #66848b55;padding-top:16px;font-size:14px;line-height:1.5}.rules-stats{border-collapse:collapse;text-align:left;width:100%;margin-top:18px;font-size:14px}.rules-stats th{color:var(--muted);font-size:12px;font-weight:500}.rules-stats td,.rules-stats th{border-bottom:1px solid #66848b33;padding:10px 6px}.rules-stats td:not(:first-child),.rules-stats th:not(:first-child){text-align:right}.rules-stats td span{width:24px;color:var(--gold);vertical-align:-1px;font-size:20px;display:inline-block}.rules-ready{width:100%;margin-top:12px}.army-picker,.store-card{width:min(760px,100%)}.army-picker>p,.store-intro{color:var(--muted);margin:0 0 16px;font-size:16px;line-height:1.5}.army-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px;display:grid}.army-option{background:var(--surface-1);min-width:0;color:var(--ink);border:1px solid #78949b55;border-radius:4px;flex-direction:column;align-items:center;padding:18px 14px;display:flex;position:relative}.army-option.selected{border-color:var(--gold);box-shadow:none}.army-option.army-olympus{background:var(--surface-1);border-top:3px solid var(--olympus)}.army-option.army-nile{background:var(--surface-1);border-top:3px solid var(--nile)}.army-lineup{aspect-ratio:2.8;width:100%;margin:6px 0 18px;display:flex}.army-lineup .piece-art{width:33.333%}.army-lineup .piece-sprite{width:100%;height:100%}.army-option strong{font-size:16px;font-weight:650;display:block}.army-option small{color:var(--muted);margin-top:7px;font-size:13px;line-height:1.5;display:block}.army-option>span:last-of-type{text-align:left;width:100%}.army-option>i{color:#223c40;background:var(--gold);border-radius:5px;padding:4px 7px;font-size:12px;font-style:normal;position:absolute;top:8px;right:8px}.promotion-card{width:min(660px,100%)}.promotion-options{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.promotion-options button{background:var(--surface-2);border:1px solid #829ca45a;border-radius:4px;min-width:0;padding:12px 7px}.promotion-art{height:110px}.promotion-options b,.promotion-options small{margin-top:9px;display:block}.promotion-options b{font-size:14px}.promotion-options small{color:var(--muted);font-size:12px}.collection-toolbar{color:var(--muted);justify-content:space-between;align-items:center;margin:0 0 16px;display:flex}.collection-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.collection-world{background:var(--surface-1);border:1px solid #8bc4d355;border-radius:4px;min-width:0;padding:18px 12px 14px}.collection-world.world-wildwood{background:var(--surface-1);border-color:#b3cb8755}.collection-world-heading{padding:0 5px}.collection-world h3{letter-spacing:-.02em;margin:0 0 4px;font-size:21px}.collection-world-heading>span{color:#d0dfda;font-size:12px}.collection-roster{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 2px;margin:14px 0;display:grid}.collection-roster .piece-art{aspect-ratio:1;height:auto}.collection-roster small{text-align:center;color:#e4eee8;min-height:32px;font-size:12px;line-height:1.25;display:block}.collection-included{text-align:center;color:#d0dfda;margin:12px 0;font-size:11px}.collection-world>button{width:100%;min-height:46px}.collection-owned{text-align:center;color:var(--green)}.collection-checkout{text-align:center;margin-top:20px}.collection-checkout>.primary-button{width:100%;min-height:50px}.collection-checkout>.primary-button:disabled{opacity:.75}.collection-checkout>p{color:var(--muted);margin:10px 0 0;font-size:13px;line-height:1.5}.collection-restore{min-height:44px;color:var(--gold);background:0 0;margin:8px auto 0;padding:8px 16px;display:block}.trial-banner{color:#d7eee8;justify-content:space-between;align-items:center;gap:12px;width:min(100%,650px);font-size:12px;display:flex}.trial-banner button{color:var(--gold);background:#f4cc7a19;border-radius:4px;min-height:44px;padding:8px 12px}.play-area:has(.trial-banner) .board-stage{width:min(100%,100dvh - 442px,650px)}.trial-menu-note{color:var(--muted);font-size:13px;line-height:1.5}.army-option.army-frostbound{background:var(--surface-1);border-top:3px solid #9cdbff}.army-option.army-wildwood{background:var(--surface-1);border-top:3px solid #c4df83}.army-option.army-terracotta{background:var(--surface-1);border-top:3px solid #e8aa74}.army-option.army-tidal,.army-option.army-astral{background:var(--surface-1);border-top:3px solid #8ee8e0}.theme-terracotta{background:radial-gradient(at 50% 38%,#b5694138,#0000 72%)}.theme-terracotta:before{opacity:.5;background:linear-gradient(#492b21b5,#1b1818e8),url(/armies/terra-tide-terrain.webp) 50%/cover}.theme-terracotta .light-square{color:#3f2921;background-color:#e5c5a0;background-position:0 0}.theme-terracotta .dark-square{color:#fff2d8;background-color:#854737;background-position:100% 0}.theme-tidal{background:radial-gradient(at 50% 38%,#43bfc337,#0000 72%)}.theme-tidal:before{opacity:.48;background-color:#0000;background-image:linear-gradient(#123d4aaa,#071e2ae5),url(/armies/terra-tide-terrain.webp);background-position:100% 100%;background-repeat:repeat,repeat;background-size:auto,cover;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box}.theme-tidal .light-square{color:#163d4d;background-color:#cbebe4;background-position:0 100%}.theme-tidal .dark-square{color:#e9fffa;background-color:#244e72;background-position:100% 100%}.theme-terracotta .square,.theme-tidal .square{background-blend-mode:soft-light;background-image:url(/armies/terra-tide-terrain.webp);background-size:200% 200%}.theme-terracotta .mode-3d .board-plane:after{background:linear-gradient(#e3bf8d,#ae7550 18%,#654131 75%,#c48d59)}.theme-tidal .mode-3d .board-plane:after{background:linear-gradient(#d3efea,#5d9da7 18%,#294e68 75%,#82c2ca)}.theme-terracotta .square:before,.theme-tidal .square:before{background:linear-gradient(145deg,#ffffff0e,#0000 60%,#162d3717)}.theme-frostbound{background:radial-gradient(at 50% 35%,#6a97a959,#0000 70%)}.theme-frostbound:before{filter:hue-rotate(168deg)saturate(.72);opacity:.48;background:linear-gradient(#173a4cb5,#071d2bea),url(/fantasy-battlefield.jpg) 50%/cover}.theme-frostbound .light-square{color:#163849;background:#d3e9e6}.theme-frostbound .dark-square{color:#ecf7ff;background:#426b87}.theme-frostbound .square:before{background:linear-gradient(140deg,#0000 45%,#e5fbff33 46%,#0000 48%),linear-gradient(25deg,#c7f6ff22,#0000 60%)}.theme-frostbound .mode-3d .board-plane:after{background:linear-gradient(#d3f2f9,#5c899e 20%,#24485f 80%,#8fb8c8)}.theme-wildwood{background:radial-gradient(at 50% 35%,#6a8d4855,#0000 70%)}.theme-wildwood:before{filter:hue-rotate(55deg)saturate(.76);opacity:.48;background:linear-gradient(#1c3b25a6,#081b17e8),url(/fantasy-battlefield.jpg) 50%/cover}.theme-wildwood .light-square{color:#273f2d;background:#d1d5a7}.theme-wildwood .dark-square{color:#f0efcd;background:#466950}.theme-wildwood .square:before{background:radial-gradient(at 0 100%,#a9c77944,#0000 70%),linear-gradient(125deg,#ffffff17,#0000 60%)}.theme-wildwood .mode-3d .board-plane:after{background:linear-gradient(#ccd59c,#6c7949 20%,#39482e 80%,#a6b477)}.theme-astral{background:radial-gradient(at 50% 35%,#7762bd55,#0000 70%)}.theme-astral:before{opacity:.74;background:radial-gradient(circle at 50% 24%,#6ce0e13d,#0000 24%),linear-gradient(#251b4ec4,#080e24ed)}.theme-astral .light-square{color:#332c52;background:#eee5cf}.theme-astral .dark-square{color:#f7ecce;background:#2a2457}.theme-astral .square:before{background:radial-gradient(circle at 72% 25%,#8df9ff2e 0 1px,#0000 2px),linear-gradient(145deg,#ffffff14,#0000 58%,#22194630)}.theme-astral .mode-3d .board-plane:after{background:linear-gradient(#e2c687,#806738 18%,#33275f 75%,#8f78b7)}.battle-board .square{background-color:#0000;background-image:none}.army-fx-frostbound .spark-field i,.army-fx-frostbound .debris-field i{clip-path:polygon(50% 0,100% 65%,50% 100%,0 65%);border-radius:0}.army-fx-frostbound .cast-sigil{border-radius:20%}.army-fx-wildwood .spark-field i,.army-fx-wildwood .debris-field i{background:linear-gradient(45deg,#64bd83,#efffb4);border-radius:80% 0}.army-fx-wildwood .cast-sigil{border-style:dotted;border-width:3px}@media (max-width:560px){.collection-grid{grid-template-columns:minmax(0,1fr)}.collection-roster{grid-template-columns:repeat(3,minmax(0,1fr))}.founder-store .store-intro{font-size:14px}}.store-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.store-product{background:#ffffff05;border:1px solid #7c959b4d;border-radius:15px;grid-template-columns:32px minmax(0,1fr);gap:10px;padding:16px;display:grid}.product-icon{color:var(--gold);font-size:24px}.store-product strong{font-size:16px}.store-product p{color:var(--muted);margin:7px 0;font-size:14px;line-height:1.5}.store-product button{color:#b8cdce;opacity:1;background:0 0;grid-column:2;justify-self:start;padding:5px 0;font-size:12px}.fair-play-note{color:#d1e2d9;gap:10px;margin:20px 0 0;font-size:14px;line-height:1.5;display:flex}.fair-play-note span{color:var(--green)}.attack-source-fx,.combat-fx,.damage-billboard{--fx-core:#fff6d2;--fx-primary:#ffcc6b;--fx-secondary:#ff8355;--impact:.22s;position:absolute}.fx-charge{--fx-primary:#b2f4ff;--fx-secondary:#52cfff}.fx-arcane{--fx-primary:#e5bbff;--fx-secondary:#ba75ff}.fx-tempest{--fx-primary:#ffe6a7;--fx-secondary:#f498d9}.fx-aegis{--fx-primary:#fff0bf;--fx-secondary:#f4be64}.army-fx-terracotta .cast-sigil{border-style:double;border-width:3px;border-radius:15%}.army-fx-terracotta .spark-field i{background:linear-gradient(45deg,#bf7245,#fff1bf);border-radius:2px}.army-fx-tidal .cast-sigil{box-shadow:0 0 0 5px #8edce433, 0 0 15px var(--fx-secondary);border-style:solid;border-width:1px}.army-fx-tidal .spark-field i{background:#79d8f477;border:1px solid #dbfffb;border-radius:50%}.army-fx-astral .cast-sigil{box-shadow:0 0 0 4px #9077d638, 0 0 18px var(--fx-secondary);border-style:double}.army-fx-astral .spark-field i{clip-path:polygon(50% 0,61% 38%,100% 50%,61% 62%,50% 100%,39% 62%,0 50%,39% 38%);background:linear-gradient(#fff7d4,#75e9ef)}.attack-source-fx{z-index:16;inset:0;transform:translateZ(5px)}.cast-sigil,.attack-pulse{aspect-ratio:1;border:2px solid var(--fx-primary);width:78%;box-shadow:0 0 12px var(--fx-secondary);border-radius:50%;animation:.6s ease-out both castRing;position:absolute;top:50%;left:50%}.cast-sigil{border-style:dashed}.attack-pulse{border-width:1px;width:42%}.attack-trail{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.attack-trail path{stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;animation:.42s linear both travelStroke}.trail-glow{stroke:var(--fx-secondary);stroke-width:8px;stroke-opacity:.28}.trail-core{stroke:var(--fx-core);stroke-width:2px}.fx-pierce .trail-glow{stroke-width:4px}.fx-crush .trail-glow{stroke-width:14px}.fx-crush .trail-core{stroke-width:4px}.fx-charge .trail-core{stroke-dasharray:.08 .035}.fx-arcane .trail-glow{stroke-width:9px}.fx-arcane .trail-core{stroke:var(--fx-primary);stroke-width:3px}.fx-tempest .trail-core{stroke-width:3px}.fx-aegis .trail-glow{stroke-width:18px}.fx-aegis .trail-core{stroke:var(--fx-primary);stroke-width:1.5px}.fx-pierce .cast-sigil{display:none}.fx-pierce .attack-pulse{width:30%;animation-duration:.35s}.fx-crush .cast-sigil{border-style:solid;border-radius:18%;animation:.6s ease-out both crushCast}.fx-charge .cast-sigil{border-style:solid;border-inline-color:#0000;width:66%;animation:.6s both chargeCast}.fx-arcane .cast-sigil{border-style:double;border-width:4px;animation:.65s both runeCast}.fx-tempest .cast-sigil{border-style:dotted;animation:.65s both tempestCast}.fx-aegis .cast-sigil{border-style:solid;border-width:3px;width:62%;animation:.6s both aegisCast}.attack-source-fx b{color:var(--fx-core);font:700 12px/1 var(--font-geist-mono), monospace;text-shadow:0 2px 4px #000;animation:.6s both castLabel;position:absolute;top:-5%;left:50%}.combat-fx{z-index:18;transform-style:preserve-3d;place-items:center;display:grid;inset:0;transform:translateZ(6px)}.impact-flash{aspect-ratio:1;opacity:0;background:radial-gradient(circle, #fffceb, var(--fx-primary) 15%, transparent 70%);width:75%;animation:impactFlash .35s var(--impact) both;border-radius:50%;position:absolute}.signature-billboard{transform:rotateZ(calc(0deg - var(--board-twist))) rotateX(calc(0deg - var(--board-angle)));transform-origin:50% 100%;place-items:center;display:grid;position:absolute;inset:0}.signature-impact{width:112%;height:112%;stroke:var(--fx-primary);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round;pointer-events:none;position:absolute;overflow:visible}.strike-main{stroke:var(--fx-core);stroke-width:4px}.strike-detail{stroke-width:2px}.strike-wave{stroke-width:2px;animation:signatureWave .55s var(--impact) both;transform-origin:50px 50px}.strike-core{fill:var(--fx-core)}.fx-pierce .signature-impact{animation:spearThrust .42s var(--impact) both}.fx-pierce .strike-main{stroke-width:3px}.fx-crush .signature-impact{animation:hammerDrop .58s var(--impact) both}.fx-crush .strike-main{fill:var(--fx-primary);fill-opacity:.16}.fx-charge .signature-impact{animation:cavalryCut .52s var(--impact) both}.fx-charge .strike-main{fill:var(--fx-primary);fill-opacity:.35;stroke-width:2px}.fx-arcane .signature-impact{animation:runeBloom .65s var(--impact) both}.fx-arcane .strike-main{stroke-width:2px}.fx-tempest .signature-impact{animation:royalLightning .68s var(--impact) both}.fx-tempest .strike-main{fill:var(--fx-core);stroke-width:1.5px}.fx-aegis .signature-impact{animation:sovereignGuard .62s var(--impact) both}.fx-aegis .strike-main{fill:var(--fx-primary);fill-opacity:.2}.signature-impact .strike-outline .strike-main{stroke:#17304e;stroke-width:8px;fill:none}.signature-impact .strike-outline .strike-detail,.signature-impact .strike-outline .strike-wave{stroke:#17304e;stroke-width:5px}.signature-impact .strike-outline .strike-core{fill:#17304e;stroke:#17304e;stroke-width:7px}.attack-motes,.spark-field,.debris-field{position:absolute;inset:0}.attack-motes i,.spark-field i,.debris-field i{background:var(--fx-core);width:4px;height:4px;box-shadow:0 0 6px var(--fx-secondary);animation:particleBurst .55s var(--impact) both;border-radius:50%;position:absolute;top:50%;left:50%}.attack-motes i{animation-duration:.35s;animation-delay:0s}.debris-field i{background:var(--fx-primary);border-radius:1px;width:3px;height:8px;animation-duration:.72s}.damage-billboard{z-index:28;transform:rotateZ(calc(0deg - var(--board-twist))) rotateX(calc(0deg - var(--board-angle)));transform-origin:bottom;top:0;left:50%}.damage-pop{border:1px solid var(--fx-primary);color:#fff8e5;width:max-content;font:800 clamp(15px, 2vw, 22px)/1 var(--font-geist-mono), monospace;animation:damageRise .78s var(--impact) both;background:#14303bf0;border-radius:7px;align-items:center;gap:5px;padding:5px 8px;display:flex;box-shadow:0 3px 12px #051d3266}.damage-pop small{color:#ffca97;white-space:nowrap;padding-left:4px;font-size:11px}.death-billboard{transform:rotateZ(calc(0deg - var(--board-twist))) rotateX(calc(0deg - var(--board-angle)));transform-origin:bottom;position:absolute;inset:0 0 10%}.death-ghost{animation:deathDissolve .58s var(--impact) both}.attacker-square .piece-motion{animation:.42s both unitStrike}.attacker-square[data-strike=pawn] .piece-motion{animation-name:pawnLunge}.attacker-square[data-strike=rook] .piece-motion{animation-name:rookRecoil}.attacker-square[data-strike=knight] .piece-motion{animation-name:knightLeap}.attacker-square[data-strike=bishop] .piece-motion{animation-name:bishopCast}.attacker-square[data-strike=queen] .piece-motion{animation-name:queenCast}.attacker-square[data-strike=king] .piece-motion{animation-name:kingBash}.attacker-square[data-reaction=true] .piece-motion{animation-delay:.36s}.arrived-square .piece-motion{animation:.34s both unitLand}.hit-square .piece-motion{animation:.36s .22s both unitHit}.capture-arrival>.piece{visibility:hidden;animation:0s .5s forwards revealUnit}.capture-arrival .piece-motion{animation-delay:.5s}.departing-unit{animation:.5s both departUnit;position:absolute}.reaction-fx{--impact:.58s}.reaction-fx .cast-sigil,.reaction-fx .attack-pulse,.reaction-fx .attack-trail path,.reaction-fx b,.reaction-fx .attack-motes i{animation-delay:.36s}.army-cast-art,.army-impact-art{pointer-events:none;width:100%;height:100%;stroke:var(--fx-primary);stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round;transform-origin:50%;position:absolute;inset:0;overflow:visible}.army-cast-art{width:70%;height:70%;animation:var(--army-cast) .55s ease-out both;inset:15%}.army-ground-impact{pointer-events:none;position:absolute;inset:-8%}.army-impact-art{animation:var(--army-impact) .64s var(--impact) ease-out both}.theme-solid{fill:var(--fx-secondary);fill-opacity:.25}.theme-art-outline{stroke:#14243b;stroke-width:5px;opacity:.55}.theme-art-outline .theme-solid{fill:none}.themed-royal-mark{stroke:var(--fx-primary);stroke-width:2.5px}.signature-impact .strike-outline .themed-royal-mark{stroke:#17304e;stroke-width:6px}.signature-impact .strike-outline .theme-solid{fill:none}.trail-ribbon{stroke:var(--fx-secondary);stroke-width:2px;stroke-opacity:.7}.army-fx-olympus .trail-core{stroke:var(--fx-primary)}.army-fx-olympus .spark-field i{clip-path:polygon(60% 0,10% 55%,45% 55%,35% 100%,100% 35%,60% 35%);border-radius:0;width:3px;height:10px}.army-fx-nile .trail-glow{stroke-width:11px;stroke-opacity:.23}.army-fx-nile .trail-ribbon{stroke-dasharray:.018 .055;stroke-width:3px}.army-fx-nile .spark-field i{background:#ffe0a0;border-radius:1px;width:3px;height:3px;animation-name:sandScatter}.army-fx-frostbound .trail-core{stroke-dasharray:.055 .035}.army-fx-frostbound .spark-field i{background:linear-gradient(90deg,#52aede,#efffff);width:5px;height:11px}.army-fx-wildwood .trail-glow{stroke-width:6px}.army-fx-wildwood .trail-core{stroke:var(--fx-secondary)}.army-fx-wildwood .trail-ribbon{stroke-width:1.5px;stroke-dasharray:.03 .025}.army-fx-wildwood .spark-field i{width:6px;height:9px;animation-name:leafScatter}.army-fx-terracotta .trail-core{stroke:var(--fx-secondary);stroke-dasharray:.09 .025;stroke-width:3px}.army-fx-terracotta .spark-field i{clip-path:polygon(20% 0,80% 10%,100% 80%,35% 100%,0 55%);width:7px;height:5px;animation-name:stoneScatter}.army-fx-tidal .trail-glow{stroke-width:12px;stroke-opacity:.2}.army-fx-tidal .trail-ribbon{stroke-width:3px}.army-fx-tidal .spark-field i{border-radius:70% 30% 65% 35%;width:5px;height:8px;animation-name:waterScatter}.army-fx-astral .trail-glow{stroke-width:10px}.army-fx-astral .trail-ribbon{stroke-dasharray:.01 .04;stroke-width:3px}.army-fx-astral .spark-field i{width:8px;height:8px;animation-name:starScatter}.army-fx-lookingglass .trail-core{stroke:var(--fx-secondary)}.army-fx-lookingglass .trail-ribbon{stroke-dasharray:.02 .04}.army-fx-lookingglass .spark-field i{clip-path:none;background:linear-gradient(135deg,#fff1d7 45%,#cf405b 45% 65%,#fff1d7 65%);border-radius:1px;width:6px;height:9px;animation-name:cardScatter}.army-fx-gaslight .trail-core{stroke:var(--fx-core);stroke-dasharray:.03 .012}.army-fx-gaslight .spark-field i{clip-path:none;background:#a77836;border:1px solid #ffe0a5;border-radius:50%;width:6px;height:6px}@keyframes caseworkCharge{0%{opacity:0;transform:scale(.45)rotate(-24deg)}40%{opacity:.9;transform:scale(1)rotate(0)}to{opacity:0;transform:scale(1.14)rotate(12deg)}}@keyframes lensBurst{0%{opacity:0;transform:scale(.35)}20%{opacity:1;transform:scale(.95)rotate(-12deg)}to{opacity:0;transform:scale(1.45)rotate(24deg)}}.reaction-fx .army-cast-art{animation-delay:.36s}.fx-pierce .army-cast-art{width:50%;height:50%;inset:25%}.fx-pierce .army-ground-impact{inset:10%}.fx-crush .army-ground-impact{inset:-15%}.fx-arcane .army-cast-art,.fx-tempest .army-cast-art{width:90%;height:90%;inset:5%}@keyframes olympianCharge{0%{opacity:0;transform:scale(.4)}28%{opacity:.8;transform:scale(.9)}55%{opacity:.45}to{opacity:0;transform:scale(1.25)}}@keyframes olympianBolt{0%{opacity:0;transform:translateY(-12%)scale(.6)}20%{opacity:.9;transform:scale(1)}42%{opacity:.5}to{opacity:0;transform:scale(1.35)}}@keyframes solarCharge{0%{opacity:0;transform:scale(.5)rotate(-10deg)}35%{opacity:.85}to{opacity:0;transform:scale(1.35)rotate(10deg)}}@keyframes solarFlare{0%{opacity:0;transform:scale(.35)}25%{opacity:.9;transform:scale(1)}to{opacity:0;transform:scale(1.5)}}@keyframes frostCharge{0%{opacity:0;transform:translateY(12%)scaleY(.2)}35%{opacity:.85;transform:scaleY(1)}to{opacity:0;transform:scale(1.1)}}@keyframes frostShatter{0%{opacity:0;transform:scaleY(.2)translateY(15%)}25%{opacity:.9;transform:scale(1)}55%{opacity:.65;transform:scale(1.07)}to{opacity:0;transform:translateY(-10%)scale(1.3)}}@keyframes woodlandCharge{0%{opacity:0;transform:rotate(-45deg)scale(.3)}35%{opacity:.8}to{opacity:0;transform:rotate(25deg)scale(1.25)}}@keyframes woodlandBloom{0%{opacity:0;transform:rotate(-30deg)scale(.2)}35%{opacity:.85;transform:rotate(0)scale(1)}to{opacity:0;transform:rotate(25deg)scale(1.3)}}@keyframes jadeCharge{0%{opacity:0;transform:translateY(10%)scale(.8)}30%{opacity:.85;transform:translateY(0)scale(1)}to{opacity:0;transform:scale(1.15)}}@keyframes earthFracture{0%{opacity:0;transform:translateY(15%)scaleY(.4)}20%{opacity:.9;transform:translateY(-4%)scale(1.05)}50%{opacity:.75;transform:translateY(0)scale(1)}to{opacity:0;transform:scale(1.2)}}@keyframes tidalCharge{0%{opacity:0;transform:rotate(-35deg)scale(.45)}30%{opacity:.8}to{opacity:0;transform:rotate(40deg)scale(1.3)}}@keyframes tidalSurge{0%{opacity:0;transform:translate(-12%)scale(.4)}30%{opacity:.85;transform:translate(0)scale(1)}to{opacity:0;transform:translate(10%)scale(1.4)}}@keyframes astralCharge{0%{opacity:0;transform:rotate(-70deg)scale(.3)}35%{opacity:.85}to{opacity:0;transform:rotate(55deg)scale(1.3)}}@keyframes astralNova{0%{opacity:0;transform:rotate(-45deg)scale(.25)}25%{opacity:.9;transform:rotate(0)scale(1)}to{opacity:0;transform:rotate(50deg)scale(1.45)}}@keyframes mirrorCharge{0%{opacity:0;transform:rotate(-20deg)scale(.4)}32%{opacity:.85;transform:rotate(10deg)scale(1)}to{opacity:0;transform:rotate(40deg)scale(1.25)}}@keyframes roseclockBurst{0%{opacity:0;transform:scale(.35)}25%{opacity:.9;transform:scale(1)}to{opacity:0;transform:rotate(-25deg)scale(1.35)}}@keyframes cardScatter{0%{opacity:0;transform:rotate(var(--particle-angle)) translateX(2px)}20%{opacity:1}to{opacity:0;transform:rotate(var(--particle-angle)) translateX(32px) rotate(150deg) scale(.3)}}@keyframes sandScatter{0%{opacity:0;transform:rotate(var(--particle-angle)) translateX(2px)}20%{opacity:1}to{opacity:0;transform:rotate(var(--particle-angle)) translate(28px, 15px) scale(.3)}}@keyframes leafScatter{0%{opacity:0;transform:rotate(var(--particle-angle)) translateX(2px)}20%{opacity:1}to{opacity:0;transform:rotate(var(--particle-angle)) translateX(32px) rotate(100deg) scale(.45)}}@keyframes stoneScatter{0%{opacity:0;transform:rotate(var(--particle-angle)) translateX(2px)}20%{opacity:1}to{opacity:0;transform:rotate(var(--particle-angle)) translate(26px, 10px) rotate(75deg) scale(.25)}}@keyframes waterScatter{0%{opacity:0;transform:rotate(var(--particle-angle)) translateX(2px) scale(.5)}20%{opacity:1}to{opacity:0;transform:rotate(var(--particle-angle)) translateX(36px) scale(.2, .6)}}@keyframes starScatter{0%{opacity:0;transform:rotate(var(--particle-angle)) translateX(2px) scale(.2)}25%{opacity:1;transform:rotate(var(--particle-angle)) translateX(14px) scale(1)}to{opacity:0;transform:rotate(var(--particle-angle)) translateX(34px) rotate(50deg) scale(.1)}}.online-combat-board:not(.mode-3d){--board-angle:0deg;--board-twist:0deg}.online-combat-board .health-fraction{width:70%;left:15%}.online-combat-board .health-fraction .health-value{color:#fff;text-shadow:0 1px 2px #092e30,0 0 1px #092e30;font-size:clamp(7px,1.7vw,11px)}.hint-route{width:var(--hint-distance);z-index:15;height:4px;transform:rotate(var(--hint-angle));transform-origin:0;background:linear-gradient(90deg,#b1f4b54d,#deffa2);border-radius:3px;position:absolute;top:50%;left:50%;box-shadow:0 0 4px #163e32}.hint-route:after{content:"";border-top:3px solid #deffa2;border-right:3px solid #deffa2;width:10px;height:10px;position:absolute;top:50%;right:-1px;transform:translateY(-50%)rotate(45deg)}.hint-target-marker{z-index:9;color:#fff5ba;background:#bfd96c20;border:2px solid #edffa2;border-radius:6px;place-items:center;font-size:18px;display:grid;position:absolute;inset:7%}@keyframes castRing{0%{opacity:0;transform:translate(-50%,-50%)scale(.4)}30%{opacity:.9}to{opacity:0;transform:translate(-50%,-50%)scale(1.2)}}@keyframes travelStroke{0%{stroke-dashoffset:1px;opacity:0}12%{opacity:1}52%{stroke-dashoffset:0;opacity:1}to{stroke-dashoffset:0;opacity:0}}@keyframes crushCast{0%{opacity:0;transform:translate(-50%,-50%)scale(.55)}28%{opacity:.9;transform:translate(-50%,-50%)scale(.9)}to{opacity:0;transform:translate(-50%,-50%)scale(1.2)}}@keyframes chargeCast{0%{opacity:0;transform:translate(-50%,-50%)rotate(-35deg)scale(.6)}30%{opacity:.9}to{opacity:0;transform:translate(-50%,-50%)rotate(95deg)scale(1.2)}}@keyframes runeCast{0%{opacity:0;transform:translate(-50%,-50%)rotate(0)scale(.4)}30%{opacity:.9}to{opacity:0;transform:translate(-50%,-50%)rotate(70deg)scale(1.3)}}@keyframes tempestCast{0%{opacity:0;transform:translate(-50%,-50%)rotate(0)scale(.5)}30%{opacity:1}to{opacity:0;transform:translate(-50%,-50%)rotate(-95deg)scale(1.3)}}@keyframes aegisCast{0%{opacity:0;transform:translate(-50%,-50%)scale(.8)}25%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-50%)scale(1.5)}}@keyframes spearThrust{0%{opacity:0;transform:rotate(var(--strike-angle)) translateX(-22%) scaleX(.4)}24%{opacity:1;transform:rotate(var(--strike-angle)) translateX(0) scaleX(1)}to{opacity:0;transform:rotate(var(--strike-angle)) translateX(12%) scaleX(1.05)}}@keyframes hammerDrop{0%{opacity:0;transform:translateY(-24%)scale(.8)}24%{opacity:1;transform:translateY(4%)scale(1.05)}50%{opacity:.85;transform:translateY(0)scale(1)}to{opacity:0;transform:scale(1.12)}}@keyframes cavalryCut{0%{opacity:0;transform:rotate(-55deg)scale(.5)}28%{opacity:1;transform:rotate(10deg)scale(1.05)}to{opacity:0;transform:rotate(38deg)scale(1.2)}}@keyframes runeBloom{0%{opacity:0;transform:rotate(-35deg)scale(.3)}28%,55%{opacity:.95;transform:rotate(0)scale(1)}to{opacity:0;transform:rotate(25deg)scale(1.25)}}@keyframes royalLightning{0%{opacity:0;transform:translateY(-12%)scaleY(.5)}14%{opacity:1;transform:translateY(0)scaleY(1.1)}36%{opacity:.65}48%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.15)}}@keyframes sovereignGuard{0%{opacity:0;transform:scale(.35)}25%,55%{opacity:.95;transform:scale(1)}to{opacity:0;transform:scale(1.22)}}@keyframes signatureWave{0%{opacity:.9;transform:scale(.4)}to{opacity:0;transform:scale(1.35)}}@keyframes pawnLunge{0%,to{transform:translate(0)}45%{transform:translate(var(--lunge-x), var(--lunge-y))}}@keyframes rookRecoil{0%,to{transform:translate(0)}25%{transform:translate(calc(var(--lunge-x) * -.5), calc(var(--lunge-y) * -.5)) scale(.96)}52%{transform:translate(var(--lunge-x), var(--lunge-y)) scale(1.04)}}@keyframes knightLeap{0%,to{transform:translateY(0)}40%{transform:translateY(-18%)rotate(-6deg)}68%{transform:translateY(3%)rotate(3deg)}}@keyframes bishopCast{0%,to{filter:brightness();transform:translateY(0)}40%{filter:brightness(1.35);transform:translateY(-6%)}}@keyframes queenCast{0%,to{filter:brightness();transform:scale(1)}40%{filter:brightness(1.4);transform:scale(1.08)}}@keyframes kingBash{0%,to{transform:translate(0)scale(1)}25%{transform:scale(.95)}52%{transform:translate(var(--lunge-x), var(--lunge-y)) scale(1.04)}}@keyframes castLabel{0%{opacity:0;transform:translate(-50%,8px)}25%{opacity:1}to{opacity:0;transform:translate(-50%,-8px)}}@keyframes impactFlash{0%{opacity:0;transform:scale(.2)}20%{opacity:.8}to{opacity:0;transform:scale(1.3)}}@keyframes particleBurst{0%{opacity:0;transform:rotate(var(--particle-angle)) translateX(2px) scale(.5)}20%{opacity:1}to{opacity:0;transform:rotate(var(--particle-angle)) translateX(clamp(22px, 3.5vw, 44px)) scale(.15)}}@keyframes damageRise{0%{opacity:0;transform:translate(-50%,-2px)scale(.8)}15%,60%{opacity:1;transform:translate(-50%,-22px)scale(1)}to{opacity:0;transform:translate(-50%,-42px)}}@keyframes unitLand{0%{transform:translateY(-15%)}65%{transform:translateY(3%)}to{transform:translateY(0)}}@keyframes unitStrike{0%,to{transform:translateY(0)}40%{transform:translateY(-9%)scale(1.05)}}@keyframes unitHit{0%,to{transform:translate(0)}25%{filter:brightness(1.6);transform:translate(6%)}55%{transform:translate(-4%)}}@keyframes deathDissolve{0%{opacity:1;filter:brightness();transform:translateY(0)}35%{opacity:.9;filter:brightness(1.6)saturate(.3)}to{opacity:0;filter:brightness(1.4)blur(3px);transform:translateY(-15%)scale(.75)}}@keyframes departUnit{0%,85%{opacity:1}to{opacity:0}}@keyframes revealUnit{to{visibility:visible}}@media (hover:hover) and (pointer:fine){.square:hover:before{background:#fff9d51c}.menu-trigger:hover,.battle-dock button:hover:not(:disabled),.menu-actions button:hover:not(:disabled),.army-option:hover{background-color:#ffffff12}}@media (max-width:600px){.app-shell{height:auto;padding:max(4px, env(safe-area-inset-top)) max(2px, env(safe-area-inset-right)) max(4px, env(safe-area-inset-bottom)) max(2px, env(safe-area-inset-left))}.game-table{gap:6px;height:auto}.command-bar{border-radius:15px;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr) minmax(0,1fr);gap:6px;width:calc(100% - 16px);min-height:52px;padding:3px 6px}.compact-brand strong,.menu-trigger>span{display:none}.compact-brand{gap:0}.menu-trigger{width:46px;padding:0}.battle-player-card>span:last-child,.command-opponent>span:not([aria-hidden=true]){display:none}.command-opponent{gap:4px}.command-opponent .mobile-difficulty{color:#e6bb79;background:#20243a;border-radius:4px;padding:1px 4px;font-size:8px;line-height:1.2;display:block;position:absolute;bottom:-4px;left:50%;transform:translate(-50%)}.turn-chip{height:42px;min-height:42px;font-size:13px}.play-area{justify-content:flex-start;gap:6px}.app-shell .board-stage{order:0;width:100%;margin:0}.app-shell .play-area:has(.trial-banner) .board-stage{order:0;width:100%;margin:0}.board-stage.mode-3d{perspective:2000px;--board-angle:30deg}.mode-3d .board-plane{scale:.96}.app-shell .battlefield-art{border:1px solid #0000;border-image:var(--battlefield-image) 10.1% 10.4% 10.7% 10.4% fill / 2% / 0 stretch;background-image:none}.battle-board,.theme-lookingglass .battle-board{width:96%;height:96%;top:2%;left:2%}.app-shell.theme-lookingglass .battlefield-art{border-image-slice:14.7% 15.1% 15.6% 15.2% fill}.app-shell.theme-gaslight .battle-board{width:96%;height:96%;top:2%;left:2%}.app-shell.theme-gaslight .battlefield-art{border-image-slice:15% 14.1% 13.2% fill}.mode-2d .piece{width:98%;height:98%}.battle-board .piece-sprite{transform-origin:50% 92%;scale:1.08}.battle-board .piece-art.pawn .piece-sprite{scale:1.18}.battle-feedback{order:1;align-items:center;width:calc(100% - 16px);min-height:60px;display:grid}.battle-feedback>.draw-warning-slot,.battle-feedback>.battle-status{grid-area:1/1;width:100%}.battle-feedback>.draw-warning-slot[data-active=true]+.battle-status{visibility:hidden}.battle-status,.battle-dock,.draw-warning-slot,.trial-banner{width:calc(100% - 16px)}.trial-banner{order:-1}.draw-warning-slot{order:1}.battle-status{order:2}.battle-dock{order:3}:root .app-shell .battle-save-note{order:4;width:calc(100% - 16px);height:1lh;font-size:10px}.battle-status{gap:8px;min-height:42px;font-size:13px}.battle-status>small{font-size:12px}.battle-dock{padding:3px}.battle-dock small{font-size:11px}.battle-dock button{gap:3px;min-height:52px}.dock-icon{width:24px;height:24px}.dock-icon .ui-icon{width:22px;height:22px}.unit-mark{width:15px;height:15px;font-size:14px}.health{width:50%;height:12px;left:34%}.health-value,.rank-label,.file-label{font-size:10px}.result-overlay{padding:max(10px, env(safe-area-inset-top)) 0 0}.result-overlay[open]{place-items:end center}.game-menu-card,.result-card,.rules-card,.promotion-card,.army-picker,.store-card{padding:32px 18px max(22px, env(safe-area-inset-bottom));border-bottom:0;border-radius:24px 24px 0 0;width:100%}.result-stats{grid-template-columns:repeat(2,1fr)}.sheet-handle{background:#abc7cc55;border-radius:3px;width:40px;height:4px;display:block;position:absolute;top:9px;left:calc(50% - 20px)}.army-grid{grid-template-columns:1fr}.army-lineup{width:min(100%,360px)}.army-option{padding:16px 10px}.army-option strong{font-size:14px}.army-option small{font-size:12px}.promotion-options{grid-template-columns:repeat(2,minmax(0,1fr))}.promotion-art{height:110px}.store-grid{grid-template-columns:1fr}}@media (max-height:560px) and (min-width:601px){.app-shell{height:auto;min-height:100dvh}.game-table{gap:10px}.play-area{grid-template-rows:auto minmax(0,1fr) auto auto;grid-template-columns:minmax(200px,1fr) 240px;place-items:center;gap:10px 24px;display:grid}.board-stage{grid-area:1/1/-1;width:min(100%,100dvh - 115px)}.draw-warning-slot,.trial-banner,.battle-status,.battle-save-note,.battle-dock{grid-column:2}.draw-warning-slot{grid-row:1}.battle-status{text-align:center;flex-direction:column;grid-row:2;justify-content:safe center;align-self:end;height:4lh}.battle-save-note{grid-row:3}.battle-dock{grid-row:4;align-self:start}.battle-dock button{min-height:60px}.battle-dock small{font-size:11px}.play-area:has(>.trial-banner){grid-template-rows:auto auto minmax(0,1fr) auto auto}.trial-banner{grid-row:2}.play-area:has(>.trial-banner) .battle-status{grid-row:3}.play-area:has(>.trial-banner) .battle-save-note{grid-row:4}.play-area:has(>.trial-banner) .battle-dock{grid-row:5}}@media (max-height:560px) and (min-width:601px) and (max-width:1000px){.app-shell{padding:max(8px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(8px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left))}.game-table{height:auto;display:block;position:relative}.command-bar{grid-template-columns:34px minmax(0,1fr) 84px;gap:6px;width:240px;min-height:58px;padding:5px 6px;position:absolute;top:0;right:0}.battle-player-card>span:last-child,.command-opponent>span:not([aria-hidden=true]),.menu-trigger>span{display:none}.command-opponent{gap:4px}.menu-trigger{width:46px;padding:0}.turn-chip{font-size:12px}.play-area{grid-template-rows:58px auto minmax(0,1fr) auto auto}.app-shell .play-area .board-stage{width:min(100%, calc(100svh - max(8px, env(safe-area-inset-top)) - max(8px, env(safe-area-inset-bottom)) - 8px))}.app-shell .battlefield-art{border:1px solid #0000;border-image:var(--battlefield-image) 10.1% 10.4% 10.7% 10.4% fill / 2% / 0 stretch;background-image:none}.battle-board,.theme-lookingglass .battle-board{width:96%;height:96%;top:2%;left:2%}.app-shell.theme-lookingglass .battlefield-art{border-image-slice:14.7% 15.1% 15.6% 15.2% fill}.app-shell.theme-gaslight .battle-board{width:96%;height:96%;top:2%;left:2%}.app-shell.theme-gaslight .battlefield-art{border-image-slice:15% 14.1% 13.2% fill}.mode-2d .piece{width:98%;height:98%}.battle-board .piece-sprite{transform-origin:50% 92%;scale:1.08}.battle-board .piece-art.pawn .piece-sprite{scale:1.18}.board-stage.mode-3d{perspective:2000px;--board-angle:30deg}.mode-3d .board-plane{scale:.96}.draw-warning-slot{grid-row:2}.battle-status{grid-row:3}.battle-save-note{grid-row:4}.battle-dock{grid-row:5}.battle-dock small{font-size:10px}.play-area:has(>.trial-banner){grid-template-rows:58px auto auto minmax(0,1fr) auto auto}.play-area:has(>.trial-banner) .trial-banner{grid-row:3}.play-area:has(>.trial-banner) .battle-status{grid-row:4}.play-area:has(>.trial-banner) .battle-save-note{grid-row:5}.play-area:has(>.trial-banner) .battle-dock{grid-row:6}}@media (max-height:700px) and (max-width:600px){.app-shell{height:auto}}@media (prefers-reduced-motion:reduce){.selection-marker{transition:none}*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.attack-source-fx,.combat-fx,.departing-unit{display:none}.capture-arrival>.piece{visibility:visible}.damage-pop{opacity:1;transform:translate(-50%,-8px)}}:root .battle-save-note{width:min(100%,610px);height:2lh;color:var(--text-muted,#a7adc1);text-align:center;flex:none;margin:0 0 4px;font-size:11px;line-height:1.3;overflow-y:auto}:root .battle-save-note[data-active=false]{visibility:hidden}:root .battle-save-note.save-warning{color:#f3b577}span.localized-footprint{min-width:0;display:grid}.localized-footprint>span{grid-area:1/1;min-width:0}.localized-footprint>.locale-measure{visibility:hidden;pointer-events:none;-webkit-user-select:none;user-select:none}.recovery-page{background:var(--app-bg);min-height:100svh;color:var(--ink);place-items:center;padding:24px;display:grid}.recovery-page section{gap:16px;width:min(100%,480px);display:grid}.recovery-page h1{font-size:clamp(28px,6vw,42px);line-height:1.15}.recovery-page p{color:#b6bbcd}.recovery-page button,.recovery-page a{min-height:44px;color:var(--ink);background:var(--surface-2);border:1px solid #ffffff20;border-radius:9px;padding:12px 18px;text-decoration:none}.recovery-page button{background:var(--accent);color:#171b2b;font-weight:800}@media (min-width:1001px) and (min-height:561px){.app-shell{max-width:1440px;height:auto;padding-block:12px}.game-table{grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr);gap:8px;width:min(100%,100dvh - 260px,1160px);height:auto;margin-inline:auto}.command-bar{grid-column:1;width:100%}.play-area{flex-direction:column;grid-column:1;justify-content:flex-start;gap:8px;display:flex}:is(.app-shell .play-area .board-stage,.app-shell .play-area:has(.trial-banner) .board-stage){width:100%}.app-shell .board-stage.mode-3d{--board-angle:32deg;perspective:2200px;aspect-ratio:1/.88}.app-shell .mode-3d .board-plane{aspect-ratio:1;width:100%;height:auto;inset:-6.8% auto auto 0;scale:.97}.app-shell .battle-feedback{order:1;width:100%;min-height:56px;display:grid}.app-shell .battle-feedback>.draw-warning-slot,.app-shell .battle-feedback>.battle-status{grid-area:1/1;align-self:center;width:100%}.app-shell .battle-feedback>.draw-warning-slot[data-active=true]+.battle-status{visibility:hidden}.app-shell .battle-status{text-align:left;flex-direction:row;height:3lh}.app-shell .trial-banner{order:-1;width:100%}.app-shell .battle-dock{order:2;align-self:center;width:min(480px,100%)}.app-shell .battle-dock button{min-height:56px}.app-shell .battle-dock small{font-size:12px}:root .app-shell .battle-save-note{order:3;width:100%;height:1lh;margin:0}}.board-loading{width:100%;height:100%;color:var(--muted);background:var(--surface-2);border:1px solid var(--control-border);border-radius:var(--control-radius);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;font-size:14px;display:flex}.board-loading .ui-icon{width:32px;height:32px;color:var(--accent-soft)}@media (min-width:1001px) and (max-height:560px){.game-table{grid-template-columns:minmax(0,1fr) 240px;column-gap:24px}.command-bar{grid-column:1;width:min(100%,100dvh - 115px)}.play-area{grid-column:1/-1}}.command-bar,.battle-dock{border-color:var(--control-border);background:var(--surface-1);box-shadow:none;border-radius:4px}.battle-dock button,.menu-trigger,.view-toggle,.view-toggle button,.close-button{border-radius:4px}.game-menu-card,.result-card,.rules-card,.promotion-card,.army-picker,.store-card{border-color:var(--control-border);background:var(--surface-1);box-shadow:none;border-radius:4px}.language-field,.menu-section,.picker-mode-row,.result-stats span{border-color:var(--control-border);background:var(--surface-2);box-shadow:none;border-radius:4px}.game-menu-card h2,.result-card h2,.rules-card h2,.army-picker h2{letter-spacing:0;font-weight:700}.primary-button{background:var(--control-primary);color:#172015;box-shadow:none;border-color:#0000}.secondary-button{color:var(--ink);background:var(--surface-2);box-shadow:none}.primary-button:active:not(:disabled),.secondary-button:active:not(:disabled){box-shadow:none}.impact-flash{animation-duration:.2s}.attack-source-fx .cast-sigil,.attack-source-fx .army-cast-art,.attack-source-fx .attack-pulse,.combat-fx .signature-impact,.combat-fx .strike-wave,.combat-fx .army-impact-art,.combat-fx .spark-field i,.combat-fx .debris-field i,.combat-fx .death-ghost{animation-duration:.25s}.hit-square .piece-motion{animation-duration:.2s}.damage-pop{color:var(--red);box-shadow:none;background:#271d18;border:1px solid #76493b;border-radius:3px;animation-name:damageNotice;animation-duration:.2s}.damage-pop small{color:var(--ink)}.damage-billboard{--red:#e88979;--ink:#f6f3ea}@keyframes damageNotice{0%{opacity:0;translate:0 4px}to{opacity:1;translate:0}}.result-overlay::backdrop{-webkit-backdrop-filter:none;backdrop-filter:none;background:#080b09cc}.menu-trigger{background:var(--surface-2);border-color:var(--control-border)}.battle-status,.battle-save-note{color:var(--muted)}.recovery-page a,.recovery-page button{border-radius:4px}@media (hover:hover) and (pointer:fine){.primary-button:hover:not(:disabled){box-shadow:none;background:#d6dfce;border-color:#0000}.secondary-button:hover:not(:disabled){background:var(--surface-3);border-color:var(--control-border)}}@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-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@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{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--app-bg:#eee9df;--surface-1:#faf7ef;--surface-2:#f2ebdd;--surface-3:#e5dccb;--ink:#191d1b;--muted:#595b53;--control-border:#d0c9bc;--panel-border:#d0c9bc;--control-surface:#faf7ef;--control-primary:#dfc18b;--control-radius:14px;--card-radius:20px;--accent:#dfc18b;--accent-strong:#936b28;--accent-soft:#74551f;--gold:#896021;--green:#38633d;--red:#c72e2d;--site-width:1280px;--site-gutter:32px;--site-primary:#232823;--site-primary-hover:#393d35;--site-on-primary:#faf7ef;--site-title-size:clamp(32px, 4vw, 48px)}main[data-site-shell]{width:min(var(--site-width), calc(100% - 40px));border:1px solid var(--control-border);border-radius:var(--control-radius);min-height:calc(100svh - 40px);color:var(--ink);background:var(--surface-1);margin:20px auto}main[data-site-shell] [data-site-content]{width:100%;max-width:none;padding:32px var(--site-gutter) 28px;margin:0}[data-site-content] [data-site-title]{font:800 var(--site-title-size)/1.08 var(--font-display), sans-serif;letter-spacing:-.025em;overflow-wrap:anywhere;margin:0}[data-site-content] [data-site-header]{margin-bottom:24px}[data-site-content] [data-site-header] p,[data-site-content] [data-site-header]>span{line-height:1.55}@media (min-width:761px) and (max-width:1040px){:root{--site-gutter:24px}}@media (max-width:760px){:root{--site-gutter:14px;--site-title-size:30px}main[data-site-shell]{border:0;border-radius:0;width:100%;min-height:100svh;margin:0}main[data-site-shell] [data-site-content]{padding:24px var(--site-gutter) calc(86px + env(safe-area-inset-bottom))}}:root :is(a,button,select,input,summary):focus-visible{outline-color:#a12423}body :where(main section,main article,main th,main td){border-color:var(--control-border)}body{font-synthesis:none;--font-geist-mono:var(--font-geist-sans);font-variant-numeric:tabular-nums}body h1,body h2{font-weight:800}.advertising-layout{flex-direction:column;min-height:100svh;display:flex}.advertising-content{min-width:0}.site-advertisement{order:-1;width:min(1100px,100% - 28px);min-height:198px;margin:0 auto;padding-block:12px}.advertising-layout[data-ad-placement=game][data-ad-active=true]>.primary-advertisement{order:1;margin-top:150px}.advertising-layout[data-ad-active=false]>.site-advertisement,.collection-promotion{display:none}.site-advertisement.secondary-advertisement{order:2;grid-area:2/1/auto/-1;width:min(1100px,100% - 28px);min-height:198px;margin:64px auto 32px;padding:12px;position:static}@media (min-width:1560px) and (hover:hover) and (pointer:fine){.advertising-layout[data-ad-active=true]{grid-template-columns:minmax(0,1fr) 330px;align-items:start;gap:32px;width:min(1840px,100% - 32px);margin-inline:auto;display:grid}.advertising-layout[data-ad-active=true]>.primary-advertisement{z-index:1;order:0;width:330px;min-height:330px;margin:20px 0;padding:0;position:sticky;top:20px}.advertising-layout[data-ad-placement=game][data-ad-active=true]{--game-column:min(calc(100dvh - 228px), calc(100vw - 904px), 1192px);grid-template-columns:minmax(0, 1fr) var(--game-column) minmax(0, 1fr);column-gap:150px;width:min(2200px,100% - 32px)}.advertising-layout[data-ad-placement=game][data-ad-active=true]>.advertising-content{grid-area:1/2}.advertising-layout[data-ad-placement=game][data-ad-active=true]>.primary-advertisement{grid-area:1/3;justify-self:end;width:min(330px,100%);margin:20px 0}.advertising-layout[data-ad-placement=game][data-ad-active=true]>.collection-promotion{z-index:1;grid-area:1/1;place-self:start;width:min(330px,100%);margin-top:20px;display:block;position:relative}}@media (max-width:760px),(hover:none),(pointer:coarse){.advertising-layout[data-ad-landing=true]>.site-advertisement{display:none}}body :is(button,input,select,summary){font-family:var(--font-geist-sans), sans-serif;font-weight:600}.app-shell:before{background:var(--app-bg)}.command-bar,.battle-dock{border-radius:var(--card-radius)}.menu-trigger,.battle-dock button,.view-toggle,.view-toggle button,.language-field select,.primary-button,.secondary-button,.menu-armies button,.promotion-options button,.collection-restore,.trial-banner button,.recovery-page a,.recovery-page button{border-radius:var(--control-radius)}.game-menu-card,.result-card,.rules-card,.promotion-card,.army-picker,.store-card{border-radius:var(--card-radius)}.language-field,.menu-section,.picker-mode-row,.result-versus,.result-stats span,.result-reward,.kill-breakdown>span,.collection-world,.army-option{border-radius:var(--control-radius);border-color:var(--control-border)}.close-button{color:var(--ink);background:var(--surface-2);border-radius:50%}.primary-button{background:var(--site-primary);color:var(--site-on-primary);border-color:var(--site-primary);box-shadow:none}@media (hover:hover) and (pointer:fine){.primary-button:hover:not(:disabled){background:var(--site-primary-hover);border-color:var(--site-primary-hover)}}.turn-chip,.menu-trigger,.battle-dock button{color:var(--ink)}.battle-player-card small,.command-opponent small,.battle-status>small,.battle-status strong span,.ruleset-note,.collection-world-heading>span,.collection-roster small,.collection-included,.trial-banner,.recovery-page p{color:var(--muted)}.battle-player-card small,.ruleset-badge,.battle-status strong,.dock-icon,.pieces-icon,.undo-icon,.hint-icon,.unit-readout b,.result-crown{color:var(--accent-soft)}.view-toggle button.active{color:var(--ink);background:var(--surface-3)}.menu-actions button.danger,.menu-actions button.danger .ui-icon{color:var(--red)}.repetition-warning{color:#684814;background:#f5e6cb;border-color:#d9b274}.result-reward.earned{color:var(--ink);background:#f4e7cc}.result-reward.earned strong{color:var(--gold)}.result-crown{border-color:var(--control-border);background:var(--surface-2);border-radius:50%}.result-overlay::backdrop{background:#29271f66}.army-option>i{color:var(--ink);background:var(--accent)}@media (hover:hover) and (pointer:fine){.menu-trigger:hover,.battle-dock button:hover,.close-button:hover{background:var(--surface-3)}}
