@font-face{font-family:plus jakarta sans;font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/plus-jakarta-sans-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:light dark;--bg:#f1f5f9;--bg-soft:#f8fafc;--surface:#ffffff;--border:#e2e8f0;--border-hover:#cbd5e1;--text:#1e293b;--text-secondary:#64748b;--text-muted:#94a3b8;--accent:#64748b;--accent-hover:#475569;--accent-light:#f1f5f9;--link:#2563eb;--link-hover:#1d4ed8;--inline-code:#dc2626;--footer-bg:#0f172a;--footer-text:#94a3b8;--footer-border:#1e293b;--footer-link-hover:#e2e8f0;--bg-gradient:linear-gradient(135deg, #334155, #475569 50%, #64748b);--font-sans:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI",
    Roboto, Helvetica, Arial, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", ui-monospace, SFMono-Regular, Menlo,
    monospace;--text-xs:0.75rem;--text-sm:0.8125rem;--text-base:0.9375rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--leading-tight:1.1;--leading-snug:1.35;--leading-normal:1.6;--weight-normal:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--weight-extrabold:800;--tracking-tight:-0.02em;--tracking-tighter:-0.03em;--tracking-wide:0.08em;--space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--radius-sm:0.375rem;--radius-md:0.5rem;--radius-lg:0.625rem;--radius-xl:0.75rem;--radius-2xl:1rem;--radius-3xl:1.25rem;--radius-full:9999px;--shadow-sm:0 1px 2px rgba(15, 23, 42, 0.05);--shadow-card:0 4px 24px rgba(15, 23, 42, 0.08);--shadow-card-hover:0 12px 32px rgba(15, 23, 42, 0.12);--shadow-focus:0 0 0 3px rgba(100, 116, 139, 0.25);--duration-fast:150ms;--duration-normal:200ms;--ease-out:cubic-bezier(0, 0, 0.2, 1);--container:52rem;--shell-max:92rem;--nav-width:15.5rem;--nav-width-narrow:15rem;--toc-width:14rem;--header-height:3.5rem;--control-size:2.25rem;--sticky-offset:5.5rem;--flow:var(--space-4);--flow-list:var(--space-1);--flow-heading:var(--space-6);--flow-section:var(--space-10)}:root[data-theme=dark]{--bg:#0f172a;--bg-soft:#1e293b;--surface:#1e293b;--border:#334155;--border-hover:#475569;--text:#f1f5f9;--text-secondary:#94a3b8;--text-muted:#64748b;--accent:#cbd5e1;--accent-hover:#e2e8f0;--accent-light:#475569;--link:#60a5fa;--link-hover:#93c5fd;--inline-code:#f87171;--footer-bg:#020617;--footer-text:#94a3b8;--footer-border:#1e293b;--footer-link-hover:#e2e8f0;--bg-gradient:linear-gradient(135deg, #334155, #475569 50%, #64748b);--shadow-card:0 4px 24px rgba(0, 0, 0, 0.3);--shadow-card-hover:0 12px 32px rgba(0, 0, 0, 0.4)}*,*::before,*::after{box-sizing:border-box}html{font-size:16px;line-height:var(--leading-normal);-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-height:100vh;display:flex;flex-direction:column;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:var(--text-base)}main{flex:1 0 auto;padding-bottom:var(--space-16)}h1,h2,h3,h4{margin:0;font-weight:var(--weight-bold);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight)}p{margin:0}a{color:var(--link);text-decoration-color:color-mix(in srgb,var(--link) 35%,transparent);text-underline-offset:.18em;transition:color var(--duration-fast)var(--ease-out),text-decoration-color var(--duration-fast)var(--ease-out)}a:hover{color:var(--accent-hover);text-decoration-color:initial}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}::selection{background:var(--accent);color:var(--surface)}.skip-link{position:absolute;left:-9999px;top:0}.skip-link:focus{left:var(--space-4);top:var(--space-4);z-index:100;padding:var(--space-2)var(--space-4);border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-card)}.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--space-6)}body{padding-top:calc(var(--header-height) + 2.5rem)}.site-header{position:fixed;top:var(--space-2);left:50%;transform:translateX(-50%);z-index:100;width:calc(100% - var(--space-4));max-width:var(--shell-max)}.site-header__inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);min-height:var(--header-height);padding:var(--space-2)var(--space-4);border:1px solid var(--border);border-radius:var(--radius-2xl);background:color-mix(in srgb,var(--bg) 80%,transparent);backdrop-filter:blur(20px);box-shadow:var(--shadow-card)}.brand{display:inline-flex;align-items:center;gap:var(--space-3);min-width:0;color:var(--text);font-weight:var(--weight-semibold);font-size:var(--text-base);text-decoration:none}.brand:hover{color:var(--text)}.brand__name{overflow:hidden;letter-spacing:var(--tracking-tight);text-overflow:ellipsis;white-space:nowrap}.site-actions{display:flex;align-items:center;gap:var(--space-2)}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:var(--control-size);height:var(--control-size);padding:0;border:1px solid transparent;border-radius:var(--radius-md);background:0 0;color:var(--text-secondary);cursor:pointer;transition:background var(--duration-fast)var(--ease-out),color var(--duration-fast)var(--ease-out)}.icon-button:hover{background:var(--accent-light);color:var(--text)}.button{display:inline-flex;align-items:center;justify-content:center;height:var(--control-size);padding:0 var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--weight-semibold);text-decoration:none;white-space:nowrap}.button--primary{background:var(--bg-gradient);color:#fff;box-shadow:0 4px 16px rgba(71,85,105,.28);transition:filter var(--duration-fast)var(--ease-out)}.button--primary:hover{color:#fff;filter:brightness(1.06)}.button--secondary{border:1px solid var(--border);background:var(--surface);color:var(--text);transition:background var(--duration-fast)var(--ease-out),border-color var(--duration-fast)var(--ease-out)}.button--secondary:hover{border-color:var(--border-hover);background:var(--bg-soft);color:var(--text)}.theme-toggle .icon-sun{display:none}[data-theme=dark] .theme-toggle .icon-sun{display:block}[data-theme=dark] .theme-toggle .icon-moon{display:none}@media(min-width:48rem){body{padding-top:calc(var(--header-height) + 3rem)}.site-header{top:var(--space-4);width:calc(100% - var(--space-12))}}.prose{color:var(--text-secondary);font-size:var(--text-sm);line-height:var(--leading-normal)}.prose>*+*{margin-top:var(--flow)}.prose h2{margin-top:var(--flow-section);color:var(--text);font-size:var(--text-2xl);font-weight:var(--weight-semibold)}.prose h3{margin-top:var(--space-8);color:var(--text);font-size:var(--text-xl);font-weight:var(--weight-semibold)}.prose h4{margin-top:var(--space-6);color:var(--text);font-size:var(--text-base);font-weight:var(--weight-semibold)}.prose p{margin:0 0 var(--flow)}.prose ul,.prose ol{margin:0 0 var(--flow);padding-left:var(--space-6)}.prose ul{list-style:disc}.prose ol{list-style:decimal}.prose li{margin-bottom:var(--flow-list)}.prose li:last-child{margin-bottom:0}.prose strong{color:var(--text);font-weight:var(--weight-semibold)}.prose a{color:var(--link);font-weight:var(--weight-medium);text-decoration:none;transition:color var(--duration-fast)var(--ease-out)}.prose a:hover{color:var(--link-hover);text-decoration:underline}.prose code{padding:2px 6px;border-radius:var(--radius-sm);background:var(--bg);color:var(--inline-code);font-family:var(--font-mono);font-size:var(--text-xs);white-space:nowrap}.prose pre{margin:0 0 var(--space-4)}.prose pre code{display:block;overflow-x:auto;padding:var(--space-4);border-radius:var(--radius-xl);background:#1e293b;color:#e2e8f0;font-size:var(--text-xs);line-height:1.5;white-space:pre;word-break:break-word}.prose blockquote{margin:0 0 var(--space-4);padding-left:var(--space-4);border-left:4px solid var(--accent);color:var(--text-secondary);font-style:italic}.prose hr{margin:var(--space-6)0;border:0;border-top:1px solid var(--border)}.prose img{display:block;max-width:100%;height:auto;margin:var(--space-4)0;border:1px solid var(--border);border-radius:var(--radius-xl)}.prose table{width:100%;margin-bottom:var(--space-4);border-collapse:collapse;font-size:var(--text-sm)}.prose thead{border-bottom:2px solid var(--border)}.prose tr{border-bottom:1px solid var(--border)}.prose th{padding:var(--space-3);color:var(--text);font-weight:var(--weight-semibold);text-align:left}.prose td{padding:var(--space-3);color:var(--text-secondary)}.prose>h2+*,.prose>h3+*{margin-top:var(--flow-heading)}.site-footer{flex:none;background:var(--footer-bg);color:var(--footer-text);border-top:1px solid var(--footer-border)}.site-footer__inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2)var(--space-6);padding-block:var(--space-8);font-size:var(--text-sm)}.site-footer__copy{margin:0}.site-footer__links{display:flex;flex-wrap:wrap;gap:var(--space-5)}.site-footer__links a{color:var(--footer-text);text-decoration:none;transition:color var(--duration-fast)var(--ease-out)}.site-footer__links a:hover{color:var(--footer-link-hover)}@media(max-width:40rem){.container{padding-inline:var(--space-4)}.site-footer__inner{flex-direction:column;align-items:flex-start}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.container--wide{max-width:var(--shell-max)}.site-layout{display:grid;grid-template-columns:var(--nav-width)minmax(0,1fr)var(--toc-width);gap:var(--space-8);align-items:start;padding-block:0 var(--space-12)}.site-layout--no-toc{grid-template-columns:var(--nav-width)minmax(0,1fr)}.nav-card{position:sticky;top:var(--sticky-offset);max-height:calc(100vh - 7.5rem);overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-2xl)}.nav-card__title{display:flex;width:100%;align-items:center;justify-content:space-between;gap:var(--space-2);margin:0;padding:var(--space-3)var(--space-4);border:0;border-bottom:1px solid var(--border);background:0 0;color:var(--text);font:inherit;font-size:var(--text-sm);font-weight:var(--weight-semibold);text-align:left}.side-nav__title{display:none}.side-nav__toggle{cursor:pointer}.nav-card__nav{padding:var(--space-2)}.nav-card__nav ul{margin:0;padding:0;list-style:none}.nav-card__nav li{margin:0}.nav-card__nav a{display:block;overflow:hidden;padding:var(--space-2)var(--space-3);border-radius:var(--radius-lg);color:var(--text-secondary);font-size:var(--text-sm);line-height:1.4;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;transition:background var(--duration-fast)var(--ease-out),color var(--duration-fast)var(--ease-out)}.nav-card__nav a:hover{background:var(--accent-light);color:var(--text)}.nav-card__nav a.is-active{background:var(--accent-light);color:var(--accent);font-weight:var(--weight-medium)}.nav-card__nav>a+a,.nav-card__nav li+li,.nav-card__nav>*+*{margin-top:var(--space-1)}.nav-card__nav ul ul{margin-top:var(--space-1);padding-left:var(--space-3)}@media(min-width:56rem){.side-nav__title{display:flex}.side-nav__toggle{display:none}}.page-body{min-width:0;padding:clamp(var(--space-5),3.5vw,var(--space-10));background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-2xl);box-shadow:var(--shadow-card)}.page-body h1{margin-bottom:var(--space-4);font-size:clamp(1.75rem,1.35rem + 1.2vw,2.35rem);letter-spacing:var(--tracking-tighter)}.page-subtitle{margin-bottom:var(--space-3);color:var(--text);font-size:clamp(1.25rem,1.1rem + .6vw,1.625rem);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-tight);line-height:var(--leading-snug)}.page-lead{max-width:46ch;margin-bottom:var(--space-8);color:var(--text-secondary);font-size:var(--text-lg);line-height:var(--leading-normal)}.page-actions{display:flex;flex-wrap:wrap;gap:var(--space-3)}.page-body h2{margin-top:var(--space-10);padding-bottom:var(--space-2);border-bottom:1px solid var(--border);font-size:var(--text-2xl);scroll-margin-top:6rem}.page-body h3{margin-top:var(--space-8);font-size:var(--text-xl);scroll-margin-top:6rem}.page-body p,.page-body li{color:var(--text-secondary)}.prose .button--primary,.prose .button--primary:hover{color:#fff}.prose .button--secondary,.prose .button--secondary:hover{color:var(--text)}@media(max-width:80rem){.site-layout{grid-template-columns:var(--nav-width-narrow)minmax(0,1fr)}.page-toc{display:none}}@media(max-width:56rem){.site-layout{grid-template-columns:1fr;gap:var(--space-4);padding-block:0 var(--space-10)}.side-nav{position:static;max-height:none;overflow:visible}.side-nav .nav-card__nav{display:none}.side-nav[data-open=true] .nav-card__nav{display:block}}@media print{:root{--bg:#ffffff;--bg-soft:#ffffff;--surface:#ffffff;--border:#cccccc;--text:#000000;--text-secondary:#333333;--text-muted:#555555;--link:#000000}body{display:block;padding-top:0;background:#fff;font-size:11pt;line-height:1.45}.skip-link,.site-header,.site-footer,.side-nav,.page-toc,.page-actions{display:none}.site-layout{display:block;padding-block:0}.page-body{padding:0;border:0;box-shadow:none}main{padding-bottom:0}.container{max-width:none;padding:0}a{text-decoration:none}a[href^=http]::after{content:" (" attr(href)")";font-size:.85em;color:var(--text-muted)}h2,h3{break-after:avoid}li,p,blockquote,tr{break-inside:avoid}}