/*! 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-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-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-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{.invisible{visibility:hidden}.visible{visibility:visible}.relative{position:relative}.start{inset-inline-start: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}.flex{display:flex}.grid{display:grid}.hidden{display:none}.table{display:table}.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{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ink:#f4f4ed;--muted:#b3c5ca;--panel:#1c3540;--panel-border:#49606a;--gold:#f4cc7a;--olympus:#6eafff;--nile:#62d7c8;--green:#91e6c6;--red:#ff967f;--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:#163541;min-width:280px}body{min-height:100svh;color:var(--ink);font-family:var(--font-geist-sans), system-ui, sans-serif;background:radial-gradient(at 50% 38%,#365e68 0,#204450 48%,#142c3a 100%);margin:0}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){outline:3px solid var(--gold);outline-offset:3px}button,select{color:inherit}button{border:0}.ui-icon{flex:none;width:24px;height:24px;display:block}.app-shell{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}.game-table{grid-template-rows:auto minmax(0,1fr);gap:12px;height:100%;min-height:0;display:grid}.command-bar{background:#162f3bba;border:1px solid #65808b66;border-radius:18px;grid-template-columns:minmax(0,1fr) auto 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;box-shadow:inset 0 1px #ffffff0d,0 8px 24px #071c2529}.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}.turn-chip{color:#fff9e5;text-align:center;justify-content:center;align-items:center;gap:9px;min-height:36px;font-size:14px;font-weight:650;display:flex}.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:#ffe0a0;background:#f4cc7a12;border:1px solid #f4cc7a3b;border-radius:12px;justify-content:center;justify-self:end;align-items:center;gap:8px;min-width:46px;min-height:46px;padding:0 14px;font-size:14px;font-weight:650;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}.board-stage{aspect-ratio:1;flex:none;width:min(100%,100dvh - 255px,700px);position:relative}.board-stage.mode-3d{--board-angle:48deg;perspective:1100px;perspective-origin:50% 40%}.battle-board{width:100%;height:100%;transform:rotateX(var(--board-angle)) rotateZ(var(--board-twist));transform-origin:50%;transform-style:preserve-3d;background:#3c5559;border:clamp(5px,1vw,10px) solid #94714e;outline:1px solid #e7c58c99;grid-template-rows:repeat(8,minmax(0,1fr));grid-template-columns:repeat(8,minmax(0,1fr));display:grid;position:absolute;inset:0;box-shadow:0 9px #513b2d,0 11px #bc93605e,0 22px 35px #071d2d70}.battle-board.mode-3d{box-shadow:none;border-color:#bc9b67 #8e673e #d7b982 #a27c4e;scale:.78}.battle-board.mode-3d:before{content:"";pointer-events:none;background:#3e3027;border:2px solid #b49159;position:absolute;inset:-10px;transform:translateZ(-18px);box-shadow:12px 35px 35px #061a2bb3}.battle-board.mode-3d:after{content:"";transform-origin:top;pointer-events:none;background:linear-gradient(#dfbb78,#89613b 18%,#513a2b 75%,#c7a06a);border-inline:1px solid #947349;height:18px;position:absolute;top:calc(100% + 9px);left:-10px;right:-10px;transform:rotateX(-90deg)}.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:1;background:0 0;width:100%;height:100%;padding:0;position:absolute;inset:0}.square-hit-target:focus-visible{outline-offset:-3px;outline:3px solid #fff}.light-square{color:#233e40;background:#d4cdb5}.dark-square{color:#ebdec0;background:#48616e}.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;box-shadow:inset 0 0 0 3px #ffe398}.attacker-square{z-index:18}.hit-square,.death-square{z-index:19}.selected-square:before{background:#ffdb652b}.square:has(.square-hit-target:focus-visible){z-index:20}.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)}.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 .selected-square .ground-shadow{background:radial-gradient(#ffd16d99,#ffdb6633 42%,#0000 73%)}.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;justify-content:space-between;align-items:center;gap:16px;width:min(100%,610px);min-height:42px;font-size:14px;line-height:1.4;display:flex}.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{color:#ffedbd;font-weight:650}.battle-status strong span{color:#b7cecf;margin-left:6px;font-size:12px}.unit-readout{flex-wrap:wrap;justify-content:end;gap:4px 12px;font-size:13px;display:flex}.unit-readout b{color:#a8f0d6}.battle-dock{background:#132f3ba6;border:1px solid #7ca1a54a;border-radius:20px;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;width:min(100%,610px);padding:6px;display:grid;box-shadow:0 8px 28px #0a283840,inset 0 1px #ffffff0b}.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}.result-overlay::backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#081d29ba}.game-menu-card,.result-card,.rules-card,.promotion-card,.army-picker,.store-card{overscroll-behavior:contain;background:linear-gradient(140deg,#2b4954,#18343f);border:1px solid #6f939765;border-radius:24px;width:min(520px,100%);min-width:0;max-height:100%;padding:30px;position:relative;overflow:auto;box-shadow:0 25px 80px #00111d66}.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:#0c27352e;border:1px solid #78939840;border-radius:13px;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:#254651;border:1px solid #78939866;border-radius:9px;width:150px;min-width:0;max-width:58%;min-height:44px;padding:0 8px;font-size:14px}.view-toggle{background:#0f2935;border-radius:10px;flex:0 0 128px;grid-template-columns:repeat(2,1fr);width:128px;padding:3px;display:grid}.view-toggle button{color:#b5c9cc;background:0 0;border-radius:8px;min-width:0;min-height:40px;font-size:14px;font-weight:700}.view-toggle button.active{color:#213640;background:#f4dba3;box-shadow:0 2px 5px #0003}.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:14px;min-height:95px;padding:14px}.menu-armies small,.menu-armies strong,.menu-armies span{display:block}.menu-armies small{color:#bbcece;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{text-align:left;background:#ffffff09;border:1px solid #7994993d;border-radius:12px;justify-content:flex-start;align-items:center;gap:9px;min-height:58px;padding:10px 12px;font-size:14px;line-height:1.25;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:1px solid #87a0a566;border-radius:12px;min-height:48px;padding:12px 18px;font-size:14px;font-weight:650}.primary-button{color:#193541;background:#f4d79c;border-color:#f4d79c}.secondary-button{color:#eef5ee;background:#ffffff09}.result-actions{justify-content:center;gap:10px;margin-top:24px;display:flex}.result-card{text-align:center}.result-card h2{margin-right:0}.result-card p{color:var(--muted);font-size:16px;line-height:1.5}.result-crown{color:var(--gold);margin-bottom:16px;font:68px/1 Georgia,serif;display:block}.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{min-width:0;color:var(--ink);background:radial-gradient(at 50% 20%,#73909730,#0000 75%),#0e27353b;border:1px solid #78949b55;border-radius:16px;flex-direction:column;align-items:center;padding:18px 14px;display:flex;position:relative}.army-option.selected{border-color:var(--gold);box-shadow:inset 0 0 0 1px #f4cc7a44}.army-option.army-olympus{border-top:3px solid var(--olympus);background:radial-gradient(at 50% 20%,#3768a44d,#0000 80%),#152c3c}.army-option.army-nile{border-top:3px solid var(--nile);background:radial-gradient(at 50% 20%,#2a9c8855,#0000 80%),#152f34}.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:#102d37;border:1px solid #829ca45a;border-radius:12px;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:radial-gradient(at 50% 25%,#5e829f88,#0000 75%),#142d44;border:1px solid #8bc4d355;border-radius:18px;min-width:0;padding:18px 12px 14px}.collection-world.world-wildwood{background:radial-gradient(at 50% 25%,#7e966b88,#0000 75%),#183f36;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:12px;min-height:44px;padding:8px 12px}.play-area:has(.trial-banner) .board-stage{width:min(100%,100dvh - 307px,650px)}.trial-menu-note{color:var(--muted);font-size:13px;line-height:1.5}.army-option.army-frostbound{background:radial-gradient(at 50% 20%,#6998c477,#0000 80%),#142d44;border-top:3px solid #9cdbff}.army-option.army-wildwood{background:radial-gradient(at 50% 20%,#79964666,#0000 80%),#183f36;border-top:3px solid #c4df83}.army-option.army-terracotta{background:radial-gradient(at 50% 20%,#c8895355,#0000 80%),#452d29;border-top:3px solid #e8aa74}.army-option.army-tidal{background:radial-gradient(at 50% 20%,#5eaeae55,#0000 80%),#183d54;border-top:3px solid #8ee8e0}.theme-terracotta{background:radial-gradient(at 50% 38%,#b5694138,#0000 72%)}.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 .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.png);background-size:200% 200%}.theme-terracotta .battle-board{border-color:#e7b578 #80523f #efce9d #b78358}.theme-terracotta .battle-board.mode-3d:before{background:#613f32;border-color:#bc9862}.theme-terracotta .battle-board.mode-3d:after{background:linear-gradient(#e3bf8d,#ae7550 18%,#654131 75%,#c48d59)}.theme-tidal .battle-board{border-color:#b4dbd2 #477e93 #d4ede2 #7faab2}.theme-tidal .battle-board.mode-3d:before{background:#29485b;border-color:#85babd}.theme-tidal .battle-board.mode-3d: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 .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 .battle-board{border-color:#a9c7d6 #50768c #c4dfec #7e9eac}.theme-frostbound .battle-board.mode-3d:after{background:linear-gradient(#d3f2f9,#5c899e 20%,#24485f 80%,#8fb8c8)}.theme-wildwood{background:radial-gradient(at 50% 35%,#6a8d4855,#0000 70%)}.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 .battle-board{border-color:#aca66c #627543 #c3b774 #829057}.theme-wildwood .battle-board.mode-3d:after{background:linear-gradient(#ccd59c,#6c7949 20%,#39482e 80%,#a6b477)}.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-royal{--fx-primary:#ffe6a7;--fx-secondary:#f498d9}.army-fx-olympus{--fx-primary:#c4e7ff;--fx-secondary:#64aaff}.army-fx-nile{--fx-primary:#9affe5;--fx-secondary:#ffac6c}.army-fx-frostbound{--fx-primary:#d5faff;--fx-secondary:#55bfff}.army-fx-wildwood{--fx-primary:#e5ffb6;--fx-secondary:#75db86}.army-fx-terracotta{--fx-primary:#ffd193;--fx-secondary:#7ce3b0}.army-fx-tidal{--fx-primary:#b6fff4;--fx-secondary:#7acbff}.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%}.attack-source-fx{z-index:16;inset:0}.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-vector{width:var(--attack-distance);transform-origin:0;background:linear-gradient(90deg, transparent, var(--fx-primary), #fff5d6);height:3px;box-shadow:0 0 8px var(--fx-secondary);border-radius:50%;animation:.42s ease-out both attackTrace;position:absolute;top:50%;left:50%}.attack-vector:after{content:"";width:10px;height:10px;box-shadow:0 0 12px 4px var(--fx-secondary);background:#fffbed;border-radius:50%;position:absolute;top:50%;right:0;transform:translate(50%,-50%)}.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;place-items:center;display:grid;inset:0}.impact-flash,.impact-ring,.shockwave{aspect-ratio:1;opacity:0;border-radius:50%;width:75%;position:absolute}.impact-flash{background:radial-gradient(circle, #fffceb, var(--fx-primary) 15%, transparent 70%);animation:impactFlash .35s var(--impact) both}.impact-ring{border:2px solid var(--fx-primary);box-shadow:0 0 10px var(--fx-secondary);animation:impactRing .6s var(--impact) both}.ring-inner{width:48%;animation-delay:calc(var(--impact) + 50ms);border-width:1px}.shockwave{background:radial-gradient(circle, transparent 50%, var(--fx-secondary), transparent 72%);width:50%;animation:impactRing .6s var(--impact) both}.slash{background:linear-gradient(90deg, transparent, white 35%, var(--fx-primary), transparent);width:90%;height:3px;box-shadow:0 0 10px var(--fx-secondary);animation:slashStrike .32s var(--impact) both;border-radius:50%;position:absolute}.slash-one{--slash-angle:-35deg}.slash-two{--slash-angle:40deg;animation-delay:calc(var(--impact) + 55ms)}.fx-pierce .slash-two{display:none}.fx-crush .slash{height: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}.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:.24s both departUnit;position:absolute}.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 attackTrace{0%{opacity:0;transform:rotate(var(--attack-angle)) scaleX(0)}15%{opacity:1}52%{opacity:1;transform:rotate(var(--attack-angle)) scaleX(1)}to{opacity:0;transform:rotate(var(--attack-angle)) scaleX(1)}}@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 impactRing{0%{opacity:.8;transform:scale(.25)}to{opacity:0;transform:scale(1.45)}}@keyframes slashStrike{0%{opacity:0;transform:rotate(var(--slash-angle)) scaleX(.1)}22%{opacity:1}to{opacity:0;transform:rotate(var(--slash-angle)) scaleX(1.1)}}@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%,10px)scale(.8)}15%,60%{opacity:1;transform:translate(-50%,-10px)scale(1)}to{opacity:0;transform:translate(-50%,-30px)}}@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{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{gap:6px}.command-bar{border-radius:15px;grid-template-columns:1fr auto 1fr;gap:6px;min-height:58px;padding:5px 6px}.compact-brand strong,.menu-trigger>span{display:none}.compact-brand{gap:0}.menu-trigger{padding:0}.turn-chip{font-size:14px}.play-area{gap:10px}.board-stage{width:min(100%,100dvh - 232px)}.board-stage.mode-3d{perspective:750px;--board-angle:43deg}.battle-board.mode-3d{scale:.84}.battle-status{gap:8px;min-height:42px;font-size:13px}.battle-status>small{font-size:12px}.battle-dock small{font-size:13px}.battle-dock button{min-height:67px}.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%}.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:1fr auto;grid-template-columns:minmax(200px,1fr) 240px;place-items:center;gap:14px 24px;display:grid}.board-stage{grid-row:1/3;width:min(100%,100dvh - 115px)}.battle-status{text-align:center;flex-direction:column;justify-content:center;align-self:end}.battle-dock{grid-template-columns:repeat(2,minmax(0,1fr));align-self:start}}@media (max-height:560px) and (max-width:600px){.app-shell{height:auto}.board-stage{width:min(100%,340px);margin:16px 0}}@media (prefers-reduced-motion:reduce){*,: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)}}@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}
