@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-weight-normal:400;--font-weight-semibold:600;--ease-out:cubic-bezier(0, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--color-bg:var(--color-bg);--color-surface-1:var(--color-surface-1);--color-surface-2:var(--color-surface-2);--color-surface-3:var(--color-surface-3);--color-surface-sunken:var(--color-surface-sunken);--color-glass:var(--color-glass);--color-glass-strong:var(--color-glass-strong);--color-border:var(--color-border);--color-border-strong:var(--color-border-strong);--color-text:var(--color-text);--color-text-dim:var(--color-text-dim);--color-on-accent:var(--color-on-accent);--color-on-data:var(--color-on-data);--color-backdrop:var(--color-backdrop);--color-accent:var(--color-accent);--color-accent-strong:var(--color-accent-strong);--color-accent-soft:var(--color-accent-soft);--color-accent-line:var(--color-accent-line);--color-gold:var(--color-gold);--color-success:var(--color-success);--color-warning:var(--color-warning);--color-danger:var(--color-danger);--color-danger-soft:var(--color-danger-soft);--color-link:var(--color-link);--color-focus:var(--color-focus);--color-online:var(--color-online);--color-crit:var(--color-crit);--color-fumble:var(--color-fumble);--color-crit-fumble:var(--color-crit-fumble);--color-dropped:var(--color-dropped);--radius-sm:var(--radius-sm);--radius-md:var(--radius-md);--radius-lg:var(--radius-lg);--radius-round:var(--radius-round);--shadow-1:var(--shadow-1);--shadow-2:var(--shadow-2);--font-sans:var(--font-sans);--font-serif:var(--font-serif);--font-display:var(--font-display);--font-title:var(--font-title);--font-mono:var(--font-mono)}}@layer base,components;@layer utilities{.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:0}.top-0{top:0}.right-0{right:0}.left-0{left:0}.z-0{z-index:0}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.m-0{margin:0}.mt-\(--auth-card-top\){margin-top:var(--auth-card-top)}.ml-1{margin-left:var(--space-1)}.ml-auto{margin-left:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.h-full{height:100%}.max-h-\(--campaign-desc-max-h\){max-height:var(--campaign-desc-max-h)}.max-h-\[70vh\]{max-height:70vh}.min-h-0{min-height:0}.w-\(--attr-name-w\){width:var(--attr-name-w)}.w-\(--auth-card-w\){width:var(--auth-card-w)}.w-\(--marker-form-w\){width:var(--marker-form-w)}.w-\(--qty-w\){width:var(--qty-w)}.w-\[min\(var\(--lobby-max-w\)\,100\%\)\]{width:min(var(--lobby-max-w),100%)}.w-full{width:100%}.max-w-\(--list-filter-max-w\){max-width:var(--list-filter-max-w)}.min-w-0{min-width:0}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.grid-cols-\[repeat\(auto-fill\,minmax\(var\(--campaign-card-min-w\)\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(var(--campaign-card-min-w),1fr))}.flex-col{flex-direction:column}.items-center{align-items:center}.items-end{align-items:flex-end}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-5{gap:var(--space-5)}.gap-6{gap:var(--space-6)}.self-start{align-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-t-accent-line{border-top-color:var(--color-accent-line)}.border-t-border{border-top-color:var(--color-border)}.border-b-border{border-bottom-color:var(--color-border)}.bg-\(--table-bg\){background-color:var(--table-bg)}.p-3{padding:var(--space-3)}.p-4{padding:var(--space-4)}.p-5{padding:var(--space-5)}.p-6{padding:var(--space-6)}.px-5{padding-inline:var(--space-5)}.py-4{padding-block:var(--space-4)}.pb-4{padding-bottom:var(--space-4)}.text-center{text-align:center}.font-display{font-family:var(--font-display)}.font-title{font-family:var(--font-title)}.text-\[1\.3em\]{font-size:1.3em}.text-md{font-size:var(--font-size-md)}.text-xs{font-size:var(--font-size-xs)}.leading-none{--tw-leading:1;line-height:1}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[0\.02em\]{--tw-tracking:.02em;letter-spacing:.02em}.tracking-\[0\.08em\]{--tw-tracking:.08em;letter-spacing:.08em}.tracking-\[0\.12em\]{--tw-tracking:.12em;letter-spacing:.12em}.whitespace-pre-wrap{white-space:pre-wrap}.text-accent{color:var(--color-accent)}.text-accent-strong{color:var(--color-accent-strong)}.text-text-dim{color:var(--color-text-dim)}.uppercase{text-transform:uppercase}.scheme-light{color-scheme:light}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.\[filter\:drop-shadow\(0_0_6px_var\(--color-accent-line\)\)\]{filter:drop-shadow(0 0 6px var(--color-accent-line))}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}:root{--palette-ink-950: #15100c;--palette-ink-900: #1c1611;--palette-ink-850: #241c16;--palette-ink-800: #2c231b;--palette-ink-750: #362b21;--palette-ink-700: #4b3c2e;--palette-ink-600: #65513f;--palette-ink-400: #ab9a82;--palette-ink-100: #eee4d1;--palette-white: #ffffff;--palette-black: #000000;--palette-red-700: #a8322b;--palette-red-600: #c0392b;--palette-red-500: #e2574c;--palette-red-300: #ff7b72;--palette-green-600: #27ae60;--palette-green-400: #3fb950;--palette-brass-600: #a87c32;--palette-brass-500: #c99a4b;--palette-brass-400: #e0b968;--palette-brass-200: #f3e0b0;--palette-accent-600: var(--palette-brass-600);--palette-accent-500: var(--palette-brass-500);--palette-accent-400: var(--palette-brass-400);--palette-accent-200: var(--palette-brass-200);--palette-blue-500: #3fa9f5;--palette-blue-300: #6ea8fe;--palette-orange-500: #e67e22;--palette-gold-500: #d4a64a;--palette-gold-300: #e8c987;--palette-gold-400: #f1c40f;--palette-purple-600: #8e44ad;--palette-purple-300: #c9a7e8;--palette-parchment-100: #fbf7ec;--palette-parchment-200: #f1e6c8;--palette-parchment-300: #d8cba5;--palette-sepia-900: #241d18;--palette-sepia-600: #6b5a48;--palette-oxblood-700: #7a1e1e;--palette-bronze-600: #8a6a2f;--palette-bronze-300: #c9a24a;--palette-forest-600: #2f7d4a;--palette-sky-700: #2c5d8f;--palette-slate-600: #3d5a80;--palette-violet-600: #5b4b8a;--palette-copper-600: #a0522d;--palette-silver-500: #7d8590;--palette-electrum-600: #5f8a73;--palette-platinum-600: #6b7a99;--palette-vermilion-800: #922610;--palette-ember-400: #d9694a;--palette-ember-300: #e89a7a;--palette-umber-500: #5a4636;--palette-umber-700: #372b21;--palette-umber-800: #2c231b;--palette-umber-900: #1b1510;--palette-paper-50: #fdfdfb;--color-bg: var(--palette-ink-900);--color-surface-1: var(--palette-ink-850);--color-surface-2: var(--palette-ink-800);--color-surface-3: var(--palette-ink-750);--color-surface-sunken: var(--palette-ink-950);--color-glass: color-mix(in srgb, var(--palette-ink-850) 72%, transparent);--color-glass-strong: color-mix(in srgb, var(--palette-ink-850) 88%, transparent);--color-border: var(--palette-ink-700);--color-border-strong: var(--palette-ink-600);--color-text: var(--palette-ink-100);--color-text-dim: var(--palette-ink-400);--color-on-accent: var(--palette-ink-950);--color-on-data: var(--palette-white);--color-backdrop: rgb(10 6 2 / .7);--color-accent: var(--palette-accent-500);--color-accent-strong: var(--palette-accent-400);--color-accent-soft: color-mix(in srgb, var(--palette-accent-500) 14%, transparent);--color-accent-line: color-mix(in srgb, var(--palette-accent-500) 45%, transparent);--color-gold: var(--palette-gold-500);--color-success: var(--palette-green-600);--color-warning: var(--palette-orange-500);--color-danger: var(--palette-red-300);--color-danger-soft: color-mix(in srgb, var(--palette-red-500) 14%, transparent);--color-link: var(--palette-accent-400);--color-focus: var(--palette-accent-400);--color-online: var(--palette-green-400);--glow-accent: 0 0 0 1px var(--color-accent-line), 0 0 18px color-mix(in srgb, var(--palette-accent-500) 28%, transparent);--edge-highlight: inset 0 1px 0 color-mix(in srgb, var(--palette-white) 6%, transparent);--fx-ink: var(--palette-accent-200);--fx-accent: var(--palette-accent-500);--fx-gold: var(--palette-gold-300);--fx-vignette: radial-gradient(ellipse 120% 90% at 50% 20%, transparent 0%, color-mix(in srgb, var(--palette-ink-950) 85%, transparent) 100%);--grain-opacity: .06;--thumb-opacity: .9;--thumb-opacity-hover: 1;--page-glow: radial-gradient(ellipse 70% 45% at 35% -8%, color-mix(in srgb, var(--color-accent) 9%, transparent), transparent 70%), radial-gradient(ellipse 50% 40% at 100% 110%, color-mix(in srgb, var(--color-accent) 4%, transparent), transparent 70%);--table-bg: #2a231d;--table-ink: #e6dccb;--table-dice: #d9b46a;--table-fumble: #f27b78;--table-water: #5b8fae;--table-forest: #5f9468;--table-hills: #a59a62;--table-mountain: #93857a;--color-crit: var(--palette-green-400);--color-fumble: var(--palette-red-300);--color-crit-fumble: var(--palette-blue-500);--color-dropped: var(--palette-ink-400);--chat-whisper-hue: oklch(from var(--palette-accent-500) .62 .13 calc(h + 150) );--chat-whisper-bg: color-mix(in srgb, var(--chat-whisper-hue) 20%, transparent);--chat-whisper-border: var(--chat-whisper-hue);--chat-desc-bg: color-mix(in srgb, var(--palette-gold-500) 14%, transparent);--chat-desc-text: var(--palette-parchment-200);--chat-emote-text: var(--palette-gold-400);--chat-system-bg: var(--palette-ink-950);--chat-template-header-bg: transparent;--chat-template-header-text: var(--tpl-edge);--chat-template-row-alt: color-mix(in srgb, var(--palette-ink-750) 50%, transparent);--chat-external-badge: var(--palette-orange-500);--chat-inline-roll-bg: var(--palette-ink-750);--chat-whisper-text: oklch(from var(--chat-whisper-hue) .84 .09 h);--chat-inline-roll-border: var(--palette-gold-500);--tpl-paper-1: var(--palette-umber-700);--tpl-paper-2: var(--palette-umber-800);--tpl-ink: var(--palette-parchment-200);--tpl-ink-dim: var(--palette-parchment-300);--tpl-label: var(--palette-bronze-300);--tpl-edge: var(--palette-ember-400);--tpl-link: var(--palette-ember-300);--tpl-border: var(--palette-umber-500);--tpl-frame: color-mix(in srgb, var(--palette-bronze-300) 35%, transparent);--tpl-stripe: color-mix(in srgb, var(--palette-parchment-100) 5%, transparent);--tpl-roll-bg: var(--palette-umber-900);--tpl-roll-accent: var(--palette-gold-500);--tpl-shadow: 0 2px 12px rgb(0 0 0 / .45);--chat-template-bg: linear-gradient(170deg, var(--tpl-paper-1), var(--tpl-paper-2));--chat-template-text: var(--tpl-ink);--chat-template-dim: var(--tpl-ink-dim);--chat-template-label: var(--tpl-label);--chat-template-border: var(--tpl-border);--chat-template-edge: var(--tpl-edge);--chat-template-frame: var(--tpl-frame);--chat-template-frame-gap: var(--tpl-paper-1);--chat-template-bar: color-mix(in srgb, var(--tpl-edge) 50%, var(--tpl-paper-1));--chat-template-rule: linear-gradient(90deg, var(--tpl-edge), transparent);--chat-template-sub-bg: transparent;--chat-template-sub-text: var(--tpl-ink-dim);--chat-template-stripe: var(--tpl-stripe);--chat-template-link: var(--tpl-link);--chat-template-roll-bg: var(--tpl-roll-bg);--chat-template-roll-border: var(--tpl-border);--chat-template-roll-accent: var(--tpl-roll-accent);--chat-template-shadow: var(--tpl-shadow);--chat-tooltip-w: 260px;--chat-input-max-h: 160px;--chat-table-img: 48px;--roll-card-bg: var(--color-surface-2);--roll-card-border: var(--color-border);--roll-card-edge: var(--color-gold);--roll-die-bg: var(--color-surface-3);--roll-die-border: var(--color-border-strong);--roll-die-text: var(--color-text);--roll-die-size: 22px;--roll-total-bg: var(--color-surface-sunken);--roll-total-w: 48px;--roll-total-font: 22px;--roll-crit-soft: color-mix(in srgb, var(--color-crit) 16%, transparent);--roll-fumble-soft: color-mix(in srgb, var(--color-fumble) 16%, transparent);--roll-both-soft: color-mix(in srgb, var(--color-crit-fumble) 16%, transparent);--turn-tracker-w: 270px;--turn-active-bg: color-mix(in srgb, var(--palette-gold-500) 18%, transparent);--turn-active-border: var(--palette-gold-500);--audio-banner-bg: var(--palette-orange-500);--audio-banner-text: var(--palette-ink-900);--card-face-bg: var(--palette-paper-50);--card-face-text: var(--palette-sepia-900);--card-face-dim: var(--palette-sepia-600);--card-red: var(--palette-red-600);--card-border: var(--palette-parchment-300);--card-back-1: var(--palette-oxblood-700);--card-back-2: var(--palette-red-700);--card-w: 72px;--card-h: 100px;--card-w-sm: 54px;--card-h-sm: 76px;--card-w-lg: 180px;--card-h-lg: 250px;--macrobar-bg: color-mix(in srgb, var(--palette-ink-850) 92%, transparent);--quickbar-bg: color-mix(in srgb, var(--color-surface-1) 80%, transparent);--quickbar-text: var(--color-text);--quickbar-text-dim: var(--color-text-dim);--quickbar-border: color-mix(in srgb, var(--color-text) 12%, transparent);--quickbar-hover: color-mix(in srgb, var(--color-text) 10%, transparent);--quickbar-rule: color-mix(in srgb, var(--color-text) 15%, transparent);--quickbar-shadow: var(--shadow-1);--map-trigger-max-w: 240px;--map-list-w: 340px;--map-list-max-h: 60vh;--map-thumb-w: 64px;--map-thumb-h: 40px;--input-narrow: 54px;--handout-img-max-h: 320px;--panel-row-h: 36px;--turn-list-max-h: 60vh;--lobby-max-w: 1000px;--auth-card-w: 360px;--auth-card-top: 8vh;--campaign-card-min-w: 240px;--campaign-desc-max-h: 60px;--campaign-section-min-w: 320px;--wiki-sidebar-w: 236px;--wiki-topbar-h: 52px;--wiki-content-max-w: 1180px;--entity-card-min-w: 180px;--entity-card-img-h: 120px;--entity-portrait: 132px;--infobox-w: 280px;--story-max-w: 76ch;--hover-card-w: 300px;--hover-card-img-h: 120px;--suggestions-max-h: 320px;--quick-search-w: 420px;--attr-name-w: 180px;--qty-w: 72px;--marker-form-w: 300px;--list-filter-max-w: 360px;--map-pin-size: 28px;--map-pin-icon: 15px;--map-pin-tail: 6px;--map-pin-ring: var(--palette-white);--map-pin-label-max-w: 180px;--map-view-h: min(72vh, 760px);--map-view-min-h: 260px;--map-chip-dot: 10px;--map-zoom-button: 34px;--map-manager-name-min-w: 140px;--map-opacity-w: 90px;--tree-indent: 18px;--attitude-bar-w: 64px;--type-tile-min-w: 170px;--calendar-cell-h: 92px;--calendar-cell-h-sm: 44px;--calendar-moon: 9px;--calendar-moon-lg: 14px;--calendar-dot: 5px;--date-year-w: 96px;--date-day-w: 68px;--timeline-rail: 2px;--timeline-node: 24px;--main-timeline-date-w: 150px;--widget-preview-max-h: 340px;--pinned-img: 96px;--icon-choice-size: 34px;--secret-bg: color-mix(in srgb, var(--color-warning) 9%, transparent);--secret-border: color-mix(in srgb, var(--color-warning) 55%, transparent);--attitude-positive: var(--color-success);--attitude-negative: var(--color-danger);--attitude-neutral: var(--color-text-dim);--graph-type-character: var(--palette-blue-500);--graph-type-location: var(--palette-green-600);--graph-type-map: var(--palette-electrum-600);--graph-type-organisation: var(--palette-purple-600);--graph-type-family: var(--palette-copper-600);--graph-type-species: var(--palette-gold-500);--graph-type-creature: var(--palette-red-600);--graph-type-item: var(--palette-brass-400);--graph-type-ability: var(--palette-blue-300);--graph-type-quest: var(--palette-orange-500);--graph-type-journal: var(--palette-ember-400);--graph-type-event: var(--palette-red-300);--graph-type-calendar: var(--palette-sky-700);--graph-type-timeline: var(--palette-violet-600);--graph-type-note: var(--palette-silver-500);--graph-type-tag: var(--palette-ink-400);--graph-node-ink: var(--palette-white);--graph-bg: var(--color-surface-sunken);--graph-edge-field: var(--color-border-strong);--graph-label: var(--color-text);--graph-label-halo: var(--color-surface-sunken);--graph-focus: var(--color-focus);--graph-selected: var(--color-accent);--graph-dim-opacity: .16;--graph-tab-h: min(640px, 70vh);--graph-tooltip-max-w: 280px;--graph-filters-w: 420px;--graph-swatch: 10px;--graph-swatch-line: 16px;--history-list-w: 300px;--history-max-h: 70vh;--history-max-h-stacked: 40vh;--diff-ins-bg: color-mix(in srgb, var(--color-success) 20%, transparent);--diff-ins-line: var(--color-success);--diff-del-bg: color-mix(in srgb, var(--color-danger) 16%, transparent);--diff-del-line: var(--color-danger);--sheet-paper: var(--palette-parchment-100);--sheet-paper-2: var(--palette-parchment-200);--sheet-rule: var(--palette-parchment-300);--sheet-ink: var(--palette-sepia-900);--sheet-ink-dim: var(--palette-sepia-600);--sheet-accent: var(--palette-oxblood-700);--sheet-accent-text: var(--palette-white);--sheet-gold: var(--palette-bronze-600);--sheet-input-bg: color-mix(in srgb, var(--palette-white) 55%, transparent);--sheet-input-border: var(--palette-parchment-300);--sheet-focus: var(--palette-oxblood-700);--sheet-box-bg: color-mix(in srgb, var(--palette-white) 35%, transparent);--sheet-header-tint: color-mix(in srgb, var(--palette-oxblood-700) 14%, transparent);--sheet-roll-hover: color-mix(in srgb, var(--palette-oxblood-700) 12%, transparent);--sheet-good: var(--palette-forest-600);--sheet-warn: var(--palette-orange-500);--sheet-bad: var(--palette-red-700);--sheet-slot: var(--palette-sky-700);--sheet-badge-conc: var(--palette-slate-600);--sheet-badge-ritual: var(--palette-violet-600);--sheet-coin-cp: var(--palette-copper-600);--sheet-coin-sp: var(--palette-silver-500);--sheet-coin-ep: var(--palette-electrum-600);--sheet-coin-gp: var(--palette-bronze-600);--sheet-coin-pp: var(--palette-platinum-600);--sheet-drop-outline: var(--palette-blue-500);--sheet-shadow: 0 1px 2px rgb(0 0 0 / .18);--sheet-tabbar-bg: var(--palette-parchment-200);--statblock-bg: var(--palette-parchment-100);--statblock-text: var(--palette-sepia-900);--statblock-heading: var(--palette-vermilion-800);--statblock-rule: var(--palette-vermilion-800);--statblock-label: var(--palette-vermilion-800);--statblock-shadow: var(--shadow-1);--statblock-token-size: 80px;--compendium-cr-bg: color-mix(in srgb, var(--palette-red-600) 30%, transparent);--compendium-cr-text: var(--palette-red-300);--compendium-level-bg: color-mix(in srgb, var(--palette-purple-600) 28%, transparent);--compendium-level-text: var(--palette-purple-300);--map-void: var(--palette-ink-850);--map-page: #c4cad3;--map-grid-default: var(--palette-black);--map-selection: var(--palette-blue-500);--map-selection-fill: color-mix(in srgb, var(--palette-blue-500) 12%, transparent);--map-turn-ring: var(--palette-gold-400);--map-token-fallback: var(--palette-red-600);--map-token-initials: var(--palette-white);--map-name-bg: rgb(0 0 0 / .65);--map-name-text: var(--palette-white);--map-bar-bg: rgb(0 0 0 / .55);--map-bar-1: var(--palette-green-600);--map-bar-2: var(--palette-blue-500);--map-bar-3: var(--palette-red-600);--map-darkness: var(--palette-black);--map-explored: rgb(0 0 0 / .6);--map-fog-player: var(--palette-black);--map-fog-gm: rgb(0 0 0 / .5);--map-wall: var(--palette-blue-500);--map-door-closed: var(--palette-orange-500);--map-door-open: var(--palette-green-400);--map-light-default: #ffeeaa;--map-ruler-label-bg: rgb(0 0 0 / .75);--map-ruler-label-text: var(--palette-white);--map-ghost-opacity: .45;--map-template-opacity: .15;--map-gm-layer-opacity: .5;--map-aura-opacity: .25;--map-token-outline: rgb(0 0 0 / .6);--map-selection-dash: var(--palette-blue-500);--map-transformer-anchor: var(--palette-white);--map-turn-ring-glow: 12;--map-ghost-outline: var(--palette-white);--map-image-placeholder: var(--palette-ink-400);--map-label-outline: var(--palette-black);--map-ruler-parchment: #f1e3c2;--map-ruler-ink: #3a2414;--map-ruler-fantasy-font: var(--font-sans);--map-wall-selected: var(--palette-white);--map-wall-shadow: var(--palette-black);--map-wall-vertex: var(--palette-white);--map-door-handle-bg: rgb(20 20 26 / .9);--map-fog-reveal-draft: color-mix(in srgb, var(--palette-blue-300) 25%, transparent);--map-fog-reveal-draft-stroke: var(--palette-blue-300);--map-fog-hide-draft: rgb(0 0 0 / .5);--map-fog-hide-draft-stroke: var(--palette-ink-400);--map-marker-bg: rgb(0 0 0 / .6);--map-marker-icon: var(--palette-white);--map-marker-red: var(--palette-red-600);--map-marker-blue: var(--palette-blue-500);--map-marker-green: var(--palette-green-600);--map-marker-yellow: var(--palette-gold-400);--map-marker-purple: var(--palette-purple-600);--map-explored-darkness: .55;--map-dim-darkness: .4;--map-gm-darkness-opacity: .55;--map-gm-fog-opacity: .5;--map-gm-layer-active-opacity: .85;--map-gm-foreground-opacity: .6;--map-ruler-width: 4;--map-wall-width: 3;--map-layer-gm-accent: var(--palette-purple-600);--map-layer-foreground-accent: var(--palette-gold-400);--font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-serif: "Cormorant Garamond", Georgia, serif;--font-display: var(--font-serif);--heading-scale: 1;--font-size-title: calc(34px * var(--heading-scale));--font-size-heading: calc(24px * var(--heading-scale));--font-size-heading-sm: calc(19px * var(--heading-scale));--font-title: "Pirata One", var(--font-sans);--font-mono: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--font-size-xs: 11px;--font-size-sm: 12px;--font-size-md: 14px;--font-size-lg: 17px;--font-size-xl: 22px;--font-size-display: 34px;--space-1: 2px;--space-2: 4px;--space-3: 8px;--space-4: 12px;--space-5: 16px;--space-6: 24px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 10px;--radius-round: 999px;--shadow-1: 0 2px 10px rgb(0 0 0 / .45);--shadow-2: 0 12px 40px rgb(0 0 0 / .6);--ease-out: cubic-bezier(.23, 1, .32, 1);--ease-in-out: cubic-bezier(.77, 0, .175, 1);--ease-drawer: cubic-bezier(.32, .72, 0, 1);--duration-press: .12s;--duration-hover: .15s;--duration-pop: .16s;--duration-modal: .22s;--duration-drawer: .32s;--duration-exit: .12s;--sheet-avatar: 72px;--sheet-ability-w: 80px;--sheet-ability-col: 84px;--sheet-label-col: 96px;--sheet-num-w: 56px;--sheet-num-sm: 44px;--sheet-pip: 14px;--sheet-prof-dot: 12px;--wizard-list-h: 320px;--cmp-row-h: 30px;--cmp-checked-max-h: 180px;--picker-list-h: 55vh;--topbar-h: 44px;--toolbar-w: 48px;--sidebar-w-default: 360px;--icon-button: 28px;--control-h: 26px;--control-h-sm: 24px;--avatar-sm: 20px;--avatar-md: 28px;--z-map-overlay: 10;--z-macrobar: 20;--z-window: 100;--z-tracker: 900;--z-menu: 15000;--z-modal: 10000;--z-toast: 20000;color-scheme:dark}:root[data-theme=light]{--tpl-paper-1: var(--palette-parchment-100);--tpl-paper-2: color-mix(in srgb, var(--palette-parchment-200) 70%, var(--palette-parchment-100));--tpl-ink: var(--palette-sepia-900);--tpl-ink-dim: var(--palette-sepia-600);--tpl-label: var(--palette-vermilion-800);--tpl-edge: var(--palette-vermilion-800);--tpl-link: var(--palette-vermilion-800);--tpl-border: var(--palette-parchment-300);--tpl-frame: color-mix(in srgb, var(--palette-bronze-300) 55%, transparent);--tpl-stripe: color-mix(in srgb, var(--palette-parchment-200) 55%, transparent);--tpl-roll-bg: var(--palette-paper-50);--tpl-roll-accent: var(--palette-bronze-300);--tpl-shadow: 0 2px 10px rgb(40 25 10 / .25);--color-bg: #f1e9d6;--color-surface-1: var(--palette-parchment-100);--color-surface-2: #ece2ca;--color-surface-3: #e2d5b8;--color-surface-sunken: #d9cbab;--color-glass: color-mix(in srgb, var(--palette-parchment-100) 78%, transparent);--color-glass-strong: color-mix(in srgb, var(--palette-parchment-100) 92%, transparent);--color-border: #cbb994;--color-border-strong: #a99572;--color-text: #2a1f16;--color-text-dim: #6b5a48;--color-on-accent: var(--palette-white);--color-backdrop: rgb(30 18 8 / .35);--palette-accent-600: #a87a3a;--palette-accent-500: #8a5a1c;--palette-accent-400: #6f4714;--palette-accent-200: #5a4632;--color-accent-soft: color-mix(in srgb, var(--palette-accent-500) 12%, transparent);--color-link: var(--palette-accent-400);--color-focus: var(--palette-accent-500);--color-danger: var(--palette-red-700);--glow-accent: 0 0 0 1px var(--color-accent-line), 0 0 14px color-mix(in srgb, var(--palette-accent-500) 18%, transparent);--edge-highlight: inset 0 1px 0 color-mix(in srgb, var(--palette-white) 80%, transparent);--fx-ink: var(--palette-accent-200);--fx-accent: var(--palette-accent-500);--fx-gold: #a87a1c;--fx-vignette: radial-gradient(ellipse 120% 90% at 50% 20%, transparent 0%, color-mix(in srgb, #e6dbc3 80%, transparent) 100%);--table-bg: #ece3cf;--table-ink: #3a2b1d;--table-dice: #946512;--table-fumble: #b3311c;--table-water: #4f86b3;--table-forest: #4f8a57;--table-hills: #a08a3e;--table-mountain: #85776b;--chat-system-bg: #ece2ca;--chat-desc-text: var(--palette-sepia-900);--chat-emote-text: #8a6d00;--chat-inline-roll-bg: #e2d5b8;--chat-whisper-text: oklch(from var(--chat-whisper-hue) .45 .13 h);--chat-whisper-bg: color-mix(in srgb, var(--chat-whisper-hue) 14%, transparent);--color-crit: var(--palette-green-600);--color-fumble: var(--palette-red-600);--roll-card-bg: var(--palette-parchment-100);--roll-die-bg: var(--color-surface-2);--roll-total-bg: var(--color-surface-2);--macrobar-bg: color-mix(in srgb, var(--palette-parchment-100) 92%, transparent);--map-void: #d6c9ad;--map-page: #ffffff;--shadow-1: 0 2px 8px rgb(40 25 10 / .14);--grain-opacity: .1;--thumb-opacity: 1;--thumb-opacity-hover: 1;--shadow-2: 0 10px 34px rgb(40 25 10 / .2);--compendium-cr-text: var(--palette-red-700);--compendium-level-text: var(--palette-violet-600);--statblock-shadow: var(--shadow-1);color-scheme:light}:root[data-palette=sage]{--palette-ink-950: #0d120f;--palette-ink-900: #131915;--palette-ink-850: #19211c;--palette-ink-800: #202a23;--palette-ink-750: #28342c;--palette-ink-700: #394a3f;--palette-ink-600: #4f6455;--palette-ink-400: #9aad9f;--palette-ink-100: #e3eadf;--palette-accent-600: #6f9369;--palette-accent-500: #8fb389;--palette-accent-400: #b0cfa7;--palette-accent-200: #dbe9d3;--color-backdrop: rgb(4 10 6 / .7);--fx-gold: #d8c98a;--table-bg: #1d241f;--table-ink: #dfe7d8;--table-dice: #c9b26a;--table-fumble: #e47c6e;--table-water: #5f93a6;--table-forest: #6a9a68;--table-hills: #a5a06a;--table-mountain: #8a8f84;--tpl-paper-1: #27322b;--tpl-paper-2: #1f2822;--tpl-ink: #e3eadf;--tpl-ink-dim: #a9b8aa;--tpl-label: #cdbd7e;--tpl-edge: #9cc28f;--tpl-link: #b0cfa7;--tpl-border: #3f5145;--tpl-frame: color-mix(in srgb, #cdbd7e 30%, transparent);--tpl-stripe: color-mix(in srgb, #e3eadf 5%, transparent);--tpl-roll-bg: #161d18;--tpl-roll-accent: #cdbd7e}:root[data-palette=sage][data-theme=light]{--palette-accent-600: #6b8f65;--palette-accent-500: #4c7150;--palette-accent-400: #3a5a3e;--palette-accent-200: #3f5a45;--color-bg: #ecf0e7;--color-surface-1: #f8faf5;--color-surface-2: #e5eadf;--color-surface-3: #d8e0d0;--color-surface-sunken: #ccd6c3;--color-glass: color-mix(in srgb, #f8faf5 78%, transparent);--color-glass-strong: color-mix(in srgb, #f8faf5 92%, transparent);--color-border: #bccab4;--color-border-strong: #97a98f;--color-text: #1d2920;--color-text-dim: #5a6a5d;--color-backdrop: rgb(10 24 14 / .35);--fx-gold: #9a8a3a;--fx-vignette: radial-gradient(ellipse 120% 90% at 50% 20%, transparent 0%, color-mix(in srgb, #dfe7d8 80%, transparent) 100%);--table-bg: #e7ede1;--table-ink: #26352a;--table-dice: #8a7420;--table-fumble: #b0402c;--table-water: #4a7f9a;--table-forest: #4a7f4c;--table-hills: #8f8a45;--table-mountain: #7a8075;--chat-system-bg: #e5eadf;--chat-inline-roll-bg: #d8e0d0;--roll-card-bg: #f8faf5;--macrobar-bg: color-mix(in srgb, #f8faf5 92%, transparent);--map-void: #cbd5c2;--shadow-1: 0 2px 8px rgb(15 30 18 / .14);--shadow-2: 0 10px 34px rgb(15 30 18 / .2);--tpl-paper-1: #f7f9f2;--tpl-paper-2: #e8eedf;--tpl-ink: #1d2920;--tpl-ink-dim: #5a6a5d;--tpl-label: #3d6b45;--tpl-edge: #3d6b45;--tpl-link: #3d6b45;--tpl-border: #c3cfba;--tpl-frame: color-mix(in srgb, #8fb389 60%, transparent);--tpl-stripe: color-mix(in srgb, #dce6d2 60%, transparent);--tpl-roll-bg: #fdfefb;--tpl-roll-accent: #8fb389;--tpl-shadow: 0 2px 10px rgb(15 30 18 / .2)}:root[data-palette=tech]{--font-display: "Space Grotesk", var(--font-sans);--heading-scale: .85;--palette-ink-950: #0b0c10;--palette-ink-900: #16171d;--palette-ink-850: #1e2028;--palette-ink-800: #272a35;--palette-ink-750: #323644;--palette-ink-700: #3a3f4f;--palette-ink-600: #4c5266;--palette-ink-400: #9aa0b4;--palette-ink-100: #e8e9ee;--palette-accent-600: #2b8fd6;--palette-accent-500: #3fa9f5;--palette-accent-400: #6ec3ff;--palette-accent-200: #a6d8f5;--color-backdrop: rgb(0 0 0 / .6);--fx-accent: #5ad2e1;--fx-gold: #d9b46a;--table-bg: #1a1d26;--table-ink: #dde2ec;--table-dice: #6ec3ff;--table-fumble: #ff7b72;--table-water: #4f8fd0;--table-forest: #4f9a7a;--table-hills: #8f95a8;--table-mountain: #7d8598;--tpl-paper-1: #222632;--tpl-paper-2: #1a1d27;--tpl-ink: #e8e9ee;--tpl-ink-dim: #9aa0b4;--tpl-label: #6ec3ff;--tpl-edge: #3fa9f5;--tpl-link: #6ec3ff;--tpl-border: #3a3f4f;--tpl-frame: color-mix(in srgb, #3fa9f5 30%, transparent);--tpl-stripe: color-mix(in srgb, #e8e9ee 4%, transparent);--tpl-roll-bg: #13151b;--tpl-roll-accent: #3fa9f5}:root[data-palette=tech][data-theme=light]{--palette-accent-600: #3f8fd0;--palette-accent-500: #1f6fb8;--palette-accent-400: #175a96;--palette-accent-200: #3b4a63;--color-bg: #eff2f6;--color-surface-1: #ffffff;--color-surface-2: #e7ebf1;--color-surface-3: #dbe1ea;--color-surface-sunken: #d0d7e1;--color-glass: color-mix(in srgb, #ffffff 78%, transparent);--color-glass-strong: color-mix(in srgb, #ffffff 92%, transparent);--color-border: #c3cad6;--color-border-strong: #9ea7b6;--color-text: #1a1d24;--color-text-dim: #5c6475;--color-backdrop: rgb(0 0 0 / .35);--fx-accent: var(--palette-accent-500);--fx-gold: #9a7a2a;--fx-vignette: radial-gradient(ellipse 120% 90% at 50% 20%, transparent 0%, color-mix(in srgb, #dfe5ee 80%, transparent) 100%);--table-bg: #e8ecf2;--table-ink: #222838;--table-dice: #1f6fb8;--table-fumble: #b3311c;--table-water: #3f7fbf;--table-forest: #3f8a6a;--table-hills: #7f8698;--table-mountain: #6f7788;--chat-system-bg: #e7ebf1;--chat-inline-roll-bg: #dbe1ea;--roll-card-bg: #ffffff;--macrobar-bg: color-mix(in srgb, #ffffff 92%, transparent);--map-void: #cfd5de;--shadow-1: 0 2px 8px rgb(10 20 40 / .14);--shadow-2: 0 10px 34px rgb(10 20 40 / .2);--tpl-paper-1: #ffffff;--tpl-paper-2: #eef2f8;--tpl-ink: #1a1d24;--tpl-ink-dim: #5c6475;--tpl-label: #1f6fb8;--tpl-edge: #1f6fb8;--tpl-link: #1f6fb8;--tpl-border: #cdd4df;--tpl-frame: color-mix(in srgb, #3fa9f5 45%, transparent);--tpl-stripe: color-mix(in srgb, #e3e9f2 70%, transparent);--tpl-roll-bg: #ffffff;--tpl-roll-accent: #3fa9f5;--tpl-shadow: 0 2px 10px rgb(10 20 40 / .18)}:root[data-palette=ember]{--palette-ink-950: #0f0d0c;--palette-ink-900: #161312;--palette-ink-850: #1d1918;--palette-ink-800: #25201e;--palette-ink-750: #2e2725;--palette-ink-700: #433834;--palette-ink-600: #5c4c46;--palette-ink-400: #a8968e;--palette-ink-100: #efe4de;--palette-accent-600: #d0592a;--palette-accent-500: #f07a3a;--palette-accent-400: #ff9d5c;--palette-accent-200: #ffd2b0;--color-backdrop: rgb(10 4 2 / .7);--fx-gold: #ffc46b;--table-bg: #221b19;--table-ink: #ecdcd2;--table-dice: #ff9d5c;--table-fumble: #ff6a5c;--table-water: #5b86a8;--table-forest: #6a8a5a;--table-hills: #a88a5a;--table-mountain: #8a7d78;--tpl-paper-1: #2a2220;--tpl-paper-2: #211b19;--tpl-ink: #efe4de;--tpl-ink-dim: #b3a39b;--tpl-label: #ffb36b;--tpl-edge: #f07a3a;--tpl-link: #ff9d5c;--tpl-border: #4a3c37;--tpl-frame: color-mix(in srgb, #f07a3a 30%, transparent);--tpl-stripe: color-mix(in srgb, #efe4de 4%, transparent);--tpl-roll-bg: #171211;--tpl-roll-accent: #f07a3a}:root[data-palette=ember][data-theme=light]{--palette-accent-600: #e0703a;--palette-accent-500: #c2491a;--palette-accent-400: #9c3812;--palette-accent-200: #5a3a2c;--color-bg: #f4eeea;--color-surface-1: #fffaf7;--color-surface-2: #efe6e0;--color-surface-3: #e5d9d1;--color-surface-sunken: #dacbc1;--color-glass: color-mix(in srgb, #fffaf7 78%, transparent);--color-glass-strong: color-mix(in srgb, #fffaf7 92%, transparent);--color-border: #d2c0b5;--color-border-strong: #ad978a;--color-text: #261a16;--color-text-dim: #6e5a51;--color-backdrop: rgb(40 15 5 / .35);--fx-gold: #b8741c;--fx-vignette: radial-gradient(ellipse 120% 90% at 50% 20%, transparent 0%, color-mix(in srgb, #ece2dc 80%, transparent) 100%);--table-bg: #f0e8e2;--table-ink: #3a2620;--table-dice: #b8501c;--table-fumble: #b3311c;--table-water: #4a7aa0;--table-forest: #5a7a4a;--table-hills: #9a7a3e;--table-mountain: #85776f;--chat-system-bg: #efe6e0;--chat-inline-roll-bg: #e5d9d1;--roll-card-bg: #fffaf7;--macrobar-bg: color-mix(in srgb, #fffaf7 92%, transparent);--map-void: #d9cbc2;--shadow-1: 0 2px 8px rgb(40 15 5 / .14);--shadow-2: 0 10px 34px rgb(40 15 5 / .2);--tpl-paper-1: #fffaf6;--tpl-paper-2: #f6ebe3;--tpl-ink: #261a16;--tpl-ink-dim: #6e5a51;--tpl-label: #b0401a;--tpl-edge: #c2491a;--tpl-link: #b0401a;--tpl-border: #e2d0c4;--tpl-frame: color-mix(in srgb, #f07a3a 45%, transparent);--tpl-stripe: color-mix(in srgb, #f3e4da 60%, transparent);--tpl-roll-bg: #ffffff;--tpl-roll-accent: #f07a3a;--tpl-shadow: 0 2px 10px rgb(40 15 5 / .18)}:root[data-palette=abyss]{--palette-ink-950: #050d10;--palette-ink-900: #0a1418;--palette-ink-850: #0f1b20;--palette-ink-800: #142329;--palette-ink-750: #1a2c33;--palette-ink-700: #26404a;--palette-ink-600: #365863;--palette-ink-400: #8fb0b8;--palette-ink-100: #dcecef;--palette-accent-600: #1fa8a0;--palette-accent-500: #3fd0c4;--palette-accent-400: #7ae8de;--palette-accent-200: #c4f5ef;--color-backdrop: rgb(0 6 10 / .7);--fx-gold: #b9a7ff;--table-bg: #0f1d22;--table-ink: #d6eaee;--table-dice: #7ae8de;--table-fumble: #ff7b8a;--table-water: #3f8fb8;--table-forest: #3f8f7a;--table-hills: #7f9a90;--table-mountain: #6f8790;--tpl-paper-1: #132830;--tpl-paper-2: #0e1f25;--tpl-ink: #dcecef;--tpl-ink-dim: #8fb0b8;--tpl-label: #7ae8de;--tpl-edge: #3fd0c4;--tpl-link: #7ae8de;--tpl-border: #26404a;--tpl-frame: color-mix(in srgb, #3fd0c4 30%, transparent);--tpl-stripe: color-mix(in srgb, #dcecef 4%, transparent);--tpl-roll-bg: #08151a;--tpl-roll-accent: #3fd0c4}:root[data-palette=abyss][data-theme=light]{--palette-accent-600: #2ab0a6;--palette-accent-500: #0f7f78;--palette-accent-400: #0b645e;--palette-accent-200: #2c4f56;--color-bg: #ebf3f4;--color-surface-1: #f8fcfc;--color-surface-2: #e1ecee;--color-surface-3: #d3e2e5;--color-surface-sunken: #c6d8dc;--color-glass: color-mix(in srgb, #f8fcfc 78%, transparent);--color-glass-strong: color-mix(in srgb, #f8fcfc 92%, transparent);--color-border: #b6ccd1;--color-border-strong: #8eaab1;--color-text: #102229;--color-text-dim: #4f6870;--color-backdrop: rgb(0 20 30 / .35);--fx-gold: #6a5ac0;--fx-vignette: radial-gradient(ellipse 120% 90% at 50% 20%, transparent 0%, color-mix(in srgb, #dbe8eb 80%, transparent) 100%);--table-bg: #e4eef0;--table-ink: #173038;--table-dice: #0f7f78;--table-fumble: #b3314a;--table-water: #2f7fa8;--table-forest: #2f7f6a;--table-hills: #6f8a80;--table-mountain: #637a82;--chat-system-bg: #e1ecee;--chat-inline-roll-bg: #d3e2e5;--roll-card-bg: #f8fcfc;--macrobar-bg: color-mix(in srgb, #f8fcfc 92%, transparent);--map-void: #c6d6da;--shadow-1: 0 2px 8px rgb(0 25 35 / .14);--shadow-2: 0 10px 34px rgb(0 25 35 / .2);--tpl-paper-1: #f9fdfd;--tpl-paper-2: #e8f3f4;--tpl-ink: #102229;--tpl-ink-dim: #4f6870;--tpl-label: #0f6f69;--tpl-edge: #0f7f78;--tpl-link: #0f6f69;--tpl-border: #c3d8dc;--tpl-frame: color-mix(in srgb, #3fd0c4 45%, transparent);--tpl-stripe: color-mix(in srgb, #dcecef 70%, transparent);--tpl-roll-bg: #ffffff;--tpl-roll-accent: #3fd0c4;--tpl-shadow: 0 2px 10px rgb(0 25 35 / .18)}:root[data-palette=crimson]{--palette-ink-950: #100a0b;--palette-ink-900: #170f10;--palette-ink-850: #1f1415;--palette-ink-800: #281a1c;--palette-ink-750: #312023;--palette-ink-700: #4a2f33;--palette-ink-600: #654147;--palette-ink-400: #b0959a;--palette-ink-100: #f0e2e4;--palette-accent-600: #b0414b;--palette-accent-500: #d4606a;--palette-accent-400: #e48d95;--palette-accent-200: #f3cdd0;--color-backdrop: rgb(12 2 4 / .7);--fx-gold: #e8b86a;--table-bg: #221416;--table-ink: #eedcdf;--table-dice: #e48d95;--table-fumble: #e8916a;--table-water: #5b7fa8;--table-forest: #6a8a5a;--table-hills: #a88a6a;--table-mountain: #8a7a7d;--tpl-paper-1: #2b1c1f;--tpl-paper-2: #22171a;--tpl-ink: #f0e2e4;--tpl-ink-dim: #b8a0a4;--tpl-label: #e48d95;--tpl-edge: #d4606a;--tpl-link: #e48d95;--tpl-border: #4a2f33;--tpl-frame: color-mix(in srgb, #d4606a 30%, transparent);--tpl-stripe: color-mix(in srgb, #f0e2e4 4%, transparent);--tpl-roll-bg: #160e10;--tpl-roll-accent: #d4606a}:root[data-palette=crimson][data-theme=light]{--palette-accent-600: #d0505c;--palette-accent-500: #b3202f;--palette-accent-400: #8f1824;--palette-accent-200: #5a2c33;--color-bg: #f5eced;--color-surface-1: #fffafa;--color-surface-2: #f1e5e7;--color-surface-3: #e7d8db;--color-surface-sunken: #dccbce;--color-glass: color-mix(in srgb, #fffafa 78%, transparent);--color-glass-strong: color-mix(in srgb, #fffafa 92%, transparent);--color-border: #d4bcc0;--color-border-strong: #ae9398;--color-text: #2a1518;--color-text-dim: #725a5e;--color-backdrop: rgb(40 5 10 / .35);--fx-gold: #a8741c;--fx-vignette: radial-gradient(ellipse 120% 90% at 50% 20%, transparent 0%, color-mix(in srgb, #eee0e2 80%, transparent) 100%);--table-bg: #f2e8ea;--table-ink: #3a1f23;--table-dice: #b3202f;--table-fumble: #c25a1c;--table-water: #4a70a0;--table-forest: #5a7a4a;--table-hills: #9a7a4e;--table-mountain: #85767a;--chat-system-bg: #f1e5e7;--chat-inline-roll-bg: #e7d8db;--roll-card-bg: #fffafa;--macrobar-bg: color-mix(in srgb, #fffafa 92%, transparent);--map-void: #dccbce;--shadow-1: 0 2px 8px rgb(40 5 10 / .14);--shadow-2: 0 10px 34px rgb(40 5 10 / .2);--tpl-paper-1: #fffafa;--tpl-paper-2: #f8eced;--tpl-ink: #2a1518;--tpl-ink-dim: #725a5e;--tpl-label: #a01c2a;--tpl-edge: #b3202f;--tpl-link: #a01c2a;--tpl-border: #e6d0d3;--tpl-frame: color-mix(in srgb, #e04b59 45%, transparent);--tpl-stripe: color-mix(in srgb, #f5e3e6 60%, transparent);--tpl-roll-bg: #ffffff;--tpl-roll-accent: #e04b59;--tpl-shadow: 0 2px 10px rgb(40 5 10 / .18)}:root[data-palette=amethyst]{--palette-ink-950: #0f0e13;--palette-ink-900: #16141b;--palette-ink-850: #1c1923;--palette-ink-800: #24202c;--palette-ink-750: #2c2735;--palette-ink-700: #3e3749;--palette-ink-600: #554c63;--palette-ink-400: #a49cb2;--palette-ink-100: #e6e2ec;--palette-accent-600: #8a6cc0;--palette-accent-500: #a68ad8;--palette-accent-400: #c0a9e6;--palette-accent-200: #e2d8f2;--color-backdrop: rgb(8 4 14 / .7);--fx-gold: #e8c46a;--table-bg: #1d1a23;--table-ink: #e4e0ea;--table-dice: #c0a9e6;--table-fumble: #e8838f;--table-water: #5b86c8;--table-forest: #5f9a7a;--table-hills: #9a8aa8;--table-mountain: #807890;--tpl-paper-1: #25212d;--tpl-paper-2: #1e1b25;--tpl-ink: #e6e2ec;--tpl-ink-dim: #a8a0b5;--tpl-label: #c0a9e6;--tpl-edge: #a68ad8;--tpl-link: #c0a9e6;--tpl-border: #3e3749;--tpl-frame: color-mix(in srgb, #a68ad8 30%, transparent);--tpl-stripe: color-mix(in srgb, #e6e2ec 4%, transparent);--tpl-roll-bg: #121016;--tpl-roll-accent: #a68ad8}:root[data-palette=amethyst][data-theme=light]{--palette-accent-600: #8f78bf;--palette-accent-500: #6a4fa3;--palette-accent-400: #563f88;--palette-accent-200: #3f3358;--color-bg: #f2f0f5;--color-surface-1: #fcfbfd;--color-surface-2: #ebe8f0;--color-surface-3: #e0dce7;--color-surface-sunken: #d6d1de;--color-glass: color-mix(in srgb, #fcfbfd 78%, transparent);--color-glass-strong: color-mix(in srgb, #fcfbfd 92%, transparent);--color-border: #cbc4d6;--color-border-strong: #a39bb2;--color-text: #1f1a2a;--color-text-dim: #625a72;--color-backdrop: rgb(20 5 40 / .35);--fx-gold: #9a7a2a;--fx-vignette: radial-gradient(ellipse 120% 90% at 50% 20%, transparent 0%, color-mix(in srgb, #e8e5ed 80%, transparent) 100%);--table-bg: #edeaf1;--table-ink: #2a2238;--table-dice: #6a4fa3;--table-fumble: #b3314a;--table-water: #3f6fb8;--table-forest: #3f8a6a;--table-hills: #7f7398;--table-mountain: #6f6880;--chat-system-bg: #ebe8f0;--chat-inline-roll-bg: #e0dce7;--roll-card-bg: #fcfbfd;--macrobar-bg: color-mix(in srgb, #fcfbfd 92%, transparent);--map-void: #d6d1de;--shadow-1: 0 2px 8px rgb(20 5 40 / .14);--shadow-2: 0 10px 34px rgb(20 5 40 / .2);--tpl-paper-1: #fdfbff;--tpl-paper-2: #f1eef5;--tpl-ink: #1f1a2a;--tpl-ink-dim: #625a72;--tpl-label: #5b4594;--tpl-edge: #6a4fa3;--tpl-link: #5b4594;--tpl-border: #dcd7e4;--tpl-frame: color-mix(in srgb, #a68ad8 45%, transparent);--tpl-stripe: color-mix(in srgb, #ebe7f0 70%, transparent);--tpl-roll-bg: #ffffff;--tpl-roll-accent: #a68ad8;--tpl-shadow: 0 2px 10px rgb(20 5 40 / .18)}:root[data-palette=slate]{--font-display: "Space Grotesk", var(--font-sans);--heading-scale: .85;--palette-ink-950: #0c0d0f;--palette-ink-900: #131518;--palette-ink-850: #191c20;--palette-ink-800: #212429;--palette-ink-750: #292d33;--palette-ink-700: #3a3f47;--palette-ink-600: #50565f;--palette-ink-400: #9ba1aa;--palette-ink-100: #e6e8eb;--palette-accent-600: #7c8ba1;--palette-accent-500: #a3b1c4;--palette-accent-400: #c5d0de;--palette-accent-200: #e3e9f0;--color-backdrop: rgb(0 0 0 / .65);--fx-gold: #c9b27a;--table-bg: #1b1e22;--table-ink: #dfe2e6;--table-dice: #c5d0de;--table-fumble: #e0796f;--table-water: #5f86a8;--table-forest: #66896f;--table-hills: #8f8f80;--table-mountain: #7d828a;--tpl-paper-1: #23272c;--tpl-paper-2: #1c1f23;--tpl-ink: #e6e8eb;--tpl-ink-dim: #9ba1aa;--tpl-label: #c5d0de;--tpl-edge: #a3b1c4;--tpl-link: #c5d0de;--tpl-border: #3a3f47;--tpl-frame: color-mix(in srgb, #a3b1c4 30%, transparent);--tpl-stripe: color-mix(in srgb, #e6e8eb 4%, transparent);--tpl-roll-bg: #111316;--tpl-roll-accent: #a3b1c4}:root[data-palette=slate][data-theme=light]{--palette-accent-600: #6b7b92;--palette-accent-500: #475569;--palette-accent-400: #334155;--palette-accent-200: #334155;--color-bg: #eef0f2;--color-surface-1: #fcfcfd;--color-surface-2: #e9ecef;--color-surface-3: #dee2e6;--color-surface-sunken: #d3d8dd;--color-glass: color-mix(in srgb, #fcfcfd 78%, transparent);--color-glass-strong: color-mix(in srgb, #fcfcfd 92%, transparent);--color-border: #c6ccd3;--color-border-strong: #9aa3ad;--color-text: #1b1f24;--color-text-dim: #5b636d;--color-backdrop: rgb(10 15 20 / .35);--fx-gold: #8a7a3a;--fx-vignette: radial-gradient(ellipse 120% 90% at 50% 20%, transparent 0%, color-mix(in srgb, #e2e6ea 80%, transparent) 100%);--table-bg: #e9ecef;--table-ink: #252a31;--table-dice: #475569;--table-fumble: #b3311c;--table-water: #3f6f9a;--table-forest: #4a7a5a;--table-hills: #7a7a6a;--table-mountain: #6b727b;--chat-system-bg: #e9ecef;--chat-inline-roll-bg: #dee2e6;--roll-card-bg: #fcfcfd;--macrobar-bg: color-mix(in srgb, #fcfcfd 92%, transparent);--map-void: #d3d8dd;--shadow-1: 0 2px 8px rgb(10 15 20 / .14);--shadow-2: 0 10px 34px rgb(10 15 20 / .2);--tpl-paper-1: #ffffff;--tpl-paper-2: #eef1f4;--tpl-ink: #1b1f24;--tpl-ink-dim: #5b636d;--tpl-label: #334155;--tpl-edge: #475569;--tpl-link: #334155;--tpl-border: #d3d9df;--tpl-frame: color-mix(in srgb, #a3b1c4 50%, transparent);--tpl-stripe: color-mix(in srgb, #e6eaee 70%, transparent);--tpl-roll-bg: #ffffff;--tpl-roll-accent: #94a3b8;--tpl-shadow: 0 2px 10px rgb(10 15 20 / .18)}:root[data-palette=code]{--font-display: "JetBrains Mono", var(--font-mono);--heading-scale: .78;--grain-opacity: 0;--palette-ink-950: #1b1d23;--palette-ink-900: #21252b;--palette-ink-850: #282c34;--palette-ink-800: #2f343e;--palette-ink-750: #353b45;--palette-ink-700: #3e4451;--palette-ink-600: #4b5263;--palette-ink-400: #7f848e;--palette-ink-100: #abb2bf;--palette-accent-600: #3f9aa6;--palette-accent-500: #56b6c2;--palette-accent-400: #7fcbd4;--palette-accent-200: #c2e6eb;--color-backdrop: rgb(0 0 0 / .6);--fx-accent: #c678dd;--fx-gold: #e5c07b;--table-bg: #252930;--table-ink: #abb2bf;--table-dice: #e5c07b;--table-fumble: #e06c75;--table-water: #61afef;--table-forest: #98c379;--table-hills: #d19a66;--table-mountain: #7f848e;--tpl-paper-1: #2f343e;--tpl-paper-2: #262a32;--tpl-ink: #abb2bf;--tpl-ink-dim: #7f848e;--tpl-label: #e06c75;--tpl-edge: #56b6c2;--tpl-link: #61afef;--tpl-border: #3e4451;--tpl-frame: color-mix(in srgb, #56b6c2 30%, transparent);--tpl-stripe: color-mix(in srgb, #abb2bf 4%, transparent);--tpl-roll-bg: #1e2227;--tpl-roll-accent: #98c379}:root[data-palette=code][data-theme=light]{--palette-accent-600: #4fb3b9;--palette-accent-500: #179299;--palette-accent-400: #117a80;--palette-accent-200: #2c5a5e;--color-bg: #e6e9ef;--color-surface-1: #eff1f5;--color-surface-2: #e6e9ef;--color-surface-3: #dce0e8;--color-surface-sunken: #ccd0da;--color-glass: color-mix(in srgb, #eff1f5 78%, transparent);--color-glass-strong: color-mix(in srgb, #eff1f5 92%, transparent);--color-border: #bcc0cc;--color-border-strong: #9ca0b0;--color-text: #4c4f69;--color-text-dim: #6c6f85;--color-backdrop: rgb(76 79 105 / .3);--fx-accent: #8839ef;--fx-gold: #df8e1d;--fx-vignette: radial-gradient(ellipse 120% 90% at 50% 20%, transparent 0%, color-mix(in srgb, #dce0e8 80%, transparent) 100%);--table-bg: #e6e9ef;--table-ink: #4c4f69;--table-dice: #8839ef;--table-fumble: #d20f39;--table-water: #1e66f5;--table-forest: #40a02b;--table-hills: #df8e1d;--table-mountain: #8c8fa1;--chat-system-bg: #e6e9ef;--chat-inline-roll-bg: #dce0e8;--roll-card-bg: #eff1f5;--macrobar-bg: color-mix(in srgb, #eff1f5 92%, transparent);--map-void: #dce0e8;--map-page: #eff1f5;--shadow-1: 0 2px 8px rgb(76 79 105 / .14);--shadow-2: 0 10px 34px rgb(76 79 105 / .2);--tpl-paper-1: #eff1f5;--tpl-paper-2: #e6e9ef;--tpl-ink: #4c4f69;--tpl-ink-dim: #6c6f85;--tpl-label: #d20f39;--tpl-edge: #179299;--tpl-link: #1e66f5;--tpl-border: #ccd0da;--tpl-frame: color-mix(in srgb, #179299 40%, transparent);--tpl-stripe: color-mix(in srgb, #dce0e8 70%, transparent);--tpl-roll-bg: #eff1f5;--tpl-roll-accent: #40a02b;--tpl-shadow: 0 2px 10px rgb(76 79 105 / .16)}:root[data-palette=cyberpunk]{--font-display: "Chakra Petch", var(--font-sans);--heading-scale: .85;--palette-ink-950: #08080f;--palette-ink-900: #0e0d17;--palette-ink-850: #14131f;--palette-ink-800: #1b1928;--palette-ink-750: #221f31;--palette-ink-700: #332e4a;--palette-ink-600: #463f62;--palette-ink-400: #9c97b8;--palette-ink-100: #e4e2ef;--palette-accent-600: #8a55d0;--palette-accent-500: #a370ec;--palette-accent-400: #c19df3;--palette-accent-200: #e4d7f8;--color-backdrop: rgb(4 2 14 / .72);--fx-accent: #5cd0e2;--fx-gold: #e8d67e;--glow-accent: 0 0 0 1px var(--color-accent-line), 0 0 16px color-mix(in srgb, #a370ec 28%, transparent), 0 0 6px color-mix(in srgb, #5cd0e2 14%, transparent);--table-bg: #12111c;--table-ink: #e4e2ef;--table-dice: #5cd0e2;--table-fumble: #ec6c90;--table-water: #4a86e0;--table-forest: #4fc4a0;--table-hills: #8f7fd0;--table-mountain: #6b6890;--tpl-paper-1: #1b1928;--tpl-paper-2: #14131f;--tpl-ink: #e4e2ef;--tpl-ink-dim: #a29dbd;--tpl-label: #5cd0e2;--tpl-edge: #a370ec;--tpl-link: #5cd0e2;--tpl-border: #332e4a;--tpl-frame: color-mix(in srgb, #a370ec 30%, transparent);--tpl-stripe: color-mix(in srgb, #e4e2ef 4%, transparent);--tpl-roll-bg: #0b0a13;--tpl-roll-accent: #5cd0e2}:root[data-palette=cyberpunk][data-theme=light]{--palette-accent-600: #9a6ad8;--palette-accent-500: #6d3fb8;--palette-accent-400: #5a3299;--palette-accent-200: #3b2a5e;--color-bg: #f1f0f6;--color-surface-1: #fcfcfe;--color-surface-2: #ebe9f2;--color-surface-3: #e0deeb;--color-surface-sunken: #d6d3e4;--color-glass: color-mix(in srgb, #fcfcfe 78%, transparent);--color-glass-strong: color-mix(in srgb, #fcfcfe 92%, transparent);--color-border: #c9c5dc;--color-border-strong: #9e99bd;--color-text: #1a1433;--color-text-dim: #5d5585;--color-backdrop: rgb(20 10 50 / .35);--fx-accent: #0891b2;--fx-gold: #a16207;--glow-accent: 0 0 0 1px var(--color-accent-line), 0 0 14px color-mix(in srgb, var(--palette-accent-500) 18%, transparent);--fx-vignette: radial-gradient(ellipse 120% 90% at 50% 20%, transparent 0%, color-mix(in srgb, #e7e5f0 80%, transparent) 100%);--table-bg: #ebe9f2;--table-ink: #241c45;--table-dice: #0891b2;--table-fumble: #c2416b;--table-water: #2563eb;--table-forest: #0f9f78;--table-hills: #7a6fb0;--table-mountain: #6b6890;--chat-system-bg: #ebe9f2;--chat-inline-roll-bg: #e0deeb;--roll-card-bg: #fcfcfe;--macrobar-bg: color-mix(in srgb, #fcfcfe 92%, transparent);--map-void: #d6d3e4;--shadow-1: 0 2px 8px rgb(20 10 50 / .14);--shadow-2: 0 10px 34px rgb(20 10 50 / .2);--tpl-paper-1: #fdfcff;--tpl-paper-2: #f2f0f8;--tpl-ink: #1a1433;--tpl-ink-dim: #5d5585;--tpl-label: #0e7490;--tpl-edge: #6d3fb8;--tpl-link: #0e7490;--tpl-border: #dedbea;--tpl-frame: color-mix(in srgb, #a370ec 45%, transparent);--tpl-stripe: color-mix(in srgb, #ecebf4 70%, transparent);--tpl-roll-bg: #ffffff;--tpl-roll-accent: #a370ec;--tpl-shadow: 0 2px 10px rgb(20 10 50 / .18)}@layer components{.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--control-h);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface-2);box-shadow:var(--edge-highlight);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;transition:background var(--duration-hover) ease,border-color var(--duration-hover) ease,box-shadow var(--duration-hover) ease,color var(--duration-hover) ease,scale var(--duration-press) var(--ease-out)}.btn:active:not(:disabled){scale:.97}.btn>.avatar{margin-block:calc(-1 * var(--space-2))}.btn:hover:not(:disabled){background:var(--color-surface-3);border-color:var(--color-border-strong)}.btn:disabled{cursor:default;box-shadow:none;background:var(--color-surface-1);color:var(--color-text-dim)}.btn.primary:disabled{background:color-mix(in srgb,var(--color-accent) 30%,var(--color-surface-2));border-color:color-mix(in srgb,var(--color-accent) 30%,var(--color-surface-2));color:var(--color-text-dim)}.btn.primary{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-on-accent);font-weight:600}.btn.primary:hover:not(:disabled){background:var(--color-accent-strong);border-color:var(--color-accent-strong);box-shadow:var(--glow-accent)}.btn.danger{color:var(--color-danger)}.btn.danger:hover:not(:disabled){background:var(--color-danger-soft);border-color:var(--color-danger)}.btn.ghost{background:transparent;border-color:transparent;box-shadow:none}.btn.ghost:hover:not(:disabled){background:var(--color-accent-soft)}.btn.small{min-height:var(--control-h-sm);padding:var(--space-1) var(--space-3);font-size:var(--font-size-sm)}.btn.icon{padding:var(--space-2);min-width:var(--icon-button)}.btn.active{background:var(--color-accent-soft);border-color:var(--color-accent-line);color:var(--color-accent-strong);box-shadow:inset 0 0 12px var(--color-accent-soft)}.field{display:flex;flex-direction:column;gap:var(--space-1)}.field>label,.label{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.08em;font-weight:600;color:var(--color-text-dim)}.color-input{width:var(--icon-button);height:var(--icon-button);padding:0;border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;flex-shrink:0}.color-input:disabled{opacity:.5;cursor:default}.color-picker{display:flex;flex-direction:column;gap:var(--space-3)}.color-picker-grid{display:grid;grid-template-columns:repeat(12,18px);gap:3px}.color-chip{width:18px;height:18px;padding:0;border:1px solid rgb(0 0 0 / .25);border-radius:3px;cursor:pointer}.color-chip{transition:scale var(--duration-press) var(--ease-out)}@media(hover:hover)and (pointer:fine){.color-chip:hover{scale:1.15}}.color-chip:active{scale:.95}.color-chip.is-selected{outline:2px solid var(--color-accent);outline-offset:1px}.color-picker-hex{display:flex;align-items:center;gap:var(--space-2)}.color-picker-hex .color-chip{width:24px;height:24px;cursor:default;scale:none}.color-picker-hex input{flex:1;min-width:0;font-family:var(--font-mono)}.toggle{display:inline-flex;align-items:center;gap:var(--space-2);cursor:pointer}.thumb{width:40px;height:40px;object-fit:cover;border-radius:var(--radius-sm)}.modal-backdrop{position:fixed;inset:0;background:var(--color-backdrop);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:var(--z-modal)}.modal{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:var(--z-modal);background:var(--color-surface-1);border:1px solid var(--color-border-strong);border-top-color:var(--color-accent-line);border-radius:var(--radius-lg);box-shadow:var(--shadow-2),var(--edge-highlight);min-width:340px;max-width:min(92vw,720px);max-height:90vh;display:flex;flex-direction:column}.modal.wide{width:min(92vw,960px);max-width:min(92vw,960px)}.modal-backdrop[data-state=open]{animation:overlay-fade-in var(--duration-modal) var(--ease-out)}.modal-backdrop[data-state=closed]{animation:overlay-fade-out var(--duration-exit) ease-in forwards}.modal[data-state=open]{animation:overlay-pop-in var(--duration-modal) var(--ease-out)}.modal[data-state=closed]{animation:overlay-pop-out var(--duration-exit) ease-in forwards}.menu{transform-origin:var(--radix-dropdown-menu-content-transform-origin)}.popover{transform-origin:var(--radix-popover-content-transform-origin)}.tooltip{transform-origin:var(--radix-tooltip-content-transform-origin)}.menu[data-state=open],.popover[data-state=open],.tooltip[data-state=delayed-open]{animation:overlay-pop-in var(--duration-pop) var(--ease-out)}.menu[data-state=closed],.popover[data-state=closed],.tooltip[data-state=closed]{animation:overlay-pop-out var(--duration-exit) ease-in forwards}@keyframes overlay-fade-in{0%{opacity:0}}@keyframes overlay-fade-out{to{opacity:0}}@keyframes overlay-pop-in{0%{opacity:0;scale:.96}}@keyframes overlay-pop-out{to{opacity:0;scale:.97}}@media(prefers-reduced-motion:reduce){.modal[data-state=open],.menu[data-state=open],.popover[data-state=open],.tooltip[data-state=delayed-open]{animation-name:overlay-fade-in}.modal[data-state=closed],.menu[data-state=closed],.popover[data-state=closed],.tooltip[data-state=closed]{animation-name:overlay-fade-out}}.menu-anchor{position:fixed;width:0;height:0}.menu,.popover{background:var(--color-glass-strong);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-2);z-index:var(--z-menu)}.menu{padding:var(--space-2);min-width:180px}.popover{padding:var(--space-4)}.menu-item{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);cursor:pointer;display:flex;align-items:center;gap:var(--space-3);white-space:nowrap;outline:none}.menu-item[data-highlighted],.menu-item:hover{background:var(--color-accent-soft);color:var(--color-accent-strong)}.menu-item[data-disabled]{opacity:.5;cursor:default}.menu-item.danger{color:var(--color-danger)}.menu-sep{border-top:1px solid var(--color-border);margin:var(--space-2) 0}.tooltip{background:var(--color-surface-3);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);box-shadow:var(--shadow-1);z-index:var(--z-menu);max-width:320px}.tabs{display:flex;border-bottom:1px solid var(--color-border);background:var(--color-surface-sunken);flex-shrink:0;overflow-x:auto;scrollbar-width:none;container-type:inline-size}.tabs::-webkit-scrollbar{display:none}.tab{padding:var(--space-3) var(--space-4);cursor:pointer;color:var(--color-text-dim);border:none;border-bottom:2px solid transparent;background:none;white-space:nowrap;-webkit-user-select:none;user-select:none}@container (max-width: 380px){.tab{padding-inline:var(--space-3)}}.tab:hover{color:var(--color-text)}.tab.active,.tab[data-state=active]{color:var(--color-accent-strong);border-bottom-color:var(--color-accent-strong);background:linear-gradient(to top,var(--color-accent-soft),transparent 70%)}.tab.unread{color:var(--color-accent-strong)}.tab.unread svg{filter:drop-shadow(0 0 4px var(--color-accent));animation:tab-unread-pulse 1.6s ease-in-out infinite}@keyframes tab-unread-pulse{50%{filter:drop-shadow(0 0 1px var(--color-accent));opacity:.7}}@media(prefers-reduced-motion:reduce){.tab.unread svg{animation:none}}.tab-content{min-height:0}.badge{display:inline-flex;align-items:center;gap:var(--space-1);font-weight:600;border:1px solid var(--color-border);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.06em;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);background:var(--color-surface-3);color:var(--color-text-dim)}.badge.accent,.badge.gm{background:linear-gradient(var(--color-accent-soft),var(--color-accent-soft)),var(--color-surface-2);border-color:var(--color-accent-line);color:var(--color-accent-strong)}.badge.warning{border-color:var(--color-warning);background:var(--color-warning);color:var(--color-on-accent)}.badge.success{border-color:var(--color-success);background:var(--color-success);color:var(--color-on-accent)}.empty{color:var(--color-text-dim);text-align:center;padding:var(--space-6) var(--space-4)}.toast{display:flex;align-items:center;gap:var(--space-4);width:100%;background:var(--color-glass-strong);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--color-border-strong);border-left:2px solid var(--color-accent);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);box-shadow:var(--shadow-2);color:var(--color-text);font:inherit}.toast.error{border-left-color:var(--color-danger)}.toast-content{flex:1}.toast.error .toast-icon{color:var(--color-danger)}.toast-action{margin-right:calc(-1 * var(--space-2));padding:var(--space-1) var(--space-3);border:0;border-radius:var(--radius-sm);background:transparent;color:var(--color-accent-strong);font:inherit;font-weight:600;cursor:pointer;transition:background var(--duration-hover) ease}.toast-action:hover{background:var(--color-accent-soft)}.toast-action:focus-visible{outline:2px solid var(--color-focus)}.avatar{width:var(--avatar-md);height:var(--avatar-md);border-radius:var(--radius-round);display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:var(--font-size-sm);color:var(--color-on-data);flex-shrink:0;background-size:cover;background-position:center;border:2px solid transparent}.avatar.sm{width:var(--avatar-sm);height:var(--avatar-sm);font-size:var(--font-size-xs)}.avatar.offline{opacity:.4}.list-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);cursor:pointer}.list-item:hover{background:var(--color-accent-soft)}.virtual-list{overflow:auto;min-height:0;flex:1}.markdown p{margin:0 0 var(--space-3)}.markdown p:last-child{margin-bottom:0}.markdown table{border-collapse:collapse}.markdown th,.markdown td{border:1px solid var(--color-border);padding:var(--space-1) var(--space-3)}.icon{flex-shrink:0;vertical-align:-.15em}.tab{display:inline-flex;align-items:center;gap:var(--space-2)}.tab .icon{font-size:var(--font-size-lg)}}@layer components{.appearance{display:flex;flex-direction:column;gap:var(--space-6);width:min(520px,84vw)}.appearance-section{display:flex;flex-direction:column;gap:var(--space-3)}.appearance-modes{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-2)}.appearance-palettes{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:var(--space-3)}.btn.palette-option{flex-direction:column;align-items:stretch;gap:var(--space-3);padding:var(--space-3)}.btn.palette-option.active{border-color:var(--color-accent)}.palette-preview{position:relative;display:block;height:36px;border-radius:var(--radius-sm);border:1px solid var(--color-border);overflow:hidden}.palette-preview-bar{position:absolute;inset:var(--space-3) var(--space-3) auto var(--space-3);height:10px;border-radius:var(--radius-sm)}.palette-preview-dot{position:absolute;left:var(--space-3);bottom:var(--space-3);width:28px;height:10px;border-radius:var(--radius-round)}.palette-name{display:flex;align-items:center;justify-content:space-between;font-size:var(--font-size-sm)}}@layer components{:root{--graph-grid: color-mix(in srgb, var(--color-text) 12%, transparent);--graph-node-shadow: rgb(0 0 0 / .55);--graph-glow-opacity: .75;--graph-pill-bg: var(--color-glass-strong);--graph-pill-border: var(--color-border-strong);--graph-aura: color-mix(in srgb, var(--color-accent) 10%, transparent);--graph-vignette: rgb(0 0 0 / .38)}:root[data-theme=light]{--graph-grid: color-mix(in srgb, var(--color-text) 15%, transparent);--graph-node-shadow: rgb(40 28 16 / .3);--graph-glow-opacity: .5;--graph-aura: color-mix(in srgb, var(--color-accent) 7%, transparent);--graph-vignette: rgb(60 40 20 / .07)}.graph-explorer{display:flex;flex-direction:column;gap:var(--space-3);min-height:0}.graph-page{display:flex;flex-direction:column;gap:var(--space-4);height:calc(100dvh - var(--wiki-topbar-h) - var(--space-6) * 2)}.graph-page .graph-explorer{flex:1}.graph-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}.graph-search{width:min(var(--list-filter-max-w),100%)}.combobox.graph-search input{padding-left:calc(var(--space-6) + var(--space-2))}.graph-stats{font-variant-numeric:tabular-nums}.graph-crumb{display:flex;align-items:center;gap:var(--space-3);min-width:0;animation:overlay-fade-in var(--duration-pop) var(--ease-out)}.graph-stage{position:relative;height:var(--graph-tab-h);background:radial-gradient(90% 75% at 50% 45%,var(--graph-aura),transparent 70%),radial-gradient(130% 110% at 50% 50%,transparent 55%,var(--graph-vignette)),var(--graph-bg);box-shadow:inset 0 1px color-mix(in srgb,var(--color-text) 6%,transparent);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}.graph-explorer-full .graph-stage{flex:1;height:auto;min-height:var(--suggestions-max-h)}.graph-stage:has(.graph-a11y button:focus-visible){border-color:var(--color-focus)}.graph-stage canvas{display:block;width:100%;height:100%;cursor:grab;touch-action:none}.graph-a11y button{position:absolute;top:0;left:0;width:1px;height:1px;padding:0;border:0;opacity:0;overflow:hidden;pointer-events:none}.graph-anchor{position:absolute;top:0;left:0;width:1px;height:1px;pointer-events:none}.graph-preview{pointer-events:none}.graph-edge-tip{position:absolute;top:0;left:0;max-width:var(--graph-tooltip-max-w);padding:var(--space-3) var(--space-4);display:flex;flex-direction:column;gap:var(--space-1);background:var(--color-glass-strong);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-1);font-size:var(--font-size-sm);pointer-events:none;z-index:var(--z-map-overlay);animation:overlay-fade-in var(--duration-hover) var(--ease-out)}.graph-tip-rel.positive{color:var(--attitude-positive)}.graph-tip-rel.negative{color:var(--attitude-negative)}.graph-tip-rel.neutral{color:var(--color-text-dim)}.graph-empty{position:absolute;inset:0;display:grid;place-items:center;padding:var(--space-6);pointer-events:none;text-align:center}.graph-legend{position:absolute;left:var(--space-3);bottom:var(--space-3);max-width:calc(100% - var(--space-3) * 2);display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-4);padding:var(--space-2) var(--space-4);color:var(--color-text-dim);background:var(--color-glass-strong);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-1);pointer-events:none}.graph-legend>span{display:inline-flex;align-items:center;gap:var(--space-2)}.graph-legend-sep{width:1px;align-self:stretch;background:var(--color-border)}.graph-filters{display:flex;flex-direction:column;gap:var(--space-4);max-width:min(var(--graph-filters-w),calc(100vw - var(--space-6)))}.graph-filter-group{display:flex;flex-direction:column;gap:var(--space-2)}.graph-chip{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-round);background:var(--color-surface-2);color:var(--color-text);font:inherit;font-size:var(--font-size-sm);cursor:pointer;transition:background-color var(--duration-hover) var(--ease-out),border-color var(--duration-hover) var(--ease-out),scale var(--duration-press) var(--ease-out)}.graph-chip:active{scale:.96}.graph-chip.on{background:var(--color-accent-soft);border-color:var(--color-accent-line)}@media(hover:hover){.graph-chip:hover{border-color:var(--color-accent-line)}}.graph-swatch{width:var(--graph-swatch);height:var(--graph-swatch);border-radius:var(--radius-round);background:radial-gradient(circle at 35% 30%,color-mix(in oklab,var(--chip, var(--color-text-dim)),white 40%),var(--chip, var(--color-text-dim)) 55%,color-mix(in oklab,var(--chip, var(--color-text-dim)),black 30%));box-shadow:0 0 6px color-mix(in srgb,var(--chip, transparent) 45%,transparent);flex:none}.graph-swatch.line,.graph-swatch.dotted,.graph-swatch.dashed{width:var(--graph-swatch-line);height:0;border-radius:0;background:none;box-shadow:none;border-top:2px solid var(--chip, var(--color-text-dim))}.graph-swatch.dotted{border-top:2px dotted var(--graph-edge-field)}.graph-swatch.dashed{border-top-style:dashed}@media(max-width:900px){.graph-legend,.graph-stats{display:none}}@media(prefers-reduced-motion:reduce){.graph-chip{transition:none}.graph-chip:active{scale:none}}}@layer components{.date-input{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.date-input .date-year,.date-year{width:var(--date-year-w)}.date-input .date-day,.date-day{width:var(--date-day-w)}.roster-edit-row{display:flex;gap:var(--space-3);align-items:flex-start;padding-bottom:var(--space-3);border-bottom:1px solid var(--color-border)}.roster-table td{vertical-align:middle}.setup-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-1)}.calendar-layout{display:grid;grid-template-columns:minmax(0,1fr) var(--infobox-w);gap:var(--space-6);align-items:start}.calendar{display:flex;flex-direction:column;gap:var(--space-4);outline:none}.calendar-head{display:flex;align-items:center;gap:var(--space-2)}.calendar-title{display:flex;flex:0 1 auto;min-width:0;align-items:center;gap:var(--space-2);font-family:var(--font-display);font-size:var(--font-size-lg);font-weight:600}.calendar-title select,.calendar-title input{font-weight:600}.calendar-title input{width:var(--date-year-w)}.calendar-title select{min-width:0}.calendar-grid{display:grid;grid-template-columns:repeat(var(--week),minmax(0,1fr));gap:var(--space-1)}.calendar-weekday{padding:var(--space-1) var(--space-2);font-size:var(--font-size-xs);font-weight:600;color:var(--color-text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-day{position:relative;display:flex;flex-direction:column;gap:var(--space-1);min-height:var(--calendar-cell-h);min-width:0;padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-1);cursor:pointer;transition:background var(--duration-hover) ease,border-color var(--duration-hover) ease,scale var(--duration-press) var(--ease-out)}@media(hover:hover)and (pointer:fine){.calendar-day:hover{border-color:var(--color-border-strong);background:var(--color-surface-2)}}.calendar-day:active{scale:.98}.calendar-day.selected{border-color:var(--color-accent-line);background:linear-gradient(var(--color-accent-soft),var(--color-accent-soft)),var(--color-surface-1)}.calendar-day.today .calendar-day-num{background:var(--color-accent);color:var(--color-on-accent)}.calendar-day-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.calendar-day-num{min-width:1.6em;padding:0 var(--space-2);border-radius:var(--radius-round);font-size:var(--font-size-sm);font-weight:600;font-variant-numeric:tabular-nums;text-align:center}.calendar-day.festival .calendar-day-num{font-family:var(--font-display);text-align:left}.calendar-season{font-size:var(--font-size-xs);color:var(--color-warning);font-weight:600}.calendar-items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-1);font-size:var(--font-size-xs)}.calendar-items li{padding:0 var(--space-2);border-left:2px solid var(--color-accent);border-radius:var(--radius-sm);background:var(--color-surface-2)}.calendar-dots{display:none;gap:var(--space-1)}.calendar-dots>span{width:var(--calendar-dot);height:var(--calendar-dot);border-radius:var(--radius-round);background:var(--color-accent)}.calendar-pad{min-height:var(--calendar-cell-h)}.calendar-festival{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--entity-card-min-w),1fr));gap:var(--space-2)}.cal-moons{display:inline-flex;gap:var(--space-1)}.cal-moon{display:inline-block;flex-shrink:0;width:var(--calendar-moon);height:var(--calendar-moon);border-radius:var(--radius-round);border:1px solid var(--moon)}.cal-moon.full,.cal-moon.phase-4{background:var(--moon)}.calendar-moon-list .cal-moon{width:var(--calendar-moon-lg);height:var(--calendar-moon-lg)}.cal-moon.phase-1{background:linear-gradient(to right,transparent 75%,var(--moon) 75%)}.cal-moon.phase-2{background:linear-gradient(to right,transparent 50%,var(--moon) 50%)}.cal-moon.phase-3{background:linear-gradient(to right,transparent 25%,var(--moon) 25%)}.cal-moon.phase-5{background:linear-gradient(to left,transparent 25%,var(--moon) 25%)}.cal-moon.phase-6{background:linear-gradient(to left,transparent 50%,var(--moon) 50%)}.cal-moon.phase-7{background:linear-gradient(to left,transparent 75%,var(--moon) 75%)}.calendar-side{display:flex;flex-direction:column;gap:var(--space-4)}.calendar-moon-list,.calendar-entries{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.calendar-moon-list li,.calendar-entries li{display:flex;align-items:center;gap:var(--space-2);min-width:0;font-size:var(--font-size-sm)}.calendar-jump{flex-shrink:0;padding:0;border:0;background:none;color:var(--color-text-dim);font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;cursor:pointer}.calendar-jump:hover{color:var(--color-text)}@media(max-width:900px){.calendar-layout{grid-template-columns:minmax(0,1fr)}}@media(max-width:600px){.calendar-head{flex-wrap:wrap}.calendar-title{flex:0 0 auto}.calendar-title select{max-width:8.5em}.calendar-title input{width:var(--date-day-w)}.calendar-day,.calendar-pad{min-height:var(--calendar-cell-h-sm);padding:var(--space-1)}.calendar-items,.calendar-season{display:none}.calendar-dots{display:flex}.calendar-day-head{flex-direction:column;align-items:flex-start}.calendar-weekday{padding-inline:0;text-align:center;font-size:var(--font-size-xs)}}.calendar-widget-date{font-family:var(--font-display);font-size:var(--font-size-lg);font-weight:600;color:var(--color-text);text-decoration:none}.calendar-widget-date:hover{color:var(--color-accent-strong)}.calendar-widget-when{flex:0 0 auto;font-variant-numeric:tabular-nums}.timeline-page{display:flex;flex-direction:column;gap:var(--space-5)}.timeline,.timeline-elements{list-style:none;margin:0;padding:0}.timeline{display:flex;flex-direction:column;gap:var(--space-5)}.timeline-era{--era: var(--color-accent);padding-left:var(--space-5);border-left:3px solid var(--era)}.timeline-era-head{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-3)}.timeline-era-toggle{display:inline-flex;align-items:center;gap:var(--space-2);padding:0;border:0;background:none;cursor:pointer}.timeline-era-toggle h3{margin:0;font-family:var(--font-display);font-size:var(--font-size-lg)}.timeline-era-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--duration-modal) var(--ease-out)}.timeline-era-body.open{grid-template-rows:1fr}.timeline-era-content{display:flex;flex-direction:column;gap:var(--space-3);padding-top:var(--space-3)}.timeline-elements{position:relative;display:flex;flex-direction:column;gap:var(--space-4);padding-left:calc(var(--timeline-node) / 2)}.timeline-elements:before{content:"";position:absolute;top:var(--space-2);bottom:var(--space-2);left:calc(var(--timeline-node) / 2 - var(--timeline-rail) / 2);width:var(--timeline-rail);background:var(--color-border-strong)}.timeline-moment{--moment: var(--era);position:relative;display:flex;gap:var(--space-3);margin-left:calc(var(--timeline-node) / -2)}.timeline-node{position:relative;flex:0 0 var(--timeline-node);height:var(--timeline-node);display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-round);border:2px solid var(--moment);background:var(--color-surface-1);color:var(--moment);font-size:var(--font-size-sm)}.timeline-date{font-size:var(--font-size-sm);font-weight:600;font-variant-numeric:tabular-nums;color:var(--moment)}.timeline-moment .lore-md{font-size:var(--font-size-sm)}@media(hover:hover)and (pointer:fine){.timeline-moment-actions{opacity:0;transition:opacity var(--duration-hover) ease}.timeline-moment:hover .timeline-moment-actions,.timeline-moment:focus-within .timeline-moment-actions{opacity:1}}.main-timeline-filters{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}.main-timeline,.main-timeline-rows{list-style:none;margin:0;padding:0}.main-timeline{display:flex;flex-direction:column;gap:var(--space-5)}.main-timeline-era{margin-bottom:var(--space-3);font-family:var(--font-title);font-size:var(--font-size-xl);color:var(--color-accent-strong)}.main-timeline-year-head{position:sticky;top:calc(-1 * var(--space-6));z-index:1;margin:0 0 var(--space-2);padding:var(--space-2) 0;font-size:var(--font-size-md);font-weight:600;font-variant-numeric:tabular-nums;background:var(--color-bg);border-bottom:1px solid var(--color-border)}.main-timeline-rows{display:flex;flex-direction:column}.main-timeline-row{display:grid;grid-template-columns:var(--main-timeline-date-w) minmax(0,1fr);align-items:center;gap:var(--space-4);padding:var(--space-2) 0;border-bottom:1px solid var(--color-border)}.main-timeline-date{color:var(--color-text-dim);font-size:var(--font-size-sm);font-variant-numeric:tabular-nums}.main-timeline-now{display:flex;align-items:center;gap:var(--space-3);margin:var(--space-2) 0;color:var(--color-accent-strong);font-size:var(--font-size-xs);font-weight:700;letter-spacing:.1em;text-transform:uppercase}.main-timeline-now:before,.main-timeline-now:after{content:"";flex:1;height:2px;background:var(--color-accent)}.main-timeline-now:before{flex:0 0 var(--space-5)}@media(max-width:600px){.main-timeline-row{grid-template-columns:minmax(0,1fr);gap:var(--space-1)}}@media(prefers-reduced-motion:reduce){.timeline-era-body,.calendar-day{transition:none}}}@layer components{.family-stepper strong{min-width:1.2em;text-align:center}.family-tree-scroll{overflow:auto;max-height:min(70vh,720px);background:var(--color-surface-sunken);border:1px solid var(--color-border);border-radius:var(--radius-md);overscroll-behavior:contain;cursor:grab}.family-tree-scroll:active{cursor:grabbing}.family-tree-canvas{position:relative}.family-tree-lines{position:absolute;inset:0;pointer-events:none}.ft-line{fill:none;stroke:var(--color-border-strong);stroke-width:1.5}.ft-partner{stroke:var(--color-accent-line);stroke-width:2.5}.ft-co-parent{stroke-dasharray:4 4}.ft-node{position:absolute;display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2);background:var(--color-surface-1);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-1);cursor:auto}.ft-node.is-focus{border-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-accent-soft)}.ft-portrait{flex:none;width:44px;height:44px;border-radius:var(--radius-sm);object-fit:cover;background:var(--color-surface-2)}.ft-portrait-empty{display:grid;place-items:center;color:var(--color-text-dim)}.ft-node.is-gone .ft-portrait{filter:grayscale(1);opacity:.7}.ft-node.is-gone{background:var(--color-surface-2)}.ft-text{display:flex;flex-direction:column;min-width:0;line-height:1.25}.ft-name{overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-weight:600}.ft-dates{color:var(--color-text-dim);font-size:.8em;white-space:nowrap}.ft-more{position:absolute;left:50%;display:grid;place-items:center;width:22px;height:22px;padding:0;translate:-50% 0;color:var(--color-text-dim);background:var(--color-surface-1);border:1px solid var(--color-border-strong);border-radius:var(--radius-round);cursor:pointer}.ft-more:hover{color:var(--color-accent-strong);border-color:var(--color-accent)}.ft-more-up{top:-12px;rotate:180deg}.ft-more-down{bottom:-12px}}@layer components{*{box-sizing:border-box}html,body,#root{margin:0;height:100%;background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:var(--font-size-md);-webkit-font-smoothing:antialiased}body{overflow:hidden}body:after{content:"";position:fixed;inset:0;z-index:1;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");opacity:var(--grain-opacity);mix-blend-mode:overlay}a{color:var(--color-link)}button,input,select,textarea{font:inherit;color:inherit}input:not([type=checkbox],[type=radio],[type=color],[type=range],[type=file]),select,textarea{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);min-width:0;transition:border-color .15s,box-shadow .15s}input:not([type=checkbox],[type=radio],[type=color],[type=range],[type=file]):hover,select:hover,textarea:hover{border-color:var(--color-border-strong)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-focus);box-shadow:var(--glow-accent)}:focus-visible{outline:1px solid var(--color-focus);outline-offset:1px}input[type=checkbox],input[type=radio],input[type=range]{accent-color:var(--color-accent)}::selection{background:var(--color-accent-line)}*{scrollbar-width:thin;scrollbar-color:var(--color-border-strong) transparent}textarea{resize:vertical}@media(pointer:coarse){input:not([type=checkbox],[type=radio],[type=color],[type=range],[type=file]),select,textarea{font-size:max(16px,1em)}}@media(prefers-reduced-transparency:reduce){:root :is(.menu,.popover,.toast,.combobox-list,.mention-list,.map-pin-label){background:var(--color-surface-1);-webkit-backdrop-filter:none;backdrop-filter:none}:root .modal-backdrop{-webkit-backdrop-filter:none;backdrop-filter:none}}input[type=number]{width:70px}hr{border:none;border-top:1px solid var(--color-border);margin:var(--space-3) 0}.row{display:flex;align-items:center;gap:var(--space-3)}.col{display:flex;flex-direction:column;gap:var(--space-3)}.grow{flex:1;min-width:0}.spacer{flex:1}.wrap{flex-wrap:wrap}.scroll{overflow:auto}.centered{align-items:center}.dim{color:var(--color-text-dim)}.small{font-size:var(--font-size-sm)}.danger-text{color:var(--color-danger)}.card{background:var(--color-surface-1);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--edge-highlight);padding:var(--space-5)}}@layer components{.weave-backdrop-slot{position:fixed;inset:0;pointer-events:none;z-index:0;background:var(--color-bg)}.weave-backdrop{position:absolute;inset:0;overflow:hidden;animation:weave-in 1.2s ease-out}@keyframes weave-in{0%{opacity:0}}.weave-backdrop svg{position:absolute;z-index:1;left:50%;top:50%;width:min(118vmin,1180px);height:auto;transform:translate(-50%,-50%);opacity:.6}.weave-backdrop .weave-fx,.weave-backdrop .weave-fx-back{position:absolute;inset:0}.weave-backdrop .weave-fx-back{z-index:0}.weave-backdrop .weave-fx{z-index:2}.weave-backdrop[data-class=wizard]{--wv-ink: #a9c4ff}.weave-backdrop[data-class=warlock]{--wv-ink: #d9bdf5}.weave-backdrop[data-class=cleric]{--wv-ink: #f3dc9a}.weave-backdrop[data-class=paladin]{--wv-ink: #bcd4f0}.weave-backdrop[data-class=druid]{--wv-ink: #9fd6a3}.weave-backdrop[data-class=sorcerer]{--wv-ink: #ffb08a}.weave-backdrop[data-class=bard]{--wv-ink: #f0b3e3}.weave-backdrop[data-class=ranger]{--wv-ink: #c8d79e}.weave-backdrop[data-class=artificer]{--wv-ink: #c9d3dc}:root[data-theme=light] .weave-backdrop[data-class=wizard]{--wv-ink: #1f3a6e}:root[data-theme=light] .weave-backdrop[data-class=warlock]{--wv-ink: #3d1f4d}:root[data-theme=light] .weave-backdrop[data-class=cleric]{--wv-ink: #6b4e12}:root[data-theme=light] .weave-backdrop[data-class=paladin]{--wv-ink: #1d3f63}:root[data-theme=light] .weave-backdrop[data-class=druid]{--wv-ink: #2f5d34}:root[data-theme=light] .weave-backdrop[data-class=sorcerer]{--wv-ink: #8a2a12}:root[data-theme=light] .weave-backdrop[data-class=bard]{--wv-ink: #5a2350}:root[data-theme=light] .weave-backdrop[data-class=ranger]{--wv-ink: #3c4a26}:root[data-theme=light] .weave-backdrop[data-class=artificer]{--wv-ink: #3b4650}.center-page{position:relative;z-index:1;height:100%;overflow:auto;display:flex;justify-content:center;align-items:flex-start;padding:var(--space-6) var(--space-5)}.center-page.centered{justify-content:center;align-items:center}.center-page .card{background:var(--color-glass-strong);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.brand{display:inline-flex;align-items:center;gap:var(--space-3);font-size:var(--font-size-xl)}.brand-word>span{color:var(--color-accent-strong)}.lobby h2,.campaign-section h3{display:flex;align-items:center;gap:var(--space-4);margin:0 0 var(--space-4);font-family:var(--font-display);font-size:var(--font-size-sm);font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--color-text-dim)}.lobby h2:after{content:"";flex:1;height:1px;background:linear-gradient(to right,var(--color-accent-line),transparent)}.auth-head .brand{font-size:var(--font-size-display);flex-direction:column;gap:var(--space-2)}.auth-head .brand-icon{font-size:var(--font-size-display)}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--color-border)}.campaign-card{position:relative;cursor:pointer;transition:border-color var(--duration-hover) ease,box-shadow var(--duration-hover) ease,translate var(--duration-hover) var(--ease-out),scale var(--duration-press) var(--ease-out)}.campaign-card:active{scale:.99}.campaign-card:before{content:"";position:absolute;inset:-1px auto -1px -1px;width:2px;background:var(--color-accent);opacity:0;transition:opacity .15s}.campaign-card:hover{border-color:var(--color-accent-line);box-shadow:var(--glow-accent)}@media(hover:hover)and (pointer:fine){.campaign-card:hover{translate:0 -1px}}.campaign-card:hover:before{opacity:1}.enter-tabletop-row{display:flex;align-items:center;gap:var(--space-4)}.enter-tabletop-rule{position:relative;flex:1;height:1px;background:linear-gradient(to left,var(--color-accent-line),transparent)}.enter-tabletop-rule:last-child{background:linear-gradient(to right,var(--color-accent-line),transparent)}.enter-tabletop-rule:after{content:"";position:absolute;top:50%;right:0;width:7px;height:7px;translate:0 -50%;rotate:45deg;background:var(--color-accent);box-shadow:0 0 6px var(--color-accent)}.enter-tabletop-rule:last-child:after{right:auto;left:0}@media(max-width:480px){.enter-tabletop-rule{display:none}.enter-tabletop-row>.btn{flex:1}}.btn.enter-tabletop{position:relative;overflow:hidden;min-width:min(320px,100%);min-height:60px;gap:var(--space-3);padding:var(--space-3) calc(var(--space-6) * 1.75);border-radius:var(--radius-md);background:linear-gradient(to bottom,var(--color-accent-strong),var(--color-accent) 60%);outline:1px solid color-mix(in srgb,var(--color-on-accent) 22%,transparent);outline-offset:-5px;font-family:var(--font-display);font-size:var(--font-size-lg);font-weight:700;letter-spacing:.14em;text-transform:uppercase;box-shadow:inset 0 1px color-mix(in srgb,var(--palette-white) 35%,transparent),inset 0 -2px color-mix(in srgb,var(--palette-ink-950) 18%,transparent),var(--glow-accent);animation:enter-breathe 3.2s ease-in-out infinite;transition:translate .15s,scale var(--duration-press) var(--ease-out),box-shadow .2s}.btn.enter-tabletop:after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 35%,color-mix(in srgb,var(--palette-white) 40%,transparent) 50%,transparent 65%);translate:-110% 0;pointer-events:none}.btn.enter-tabletop:hover:not(:disabled){background:linear-gradient(to bottom,var(--color-accent-strong),var(--color-accent-strong) 30%,var(--color-accent));translate:0 -1px;box-shadow:inset 0 1px color-mix(in srgb,var(--palette-white) 45%,transparent),inset 0 -2px color-mix(in srgb,var(--palette-ink-950) 18%,transparent),var(--glow-accent),0 0 36px color-mix(in srgb,var(--color-accent) 45%,transparent)}.btn.enter-tabletop:hover:after{translate:110% 0;transition:translate .7s ease-out}.btn.enter-tabletop:active:not(:disabled){translate:0 1px}.btn.enter-tabletop .icon{font-size:1.5em;transition:rotate .5s cubic-bezier(.3,1.4,.5,1)}.btn.enter-tabletop:hover .icon{rotate:180deg}@keyframes enter-breathe{50%{box-shadow:inset 0 1px color-mix(in srgb,var(--palette-white) 35%,transparent),inset 0 -2px color-mix(in srgb,var(--palette-ink-950) 18%,transparent),var(--glow-accent),0 0 28px color-mix(in srgb,var(--color-accent) 30%,transparent)}}@media(prefers-reduced-motion:reduce){.btn.enter-tabletop,.btn.enter-tabletop .icon,.btn.enter-tabletop:after{animation:none;transition:none}}.campaign-section{position:relative;overflow:hidden;gap:var(--space-4);transition:border-color .2s,box-shadow .2s}.campaign-section:after{content:"";position:absolute;top:-60px;left:-60px;width:180px;height:180px;border-radius:var(--radius-round);background:radial-gradient(circle,var(--color-accent-soft),transparent 70%);pointer-events:none}.campaign-section>*{position:relative;z-index:1}.campaign-section:hover{border-color:var(--color-accent-line);box-shadow:var(--glow-accent)}.campaign-section h3{margin:0;gap:var(--space-3)}.section-sigil{display:inline-grid;place-items:center;width:26px;height:26px;flex-shrink:0;rotate:45deg;border:1px solid var(--color-accent-line);border-radius:var(--radius-sm);background:var(--color-accent-soft);color:var(--color-accent-strong);font-size:var(--font-size-sm)}.section-sigil>*{rotate:-45deg}.section-count{padding:0 var(--space-2);border-radius:var(--radius-round);background:var(--color-accent-soft);color:var(--color-accent-strong);font-family:var(--font-sans);font-size:var(--font-size-xs);letter-spacing:0;line-height:1.6}.section-foot{gap:var(--space-2);flex-wrap:wrap;padding-top:var(--space-3);border-top:1px dashed var(--color-border)}.member-list{gap:var(--space-2)}.campaign-section .member-row{gap:var(--space-3);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:color-mix(in srgb,var(--color-surface-2) 60%,transparent);transition:border-color .15s,background .15s}.campaign-section .member-row:hover{border-color:var(--color-accent-line);background:var(--color-accent-soft)}.campaign-section .member-row.me{border-left:3px solid var(--color-accent)}.member-row .avatar{box-shadow:0 0 0 2px var(--color-surface-1),0 0 0 3px var(--color-accent-line)}.member-name{font-weight:600}.you-pill{margin-left:var(--space-1);padding:0 var(--space-2);border-radius:var(--radius-round);border:1px solid var(--color-border-strong);color:var(--color-text-dim);font-size:var(--font-size-xs);font-weight:500;text-transform:uppercase;letter-spacing:.08em}.member-status{color:var(--color-online)}.member-status:before{content:"";display:inline-block;width:6px;height:6px;margin-right:var(--space-1);border-radius:var(--radius-round);background:currentColor;vertical-align:middle;box-shadow:0 0 6px currentColor}.invite-ticket{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-2) var(--space-2) var(--space-3);border:1px dashed var(--color-accent-line);border-radius:var(--radius-md);background:repeating-linear-gradient(-45deg,transparent 0 8px,color-mix(in srgb,var(--color-accent) 5%,transparent) 8px 16px),var(--color-surface-sunken)}.invite-ticket input{flex:1;min-width:0;padding:0;border:none;background:none;box-shadow:none;color:var(--color-accent-strong);text-overflow:ellipsis}.invite-ticket input:focus{outline:none}.invite-ticket:focus-within{border-style:solid;box-shadow:var(--glow-accent)}.setting-list{gap:var(--space-2)}.setting-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;color:var(--color-text-dim);transition:border-color .15s,background .15s,color .15s}.setting-row>svg{flex-shrink:0;font-size:var(--font-size-lg)}.setting-row:hover{border-color:var(--color-border-strong)}.setting-row.on{border-color:var(--color-accent-line);background:var(--color-accent-soft);color:var(--color-accent-strong)}.setting-label{color:var(--color-text);font-weight:600}.switch{appearance:none;position:relative;flex-shrink:0;width:36px;height:20px;margin:0;border:1px solid var(--color-border-strong);border-radius:var(--radius-round);background:var(--color-surface-sunken);cursor:pointer;transition:background .2s,border-color .2s}.switch:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:var(--radius-round);background:var(--color-text-dim);transition:translate .2s cubic-bezier(.3,1.4,.5,1),background .2s}.switch:checked{border-color:var(--color-accent);background:var(--color-accent)}.switch:checked:after{translate:16px 0;background:var(--color-on-accent)}.switch:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}@media(prefers-reduced-motion:reduce){.switch,.switch:after{transition:none}}}@layer components{.wiki{display:flex;height:100%;background:var(--color-bg)}.wiki-sidebar{flex:0 0 var(--wiki-sidebar-w);display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-4) var(--space-3);overflow-y:auto;background:var(--color-surface-1);border-right:1px solid var(--color-border)}.sidebar-brand{padding:var(--space-2) var(--space-3) var(--space-3);color:var(--color-text);text-decoration:none}.sidebar-brand .brand{font-size:var(--font-size-lg)}.sidebar-campaign{padding:0 var(--space-3) var(--space-4);font-family:var(--font-display);flex-shrink:0;font-size:var(--font-size-heading-sm);line-height:1.3;font-weight:600;color:var(--color-accent-strong);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-3)}.nav-group{margin:var(--space-4) var(--space-3) var(--space-2);font-size:var(--font-size-xs);font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--color-text-dim)}.nav-link{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);color:var(--color-text);text-decoration:none}.nav-link svg{color:var(--color-text-dim);font-size:var(--font-size-lg)}.nav-link:hover{background:var(--color-surface-2)}.nav-link.active{background:var(--color-accent-soft);box-shadow:inset 2px 0 0 var(--color-accent)}.nav-link.active svg{color:var(--color-accent-strong)}.nav-count{font-size:var(--font-size-xs);color:var(--color-text-dim)}.wiki-main{flex:1;min-width:0;display:flex;flex-direction:column}.wiki-topbar{flex:0 0 var(--wiki-topbar-h);display:flex;align-items:center;gap:var(--space-3);padding:0 var(--space-5);border-bottom:1px solid var(--color-border);background:var(--color-surface-1)}.wiki-content{flex:1;overflow-y:auto;padding:var(--space-6);background:var(--page-glow)}.wiki-content>*{max-width:var(--wiki-content-max-w);margin:0 auto}.page-head{display:flex;align-items:center;gap:var(--space-4)}.page-head h1,.campaign-title,.entity-title{display:flex;align-items:center;gap:var(--space-3);margin:0;font-family:var(--font-display);font-size:var(--font-size-title);line-height:1.1;letter-spacing:-.01em;font-weight:600}.campaign-title{font-family:var(--font-title);font-size:var(--font-size-display);font-weight:400}.section-title{display:flex;align-items:center;gap:var(--space-4);margin:0;font-size:var(--font-size-sm);font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--color-text-dim)}.section-title:after{content:"";flex:1;height:1px;background:linear-gradient(to right,var(--color-accent-line),transparent)}.combobox{position:relative}.combobox>input{width:100%}.quick-search{width:min(var(--quick-search-w),100%)}.quick-search input{padding-left:calc(var(--space-6) + var(--space-2))}.quick-search-icon{position:absolute;left:var(--space-4);top:50%;transform:translateY(-50%);color:var(--color-text-dim);pointer-events:none}.combobox-list,.mention-list{position:absolute;left:0;right:0;top:calc(100% + var(--space-2));z-index:var(--z-menu);background:var(--color-glass-strong);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-2)}.mention-list{right:auto;width:var(--quick-search-w);max-width:100%}.combobox-list .suggestions,.mention-list .suggestions{border:0;box-shadow:none;background:none}.suggestions{max-height:var(--suggestions-max-h);overflow-y:auto;padding:var(--space-2)}.suggestion{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);cursor:pointer}.suggestion:hover,.suggestion.active{background:var(--color-accent-soft)}.suggestion-hint{padding:var(--space-2) var(--space-4) var(--space-3);border-top:1px solid var(--color-border)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mention{color:var(--color-link);text-decoration:none;border-bottom:1px dotted var(--color-accent-line)}.mention:hover{border-bottom-style:solid}.entity-missing{color:var(--color-text-dim)}.entity-chip{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-round);background:var(--color-surface-2);color:var(--color-text);font-size:var(--font-size-sm);text-decoration:none;white-space:nowrap}.entity-chip:hover{border-color:var(--color-accent-line)}.entity-chip svg{color:var(--color-accent)}.gone-mark{margin-left:.2em;font-family:var(--font-display);font-weight:400;color:var(--color-text-dim)}.mention.is-gone,.entity-chip.is-gone,.entity-title.is-gone,.suggestion.is-gone,.entity-card.is-gone .entity-card-body strong{color:var(--color-text-dim)}.mention.is-gone{border-bottom-color:var(--color-border-strong)}.entity-chip.is-gone svg,.suggestion.is-gone svg{color:var(--color-text-dim)}.entity-card.is-gone .entity-card-img,.entity-portrait.is-gone{filter:grayscale(1);opacity:.7}.hover-card-pop{padding:0;overflow:hidden}.hover-card{width:var(--hover-card-w)}.hover-card-img{display:block;width:100%;height:var(--hover-card-img-h);object-fit:cover}.lore-md{max-width:var(--story-max-w);line-height:1.6}.lore-md h1,.lore-md h2,.lore-md h3{font-family:var(--font-display)}.secret-block{margin:var(--space-4) 0;padding:var(--space-3) var(--space-4);background:var(--secret-bg);border-left:3px solid var(--secret-border);border-radius:var(--radius-sm)}.secret-label{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-xs);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--color-warning)}.entity-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--entity-card-min-w),1fr));gap:var(--space-4)}.entity-card{position:relative;display:flex;flex-direction:column;overflow:hidden;background:var(--color-surface-1);border:1px solid color-mix(in srgb,var(--color-border) 60%,transparent);border-radius:var(--radius-lg);box-shadow:var(--edge-highlight),0 1px 2px #00000040;color:var(--color-text);text-decoration:none;transition:border-color var(--duration-hover) ease,translate var(--duration-hover) var(--ease-out),scale var(--duration-press) var(--ease-out)}.entity-card:hover{border-color:var(--color-accent-line);box-shadow:var(--edge-highlight),0 10px 28px -12px #000000b3,0 0 0 1px var(--color-accent-soft)}@media(hover:hover)and (pointer:fine){.entity-card:hover{translate:0 -1px}}.entity-card:active,.type-tile:active{scale:.98}.entity-card-img{position:relative;height:var(--entity-card-img-h);display:flex;align-items:center;justify-content:center;background:var(--color-surface-sunken);color:var(--color-border-strong);font-size:var(--font-size-display)}.default-thumb{--tint: color-mix(in srgb, var(--type-color, var(--color-accent)) 45%, var(--color-accent));position:relative;overflow:hidden;background:radial-gradient(ellipse 75% 85% at 50% 55%,color-mix(in srgb,var(--tint) 12%,var(--color-surface-sunken)),var(--color-surface-sunken) 80%)}.default-thumb:before{content:"";position:absolute;inset:0;background:color-mix(in srgb,var(--tint) 88%,var(--color-text));-webkit-mask:var(--thumb) center / auto 100% no-repeat;mask:var(--thumb) center / auto 100% no-repeat;opacity:var(--thumb-opacity);transition:opacity var(--duration-hover) ease}:root[data-theme=light] .default-thumb{background:radial-gradient(ellipse 75% 85% at 50% 55%,color-mix(in srgb,var(--tint) 7%,var(--color-surface-1)),var(--color-surface-1) 80%)}:root[data-theme=light] .default-thumb:before{background:color-mix(in srgb,var(--tint) 50%,var(--color-text));-webkit-mask-image:var(--thumb-light, var(--thumb));mask-image:var(--thumb-light, var(--thumb))}.thumb-picker-trigger{display:flex;align-items:center;gap:var(--space-3);width:100%;max-width:360px;padding:var(--space-2);padding-right:var(--space-3);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;text-align:left}.thumb-picker-trigger:hover{border-color:var(--color-border-strong)}.thumb-picker-preview{flex:0 0 auto;width:72px;height:40px;border-radius:var(--radius-sm)}.thumb-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,150px);gap:var(--space-3);max-width:min(520px,90vw)}.thumb-picker-option{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-2);background:transparent;border:1px solid transparent;border-radius:var(--radius-md);color:var(--color-text);cursor:pointer;text-align:left}.thumb-picker-option .default-thumb{height:80px;border-radius:var(--radius-sm)}.thumb-picker-option:hover,.thumb-picker-option:focus-visible{border-color:var(--color-border-strong)}.thumb-picker-option.active{border-color:var(--color-accent);box-shadow:0 0 0 1px var(--color-accent-soft)}.entity-card:hover .default-thumb:before,.pinned-entity:hover .default-thumb:before{opacity:var(--thumb-opacity-hover)}.entity-card-img img{width:100%;height:100%;object-fit:cover}.entity-card-body{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-3) var(--space-4);min-width:0}.entity-card-flag{position:absolute;top:var(--space-3);right:var(--space-3)}.entity-table{width:100%;border-collapse:collapse}.entity-table th{text-align:left;font-size:var(--font-size-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-dim)}.entity-table th,.entity-table td{padding:var(--space-3);border-bottom:1px solid var(--color-border)}.segmented{display:flex;gap:var(--space-1)}.tree,.tree ul{list-style:none;margin:0;padding:0}.tree ul{padding-left:var(--tree-indent);border-left:1px solid var(--color-border);margin-left:calc(var(--tree-indent) / 2)}.tree-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) 0}.tree-toggle{width:var(--tree-indent);display:inline-flex;justify-content:center;background:none;border:0;padding:0;color:var(--color-text-dim);cursor:pointer}.dashboard-hero{display:flex;gap:var(--space-5);padding-bottom:var(--space-5);border-bottom:1px solid var(--color-border)}.type-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--type-tile-min-w),1fr));gap:var(--space-3)}.type-tile{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-surface-1);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);text-decoration:none;transition:border-color var(--duration-hover) ease,scale var(--duration-press) var(--ease-out)}.type-tile svg{color:var(--color-accent);font-size:var(--font-size-lg)}.type-tile:hover{border-color:var(--color-accent-line)}.dashboard-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--space-6);align-items:start}.widget{display:flex;flex-direction:column;gap:var(--space-4);min-width:0}.w-third{grid-column:span 2}.w-half{grid-column:span 3}.w-twoThirds{grid-column:span 4}.w-full{grid-column:span 6}.widget-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-3)}.widget-list li{display:flex;align-items:center;gap:var(--space-3);min-width:0}.widget-links{display:flex;flex-direction:column;gap:var(--space-2)}.pinned-entity{display:flex;gap:var(--space-4);padding:var(--space-4);background:var(--color-surface-1);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);text-decoration:none;transition:border-color var(--duration-hover) ease}.pinned-entity:hover{border-color:var(--color-accent-line)}.pinned-entity>img,.pinned-entity-icon{flex:0 0 var(--pinned-img);width:var(--pinned-img);height:var(--pinned-img);object-fit:cover;border-radius:var(--radius-md)}.pinned-entity-icon{display:flex;align-items:center;justify-content:center;background:var(--color-surface-sunken);color:var(--color-border-strong);font-size:var(--font-size-display)}.pinned-entity-name{font-family:var(--font-display);font-size:var(--font-size-lg)}.dashboard-toolbar{position:sticky;top:calc(-1 * var(--space-6));z-index:4;display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-glass-strong);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--color-accent-line);border-radius:var(--radius-lg)}.dashboard-grid.editing{gap:var(--space-5)}.dashboard-grid.editing .widget{gap:var(--space-3);padding:var(--space-3);background:var(--color-surface-1);border:1px dashed var(--color-border-strong);border-radius:var(--radius-lg)}.widget-chrome{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);padding-bottom:var(--space-3);border-bottom:1px solid var(--color-border)}.widget-preview{display:flex;flex-direction:column;gap:var(--space-4);max-height:var(--widget-preview-max-h);overflow:hidden;-webkit-mask-image:linear-gradient(to bottom,black 75%,transparent);mask-image:linear-gradient(to bottom,black 75%,transparent)}.widget-add{display:flex;align-items:center;justify-content:center;gap:var(--space-3);min-height:calc(var(--widget-preview-max-h) / 3);background:none;border:1px dashed var(--color-border-strong);border-radius:var(--radius-lg);color:var(--color-text-dim);font:inherit;cursor:pointer;transition:border-color var(--duration-hover) ease,color var(--duration-hover) ease}.widget-add:hover,.widget-add[data-state=open]{border-color:var(--color-accent);color:var(--color-accent-strong)}.widget.added{animation:widget-in var(--duration-modal) var(--ease-out)}@keyframes widget-in{0%{opacity:0;scale:.96}}.drag-handle{display:inline-flex;align-items:center;justify-content:center;padding:var(--space-2);background:none;border:0;border-radius:var(--radius-md);color:var(--color-text-dim);cursor:grab}.drag-handle:hover{color:var(--color-text);background:var(--color-surface-3)}.drag-handle:focus-visible{outline:2px solid var(--color-focus)}:root.sorting{cursor:grabbing;-webkit-user-select:none;user-select:none}:root.sorting .drag-handle{cursor:grabbing}.widget.dragging,.bookmark-row.dragging,.roster-edit-row.dragging{position:relative;z-index:3;scale:1.02;box-shadow:var(--shadow-2)}.roster-edit-row.dragging{background:var(--color-surface-2);border-radius:var(--radius-md)}.nav-link .bookmark-external{font-size:var(--font-size-xs)}.bookmark-rows{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.bookmark-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3) var(--space-2) var(--space-1);background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-md)}.icon-picker{display:grid;grid-template-columns:repeat(auto-fill,var(--icon-choice-size));gap:var(--space-2)}.icon-choice{width:var(--icon-choice-size);height:var(--icon-choice-size);display:inline-flex;align-items:center;justify-content:center;background:var(--color-surface-2);border:1px solid transparent;border-radius:var(--radius-md);color:var(--color-text-dim);font-size:var(--font-size-lg);cursor:pointer;transition:border-color var(--duration-hover) ease,color var(--duration-hover) ease,scale var(--duration-press) var(--ease-out)}.icon-choice:hover{color:var(--color-text)}.icon-choice:active{scale:.94}.icon-choice.active{border-color:var(--color-accent);background:var(--color-accent-soft);color:var(--color-accent-strong)}.activity,.members,.search-results,.inventory{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-3)}.activity li,.members li,.search-results li{display:flex;align-items:flex-start;gap:var(--space-3)}.search-results li{padding:var(--space-3) 0;border-bottom:1px solid var(--color-border)}.entity-page{display:flex;flex-direction:column;gap:var(--space-5)}.entity-header{display:flex;gap:var(--space-5);padding-bottom:var(--space-5);border-bottom:1px solid var(--color-border)}.entity-portrait{width:var(--entity-portrait);height:var(--entity-portrait);object-fit:cover;border-radius:var(--radius-lg);border:1px solid var(--color-border-strong);box-shadow:var(--shadow-1)}.breadcrumbs{display:flex;flex-wrap:wrap;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-dim)}.type-pill{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--color-accent-strong);text-decoration:none;font-weight:600}.pinned-attrs{display:flex;flex-wrap:wrap;gap:var(--space-5);margin-top:var(--space-2)}.pinned-attrs>div{display:flex;flex-direction:column}.entity-page .tab-content,.modal .tab-content{padding-top:var(--space-5)}.entity-story{display:grid;grid-template-columns:minmax(0,1fr) var(--infobox-w);gap:var(--space-6);align-items:start}.entity-story:has(>:only-child){grid-template-columns:minmax(0,1fr)}.infobox{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);background:var(--color-surface-1);border:1px solid var(--color-border);border-radius:var(--radius-md)}.infobox h4{margin:var(--space-2) 0 0;font-size:var(--font-size-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--color-text-dim)}.infobox dl{margin:0;display:flex;flex-direction:column;gap:var(--space-3)}.infobox dt{font-size:var(--font-size-xs);color:var(--color-text-dim)}.infobox dd{margin:0}.inventory li{display:flex;gap:var(--space-2);align-items:baseline}.qty{color:var(--color-text-dim);font-variant-numeric:tabular-nums}.color-swatch{display:inline-block;width:var(--space-6);height:var(--space-5);border-radius:var(--radius-sm);border:1px solid var(--color-border-strong)}.post{display:flex;flex-direction:column;gap:var(--space-3)}.post-head h3{margin:0;font-family:var(--font-display);font-size:var(--font-size-heading);font-weight:600}.relation-list{display:flex;flex-direction:column}.relation-row{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-2) var(--space-2);border-bottom:1px solid var(--color-border);border-radius:var(--radius-sm);transition:background var(--duration-hover) ease}.relation-row.editable:hover,.relation-row.editable:focus-within{background:var(--color-surface-3)}.relation-target{flex:0 0 var(--relation-target-w, 13rem);min-width:0;overflow:hidden}.relation-label{flex:1;min-width:0;display:flex;align-items:center;gap:var(--space-2)}.relation-row .relation-input,.relation-row .attitude-select{background:transparent;border-color:transparent;box-shadow:none;transition:border-color var(--duration-hover) ease,background var(--duration-hover) ease}.relation-row .relation-input{flex:1;min-width:0;padding-inline:var(--space-2)}.relation-row .attitude-select{color:inherit;font-size:var(--font-size-sm);padding-inline:var(--space-2)}.relation-row:hover :is(.relation-input,.attitude-select),.relation-row :is(.relation-input,.attitude-select):focus{border-color:var(--color-border-strong);background:var(--color-surface-1)}.relation-gm{font-family:inherit;cursor:pointer}.relation-gm.off{background:transparent;color:var(--color-text-dim);opacity:.5}.relation-gm.off:hover,.relation-gm:focus-visible{opacity:1}.relation-form{display:grid;grid-template-columns:1fr 1fr auto;gap:var(--space-3)}.attitude{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-sm)}.attitude-bar{flex-shrink:0;width:var(--attitude-bar-w);height:var(--space-2);background:var(--color-surface-3);border-radius:var(--radius-round);overflow:hidden}.attitude-bar>span{display:block;height:100%;background:currentColor}.attitude.positive{color:var(--attitude-positive)}.attitude.negative{color:var(--attitude-negative)}.attitude.neutral{color:var(--attitude-neutral)}.map-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}.map-chip{display:inline-flex;align-items:center;gap:var(--space-2);min-height:var(--control-h);padding:var(--space-1) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-round);background:var(--color-surface-2);color:var(--color-text-dim);font-size:var(--font-size-sm);cursor:pointer;transition:background var(--duration-hover) var(--ease-out),color var(--duration-hover) var(--ease-out),border-color var(--duration-hover) var(--ease-out),scale var(--duration-press) var(--ease-out)}.map-chip:active{scale:.97}.map-chip[aria-pressed=true]{background:var(--color-accent-soft);border-color:var(--color-accent-line);color:var(--color-text)}.map-chip-dot{width:var(--map-chip-dot);height:var(--map-chip-dot);border-radius:var(--radius-round);box-shadow:0 0 0 1px #00000059;transition:opacity var(--duration-hover) var(--ease-out)}.map-chip[aria-pressed=false] .map-chip-dot{opacity:.35}.map-chip-count{font-size:var(--font-size-xs);color:var(--color-text-dim)}.map-view{position:relative;aspect-ratio:var(--map-aspect);max-height:var(--map-view-h);min-height:var(--map-view-min-h);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;background:var(--color-surface-sunken)}.map-viewport{position:absolute;inset:0;overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;cursor:grab;outline:none}.map-viewport:active{cursor:grabbing}.map-viewport:focus-visible{box-shadow:inset 0 0 0 2px var(--color-focus)}.map-view.placing .map-viewport{cursor:crosshair}.map-world{position:absolute;left:0;top:0;transform-origin:0 0}.map-world>img{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none}.map-layer{transition:opacity var(--duration-modal) var(--ease-out)}.map-loading{display:grid;place-items:center;height:100%}.map-hint{position:absolute;top:var(--space-4);left:50%;translate:-50% 0;z-index:var(--z-map-overlay);padding:var(--space-2) var(--space-4);border-radius:var(--radius-round);background:var(--color-glass-strong);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-size:var(--font-size-sm);pointer-events:none;white-space:nowrap;animation:map-hint-in var(--duration-pop) var(--ease-out)}@keyframes map-hint-in{0%{opacity:0;translate:-50% calc(-1 * var(--space-3))}}.map-zoom{position:absolute;right:var(--space-4);bottom:var(--space-4);z-index:var(--z-map-overlay);display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-2);border-radius:var(--radius-lg);background:var(--color-glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:var(--shadow-1)}.map-zoom>.btn.icon{min-width:var(--map-zoom-button);min-height:var(--map-zoom-button);justify-content:center}@media(max-width:600px){.map-zoom{flex-direction:row;right:var(--space-3);bottom:var(--space-3)}}.map-pin{position:absolute;display:flex;flex-direction:column;align-items:center;transform:translate(-50%,-100%) scale(var(--map-inv-scale, 1));transform-origin:50% 100%;background:none;border:0;padding:0;cursor:pointer;filter:drop-shadow(0 1px 2px rgb(0 0 0 / .6));-webkit-tap-highlight-color:transparent}.map-pin.draggable{touch-action:none;cursor:grab}.map-pin.dragging{cursor:grabbing;z-index:1}.map-pin-head{display:grid;place-items:center;width:var(--map-pin-size);height:var(--map-pin-size);border-radius:var(--radius-round);background:var(--pin-color);border:2px solid var(--map-pin-ring);color:var(--color-on-data);font-size:var(--map-pin-icon);transform-origin:50% 100%;transition:scale var(--duration-press) var(--ease-out)}.map-pin:after{content:"";width:0;height:0;border-left:var(--map-pin-tail) solid transparent;border-right:var(--map-pin-tail) solid transparent;border-top:var(--map-pin-tail) solid var(--map-pin-ring);margin-top:-1px}.map-pin.gm-only .map-pin-head{border-style:dashed}.map-pin.draft .map-pin-head{animation:map-pin-drop var(--duration-pop) var(--ease-out)}@keyframes map-pin-drop{0%{scale:.6;opacity:0}}.map-pin.dragging .map-pin-head{scale:1.18}.map-pin:active .map-pin-head{scale:.94}@media(hover:hover)and (pointer:fine){.map-pin:hover .map-pin-head{scale:1.1}}.map-pin:focus-visible .map-pin-head{box-shadow:0 0 0 2px var(--color-focus)}.map-pin-label{position:absolute;top:100%;margin-top:var(--space-1);padding:0 var(--space-2);border-radius:var(--radius-sm);background:var(--color-glass-strong);color:var(--color-text);font-size:var(--font-size-xs);line-height:1.5;white-space:nowrap;max-width:var(--map-pin-label-max-w);overflow:hidden;text-overflow:ellipsis}@media(prefers-reduced-motion:reduce){.map-pin.draft .map-pin-head,.map-hint{animation:none}.map-layer{transition:none}}.icon-picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--icon-button),1fr));gap:var(--space-2)}.icon-pick{position:relative;display:grid;place-items:center;height:var(--icon-button);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-2);color:var(--color-text-dim);cursor:pointer;transition:background var(--duration-hover) var(--ease-out),color var(--duration-hover) var(--ease-out)}.icon-pick[aria-checked=true]{background:var(--color-accent-soft);border-color:var(--color-accent-line);color:var(--color-accent-strong)}.icon-pick-auto{position:absolute;right:1px;bottom:0;font-size:var(--font-size-xs);font-weight:700;line-height:1}.map-manager-title{margin:0;font-size:var(--font-size-md);font-weight:600}.map-manager-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-2)}.map-manager-row>.grow{flex:1;min-width:var(--map-manager-name-min-w)}.map-manager-row .thumb{background:var(--color-surface-sunken)}.map-manager-row .flip-y{rotate:180deg}.map-opacity{display:inline-flex;align-items:center;gap:var(--space-2)}.map-opacity>input{width:var(--map-opacity-w)}.editor-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--campaign-section-min-w),1fr));gap:var(--space-4)}.mention-editor{position:relative;display:flex;flex-direction:column}.mention-editor textarea{font-family:var(--font-mono);font-size:var(--font-size-sm);line-height:1.5;resize:vertical}.editor-toolbar{padding:var(--space-1) 0 var(--space-2)}.inventory-edit-row{display:flex;gap:var(--space-3);align-items:flex-start;padding-bottom:var(--space-3);border-bottom:1px solid var(--color-border)}.settings-page .card{max-width:var(--wiki-content-max-w)}.storage-meter{height:8px;border-radius:var(--radius-round);background:var(--color-surface-sunken);overflow:hidden}.storage-meter-fill{height:100%;background:var(--color-accent);transition:width .3s ease-out}.storage-meter-fill.full{background:var(--color-danger)}.storage-unused{display:flex;flex-direction:column;gap:var(--space-2);margin:0;padding:0;list-style:none}.image-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--space-3)}.image-tile{position:relative;display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-1);min-width:0;background:var(--color-surface-1);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);text-align:left;cursor:pointer;transition:border-color var(--duration-hover) ease}.image-tile:hover{border-color:var(--color-border-strong)}.image-tile.selected{border-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-accent-soft)}.image-tile-img{display:flex;align-items:center;justify-content:center;aspect-ratio:1;overflow:hidden;border-radius:var(--radius-sm);background:var(--color-surface-sunken)}.image-tile-img img{width:100%;height:100%;object-fit:cover}.image-tile-name{overflow:hidden;padding:0 var(--space-1);font-size:var(--font-size-sm);text-overflow:ellipsis;white-space:nowrap}.image-tile-badges{position:absolute;top:var(--space-2);left:var(--space-2);display:flex;flex-wrap:wrap;gap:var(--space-1)}.gallery-toolbar input{min-width:180px}.gallery-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:var(--space-4);align-items:start}.gallery-folders{position:sticky;top:var(--space-3);display:flex;flex-direction:column;gap:2px;max-height:calc(100vh - 2 * var(--space-5));overflow:auto}.gallery-folder-row{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);min-width:0;background:none;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--color-text);font-size:var(--font-size-sm);text-align:left;cursor:pointer;transition:background-color var(--duration-hover) ease,border-color var(--duration-hover) ease}.gallery-folder-row:hover{background:var(--color-surface-1)}.gallery-folder-row.active{background:var(--color-accent-soft);color:var(--color-text)}.gallery-folder-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drop-over{border-color:var(--color-accent)!important;box-shadow:0 0 0 2px var(--color-accent-soft)}.gallery-crumbs{align-items:center;min-width:0}.gallery-crumb{padding:var(--space-1) var(--space-2);background:none;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--color-text-dim);cursor:pointer}.gallery-crumb:hover{color:var(--color-text)}.gallery-crumb.current{color:var(--color-text);font-weight:600}.gallery-folder-tile .image-tile-img{font-size:2.5rem;color:var(--color-text-dim)}.gallery-bulk{position:sticky;top:0;z-index:2;align-items:center;min-height:36px;padding:var(--space-1) var(--space-2);background:var(--color-surface-1);border:1px solid var(--color-border);border-radius:var(--radius-md)}.gallery-item{position:relative;min-width:0}.gallery-item>.image-tile{width:100%}.gallery-check{position:absolute;top:var(--space-2);right:var(--space-2);width:18px;height:18px;margin:0;accent-color:var(--color-accent);cursor:pointer;opacity:0;transition:opacity var(--duration-hover) ease}.gallery-item:hover .gallery-check,.gallery-check:checked,.gallery-check:focus-visible,.gallery-bulk:has(strong)~.gallery-drop .gallery-check{opacity:1}@media(hover:none){.gallery-check{opacity:1}}.gallery-drop{position:relative;min-height:160px;border:1px dashed transparent;border-radius:var(--radius-md)}.gallery-drop.drop-over:after{content:attr(data-label);position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--color-surface-1) 85%,transparent);border-radius:var(--radius-md);color:var(--color-text);font-weight:600;pointer-events:none}@media(max-width:900px){.gallery-layout{grid-template-columns:minmax(0,1fr)}.gallery-folders{display:none}}.gallery-details{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:var(--space-5)}.gallery-preview{display:flex;align-items:center;justify-content:center;min-height:200px;max-height:60vh;background:var(--color-surface-sunken);border-radius:var(--radius-md);overflow:hidden}.gallery-preview img{max-width:100%;max-height:60vh;object-fit:contain}.facts{display:grid;grid-template-columns:auto 1fr;gap:var(--space-1) var(--space-3);margin:0;font-size:var(--font-size-sm)}.facts dt{color:var(--color-text-dim)}.facts dd{margin:0}.used-by{display:flex;flex-direction:column;gap:var(--space-1);margin:0;padding:0;list-style:none}.similar-compare{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:var(--space-4);align-items:start}.similar-compare figure{display:flex;flex-direction:column;gap:var(--space-1);margin:0}.similar-compare figure img{width:100%;border-radius:var(--radius-sm)}@media(max-width:720px){.gallery-details,.similar-compare{grid-template-columns:1fr}.image-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr))}}.storage-unused-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history{display:grid;grid-template-columns:var(--history-list-w) minmax(0,1fr);gap:var(--space-5);align-items:start}.history-list{display:flex;flex-direction:column;gap:var(--space-1);max-height:var(--history-max-h);overflow-y:auto;margin:0;padding:0;list-style:none}.history-item{display:flex;flex-direction:column;gap:var(--space-1);width:100%;padding:var(--space-3) var(--space-4);border:1px solid transparent;border-radius:var(--radius-md);background:transparent;color:var(--color-text);font:inherit;text-align:left;cursor:pointer;transition:background var(--duration-hover) ease,border-color var(--duration-hover) ease}.history-item:hover{background:var(--color-surface-2)}.history-item.active{background:var(--color-accent-soft);border-color:var(--color-accent-line)}.history-item:focus-visible{outline:2px solid var(--color-focus);outline-offset:-2px}.history-changes{color:var(--color-accent-strong)}.history-detail{min-width:0;display:flex;flex-direction:column;gap:var(--space-5);padding:var(--space-5);background:var(--color-surface-1);border:1px solid var(--color-border);border-radius:var(--radius-md)}.history-detail-head{padding-bottom:var(--space-4);border-bottom:1px solid var(--color-border)}.diff-row{display:grid;grid-template-columns:var(--attr-name-w) minmax(0,1fr);gap:var(--space-4);align-items:baseline}.diff-label{color:var(--color-text-dim);overflow-wrap:anywhere}.diff-value{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);overflow-wrap:anywhere}.diff-value svg{flex:none}.history del,.history ins{text-decoration:none;border-radius:var(--radius-sm);padding:0 var(--space-1)}.history del{background:var(--diff-del-bg);text-decoration:line-through;text-decoration-color:color-mix(in srgb,var(--diff-del-line) 60%,transparent)}.history ins{background:var(--diff-ins-bg)}.diff-text{font-size:var(--font-size-sm);line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-sunken);padding:var(--space-3) 0}.diff-line{padding:0 var(--space-4);border-left:2px solid transparent}.diff-line.del{border-left-color:var(--diff-del-line);background:var(--diff-del-bg)}.diff-line.ins{border-left-color:var(--diff-ins-line);background:var(--diff-ins-bg)}.diff-line.del del,.diff-line.ins ins{background:none;padding:0}.diff-line.change{border-left-color:var(--color-accent)}.diff-line.skip{color:var(--color-text-dim);font-style:italic;padding-block:var(--space-1)}.template-card{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-2)}.type-checks{display:flex;flex-wrap:wrap;gap:var(--space-2)}.type-check{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-round);font-size:var(--font-size-sm);cursor:pointer;transition:background var(--duration-hover) ease,border-color var(--duration-hover) ease}.type-check:has(input:checked){background:var(--color-accent-soft);border-color:var(--color-accent-line)}.type-check input{position:absolute;opacity:0;pointer-events:none}.type-check:has(input:focus-visible){outline:2px solid var(--color-focus)}.deleted-row{display:flex;align-items:center;gap:var(--space-3)}.mobile-nav-trigger{display:none}.wiki-drawer{position:fixed;inset:0 auto 0 0;z-index:var(--z-modal);width:min(var(--wiki-sidebar-w),85vw);display:flex;box-shadow:var(--shadow-2);outline:none}.wiki-drawer>.wiki-sidebar{display:flex;flex:1;padding-top:max(var(--space-4),env(safe-area-inset-top));padding-bottom:max(var(--space-4),env(safe-area-inset-bottom))}.wiki-drawer[data-state=open]{animation:drawer-in var(--duration-drawer) var(--ease-drawer)}.wiki-drawer[data-state=closed]{animation:drawer-out var(--duration-modal) var(--ease-drawer) forwards}@keyframes drawer-in{0%{translate:-100% 0}}@keyframes drawer-out{to{translate:-100% 0}}@media(prefers-reduced-motion:reduce){.widget.added,.wiki-drawer[data-state=open]{animation-name:overlay-fade-in}.wiki-drawer[data-state=closed]{animation-name:overlay-fade-out}}@media(max-width:900px){.wiki>.wiki-sidebar{display:none}.mobile-nav-trigger{display:inline-flex}.wiki-topbar{padding-inline:var(--space-3);gap:var(--space-2)}.entity-story{grid-template-columns:minmax(0,1fr)}.dashboard-grid>*{grid-column:1 / -1}.entity-header{flex-wrap:wrap}.history{grid-template-columns:minmax(0,1fr)}.history-list{max-height:var(--history-max-h-stacked)}.diff-row{grid-template-columns:minmax(0,1fr);gap:var(--space-2)}}.org-chart{--org-line: var(--color-border-strong);--org-gap: var(--space-4);overflow-x:auto;padding:var(--space-4) var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-sunken)}.org-chart-inner{display:flex;flex-direction:column;align-items:center;width:max-content;min-width:100%}.org-tier{display:flex;flex-direction:column;align-items:center}.org-tier-label{position:relative;margin:var(--org-gap) 0;padding:var(--space-1) var(--space-3);border:1px solid var(--color-accent-line);border-radius:var(--radius-round);background:var(--color-accent-soft);color:var(--color-accent-strong);font-family:var(--font-display);font-size:var(--font-size-sm);white-space:nowrap}.org-tier:first-child .org-tier-label{margin-top:0}.org-tier-label:before,.org-tier-label:after{content:"";position:absolute;left:50%;height:var(--org-gap);border-left:1px solid var(--org-line)}.org-tier-label:before{bottom:100%}.org-tier-label:after{top:100%}.org-tier:first-child .org-tier-label:before{display:none}.org-tier-nodes{display:flex;align-items:stretch}.org-slot{position:relative;display:flex;flex-direction:column;align-items:center;padding:var(--org-gap) var(--space-2) 0}.org-slot:before,.org-slot:after,.org-down:before,.org-down:after{content:"";position:absolute;width:50%;height:var(--org-gap)}.org-slot:before,.org-slot:after{top:0;border-top:1px solid var(--org-line)}.org-slot:before{right:50%}.org-slot:after{left:50%;border-left:1px solid var(--org-line)}.org-slot:first-child:before,.org-slot:last-child:after{border-top:none}.org-down{position:relative;align-self:stretch;height:var(--org-gap);margin:auto calc(-1 * var(--space-2)) 0}.org-down:before,.org-down:after{bottom:0;border-bottom:1px solid var(--org-line)}.org-down:before{right:50%}.org-down:after{left:50%;border-left:1px solid var(--org-line)}.org-slot:first-child .org-down:before,.org-slot:last-child .org-down:after{border-bottom:none}.org-node{display:flex;flex-direction:column;align-items:center;gap:var(--space-1);width:9.5rem;padding:var(--space-3) var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-1);box-shadow:var(--shadow-1);text-align:center;overflow-wrap:anywhere}.org-node.branch{border-style:dashed}.org-node.uncertain{opacity:.75}.org-node-img{display:grid;place-items:center;width:3.5rem;height:3.5rem;margin-bottom:var(--space-1);overflow:hidden;border:2px solid var(--color-accent-line);border-radius:var(--radius-round);background:var(--color-surface-2);color:var(--color-accent);font-size:var(--font-size-lg)}.org-node.branch .org-node-img{border-radius:var(--radius-md)}.org-node-img img{width:100%;height:100%;object-fit:cover}.org-node.is-gone .org-node-img{filter:grayscale(1);opacity:.7;border-color:var(--color-border-strong)}.org-node .org-node-name{font-weight:600;border-bottom:none}.org-node-role{color:var(--color-accent-strong)}@media(max-width:600px){.org-node{width:7.5rem}.org-node-img{width:2.75rem;height:2.75rem}}}html:root,html:root[data-palette]{--font-ui: "JetBrains Mono", var(--font-mono);--font-display: "JetBrains Mono", var(--font-mono);--heading-scale: .76;--radius-sm: 0px;--radius-md: 2px;--radius-lg: 2px;--grain-opacity: 0;--glyph-grid-opacity: .05;--scanline: color-mix(in srgb, var(--color-surface-sunken) 55%, transparent);--tick: var(--color-accent-line);--tick-len: 9px}html:root[data-theme=light]{--grain-opacity: 0;--glyph-grid-opacity: .07;--scanline: transparent}@layer components{body:before{content:"";position:fixed;inset:0;z-index:1;pointer-events:none;background:var(--color-text);opacity:var(--glyph-grid-opacity);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96' font-family='monospace' font-size='10' fill='white'%3E%3Ctext x='2' y='10'%3E.%3C/text%3E%3Ctext x='26' y='10'%3E:%3C/text%3E%3Ctext x='74' y='22'%3E.%3C/text%3E%3Ctext x='50' y='34'%3E+%3C/text%3E%3Ctext x='14' y='46'%3E.%3C/text%3E%3Ctext x='86' y='46'%3E'%3C/text%3E%3Ctext x='38' y='58'%3E.%3C/text%3E%3Ctext x='62' y='70'%3E:%3C/text%3E%3Ctext x='2' y='82'%3E-%3C/text%3E%3Ctext x='26' y='94'%3E.%3C/text%3E%3Ctext x='86' y='94'%3E.%3C/text%3E%3C/svg%3E") 0 0 / 96px 96px repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96' font-family='monospace' font-size='10' fill='white'%3E%3Ctext x='2' y='10'%3E.%3C/text%3E%3Ctext x='26' y='10'%3E:%3C/text%3E%3Ctext x='74' y='22'%3E.%3C/text%3E%3Ctext x='50' y='34'%3E+%3C/text%3E%3Ctext x='14' y='46'%3E.%3C/text%3E%3Ctext x='86' y='46'%3E'%3C/text%3E%3Ctext x='38' y='58'%3E.%3C/text%3E%3Ctext x='62' y='70'%3E:%3C/text%3E%3Ctext x='2' y='82'%3E-%3C/text%3E%3Ctext x='26' y='94'%3E.%3C/text%3E%3Ctext x='86' y='94'%3E.%3C/text%3E%3C/svg%3E") 0 0 / 96px 96px repeat}.nav-link,.nav-group,.nav-count,.section-title,.btn,.tab,.badge,.field>label,.type-tile,.entity-card-body,.sidebar-campaign,.infobox dt,.infobox h4,.thumb-picker-trigger,.thumb-picker-option,.toast{font-family:var(--font-ui)}.nav-link,.btn,.tab,.type-tile{font-size:13px;letter-spacing:-.01em}.page-head h1,.campaign-title,.entity-title{font-weight:600;letter-spacing:-.03em}.sidebar-campaign{font-size:14px;letter-spacing:.02em}.page-head h1:after,.entity-title:after{content:"";display:inline-block;width:.5em;height:.85em;margin-left:.12em;background:var(--color-accent);animation:ascii-blink 1.1s steps(1) infinite}@keyframes ascii-blink{50%{opacity:0}}@media(prefers-reduced-motion:reduce){.page-head h1:after,.entity-title:after{animation:none;opacity:.6}}.section-title:before{content:"//";color:var(--color-accent);letter-spacing:0}.section-title:after{background:repeating-linear-gradient(to right,var(--color-accent-line) 0 6px,transparent 6px 10px)}.nav-link{position:relative}.nav-link.active{box-shadow:none}.nav-link.active:before{content:">";position:absolute;left:-2px;color:var(--color-accent-strong);font-weight:700}.btn.primary:before{content:"[";opacity:.7}.btn.primary:after{content:"]";opacity:.7}.tab:before,.tab:after{color:transparent}.tab:before{content:"[";margin-right:.3em}.tab:after{content:"]";margin-left:.3em}.tab.active:before,.tab.active:after,.tab[data-state=active]:before,.tab[data-state=active]:after{color:var(--color-accent)}.tab.active,.tab[data-state=active]{background:none}.entity-card,.pinned-entity,.infobox,.modal,.type-tile{border-radius:var(--radius-md)}.entity-card:after,.pinned-entity:after,.infobox:after,.type-tile:after{content:"";position:absolute;inset:-1px;pointer-events:none;background:linear-gradient(var(--tick),var(--tick)) top left / var(--tick-len) 1px,linear-gradient(var(--tick),var(--tick)) top left / 1px var(--tick-len),linear-gradient(var(--tick),var(--tick)) top right / var(--tick-len) 1px,linear-gradient(var(--tick),var(--tick)) top right / 1px var(--tick-len),linear-gradient(var(--tick),var(--tick)) bottom left / var(--tick-len) 1px,linear-gradient(var(--tick),var(--tick)) bottom left / 1px var(--tick-len),linear-gradient(var(--tick),var(--tick)) bottom right / var(--tick-len) 1px,linear-gradient(var(--tick),var(--tick)) bottom right / 1px var(--tick-len);background-repeat:no-repeat;transition:opacity var(--duration-hover) ease}.pinned-entity,.infobox,.type-tile{position:relative}.entity-card:hover,.pinned-entity:hover,.type-tile:hover{--tick: var(--color-accent)}.entity-card:hover{translate:none}.badge,.entity-chip{border-radius:var(--radius-sm)}.default-thumb:after{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(to bottom,transparent 0 2px,var(--scanline) 2px 3px)}}
