@keyframes spin{to{transform:rotate(360deg)}}@keyframes popIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes shimmer{0%{background-position:200%}to{background-position:-200%}}
.prose{font-family:var(--font-prose);font-size:var(--text-prose);line-height:var(--leading-prose);color:var(--color-textPrimary);max-width:var(--measure-prose);overflow-wrap:anywhere}.prose-ui{font-family:var(--font-ui);font-size:var(--text-base);line-height:var(--leading-relaxed)}.prose-doc{font-family:var(--font-ui);font-size:var(--text-md);line-height:var(--leading-relaxed);max-width:none}.prose>*+*{margin-block-start:var(--space-4)}.prose h1,.prose h2,.prose h3,.prose h4{font-family:inherit;font-weight:600;line-height:var(--leading-tight);letter-spacing:-.01em;color:var(--color-textPrimary)}.prose>*+h1,.prose>*+h2{margin-block-start:var(--space-10)}.prose>*+h3,.prose>*+h4{margin-block-start:var(--space-8)}.prose h1{font-size:var(--text-2xl);letter-spacing:-.015em;font-weight:700}.prose h2{font-size:var(--text-xl)}.prose h3{font-size:var(--text-lg)}.prose h4{font-size:var(--text-md)}.prose-ui h1{font-size:var(--text-lg)}.prose-ui h2{font-size:var(--text-md)}.prose-ui h3,.prose-ui h4{font-size:var(--text-base)}.prose strong{font-weight:700}.prose em{font-style:italic}.prose a{color:var(--color-accent);text-decoration:underline;-webkit-text-decoration-color:var(--color-accentBorder);text-decoration-color:var(--color-accentBorder);text-underline-offset:.18em;transition:text-decoration-color var(--transition-fast)}.prose a:hover{text-decoration-color:currentColor}.prose .wiki-link-inline{color:var(--tint-ink);background:var(--tint);border-radius:var(--radius-pill);-webkit-box-decoration-break:clone;box-decoration-break:clone;cursor:pointer;transition:filter var(--transition-fast);padding:.1em .4em;text-decoration:none}.prose .wiki-link-inline:hover{filter:brightness(.96)}.prose ul,.prose ol{padding-inline-start:var(--space-6)}.prose ul{list-style:outside}.prose ol{list-style:decimal}.prose li+li,.prose li>ul,.prose li>ol{margin-block-start:var(--space-1-5)}.prose blockquote{border-inline-start:3px solid var(--color-accentBorderSolid);color:var(--color-textSecondary);padding-inline-start:var(--space-5)}.prose code{font-family:var(--font-mono);font-size:var(--text-sm);background:var(--color-surfaceSunken);border-radius:var(--radius);padding:.1em .4em}.prose pre{font-family:var(--font-mono);font-size:var(--text-sm);line-height:var(--leading-relaxed);background:var(--color-surfaceSunken);border-radius:var(--radius);padding:var(--space-4);overflow-x:auto}.prose pre code{font-size:inherit;background:0 0;padding:0}.prose hr{background:var(--color-rule);height:1px;margin-block:var(--space-8);border:none}.prose hr[data-scene-break],.prose .scene-break{text-align:center;height:auto;color:var(--color-textTertiary);letter-spacing:.6em;background:0 0}.prose hr[data-scene-break]:before,.prose .scene-break:before{content:"· · ·"}.prose img{border-radius:var(--radius-lg);margin-inline:auto}.prose table{border-collapse:collapse;width:100%;font-family:var(--font-ui);font-size:var(--text-sm);line-height:var(--leading-snug)}.prose th,.prose td{text-align:start;padding:var(--space-2-5) var(--space-3);border-block-end:1px solid var(--color-rule);vertical-align:top}.prose th{color:var(--color-textSecondary);font-weight:600}.prose kbd{font-family:var(--font-mono);font-size:var(--text-xs);border-radius:var(--radius);background:var(--color-surfaceSunken);box-shadow:var(--shadow-hairline);padding:.1em .4em}
:root{--rgb-ink:14, 22, 36;--rgb-sheen:255, 255, 255;--color-onHighlight:#111921;--color-onSolid:#fff;--font-ui:var(--font-figtree), ui-sans-serif, system-ui, sans-serif;--font-prose:var(--font-literata), ui-serif, Georgia, serif;--font-mono:var(--font-jetbrains), "Fira Code", ui-monospace, monospace;--font-display:var(--font-ui);--font-body:var(--font-ui);--font-sans:var(--font-ui);--font-serif:var(--font-prose);--text-2xs:11px;--text-xs:12px;--text-sm:13px;--text-base:15px;--text-md:16px;--text-lg:19px;--text-xl:23px;--text-2xl:29px;--text-3xl:37px;--text-4xl:46px;--text-5xl:58px;--text-display:clamp(2.5rem, 4.5vw + 1rem, 4.5rem);--text-prose:17px;--measure-prose:68ch;--leading-tight:1.2;--leading-snug:1.35;--leading-normal:1.5;--leading-relaxed:1.6;--leading-prose:1.75;--space-0:0;--space-px:1px;--space-0-5:2px;--space-1:4px;--space-1-5:6px;--space-2:8px;--space-2-5:10px;--space-3:12px;--space-3-5:14px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--space-24:96px;--z-base:0;--z-raised:10;--z-sticky:100;--z-header:200;--z-dropdown:300;--z-scrim:400;--z-modal:500;--z-popover:600;--z-toast:700;--z-max:900;--radius:12px;--radius-lg:20px;--radius-xl:28px;--radius-full:50%;--radius-pill:999px;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--dur-fast:.15s;--dur-normal:.25s;--dur-slow:.4s;--transition-fast:var(--dur-fast) var(--ease-out);--transition-normal:var(--dur-normal) var(--ease-out);--transition-slow:var(--dur-slow) var(--ease-in-out);--header-height:52px;--page-header-height:56px;--sidebar-width:260px;--drawer-width:380px;--page-width:min(90%, 2400px);--tint:var(--color-accentSoft);--tint-ink:var(--color-accentSoftForeground);--rgb-tint:var(--rgb-accent)}:root,[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-background:#f5fbfe;--color-surface:#fcfeff;--color-surfaceRaised:#e7f2f8;--color-surfaceHover:#deeaf1;--color-surfaceSunken:#ecf4f8;--color-surfaceOverlay:#fdffff;--color-textPrimary:#242f3d;--color-onInk:#f5fbfe;--color-textSecondary:#242f3db8;--color-textTertiary:#242f3da3;--color-textDisabled:#242f3d61;--color-rule:#242f3d14;--color-ruleStrong:#242f3d26;--color-border:#242f3d14;--color-borderHover:#242f3d29;--color-borderFocus:#242f3d52;--color-accent:#0077bd;--color-accentHover:#0068ac;--color-accentActive:#00599a;--color-accentForeground:#fff;--color-accentMuted:#0077bd1a;--color-accentBorder:#0077bd47;--color-accentBright:#0099d2;--color-accentGlow:#0099d233;--color-accentSoft:#d9f1fd;--color-accentSoftForeground:#004d81;--color-accentBorderSolid:#8eceef;--color-highlight:var(--color-accentBright);--color-highlightInk:var(--color-accentSoftForeground);--color-highlightSoft:var(--color-accentSoft);--color-highlightMuted:#0099d21f;--color-highlightBorder:#0099d24d;--color-destructive:#be222a;--color-destructiveHover:#a90017;--color-onDestructive:#fff;--color-destructiveSoft:#ffe1e0;--color-success:#007f43;--color-successHover:#006d32;--color-onSuccess:#fff;--color-successSoft:#dbfbe5;--color-warning:#975800;--color-onWarning:#fff;--color-warningSoft:#ffecc1;--rgb-accent:0, 119, 189;--rgb-accentBright:0, 153, 210;--rgb-highlight:0, 153, 210;--rgb-destructive:190, 34, 42;--rgb-success:0, 127, 67;--rgb-warning:151, 88, 0;--rgb-neutral:118, 130, 139;--tint-character:#ffdedd;--tint-character-ink:#972430;--rgb-tint-character:255, 222, 221;--tint-place:#cff6e0;--tint-place-ink:#005734;--rgb-tint-place:207, 246, 224;--tint-artifact:#ece2ff;--tint-artifact-ink:#593888;--rgb-tint-artifact:236, 226, 255;--tint-event:#feeec1;--tint-event-ink:#7b4800;--rgb-tint-event:254, 238, 193;--tint-faction:#ffe3d1;--tint-faction-ink:#8d3700;--rgb-tint-faction:255, 227, 209;--shadow-hairline:0 0 0 1px rgba(var(--rgb-ink), .07);--shadow-sm:0 1px 2px rgba(var(--rgb-ink), .04), 0 2px 8px -2px rgba(var(--rgb-ink), .06);--shadow-md:0 2px 4px rgba(var(--rgb-ink), .04), 0 10px 24px -8px rgba(var(--rgb-ink), .12);--shadow-lg:0 4px 8px rgba(var(--rgb-ink), .05), 0 24px 56px -16px rgba(var(--rgb-ink), .18);--shadow-sheet:var(--shadow-lg);--glass-tint:#fafdffa8;--glass-tintStrong:#fafdffdb;--glass-sheen:#ffffffbf;--glass-sheenEdge:#ffffffe6;--glass-rim:#ffffff80;--glass-contact:#0e16240d;--glass-border:#242f3d12;--glass-blur:28px;--glass-saturate:180%;--glass-brightness:1.05;--glass-bg:var(--glass-tint);--glass-bgStrong:var(--glass-tintStrong)}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-background:#111921;--color-surface:#1a222b;--color-surfaceRaised:#242c35;--color-surfaceHover:#2e363f;--color-surfaceSunken:#0b1219;--color-surfaceOverlay:#242c35;--color-textPrimary:#e5ecf1;--color-onInk:#111921;--color-textSecondary:#e5ecf1b8;--color-textTertiary:#e5ecf18c;--color-textDisabled:#e5ecf14d;--color-rule:#e5ecf117;--color-ruleStrong:#e5ecf129;--color-border:#e5ecf117;--color-borderHover:#e5ecf129;--color-borderFocus:#e5ecf152;--color-accent:#60bdeb;--color-accentHover:#7dd0fa;--color-accentActive:#4caad7;--color-accentForeground:#111921;--color-accentMuted:#60bdeb24;--color-accentBorder:#60bdeb4d;--color-accentBright:#89d7f9;--color-accentGlow:#89d7f938;--color-accentSoft:#18364a;--color-accentSoftForeground:#98d8f9;--color-accentBorderSolid:#295b77;--color-highlight:var(--color-accentBright);--color-highlightInk:var(--color-accentSoftForeground);--color-highlightSoft:var(--color-accentSoft);--color-highlightMuted:#89d7f924;--color-highlightBorder:#89d7f952;--color-destructive:#f97770;--color-destructiveHover:#ff8e86;--color-onDestructive:#111921;--color-destructiveSoft:#442323;--color-success:#5ec386;--color-successHover:#72d699;--color-onSuccess:#111921;--color-successSoft:#173523;--color-warning:#e0ae57;--color-onWarning:#111921;--color-warningSoft:#3f3112;--rgb-accent:96, 189, 235;--rgb-accentBright:137, 215, 249;--rgb-highlight:137, 215, 249;--rgb-destructive:249, 119, 112;--rgb-success:94, 195, 134;--rgb-warning:224, 174, 87;--rgb-neutral:133, 145, 154;--tint-character:#442323;--tint-character-ink:#feaaa9;--rgb-tint-character:68, 35, 35;--tint-place:#143525;--tint-place-ink:#88d8ae;--rgb-tint-place:20, 53, 37;--tint-artifact:#322843;--tint-artifact-ink:#cdb7f6;--rgb-tint-artifact:50, 40, 67;--tint-event:#3a2f0f;--tint-event-ink:#ecc980;--rgb-tint-event:58, 47, 15;--tint-faction:#422616;--tint-faction-ink:#fdb48c;--rgb-tint-faction:66, 38, 22;--shadow-hairline:0 0 0 1px rgba(var(--rgb-sheen), .07);--shadow-sm:0 0 0 1px rgba(var(--rgb-sheen), .04), 0 2px 8px -2px rgba(var(--rgb-ink), .5);--shadow-md:0 0 0 1px rgba(var(--rgb-sheen), .06), 0 10px 24px -8px rgba(var(--rgb-ink), .6);--shadow-lg:0 0 0 1px rgba(var(--rgb-sheen), .08), 0 24px 56px -16px rgba(var(--rgb-ink), .7);--shadow-sheet:var(--shadow-lg);--glass-tint:#1a222bb8;--glass-tintStrong:#1a222be6;--glass-sheen:#ffffff14;--glass-sheenEdge:#ffffff2e;--glass-rim:#ffffff1a;--glass-contact:#0000004d;--glass-border:#e5ecf117;--glass-blur:28px;--glass-saturate:160%;--glass-brightness:.94;--glass-bg:var(--glass-tint);--glass-bgStrong:var(--glass-tintStrong)}[data-tint=character]{--tint:var(--tint-character);--tint-ink:var(--tint-character-ink);--rgb-tint:var(--rgb-tint-character)}[data-tint=place]{--tint:var(--tint-place);--tint-ink:var(--tint-place-ink);--rgb-tint:var(--rgb-tint-place)}[data-tint=artifact]{--tint:var(--tint-artifact);--tint-ink:var(--tint-artifact-ink);--rgb-tint:var(--rgb-tint-artifact)}[data-tint=event]{--tint:var(--tint-event);--tint-ink:var(--tint-event-ink);--rgb-tint:var(--rgb-tint-event)}[data-tint=faction]{--tint:var(--tint-faction);--tint-ink:var(--tint-faction-ink);--rgb-tint:var(--rgb-tint-faction)}[data-tint=neutral]{--tint:var(--color-accentSoft);--tint-ink:var(--color-accentSoftForeground);--rgb-tint:var(--rgb-accent)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{overflow-x:clip}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-size:16px}body{font-family:var(--font-ui);font-size:var(--text-base);background-color:var(--color-background);color:var(--color-textPrimary);line-height:var(--leading-normal);min-height:100vh}::selection{background-color:var(--color-accentSoft);color:var(--color-accentSoftForeground)}a{color:inherit;transition:color var(--transition-fast);text-decoration:none}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}input,textarea,select{color:inherit;background:0 0;border:none;outline:none;font-family:inherit}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-borderHover);border-radius:var(--radius-pill)}::-webkit-scrollbar-thumb:hover{background:var(--color-borderFocus)}h1,h2,h3,h4,h5,h6{font-family:var(--font-ui);font-weight:600;line-height:var(--leading-tight);letter-spacing:-.015em;color:var(--color-textPrimary);overflow-wrap:anywhere}h1{letter-spacing:-.02em;font-weight:700}.thread{position:relative}.thread:after{content:"";border-radius:var(--radius-pill);background:var(--color-accentBright);transform-origin:0;height:2px;transition:transform var(--transition-fast);position:absolute;bottom:-2px;left:0;right:0;transform:scaleX(0)}.thread:hover:after,.thread[data-active=true]:after{transform:scaleX(1)}.glass{background-image:linear-gradient(180deg, var(--glass-sheen) 0%, color-mix(in srgb, var(--glass-sheen) 25%, transparent) 38%, transparent 62%), linear-gradient(180deg, var(--glass-tint), var(--glass-tint));-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate)) brightness(var(--glass-brightness));box-shadow:inset 0 1px 0 0 var(--glass-sheenEdge), inset 0 0 0 1px var(--glass-rim), inset 0 -1px 0 0 var(--glass-contact), var(--shadow-md);border:none;position:relative}.glass-strong{background-image:linear-gradient(180deg, var(--glass-sheen) 0%, color-mix(in srgb, var(--glass-sheen) 25%, transparent) 38%, transparent 62%), linear-gradient(180deg, var(--glass-tintStrong), var(--glass-tintStrong))}.glass-bar{box-shadow:inset 0 1px 0 0 var(--glass-sheenEdge), 0 1px 0 0 var(--glass-border)}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.glass,.glass-strong{background-image:none;background-color:var(--color-surfaceOverlay)}}@media (prefers-reduced-motion:reduce){.glass,.glass-strong{-webkit-backdrop-filter:none;background-image:none;background-color:var(--color-surfaceOverlay)}}[class*=Count],[class*=Stat],time,kbd{font-variant-numeric:tabular-nums}img,svg{max-width:100%;display:block}ul,ol{list-style:none}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}button:where(:not(:disabled)):active,.uiBtn:where(:not(:disabled)):active,[role=option]:active,[role=menuitem]:active{transform:scale(.98)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
