:root{--pine-950: #0a140e;--pine-900: #141c17;--pine-800: #18221b;--pine-700: #243024;--pine-600: #39423b;--pine-500: #596344;--oak-950: #120c08;--oak-900: #1a1614;--oak-800: #262019;--oak-700: #2a1d13;--oak-600: #3a3128;--oak-500: #5a4630;--oak-400: #7a603c;--iron-700: #3b3833;--iron-500: #6a655c;--iron-300: #b9b4a6;--parchment-100: #f0e6d8;--parchment-200: #efe2c2;--parchment-300: #e6d3a6;--parchment-400: #d9c7a2;--parchment-500: #bfae86;--parchment-700: #9a8c7a;--sage-300: #b6bba3;--sage-400: #aaa997;--sage-500: #9fa98d;--ink-900: #2b1f13;--ink-700: #5a4630;--brass-100: #f6dfa8;--brass-200: #efd28a;--brass-300: #e2c07a;--brass-400: #c9a86b;--brass-500: #c98a3c;--brass-600: #b8893a;--brass-700: #817044;--brass-800: #5e4718;--crimson-300: #e8a38c;--crimson-400: #e06a5e;--crimson-500: #d1584f;--crimson-600: #a8453d;--crimson-700: #7d1f18;--crimson-900: #5a130e;--moss-300: #b9cc92;--moss-400: #a4b97a;--moss-500: #7fb069;--moss-600: #6d8150;--moss-800: #3f5a22;--river-300: #9fc3d4;--river-400: #7fb8c9;--river-500: #6fa8dc;--torch: #d9a441;--ember: #e8995a;--copper: #d69674;--stone: #7a7972;--slate: #9fb3c8;--fern: #8fbf86;--wheat: #d9b366;--page: var(--pine-900);--page-raised: var(--pine-700);--well: var(--pine-950);--page-line: var(--brass-700);--surface: var(--oak-800);--board: var(--oak-700);--bg: var(--oak-900);--border: var(--oak-600);--edge-iron: var(--iron-700);--edge-gilt: color-mix(in srgb, var(--brass-300) 35%, transparent);--parchment: var(--parchment-300);--ink: var(--ink-900);--ink-soft: var(--ink-700);--fg: var(--parchment-100);--muted: var(--parchment-700);--text-description: var(--sage-400);--text-quiet: var(--sage-500);--title-eyebrow: var(--brass-400);--title-gilt: var(--brass-300);--accent: var(--brass-500);--on-accent: var(--oak-900);--control-focus: var(--brass-200);--control-focus-parchment: var(--ink-900);--segment-rail-border: var(--oak-600);--segment-marker-border: var(--oak-400);--segment-selected: var(--brass-200);--ok: var(--moss-500);--amber: var(--torch);--err: var(--crimson-500);--err-text: var(--crimson-400);--panel-danger: color-mix(in srgb, var(--crimson-500) 15%, transparent);--territory-ally: var(--river-500);--territory-neutral: var(--stone);--side-attacker: var(--torch);--side-defender: var(--crimson-600);--class-infantry: var(--slate);--class-archer: var(--fern);--class-cavalry: var(--wheat);--ability-passive: var(--river-400);--ability-passive-bg: color-mix(in srgb, var(--river-400) 10%, transparent);--ability-active: var(--ember);--ability-active-bg: color-mix(in srgb, var(--ember) 10%, transparent);--specialization: var(--copper);--specialization-strong: #f2c9ae;--specialization-bg: color-mix(in srgb, var(--copper) 14%, transparent);--specialization-ink: #2a140a;--achievement: var(--brass-600);--achievement-strong: #e9c77a;--achievement-ink: #3a2410;--achievement-ribbon: #7c2b24;--achievement-edge: color-mix(in srgb, var(--brass-600) 55%, transparent);--achievement-bg: color-mix(in srgb, #e9c77a 10%, transparent);--achievement-title: #f1dca8;--achievement-text: #cdbf9f;--seal-refused: radial-gradient( circle at 38% 32%, #c4473a, var(--crimson-700) 62%, var(--crimson-900) );--seal-done: radial-gradient(circle at 38% 32%, #7f9a4a, var(--moss-800) 62%, #2c4016);--seal-notice: radial-gradient(circle at 38% 32%, #c9a45a, #8a6a2c 62%, var(--brass-800));--source-buildings: var(--moss-400);--source-nodes: var(--wheat);--source-alliance: var(--river-500)}:root{--motion-instant: 0ms;--motion-fast: .12s;--motion-normal: .22s;--motion-slow: .4s;--motion-ease: cubic-bezier(.4, 0, .2, 1);--motion-ease-out: cubic-bezier(0, 0, .2, 1);--motion-ease-in: cubic-bezier(.4, 0, 1, 1)}.reduced-motion,.reduced-motion *{animation-duration:.01ms!important;animation-delay:0ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--bg);color:var(--fg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;min-height:100dvh}button{font:inherit;color:inherit;cursor:pointer;transition:transform var(--motion-fast) var(--motion-ease-out),opacity var(--motion-fast) var(--motion-ease-out)}button:active:not(:disabled){transform:scale(.96);opacity:.85}input{font:inherit}.auth-screen{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.5rem;text-align:center;gap:.5rem}.auth-screen__title{font-size:2rem;letter-spacing:.02em}.auth-screen__tagline{color:var(--muted);margin-bottom:1.5rem}.auth-screen__form{width:100%;max-width:22rem;display:flex;flex-direction:column;gap:1rem;text-align:left}.auth-screen__field{display:flex;flex-direction:column;gap:.375rem;font-size:.875rem;color:var(--muted)}.auth-screen__field input{background:var(--surface);border:1px solid var(--border);border-radius:.5rem;padding:.75rem;min-height:44px;color:var(--fg)}.auth-screen__submit{min-height:44px;border:none;border-radius:.5rem;background:var(--accent);color:var(--bg);font-weight:600;margin-top:.5rem}.auth-screen__submit:disabled{opacity:.6;cursor:default}.auth-screen__toggle{background:none;border:none;color:var(--muted);text-decoration:underline;margin-top:1.5rem;min-height:44px}.auth-screen__error{color:var(--err-text);font-size:.875rem}.app-shell{min-height:100dvh;display:flex;flex-direction:column}.app-shell__loading{min-height:100dvh;display:grid;place-items:center;color:var(--muted)}.app-shell__content{flex:1;overflow-y:auto}.resource-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:.75rem 1rem;background:var(--surface);border-bottom:1px solid var(--border);font-size:.875rem;flex-wrap:wrap}.resource-header__loading{color:var(--muted)}.resource-header__resources{display:flex;gap:1rem;flex-wrap:wrap}.resource-header__season{display:flex;flex-direction:column;align-items:flex-end;text-align:right;font-size:.75rem;color:var(--muted);white-space:nowrap}.resource-header__season-name{font-weight:600;color:var(--fg)}.tab-bar{display:flex;border-top:1px solid var(--border);background:var(--surface)}.tab-bar__tab{flex:1;min-height:56px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.125rem;background:none;border:none;color:var(--muted);font-size:.6875rem}.tab-bar__icon{font-size:1.25rem}.tab-bar__tab--active{color:var(--accent)}.tab-bar__tab:focus-visible{outline:2px solid var(--control-focus);outline-offset:-3px}.keep-screen{padding:1rem;display:flex;flex-direction:column;gap:1rem}.keep-screen__status{color:var(--muted);text-align:center;padding:2rem 0}.keep-screen__status>.game-status,.world-map__status>.game-status{max-width:32rem;margin:0 auto;text-align:left}.keep-screen__banner{background:color-mix(in srgb,var(--err) 15%,transparent);border:1px solid var(--err);color:var(--err-text);border-radius:.5rem;padding:.75rem;font-size:.875rem}.heroes-screen{padding:1rem;display:flex;flex-direction:column;gap:.75rem}.hero-row{display:flex;align-items:center;gap:.75rem;background:var(--surface);border:1px solid var(--border);border-radius:.75rem;padding:.625rem .75rem;min-height:44px;text-align:left}.hero-row__main{flex:1;display:flex;flex-direction:column;gap:.25rem;min-width:0}.hero-row__name-line{display:flex;justify-content:space-between;font-size:.875rem}.hero-row__level{color:var(--muted)}.hero-row__xp-bar{height:4px;border-radius:2px;background:var(--border);overflow:hidden}.hero-row__xp-fill{display:block;height:100%;background:var(--accent)}.squad-editor{display:flex;flex-direction:column;gap:.75rem;padding-top:.75rem}.squad-editor__empty{color:var(--muted);text-align:center;padding:1rem 0}.squad-editor__header{display:flex;align-items:center;gap:.75rem;min-height:var(--control-size);padding:var(--space-2) var(--space-2) var(--space-2) var(--space-3)}.squad-editor__status-line{display:grid;flex:1;min-width:0;gap:2px;font-size:.8125rem;color:var(--muted)}.squad-editor__status-line strong{overflow:hidden;font:400 1.05rem/1.25 var(--font-display);color:var(--fg);text-overflow:ellipsis;white-space:nowrap}.squad-editor__status-line--busy span{color:var(--amber)}.squad-editor__power{display:grid;justify-items:end;gap:2px;white-space:nowrap}.squad-editor__power small{color:var(--title-eyebrow);font-size:.65rem;letter-spacing:.16em;text-transform:uppercase}.squad-editor__power strong{color:var(--title-gilt);font:400 1.15rem/1 var(--font-display);font-variant-numeric:tabular-nums}.squad-editor__row{display:flex;flex-direction:column;gap:.375rem}.squad-editor__row-label{font-size:.6875rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.squad-editor__slots{display:flex;gap:.5rem;flex-wrap:wrap}.squad-editor__chip{min-height:44px;min-width:44px;display:inline-flex;align-items:center;gap:.375rem;padding:0 .625rem;background:var(--surface);border:1px solid var(--border);border-radius:.5rem;color:var(--fg);font-size:.8125rem}.squad-editor__chip--empty{color:var(--muted);border-style:dashed}.squad-editor__hint{color:var(--muted);font-size:.875rem}.squad-editor__warning{color:var(--amber);font-size:.8125rem}.squad-editor__actions{display:flex;flex-wrap:wrap;gap:.75rem}.squad-editor__actions>.game-button{flex:1 1 160px}.squad-editor__preview-banner{background:color-mix(in srgb,var(--amber) 15%,transparent);border:1px solid var(--amber);color:var(--amber);border-radius:.5rem;padding:.625rem .75rem;font-size:.8125rem;text-align:center}.preview-opponent-sheet__section{font-size:.6875rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:.5rem 0 .375rem}.squad-editor__picker-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:10}.sheet-overlay{animation:sheet-overlay-in var(--motion-fast) var(--motion-ease-out) both}@keyframes sheet-overlay-in{0%{opacity:0}}.hero-picker{width:100%;max-height:70vh;overflow-y:auto;background:var(--surface);border-top:1px solid var(--border);border-radius:1rem 1rem 0 0;padding:1rem;animation:sheet-panel-in var(--motion-normal) var(--motion-ease-out) both}@keyframes sheet-panel-in{0%{transform:translateY(24px);opacity:0}}.hero-picker__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;font-size:.875rem;color:var(--muted)}.hero-picker__header-hero{display:inline-flex;align-items:center;gap:.5rem}.hero-picker__header button{background:none;border:none;color:var(--muted);font-size:1rem;min-height:44px;min-width:44px}.hero-picker__empty{color:var(--muted);text-align:center;padding:1rem 0}.hero-picker__list{list-style:none;display:flex;flex-direction:column;gap:.5rem}.hero-picker__item{width:100%;min-height:44px;display:flex;align-items:center;gap:.5rem;background:var(--bg);border:1px solid var(--border);border-radius:.5rem;padding:.5rem .75rem;color:var(--fg);text-align:left}.hero-picker__level{margin-left:auto;color:var(--muted);font-size:.8125rem}.hero-picker__wounded{color:var(--err-text)}.hero-picker__item--danger{color:var(--err-text);border-color:var(--err)}.formation-preview{display:flex;flex-direction:column;gap:.5rem;background:var(--surface);border:1px solid var(--border);border-radius:.75rem;padding:.75rem}.formation-preview__title{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.formation-preview__row{display:flex;align-items:center;gap:.5rem;font-size:.75rem}.formation-preview__row-label{color:var(--muted);width:4.5rem;flex-shrink:0;text-transform:uppercase;letter-spacing:.03em}.formation-preview__chips{display:flex;flex-wrap:wrap;gap:.375rem}.formation-preview__chip{display:inline-flex;align-items:center;gap:.25rem;background:var(--bg);border:1px solid var(--border);border-radius:.375rem;padding:.25rem .5rem;font-size:.75rem}.campaign-screen{padding-top:.75rem;display:flex;flex-direction:column;gap:.75rem}.campaign-screen__back{align-self:flex-start;background:none;border:none;color:var(--muted);min-height:44px;padding:0}.campaign-screen__hint{color:var(--muted);font-size:.875rem}.campaign-stage{position:relative;min-height:44px;aspect-ratio:1;background:var(--surface);border:1px solid var(--border);border-radius:.5rem;color:var(--fg);font-size:.875rem;font-weight:600}.campaign-stage--cleared{border-color:var(--ok)}.campaign-stage--locked{color:var(--muted)}.campaign-stage__boss{position:absolute;top:2px;right:2px;font-size:.625rem}.battle-replay{padding-top:.75rem;display:flex;flex-direction:column;gap:.5rem}.battle-replay__outcome{font-size:1.5rem}.battle-replay__outcome--win{color:var(--ok)}.battle-replay__outcome--loss{color:var(--err-text)}.battle-replay__meta{color:var(--muted);font-size:.8125rem}.battle-replay__banners{display:flex;align-items:center;gap:.75rem}.battle-replay__vs{color:var(--muted);font-size:.75rem;text-transform:uppercase}.battle-replay__rewards{font-size:.875rem;color:var(--amber)}.battle-replay__wounded{font-size:.875rem;color:var(--err-text)}.battle-board{display:flex;flex-direction:column;gap:.5rem;background:var(--surface);border:1px solid var(--border);border-radius:.75rem;padding:.75rem}.battle-board__header{display:flex;align-items:center;justify-content:space-between;font-size:.8125rem;color:var(--muted)}.battle-board__round{font-family:monospace}.battle-board__fatigue{display:block;font-family:var(--font-ui);font-weight:600;color:var(--accent)}.battle-board__engagement{display:block;font-family:var(--font-ui);font-weight:600}.battle-board__controls{display:flex;align-items:center;gap:.375rem}.sound-toggle{min-height:36px;min-width:44px;padding:0 .5rem;display:inline-flex;align-items:center;gap:.375rem;background:var(--bg);border:1px solid var(--border);border-radius:.375rem;color:var(--muted);font-size:.75rem}.sound-toggle[aria-pressed=true]{color:var(--accent);border-color:var(--accent)}.battle-board__field{position:relative;display:flex;flex-direction:column;gap:.25rem}.battle-board__targeting{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;overflow:visible}.battle-board__targeting line{stroke:var(--amber);stroke-width:2;stroke-dasharray:4 4;opacity:.85}.battle-board__side{display:flex;flex-direction:column;gap:.375rem}.battle-board__row{display:flex;justify-content:center;gap:.375rem;flex-wrap:wrap;min-height:1px}.battle-board__counter{min-height:1rem;margin:0;text-align:center;font-size:.75rem;color:var(--amber);font-weight:600}.battle-card{position:relative;width:92px;display:flex;flex-direction:column;align-items:center;gap:.125rem;background:var(--bg);border:1px solid var(--border);border-radius:.5rem;padding:.375rem .25rem;transition:opacity var(--motion-normal) var(--motion-ease),filter var(--motion-normal) var(--motion-ease),box-shadow var(--motion-fast) var(--motion-ease-out)}.battle-card--acting{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}.battle-card--target{border-color:var(--err);box-shadow:0 0 0 2px var(--err)}.battle-card--dead{opacity:.4;filter:grayscale(1)}.battle-card--just-died{animation:battle-card-die var(--motion-slow) var(--motion-ease)}.battle-card--hit-flash{animation:battle-card-hit var(--motion-fast) var(--motion-ease-out)}@keyframes battle-card-hit{0%,to{transform:translate(0)}50%{transform:translate(-3px)}}.battle-card--ability-flash{animation:battle-card-ability-flash var(--motion-normal) var(--motion-ease-out)}@keyframes battle-card-ability-flash{0%{box-shadow:0 0 0 3px var(--accent)}to{box-shadow:0 0 0 0 transparent}}@keyframes battle-card-die{0%,to{transform:translate(0)}20%{transform:translate(-4px)}40%{transform:translate(4px)}60%{transform:translate(-2px)}80%{transform:translate(2px)}}.battle-card__name{font-size:.6875rem;text-align:center;line-height:1.1}.battle-card__hp-bar{width:100%;height:4px;border-radius:2px;background:var(--border);overflow:hidden}.battle-card__hp-fill{display:block;height:100%;background:var(--ok);transition:width var(--motion-normal) var(--motion-ease)}.battle-card--dead .battle-card__hp-fill{background:var(--err)}.battle-card__hp-text{font-size:.5625rem;color:var(--muted);font-family:monospace}.battle-card__badges{display:flex;flex-wrap:wrap;justify-content:center;gap:.125rem;min-height:1px}.battle-card__badge{font-size:.5rem;line-height:1.3;padding:0 .25rem;border-radius:.625rem;border:1px solid var(--border);white-space:nowrap}.battle-card__badge--shield{color:var(--amber);border-color:var(--amber)}.battle-card__badge--taunting,.battle-card__badge--buff{color:var(--ok);border-color:var(--ok)}.battle-card__badge--debuff{color:var(--err-text);border-color:var(--err)}.battle-card__float{position:absolute;top:-.25rem;left:50%;font-size:.75rem;font-weight:700;white-space:nowrap;pointer-events:none;animation:battle-card-float var(--motion-slow) var(--motion-ease-out) forwards}.battle-card__float--damage{color:var(--err-text)}.battle-card__float--heal{color:var(--ok)}.battle-card__float--shield{color:var(--amber)}@keyframes battle-card-float{0%{transform:translate(-50%);opacity:1}to{transform:translate(-50%,-1.25rem);opacity:0}}.battle-replay__log{background:var(--surface);border:1px solid var(--border);border-radius:.75rem;padding:.75rem;max-height:40vh;overflow-y:auto;display:flex;flex-direction:column;gap:.25rem}.battle-replay__actions{display:flex;gap:.5rem}.battle-replay__actions button{flex:1;min-height:44px;background:var(--surface);border:1px solid var(--border);border-radius:.5rem;color:var(--fg);font-size:.8125rem}.world-map{display:flex;flex-direction:column;height:100%;gap:.5rem;padding-top:.75rem}.world-map__status{color:var(--muted);text-align:center;padding:2rem 0}.world-map>.game-segments{width:100%;max-width:1200px;margin:0 auto;padding:0 .75rem;box-sizing:border-box}.world-map__hint{margin:0;padding:0 .75rem;font-size:.75rem;color:var(--muted);text-align:center}.world-map__under-attack{margin:0 .75rem;padding:.5rem .75rem;border-radius:.5rem;background:color-mix(in srgb,var(--err) 15%,transparent);border:1px solid var(--err);color:var(--err-text);font-weight:600;text-align:center;animation:world-map-under-attack-pulse 1.6s ease-in-out infinite}@keyframes world-map-under-attack-pulse{0%,to{opacity:1}50%{opacity:.6}}.world-map__hint-amber{color:var(--amber);font-weight:600}.world-map__canvas-3d{position:relative;flex:1;min-height:320px;touch-action:none;background:var(--surface)}.world-map__canvas-3d-veil{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;display:grid;place-items:center;color:var(--muted);background:var(--surface);font-size:.875rem}.world-map__canvas-3d-loading{flex:1;min-height:320px;display:grid;place-items:center;color:var(--muted);background:var(--surface);font-size:.875rem}.world-map__canvas-3d canvas{display:block;width:100%;height:100%}.world-map__labels-3d{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.world-map__label-3d{position:absolute;transform:translate(-50%,-100%);display:inline-flex;flex-direction:column;align-items:center;font-size:.5625rem;font-weight:700;letter-spacing:.03em;padding:.0625rem .25rem;border-radius:.25rem;background:color-mix(in srgb,var(--bg) 75%,transparent);color:var(--fg);white-space:nowrap}.world-map__label-3d--yours{color:var(--ok)}.world-map__label-3d--ally{color:var(--territory-ally)}.world-map__label-3d--rival{color:var(--err-text)}.world-map__label-3d--neutral{color:var(--territory-neutral)}.world-map__owner-chip-3d{display:flex;align-items:center;gap:.1875rem;margin-top:.0625rem;font-size:.5625rem;font-weight:700}.world-map__owner-chip-3d .banner{flex:none}.world-map__owner-chip-3d-name{max-width:6.5rem;overflow:hidden;text-overflow:ellipsis;color:var(--fg)}.world-map__garrison-chip-3d{display:flex;align-items:center;gap:.1875rem;margin-top:.125rem;padding-top:.125rem;border-top:1px solid color-mix(in srgb,var(--parchment-100) 18%,transparent);font-size:.5rem;font-weight:600}.world-map__garrison-chip-3d-name{max-width:5.5rem;overflow:hidden;text-overflow:ellipsis;color:var(--fg)}.world-map__march-route{stroke:var(--accent);stroke-width:1.5;stroke-dasharray:3 5;opacity:.45;fill:none}.world-map__march-token polygon{fill:var(--accent);stroke:var(--bg);stroke-width:1.5}@keyframes world-map-march-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(1.25)}}.world-map__march-troop{fill:var(--accent);stroke:var(--bg);stroke-width:1;animation:world-map-march-step .9s ease-in-out infinite}@keyframes world-map-march-step{0%,to{opacity:.55;transform:scale(.85)}50%{opacity:1;transform:scale(1.15)}}.world-map__march-token-label,.world-map__march-token-eta{font-size:10px;text-anchor:middle;fill:var(--fg)}.world-map__march-token-eta{paint-order:stroke;stroke:var(--bg);stroke-width:3}.world-map__march-token-label{font-weight:700}.world-map__march-routes-3d{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.world-map__march-route-3d{fill:none;stroke:var(--accent);stroke-width:1.5;stroke-dasharray:3 5;opacity:.45}.world-map__march-route-3d--incoming{stroke:var(--err)}.world-map__march-route-3d--other{stroke:var(--map-march-other, var(--iron-300));opacity:.3}.world-map__march-token-3d,.world-map__march-heading-3d{position:absolute;width:0;height:0}.world-map__march-token-arrow-3d{position:absolute;width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:11px solid var(--accent);filter:drop-shadow(0 0 1.5px var(--bg))}.world-map__march-token-3d--incoming .world-map__march-token-arrow-3d{border-bottom-color:var(--err);animation:world-map-march-pulse-3d 1.2s ease-in-out infinite}.world-map__march-token-3d--other .world-map__march-token-arrow-3d{border-bottom-color:var(--map-march-other, var(--iron-300))}.world-map__march-token-3d--other .world-map__march-troop-3d{background:var(--map-march-other, var(--iron-300))}.world-map__march-troop-3d{position:absolute;top:8px;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:var(--accent);border:1px solid var(--bg);animation:world-map-march-step-3d .9s ease-in-out infinite}.world-map__march-token-3d--incoming .world-map__march-troop-3d{background:var(--err)}@keyframes world-map-march-step-3d{0%,to{opacity:.55;transform:scale(.85)}50%{opacity:1;transform:scale(1.15)}}.world-map__march-token-3d--rally:before{content:"";position:absolute;top:50%;left:50%;width:22px;height:22px;transform:translate(-50%,-50%);border-radius:50%;border:1.5px dashed var(--accent)}.world-map__march-token-3d--rally.world-map__march-token-3d--incoming:before{border-color:var(--err)}@keyframes world-map-march-pulse-3d{0%,to{opacity:1}50%{opacity:.55}}.world-map__march-token-label-3d,.world-map__march-token-eta-3d{position:absolute;transform:translate(-50%,-220%);font-size:.5625rem;font-weight:700;padding:.0625rem .25rem;border-radius:.25rem;background:color-mix(in srgb,var(--bg) 75%,transparent);color:var(--fg);white-space:nowrap}.world-map__march-token-label-3d{transform:translate(-50%,-320%)}.world-map__march-token-label-3d--attack{--march-tone: var(--crimson-300)}.world-map__march-token-label-3d--rally{--march-tone: var(--brass-600)}.world-map__march-token-label-3d--move{--march-tone: var(--sage-300)}.world-map__march-token-label-3d--retreat{--march-tone: var(--iron-300)}.world-map__march-token-label-3d--reinforce{--march-tone: var(--territory-ally)}.world-map__march-token-label-3d--attack,.world-map__march-token-label-3d--rally,.world-map__march-token-label-3d--move,.world-map__march-token-label-3d--retreat,.world-map__march-token-label-3d--reinforce{color:var(--march-tone)}.world-map__march-portraits-3d{position:absolute;display:flex;gap:1px;transform:translate(-50%,calc(-100% - 3rem));pointer-events:none}.world-map__march-portraits-3d .hero-portrait{display:block;filter:drop-shadow(0 1px 2px rgba(0,0,0,.7))}.node-sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:10}.node-sheet{width:100%;background:var(--surface);border-top:1px solid var(--border);border-radius:1rem 1rem 0 0;padding:1rem;display:flex;flex-direction:column;gap:.75rem;animation:sheet-panel-in var(--motion-normal) var(--motion-ease-out) both}.node-sheet__header{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.node-sheet__header button{background:none;border:none;color:var(--muted);font-size:1rem;min-height:44px;min-width:44px}.node-sheet__meta{color:var(--muted);font-size:.8125rem}.node-sheet__terrain,.node-sheet__weather,.node-sheet__income{font-size:.8125rem;color:var(--muted)}.node-sheet__garrison{font-size:.8125rem;color:var(--fg)}.node-sheet__banner{background:color-mix(in srgb,var(--err) 15%,transparent);border:1px solid var(--err);color:var(--err-text);border-radius:.5rem;padding:.75rem;font-size:.875rem}.node-sheet__hint{color:var(--muted);font-size:.875rem}.node-sheet select{min-height:44px;background:var(--bg);border:1px solid var(--border);border-radius:.5rem;color:var(--fg);padding:0 .5rem}.node-sheet__row{display:flex;gap:.5rem}.node-sheet__row button{flex:1;min-height:44px;background:var(--bg);border:1px solid var(--border);border-radius:.5rem;color:var(--fg)}.node-plans{display:flex;flex-direction:column;gap:.5rem}.node-plans__item{display:flex;flex-direction:column;gap:.5rem;padding:.625rem .75rem;border:1px solid var(--border);border-radius:.5rem}.node-plans__item--threat{border-color:var(--err);background:color-mix(in srgb,var(--err) 10%,transparent)}.node-plans__link{align-self:flex-start;min-height:44px;padding:0 .75rem;background:none;border:1px solid var(--border);border-radius:.5rem;color:var(--accent);font:600 .9rem var(--font-ui)}.node-sheet__action{min-height:44px;border:none;border-radius:.5rem;background:var(--accent);color:var(--bg);font-weight:600}.node-sheet__action:disabled{opacity:.5;cursor:default}.building-sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:10}.marches-panel{display:flex;flex-direction:column;gap:.5rem;width:100%;max-width:1200px;margin:0 auto;padding:0 .75rem;box-sizing:border-box}.marches-panel__row{display:flex;align-items:center;gap:.5rem;min-height:44px;width:100%;text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:.5rem;padding:.625rem .75rem;font-size:.8125rem}.marches-panel__row--tappable{border-color:var(--accent)}.marches-panel__route{flex:1}.marches-panel__route>span{white-space:nowrap}.marches-panel__type{color:var(--muted)}.marches-panel__eta{display:flex;align-items:center;gap:.5rem;color:var(--amber)}.marches-panel__recall{min-height:44px;padding:0 .625rem;border:1px solid var(--err);border-radius:.375rem;background:var(--surface);color:var(--err-text);font-size:.75rem}.marches-panel__outcome{color:var(--muted)}.marches-panel__row--won{--march-tone: var(--moss-500)}.marches-panel__row--lost{--march-tone: var(--crimson-400)}.marches-panel__row--undefended{--march-tone: var(--brass-600)}.marches-panel__row--moved{--march-tone: var(--sage-300)}.marches-panel__row--won,.marches-panel__row--lost,.marches-panel__row--undefended,.marches-panel__row--moved{box-shadow:inset 3px 0 0 var(--march-tone)}.marches-panel__row--won .marches-panel__outcome,.marches-panel__row--lost .marches-panel__outcome,.marches-panel__row--undefended .marches-panel__outcome,.marches-panel__row--moved .marches-panel__outcome{color:var(--march-tone);font-weight:600}.more-screen{display:flex;flex-direction:column;padding:1.5rem;gap:.75rem}.more-screen__row{display:flex;align-items:center;gap:.75rem;min-height:44px;width:100%;padding:.75rem;background:var(--surface);border:1px solid var(--border);border-radius:.75rem;color:var(--fg);text-align:left}.more-screen__row-avatar{flex-shrink:0;width:44px;height:44px;border-radius:50%;background:var(--bg);border:1px solid var(--border);color:var(--accent);font-size:1.125rem;font-weight:700;display:grid;place-items:center}.more-screen__row-text{flex:1;display:flex;flex-direction:column}.more-screen__row-title{font-size:1rem;font-weight:600}.more-screen__row-subtitle{font-size:.8125rem;color:var(--muted)}.more-screen__row-chevron{color:var(--muted);font-size:1.25rem}.hero-portrait{flex-shrink:0;display:block;transition:filter var(--motion-normal) var(--motion-ease)}.hero-portrait--wounded{filter:grayscale(.85) brightness(.65)}.banner{flex-shrink:0;display:block;filter:drop-shadow(0 2px 3px rgba(0,0,0,.4))}.info-tooltip{position:relative;display:inline-flex;vertical-align:middle;margin-left:.25rem}.info-tooltip__button{position:relative;width:20px;height:20px;min-height:0;border-radius:50%;border:1px solid var(--border);background:var(--surface);color:var(--muted);font-size:.6875rem;line-height:1;display:grid;place-items:center;padding:0}.info-tooltip__button:before{content:"";position:absolute;top:-12px;right:-12px;bottom:-12px;left:-12px}.info-tooltip__bubble{position:absolute;z-index:20;top:calc(100% + .375rem);left:0;width:max-content;max-width:220px;padding:.625rem .75rem;border-radius:.5rem;border:1px solid var(--border);background:var(--bg);color:var(--fg);font-size:.75rem;font-weight:400;line-height:1.4;box-shadow:0 4px 16px #0006;text-align:left}.app-error{min-height:100dvh;display:grid;place-items:center;padding:1rem}.app-error__detail{display:block;margin-top:.5rem;color:var(--muted);overflow-wrap:anywhere}@media(hover:none)and (pointer:coarse){input:not([type=checkbox],[type=radio],[type=range],[type=button],[type=submit]),select,textarea{font-size:max(16px,1em)!important}}.static-page{box-sizing:border-box;max-width:44rem;margin:0 auto;padding:3rem 16px 4rem;line-height:1.6}.static-page__overline{margin:0;font-size:.7rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--title-eyebrow)}.static-page__title{margin:.4rem 0 .6rem;font:400 3rem/1.05 Georgia,Times New Roman,serif;color:var(--title-gilt)}.static-page__tagline{margin:0 0 1.5rem;font:400 1.3rem/1.3 Georgia,serif}.static-page h2{margin:2.2rem 0 .4rem;font:400 1.6rem/1.2 Georgia,serif;color:var(--title-gilt)}.static-page h3{margin:1.4rem 0 .3rem;font-size:1.05rem}.static-page a{color:var(--title-gilt)}.static-page__links{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;margin-top:1.5rem}.static-page__links a{display:inline-flex;align-items:center;min-height:44px}.static-page ul{padding-left:1.25rem}.static-page__tip{color:var(--text-description)}.static-page table{display:block;max-width:100%;overflow-x:auto;border-collapse:collapse;font-size:.9rem}.static-page caption{text-align:left;color:var(--muted)}.static-page th,.static-page td{padding:.3rem .6rem;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}:root{--font-display: Georgia, serif;--font-ui: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--text-label: .75rem;--text-body: .875rem;--text-title: 2.2rem;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-6: 24px;--space-8: 32px;--radius-control: 8px;--radius-panel: 12px;--control-size: 44px;--panel-shadow: 0 8px 24px #0003}.game-panel{padding:var(--space-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-panel);box-shadow:var(--panel-shadow)}.game-panel--board,.game-board{border:3px solid var(--iron-700);border-radius:12px;background:linear-gradient(180deg,color-mix(in srgb,var(--oak-700) 72%,transparent),color-mix(in srgb,var(--oak-950) 88%,transparent)),var(--tex-planks-dark, none) center / 460px auto,var(--oak-700);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--brass-300) 30%,transparent),0 0 0 1px var(--oak-950),0 10px 24px #00000073}.game-button,.game-field{min-width:var(--control-size);min-height:var(--control-size);padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-control);background:var(--surface);color:var(--fg);font:400 var(--text-body)/1.4 var(--font-ui)}.game-button{transition:background var(--motion-fast),border-color var(--motion-fast),opacity var(--motion-fast)}.game-button--primary{background:var(--accent);color:var(--bg);font-weight:600}.game-button--danger{border-color:var(--err);color:var(--err-text)}.game-button:focus-visible,.game-field:focus-visible{outline:2px solid var(--control-focus);outline-offset:3px}.game-button:disabled{opacity:.6;cursor:not-allowed}.game-button[aria-busy=true]{cursor:progress}.game-button[aria-pressed=true],.game-button[aria-selected=true]{border-color:var(--accent);color:var(--accent)}.game-button:active:not(:disabled){transform:none;opacity:.8}@media(hover:hover){.game-button:hover:not(:disabled){border-color:var(--accent)}.game-button--danger:hover:not(:disabled){border-color:var(--err);background:var(--panel-danger)}}.game-segments{position:relative;isolation:isolate;display:flex;gap:0;padding:var(--space-1);border:1px solid var(--segment-rail-border);border-radius:calc(var(--radius-control) + var(--space-1));background:linear-gradient(180deg,var(--oak-950),var(--oak-900));box-shadow:inset 0 1px 3px #0008,0 1px color-mix(in srgb,var(--parchment-100) 4%,transparent)}.game-segments__marker{position:absolute;z-index:-1;inset-block:var(--space-1);left:var(--space-1);width:calc((100% - 2 * var(--space-1)) / var(--segment-count));transform:translate(calc(100% * var(--segment-index)));border:1px solid var(--segment-marker-border);border-radius:var(--radius-control);background:linear-gradient(180deg,var(--oak-500),var(--ink-900));box-shadow:inset 0 1px color-mix(in srgb,var(--brass-200) 20%,transparent),inset 0 -2px 0 var(--accent),0 2px 8px #0006;transition:transform var(--motion-normal) var(--motion-ease)}.game-segments>.game-button{flex:1;min-width:0;padding-inline:var(--space-2);border-color:transparent;background:transparent;color:var(--muted);letter-spacing:.04em;overflow-wrap:break-word;transition:color var(--motion-fast),opacity var(--motion-fast)}@media(max-width:360px){.game-segments>.game-button{padding-inline:var(--space-1)}}.game-segments>.game-button[aria-pressed=true],.game-segments>.game-button[aria-selected=true]{border-color:transparent;color:var(--segment-selected);box-shadow:none;font-weight:600}@media(hover:hover){.game-segments>.game-button:hover:not(:disabled){border-color:transparent;color:var(--fg)}.game-segments>.game-button[aria-pressed=true]:hover:not(:disabled),.game-segments>.game-button[aria-selected=true]:hover:not(:disabled){color:var(--segment-selected)}}.game-heading>span{font:500 var(--text-label)/1.4 var(--font-ui);letter-spacing:.16em;color:var(--title-eyebrow)}.game-heading h1{font:400 var(--text-title)/1.2 var(--font-display);margin:var(--space-2) 0}.game-heading p{font:400 var(--text-body)/1.6 var(--font-ui);color:var(--text-description)}.game-status{display:grid;gap:var(--space-3);font:400 var(--text-body)/1.5 var(--font-ui)}.game-status>.game-button{justify-self:start}.game-status--neutral{color:var(--muted)}.game-status--error{border-color:var(--err);background:var(--panel-danger);color:var(--fg)}.world-unavailable{width:min(32rem,calc(100% - 2rem));margin:4.5rem auto 1rem}@media(prefers-reduced-motion:reduce){.game-button,.game-segments>.game-button,.game-segments__marker{transition:none}}.game-segments--plaque{border:2px solid var(--iron-700);border-radius:10px;background:linear-gradient(180deg,color-mix(in srgb,var(--oak-700) 72%,transparent),color-mix(in srgb,var(--oak-950) 86%,transparent)),var(--tex-planks-dark, none) center / 420px auto,var(--oak-700);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--brass-300) 28%,transparent),0 4px 12px #00000073}.game-segments--plaque>.game-segments__marker{border:2px solid var(--oak-700);border-radius:7px;background:linear-gradient(180deg,color-mix(in srgb,var(--brass-100) 55%,transparent),color-mix(in srgb,var(--brass-500) 25%,transparent)),var(--tex-planks-light, none) center / 280px auto,var(--brass-400);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--brass-100) 50%,transparent),inset 0 -3px #00000047,0 2px 0 var(--oak-950)}.game-segments--plaque>.game-button{color:var(--parchment-400);font-family:var(--font-display);font-size:1rem;letter-spacing:.06em;text-shadow:0 1px 2px rgb(0 0 0 / .6)}.game-segments--plaque>.game-button[aria-pressed=true],.game-segments--plaque>.game-button[aria-selected=true]{color:var(--ink);font-weight:700;text-shadow:0 1px 0 color-mix(in srgb,var(--brass-100) 55%,transparent)}@media(hover:hover){.game-segments--plaque>.game-button[aria-pressed=true]:hover:not(:disabled),.game-segments--plaque>.game-button[aria-selected=true]:hover:not(:disabled){color:var(--ink)}}.game-back{display:inline-flex;align-items:center;gap:var(--space-2);min-height:var(--control-size);padding:0 var(--space-3) 0 0;border:0;background:none;color:var(--title-gilt);font:700 var(--text-label) var(--font-ui);letter-spacing:.14em;text-transform:uppercase;cursor:pointer}.game-back__ring{display:grid;flex:none;place-items:center;width:36px;height:36px;border:2px solid var(--iron-500);border-radius:50%;background:radial-gradient(circle at 35% 30%,color-mix(in srgb,var(--parchment-100) 28%,transparent),transparent 55%),var(--tex-metal, none) center / 160px auto,var(--iron-700);color:var(--parchment-100);box-shadow:0 2px 4px #00000080;transition:transform var(--motion-fast) var(--motion-ease)}@media(hover:hover){.game-back:hover .game-back__ring{transform:translate(-2px)}}.game-back:active .game-back__ring{transform:translate(-2px)}.game-back:focus-visible{outline:2px solid var(--control-focus);outline-offset:2px;border-radius:999px}.game-button--plaque{min-height:52px;padding:.6rem 1.25rem;border:2px solid var(--ink-900);border-radius:7px;background:linear-gradient(180deg,color-mix(in srgb,var(--brass-100) 30%,transparent),color-mix(in srgb,var(--brass-800) 35%,transparent)),var(--tex-planks-light, none) center / 280px auto,var(--brass-600);color:var(--ink-900);font:700 1.05rem/1.2 var(--font-display);letter-spacing:.06em;text-transform:uppercase;text-shadow:0 1px 0 color-mix(in srgb,var(--brass-100) 55%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--brass-100) 50%,transparent),inset 0 -4px #00000047,0 3px 0 var(--oak-950),0 8px 16px #00000073;transition:transform var(--motion-fast) var(--motion-ease),box-shadow var(--motion-fast) var(--motion-ease),filter var(--motion-fast) var(--motion-ease)}@media(hover:hover){.game-button--plaque:hover:not(:disabled){border-color:var(--ink-900);filter:brightness(1.08)}}.game-button--plaque:active:not(:disabled){transform:translateY(2px);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--brass-100) 40%,transparent),inset 0 -2px #00000047,0 1px 0 var(--oak-950),0 3px 8px #0006}.game-button--plaque:disabled{filter:saturate(.3) brightness(.75);opacity:1}.game-parchment,.game-ledger{--control-focus: var(--control-focus-parchment)}.game-ledger{display:grid;margin:0;overflow:hidden}.game-parchment,.game-ledger{border:1px solid var(--ink-700);border-radius:4px;background:radial-gradient(ellipse at 50% 40%,color-mix(in srgb,var(--parchment-200) 35%,transparent),color-mix(in srgb,var(--oak-400) 30%,transparent)),var(--tex-plaster, none) center / 360px auto,var(--parchment-300);color:var(--ink);box-shadow:inset 0 0 18px color-mix(in srgb,var(--oak-500) 45%,transparent),0 2px #00000059}.game-ledger__cell{display:grid;gap:.15rem;padding:var(--space-3) var(--space-4);border-left:1px solid color-mix(in srgb,var(--ink-700) 35%,transparent)}.game-ledger__cell:first-child{border-left:0}.game-ledger__label{color:var(--ink-soft);font:700 .7rem var(--font-ui);letter-spacing:.12em;text-transform:uppercase}.game-ledger__value{margin:0;color:var(--ink);font:700 1.35rem/1.2 var(--font-ui);font-variant-numeric:tabular-nums}.game-ledger__note{color:var(--ink-soft);font-size:.75rem;font-variant-numeric:tabular-nums}.game-seal{display:grid;flex:none;place-items:center;width:2.25rem;height:2.25rem;border:2px solid var(--brass-800);border-radius:50%;background:radial-gradient(circle at 38% 32%,var(--brass-200),var(--brass-600) 58%,var(--brass-800));color:var(--ink-900);font:700 1rem/1 var(--font-display);text-shadow:0 1px 0 color-mix(in srgb,var(--brass-100) 60%,transparent);box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--brass-100) 25%,transparent),0 2px 4px #00000073}@media(prefers-reduced-motion:reduce){.game-back__ring,.game-button--plaque{transition:none}}.player-name{position:relative;display:inline;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:inherit;text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--brass-300) 45%,transparent);text-underline-offset:3px;cursor:pointer}.player-name:after{content:"";position:absolute;top:50%;right:50%;bottom:50%;left:50%;min-width:44px;min-height:44px;width:100%;height:100%;transform:translate(-50%,-50%)}@media(hover:hover){.player-name:hover{text-decoration-color:currentcolor}}.player-name:focus-visible{outline:2px solid var(--control-focus);outline-offset:2px;border-radius:2px}.player-profile__crest{display:grid;place-items:center;padding:0 0 var(--space-2)}.player-profile__crest svg{filter:drop-shadow(0 6px 10px rgb(0 0 0 / .55))}.player-profile__record{padding:var(--space-3) var(--space-4) var(--space-4)}.player-profile__record-title{margin:0 0 var(--space-2);font:700 var(--text-label) / 1.2 var(--font-ui);letter-spacing:.14em;text-transform:uppercase;text-align:center;color:var(--ink-soft)}.player-profile__stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2);margin:0}.player-profile__stat{display:flex;flex-direction:column-reverse;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-1);border-top:3px solid var(--oak-400);text-align:center}.player-profile__stat--won{border-top-color:var(--moss-600)}.player-profile__stat--lost{border-top-color:var(--crimson-600)}.player-profile__stat dt{font:600 var(--text-label) / 1.2 var(--font-ui);color:var(--ink-soft)}.player-profile__stat dd{margin:0;font:400 2rem / 1 var(--font-display);color:var(--ink);font-variant-numeric:tabular-nums}.player-profile__note{margin:var(--space-3) 0 0;font-size:var(--text-label);line-height:1.4;text-align:center;color:var(--ink-soft)}.player-profile__achievements{display:flex;flex-direction:column;gap:var(--space-2);margin-top:var(--space-4)}.player-profile__section-title{margin:0;font:700 var(--text-label) / 1.2 var(--font-ui);letter-spacing:.14em;text-transform:uppercase;color:var(--title-eyebrow)}.player-profile__section-note{margin:0;font-size:var(--text-label);color:var(--text-description)}.player-profile__invite{display:flex;flex-direction:column;gap:var(--space-2);margin-top:var(--space-2)}.player-profile__invite .plaque{width:100%}.season-title{display:inline-flex;align-items:center;margin-left:6px;padding:0 6px;border:1px solid var(--brass-400);border-radius:5px;background:var(--oak-500);color:var(--brass-100);font:700 .625rem/1.5 var(--font-ui),sans-serif;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;vertical-align:.1em}.season-title--champion{border-color:var(--brass-300);background:var(--brass-800);color:var(--brass-100)}.chat-dock{--chat-dock-clearance: calc(64px + env(safe-area-inset-bottom)) ;position:fixed;z-index:55;right:max(12px,env(safe-area-inset-right));bottom:calc(var(--chat-dock-clearance) + 12px);display:flex;flex-direction:column;align-items:flex-end;gap:10px;pointer-events:none;transition:right var(--motion-normal) var(--motion-ease-out)}.chat-dock>*{pointer-events:auto}.chat-dock__button{position:relative;display:inline-flex;align-items:center;gap:6px;min-width:44px;min-height:52px;padding:0 16px 0 14px;border:2px solid var(--brass-600);border-radius:999px;background:radial-gradient(circle at 30% 25%,color-mix(in srgb,var(--brass-100) 18%,transparent),transparent 60%),linear-gradient(var(--oak-600),var(--oak-700));color:var(--parchment-200);font:600 .875rem/1 var(--font-body, system-ui);letter-spacing:.02em;box-shadow:inset 0 0 0 1px #00000080,0 6px 18px #0000008c}.chat-dock__button:focus-visible{outline:2px solid var(--control-focus);outline-offset:2px}.chat-dock__button--unread{border-color:var(--brass-300)}.chat-dock__badge{position:absolute;top:-10px;right:-4px;padding:2px 7px;border:1px solid var(--oak-950);border-radius:999px;background:var(--crimson-600);color:var(--parchment-100);font-size:.6875rem;font-weight:700;line-height:1.4;white-space:nowrap}.chat-dock__panel{display:flex;flex-direction:column;width:min(380px,calc(100vw - 24px));height:min(520px,calc(100dvh - 240px));min-height:280px;padding:0 12px 12px;color:var(--fg);animation:chat-dock-rise var(--motion-normal) var(--motion-ease-out) both}@keyframes chat-dock-rise{0%{transform:translateY(16px);opacity:0}}.reduced-motion .chat-dock__panel{animation:none}.chat-dock__header{display:flex;align-items:center;justify-content:space-between;min-height:52px;margin:0 -12px 8px;padding:4px 8px 4px 14px;border-bottom:1px solid var(--edge-gilt);background:color-mix(in srgb,var(--oak-950) 70%,transparent);border-radius:9px 9px 0 0}.chat-dock__header h2{margin:0;font:400 1.15rem var(--font-display);color:var(--title-gilt)}.chat-dock__close{display:grid;place-items:center;width:44px;height:44px;padding:0;border:2px solid var(--iron-500);border-radius:50%;background:var(--iron-700);color:var(--parchment-100)}.chat-dock__panel>.game-segments{flex:none;margin-bottom:8px}.chat-room{flex:1;min-height:0;display:flex;flex-direction:column;gap:.5rem}.chat-room__messages{flex:1;min-height:0;display:flex;flex-direction:column;gap:.5rem;overflow-y:auto;padding:var(--space-3, 12px);border:1px solid color-mix(in srgb,var(--brass-300) 20%,transparent);border-radius:8px;background:color-mix(in srgb,var(--oak-950) 45%,transparent)}.chat-room__hint{margin:0;color:var(--muted);font-size:.8125rem;text-align:center}.chat-room__error{margin:0;color:var(--err-text);font-size:.8125rem}.chat-room__muted{margin:0;padding:.625rem .75rem;border-radius:8px;background:var(--panel-danger);font-size:.875rem;line-height:1.4;overflow-wrap:anywhere}.chat-room__msg{display:flex;flex-direction:column;gap:.125rem;font-size:.875rem}.chat-room__author{display:flex;gap:.25rem;font-size:.75rem;font-weight:600;color:var(--muted)}.chat-room__tag{color:var(--title-eyebrow)}.chat-room__msg--mine .chat-room__author{color:var(--accent)}.chat-room__body{word-break:break-word;white-space:pre-wrap}.chat-room__composer{display:flex;align-items:center;gap:.5rem}.chat-room__composer>.game-field{flex:1;min-width:0}.chat-room__counter{font-size:.6875rem;color:var(--muted);white-space:nowrap}.chat-dock__empty{display:flex;flex-direction:column;gap:12px;padding:8px 4px;color:var(--fg)}.chat-dock__empty p{margin:0}@media(max-width:639px){.chat-dock--open{left:max(8px,env(safe-area-inset-left));right:max(8px,env(safe-area-inset-right));bottom:calc(var(--chat-dock-clearance) + 8px)}.chat-dock__panel{width:100%;height:min(560px,calc(100dvh - var(--chat-dock-clearance) - 140px))}.chat-dock--open .chat-dock__button{display:none}}@media(min-width:900px){.chat-dock{--chat-dock-clearance: 64px;right:24px;bottom:80px}.app-shell:has(dialog.detail-panel--contextual[open]) .chat-dock{right:28rem}}.app-shell__content:not(.app-shell__content--keep):not(.app-shell__content--map){padding-bottom:76px}.app-shell:has(.app-shell__content--map) .chat-dock:not(.chat-dock--open){bottom:calc(var(--chat-dock-clearance) + 72px)}dialog.detail-panel{--panel-ink: var(--ink-900);--panel-ink-soft: var(--oak-500);--panel-gold: var(--brass-300);--panel-iron: var(--iron-700);--panel-board: linear-gradient( 180deg, color-mix(in srgb, var(--oak-900) 80%, transparent), color-mix(in srgb, var(--oak-950) 90%, transparent) ), var(--tex-planks-dark, none) center / 460px auto, var(--oak-700);position:fixed;inset:auto 0 var(--sheet-bottom, 0px);margin:0;width:100%;max-width:none;max-height:min(85dvh,calc(100dvh - var(--sheet-top, 0px) - var(--sheet-bottom, 0px)));padding:0;border:3px solid var(--panel-iron);border-bottom:0;border-radius:14px 14px 0 0;background:var(--panel-board);color:var(--fg);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--brass-300) 35%,transparent),inset 0 18px 30px -18px #000c,0 -10px 40px #0000008c;overflow-y:auto;overscroll-behavior:contain;animation:panel-rise var(--motion-normal) var(--motion-ease-out) both}dialog.detail-panel[open]{display:block}dialog.detail-panel--contextual{z-index:60}dialog.detail-panel::backdrop{background:linear-gradient(180deg,color-mix(in srgb,var(--oak-950) 12%,transparent),color-mix(in srgb,var(--oak-950) 50%,transparent));animation:panel-scrim var(--motion-normal) var(--motion-ease-out) both}@keyframes panel-rise{0%{transform:translateY(28px);opacity:0}}@keyframes panel-scrim{0%{opacity:0}}dialog.detail-panel>:is(.building-sheet,.node-sheet,.hero-picker,.perk-sheet){width:100%;max-height:none;overflow:visible;border:0;border-radius:0;background:none;padding:0 1rem 1rem;padding-bottom:max(1rem,env(safe-area-inset-bottom));padding-left:max(1rem,env(safe-area-inset-left));padding-right:max(1rem,env(safe-area-inset-right));animation:none;overflow-wrap:anywhere}.detail-panel :is(.building-sheet__header,.node-sheet__header,.hero-picker__header,.perk-sheet__header){position:sticky;top:0;z-index:2;width:auto;min-height:44px;margin:0 -1rem .75rem;padding:.75rem 1rem .6rem;background:linear-gradient(180deg,color-mix(in srgb,var(--oak-950) 94%,transparent),color-mix(in srgb,var(--oak-900) 90%,transparent)),var(--tex-planks-dark, none) center / 460px auto,var(--oak-900);border-bottom:1px solid color-mix(in srgb,var(--brass-300) 30%,transparent);box-shadow:0 6px 12px -8px #000c;color:var(--fg)}.detail-panel :is(.building-sheet__header h2,.node-sheet__header h2,.perk-sheet__header h2){font-family:var(--font-display);font-size:1.35rem;font-weight:400;letter-spacing:.02em;color:var(--parchment-200);text-shadow:0 2px 6px rgb(0 0 0 / .6)}.detail-panel :is(.building-sheet__header,.node-sheet__header,.hero-picker__header,.perk-sheet__header)>button{flex-shrink:0;display:grid;place-items:center;width:44px;min-width:44px;height:44px;min-height:44px;padding:0;border:2px solid var(--iron-500);border-radius:50%;background:radial-gradient(circle at 35% 30%,color-mix(in srgb,var(--parchment-100) 28%,transparent),transparent 55%),var(--tex-metal, none) center / 160px auto,var(--iron-700);color:var(--parchment-100);box-shadow:inset 0 0 0 2px #00000059,0 2px 4px #00000080;transition:transform var(--motion-fast) var(--motion-ease)}.detail-panel :is(.building-sheet__header,.node-sheet__header,.hero-picker__header)>button:active{transform:scale(.94)}.detail-panel :is(button,select):focus-visible{outline:2px solid var(--control-focus);outline-offset:3px}.detail-panel .parchment,.detail-panel :is(.node-sheet__terrain,.node-sheet__weather,.node-sheet__income){padding:.75rem .9rem;border:1px solid var(--oak-400);border-radius:6px;background:radial-gradient(ellipse at 50% 40%,color-mix(in srgb,var(--parchment-100) 35%,transparent),color-mix(in srgb,var(--oak-400) 30%,transparent)),var(--tex-plaster, none) center / 320px auto,var(--parchment-400);color:var(--panel-ink);font-size:.9rem;line-height:1.5;box-shadow:inset 0 0 18px color-mix(in srgb,var(--brass-800) 45%,transparent),0 2px #00000059}.detail-panel :is(.plaque,.building-sheet__upgrade,.node-sheet__action){position:relative;min-height:52px;padding:.6rem 1.25rem;border:2px solid var(--ink-900);border-radius:7px;background:linear-gradient(180deg,color-mix(in srgb,var(--brass-100) 30%,transparent),color-mix(in srgb,var(--brass-800) 35%,transparent)),var(--tex-planks-light, none) center / 280px auto,var(--brass-600);color:var(--oak-700);font:700 1.05rem/1.2 var(--font-display);letter-spacing:.06em;text-transform:uppercase;text-shadow:0 1px 0 color-mix(in srgb,var(--parchment-200) 55%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--brass-100) 50%,transparent),inset 0 -4px #00000047,0 3px 0 var(--oak-950),0 8px 16px #00000073;cursor:pointer;transition:transform var(--motion-fast) var(--motion-ease),box-shadow var(--motion-fast) var(--motion-ease),filter var(--motion-fast) var(--motion-ease)}@media(hover:hover){.detail-panel :is(.plaque,.building-sheet__upgrade,.node-sheet__action):hover:not(:disabled){filter:brightness(1.08)}}.detail-panel :is(.plaque,.building-sheet__upgrade,.node-sheet__action):active:not(:disabled){transform:translateY(2px);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--brass-100) 40%,transparent),inset 0 -2px #00000047,0 1px 0 var(--oak-950),0 3px 8px #0006}.detail-panel :is(.plaque,.building-sheet__upgrade,.node-sheet__action):disabled{filter:saturate(.3) brightness(.75);cursor:not-allowed;opacity:1}.detail-panel :is(.node-sheet__row button:not(.node-sheet__action),.hero-picker__item,.keep-status-panel__secondary){min-height:48px;border:1px solid var(--oak-500);border-radius:7px;background:linear-gradient(180deg,color-mix(in srgb,var(--ink-900) 75%,transparent),color-mix(in srgb,var(--oak-900) 85%,transparent)),var(--tex-planks-dark, none) center / 360px auto,var(--ink-900);color:var(--fg);box-shadow:inset 0 1px color-mix(in srgb,var(--brass-100) 12%,transparent),0 2px #00000080;transition:transform var(--motion-fast) var(--motion-ease),border-color var(--motion-fast) var(--motion-ease)}@media(hover:hover){.detail-panel :is(.node-sheet__row button:not(.node-sheet__action),.hero-picker__item,.keep-status-panel__secondary):hover{border-color:var(--panel-gold)}}.detail-panel :is(.node-sheet__row button:not(.node-sheet__action),.hero-picker__item,.keep-status-panel__secondary):active{transform:translateY(1px)}.detail-panel .hero-picker__item--danger{border-color:var(--crimson-600);color:var(--crimson-300)}.detail-panel select{min-height:48px;border:1px solid var(--oak-400);border-radius:6px;background:linear-gradient(color-mix(in srgb,var(--parchment-100) 25%,transparent),color-mix(in srgb,var(--oak-400) 20%,transparent)),var(--tex-plaster, none) center / 320px auto,var(--parchment-400);color:var(--panel-ink);font:600 .95rem var(--font-ui)}.detail-panel .hero-picker__item{min-width:0;flex-wrap:wrap}.detail-panel .node-sheet__row{position:sticky;bottom:0;padding-block:.75rem .25rem;background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--oak-950) 95%,transparent) 35%)}.detail-panel :is(.node-sheet__meta,.hero-picker__header){color:var(--panel-gold)}.detail-panel .node-sheet__hint{color:var(--parchment-400)}@media(min-width:900px){dialog.detail-panel{inset:calc(var(--sheet-top, 0px) + 1rem) 1rem calc(var(--sheet-bottom, 0px) + 1rem) auto;width:26rem;max-width:calc(100vw - 2rem);max-height:calc(100dvh - var(--sheet-top, 0px) - var(--sheet-bottom, 0px) - 2rem);margin:auto 0;border-bottom:3px solid var(--panel-iron);border-radius:14px;animation-name:panel-slide}dialog.detail-panel::backdrop{background:linear-gradient(90deg,transparent 40%,color-mix(in srgb,var(--oak-950) 45%,transparent))}@keyframes panel-slide{0%{transform:translate(32px);opacity:0}}}@media(max-height:500px)and (max-width:899px){dialog.detail-panel{max-height:calc(100dvh - var(--sheet-top, 0px) - var(--sheet-bottom, 0px))}}.reduced-motion dialog.detail-panel::backdrop{animation:none}dialog.detail-panel.scroll-dialog{inset:var(--sheet-top, 0px) 0 var(--sheet-bottom, 0px);margin:auto;width:min(30rem,calc(100vw - 2rem));height:fit-content;max-height:min(44rem,calc(100dvh - var(--sheet-top, 0px) - var(--sheet-bottom, 0px) - 1.5rem));border:3px solid var(--panel-iron);border-radius:12px;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--brass-300) 35%,transparent),0 0 0 1px var(--oak-950),0 24px 60px #000000a6}.scroll-dialog__sheet{display:flex;flex-direction:column;gap:var(--space-3);padding:0 var(--space-4) var(--space-4)}.scroll-dialog__header{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:var(--space-3);margin:0 calc(-1 * var(--space-4));padding:var(--space-3) var(--space-4);background:linear-gradient(180deg,color-mix(in srgb,var(--oak-950) 94%,transparent),color-mix(in srgb,var(--oak-900) 90%,transparent)),var(--tex-planks-dark, none) center / 460px auto,var(--oak-900);border-bottom:1px solid color-mix(in srgb,var(--brass-300) 30%,transparent)}.scroll-dialog__heading{flex:1;min-width:0}.scroll-dialog__eyebrow,.first-orders__eyebrow{display:block;color:var(--panel-gold, var(--title-gilt));font-size:var(--text-label);font-weight:700;letter-spacing:.14em;text-transform:uppercase}.scroll-dialog__header h2{margin:2px 0 0;font-family:var(--font-display);font-size:1.4rem;font-weight:400;color:var(--parchment-200);text-shadow:0 2px 6px rgb(0 0 0 / .6)}.scroll-dialog__header>button{flex-shrink:0;display:grid;place-items:center;width:44px;height:44px;padding:0;border:2px solid var(--iron-500);border-radius:50%;background:radial-gradient(circle at 35% 30%,color-mix(in srgb,var(--parchment-100) 28%,transparent),transparent 55%),var(--tex-metal, none) center / 160px auto,var(--iron-700);color:var(--fg);cursor:pointer}.scroll-dialog__seal,.first-orders__seal{flex-shrink:0;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:radial-gradient(circle at 38% 32%,var(--crimson-600),var(--crimson-700) 62%,var(--crimson-900));box-shadow:inset 0 0 0 3px #0000002e,inset 0 2px 3px color-mix(in srgb,var(--crimson-300) 35%,transparent),0 2px 4px #00000080;color:var(--fg);font:700 .85rem var(--font-display);text-shadow:0 1px 0 rgb(0 0 0 / .5)}.scroll-dialog__page{display:flex;flex-direction:column;gap:var(--space-2);font-size:var(--text-body)}.scroll-dialog__page p,.scroll-dialog__list{margin:0}.scroll-dialog__list{display:flex;flex-direction:column;gap:var(--space-2);padding-left:1.2rem}.scroll-dialog__crest{display:flex;align-items:center;gap:var(--space-3);padding-bottom:var(--space-2);border-bottom:1px solid color-mix(in srgb,var(--brass-800) 35%,transparent);font-family:var(--font-display);font-style:italic}.scroll-dialog__crest-text{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2)}.scroll-dialog__crest-text .scroll-dialog__secondary{font-style:normal}.scroll-dialog__verdict{font:700 1.2rem var(--font-display)}.scroll-dialog__verdict--win{color:var(--moss-800)}.scroll-dialog__verdict--loss{color:var(--crimson-700)}.scroll-dialog__page .battle-board{color:var(--fg)}.scroll-dialog__actions{display:flex;flex-direction:column;gap:var(--space-2)}.scroll-dialog__actions:empty{display:none}.scroll-dialog__actions .plaque{width:100%}.scroll-dialog__secondary,.first-orders__quiet{min-height:44px;padding:.5rem 1rem;border:1px solid var(--oak-500);border-radius:7px;background:linear-gradient(180deg,color-mix(in srgb,var(--ink-900) 75%,transparent),color-mix(in srgb,var(--oak-900) 85%,transparent)),var(--tex-planks-dark, none) center / 360px auto,var(--ink-900);color:var(--fg);font:600 .9rem var(--font-ui);cursor:pointer}.scroll-dialog__secondary:focus-visible,.first-orders button:focus-visible,.first-orders summary:focus-visible,.next-step button:focus-visible{outline:2px solid var(--control-focus);outline-offset:3px}.first-orders,.next-step{margin-top:var(--space-2);max-width:min(22rem,calc(100vw - 2rem));padding:var(--space-3);border:1px solid var(--oak-400);border-radius:6px;background:radial-gradient(ellipse at 50% 40%,color-mix(in srgb,var(--parchment-100) 35%,transparent),color-mix(in srgb,var(--oak-400) 30%,transparent)),var(--tex-plaster, none) center / 320px auto,var(--parchment-400);color:var(--ink);box-shadow:inset 0 0 18px color-mix(in srgb,var(--brass-800) 45%,transparent),0 0 0 3px color-mix(in srgb,var(--ink-900) 85%,transparent),0 0 0 4px var(--brass-600),0 10px 24px #00000080;pointer-events:auto;animation:notice-in var(--motion-normal) var(--motion-ease-out) both}.first-orders .first-orders__eyebrow,.next-step .first-orders__eyebrow{color:var(--brass-800)}.first-orders__head{display:flex;align-items:center;gap:var(--space-3)}.first-orders__title{flex:1;min-width:0}.first-orders>.first-orders__quiet,.next-step>.first-orders__quiet{margin-top:var(--space-2)}.next-step__show{align-self:flex-start;pointer-events:auto}.first-orders h2,.next-step h2{margin:2px 0 0;font-family:var(--font-display);font-size:1.15rem;font-weight:700;line-height:1.2}.first-orders__why{margin:var(--space-2) 0 0;font-size:var(--text-body);line-height:1.45}.first-orders__go{min-height:44px;margin-top:var(--space-3);padding:.45rem 1rem;border:2px solid var(--ink-900);border-radius:7px;background:linear-gradient(180deg,color-mix(in srgb,var(--brass-100) 30%,transparent),color-mix(in srgb,var(--brass-800) 35%,transparent)),var(--tex-planks-light, none) center / 280px auto,var(--brass-600);color:var(--oak-700);font:700 .95rem/1.2 var(--font-display);letter-spacing:.05em;text-transform:uppercase;text-shadow:0 1px 0 color-mix(in srgb,var(--parchment-200) 55%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--brass-100) 50%,transparent),inset 0 -3px #00000047,0 2px 0 var(--oak-950);cursor:pointer}.first-orders__head .first-orders__go{flex-shrink:0;max-width:9.5rem;margin-top:0}.first-orders__go:active{transform:translateY(1px)}.first-orders__all{margin-top:var(--space-1);font-size:var(--text-body)}.first-orders__all summary{min-height:44px;display:flex;align-items:center;gap:var(--space-2);font-weight:600;cursor:pointer;list-style:none}.first-orders__all summary::-webkit-details-marker{display:none}.first-orders__all summary:before{content:"▸";transition:transform var(--motion-fast) var(--motion-ease-out)}.first-orders__all[open] summary:before{transform:rotate(90deg)}.first-orders__all ol{margin:0 0 var(--space-2);padding-left:1.2rem}.first-orders__all li{display:flex;justify-content:space-between;gap:var(--space-2);padding:2px 0}.first-orders__all li[data-done=true]>span:first-child{text-decoration:line-through;opacity:.7}.first-orders__state{font-size:var(--text-label);font-weight:700;text-transform:uppercase;letter-spacing:.08em}.announcement-letter__paragraph{white-space:pre-line;overflow-wrap:anywhere}.scroll-dialog__page .announcement-letter__note{margin-top:var(--space-1);font-style:italic;font-size:.85rem}.admin-announcements__body{min-height:8rem;resize:vertical;font:inherit}.achievement-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:var(--space-2);margin:0;padding:0;list-style:none}.achievement{display:flex;align-items:center;gap:var(--space-3);min-height:var(--control-size);padding:var(--space-2) var(--space-3);border:1px solid var(--achievement-edge);border-radius:var(--radius-control);background:var(--achievement-bg)}.achievement__seal{flex:none;width:44px;height:52px;filter:drop-shadow(0 2px 3px rgb(0 0 0 / .45))}.achievement__ribbon{fill:var(--achievement-ribbon)}.achievement__rim{fill:var(--achievement);stroke:var(--achievement-ink);stroke-width:1.5}.achievement__face{fill:var(--achievement-strong);stroke:var(--achievement-ink);stroke-width:1;stroke-dasharray:2 2}.achievement__mark{fill:var(--achievement-ink);font:700 18px / 1 var(--font-display)}.achievement__text{display:flex;flex-direction:column;gap:2px;min-width:0}.achievement__name{font:700 1rem / 1.2 var(--font-display);color:var(--achievement-title)}.achievement__how,.achievement__when{font-size:var(--text-label);line-height:1.35;color:var(--achievement-text)}.achievement__when{opacity:.85}.achievement-list__empty{margin:0;font-size:var(--text-label);line-height:1.4;color:var(--achievement-text)}.season-carry-over{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-3) var(--space-6)}.season-carry-over__title{margin:0 0 var(--space-1);color:var(--title-eyebrow);font-size:var(--text-label);letter-spacing:.08em;text-transform:uppercase}.season-carry-over__list{margin:0;padding-inline-start:1.2em;color:var(--text-description);font-size:var(--text-body);line-height:1.5}.season-end-banner{flex:none;padding:var(--space-2) var(--space-4);background:var(--surface);border-bottom:1px solid var(--page-line)}.season-end-banner__inner{max-width:1200px;margin-inline:auto;display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-4)}.season-end-banner__text{flex:1 1 240px;min-width:0}.season-end-banner__title{margin:0;color:var(--brass-200);font:400 1rem var(--font-display),serif}.season-end-banner__detail{margin:0;color:var(--text-description);font-size:var(--text-body)}.season-end-banner__details{flex-basis:100%;font-size:var(--text-body)}.season-end-banner__details>summary{display:inline-flex;align-items:center;min-height:var(--control-size);color:var(--parchment-300);cursor:pointer}.season-end-banner__details[open]>summary{margin-bottom:var(--space-2)}.notice-layer,.notice-layer[popover]{position:fixed;inset:auto;top:36%;left:50%;transform:translate(-50%,-50%);width:min(26rem,calc(100vw - 2rem));margin:0;padding:0;border:0;background:transparent;overflow:visible;color:inherit;display:flex;flex-direction:column;align-items:stretch;gap:.6rem;z-index:60;pointer-events:none}.notice{--notice-seal: var(--seal-refused);pointer-events:auto;display:flex;align-items:center;gap:.85rem;min-height:44px;padding:.8rem 1.1rem .8rem .8rem;border:1px solid var(--oak-400);border-radius:6px;background:radial-gradient(ellipse at 50% 40%,color-mix(in srgb,var(--parchment-100) 35%,transparent),color-mix(in srgb,var(--oak-400) 30%,transparent)),var(--tex-plaster, none) center / 320px auto,var(--parchment-400);color:var(--ink-900);font:inherit;text-align:left;cursor:pointer;box-shadow:inset 0 0 18px color-mix(in srgb,var(--brass-800) 45%,transparent),0 0 0 3px color-mix(in srgb,var(--ink-900) 85%,transparent),0 0 0 4px var(--brass-600),0 12px 30px #0000008c;animation:notice-in var(--motion-normal) var(--motion-ease-out) both}.notice--success{--notice-seal: var(--seal-done)}.notice--info{--notice-seal: var(--seal-notice)}.notice--leaving{animation:notice-out var(--motion-fast) var(--motion-ease-in) both}@keyframes notice-in{0%{opacity:0;transform:translateY(-6px) scale(.96)}}@keyframes notice-out{to{opacity:0;transform:scale(.97)}}.notice__seal{flex-shrink:0;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--notice-seal);color:var(--brass-100);font:700 1.2rem/1 var(--font-display);text-shadow:0 1px 0 rgb(0 0 0 / .5);box-shadow:inset 0 0 0 3px #0000002e,inset 0 0 0 5px color-mix(in srgb,var(--brass-100) 25%,transparent),0 3px 6px #00000073}.notice__text{display:flex;flex-direction:column;gap:.15rem;min-width:0}.notice__title{font:700 .75rem/1.2 var(--font-display);letter-spacing:.1em;text-transform:uppercase;color:var(--brass-800)}.notice--error .notice__title{color:var(--crimson-700)}.notice--success .notice__title{color:var(--moss-800)}.notice__message{font:600 1rem/1.35 var(--font-display);overflow-wrap:anywhere}.notice--actionable{align-items:flex-start;cursor:default;padding-right:.4rem}.notice--actionable .notice__text{flex:1}.notice__action{align-self:flex-start;min-height:44px;margin-top:.4rem;padding:0 1rem;border:1px solid var(--oak-400);border-radius:4px;background:var(--ink-900);color:var(--brass-100);font:700 .9rem/1 var(--font-display);cursor:pointer}.notice__close{flex-shrink:0;display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;background:transparent;color:var(--ink-900);cursor:pointer}.notice__action:focus-visible,.notice__close:focus-visible{outline:2px solid var(--ink-900);outline-offset:2px}.updates{display:grid;gap:var(--space-4);color:var(--fg);text-align:left}.updates-sheet .updates{padding:0 var(--space-4) var(--space-4)}.updates__changes,.updates__roadmap{display:grid;gap:var(--space-3)}.updates__release{padding:var(--space-3) var(--space-4);border:1px solid color-mix(in srgb,var(--fg) 9%,transparent);border-radius:6px;background:var(--page)}.updates__release--latest{border-color:color-mix(in srgb,var(--title-gilt) 45%,transparent);background:radial-gradient(ellipse at top right,color-mix(in srgb,var(--brass-600) 13%,transparent),transparent 60%),var(--pine-800)}.updates__release header h3{margin:.2rem 0 .4rem;color:var(--parchment-200);font:400 1.35rem/1.2 var(--font-display, Georgia)}.updates__date{color:var(--parchment-500);font-size:.75rem;letter-spacing:.04em}.updates__earlier{margin:var(--space-2) 0 0;color:var(--parchment-400);font:600 .75rem var(--font-ui, system-ui);letter-spacing:.12em;text-transform:uppercase}.updates__release summary{display:grid;gap:.1rem;min-height:44px;align-content:center;cursor:pointer;list-style-position:outside}.updates__summary-title{color:var(--parchment-200);font-weight:600}.updates__release summary:focus-visible{outline:2px solid var(--control-focus);outline-offset:4px}.updates__group{margin-top:var(--space-2)}.updates__kind{margin:0 0 .3rem;font:600 .7rem var(--font-ui, system-ui);letter-spacing:.12em;text-transform:uppercase}.updates__kind--new{color:var(--moss-300)}.updates__kind--improved{color:var(--title-gilt)}.updates__kind--fixed{color:var(--sage-300)}.updates__group ul,.updates__stage ul{display:grid;gap:.4rem;margin:0;padding-left:1.1rem;font-size:.88rem;line-height:1.5}.updates__group strong,.updates__stage strong{color:var(--parchment-200)}.updates__note{margin:0;color:var(--text-description);font-size:.82rem}.updates__stage{padding:var(--space-3) var(--space-4);border:1px solid color-mix(in srgb,var(--fg) 9%,transparent);border-left:3px solid var(--stage-colour, var(--page-line));border-radius:6px;background:var(--page)}.updates__stage--now{--stage-colour: var(--title-gilt)}.updates__stage--next{--stage-colour: var(--iron-300)}.updates__stage--later{--stage-colour: var(--parchment-700)}.updates__stage h3{margin:0 0 var(--space-2);color:var(--parchment-200);font:400 1.2rem var(--font-display, Georgia)}.updates__stage h3 small{margin-left:.4rem;color:var(--text-description);font:400 .78rem var(--font-ui, system-ui)}.updates__stage li{display:grid;gap:.1rem}.updates-sheet__header{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin:0 0 var(--space-3);padding:var(--space-3) var(--space-4);background:color-mix(in srgb,var(--page) 95%,transparent);border-bottom:1px solid color-mix(in srgb,var(--fg) 8%,transparent)}.updates-sheet__header h2{margin:0;color:var(--parchment-200);font:400 1.3rem var(--font-display, Georgia)}.updates-sheet__header button{display:grid;place-items:center;width:44px;height:44px;border:1px solid color-mix(in srgb,var(--fg) 13%,transparent);border-radius:50%;background:transparent;color:var(--parchment-300);cursor:pointer}.updates-sheet__header button:focus-visible{outline:2px solid var(--control-focus);outline-offset:2px}.guide{container-type:inline-size;color:var(--fg);text-align:left}.guide__intro{margin:0 0 var(--space-3);color:var(--text-description);font-size:var(--text-body);line-height:1.5}.guide__index ol{display:grid;gap:var(--space-2);margin:0;padding:0;list-style:none}.guide__topic{display:flex;align-items:center;gap:var(--space-3);width:100%;min-height:64px;padding:var(--space-2) var(--space-3);border:1px solid color-mix(in srgb,var(--fg) 9%,transparent);border-radius:6px;background:var(--page);color:inherit;font:inherit;text-align:left;cursor:pointer;transition:border-color var(--motion-fast) var(--motion-ease),background var(--motion-fast) var(--motion-ease)}.guide__topic:hover{border-color:color-mix(in srgb,var(--brass-600) 40%,transparent)}.guide__topic-icon{display:grid;flex:0 0 40px;place-items:center;width:40px;height:40px;border:1px solid var(--page-line);border-radius:50%;color:var(--title-eyebrow)}.guide__topic-text{display:grid;gap:.15rem;min-width:0}.guide__topic-title{color:var(--parchment-200);font:400 1.05rem/1.25 var(--font-display)}.guide__topic-summary{color:var(--sage-300);font-size:var(--text-label);line-height:1.4}.guide__topic:focus-visible,.guide__all:focus-visible,.guide__pager button:focus-visible{outline:2px solid var(--control-focus);outline-offset:3px}.guide__article{min-width:0}.guide__all{display:inline-flex;align-items:center;gap:var(--space-2);min-height:44px;margin-bottom:var(--space-2);padding:0 var(--space-3);border:1px solid color-mix(in srgb,var(--fg) 13%,transparent);border-radius:999px;background:transparent;color:var(--parchment-300);font:inherit;cursor:pointer}.guide__header{padding-bottom:var(--space-3);border-bottom:1px solid color-mix(in srgb,var(--brass-600) 27%,transparent)}.guide__overline{color:var(--title-eyebrow);font-size:var(--text-label);letter-spacing:.12em;text-transform:uppercase}.guide__header h2{margin:var(--space-1) 0;color:var(--parchment-200);font:400 1.6rem/1.2 var(--font-display)}.guide__header h2:focus{outline:none}.guide__header p{margin:0;color:var(--text-description);font-size:var(--text-body)}.guide__section{margin-top:var(--space-4)}.guide__section h3{margin:0 0 var(--space-2);color:var(--title-gilt);font:400 1.2rem var(--font-display)}.guide__section p,.guide__section li{font-size:.95rem;line-height:1.6}.guide__section p{margin:0 0 var(--space-3)}.guide__section ul{display:grid;gap:var(--space-2);margin:0 0 var(--space-3);padding-left:1.2rem}.guide__section strong{color:var(--parchment-200)}.guide__tip{padding:var(--space-3) var(--space-4);border:1px solid color-mix(in srgb,var(--brass-600) 33%,transparent);border-left:3px solid var(--title-gilt);border-radius:6px;background:radial-gradient(ellipse at top right,color-mix(in srgb,var(--brass-600) 13%,transparent),transparent 60%),var(--pine-800)}.guide__tip-label{display:block;margin-bottom:var(--space-1);color:var(--title-gilt);font:600 var(--text-label) var(--font-ui);letter-spacing:.12em;text-transform:uppercase}.guide__table-wrap{margin:0 0 var(--space-3);overflow-x:auto}.guide__table{width:100%;border-collapse:collapse;font-size:var(--text-body);line-height:1.45}.guide__table caption{padding-bottom:var(--space-2);color:var(--parchment-400);font:600 var(--text-label) var(--font-ui);letter-spacing:.12em;text-align:left;text-transform:uppercase}.guide__table th,.guide__table td{padding:var(--space-2);border-bottom:1px solid color-mix(in srgb,var(--fg) 8%,transparent);text-align:left;vertical-align:top}.guide__table thead th{color:var(--parchment-500);font-size:var(--text-label);font-weight:600}.guide__table .guide__cell--short{white-space:nowrap}.guide__table tbody th{color:var(--parchment-200);font-weight:600}.guide__pager{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3);margin-top:var(--space-6)}.guide__pager button{display:grid;gap:.1rem;min-height:56px;padding:var(--space-2) var(--space-3);border:1px solid color-mix(in srgb,var(--fg) 13%,transparent);border-radius:6px;background:var(--page);color:var(--parchment-200);font:400 1rem var(--font-display);text-align:left;cursor:pointer}.guide__pager small{color:var(--parchment-500);font:600 var(--text-label) var(--font-ui);letter-spacing:.08em;text-transform:uppercase}.guide__pager .guide__pager-next{grid-column:2;text-align:right}@container (max-width: 759px){.guide__layout--reading .guide__index,.guide__layout:not(.guide__layout--reading) .guide__article{display:none}.guide__table--stack thead{display:none}.guide__table--stack,.guide__table--stack tbody,.guide__table--stack tr,.guide__table--stack th,.guide__table--stack td{display:block}.guide__table--stack tr{margin-bottom:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid color-mix(in srgb,var(--fg) 9%,transparent);border-radius:6px;background:var(--page)}.guide__table--stack th,.guide__table--stack td{padding:var(--space-1) 0;border:0}.guide__table--stack tbody th{font:400 1.05rem var(--font-display)}.guide__table--stack td:before{content:attr(data-label);display:block;color:var(--parchment-500);font-size:var(--text-label);font-weight:600}}@container (min-width: 760px){.guide__layout{display:grid;grid-template-columns:minmax(220px,280px) minmax(0,1fr);align-items:start;gap:var(--space-6)}.guide__index{position:sticky;top:var(--space-4)}.guide__topic{min-height:56px}.guide__topic[aria-current=true]{border-color:color-mix(in srgb,var(--title-gilt) 60%,transparent);background:radial-gradient(ellipse at top right,color-mix(in srgb,var(--brass-600) 13%,transparent),transparent 60%),var(--pine-800)}.guide__topic-summary,.guide__all{display:none}}@media(prefers-reduced-motion:reduce){.guide__topic{transition:none}}.guide-sheet .guide{padding:0 var(--space-4) var(--space-4)}@media(min-width:900px){dialog.detail-panel.guide-sheet{width:min(64rem,calc(100vw - 2rem))}}.sign-in-providers{display:grid;gap:.6rem;margin-top:1rem}.sign-in-providers__divider{display:flex;align-items:center;gap:.75rem;margin:0 0 .2rem;color:var(--iron-300);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase}.sign-in-providers__divider:before,.sign-in-providers__divider:after{content:"";flex:1;border-top:1px solid color-mix(in srgb,var(--brass-400) 20%,transparent)}.sign-in-provider{width:100%;min-height:44px}.sign-in-provider--google{display:flex;justify-content:center;align-items:center}.sign-in-provider--apple{display:flex;align-items:center;justify-content:center;gap:.6rem;border:1px solid #ffffff55;border-radius:3px;background:#000;color:#fff;font:500 .95rem system-ui,-apple-system,sans-serif;cursor:pointer}.sign-in-provider--apple:disabled{opacity:.6;cursor:progress}.sign-in-provider--apple:focus-visible{outline:2px solid var(--brass-400);outline-offset:2px}.auth-screen.auth-screen--cinematic{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,420px);gap:3rem;align-items:center;padding:5rem clamp(2rem,6vw,7rem) 7rem;color:var(--fg);background:var(--well);overflow:hidden}.auth-screen__art,.auth-screen__veil{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:-2;object-fit:cover;object-position:43% center;pointer-events:none}.auth-screen__veil{z-index:-1;background:linear-gradient(90deg,color-mix(in srgb,var(--pine-950) 9%,transparent) 20%,color-mix(in srgb,var(--pine-900) 33%,transparent) 54%,color-mix(in srgb,var(--pine-950) 73%,transparent)),linear-gradient(0deg,color-mix(in srgb,var(--pine-950) 93%,transparent),transparent 45%,color-mix(in srgb,var(--pine-900) 27%,transparent))}.auth-screen__world{text-align:left;align-self:end;padding-bottom:4rem;text-shadow:0 3px 25px rgb(0 0 0 / .73)}.auth-screen__overline{font:600 .62rem/1.5 system-ui,sans-serif;letter-spacing:.22em;color:var(--parchment-300)}.auth-screen--cinematic .auth-screen__title{font-family:Georgia,Times New Roman,serif;font-weight:400;font-size:clamp(3rem,6vw,6.5rem);line-height:1.05;letter-spacing:-.04em;margin:.7rem 0 1.5rem}.auth-screen--cinematic .auth-screen__tagline{font:400 clamp(1.5rem,2.5vw,2.5rem)/1.2 Georgia,serif;color:var(--fg);margin-bottom:1rem}.auth-screen__beta{display:inline-flex;align-items:center;gap:.7rem;max-width:100%;margin:0 0 1.2rem;padding:.4rem .9rem .4rem .4rem;border:1px solid color-mix(in srgb,var(--brass-400) 40%,transparent);border-radius:4px;background:color-mix(in srgb,var(--well) 70%,transparent);color:var(--parchment-200);font:400 .8rem/1.4 system-ui,sans-serif;text-shadow:none;text-align:left}.auth-screen__beta strong{flex:none;padding:.2rem .5rem;border:1px solid var(--parchment-300);border-radius:2px;background:color-mix(in srgb,var(--parchment) 12%,transparent);color:var(--brass-200);font-size:.66rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase}.auth-screen__promise{font-size:.85rem;line-height:1.7;color:var(--fg)}.auth-screen__entry{padding:2.4rem 2rem 1.5rem;border:1px solid color-mix(in srgb,var(--brass-400) 40%,transparent);border-top:2px solid var(--brass-400);border-radius:4px;background:linear-gradient(155deg,color-mix(in srgb,var(--pine-800) 91%,transparent),color-mix(in srgb,var(--well) 96%,transparent));box-shadow:0 30px 80px #0006,inset 0 0 0 5px color-mix(in srgb,var(--brass-400) 2%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.auth-screen__crest{width:45px;height:52px;color:var(--title-eyebrow);margin:0 auto 1.2rem}.auth-screen__crest svg{width:100%;height:100%}.auth-screen__entry h2{font:400 1.7rem/1.2 Georgia,serif;margin:.7rem 0}.auth-screen__entry-copy{color:var(--iron-300);font-size:.76rem;line-height:1.5;margin-bottom:1.7rem}.auth-screen--cinematic .auth-screen__form{max-width:none;gap:1rem}.auth-screen--cinematic .auth-screen__field{color:var(--sage-300);font-size:.72rem;gap:.5rem}.auth-screen--cinematic .auth-screen__field input{background:color-mix(in srgb,var(--well) 53%,transparent);border:1px solid color-mix(in srgb,var(--parchment-700) 33%,transparent);border-radius:3px;min-height:48px;color:var(--fg)}.auth-screen--cinematic input:focus-visible{outline:2px solid var(--brass-400);outline-offset:2px}.auth-screen--cinematic .auth-screen__submit{background:linear-gradient(180deg,var(--brass-300),var(--brass-600));border:1px solid var(--brass-100);border-radius:3px;color:var(--pine-800);min-height:48px;box-shadow:0 4px 16px #00000045;letter-spacing:.04em}.auth-screen--cinematic .auth-screen__submit:hover:not(:disabled){filter:brightness(1.1)}.auth-screen--cinematic .auth-screen__submit:disabled{opacity:.6;cursor:not-allowed;filter:none}.auth-screen--cinematic .auth-screen__submit:focus-visible,.auth-screen--cinematic .auth-screen__toggle:focus-visible{outline:2px solid var(--brass-400);outline-offset:3px}.auth-screen--cinematic .auth-screen__toggle{color:var(--parchment-500);font-size:.73rem;margin-top:1rem;text-underline-offset:4px}.auth-screen__principles{position:absolute;left:0;right:0;bottom:2rem;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:1.5rem;font:500 .58rem/1.6 system-ui,sans-serif;letter-spacing:.15em;color:var(--sage-300);padding:0 1rem}.auth-screen__principles i{color:var(--title-eyebrow);font-style:normal;font-size:.45rem}@media(max-width:760px){.auth-screen.auth-screen--cinematic{grid-template-columns:minmax(0,1fr);gap:1.5rem;padding:2.5rem 1.1rem 1.5rem;align-content:start}.auth-screen__art{object-position:32% top}.auth-screen__veil{background:linear-gradient(180deg,color-mix(in srgb,var(--well) 13%,transparent),color-mix(in srgb,var(--well) 66%,transparent) 35%,color-mix(in srgb,var(--well) 96%,transparent) 75%)}.auth-screen__world{text-align:center;padding:0}.auth-screen--cinematic .auth-screen__title{font-size:3.5rem;margin:.4rem 0 .8rem}.auth-screen--cinematic .auth-screen__tagline{font-size:1.4rem;margin:0}.auth-screen__beta{margin:.9rem 0 0;font-size:.74rem}.auth-screen__promise{display:none}.auth-screen__entry{width:min(100%,390px);justify-self:center;padding:1.5rem}.auth-screen__crest{width:32px;height:38px;margin-bottom:.8rem}.auth-screen__entry h2{font-size:1.45rem}.auth-screen__principles{position:static;gap:.7rem;font-size:.49rem;letter-spacing:.06em}}.auth-screen__updates{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem;padding-top:1rem;border-top:1px solid color-mix(in srgb,var(--brass-400) 20%,transparent)}.auth-screen__updates button{flex:1;display:flex;align-items:center;gap:.5rem;min-height:44px;padding:.45rem .7rem;border:1px solid color-mix(in srgb,var(--brass-400) 33%,transparent);border-radius:6px;background:color-mix(in srgb,var(--well) 67%,transparent);color:var(--parchment-300);font:600 .78rem system-ui,sans-serif;text-align:left;cursor:pointer}.auth-screen__updates .auth-screen__guide{flex-basis:100%;border-color:color-mix(in srgb,var(--brass-400) 60%,transparent)}.auth-screen__updates button:hover{border-color:var(--brass-400)}.auth-screen__updates button:focus-visible{outline:2px solid var(--brass-400);outline-offset:2px}.auth-screen__updates button>span{display:grid;min-width:0}.auth-screen__updates small{overflow:hidden;color:var(--parchment-500);font-weight:400;font-size:.68rem;text-overflow:ellipsis;white-space:nowrap}.auth-screen__notice{margin:0;color:var(--parchment-400);font-size:.8rem;line-height:1.5}.auth-screen__links{display:flex;flex-direction:column;align-items:center;gap:.25rem;margin-top:1rem}.auth-screen--cinematic .auth-screen__links .auth-screen__toggle{margin-top:0}.auth-screen__code-actions{display:flex;justify-content:center;gap:1.5rem}.auth-screen__code-actions .auth-screen__toggle{min-height:44px}.auth-screen__consent{margin:0;color:var(--iron-300);font-size:.72rem;line-height:1.5}.auth-screen__consent a,.auth-screen__legal a{color:var(--parchment-400);text-underline-offset:3px}.auth-screen__legal{display:flex;justify-content:center;gap:1.5rem;margin-top:.5rem}.auth-screen__legal a{display:inline-flex;align-items:center;min-height:44px;font-size:.72rem}.auth-screen__consent a:focus-visible,.auth-screen__legal a:focus-visible{outline:2px solid var(--brass-400);outline-offset:2px}.ability-tag{display:inline-flex;align-items:center;gap:.35rem;padding:.15rem .55rem .15rem .4rem;border:1px solid currentColor;border-radius:999px;font:600 .68rem/1.3 var(--font-ui, system-ui);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}.ability-tag svg{flex:none}.ability-tag__detail{font-weight:500;letter-spacing:.04em;text-transform:none;opacity:.85}.ability-tag--passive{color:var(--ability-passive);background:var(--ability-passive-bg)}.ability-tag--active{color:var(--ability-active);background:var(--ability-active-bg)}.ability-card{display:grid;gap:.5rem;padding:.9rem 1rem;border:1px solid color-mix(in srgb,var(--parchment-100) 8%,transparent);border-left:3px solid var(--ability-colour);border-radius:6px;background:linear-gradient(90deg,var(--ability-bg),transparent 70%),var(--page)}.ability-card--passive{--ability-colour: var(--ability-passive);--ability-bg: var(--ability-passive-bg)}.ability-card--active{--ability-colour: var(--ability-active);--ability-bg: var(--ability-active-bg)}.ability-card>.ability-tag{justify-self:start}.ability-card p{margin:0;color:var(--fg);font-size:.9rem;line-height:1.55;overflow-wrap:anywhere}.battle-replay{gap:1rem}.battle-replay__result{position:relative;overflow:hidden;text-align:center;padding:2rem 1rem 1.4rem;border:1px solid var(--oak-400);border-radius:.4rem;background:radial-gradient(ellipse at 50% 0,color-mix(in srgb,var(--oak-400) 27%,transparent),transparent 70%),linear-gradient(125deg,var(--pine-700),var(--pine-900))}.battle-replay__result--loss{border-color:var(--oak-500);background:radial-gradient(ellipse at 50% 0,color-mix(in srgb,var(--crimson-900) 27%,transparent),transparent 70%),var(--page)}.battle-replay__eyebrow{font-size:.6rem;letter-spacing:.24em;color:var(--parchment-500)}.battle-replay__outcome{margin:.6rem 0;font-family:Georgia,serif;font-size:clamp(2.5rem,7vw,4rem);font-weight:400;letter-spacing:.03em}.battle-replay__outcome--win{color:var(--brass-200)}.battle-replay__outcome--loss{color:var(--crimson-300)}.battle-replay__meta{color:var(--text-description)}.battle-replay__banners{justify-content:center;margin-top:1rem}.battle-replay__rewards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0;gap:.5rem}.battle-replay__rewards>div{padding:.8rem .4rem;text-align:center;background:var(--pine-800);border:1px solid var(--pine-600);border-radius:.3rem}.battle-replay__rewards dt{color:var(--text-description);font-size:.65rem;letter-spacing:.09em;text-transform:uppercase}.battle-replay__rewards dd{margin:.4rem 0 0;font-family:Georgia,serif;font-size:clamp(1rem,3vw,1.5rem);color:var(--parchment-400);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.battle-replay__survivors{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.battle-replay__survivors-side{padding:.6rem .7rem;background:var(--pine-800);border:1px solid var(--pine-600);border-radius:.3rem}.battle-replay__survivors-title{margin:0 0 .35rem;color:var(--text-description);font-size:.65rem;letter-spacing:.09em;text-transform:uppercase}.battle-replay__survivors-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.25rem}.battle-replay__survivor{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.1rem .5rem;font-size:.8rem}.battle-replay__survivor-status{color:var(--text-description)}.battle-replay__survivor-detail{flex-basis:100%;color:var(--muted);font-size:.7rem}.battle-replay__log-title{margin:.4rem 0 -.5rem;color:var(--parchment-500);font:400 1.2rem Georgia,serif}.battle-replay__log{border-radius:.3rem;border-color:var(--pine-600);background:var(--page)}.battle-replay__log:focus-visible{outline:2px solid var(--brass-300);outline-offset:3px}.battle-replay .battle-card{border-radius:.25rem;background:linear-gradient(var(--page-raised),var(--page))}.battle-replay .battle-board__header{gap:.75rem;flex-wrap:wrap}@media(max-width:420px){.battle-replay__actions{flex-wrap:wrap}.battle-replay__actions .game-button--primary{flex-basis:100%}}.battle-chronicle__heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem}.battle-chronicle__heading .battle-replay__log-title{margin:0}.battle-chronicle__hint{margin:.4rem 0 .7rem;color:var(--text-quiet);font-size:.7rem;line-height:1.5}.battle-chronicle{--chronicle-yours: var(--amber);--chronicle-enemy: color-mix(in srgb, var(--err) 80%, var(--fg));--chronicle-yours-bg: color-mix(in srgb, var(--amber) 9%, transparent);--chronicle-enemy-bg: color-mix(in srgb, var(--err) 10%, transparent)}.battle-chronicle .battle-replay__log{overscroll-behavior:contain;scroll-behavior:auto;overflow-anchor:none;gap:var(--space-3);padding-top:0}.battle-chronicle__round{display:grid;gap:var(--space-1)}.battle-chronicle__round-title{position:sticky;top:0;z-index:1;display:flex;align-items:center;gap:var(--space-2);margin:0 calc(-1 * var(--space-3));padding:var(--space-2) var(--space-3);background:var(--page);color:var(--title-eyebrow);font:600 var(--text-label) / 1.3 var(--font-ui);letter-spacing:.12em;text-transform:uppercase}.battle-chronicle__round-title:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,var(--oak-400),transparent)}.battle-chronicle__entries{display:grid;gap:var(--space-1);margin:0;padding:0;list-style:none}.battle-chronicle__entry{--side: var(--chronicle-yours);--side-bg: var(--chronicle-yours-bg);display:grid;grid-template-columns:32px minmax(0,1fr);align-items:start;gap:var(--space-2);padding:var(--space-1) var(--space-2);border-left:3px solid var(--side);border-radius:0 var(--radius-control) var(--radius-control) 0;background:linear-gradient(90deg,var(--side-bg),transparent 65%);transition:background-color var(--motion-normal) var(--motion-ease)}.battle-chronicle__entry--enemy{--side: var(--chronicle-enemy);--side-bg: var(--chronicle-enemy-bg)}.battle-chronicle__entry[data-current=true]{background-color:color-mix(in srgb,var(--brass-400) 19%,transparent);box-shadow:inset 0 0 0 1px var(--brass-400)}.battle-chronicle__chip{display:block;width:32px;height:32px;border-radius:6px;box-shadow:0 0 0 2px var(--side);overflow:hidden}.battle-chronicle__chip svg{display:block}.battle-chronicle__body{display:grid;justify-items:start;gap:var(--space-1);min-width:0;padding-top:.35rem}.battle-chronicle__entry--cast .battle-chronicle__body{padding-top:0}.battle-chronicle__text,.battle-chronicle__ability{margin:0;font-size:var(--text-body);line-height:1.45;overflow-wrap:anywhere}.battle-chronicle__text{color:var(--fg)}.battle-chronicle__hero{font-weight:600}.battle-chronicle__hero--yours{color:var(--chronicle-yours)}.battle-chronicle__hero--enemy{color:var(--chronicle-enemy)}.battle-chronicle__entry--cast{background:linear-gradient(90deg,var(--ability-active-bg),transparent 80%)}.battle-chronicle__ability{color:var(--text-description);font-size:var(--text-label)}.battle-chronicle__entry--fall{background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--parchment-100) 2%,transparent) 0 6px,transparent 6px 12px)}.battle-chronicle__entry--fall .battle-chronicle__text{font-style:italic}.battle-chronicle__entry--fall .battle-chronicle__chip svg{filter:grayscale(.7) brightness(.8)}.battle-chronicle__empty{margin:var(--space-3) 0 0;color:var(--muted);font-size:var(--text-body)}.battle-replay .battle-board{padding:.85rem;border:1px solid var(--pine-500);border-radius:.35rem;background:linear-gradient(140deg,var(--page-raised),var(--page))}.battle-board__side-title{margin:.6rem 0 .25rem;color:var(--parchment-400);font:400 1.1rem Georgia,serif;text-align:center}.battle-board__side--enemy .battle-board__side-title{color:var(--crimson-300)}.battle-board__row-label{flex-basis:100%;margin:.2rem 0;text-align:center;text-transform:uppercase;letter-spacing:.12em;font-size:.55rem;color:var(--text-quiet)}.battle-card__class{font-size:.6rem;color:var(--sage-300);text-transform:capitalize}.battle-card__fallen{font-size:.65rem;color:var(--crimson-300)}.battle-board__controls{flex-wrap:wrap}.battle-replay__notice{display:grid;justify-items:center;gap:.85rem;margin-top:1rem;padding:2rem 1.25rem;text-align:center;border:1px solid var(--oak-400);border-radius:.35rem;background:radial-gradient(ellipse at top,color-mix(in srgb,var(--brass-700) 17%,transparent),transparent 70%),var(--pine-800)}.battle-replay__notice h2{margin:0;font:400 1.6rem Georgia,serif;color:var(--parchment-300)}.battle-replay__notice p{color:var(--sage-300);font-size:.8rem;line-height:1.6;overflow-wrap:anywhere}.battle-replay__notice .game-button{width:min(100%,280px)}.battle-board__health{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.battle-health__title{margin:0 0 .35rem;color:var(--parchment-400);font:400 .95rem Georgia,serif}.battle-health:last-child .battle-health__title{color:var(--crimson-300)}.battle-health__list{display:grid;gap:.35rem;margin:0;padding:0;list-style:none}.battle-health__hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.1rem .4rem;font-size:.75rem}.battle-health__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.battle-health__hp{font-family:monospace;color:var(--sage-300)}.battle-health__hero--dead{opacity:.55}.battle-health__hero--dead .battle-health__hp{color:var(--crimson-300);font-family:inherit}.battle-health__bar{grid-column:1 / -1;height:4px;border-radius:2px;background:var(--border);overflow:hidden}.battle-health__fill{display:block;height:100%;background:var(--ok);transition:width var(--motion-normal) var(--motion-ease)}.battle-board__controls .game-segments>.game-button{min-width:2.75rem;white-space:nowrap}.battle-board--compact .battle-board__health{max-width:56rem}.battle-chronicle__entry--fatigue{--side: var(--accent);--side-bg: color-mix(in srgb, var(--brass-500) 12%, transparent)}.battle-chronicle__entry--fatigue .battle-chronicle__chip{display:grid;place-items:center;color:var(--accent)}.battle-chronicle__entry--fatigue .battle-chronicle__text{font-weight:600}.formation-preview--illustrated{gap:0;padding:0;overflow:hidden;border:1px solid var(--pine-500);border-radius:.35rem;background:linear-gradient(135deg,var(--page-raised),var(--pine-800))}.formation-preview__heading{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:.9rem 1rem;border-bottom:1px solid color-mix(in srgb,var(--pine-500) 25%,transparent)}.formation-preview--illustrated .formation-preview__title{margin:0;font:400 1.1rem Georgia,serif;text-transform:none;letter-spacing:0;color:var(--parchment-400)}.formation-preview__heading>span{font-size:.7rem;color:var(--sage-300)}.formation-preview--illustrated .formation-preview__row{display:grid;grid-template-columns:5rem minmax(0,1fr);align-items:stretch;padding:.8rem;gap:.6rem}.formation-preview--illustrated .formation-preview__row+.formation-preview__row{border-top:1px solid color-mix(in srgb,var(--pine-500) 15%,transparent)}.formation-preview--illustrated .formation-preview__row-label{width:auto;align-self:center;font-size:.6rem;color:var(--parchment-500);letter-spacing:.06em}.formation-preview--illustrated .formation-preview__chips{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:.45rem;min-width:0}.formation-preview--illustrated .formation-preview__chip{padding:.4rem;gap:.55rem;min-width:0;background:color-mix(in srgb,var(--page) 65%,transparent);border:1px solid color-mix(in srgb,var(--pine-500) 26%,transparent);border-radius:.2rem}.formation-preview__chip .hero-portrait{flex:0 0 52px}.formation-preview__identity{display:grid;gap:.3rem;min-width:0}.formation-preview__identity strong{font:400 .9rem Georgia,serif;color:var(--parchment-200);overflow-wrap:anywhere}.formation-preview__identity small{font-size:.65rem;color:var(--sage-300);text-transform:capitalize}.formation-preview__empty{align-self:center;color:var(--text-quiet);font-size:.7rem;padding:.4rem 0}@media(max-width:420px){.formation-preview--illustrated .formation-preview__row{grid-template-columns:1fr;gap:.5rem}.formation-preview--illustrated .formation-preview__chips{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}}.formation-preview__identity small.formation-preview__wound{color:var(--err-text);font-weight:600;text-transform:none}.formation-preview__portrait{position:relative;display:inline-flex;flex:0 0 52px}.formation-preview--illustrated .formation-preview__chip--away{border:2px dashed var(--amber);background:var(--ink-900)}.formation-preview--illustrated .formation-preview__chip--wounded{border:2px dashed var(--err);background:var(--board)}.formation-preview__chip--away .hero-portrait{filter:grayscale(1) brightness(.6)}.formation-preview__tag{position:absolute;left:2px;bottom:0;padding:0 .25rem;border-radius:.2rem;background:var(--amber);color:var(--oak-950);font-size:.55rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.formation-preview__identity small.formation-preview__march{color:var(--amber);font-weight:600;text-transform:none}.resource-cost{display:inline-flex;align-items:center;gap:3px;font-weight:600;font-variant-numeric:tabular-nums}.resource-cost svg{flex:none}.resource-cost--gold svg{color:var(--title-gilt)}.resource-cost--food svg{color:var(--title-eyebrow)}.heal-now{display:flex;flex-wrap:wrap;gap:.4rem}.heal-now .heal-now__button{display:inline-flex;align-items:center;gap:.5rem;min-height:44px;border-color:var(--ok);font-variant-numeric:tabular-nums}@media(hover:hover){.heal-now .heal-now__button:hover:not(:disabled){border-color:var(--ok);box-shadow:0 0 0 1px var(--ok)}}.heal-now__label{display:inline-flex;align-items:center;gap:.35rem;font-weight:600}.heal-now__cross{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--ok);color:var(--fg)}.heal-now__cross svg{stroke-width:3}.heal-now__short{flex-basis:100%;margin:0;font-size:var(--text-label);color:var(--muted)}.wounded-squad-note{display:grid;gap:.6rem}.wounded-squad-note__hero{display:grid;gap:.4rem;padding:.6rem .7rem;border:1px solid var(--err);border-radius:var(--radius-control);background:var(--panel-danger)}.wounded-squad-note__hero p{margin:0;font-size:var(--text-body)}.campaign-screen{gap:1rem;max-width:1200px;margin:0 auto;width:100%;box-sizing:border-box;padding-inline:var(--space-6)}.campaign-screen__journey{position:relative;overflow:hidden;min-height:255px;padding:2rem;border:1px solid var(--brass-700);border-radius:.4rem;background:linear-gradient(90deg,color-mix(in srgb,var(--pine-950) 93%,transparent),color-mix(in srgb,var(--pine-950) 59%,transparent) 55%,color-mix(in srgb,var(--pine-950) 14%,transparent)),url(/assets/art/stronghold-dusk.webp) center 42% / cover;box-shadow:0 14px 40px #0004}.campaign-screen__eyebrow,.campaign-screen__briefing>span{font-size:.62rem;letter-spacing:.2em;color:var(--brass-400)}.campaign-screen__journey h1{margin:.7rem 0;max-width:16ch;font:400 clamp(2rem,5vw,3.4rem)/1.06 Georgia,serif;color:var(--parchment-200)}.campaign-screen__journey p{margin:0 0 1.5rem;max-width:32ch;color:var(--sage-300);font-size:.8rem;line-height:1.6}.game-button.campaign-screen__continue{gap:1.5rem}.campaign-screen__supplies{grid-template-columns:repeat(2,minmax(0,1fr))}.campaign-screen__supply{display:grid;margin:0}.campaign-screen__supplies>.game-ledger__cell:last-child{text-align:right}.campaign-screen__progress{height:4px;overflow:hidden;background:color-mix(in srgb,var(--oak-950) 70%,transparent);box-shadow:inset 0 0 0 1px var(--iron-700);border-radius:2px}.campaign-screen__progress>span{display:block;height:100%;background:linear-gradient(90deg,var(--brass-700),var(--brass-300))}.campaign-screen__chapters{display:grid;gap:1rem}.campaign-stage__number{font:400 1.3rem Georgia,serif}.campaign-stage__caption{font-size:.54rem;letter-spacing:.02em}.campaign-stage__boss-label{font-size:.48rem;letter-spacing:.09em;color:var(--brass-400)}.campaign-screen button:focus-visible{outline:2px solid var(--brass-200);outline-offset:3px}.campaign-screen__briefing{padding:1.5rem}.campaign-screen__briefing h2{font:400 1.8rem Georgia,serif;margin:.7rem 0;color:var(--parchment-200)}.campaign-screen__briefing p{font-size:.8rem;line-height:1.6;color:var(--sage-300);margin:0}@media(max-width:720px){.campaign-screen__journey{padding:1.5rem}}@media(max-width:650px){.campaign-screen{padding-inline:var(--space-3)}}.campaign-brief{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.9rem 1.5rem;padding:1.1rem 1.25rem}.campaign-brief__text h2{margin:.35rem 0 .45rem;font:400 1.5rem Georgia,serif;color:var(--parchment-200)}.campaign-brief__lesson{margin:0 0 .35rem;color:var(--brass-100);font-size:.82rem;line-height:1.5}.campaign-brief__edge{margin:0 0 .35rem;color:var(--amber);font-size:.78rem;line-height:1.5}.campaign-brief__rewards{margin:0;color:var(--sage-300);font-size:.75rem;line-height:1.5}.campaign-brief__enemy{display:flex;flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;grid-column:1 / -1}.campaign-brief__enemy li{display:flex;align-items:center;gap:.45rem;padding:.25rem .6rem .25rem .25rem;border:1px solid var(--oak-500);border-radius:999px;background:color-mix(in srgb,var(--oak-950) 70%,transparent);font-size:.75rem;color:var(--parchment-400)}.campaign-brief__enemy small{color:var(--muted)}.campaign-brief>.game-button{grid-column:2;grid-row:1;align-self:start}@media(max-width:650px){.campaign-brief{grid-template-columns:1fr}.campaign-brief>.game-button{grid-column:1;grid-row:auto;justify-self:stretch}}.campaign-chapter{padding:1rem 1.1rem 1.2rem}.campaign-chapter__header{display:flex;align-items:center;gap:.75rem}.campaign-chapter__title{flex:1;min-width:0}.campaign-chapter__seal.game-seal{width:2.75rem;height:2.75rem;font-size:.95rem}.campaign-chapter__eyebrow{font-size:.6rem;letter-spacing:.2em;color:var(--brass-400)}.campaign-chapter__header h2{margin:.25rem 0 0;font:400 1.15rem Georgia,serif;color:var(--parchment-400)}.campaign-chapter__count{font-size:.68rem;color:var(--muted)}.campaign-chapter__lesson{margin:.5rem 0 0;font-size:.75rem;color:var(--brass-300)}.campaign-path{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:1.25rem .6rem;margin:1.1rem 0 0;padding:.4rem 0 .9rem;list-style:none}.campaign-path:before{content:"";position:absolute;left:1.5rem;right:1.5rem;top:50%;height:3px;border-radius:2px;background:repeating-linear-gradient(90deg,var(--oak-400) 0 10px,transparent 10px 16px);opacity:.7}.campaign-path__step{position:relative;flex:1 1 0;min-width:48px;display:flex;justify-content:center}.campaign-path__step:nth-child(odd){transform:translateY(-8px)}.campaign-path__step:nth-child(2n){transform:translateY(8px)}.campaign-path .campaign-stage{position:relative;display:grid;place-items:center;align-content:center;gap:.1rem;width:56px;height:56px;min-width:48px;min-height:48px;padding:0;border:2px solid var(--iron-500);border-radius:50%;background:var(--oak-900);color:var(--parchment-400);box-shadow:0 3px 10px #0006;cursor:pointer}.campaign-path .campaign-stage__number{font:400 1.05rem/1 Georgia,serif}.campaign-path .campaign-stage__caption{font-size:.5rem;letter-spacing:.02em}.campaign-path .campaign-stage--cleared{border-color:var(--brass-800);background:radial-gradient(circle at 38% 32%,var(--brass-200),var(--brass-600) 58%,var(--brass-800));color:var(--ink-900)}.campaign-path .campaign-stage--locked{color:var(--iron-300);background:var(--oak-950);border-color:var(--iron-700);box-shadow:none}.campaign-path .campaign-stage--next{border-color:var(--brass-300);color:var(--parchment-200);background:radial-gradient(circle at 35% 30%,var(--oak-500),var(--oak-950));box-shadow:0 0 0 4px color-mix(in srgb,var(--brass-300) 18%,transparent),0 0 18px color-mix(in srgb,var(--brass-300) 33%,transparent)}.campaign-path .campaign-stage--boss{width:68px;height:68px;border-width:3px;border-radius:12px;transform:rotate(45deg)}.campaign-path .campaign-stage--boss>*{transform:rotate(-45deg)}.campaign-path .campaign-stage--boss .campaign-stage__boss-label{position:absolute;bottom:-6px;right:-6px;padding:1px 4px;border-radius:3px;background:var(--crimson-700);color:var(--brass-100);font-size:.48rem;letter-spacing:.08em}.campaign-path .campaign-stage:hover{border-color:var(--brass-200)}@media(prefers-reduced-motion:no-preference){.campaign-path .campaign-stage--next{animation:campaign-next 2.4s ease-in-out infinite}}@keyframes campaign-next{50%{box-shadow:0 0 0 6px color-mix(in srgb,var(--brass-300) 11%,transparent),0 0 26px color-mix(in srgb,var(--brass-300) 40%,transparent)}}@media(max-width:720px){.campaign-path__step{flex:0 0 calc(20% - .5rem)}.campaign-path:before{display:none}}.fight-setup{display:flex;flex-direction:column;gap:.9rem;min-width:0;padding-bottom:5rem}.fight-setup__main,.fight-setup__side{display:contents}.fight-setup__banner{order:1}.fight-setup__enemy{order:2}.fight-setup__picker{order:3}.fight-blocker{order:4}.fight-setup__fightbar{order:5}.fight-setup__formation{order:6}.fight-setup__adjust{order:7}@media(min-width:900px){.fight-setup{display:grid;grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:1.25rem}.fight-setup__main,.fight-setup__side{display:flex;flex-direction:column;gap:.9rem;min-width:0}.fight-setup__side{position:sticky;top:var(--space-4)}}.fight-setup__banner{padding:1rem 1.1rem}.fight-setup__eyebrow{font-size:.62rem;letter-spacing:.2em;color:var(--brass-400)}.fight-setup__banner h2{margin:.3rem 0 .6rem;font:400 1.7rem Georgia,serif;color:var(--parchment-200)}.fight-setup__chips{display:flex;flex-wrap:wrap;gap:.4rem}.fight-setup__chip{margin:0;padding:.3rem .65rem;border:1px solid var(--oak-500);border-radius:999px;background:color-mix(in srgb,var(--oak-950) 70%,transparent);font-size:.78rem;line-height:1.4;color:var(--parchment-400)}.fight-setup__chip--edge{border-color:var(--amber);color:var(--amber);font-weight:600}.fight-setup__enemy{display:flex;flex-direction:column;gap:.6rem}.fight-setup__counter{display:flex;align-items:center;gap:.7rem;margin:0;padding:.7rem .8rem;border:1px solid var(--brass-400);border-radius:.5rem;background:linear-gradient(90deg,var(--oak-800),var(--oak-950))}.fight-setup__counter>span:last-child{display:grid;gap:.2rem}.fight-setup__counter strong{font-size:.9rem;color:var(--brass-100)}.fight-setup__counter small{font-size:.72rem;color:var(--parchment-400)}.fight-setup__counter-icon{flex:none;display:grid;place-items:center;width:2.1rem;height:2.1rem;border:2px solid var(--brass-300);border-radius:50%;background:var(--oak-600);color:var(--brass-100)}.fight-setup__picker h3{margin:0 0 .6rem;font:400 1.1rem Georgia,serif;color:var(--parchment-300)}.fight-setup__squads{display:flex;gap:.6rem;overflow-x:auto;padding:.2rem .1rem .4rem;scroll-snap-type:x proximity}@media(min-width:900px){.fight-setup__squads{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));overflow:visible}}.fight-squad{flex:0 0 min(15rem,78vw);scroll-snap-align:start;display:flex;flex-direction:column;gap:.45rem;min-height:44px;padding:.7rem;color:var(--parchment-200);text-align:left;font:inherit;cursor:pointer}.fight-squad:hover{border-color:var(--oak-400)}.fight-squad.is-selected{border-color:var(--brass-600);box-shadow:inset 0 0 0 1px var(--brass-300),0 0 14px color-mix(in srgb,var(--brass-300) 35%,transparent),0 6px 18px #0006}.fight-squad:focus-visible{outline:2px solid var(--control-focus, var(--brass-200));outline-offset:2px}.fight-squad__top{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.fight-squad__top strong{font:400 1rem Georgia,serif;color:var(--parchment-200);overflow-wrap:anywhere}.fight-squad__badge{flex:none;padding:.15rem .5rem;border:1px solid;border-radius:.35rem;font-size:.72rem;font-weight:700}.fight-squad__badge--ready{color:var(--ok);background:color-mix(in srgb,var(--ok) 15%,var(--oak-950))}.fight-squad__badge--marching{color:var(--amber);background:color-mix(in srgb,var(--amber) 15%,var(--oak-950))}.fight-squad__badge--wounded{color:var(--err-text);background:color-mix(in srgb,var(--err) 15%,var(--oak-950))}.fight-squad__badge--empty{color:var(--muted);background:var(--oak-950)}.fight-squad__faces{display:flex;gap:.25rem}.fight-squad__face{display:inline-flex;border-radius:.3rem}.fight-squad__face.is-marching{outline:2px dashed var(--amber);outline-offset:1px}.fight-squad__face.is-marching .hero-portrait{filter:grayscale(1) brightness(.6)}.fight-squad__face.is-wounded{outline:2px dashed var(--err);outline-offset:1px}.fight-squad__counters{font-size:.75rem;color:var(--parchment-300)}.fight-squad__why{font-size:.75rem;color:var(--sage-300);font-variant-numeric:tabular-nums}.fight-squad--marching .fight-squad__why{color:var(--amber)}.fight-squad--wounded .fight-squad__why{color:var(--crimson-300)}.fight-squad--ready .fight-squad__why{color:var(--moss-300)}.fight-blocker{display:flex;flex-direction:column;gap:.5rem;padding:.85rem .9rem;border:2px solid var(--iron-500);border-radius:.6rem;background:var(--oak-900)}.fight-blocker--marching{border-color:var(--amber);background:linear-gradient(135deg,color-mix(in srgb,var(--amber) 22%,var(--oak-950)),var(--ink-900));box-shadow:0 0 0 4px color-mix(in srgb,var(--amber) 13%,transparent)}.fight-blocker--wounded{border-color:var(--err);background:linear-gradient(135deg,color-mix(in srgb,var(--err) 22%,var(--oak-950)),var(--oak-700));box-shadow:0 0 0 4px color-mix(in srgb,var(--err) 13%,transparent)}.fight-blocker h3{margin:0;font-size:1rem;font-weight:700;color:var(--parchment-200)}.fight-blocker p{margin:0;font-size:.85rem;line-height:1.5;color:var(--parchment-300)}.fight-blocker--marching p strong{color:var(--amber);font-variant-numeric:tabular-nums}.fight-blocker__actions{display:flex;flex-wrap:wrap;gap:.5rem}.fight-blocker__actions>.game-button{flex:1 1 11rem}.fight-setup__fightbar{display:flex;flex-direction:column;gap:.5rem;padding:.85rem .9rem}.fight-setup__stamina{display:flex;justify-content:space-between;align-items:center;gap:.6rem;font-size:.8rem;color:var(--parchment-400)}.fight-setup__stamina strong{color:var(--brass-100);font-variant-numeric:tabular-nums}.fight-setup__pips{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:2px}.fight-setup__pips i{width:5px;height:12px;border-radius:2px;background:var(--oak-950);box-shadow:inset 0 0 0 1px var(--iron-700)}.fight-setup__pips i.is-full{background:var(--brass-300)}.game-button.fight-setup__fight{width:100%;min-height:52px;font-size:1.05rem}.game-button.fight-setup__fight--waiting:disabled{opacity:1;background:var(--oak-800);border-color:var(--oak-500);color:var(--parchment-200);font-variant-numeric:tabular-nums}.fight-setup__rule{margin:0;font-size:.75rem;color:var(--sage-300)}.fight-setup__adjust{align-self:flex-start}.fight-blocker .wounded-squad-note__hero{padding:0;border:0;background:none}.hero-perks{container-type:inline-size;position:relative;padding:var(--space-4) var(--space-4) var(--space-6);border:1px solid color-mix(in srgb,var(--specialization) 35%,transparent);border-top:3px solid var(--specialization);border-radius:10px;background:radial-gradient(ellipse at 50% 0%,color-mix(in srgb,var(--specialization) 16%,transparent),transparent 60%),linear-gradient(180deg,var(--oak-700),var(--oak-900))}.hero-perks__head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2) var(--space-3);margin-bottom:var(--space-1)}.hero-perks__title{display:flex;align-items:center;gap:var(--space-2);margin:0;color:var(--specialization-strong);font:700 .8rem/1 var(--font-ui, system-ui);letter-spacing:.2em;text-transform:uppercase}.hero-perks__count{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid color-mix(in srgb,var(--specialization) 50%,transparent);border-radius:999px;background:var(--specialization-bg);color:var(--specialization-strong);font-size:var(--text-label);font-weight:700}.hero-perks__pips{display:inline-flex;gap:3px}.hero-perks__pips i{width:8px;height:8px;border:1.5px solid var(--specialization);border-radius:50%}.hero-perks__pips i.is-on{background:var(--specialization);box-shadow:0 0 6px var(--specialization)}.hero-perks__note{margin:0 0 var(--space-4);color:var(--text-description);font-size:.8rem}.hero-perks__tree{position:relative;display:grid;gap:var(--space-6)}.hero-perks__links{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible;pointer-events:none}.hero-perks__tree>:not(.hero-perks__links){position:relative}.hero-perks__link{fill:none;stroke-width:2}.hero-perks__link--path{stroke:var(--specialization);stroke-width:3.5;filter:drop-shadow(0 0 3px color-mix(in srgb,var(--specialization) 80%,transparent))}.hero-perks__link--ready{stroke:var(--specialization);stroke-dasharray:5 4;opacity:.75}.hero-perks__link--other{stroke:color-mix(in srgb,var(--fg) 16%,transparent)}.hero-perks__link--locked{stroke:color-mix(in srgb,var(--muted) 60%,transparent);stroke-dasharray:2 5}.hero-perks__root{display:grid;justify-items:center;gap:6px}.hero-perks__sigil{display:grid;place-items:center;width:56px;height:56px;border:2px solid var(--parchment-100);border-radius:50%;background:radial-gradient(circle at 35% 30%,var(--specialization-strong),color-mix(in srgb,var(--specialization) 55%,var(--specialization-ink)) 70%);box-shadow:0 0 0 4px color-mix(in srgb,var(--specialization) 18%,transparent),0 0 24px color-mix(in srgb,var(--specialization) 50%,transparent);color:var(--specialization-ink)}.hero-perks__root-label{display:none;color:var(--specialization-strong);font:400 .8rem/1.2 var(--font-display, Georgia, serif);text-align:center}.hero-perks__tier{display:grid;gap:var(--space-3);min-width:0;margin:0;padding:0;border:0}.hero-perks__label{float:left;width:100%;padding:0;display:flex;justify-content:center}.hero-perks__label>span{display:inline-flex;align-items:center;gap:var(--space-2);padding:5px 12px;border:1px solid color-mix(in srgb,var(--parchment-100) 13%,transparent);border-radius:999px;background:var(--surface);color:var(--parchment-300);font-size:var(--text-label);font-weight:700;letter-spacing:.04em;white-space:nowrap}.hero-perks__status{display:inline-flex;align-items:center;gap:5px;color:var(--specialization-strong);font-weight:600}.hero-perks__tier--locked .hero-perks__label>span{color:var(--text-description)}.hero-perks__tier--locked .hero-perks__status{color:var(--text-description)}.hero-perks__tier--open .hero-perks__label>span{border-color:var(--specialization-strong);background:var(--specialization);box-shadow:0 0 18px color-mix(in srgb,var(--specialization) 55%,transparent);color:var(--specialization-ink)}.hero-perks__tier--open .hero-perks__status{color:var(--specialization-ink)}.hero-perks__dot{width:8px;height:8px;border-radius:50%;background:var(--specialization-ink)}.hero-perks__lock{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.hero-perks__options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.hero-perks__option{display:grid;grid-template-columns:auto minmax(0,1fr);align-content:start;column-gap:10px;row-gap:2px;min-height:44px;padding:10px 10px 11px;border:1px solid color-mix(in srgb,var(--parchment-100) 12%,transparent);border-radius:10px;background:var(--bg);color:var(--fg);font:400 .85rem/1.45 var(--font-ui, system-ui);text-align:left;cursor:pointer;transition:border-color var(--motion-fast, .12s),background var(--motion-fast, .12s),opacity var(--motion-fast, .12s)}.hero-perks__glyph{display:grid;place-items:center;width:34px;height:34px;border:1.5px solid var(--iron-500);border-radius:50%;background:var(--surface);color:var(--iron-300)}.hero-perks__kind{align-self:center;color:var(--muted);font-size:.66rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.hero-perks__option strong,.hero-perks__desc{grid-column:1 / -1}.hero-perks__option strong{margin-top:6px;color:var(--parchment-200);font-size:.92rem;line-height:1.25}.hero-perks__desc{color:var(--sage-300);font-size:.8rem;line-height:1.4}.hero-perks__chosen,.hero-perks__tap{grid-column:1 / -1;justify-self:start;margin-top:var(--space-2)}.hero-perks__chosen{display:inline-flex;align-items:center;gap:4px;padding:2px 9px 2px 7px;border-radius:999px;background:var(--specialization);color:var(--specialization-ink);font-size:.66rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.hero-perks__chosen svg{stroke-width:3}.hero-perks__tap{color:var(--specialization-strong);font-size:.72rem;font-weight:600}.hero-perks__tap--locked{color:var(--text-description)}.hero-perks__option--chosen{padding:9px 9px 10px;border:2px solid var(--specialization);background:linear-gradient(145deg,color-mix(in srgb,var(--specialization) 30%,transparent),color-mix(in srgb,var(--specialization) 7%,transparent) 70%),var(--board);box-shadow:0 0 0 1px color-mix(in srgb,var(--specialization) 30%,transparent),0 0 22px color-mix(in srgb,var(--specialization) 35%,transparent)}.hero-perks__option--chosen .hero-perks__glyph{border-color:var(--specialization-strong);background:var(--specialization);box-shadow:0 0 12px color-mix(in srgb,var(--specialization) 70%,transparent);color:var(--specialization-ink)}.hero-perks__option--chosen .hero-perks__kind,.hero-perks__option--open .hero-perks__kind{color:var(--specialization-strong)}.hero-perks__option--open{border-color:color-mix(in srgb,var(--specialization) 60%,transparent);background:linear-gradient(145deg,color-mix(in srgb,var(--specialization) 12%,transparent),transparent 70%),var(--bg)}.hero-perks__option--open .hero-perks__glyph{border-color:var(--specialization);color:var(--specialization-strong)}.hero-perks__option--other{opacity:.78}.hero-perks__option--locked{cursor:default}.hero-perks__option--locked:not(.hero-perks__option--chosen){opacity:.5}.hero-perks__option--locked .hero-perks__glyph{border-style:dashed;border-color:var(--iron-500);background:transparent;color:var(--muted)}.hero-perks__option:hover:not(:disabled,[aria-pressed=true]){border-color:var(--specialization-strong);opacity:1}.hero-perks__option:focus-visible{outline:2px solid var(--control-focus);outline-offset:2px}.hero-perks__option:disabled{cursor:default}@container (min-width: 620px){.hero-perks__tree{grid-template-columns:64px repeat(3,minmax(0,1fr));column-gap:44px}.hero-perks__root{align-self:center;padding-top:42px}.hero-perks__root-label{display:block}.hero-perks__tier{align-content:start}.hero-perks__options{grid-template-columns:1fr;gap:var(--space-4)}}@media(prefers-reduced-motion:reduce){.hero-perks__option{transition:none}}.hero-dial{position:absolute;display:grid;place-items:center;pointer-events:none}.hero-dial svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;transform:rotate(-90deg)}.hero-dial__track{fill:color-mix(in srgb,var(--oak-950) 80%,transparent);stroke:color-mix(in srgb,var(--fg) 12%,transparent);stroke-width:5}.hero-dial__ring{fill:none;stroke-width:5;stroke-linecap:round;transition:stroke-dashoffset 1s linear}.hero-dial__sweep{fill:none;stroke-width:3;stroke-linecap:round;animation:hero-dial-sweep 60s linear infinite}@keyframes hero-dial-sweep{0%{stroke-dashoffset:0}to{stroke-dashoffset:125.66}}.hero-dial--wounded{top:50%;left:50%;width:46%;aspect-ratio:1;transform:translate(-50%,-50%)}.hero-dial--wounded .hero-dial__ring{stroke:var(--crimson-500);filter:drop-shadow(0 0 3px color-mix(in srgb,var(--crimson-500) 60%,transparent))}.hero-dial--wounded .hero-dial__sweep{stroke:var(--crimson-300)}.hero-dial--training{right:6%;bottom:6%;width:34%;aspect-ratio:1}.hero-dial--training .hero-dial__ring{stroke:var(--title-gilt)}.hero-dial--training .hero-dial__sweep{stroke:var(--brass-100)}.hero-dial--training .hero-dial__text small{display:none}.hero-dial__text{position:relative;display:grid;justify-items:center;line-height:1;text-align:center}.hero-dial__text strong{color:var(--fg);font:700 clamp(.72rem,3.2cqi,1.05rem) var(--font-ui, system-ui);font-variant-numeric:tabular-nums}.hero-dial__text small{margin-top:.15rem;color:var(--parchment-200);font-size:.55rem;letter-spacing:.06em;text-transform:uppercase}@media(prefers-reduced-motion:reduce){.hero-dial__ring{transition:none}.hero-dial__sweep{animation:none;display:none}}.hero-detail{--detail-class: var(--class-infantry);display:flex;flex-direction:column;gap:var(--space-4);width:100%;max-width:760px;margin:0 auto}.hero-detail--archer{--detail-class: var(--class-archer)}.hero-detail--cavalry{--detail-class: var(--class-cavalry)}.hero-detail__banner{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:var(--space-6);padding:68px var(--space-6) var(--space-6);border:2px solid var(--iron-700);border-top:3px solid var(--detail-class);border-radius:6px;background:radial-gradient(ellipse at 20% 40%,color-mix(in srgb,var(--oak-500) 35%,transparent),transparent 60%),linear-gradient(180deg,color-mix(in srgb,var(--oak-900) 78%,transparent),color-mix(in srgb,var(--oak-950) 92%,transparent)),var(--tex-planks-dark, none) center / 420px auto,var(--oak-700);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--brass-300) 30%,transparent),0 10px 26px #0005}.hero-detail__back{position:absolute;top:8px;left:8px}.hero-detail__art.hero-plate__art{width:200px;max-width:200px;margin:0}.hero-detail__art>.hero-portrait{width:100%;height:auto}.hero-detail__identity{display:grid;gap:.35rem;min-width:0}.hero-detail__class{color:var(--detail-class);font:600 .72rem var(--font-ui, system-ui);letter-spacing:.18em;text-transform:uppercase}.hero-detail__name{margin:0;color:var(--parchment-200);font-family:var(--font-display, Georgia);font-size:2.7rem;font-weight:400;line-height:1.05;overflow-wrap:anywhere}.hero-detail__level{display:flex;align-items:center;gap:.3rem;margin:0;color:var(--parchment-400);font-size:.9rem}.hero-detail__xp{display:block;height:5px;margin-top:.4rem;overflow:hidden;border-radius:999px;background:color-mix(in srgb,var(--parchment-100) 8%,transparent)}.hero-detail__xp>span{display:block;height:100%;background:linear-gradient(90deg,var(--brass-700),var(--parchment-300))}.hero-detail__xp-caption{color:var(--parchment-500);font-size:.75rem;font-variant-numeric:tabular-nums}.hero-detail__heading{margin:0 0 var(--space-2);color:var(--parchment-400);font:600 .75rem var(--font-ui, system-ui);letter-spacing:.12em;text-transform:uppercase}.hero-detail__heading small{margin-left:.4rem;color:var(--text-description);font-weight:400;letter-spacing:.02em;text-transform:none}.hero-detail__ledger{grid-template-columns:repeat(4,minmax(0,1fr))}.hero-detail__stat-value{display:grid;margin:0}.hero-detail__abilities{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.hero-detail__action{display:flex;flex-direction:column;align-items:center;gap:.6rem}.hero-detail__train.game-button{width:100%;max-width:28rem;min-height:48px}.hero-detail__cap-note{margin:0;max-width:28rem;color:var(--brass-200);font-size:.85rem;text-align:center}.hero-detail__training,.hero-detail__maxed{margin:0;color:var(--brass-200);font-size:.9rem;font-variant-numeric:tabular-nums}@media(max-width:640px){.hero-detail__banner{grid-template-columns:1fr;justify-items:center;gap:var(--space-3);padding:64px var(--space-4) var(--space-4);text-align:center}.hero-detail__art.hero-plate__art{width:min(200px,60vw)}.hero-detail__identity{justify-items:center;width:100%}.hero-detail__xp{width:min(260px,100%)}.hero-detail__name{font-size:2rem}.hero-detail__ledger{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-detail__ledger>.game-ledger__cell:nth-child(odd){border-left:0}.hero-detail__ledger>.game-ledger__cell:nth-child(n+3){border-top:1px solid color-mix(in srgb,var(--ink-700) 35%,transparent)}.hero-detail__abilities{grid-template-columns:1fr}}.roster-squads{display:grid;gap:var(--space-2);margin:var(--space-4) 0 var(--space-2)}.roster-squads__head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3)}.roster-squads__head h2{margin:0;font:600 var(--text-label)/1.4 var(--font-ui);letter-spacing:.16em;text-transform:uppercase;color:var(--title-eyebrow)}.roster-squads__head span{font:400 var(--text-label)/1.4 var(--font-ui);color:var(--muted)}.roster-squads__rail{display:grid;grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));gap:var(--space-2)}@media(min-width:650px){.roster-squads__rail{grid-template-columns:repeat(auto-fill,minmax(15rem,1fr))}}.roster-squad{display:flex;align-items:center;gap:var(--space-3);min-width:0;min-height:var(--control-size);padding:var(--space-3);color:var(--fg);font:400 var(--text-body)/1.3 var(--font-ui);text-align:left;cursor:pointer;transition:border-color var(--motion-fast),transform var(--motion-fast) var(--motion-ease-out)}.roster-squad:focus-visible{outline:2px solid var(--control-focus);outline-offset:3px}.roster-squad:active:not(:disabled){transform:translateY(1px)}@media(hover:hover){.roster-squad.game-board:hover:not(:disabled){border-color:var(--oak-400)}}.roster-squad--open{border:2px dashed color-mix(in srgb,var(--brass-400) 55%,transparent);border-radius:12px;background:color-mix(in srgb,var(--oak-950) 35%,transparent)}@media(hover:hover){.roster-squad--open:hover:not(:disabled){border-color:var(--brass-400)}}.roster-squad:disabled{cursor:progress;opacity:.7}.roster-squad--open .roster-squad__crest{display:grid;flex:none;place-items:center;width:2.25rem;height:2.25rem;border:1px dashed var(--brass-400);border-radius:50%;color:var(--title-gilt);font:400 1.3rem/1 var(--font-ui)}.roster-squad__text{display:grid;gap:2px;flex:1;min-width:0}.roster-squad__name{overflow:hidden;font:400 1.05rem/1.25 var(--font-display);color:var(--fg);text-overflow:ellipsis;white-space:nowrap}.roster-squad__meta{font:400 var(--text-label)/1.35 var(--font-ui);color:var(--muted)}.roster-squad__meta--busy{color:var(--amber)}.roster-squad__faces{display:flex;margin-top:4px}.roster-squad__faces>.hero-portrait{flex:none;margin-right:-6px}.roster-squad__go{display:grid;flex:none;color:var(--title-gilt);transform:scaleX(-1)}@media(max-width:649px){.roster-squad{padding:var(--space-2) var(--space-3);gap:var(--space-2)}.roster-squad__crest{width:2rem;height:2rem}.roster-squad__go{display:none}}.hero-picker__item.hero-picker__item--hero{display:grid;grid-template-columns:64px minmax(0,1fr) auto;align-items:center;gap:.5rem;text-align:left}.hero-picker__item--hero>.hero-portrait{width:64px;height:64px}.hero-picker__item--hero .hero-picker__identity{display:grid;gap:.25rem;min-width:0;overflow-wrap:anywhere}.hero-picker__item--hero .hero-picker__identity small,.hero-picker__item--hero .hero-picker__level,.hero-picker__item--hero .hero-picker__wounded{font-size:.75rem;line-height:1.5}.hero-picker__item--hero .hero-picker__level{margin:0;white-space:nowrap;font-variant-numeric:tabular-nums}.hero-picker__item--hero .hero-picker__wounded{grid-column:2 / -1}.squad-banners{display:grid;gap:var(--space-2)}.squad-banners__rail{display:grid;grid-template-columns:repeat(auto-fill,minmax(6.25rem,1fr));gap:var(--space-2)}@media(min-width:650px){.squad-banners__rail{grid-template-columns:repeat(auto-fill,minmax(12rem,1fr))}}.squad-banner{position:relative;display:flex;flex-direction:column;align-items:center;gap:var(--space-2);min-width:0;min-height:var(--control-size);padding:var(--space-3) var(--space-2) var(--space-3);color:var(--fg);font:400 var(--text-body)/1.3 var(--font-ui);text-align:center;cursor:pointer;transition:border-color var(--motion-fast),box-shadow var(--motion-normal) var(--motion-ease),transform var(--motion-fast) var(--motion-ease-out)}@media(min-width:650px){.squad-banner{flex-direction:row;text-align:left;padding-inline:var(--space-3)}}.squad-banner:focus-visible{outline:2px solid var(--control-focus);outline-offset:3px}.squad-banner:active:not(:disabled){transform:translateY(1px)}@media(hover:hover){.squad-banner.game-board:hover:not(:disabled):not([aria-pressed=true]){border-color:var(--oak-400)}}.squad-banner.game-board[aria-pressed=true]{border-color:var(--brass-600);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--brass-200) 45%,transparent),0 0 0 1px var(--oak-950),0 0 14px color-mix(in srgb,var(--brass-500) 35%,transparent),0 10px 24px #00000073}.squad-banner:not([aria-pressed=true]) .squad-banner__crest.game-seal{filter:saturate(.4)}.squad-banner__crest.game-seal{width:2rem;height:2rem;font-size:.85rem}.squad-banner__text{display:grid;gap:2px;min-width:0;width:100%}.squad-banner__name{overflow:hidden;font:400 .95rem/1.25 var(--font-display);color:var(--fg);text-overflow:ellipsis;white-space:nowrap}.squad-banner[aria-pressed=true] .squad-banner__name{color:var(--segment-selected)}.squad-banner__meta{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;color:var(--muted);font-size:var(--text-label)}.squad-banner__meta--busy{color:var(--amber)}.squad-banner--open{border:2px dashed color-mix(in srgb,var(--brass-400) 55%,transparent);border-radius:12px;background:color-mix(in srgb,var(--oak-950) 35%,transparent);color:var(--muted)}@media(hover:hover){.squad-banner--open:hover:not(:disabled){border-color:var(--brass-400)}}.squad-banner--open .squad-banner__crest{display:grid;place-items:center;width:2rem;height:2rem;border:1px dashed var(--brass-400);border-radius:50%;color:var(--title-gilt);font:300 1.3rem/1 var(--font-ui)}.squad-banner--open .squad-banner__name{color:var(--fg)}.squad-banner:disabled{cursor:progress;opacity:.7}.squad-banners__count{color:var(--muted);font-size:var(--text-label);letter-spacing:.04em}.squad-banner--raised{animation:squad-banner-raise var(--motion-slow) var(--motion-ease-out) both}.squad-banner--raised .squad-banner__crest{animation:squad-banner-glow .9s var(--motion-ease-out) both}.squad-banner__sparks{position:absolute;top:calc(var(--space-3) + 1rem);left:50%;width:0;height:0;pointer-events:none}@media(min-width:650px){.squad-banner__sparks{top:50%;left:calc(var(--space-3) + 1rem)}}.squad-banner__sparks>i{position:absolute;top:0;left:0}.squad-banner__sparks>i:before{content:"";position:absolute;top:-3px;left:-2px;width:4px;height:7px;border-radius:2px;background:var(--brass-200);box-shadow:0 0 6px var(--brass-500);opacity:0;animation:squad-banner-spark .75s var(--motion-ease-out) 80ms both}.squad-banner__sparks>i:nth-child(3n+1):before{background:var(--accent);animation-duration:.85s}.squad-banner__sparks>i:nth-child(3n+2):before{background:var(--parchment-100);width:3px;height:3px;animation-duration:.65s}@keyframes squad-banner-raise{0%{opacity:0;transform:translateY(-8px) scaleY(.85);transform-origin:top center}70%{opacity:1;transform:translateY(1px) scaleY(1.02)}to{opacity:1;transform:none}}@keyframes squad-banner-glow{0%{box-shadow:0 0 color-mix(in srgb,var(--brass-500) 0%,transparent)}35%{box-shadow:0 0 0 6px color-mix(in srgb,var(--brass-500) 33%,transparent)}to{box-shadow:0 0 0 14px color-mix(in srgb,var(--brass-500) 0%,transparent)}}@keyframes squad-banner-spark{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-44px) scale(.4)}}@media(prefers-reduced-motion:reduce){.squad-banner,.squad-banner__crest{transition:none}.squad-banner--raised,.squad-banner--raised .squad-banner__crest{animation:none}}.squad-insight{display:grid;gap:1rem;margin-top:1rem;padding:1rem 1.1rem 1.1rem}.squad-insight__eyebrow{font-size:.6rem;letter-spacing:.2em;color:var(--title-eyebrow)}.squad-insight__header h3{margin:.3rem 0 0;font:400 1.2rem Georgia,serif;color:var(--title-gilt)}.squad-insight__block h4{margin:0 0 .5rem;font:600 .72rem var(--font-ui, system-ui);letter-spacing:.08em;text-transform:uppercase;color:var(--sage-300)}.squad-insight__turns,.squad-insight__passives,.squad-insight__plain,.squad-insight__matchups{display:grid;gap:.45rem;margin:0;padding:0;list-style:none}.squad-insight__turns li{display:grid;grid-template-columns:1.4rem 36px minmax(0,1fr);align-items:center;gap:.6rem}.squad-insight__order{display:grid;place-items:center;width:1.4rem;height:1.4rem;border-radius:50%;background:var(--oak-600);color:var(--brass-100);font:600 .72rem var(--font-ui, system-ui)}.squad-insight__turn-text{display:grid;gap:.1rem;font-size:.78rem;color:var(--sage-300);line-height:1.4}.squad-insight__turn-text strong{color:var(--parchment-200);font-weight:600}.squad-insight__turn-text small{margin-left:.3rem;color:var(--sage-500);font-weight:500}.squad-insight__passives li{display:grid;grid-template-columns:4.6rem minmax(0,1fr);align-items:baseline;gap:.6rem;font-size:.78rem;line-height:1.45;color:var(--sage-300)}.squad-insight__passives strong{color:var(--parchment-200)}.squad-insight__passives em{font-style:normal;color:var(--sage-500)}.squad-insight__state{justify-self:start;padding:.1rem .45rem;border:1px solid var(--pine-500);border-radius:999px;font-size:.66rem;font-weight:600;white-space:nowrap}.squad-insight__passive--active .squad-insight__state{border-color:var(--moss-500);color:var(--moss-300)}.squad-insight__passive--inactive .squad-insight__state{border-color:var(--crimson-600);color:var(--crimson-300)}.squad-insight__passive--in-battle .squad-insight__state{color:var(--parchment-300)}.squad-insight__plain li{font-size:.78rem;color:var(--fg)}.squad-insight__matchups{grid-template-columns:repeat(3,minmax(0,1fr))}.squad-insight__matchups li{display:grid;gap:.15rem;padding:.5rem .6rem;border:1px solid var(--pine-500);border-radius:.3rem;background:var(--pine-900);font-size:.72rem;color:var(--sage-300)}.squad-insight__matchups strong{font-size:.85rem;color:var(--parchment-200)}.squad-insight__lean--favoured{border-color:var(--moss-600)}.squad-insight__lean--favoured strong{color:var(--moss-300)}.squad-insight__lean--unfavoured{border-color:var(--crimson-600)}.squad-insight__lean--unfavoured strong{color:var(--crimson-300)}.squad-insight__note{margin:.45rem 0 0;font-size:.7rem;color:var(--sage-500);line-height:1.45}@media(max-width:420px){.squad-insight__matchups{grid-template-columns:1fr}}.squad-insight__ability{display:grid;justify-items:start;gap:.2rem}.squad-insight__passives li{padding-left:.6rem;border-left:2px solid var(--ability-passive)}.squad-insight__passive--inactive{opacity:.8;border-left-style:dashed}.squad-editor{max-width:1200px;margin:0 auto;width:100%;box-sizing:border-box;padding-inline:var(--space-6)}.squad-editor__title{padding:1rem 0 .6rem}.squad-editor__title>div>span{color:var(--parchment-500);font-size:.65rem;letter-spacing:.22em}.squad-editor__title h1{margin:.5rem 0;font-family:Georgia,serif;font-size:clamp(1.7rem,4vw,2.8rem);font-weight:400;color:var(--fg)}.squad-editor__title p{margin:0;color:var(--muted);font-size:.85rem}.squad-editor__layout{display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"main" "stage" "insight";gap:1rem;min-width:0}.squad-editor__main,.squad-editor__insight{min-width:0;animation:squad-editor-switch var(--motion-normal) var(--motion-ease-out) both}.squad-editor__main{grid-area:main;display:flex;flex-direction:column;gap:.75rem}.squad-editor__insight{grid-area:insight}@keyframes squad-editor-switch{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.squad-editor__main,.squad-editor__insight{animation:none}}.squad-editor__stage-col{grid-area:stage;min-width:0}@media(min-width:900px){.squad-editor__layout{grid-template-columns:minmax(0,1fr) 380px;grid-template-areas:"main stage" "insight stage";align-items:start;column-gap:1.5rem}.squad-editor__stage-col{position:sticky;top:var(--space-4)}}.squad-editor__readiness{display:flex;flex-wrap:wrap;gap:.7rem 1.4rem;padding:1rem;border-block:1px solid var(--oak-500);color:var(--iron-300);font-size:.75rem;text-transform:capitalize}.squad-editor__readiness strong{color:var(--parchment-400);font-variant-numeric:tabular-nums;margin-right:.25rem}.squad-editor__row{padding:1rem;border:1px solid var(--pine-600);border-left:3px solid var(--page-line);border-radius:.3rem;background:linear-gradient(110deg,var(--pine-800),var(--page))}.squad-editor__row-label{display:flex;align-items:center;gap:.5rem;margin-bottom:.65rem;color:var(--parchment-500);letter-spacing:.12em}.squad-editor__slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem}.squad-editor__chip{min-width:0;min-height:94px;padding:.4rem;border-radius:.25rem;border-color:var(--oak-500);background:var(--page);text-align:left;overflow:hidden}.squad-editor__chip>svg{flex-shrink:0;border-radius:.15rem}.squad-editor__commander{display:grid;gap:.3rem;min-width:0}.squad-editor__commander strong{font-family:Georgia,serif;font-size:.9rem;font-weight:400;overflow-wrap:anywhere;color:var(--parchment-200)}.squad-editor__commander small{color:var(--text-description);font-size:.65rem;text-transform:capitalize}.squad-editor__chip--empty{justify-content:center;flex-direction:column;gap:.25rem;font-size:.7rem;color:var(--text-quiet);border-color:var(--pine-500);background:var(--pine-800)}.squad-editor__chip--empty>span:first-child{font-size:1.5rem;font-weight:300}.squad-editor__chip:hover{border-color:var(--brass-400);background:var(--page-raised)}.squad-editor__chip:focus-visible{outline:2px solid var(--brass-300);outline-offset:3px}.hero-picker__item{min-height:80px}.hero-picker__identity{display:grid;gap:.3rem;text-align:left}.hero-picker__identity strong{font-family:Georgia,serif;font-size:1rem;font-weight:400}.hero-picker__identity small{color:var(--muted);text-transform:capitalize;font-size:.7rem}.hero-picker__wounded{font-size:.65rem}@media(max-width:650px){.squad-editor{padding-inline:var(--space-3)}.squad-editor__title{padding:.5rem 0 .25rem}.squad-editor__title h1{margin:.25rem 0 0;font-size:1.5rem}.squad-editor__title>div>span,.squad-editor__title>p{display:none}.squad-editor__slots{gap:.4rem}.squad-editor__chip{flex-direction:column;text-align:center;padding:.5rem .2rem}.squad-editor__commander strong{font-size:.78rem}.squad-editor__row{padding:.7rem}.squad-editor__readiness{gap:.5rem .9rem}}.squad-rename{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:var(--space-2) var(--space-3);margin-top:var(--space-2);padding:var(--space-3);border:1px solid var(--pine-600);border-radius:var(--radius-control);background:var(--page)}.squad-rename__field{display:grid;gap:4px;min-width:0;color:var(--muted);font-size:.75rem}.squad-rename__field input{width:100%;box-sizing:border-box}.squad-rename__hint{grid-column:1 / -1;grid-row:2;margin:0;color:var(--muted);font-size:.75rem}.squad-rename__hint--problem{color:var(--amber)}.squad-rename__actions{display:flex;gap:var(--space-2)}@media(max-width:560px){.squad-rename{grid-template-columns:1fr}.squad-rename__hint{grid-row:auto}.squad-rename__actions>*{flex:1}}.squad-editor__commander .squad-editor__orders{display:grid;color:var(--text-description);text-transform:none;line-height:1.35}.squad-editor__orders>span{overflow-wrap:anywhere}.slot-orders{display:grid;gap:var(--space-3);padding:var(--space-3) var(--space-4)}.slot-orders__order{display:grid;gap:var(--space-2)}.slot-orders__order+.slot-orders__order{padding-top:var(--space-3);border-top:1px solid var(--border)}.slot-orders{margin-bottom:var(--space-3)}.slot-orders__order h4{margin:0;color:var(--title-eyebrow);font-size:var(--text-label);letter-spacing:.12em;text-transform:uppercase}.slot-orders__order p{margin:0;color:var(--fg);font-size:var(--text-body);line-height:1.45}.slot-orders__order .slot-orders__alt{color:var(--text-description);font-size:var(--text-label)}.squad-stance{margin-top:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-panel);background:var(--surface)}.squad-stance .squad-stance__note{margin:0;color:var(--text-description);font-size:var(--text-label);line-height:1.45}.heroes-screen{max-width:1200px;margin:0 auto;padding:var(--space-6)}.heroes-screen__roster-heading{margin:0 0 .5rem}.heroes-screen__section-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);margin-top:var(--space-4)}.heroes-screen__section-head h2{margin:0;font:600 var(--text-label)/1.4 var(--font-ui);letter-spacing:.16em;text-transform:uppercase;color:var(--title-eyebrow)}.heroes-screen__section-head span{font:400 var(--text-label)/1.4 var(--font-ui);color:var(--muted)}.heroes-screen__back{justify-self:start;margin-bottom:var(--space-3)}.heroes-screen__controls{display:flex;gap:var(--space-2);margin:var(--space-2) 0 var(--space-3);max-width:32rem}.heroes-screen__controls>.game-field{flex:1;min-width:0}.heroes-screen__list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.heroes-screen__list .hero-row{position:relative;display:flex;flex-direction:column;align-items:stretch;gap:0;padding:0;overflow:hidden;background:linear-gradient(155deg,var(--pine-700),var(--pine-900));border:1px solid color-mix(in srgb,var(--parchment-700) 40%,transparent);border-radius:4px;box-shadow:0 8px 24px #0003;transition:border-color var(--motion-fast),transform var(--motion-fast)}.heroes-screen__list .hero-row>.hero-portrait{width:100%;height:auto;aspect-ratio:1;border-radius:0}.heroes-screen__list .hero-row:hover{border-color:var(--brass-400);transform:translateY(-3px)}.heroes-screen__list .hero-row:focus-visible{outline:2px solid var(--brass-200);outline-offset:3px}.heroes-screen__list .hero-row__main{padding:.8rem .8rem 1rem;gap:.6rem;width:100%;box-sizing:border-box}.hero-row__class{font:500 .75rem/1.4 system-ui,sans-serif;letter-spacing:.13em;text-transform:uppercase;color:var(--brass-400)}.hero-row__name-line{align-items:baseline;gap:.3rem}.heroes-screen__list .hero-row__name{font:400 1.05rem/1.2 Georgia,serif;color:var(--parchment-100)}.heroes-screen__list .hero-row__level{font-size:.75rem;white-space:nowrap}.heroes-screen__list .hero-row__xp-bar{height:3px;background:color-mix(in srgb,var(--parchment-100) 7%,transparent)}.heroes-screen__list .hero-row__xp-fill{background:linear-gradient(90deg,var(--brass-700),var(--parchment))}@media(max-width:950px){.heroes-screen__list{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:640px){.heroes-screen{padding:var(--space-3)}.heroes-screen__list{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.heroes-screen__roster-heading{--text-title: 1.9rem}.heroes-screen__list .hero-row__name{font-size:.93rem}.heroes-screen__list .hero-row__main{padding:.65rem}}@media(prefers-reduced-motion:reduce){.heroes-screen__list .hero-row{transition:none}.heroes-screen__list .hero-row:hover{transform:none}}.heroes-screen__list .hero-row>.hero-portrait{max-width:220px;align-self:center;flex-shrink:0}.heroes-screen__list .hero-row__main{flex:1;min-width:0}.heroes-screen__list .hero-row__name-line{display:flex;flex-wrap:wrap;justify-content:space-between;min-width:0}.heroes-screen__list .hero-row__name{min-width:0;overflow-wrap:anywhere}.heroes-screen__list .hero-row__xp-bar{margin-top:auto;flex-shrink:0;min-height:4px}@media(max-width:360px){.heroes-screen__controls{flex-direction:column}}.heroes-screen__pane{display:contents}.heroes-screen__pane[hidden]{display:none}.heroes-screen__list .hero-plate{--plate-class: var(--class-infantry);border:2px solid var(--iron-700);border-radius:6px;background:linear-gradient(180deg,color-mix(in srgb,var(--oak-900) 78%,transparent),color-mix(in srgb,var(--oak-950) 92%,transparent)),var(--tex-planks-dark, none) center / 420px auto,var(--oak-700);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--brass-300) 32%,transparent),0 10px 26px #00000054}.heroes-screen__list .hero-plate--archer{--plate-class: var(--class-archer)}.heroes-screen__list .hero-plate--cavalry{--plate-class: var(--class-cavalry)}.heroes-screen__list .hero-plate:hover{border-color:var(--oak-400)}.hero-plate__art{position:relative;display:block;width:100%;max-width:220px;align-self:center;margin:10px auto 0;container-type:inline-size}.hero-plate__art>.hero-portrait{display:block;width:100%;height:auto;aspect-ratio:1;border-radius:3px;box-shadow:0 0 0 1px color-mix(in srgb,var(--brass-300) 35%,transparent),0 6px 18px #00000087}.hero-plate__seal{position:absolute;top:-6px;left:-6px;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:radial-gradient(circle at 38% 32%,var(--crimson-500),var(--crimson-700) 62%,var(--crimson-900));color:var(--brass-100);font:700 1rem/1 var(--font-display, Georgia);text-shadow:0 1px 0 rgb(0 0 0 / .5);box-shadow:inset 0 0 0 3px #0000002e,inset 0 0 0 5px color-mix(in srgb,var(--brass-100) 25%,transparent),0 3px 6px #00000080}.heroes-screen__list .hero-plate .hero-row__class{color:var(--plate-class)}.heroes-screen__list .hero-plate .hero-row__main{display:flex;flex-direction:column}.hero-row__xp-caption,.hero-row__squad{padding:0;font-size:.72rem;line-height:1.35;white-space:normal}.hero-row__xp-caption{margin-top:.3rem;color:var(--parchment-500);font-variant-numeric:tabular-nums}.hero-row__squad{color:var(--parchment-400)}.hero-row__squad:before{content:"⚑ ";color:var(--brass-400)}.building-sheet{display:flex;flex-direction:column;gap:.75rem}.building-sheet__header{display:flex;align-items:center;gap:.75rem}.building-sheet__title{flex:1;min-width:0}.building-sheet__meta{color:var(--panel-gold, var(--title-gilt));font-size:.8rem;letter-spacing:.08em;text-transform:uppercase}.building-sheet__seal{flex-shrink:0;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:radial-gradient(circle at 38% 32%,var(--crimson-600),var(--crimson-700) 62%,var(--crimson-900));color:var(--brass-100);font:700 1.15rem/1 var(--font-display);text-shadow:0 1px 0 rgb(0 0 0 / .5);box-shadow:inset 0 0 0 3px #0000002e,inset 0 0 0 5px color-mix(in srgb,var(--brass-100) 25%,transparent),0 3px 6px #00000080}.building-portrait{position:relative;aspect-ratio:7 / 5;width:min(100%,22rem);margin:-.25rem auto 0}.building-sheet__hero{display:flex;flex-direction:column;gap:.75rem}@media(max-width:899px){.building-sheet__hero{display:grid;grid-template-columns:minmax(0,11fr) minmax(0,10fr);align-items:center}.building-portrait{width:100%;margin:0}}.building-portrait__ground{position:absolute;top:58%;right:8%;bottom:2%;left:8%;border-radius:50%;background:radial-gradient(ellipse at 50% 45%,color-mix(in srgb,var(--moss-600) 55%,transparent),color-mix(in srgb,var(--oak-500) 35%,transparent) 55%,transparent 72%);filter:blur(2px)}.building-portrait__image,.building-portrait__construction{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 6px 8px rgb(0 0 0 / .45));-webkit-user-select:none;user-select:none}.building-portrait__image{animation:portrait-rise var(--motion-slow) var(--motion-ease-out) both}.building-portrait__construction{animation:portrait-fade var(--motion-slow) var(--motion-ease-out) both}@keyframes portrait-rise{0%{transform:translateY(10px) scale(.97);opacity:0}}@keyframes portrait-fade{0%{opacity:0}}.building-portrait__dust{position:absolute;inset:auto 30% 18%;height:40%;pointer-events:none}.building-portrait__dust span{position:absolute;bottom:0;width:14px;height:14px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--parchment-400) 70%,transparent),transparent 70%);opacity:0;animation:works-dust 2.4s ease-out infinite}.building-portrait__dust span:nth-child(1){left:10%}.building-portrait__dust span:nth-child(2){left:48%;animation-delay:.8s}.building-portrait__dust span:nth-child(3){left:82%;animation-delay:1.6s}@keyframes works-dust{0%{transform:translateY(0) scale(.6);opacity:0}25%{opacity:.9}to{transform:translateY(-46px) scale(1.8);opacity:0}}.reduced-motion .building-portrait__dust{display:none}.building-sheet__effect{margin:0}.building-sheet__ledger{display:grid;gap:.5rem}.building-sheet__ledger-title,.building-sheet__works-title{display:flex;align-items:center;gap:.4rem;font:700 .78rem/1.2 var(--font-ui);letter-spacing:.12em;text-transform:uppercase;color:var(--panel-ink-soft, var(--oak-500))}.building-sheet__next{color:var(--brass-800);font-weight:600}.building-sheet__cost{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin:0}.building-sheet__cost>div{display:flex;flex-direction:column;gap:.2rem;overflow-wrap:normal;padding:.45rem .6rem;border-radius:5px;background:color-mix(in srgb,var(--oak-500) 12%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--brass-800) 25%,transparent)}.building-sheet__cost dt{display:flex;align-items:center;gap:.35rem;color:var(--panel-ink-soft, var(--oak-500));font-size:.75rem;letter-spacing:.08em;text-transform:uppercase}.building-sheet__cost dd{margin:0;font:700 1.15rem/1.1 var(--font-ui);font-variant-numeric:tabular-nums;color:var(--panel-ink, var(--ink))}.building-sheet__upgrade{position:sticky;bottom:max(.25rem,env(safe-area-inset-bottom));width:100%}.building-sheet__upgrade[aria-busy=true]{cursor:progress}.building-sheet__works{display:grid;gap:.55rem}.building-sheet__finish.game-button{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;width:100%;min-height:44px;font-variant-numeric:tabular-nums}.building-sheet__progress{height:16px;overflow:hidden;border:1px solid var(--oak-400);border-radius:8px;background:color-mix(in srgb,var(--oak-500) 18%,transparent);box-shadow:inset 0 2px 4px color-mix(in srgb,var(--ink-900) 40%,transparent)}.building-sheet__progress>span{position:relative;display:block;height:100%;min-width:10px;border-radius:8px;background:linear-gradient(180deg,color-mix(in srgb,var(--brass-100) 35%,transparent),color-mix(in srgb,var(--brass-800) 35%,transparent)),var(--tex-planks-light, none) left / 200px auto,var(--brass-600);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ink-900) 60%,transparent);transition:width var(--motion-slow) var(--motion-ease)}.building-sheet__progress>span:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(100deg,transparent 30%,color-mix(in srgb,var(--parchment-200) 45%,transparent) 50%,transparent 70%);background-size:220% 100%;animation:works-sheen 2.8s linear infinite}@keyframes works-sheen{0%{background-position:160% 0}to{background-position:-60% 0}}.reduced-motion .building-sheet__progress>span:after{animation:none;background:none}.building-sheet__timer{display:flex;justify-content:space-between;gap:.5rem;font:700 .95rem/1.2 var(--font-ui);font-variant-numeric:tabular-nums;color:var(--panel-ink, var(--ink))}.building-sheet__timer>span{display:inline-flex;align-items:center;gap:.3rem}.building-sheet__maxed{text-align:center;font-weight:600;color:var(--moss-800)}.building-sheet__queued{color:var(--brass-800);font-weight:600}dialog.building-sheet-overlay.detail-panel--contextual{height:min(26.5rem,52dvh)}dialog.building-sheet-overlay.detail-panel--contextual>.building-sheet{min-height:100%}dialog.building-sheet-overlay.detail-panel--contextual>.building-sheet>*{flex-shrink:0}dialog.building-sheet-overlay.detail-panel--contextual .building-sheet__upgrade{position:sticky;z-index:1;margin-top:auto}@media(min-width:900px){dialog.building-sheet-overlay.detail-panel--contextual{inset:calc(var(--sheet-top, 6rem) + 3rem) 1rem calc(var(--sheet-bottom, 3.5rem) + 1rem) auto;height:auto;max-height:none;margin:0}}@media(max-height:500px)and (max-width:899px){dialog.building-sheet-overlay.detail-panel--contextual{height:min(26.5rem,72dvh)}}.edge-drawer{display:flex;flex-direction:column;align-items:flex-start;gap:.4rem;max-width:100%;min-height:0;pointer-events:none}.edge-drawer>*{pointer-events:auto}.edge-drawer__tab{flex-shrink:0;display:inline-flex;align-items:center;gap:.45rem;min-height:44px;padding:.4rem .8rem .4rem .6rem;border:1px solid var(--page-line);border-radius:.2rem;background:color-mix(in srgb,var(--page-raised) 93%,transparent);color:var(--parchment-300);font:600 .8rem/1 Georgia,serif;letter-spacing:.03em;box-shadow:0 2px 8px #00000045;cursor:pointer;touch-action:manipulation}.edge-drawer__tab--alert{border-color:var(--crimson-500)}.edge-drawer__arrow{color:var(--title-gilt)}.edge-drawer__count{color:var(--parchment-500);font:500 .72rem system-ui,sans-serif}.edge-drawer__tab--alert .edge-drawer__count{color:var(--crimson-300)}.edge-drawer__tab:focus-visible,.edge-drawer__header button:focus-visible{outline:2px solid var(--brass-200);outline-offset:2px}.edge-drawer__panel{display:flex;flex-direction:column;gap:.5rem;width:min(360px,calc(100vw - 2rem));max-width:100%;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:0 0 .6rem;border:1px solid var(--page-line);border-radius:.3rem;background:color-mix(in srgb,var(--pine-800) 95%,transparent);box-shadow:0 10px 28px #00000078;animation:edge-drawer-in var(--motion-normal, .18s) var(--motion-ease-out, ease-out) both}.edge-drawer__panel[hidden]{display:none}@keyframes edge-drawer-in{0%{transform:translate(-16px);opacity:0}}@media(prefers-reduced-motion:reduce){.edge-drawer__panel{animation:none}}.edge-drawer__header{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;padding:.25rem .25rem .25rem .75rem;border-bottom:1px solid color-mix(in srgb,var(--page-line) 40%,transparent);background:var(--pine-800)}.edge-drawer__header h2{margin:0;color:var(--parchment-300);font:600 .95rem Georgia,serif;letter-spacing:.04em}.edge-drawer__header button{min-width:44px;min-height:44px;border:0;background:none;color:var(--parchment-300);cursor:pointer}.keep-realm{flex:0 1 auto;min-height:0;margin-top:.5rem;max-width:min(22rem,calc(100vw - 2rem))}.keep-status{display:flex;flex-direction:column;gap:.35rem;padding:.5rem .6rem 0}.keep-status__item{display:flex;align-items:center;gap:.35rem;min-height:44px;padding:.3rem .7rem;border:1px solid color-mix(in srgb,var(--brass-400) 40%,transparent);border-radius:.25rem;background:color-mix(in srgb,var(--pine-800) 85%,transparent);color:var(--parchment-200);font:600 .7rem/1.2 system-ui,sans-serif;text-align:left;text-shadow:none;cursor:pointer;touch-action:manipulation}.keep-status__item:hover{background:color-mix(in srgb,var(--page-raised) 90%,transparent)}.keep-status__item:focus-visible{outline:2px solid var(--brass-200);outline-offset:2px}.keep-status__item--standing{border-color:var(--brass-300);color:var(--brass-100)}.keep-status__item--standing svg{color:var(--title-gilt)}.keep-status__item--alert{border-color:var(--crimson-500);color:var(--crimson-300)}.keep-status-panel{display:flex;flex-direction:column;gap:.5rem;margin:.75rem 0;padding:.75rem;border-radius:.3rem}.keep-status-panel h3{margin:0;font:600 .95rem Georgia,serif}.keep-status-panel p{margin:0}.keep-status-panel__list,.keep-status-panel__heroes{display:flex;flex-direction:column;gap:.3rem;margin:0;padding:0;list-style:none}.keep-status-panel__list li{display:flex;justify-content:space-between;gap:.5rem;font-size:.8rem}.keep-status-panel__heroes li{display:grid;grid-template-columns:40px 1fr auto;align-items:center;gap:.6rem;font-size:.85rem}.keep-status-panel__heal{font-variant-numeric:tabular-nums}.keep-status-panel__heal-now{grid-column:2 / -1}.keep-status-panel__actions{display:flex;flex-wrap:wrap;gap:.5rem}.keep-status-panel__actions>button{flex:1;min-height:44px}.keep-status-panel__secondary{padding:.5rem 1rem;font:600 .95rem var(--font-ui);cursor:pointer}.keep-alerts{flex-shrink:0;display:flex;flex-direction:column;gap:.35rem;margin-top:.5rem;max-width:min(36rem,calc(100vw - 2rem));pointer-events:auto}.keep-alerts__item{display:flex;flex-wrap:wrap;align-items:center;gap:.2rem .5rem;min-height:44px;padding:.4rem .75rem;border:1px solid var(--crimson-500);border-radius:.25rem;background:color-mix(in srgb,var(--board) 91%,transparent);color:var(--fg);font:500 .75rem/1.25 system-ui,sans-serif;text-align:left;text-shadow:none;cursor:pointer;touch-action:manipulation;animation:keep-alert-pulse 1.8s ease-in-out infinite}.keep-alerts__item strong{color:var(--fg)}.keep-alerts__show{color:var(--parchment-300);text-decoration:underline}.keep-alerts__item:focus-visible{outline:2px solid var(--brass-200);outline-offset:2px}.keep-alerts__more{margin:0;color:var(--fg);font-size:.7rem}@keyframes keep-alert-pulse{50%{box-shadow:0 0 0 3px color-mix(in srgb,var(--crimson-500) 33%,transparent)}}@media(prefers-reduced-motion:reduce){.keep-alerts__item{animation:none}}@media(max-height:520px){.keep-scene-3d__identity:has(.keep-realm.edge-drawer--open)>:is(.keep-scene-3d__eyebrow,.keep-scene-3d__subtitle,.keep-scene-3d__builders){display:none}.keep-realm .edge-drawer__header{display:none}.keep-realm .edge-drawer__panel{width:auto;max-width:calc(100vw - 2rem);overflow-x:auto}.keep-realm .keep-status{flex-direction:row;padding-top:.5rem}.keep-realm .keep-status__item{flex:0 0 auto;white-space:nowrap}.keep-realm{max-width:none}}.more-screen .command-hall__heading{align-self:stretch;padding:1.7rem 1.25rem;border:1px solid var(--page-line);border-radius:.35rem;background:linear-gradient(90deg,color-mix(in srgb,var(--page) 93%,transparent),color-mix(in srgb,var(--pine-800) 65%,transparent)),url(/assets/art/stronghold-dusk.webp) center 42% / cover}.command-hall__heading>span,.command-hall__eyebrow{color:var(--title-eyebrow);font-size:.6rem;letter-spacing:.18em}.command-hall__heading h1{margin:.65rem 0;color:var(--parchment-200);font:400 2.1rem Georgia,serif}.command-hall__heading p{color:var(--sage-300);font-size:.8rem;line-height:1.6}.more-screen .more-screen__row{min-height:96px;gap:1rem;border:1px solid var(--pine-500);border-radius:.35rem;background:linear-gradient(120deg,var(--page-raised),var(--pine-800));box-shadow:0 5px 20px #0002}.more-screen .more-screen__row-avatar{width:56px;height:64px;flex:0 0 56px;border:0;background:none;color:var(--title-eyebrow)}.more-screen .more-screen__row-title{color:var(--parchment-400);font:400 1.2rem Georgia,serif;overflow-wrap:anywhere}.more-screen .more-screen__row-subtitle{color:var(--sage-300);line-height:1.5}.more-screen .more-screen__row-text{min-width:0}.more-screen button:focus-visible{outline:2px solid var(--control-focus);outline-offset:3px}.profile-screen{display:flex;flex-direction:column;gap:var(--space-4);width:100%;max-width:640px;margin:0 auto;padding:var(--space-4)}.profile-screen>section{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-6) var(--space-4)}.profile-screen input:focus-visible,.profile-screen select:focus-visible{outline:2px solid var(--control-focus);outline-offset:3px}.profile-screen__profile{align-items:center;text-align:center}.profile-screen__crest{display:grid;place-items:center;margin:var(--space-2) 0 var(--space-1);filter:drop-shadow(0 7px 9px rgb(0 0 0 / .33))}.profile-screen__username{max-width:100%;margin:0;color:var(--title-gilt);font:400 1.8rem/1.2 var(--font-display);overflow-wrap:anywhere}.profile-screen__email{max-width:100%;margin:0;color:var(--text-description);overflow-wrap:anywhere}.profile-screen__settings-title{margin:0;color:var(--title-gilt);font:400 1.2rem/1.3 var(--font-display)}.profile-screen__section-copy,.profile-screen__season-text{margin:0;color:var(--text-description);font-size:.8rem;line-height:1.6}.profile-screen__trophies-status{margin:0;color:var(--muted);font-size:.8rem}.profile-screen__trophies-status--error{color:var(--err-text)}.profile-screen__trophy-recovery{display:grid;justify-items:start;gap:var(--space-3)}.profile-screen__public-profile{align-self:flex-start}.profile-screen__trophies-list{display:flex;flex-direction:column;margin:0;padding:var(--space-1) var(--space-4);list-style:none}.profile-screen__trophy{display:flex;flex-direction:column;gap:.15rem;padding:var(--space-3) 0 var(--space-3) var(--space-3);border-left:3px solid var(--oak-400)}.profile-screen__trophy+.profile-screen__trophy{border-top:1px solid color-mix(in srgb,var(--ink-700) 35%,transparent)}.profile-screen__trophy--champion,.profile-screen__trophy--elite{border-left-color:var(--brass-600)}.profile-screen__trophy-tier{color:var(--ink);font:400 1rem var(--font-display)}.profile-screen__trophy-detail{color:var(--ink-soft);font-size:.8rem;line-height:1.5;font-variant-numeric:tabular-nums}.profile-screen__setting-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3);min-height:48px;color:var(--fg);font-size:.9rem}.profile-screen__setting-row select{max-width:100%;min-height:44px;padding:.5rem .65rem;border:1px solid var(--border);border-radius:4px;background:var(--bg);color:var(--fg)}.profile-screen__setting-row input[type=range]{flex:1;min-width:80px;min-height:44px;accent-color:var(--accent)}.profile-screen__setting-row input[type=checkbox]{width:22px;height:22px;accent-color:var(--accent)}.profile-screen__setting-row output{min-width:3ch;color:var(--muted);font-size:.8rem;font-variant-numeric:tabular-nums}.profile-screen__notif-unsupported{color:var(--muted);font-size:.8rem}.profile-screen__logout{width:100%}.more-screen__sub{display:flex;flex-direction:column}.more-screen__sub>.command-hall-back{margin:var(--space-3) var(--space-4) 0}.more-screen__guide{width:100%;max-width:1100px;margin:0 auto;padding:var(--space-4)}.more-screen__updates{width:100%;max-width:760px;margin:0 auto;padding:var(--space-4)}.command-hall-back{align-self:flex-start}.leaderboard-screen{display:grid;grid-template-columns:minmax(0,1fr);align-content:start;gap:var(--space-3);width:100%;max-width:1120px;margin-inline:auto;padding:var(--space-4)}.leaderboard-screen button:focus-visible{outline:2px solid var(--control-focus);outline-offset:2px}.leaderboard-screen__bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2)}.game-button.leaderboard-screen__refresh{font-size:.75rem}.leaderboard-screen__eyebrow{margin:0;color:var(--title-eyebrow);font-size:var(--text-label);letter-spacing:.16em;text-transform:uppercase}.leaderboard-screen .leaderboard-screen__title{margin:var(--space-1) 0 0;color:var(--title-gilt);font:400 1.6rem var(--font-display),serif}.leaderboard-screen__lock{display:flex;align-items:center;gap:var(--space-2);margin:0;padding:var(--space-2) var(--space-3);border:1px solid var(--oak-600);border-radius:var(--radius-control);background:color-mix(in srgb,var(--oak-950) 70%,transparent);color:var(--parchment-400);font-size:var(--text-body);line-height:1.45}.leaderboard-screen__lock svg{flex:none;color:var(--title-gilt)}.leaderboard-screen__lock strong{color:var(--parchment-200)}.leaderboard-screen__panel{display:flex;flex-direction:column;gap:var(--space-3);min-width:0}.leaderboard-screen__panel:focus-visible{outline:2px solid var(--control-focus);outline-offset:3px}.leaderboard-screen__standing{display:grid;gap:var(--space-2);padding:var(--space-4)}.leaderboard-screen__standing-top{display:flex;align-items:flex-end;gap:var(--space-3)}.leaderboard-screen__big-rank{color:var(--title-gilt);font:400 2.75rem/1 var(--font-display),serif}.leaderboard-screen__standing-of{display:grid;justify-items:start;gap:var(--space-1);padding-bottom:2px;color:var(--parchment-400);font-size:var(--text-body)}.leaderboard-screen__standing-of strong{color:var(--parchment-200);font-weight:600}.leaderboard-screen__tier{padding:1px 9px;border:1px solid var(--iron-500);border-radius:999px;background:var(--oak-950);color:var(--iron-300);font-size:var(--text-label);font-weight:700}.leaderboard-screen__tier--CHAMPION{border-color:var(--brass-800);background:radial-gradient(circle at 38% 32%,var(--brass-200),var(--brass-600));color:var(--ink-900)}.leaderboard-screen__tier--ELITE{border-color:var(--brass-400);background:color-mix(in srgb,var(--brass-600) 30%,var(--oak-950));color:var(--brass-100)}.leaderboard-screen__tier--CONTENDER{border-color:var(--oak-400);background:var(--oak-800);color:var(--parchment-300)}.leaderboard-screen__stats{grid-template-columns:1fr 1fr}.leaderboard-screen__stats .game-ledger__value{font-size:1.1rem}.leaderboard-screen__race{display:grid;gap:var(--space-1);margin:0;padding:0;list-style:none;font-size:var(--text-body)}.leaderboard-screen__race li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:0 var(--space-2);color:var(--parchment-400)}.leaderboard-screen__race strong{color:var(--fg)}.leaderboard-screen__note{margin:0;color:var(--parchment-400);font-size:var(--text-body);line-height:1.5}.leaderboard-screen__note:empty{display:none}.game-button.leaderboard-screen__cta{align-self:flex-start;padding-inline:var(--space-4)}.leaderboard-screen__ladder{grid-template-columns:repeat(auto-fit,minmax(0,1fr));grid-auto-flow:column;padding:0;list-style:none}.leaderboard-screen__rung{position:relative;justify-items:center;align-content:start;padding:var(--space-3) var(--space-1) var(--space-2);color:var(--ink-soft);font-size:var(--text-label);text-align:center}.leaderboard-screen__rung strong{color:var(--ink);font:700 .875rem var(--font-display),serif}.leaderboard-screen__rung-prize{color:var(--ink)}.leaderboard-screen__rung--own{background:color-mix(in srgb,var(--brass-400) 35%,transparent);box-shadow:inset 0 0 0 2px var(--brass-700)}.leaderboard-screen__rung-you{position:absolute;top:2px;padding:0 6px;border-radius:6px;background:var(--brass-700);color:var(--parchment-100);font-size:.625rem;font-weight:700}.leaderboard-screen__podium{display:grid;grid-template-columns:1fr 1.15fr 1fr;align-items:end;gap:var(--space-2);margin:0;padding:0;list-style:none}.leaderboard-screen__step{display:grid;justify-items:center;gap:4px;min-width:0;padding:var(--space-3) var(--space-1);text-align:center}.leaderboard-screen__step--1{padding-top:var(--space-4);border-color:var(--brass-600)}.leaderboard-screen__step--own{box-shadow:inset 0 0 0 1px var(--brass-300),0 0 14px color-mix(in srgb,var(--brass-300) 35%,transparent)}.leaderboard-screen__step--1 .leaderboard-screen__step-rank{width:3rem;height:3rem;font-size:1.35rem}.leaderboard-screen__step-name{max-width:100%;overflow-wrap:anywhere;color:var(--fg);font:400 .95rem var(--font-display),serif}.leaderboard-screen__step-points{color:var(--title-gilt);font-size:var(--text-label)}.leaderboard-screen__list{display:flex;flex-direction:column;margin:0;padding:var(--space-1) var(--space-3);list-style:none;border-radius:4px}.leaderboard-screen__row{display:grid;grid-template-columns:2.75rem minmax(0,1fr) auto;align-items:center;gap:var(--space-2);min-height:56px;padding:6px var(--space-1);border-bottom:1px solid color-mix(in srgb,var(--ink-700) 25%,transparent)}.leaderboard-screen__row:last-child{border-bottom:0}.leaderboard-screen__row--own{margin-inline:calc(-1 * var(--space-2));padding-inline:calc(var(--space-1) + var(--space-2));border-radius:3px;background:color-mix(in srgb,var(--brass-400) 35%,transparent);box-shadow:inset 0 0 0 2px var(--brass-700)}.leaderboard-screen__rank{color:var(--ink-soft);font:400 1.1rem var(--font-display),serif}.leaderboard-screen__who{display:grid;min-width:0}.leaderboard-screen__username{min-width:0;overflow-wrap:anywhere;color:var(--ink);font:400 1rem var(--font-display),serif}.leaderboard-screen__you{color:var(--brass-800);font:600 var(--text-label) var(--font-ui),sans-serif}.leaderboard-screen__trend{color:var(--ink-soft);font-size:var(--text-label)}.leaderboard-screen__trend--down{color:var(--crimson-700)}.leaderboard-screen__points{display:grid;justify-items:end;color:var(--ink);font-size:.8rem;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.leaderboard-screen__points small{color:var(--ink-soft);font-weight:400;font-size:var(--text-label)}.leaderboard-screen__row--region{grid-template-columns:1fr;gap:var(--space-1);padding:var(--space-3)}.leaderboard-screen__row--region .leaderboard-screen__points{justify-items:start;white-space:normal;color:var(--ink-soft)}.leaderboard-screen__line{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) 0;color:var(--brass-800);font-weight:700;font-size:var(--text-label);text-align:center}.leaderboard-screen__line:before,.leaderboard-screen__line:after{content:"";flex:1 1 12px;min-width:12px;height:1px;background:repeating-linear-gradient(90deg,var(--brass-700) 0 6px,transparent 6px 10px)}.leaderboard-screen__gap{margin:var(--space-1) 0 0;color:var(--title-eyebrow);font-size:var(--text-label);letter-spacing:.12em;text-transform:uppercase}.leaderboard-screen__status{display:grid;gap:var(--space-2);margin:0;padding:var(--space-4);border:1px solid var(--oak-600);border-radius:.3rem;background:color-mix(in srgb,var(--oak-950) 70%,transparent);color:var(--parchment-400);line-height:1.6}.leaderboard-screen__status p{margin:0}.leaderboard-screen__status--error{color:var(--err-text);border-color:var(--crimson-600)}.leaderboard-screen__foot{margin:0;color:var(--muted);font-size:var(--text-label);line-height:1.6}.leaderboard-screen__link{min-height:44px;padding:0;border:0;background:none;color:var(--title-gilt);font:inherit;text-decoration:underline;text-underline-offset:3px}.leaderboard-screen__season-end{display:grid;gap:var(--space-3);margin-top:var(--space-3);padding:var(--space-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-panel)}.leaderboard-screen__season-end-title{margin:0;color:var(--title-gilt);font:400 1.1rem var(--font-display),serif}.leaderboard-screen__season-end-text{margin:0;color:var(--text-description);font-size:var(--text-body);line-height:1.5}@media(max-width:380px){.leaderboard-screen{padding:var(--space-3)}.leaderboard-screen__row{grid-template-columns:2.25rem minmax(0,1fr) auto;padding-inline:var(--space-2)}}.leaderboard-screen__aside,.leaderboard-screen__board{display:flex;flex-direction:column;gap:var(--space-3);min-width:0}@media(min-width:1024px){.leaderboard-screen__panel:has(.leaderboard-screen__aside){display:grid;grid-template-columns:minmax(0,1fr) 360px;align-items:start}.leaderboard-screen__aside{grid-column:2;grid-row:1 / span 3;position:sticky;top:var(--space-3)}.leaderboard-screen__board{grid-column:1;grid-row:1 / span 3}}.admin-screen{display:grid;gap:var(--space-4);max-width:760px;margin:0 auto;padding:var(--space-4)}.admin-screen__section{display:grid;gap:var(--space-3)}.admin-screen__section h2{font:400 1.25rem/1.3 var(--font-display);margin:0}.admin-screen__empty{color:var(--text-description);font:400 var(--text-body)/1.5 var(--font-ui);margin:0}.admin-screen__list{display:grid;gap:var(--space-2);list-style:none;margin:0;padding:0}.admin-screen__row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-control)}.admin-screen__row-text{display:grid;gap:var(--space-1);min-width:0}.admin-screen__row-title{font:600 1rem/1.3 var(--font-ui)}.admin-screen__row-detail{color:var(--text-description);font:400 var(--text-label)/1.4 var(--font-ui);overflow-wrap:anywhere}.admin-screen__row-actions{display:flex;gap:var(--space-2)}.admin-screen__row-actions--wrap{flex-wrap:wrap}.admin-screen__status{color:var(--err-text);font:600 var(--text-label)/1.4 var(--font-ui);overflow-wrap:anywhere}.admin-screen__reason{resize:vertical;min-height:4.5rem;font:inherit}.admin-screen__log-entry{display:grid;gap:var(--space-1);padding:var(--space-2) 0;border-bottom:1px solid var(--border);font:400 var(--text-body)/1.4 var(--font-ui)}.admin-screen__log-entry:last-child{border-bottom:none}.admin-screen__confirm,.admin-screen__search{display:grid;gap:var(--space-2);width:100%}.admin-screen__search-row{display:flex;gap:var(--space-2)}.admin-screen__search-row .game-field{flex:1;min-width:0}.admin-screen__warning{margin:0;padding:var(--space-3);border-radius:var(--radius-control);background:var(--panel-danger);font:400 var(--text-body)/1.5 var(--font-ui)}.admin-screen__subheading{margin:var(--space-3) 0 var(--space-2);font-family:var(--font-display);font-size:1.05rem;font-weight:400}.admin-screen__table-wrap{overflow-x:auto}.admin-screen__table{width:100%;border-collapse:collapse;font-size:var(--text-body);font-variant-numeric:tabular-nums}.admin-screen__table th,.admin-screen__table td{padding:var(--space-1) var(--space-2);border-bottom:1px solid color-mix(in srgb,var(--brass-300) 15%,transparent);text-align:right;white-space:nowrap}.admin-screen__table th:first-child{text-align:left}.admin-home__group{display:grid;gap:var(--space-2)}.admin-home__group-title{margin:0;color:var(--text-description);font:700 var(--text-label) / 1.2 var(--font-ui);letter-spacing:.12em;text-transform:uppercase}.admin-home__tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2);list-style:none;margin:0;padding:0}@media(min-width:720px){.admin-home__tiles{grid-template-columns:repeat(4,minmax(0,1fr))}}.admin-home__tiles>li{display:grid}.admin-home__tile{position:relative;display:grid;align-content:start;gap:var(--space-1);min-height:88px;padding:var(--space-3);text-align:left;color:var(--fg);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-panel);cursor:pointer}.admin-home__tile:hover{border-color:var(--title-gilt)}.admin-home__tile:focus-visible{outline:2px solid var(--control-focus);outline-offset:2px}.admin-home__tile-title{font:400 1.05rem/1.25 var(--font-display);padding-right:var(--space-8)}.admin-home__tile-detail{color:var(--text-description);font:400 var(--text-label) / 1.4 var(--font-ui);overflow-wrap:anywhere}.admin-home__count{position:absolute;top:var(--space-2);right:var(--space-2);min-width:1.5rem;padding:2px 6px;border-radius:999px;background:var(--title-gilt);color:var(--page);font:700 var(--text-label) / 1.2 var(--font-ui);font-variant-numeric:tabular-nums;text-align:center}.admin-home__waiting{flex-wrap:nowrap;padding:var(--space-2) var(--space-3);border-color:var(--title-gilt)}.admin-home__waiting .admin-screen__row-title{min-width:0;font-weight:400}.admin-screen__new{color:var(--title-gilt);font-weight:700}.suggestions-screen{display:grid;gap:var(--space-4);width:100%;max-width:760px;margin:0 auto;padding:var(--space-4)}.suggestions-screen__form,.suggestions-screen__board{display:grid;gap:var(--space-3)}.suggestions-screen__label{font:600 1rem/1.3 var(--font-ui)}.suggestions-screen__field{width:100%;min-height:88px;resize:vertical;font:400 var(--text-body)/1.5 var(--font-ui)}.suggestions-screen__hint,.suggestions-screen__meta,.suggestions-screen__empty,.suggestions-screen__own{color:var(--text-description);font:400 var(--text-label)/1.4 var(--font-ui);margin:0}.suggestions-screen__form .game-button{justify-self:start}.suggestions-screen__board h2{font:400 1.25rem/1.3 var(--font-display);margin:0}.suggestions-screen__list{display:grid;gap:var(--space-2);list-style:none;margin:0;padding:0}.suggestions-screen__item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-control)}.suggestions-screen__item-text{display:grid;gap:var(--space-1);min-width:0}.suggestions-screen__body{margin:0;font:400 var(--text-body)/1.45 var(--font-ui);overflow-wrap:anywhere}.suggestions-screen__vote{flex:none;display:inline-flex;flex-direction:column;align-items:center;min-width:72px;min-height:56px;font-variant-numeric:tabular-nums}.suggestions-screen__vote-label{font:400 var(--text-label)/1.2 var(--font-ui)}.suggestions-screen__own{flex:none;min-width:72px;text-align:center}.alliance-screen{display:flex;flex-direction:column;gap:1rem;max-width:720px;margin:0 auto;width:100%;box-sizing:border-box;padding:var(--space-6) var(--space-4)}.alliance-screen__masthead>span{color:var(--title-eyebrow)}.alliance-screen__section{display:flex;flex-direction:column;gap:.75rem}.alliance-screen__section-title{font-size:var(--text-label);font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:var(--brass-300);margin:0}.alliance-screen__form-row{display:flex;flex-wrap:wrap;gap:.5rem}.alliance-screen__form-row>.game-field{flex:1;min-width:140px}.alliance-screen__hint{color:var(--muted);font-size:.8125rem;margin:0}.alliance-screen__invite-row,.alliance-screen__browse-row,.alliance-screen__member-row{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem .75rem;font-size:.875rem;padding-block:.5rem;border-bottom:1px solid var(--border)}.alliance-screen__browse-list,.alliance-screen__member-list{display:flex;flex-direction:column}.alliance-screen__invite-row:last-child,.alliance-screen__browse-row:last-child,.alliance-screen__member-row:last-child{border-bottom:none;padding-bottom:0}.alliance-screen__member-row{gap:.5rem .75rem}.alliance-screen__member-name{min-width:0;overflow-wrap:anywhere}.alliance-screen__browse-name{display:flex;flex:1;flex-direction:column;min-width:0;font:400 1.1rem var(--font-display);color:var(--parchment-100);overflow-wrap:anywhere}.alliance-screen__browse-name small{color:var(--muted);font:600 var(--text-label) var(--font-ui);letter-spacing:.06em}.alliance-screen__invite-actions{display:flex;gap:.5rem}.alliance-screen__member-role{color:var(--muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.03em;flex:1;text-align:right}.alliance-rallies{display:flex;flex-direction:column;gap:1rem}.alliance-rallies__header{flex-direction:row;align-items:center;justify-content:space-between}.alliance-rallies__status{margin:0;color:var(--amber);font-size:.875rem}@media(max-width:480px){.alliance-screen{padding:var(--space-4) var(--space-3)}}.alliance-screen__rules{margin:0;padding-left:1.25rem;display:flex;flex-direction:column;gap:.25rem;font-size:.875rem}.alliance-screen__wait{margin:0;font-size:.875rem;font-weight:600;color:var(--amber)}.alliance-perks{display:flex;flex-direction:column;gap:var(--space-3)}.alliance-perks__head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--space-2)}.alliance-perks__today{margin:0;font-size:.8125rem;color:var(--muted)}.alliance-perks__today strong{color:var(--fg)}.perk-tree{position:relative;width:100%;max-width:440px;margin-inline:auto;aspect-ratio:360 / 480;border-radius:var(--radius-panel);background:radial-gradient(ellipse at 50% 8%,color-mix(in srgb,var(--torch) 16%,transparent),transparent 55%),radial-gradient(ellipse at 50% 100%,rgba(0,0,0,.35),transparent 70%),var(--oak-900);border:1px solid var(--border);overflow:hidden}.perk-tree__links{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.perk-tree__links path{fill:none;stroke:var(--oak-600);stroke-width:3;stroke-linecap:round;vector-effect:non-scaling-stroke}.perk-tree__links .perk-tree__link--lit>path,.perk-tree__links path.perk-tree__link--lit{stroke:var(--amber)}.perk-tree__root,.perk-tree__hub,.perk-node{position:absolute;translate:-50% -50%}.perk-tree__root{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;color:var(--oak-900);background:radial-gradient(circle at 35% 30%,var(--brass-200),var(--accent));box-shadow:0 0 18px color-mix(in srgb,var(--torch) 45%,transparent)}.perk-tree__hub{padding:2px 10px;border-radius:999px;border:1px solid var(--segment-marker-border);background:var(--oak-800);font-family:var(--font-display);font-size:.8125rem;color:var(--title-eyebrow);letter-spacing:.04em;white-space:nowrap}.perk-node{display:flex;flex-direction:column;align-items:center;gap:3px;width:30%;max-width:120px;padding:0;border:none;background:none;color:var(--fg);cursor:pointer;font:inherit}.perk-node__ring{--ring: var(--amber);display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:conic-gradient(var(--ring) calc(var(--fill) * 360deg),var(--oak-600) 0);transition:transform var(--motion-fast) var(--motion-ease)}.perk-node__face{display:grid;place-items:center;width:54px;height:54px;border-radius:50%;background:radial-gradient(circle at 35% 30%,var(--oak-600),var(--oak-800));color:var(--muted)}.perk-node__face path,.perk-sheet__glyph path{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.perk-node--active .perk-node__face{color:var(--segment-selected)}.perk-node--maxed .perk-node__ring{--ring: var(--segment-selected);box-shadow:0 0 16px color-mix(in srgb,var(--brass-200) 55%,transparent)}.perk-node--maxed .perk-node__face{color:var(--oak-900);background:radial-gradient(circle at 35% 30%,var(--brass-200),var(--accent))}.perk-node:hover .perk-node__ring,.perk-node:focus-visible .perk-node__ring{transform:scale(1.06)}.perk-node:active .perk-node__ring{transform:scale(.96)}.perk-node:focus-visible{outline:none}.perk-node:focus-visible .perk-node__ring{outline:2px solid var(--control-focus);outline-offset:3px}.perk-node__pips{display:flex;gap:3px}.perk-node__pips>span{width:7px;height:7px;border-radius:50%;border:1px solid var(--segment-marker-border)}.perk-node__pips>.perk-node__pip--on{background:var(--amber);border-color:var(--amber)}.perk-node__name{font-size:.75rem;line-height:1.15;text-align:center;text-shadow:0 1px 2px rgb(0 0 0 / .9)}.perk-sheet__header{display:flex;align-items:center;gap:var(--space-3)}.perk-sheet__header>div{flex:1}.perk-sheet__glyph{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;color:var(--segment-selected);background:radial-gradient(circle at 35% 30%,var(--oak-600),var(--oak-800));border:2px solid var(--amber)}.perk-sheet__level{margin:0;font-size:.8125rem;color:var(--muted)}.perk-sheet__effects{display:flex;flex-direction:column;gap:var(--space-1)}.perk-sheet__effects p{margin:0}.perk-sheet__subhead{margin:var(--space-2) 0 0;font-size:.875rem;color:var(--title-eyebrow)}.perk-sheet__fills{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-3)}.perk-sheet__fill{display:flex;flex-direction:column;gap:var(--space-1)}.perk-sheet__fill-head{display:flex;align-items:center;gap:var(--space-2);font-size:.875rem}.perk-sheet__fill-count{margin-left:auto;font-variant-numeric:tabular-nums;color:var(--muted)}.perk-sheet__bar{display:block;height:8px;border-radius:4px;background:var(--border);overflow:hidden}.perk-sheet__bar>span{display:block;height:100%;background:var(--amber);transition:width var(--motion-normal) var(--motion-ease-out)}.perk-sheet__give{display:flex;flex-wrap:wrap;gap:var(--space-2)}.perk-sheet__give-button{flex:1;min-height:var(--control-size)}.perk-sheet__done,.perk-sheet__reason{margin:0;font-size:.8125rem;color:var(--muted)}.perk-sheet__reason{color:var(--amber)}.alliance-orders__card{display:flex;flex-direction:column;gap:.5rem;padding-block:.75rem;border-top:1px solid var(--border)}.alliance-orders__head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.25rem .75rem}.alliance-rallies__wave-actions{display:flex;gap:.375rem}.alliance-rallies__side--defend{color:var(--territory-ally)}.alliance-hall{--hall-seal: radial-gradient( circle at 38% 32%, var(--crimson-600), var(--crimson-700) 62%, var(--crimson-900) );max-width:1100px;gap:var(--space-4);padding-top:var(--space-3)}.alliance-hall__layout{display:flex;flex-direction:column;gap:var(--space-4)}.alliance-hall__body{display:flex;flex-direction:column;gap:var(--space-4);min-width:0}.alliance-hall__eyebrow,.muster-roll__eyebrow{display:block;color:var(--title-gilt);font-size:var(--text-label);font-weight:700;letter-spacing:.14em;text-transform:uppercase}.alliance-hall__standard{position:relative;display:grid;grid-template-columns:auto 1fr auto;grid-template-areas:"flag titles seal" "facts facts facts";align-items:center;gap:var(--space-3) var(--space-4);padding:var(--space-4);border:3px solid var(--edge-iron);border-radius:12px;background:radial-gradient(ellipse at 20% 0%,color-mix(in srgb,var(--brass-300) 16%,transparent),transparent 60%),linear-gradient(180deg,color-mix(in srgb,var(--oak-700) 72%,transparent),color-mix(in srgb,var(--oak-950) 88%,transparent)),var(--tex-planks-dark, none) center / 460px auto,var(--oak-700);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--brass-300) 35%,transparent),0 0 0 1px var(--oak-950),0 12px 30px #00000080}.alliance-hall__flag{grid-area:flag;display:grid;place-items:center;width:104px}.alliance-hall__flag .banner{width:104px;height:auto;filter:drop-shadow(0 6px 8px rgb(0 0 0 / .55))}.alliance-hall__titles{grid-area:titles;min-width:0}.alliance-hall__name{margin:2px 0 0;font-family:var(--font-display);font-size:1.6rem;font-weight:400;line-height:1.15;color:var(--parchment-100);text-shadow:0 2px 6px rgb(0 0 0 / .6);overflow-wrap:anywhere}.alliance-hall__seal{grid-area:seal;display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:var(--hall-seal);box-shadow:inset 0 0 0 3px #0000002e,inset 0 2px 3px color-mix(in srgb,var(--crimson-300) 35%,transparent),0 2px 4px #00000080;color:var(--parchment-200);font:700 .8rem var(--font-display);letter-spacing:.04em;text-shadow:0 1px 0 rgb(0 0 0 / .5);transform:rotate(-8deg)}.alliance-hall__facts{grid-area:facts;display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2);margin:0;padding-top:var(--space-3);border-top:1px solid color-mix(in srgb,var(--brass-300) 22%,transparent)}.alliance-hall__facts dt{color:var(--muted);font-size:var(--text-label);letter-spacing:.08em;text-transform:uppercase}.alliance-hall__facts dd{margin:2px 0 0;color:var(--fg);font:600 1rem var(--font-ui)}.alliance-hall__muster{display:block;height:6px;margin-top:var(--space-1);border-radius:3px;background:linear-gradient(90deg,var(--brass-400),var(--brass-300)) left / calc(var(--sworn, 0) * 100%) 100% no-repeat,var(--oak-950);box-shadow:inset 0 1px 2px #000a}.alliance-hall__orders-slip{display:flex;align-items:center;gap:var(--space-3);min-height:56px;padding:var(--space-2) var(--space-3);border:1px solid var(--oak-400);border-radius:6px;background:radial-gradient(ellipse at 50% 40%,color-mix(in srgb,var(--parchment-100) 35%,transparent),color-mix(in srgb,var(--oak-500) 30%,transparent)),var(--tex-plaster, none) center / 320px auto,var(--parchment-400);color:var(--ink);font:700 .95rem var(--font-display);text-align:left;box-shadow:inset 0 0 18px color-mix(in srgb,var(--ink-700) 45%,transparent),0 4px 12px #0006;cursor:pointer}.alliance-hall__orders-slip .alliance-hall__eyebrow{color:var(--brass-800)}.alliance-hall__orders-seal{flex-shrink:0;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--hall-seal);color:var(--parchment-200);font:700 1rem var(--font-display);box-shadow:inset 0 2px 3px color-mix(in srgb,var(--crimson-300) 35%,transparent),0 2px 4px #00000080}.alliance-hall__orders-slip:focus-visible,.muster-roll__orders-toggle:focus-visible{outline:2px solid var(--control-focus);outline-offset:3px}.muster-roll{--control-focus: var(--control-focus-parchment);display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--oak-400);border-radius:6px;background:radial-gradient(ellipse at 50% 30%,color-mix(in srgb,var(--parchment-100) 40%,transparent),color-mix(in srgb,var(--oak-500) 28%,transparent)),var(--tex-plaster, none) center / 320px auto,var(--parchment-400);color:var(--ink);box-shadow:inset 0 0 24px color-mix(in srgb,var(--ink-700) 45%,transparent),0 0 0 3px color-mix(in srgb,var(--ink-900) 85%,transparent),0 0 0 4px var(--brass-600),0 10px 24px #00000073}.muster-roll__head{text-align:center;padding-bottom:var(--space-2);border-bottom:2px double color-mix(in srgb,var(--ink-700) 45%,transparent)}.muster-roll .muster-roll__eyebrow{color:var(--brass-800)}.muster-roll__head h2{margin:2px 0 0;font-family:var(--font-display);font-size:1.35rem;font-weight:700}.muster-roll__rank-title{display:flex;align-items:center;gap:var(--space-2);margin:0;color:var(--ink-soft);font:italic 400 1rem var(--font-display)}.muster-roll__rank-title:after{content:"";flex:1;border-top:1px solid color-mix(in srgb,var(--ink-700) 30%,transparent)}.muster-roll__list{display:flex;flex-direction:column;margin:var(--space-1) 0 0;padding:0;list-style:none}.muster-roll__row{padding:var(--space-2) 0;border-bottom:1px dashed color-mix(in srgb,var(--ink-700) 30%,transparent)}.muster-roll__row:last-child{border-bottom:0}.muster-roll__row--you{margin-inline:calc(-1 * var(--space-2));padding-inline:var(--space-2);border-radius:4px;background:color-mix(in srgb,var(--brass-600) 18%,transparent)}.muster-roll__line{display:flex;align-items:center;gap:var(--space-3)}.muster-roll__crest{flex-shrink:0}.muster-roll__row--fallen .muster-roll__crest{filter:grayscale(1) opacity(.55)}.muster-roll__who{display:flex;flex:1;flex-direction:column;min-width:0}.muster-roll__name{display:flex;align-items:baseline;flex-wrap:wrap;gap:var(--space-2);font:700 1.05rem var(--font-display);overflow-wrap:anywhere}.muster-roll__name .player-name{color:var(--ink);text-decoration-color:color-mix(in srgb,var(--ink-700) 45%,transparent)}.muster-roll__you{padding:0 6px;border-radius:3px;background:var(--ink);color:var(--parchment-200);font:700 .7rem var(--font-ui);letter-spacing:.1em;text-transform:uppercase}.muster-roll__rank{display:inline-flex;align-items:center;gap:4px;color:var(--ink-soft);font-size:var(--text-label);font-weight:600;letter-spacing:.08em;text-transform:uppercase}.muster-roll__rank svg{fill:currentColor}.muster-roll__rank--leader{color:var(--crimson-700)}.muster-roll__rank--officer{color:var(--brass-800)}.muster-roll__row--fallen .muster-roll__rank{color:var(--crimson-700)}.muster-roll__orders-toggle{flex-shrink:0;display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 var(--space-3);border:1px solid color-mix(in srgb,var(--ink-700) 55%,transparent);border-radius:7px;background:color-mix(in srgb,var(--parchment-100) 25%,transparent);color:var(--ink);font:600 .85rem var(--font-ui);cursor:pointer}.muster-roll__orders-toggle[aria-expanded=true]{background:var(--ink);color:var(--parchment-200)}.muster-roll__orders{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-2);padding:var(--space-3);border-radius:6px;background:linear-gradient(180deg,color-mix(in srgb,var(--oak-700) 82%,transparent),color-mix(in srgb,var(--oak-950) 90%,transparent)),var(--tex-planks-dark, none) center / 420px auto,var(--oak-700);color:var(--fg)}.muster-roll__orders>.game-button{flex:1 1 12rem}.muster-roll__grant{display:flex;flex:1 1 100%;gap:var(--space-2)}.muster-roll__grant>.game-field{flex:1;min-width:0}.muster-roll__foot{display:flex;flex-direction:column;gap:var(--space-2);padding-top:var(--space-3);border-top:2px double color-mix(in srgb,var(--ink-700) 45%,transparent)}.muster-roll__empty{margin:0;text-align:center;font:italic 400 .95rem var(--font-display);color:var(--ink-soft)}.muster-roll__hint{margin:0;font-size:var(--text-body);color:var(--ink)}.muster-roll__gate{display:flex;align-items:center;gap:var(--space-2);min-height:44px;font-size:var(--text-body);font-weight:600;cursor:pointer}.muster-roll__gate input{width:20px;height:20px;accent-color:var(--crimson-700)}.alliance-hall__leave{display:flex;flex-direction:column;gap:var(--space-2);padding-top:var(--space-4);border-top:1px solid color-mix(in srgb,var(--brass-300) 16%,transparent)}@media(min-width:900px){.alliance-hall__layout{display:grid;grid-template-columns:300px minmax(0,1fr);align-items:start;gap:var(--space-6)}.alliance-hall__standard{position:sticky;top:var(--space-4);grid-template-columns:1fr;grid-template-areas:"flag" "titles" "seal" "facts";justify-items:center;text-align:center;padding:var(--space-6) var(--space-4)}.alliance-hall__flag,.alliance-hall__flag .banner{width:160px}.alliance-hall__name{font-size:1.9rem}.alliance-hall__seal{margin-top:calc(-1 * var(--space-2))}.alliance-hall__facts{width:100%;text-align:left}}@media(max-width:380px){.alliance-hall__flag,.alliance-hall__flag .banner{width:72px}.alliance-hall__name{font-size:1.35rem}}.alliance-hall--unsworn{max-width:720px}.alliance-hall--unsworn .alliance-screen__masthead>span{color:var(--brass-300)}.alliance-hall__notice{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4);border:1px solid var(--oak-400);border-radius:6px;background:radial-gradient(ellipse at 50% 30%,color-mix(in srgb,var(--parchment-100) 40%,transparent),color-mix(in srgb,var(--oak-500) 28%,transparent)),var(--tex-plaster, none) center / 320px auto,var(--parchment-400);color:var(--ink);box-shadow:inset 0 0 24px color-mix(in srgb,var(--ink-700) 45%,transparent),0 0 0 3px color-mix(in srgb,var(--ink-900) 85%,transparent),0 0 0 4px var(--brass-600),0 10px 24px #00000073}.alliance-hall__notice-title{margin:0;font:700 1.15rem var(--font-display)}.alliance-hall__notice .alliance-screen__wait{color:var(--crimson-700)}@media(max-width:480px){.alliance-screen__invite-actions{flex:1 1 100%}.alliance-screen__invite-actions>.game-button{flex:1}}.world-map__stage{position:relative;display:flex;flex-direction:column;flex:1;min-height:0}.marches-drawer{position:absolute;z-index:6;top:.6rem;left:.6rem;max-width:calc(100% - 1.2rem);max-height:calc(100% - 7rem)}.marches-drawer .marches-panel{padding:0 .6rem}.marches-drawer .marches-panel__row{background:var(--page-raised);border-color:color-mix(in srgb,var(--page-line) 33%,transparent);color:var(--parchment-300)}.marches-panel__row--live{padding:0;gap:0}.marches-panel__focus{display:flex;flex:1;flex-wrap:wrap;align-items:center;gap:.25rem .5rem;min-height:44px;padding:.55rem .75rem;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.marches-panel__focus[aria-pressed=true]{box-shadow:inset 3px 0 0 var(--brass-300)}.marches-panel__show{flex-basis:100%;color:var(--title-gilt);font-size:.72rem}.marches-panel__row--live .marches-panel__recall{margin-right:.5rem}.world-map__march-token-3d--focused{z-index:2}.world-map__march-token-3d--focused .world-map__march-token-label-3d{outline:2px solid var(--brass-300);outline-offset:1px}.march-sheet__route{margin:0;font:600 .95rem Georgia,serif}.march-sheet__eta{margin:0;color:var(--amber);font-size:.85rem}.march-sheet__heroes{display:flex;flex-wrap:wrap;gap:.6rem;margin:0;padding:0;list-style:none}.march-sheet__heroes li{display:flex;flex-direction:column;align-items:center;gap:.2rem;font-size:.72rem}.march-sheet__actions{display:flex;flex-wrap:wrap;gap:.5rem}.march-sheet__actions>button{flex:1;min-height:44px}.march-sheet__recall{border:1px solid var(--err);border-radius:.375rem;background:transparent;color:var(--err)}button.world-map__under-attack{display:block;width:calc(100% - 1.5rem);min-height:44px;font:inherit;font-weight:600;cursor:pointer}.world-map__under-attack-show{font-weight:500;text-decoration:underline}.marches-drawer .marches-panel__row{flex-wrap:wrap;row-gap:.2rem}.marches-drawer .marches-panel__route{flex-basis:100%;font-weight:600}.world-map .world-map__canvas-3d{position:relative;min-height:430px;border:1px solid var(--page-line);border-radius:.35rem;overflow:hidden;box-shadow:inset 0 0 40px #0003,0 12px 28px #0003}.world-map__camera-controls{position:absolute;z-index:5;bottom:.6rem;left:.6rem;right:.6rem;display:flex;flex-wrap:wrap;gap:.35rem}.world-map .world-map__atmosphere{position:absolute;z-index:5;top:.6rem;right:.6rem}.world-map__camera-controls button,.world-map .world-map__atmosphere{flex:1 1 auto;white-space:nowrap;min-width:64px;min-height:44px;border:1px solid var(--page-line);border-radius:.2rem;padding:.45rem;background:color-mix(in srgb,var(--page-raised) 93%,transparent);color:var(--parchment-300);font-size:.75rem;box-shadow:0 2px 8px #00000045}.world-map__camera-controls button:focus-visible,.world-map .world-map__atmosphere:focus-visible{outline:2px solid var(--brass-200);outline-offset:2px}.world-map__camera-controls button:disabled,.world-map .world-map__atmosphere:disabled{opacity:.5}.world-map .world-map__label-3d{color:var(--parchment-300);border:1px solid color-mix(in srgb,var(--brass-400) 30%,transparent);background:color-mix(in srgb,var(--page-raised) 90%,transparent);padding:.2rem .35rem;border-radius:.15rem}.world-map .world-map__label-3d{font-size:10px;font-weight:500;letter-spacing:.045em;text-transform:none;padding:3px 7px;border-color:color-mix(in srgb,var(--parchment-500) 33%,transparent);background:color-mix(in srgb,var(--page-raised) 80%,transparent);box-shadow:0 2px 6px #0003;white-space:nowrap;line-height:1.2;pointer-events:auto;cursor:pointer;touch-action:none}.world-map .world-map__label-3d:after{content:"";position:absolute;left:50%;top:50%;width:max(100%,44px);height:max(100%,44px);transform:translate(-50%,-50%)}.world-map .world-map__label-3d:active:not(:disabled){transform:translate(-50%,-100%)}.world-map .world-map__label-3d:focus-visible{outline:2px solid var(--control-focus);outline-offset:3px}.world-map .world-map__label-3d--capital{padding:4px 10px 3px;border-color:color-mix(in srgb,var(--brass-300) 60%,transparent)}.world-map__valley-name-3d{font:400 1.05rem/1.1 var(--font-display);letter-spacing:.06em;color:var(--parchment-300);text-shadow:0 1px 2px rgb(0 0 0 / .67)}.world-map .world-map__label-3d--rival{color:var(--fg);background:color-mix(in srgb,var(--crimson-900) 92%,transparent);border-color:color-mix(in srgb,var(--crimson-400) 80%,transparent)}.world-map .world-map__label-3d--yours{color:#d6ecc7;background:#183422e6;border-color:color-mix(in srgb,var(--moss-500) 60%,transparent)}.world-map .world-map__label-3d--ally{color:#d5e6f6;background:#142a40e6;border-color:color-mix(in srgb,var(--territory-ally) 60%,transparent)}.world-map__camera-controls{right:auto;max-width:calc(100% - 1.2rem)}.world-map .world-map__keep-label-3d{position:absolute;transform:translate(-50%,-100%);touch-action:none;min-height:44px;padding:.35rem .8rem;border:1px solid color-mix(in srgb,var(--brass-300) 60%,transparent);border-radius:999px;background:linear-gradient(180deg,var(--crimson-700),var(--crimson-900));color:var(--brass-100);font:600 .8rem/1 Georgia,serif;letter-spacing:.04em;white-space:nowrap;box-shadow:0 3px 10px #00000087;pointer-events:auto;cursor:pointer}.world-map .world-map__keep-label-3d:active:not(:disabled){transform:translate(-50%,-100%)}.world-map .world-map__keep-label-3d:focus-visible{outline:2px solid var(--control-focus);outline-offset:3px}.app-shell{--shell-width: 1200px;--shell-gutter: var(--space-4, 16px);height:100dvh;min-height:0;display:flex;flex-direction:column;overflow:hidden;background:radial-gradient(ellipse at top,color-mix(in srgb,var(--page-raised) 20%,transparent),transparent 65%),var(--page)}.app-shell .app-shell__content{position:relative;flex:1 1 0;min-height:0;min-width:0;overflow-y:auto;overscroll-behavior-y:contain;scrollbar-color:var(--pine-500) var(--pine-800)}.app-shell .app-shell__content--keep{overflow:hidden}.app-shell .resource-header{flex:none;position:relative;z-index:10;display:block;padding:max(8px,env(safe-area-inset-top)) max(var(--shell-gutter),env(safe-area-inset-right)) 8px max(var(--shell-gutter),env(safe-area-inset-left));background:linear-gradient(110deg,var(--pine-700),var(--pine-800));border-bottom:1px solid var(--brass-700);box-shadow:0 3px 20px #0003}.resource-header__inner{width:100%;max-width:var(--shell-width);margin-inline:auto;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px 16px}.resource-header__identity{display:flex;align-items:center;min-width:0;gap:8px;color:var(--parchment-300);font:400 1.15rem var(--font-display, Georgia),serif}.resource-header__crest{flex:none}.resource-header__name{display:flex;flex-direction:column;min-width:0;line-height:1.15}.resource-header__online{display:inline-flex;align-items:center;gap:4px;font:400 .6875rem / 1.3 var(--font-ui);color:var(--sage-300);white-space:nowrap}.resource-header__online-dot{flex:none;width:6px;height:6px;border-radius:50%;background:var(--ok)}.app-shell .resource-header__season{grid-column:2;grid-row:1;min-width:0;font-size:.75rem;line-height:1.4;color:var(--sage-300);white-space:normal}.app-shell .resource-header__season-name{color:var(--parchment-400);font-weight:400}.app-shell .resource-header__standing{position:relative;display:flex;flex-direction:column;align-items:flex-end;justify-self:end;padding:0;border:0;background:none;font:inherit;font-size:.75rem;line-height:1.4;text-align:right;cursor:pointer}.app-shell .resource-header__standing:after{content:"";position:absolute;inset:min(0px,calc((100% - 44px)/2)) -8px}.app-shell .resource-header__standing .resource-header__season-name{display:inline-flex;align-items:center;gap:4px;color:var(--brass-100)}.app-shell .resource-header__standing .resource-header__season-name svg{flex:none;color:var(--title-gilt)}.app-shell .resource-header__rank{font-weight:600}.app-shell .resource-header__tier{color:var(--title-gilt);white-space:pre}.app-shell .resource-header__standing:hover .resource-header__rank{text-decoration:underline;text-underline-offset:3px}.app-shell .resource-header__standing:focus-visible{outline:2px solid var(--brass-300);outline-offset:4px;border-radius:4px}.app-shell .resource-header__resources{grid-column:1 / -1;min-width:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.app-shell .resource-header__loading{grid-column:1 / -1;min-height:60px;display:flex;align-items:center}.app-shell .resource-gauge{position:static;min-width:0;border-left:1px solid color-mix(in srgb,var(--brass-700) 25%,transparent)}.app-shell .resource-gauge__button{width:100%;min-width:0;min-height:44px;display:flex;flex-direction:column;gap:4px;padding:4px 8px 6px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--parchment-400);font-variant-numeric:tabular-nums;text-align:left;transition:background-color var(--motion-fast) var(--motion-ease-out),border-color var(--motion-fast) var(--motion-ease-out)}.app-shell .resource-gauge__button:hover,.app-shell .resource-gauge__button[aria-expanded=true]{background:color-mix(in srgb,var(--parchment) 8%,transparent);border-color:color-mix(in srgb,var(--brass-700) 40%,transparent)}.app-shell .resource-gauge__button:focus-visible{outline:2px solid var(--brass-300);outline-offset:1px}.app-shell .resource-gauge__button:active:not(:disabled){transform:none}.resource-gauge__heading{display:flex;align-items:center;gap:4px;min-width:0;font-size:.75rem;line-height:1.4;color:var(--sage-300)}.resource-gauge__heading svg{flex:none;color:var(--brass-400)}.resource-gauge__name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.resource-gauge__rate{flex:none;margin-left:auto;padding:0 5px;border-radius:999px;background:color-mix(in srgb,var(--moss-400) 15%,transparent);color:var(--moss-300);font-size:.6875rem;font-weight:600;line-height:1.5}.resource-gauge__amount{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 4px;font-size:1rem;font-weight:600;line-height:1.25;color:var(--parchment-200);overflow-wrap:anywhere}.resource-gauge__amount small{font-size:.75rem;font-weight:400;color:var(--sage-500)}.resource-gauge__storage{position:relative;display:block;height:5px;overflow:hidden;border-radius:3px;background:var(--pine-950);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--brass-700) 19%,transparent)}.resource-gauge__storage>span{position:relative;display:block;height:100%;min-width:2px;border-radius:inherit;background:linear-gradient(90deg,var(--moss-600),var(--moss-400))}.resource-gauge__storage--producing>span:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent 0%,color-mix(in srgb,var(--parchment-100) 25%,transparent) 50%,transparent 100%);background-size:40px 100%;background-repeat:no-repeat;animation:resource-gauge-glint 3.2s linear infinite}.reduced-motion .resource-gauge__storage--producing>span:after{display:none}@keyframes resource-gauge-glint{0%{background-position:-40px 0}to{background-position:calc(100% + 40px) 0}}.resource-gauge--amber .resource-gauge__storage>span{background:linear-gradient(90deg,var(--brass-600),var(--brass-300))}.resource-gauge--full .resource-gauge__storage>span{background:linear-gradient(90deg,var(--crimson-600),var(--crimson-300))}.resource-gauge__forecast{font-size:.6875rem;line-height:1.3;color:var(--sage-500);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.resource-gauge--amber .resource-gauge__forecast{color:var(--brass-300)}.resource-gauge--full .resource-gauge__forecast{color:var(--crimson-300);font-weight:600}.app-shell .resource-ledger{position:absolute;z-index:20;top:calc(100% + 6px);left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));max-height:60dvh;overflow-y:auto;padding:12px 14px 14px;border:1px solid var(--brass-700);border-radius:8px;background:linear-gradient(170deg,var(--pine-700),var(--pine-800));box-shadow:0 12px 32px #000000ab;color:var(--parchment-400);font-size:.8125rem;line-height:1.45;text-align:left;font-variant-numeric:tabular-nums}.resource-ledger__head{display:flex;align-items:center;gap:8px;color:var(--brass-400)}.resource-ledger__head h2{flex:1;margin:0;color:var(--brass-200);font:400 1.1rem var(--font-display, Georgia),serif}.app-shell .resource-ledger__close{width:44px;height:44px;margin:-8px -8px -8px 0;border:0;border-radius:6px;background:transparent;color:var(--sage-300)}.app-shell .resource-ledger__close:focus-visible{outline:2px solid var(--brass-300)}.resource-ledger h3{margin:12px 0 4px;color:var(--sage-500);font-size:.6875rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.resource-ledger p{margin:0}.resource-ledger__stored strong{color:var(--parchment-200);font-size:1rem}.resource-ledger__rate{color:var(--moss-300);font-weight:600}.resource-ledger__split{display:flex;height:8px;margin:6px 0;overflow:hidden;border-radius:4px;background:var(--pine-950);gap:2px}.resource-ledger__split>span{flex-basis:0}.resource-ledger__split-building,.resource-ledger__swatch--building{background:var(--source-buildings)}.resource-ledger__split-nodes,.resource-ledger__swatch--nodes{background:var(--source-nodes)}.resource-ledger__split-alliance,.resource-ledger__swatch--alliance{background:var(--source-alliance)}.resource-ledger__sources{display:grid;gap:2px;margin:0;padding:0;list-style:none}.resource-ledger__sources li{display:flex;align-items:baseline;gap:6px}.resource-ledger__swatch{flex:none;width:8px;height:8px;border-radius:2px}.resource-ledger__note{margin-top:12px!important;padding-top:8px;border-top:1px solid color-mix(in srgb,var(--brass-700) 25%,transparent);color:var(--sage-500);font-size:.75rem}@media(max-width:639px){.resource-gauge__name{display:none}}@media(min-width:640px){.app-shell .resource-gauge{position:relative}.app-shell .resource-ledger{left:0;right:auto;width:320px}.app-shell .resource-gauge:last-child .resource-ledger{left:auto;right:0}}.app-shell .tab-bar{flex:none;display:block;padding:4px max(8px,env(safe-area-inset-right)) max(4px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));border-top:1px solid var(--brass-700);background:linear-gradient(var(--pine-700),var(--pine-800));box-shadow:0 -4px 24px #00000045}.tab-bar__items{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));max-width:720px;width:100%;margin-inline:auto}.app-shell .tab-bar__tab{position:relative;min-width:44px;min-height:52px;gap:4px;border-radius:4px;color:var(--sage-300);font-size:.75rem;letter-spacing:0}.app-shell .tab-bar__icon{display:flex;align-items:center;justify-content:center}.app-shell .tab-bar__tab--active{color:var(--brass-200);background:linear-gradient(color-mix(in srgb,var(--brass-600) 19%,transparent),color-mix(in srgb,var(--brass-600) 2%,transparent))}.app-shell .tab-bar__tab--active:before{content:"";position:absolute;top:0;width:28px;height:2px;background:var(--brass-300)}.app-shell .tab-bar__tab:focus-visible{outline:2px solid var(--brass-300);outline-offset:-3px}.app-shell .tab-bar__tab:active{transform:none}@media(min-width:1024px){.resource-header__inner{grid-template-columns:160px minmax(0,1fr) 160px;gap:24px}.app-shell .resource-header__resources{grid-column:2;grid-row:1}.app-shell .resource-header__season{grid-column:3}.app-shell .tab-bar__tab{flex-direction:row;gap:8px;min-height:48px}}@media(max-width:380px){.app-shell{--shell-gutter: 8px}.resource-header__inner{gap:8px}.resource-header__identity{font-size:1rem;gap:4px}.app-shell .resource-header__resources{gap:4px}.app-shell .resource-gauge__button{padding-inline:4px}.resource-gauge__heading{gap:2px}.resource-gauge__heading svg{width:12px}}@media(max-height:500px)and (min-width:640px){.resource-header__inner{grid-template-columns:100px minmax(0,1fr) 120px;gap:12px}.resource-header__identity span{font-size:.875rem}.app-shell .resource-header__resources{grid-column:2;grid-row:1}.app-shell .resource-header__season{grid-column:3}.app-shell .tab-bar__tab{flex-direction:row;gap:4px;min-height:44px}}.app-shell .app-shell__pane{display:contents}.app-shell .app-shell__pane[hidden]{display:none}.keep-screen--3d{position:relative;display:flex;flex-direction:column;gap:0;width:100%;height:100%;min-height:0;padding:0;overflow:auto;background:var(--pine-800)}.keep-screen__map-shortcut{position:absolute;top:var(--space-3, .75rem);right:var(--space-3, .75rem);z-index:2;box-shadow:0 2px 10px #0006}.keep-scene-3d button:focus-visible{outline:2px solid var(--brass-300);outline-offset:-3px}.keep-screen__world{position:relative;flex:1 1 auto;min-height:240px}.keep-scene-3d{position:absolute;top:0;right:0;bottom:0;left:0;display:block;overflow:hidden;background:var(--pine-800)}.keep-scene-3d__canvas{display:block;width:100%;height:100%;min-height:0;touch-action:none;cursor:grab}.keep-scene-3d__canvas:active{cursor:grabbing}.keep-scene-3d__vignette{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(180deg,color-mix(in srgb,var(--well) 50%,transparent),transparent 30%,transparent 65%,color-mix(in srgb,var(--bg) 38%,transparent))}.keep-scene-3d__veil{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;display:grid;place-items:center;background:var(--pine-800);color:var(--parchment-200);font-size:.9rem}.keep-scene-3d__identity{position:absolute;z-index:2;top:.8rem;left:1rem;display:flex;flex-direction:column;align-items:flex-start;max-height:calc(100% - 1.6rem);pointer-events:none;color:var(--fg);text-shadow:0 2px 12px var(--pine-800)}.keep-scene-3d__eyebrow{color:var(--title-gilt);letter-spacing:.27em;font-size:.55rem;font-weight:700}.keep-scene-3d__identity>:not(.keep-realm){flex-shrink:0}.keep-scene-3d__identity h1{margin:.2rem 0;font:400 clamp(1.1rem,3vw,1.6rem) Georgia,serif;letter-spacing:-.025em}.keep-scene-3d__subtitle{font-size:.65rem;color:var(--fg)}.keep-scene-3d__labels{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.keep-scene-3d__plot-label{position:absolute;visibility:hidden;touch-action:none;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0 .2rem;border:0;border-radius:0;background:transparent;color:var(--parchment-200);text-shadow:0 1px 3px var(--pine-950),0 1px 7px var(--pine-950);font:600 .7rem Georgia,serif;pointer-events:auto;cursor:pointer;white-space:nowrap}.keep-scene-3d .keep-scene-3d__plot-label:active:not(:disabled){transform:translate(-50%,-50%)}.keep-scene-3d__name{padding:.2rem .4rem;border-bottom:1px solid color-mix(in srgb,var(--brass-300) 53%,transparent);background:color-mix(in srgb,var(--pine-800) 74%,transparent);border-radius:3px}.keep-scene-3d__name small{display:inline-block;margin-left:.15rem;color:var(--title-gilt);font:600 .6rem system-ui,sans-serif}.keep-scene-3d__works,.keep-scene-3d__queued>span{display:inline-flex;align-items:center;gap:.3rem;margin-top:.2rem;padding:.15rem .45rem .15rem .2rem;border:1px solid color-mix(in srgb,var(--brass-300) 40%,transparent);border-radius:999px;background:color-mix(in srgb,var(--bg) 88%,transparent);color:var(--brass-100);font:700 .62rem system-ui,sans-serif;font-variant-numeric:tabular-nums;box-shadow:0 2px 6px #00000087}.keep-scene-3d__ring{flex:none;transform:rotate(-90deg);fill:none;stroke-width:3}.keep-scene-3d__ring circle:first-child{stroke:color-mix(in srgb,var(--fg) 15%,transparent)}.keep-scene-3d__ring circle:last-child{stroke:var(--title-gilt);stroke-linecap:round;transition:stroke-dasharray var(--motion-slow, .4s) ease}.keep-scene-3d__queued{display:flex;flex-direction:column;align-items:center}.keep-scene-3d__queued>span{padding-left:.45rem;color:var(--brass-100);border-style:dashed}.keep-scene-3d__plot-label .keep-scene-3d__queued small{max-width:11rem;margin:.15rem 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--parchment-300);font:500 .58rem system-ui,sans-serif;text-shadow:0 1px 3px var(--oak-950)}.keep-scene-3d__builders{display:flex;width:fit-content;align-items:center;gap:.3rem;margin-top:.35rem;padding:.15rem .5rem;border-radius:999px;background:color-mix(in srgb,var(--pine-800) 74%,transparent);color:var(--brass-100);font-size:.65rem;font-weight:600}.keep-scene-3d__plot-label:hover>.keep-scene-3d__name,.keep-scene-3d__plot-label[aria-pressed=true]>.keep-scene-3d__name{background:color-mix(in srgb,var(--oak-500) 91%,transparent)}.keep-screen--3d .keep-screen__banner{flex:none;margin:0;padding:.5rem .75rem;overflow-wrap:anywhere}.keep-scene-3d__name small{font-size:.75rem}.battle-scene-3d{position:relative;width:100%;height:clamp(19rem,48vh,34rem);overflow:hidden;border:1px solid color-mix(in srgb,var(--amber) 28%,transparent);border-radius:.9rem;background:radial-gradient(circle at 50% 75%,color-mix(in srgb,var(--oak-400) 12%,transparent),transparent 44%),var(--bg);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--parchment-100) 2%,transparent),0 1rem 2.4rem #00000042}.battle-scene-3d canvas{display:block;width:100%;height:100%;touch-action:none}.battle-scene-3d-loading{height:clamp(19rem,48vh,34rem);display:grid;place-items:center;border:1px solid var(--border);border-radius:.9rem;color:var(--muted);background:linear-gradient(180deg,var(--surface) 0%,var(--bg) 100%)}@media(max-width:640px){.battle-scene-3d,.battle-scene-3d-loading{height:20rem;border-radius:.65rem}}.battle-scene-3d__veil{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:var(--muted);background:linear-gradient(180deg,var(--surface) 0%,var(--bg) 100%);z-index:1}.battle-field-labels{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.battle-field-labels__hero,.battle-field-labels__counter{position:absolute;top:0;left:0;visibility:hidden}.battle-field-labels__hero{display:flex;flex-direction:column;align-items:center;gap:.15rem;max-width:7.5rem}.battle-field-labels__badges{display:flex;flex-wrap:wrap;justify-content:center;gap:.15rem}.battle-field-labels__badge{padding:.05rem .3rem;border:1px solid currentColor;border-radius:.6rem;background:color-mix(in srgb,var(--oak-950) 82%,transparent);font-size:.625rem;font-weight:600;line-height:1.25;white-space:nowrap}.battle-field-labels__badge--shield{color:var(--river-300)}.battle-field-labels__badge--debuff{color:var(--crimson-300)}.battle-field-labels__badge--taunting,.battle-field-labels__badge--buff{color:var(--moss-300)}.battle-field-labels__float{font-size:1rem;font-weight:800;line-height:1;white-space:nowrap;text-shadow:0 1px 0 var(--oak-950),0 0 4px rgba(0,0,0,.9);animation:battle-field-float var(--motion-slow) var(--motion-ease-out) both}.battle-field-labels__float--damage{color:var(--crimson-300)}.battle-field-labels__float--heal{color:var(--moss-300)}.battle-field-labels__float--shield{color:var(--river-300)}@keyframes battle-field-float{0%{transform:translateY(.6rem);opacity:.4}to{transform:translateY(0);opacity:1}}.battle-field-labels__counter{margin:0;padding:.2rem .55rem;border:1px solid var(--brass-200);border-radius:.3rem;background:color-mix(in srgb,var(--bg) 90%,transparent);color:var(--brass-200);font-size:.8125rem;font-weight:700;white-space:nowrap}@media(max-width:640px){.battle-field-labels__badge{font-size:.5625rem}.battle-field-labels__float{font-size:.875rem}.battle-field-labels__counter{font-size:.75rem}}.squad-stage-3d{width:100%;height:clamp(18rem,42vh,29rem);overflow:hidden;border:1px solid color-mix(in srgb,var(--brass-500) 30%,transparent);border-radius:.85rem;background:var(--bg);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--parchment-100) 2%,transparent)}.squad-stage-3d canvas{display:block;width:100%;height:100%;touch-action:manipulation}.squad-stage-3d-loading{width:100%;height:18rem;display:grid;place-items:center;border:1px solid var(--border);border-radius:.85rem;background:linear-gradient(180deg,var(--surface),var(--bg));color:var(--muted)}@media(max-width:640px){.squad-stage-3d{height:18rem}}
