@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:ital,wght@0,400;0,500;0,600;0,700;1,400&family=IBM+Plex+Mono:wght@400;500;600&display=swap";@font-face{font-family:ArrowGlyphs;src:local("Apple Symbols"),local("Segoe UI Symbol"),local("Noto Sans Symbols 2"),local("Symbola");unicode-range:U+2190-21FF,U+27F0-27FF;font-style:normal;font-weight:400;size-adjust:145%}:root{color-scheme:light;--paper: #faf7f1;--paper-lifted: #fffdf9;--paper-raised: #f3eee4;--paper-code: #f4efe6;--paper-sunk: #eae2d5;--rule: #e6dfd3;--rule-warm: #e0cdbf;--ink: #2a2622;--ink-data: #4a443c;--ink-soft: #6f6659;--ink-muted: #756b5d;--ink-faint: #8c8275;--rust: #b5532f;--rust-deep: #8f3f22;--amber: #8a6d3b;--amber-deep: #7a5f2c;--olive: #56663b;--clay: #92492a;--brick: #9e3b2e;--font-sans: "ArrowGlyphs", "IBM Plex Sans", system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "SFMono-Regular", monospace;--text-2xs: 12px;--text-xs: 14px;--text-code: 15px;--text-base: 18px;--text-lg: 23px;--text-xl: 28px;--text-2xl: 40px;--page-bg: var(--paper);--surface: var(--paper-raised);--surface-raised: var(--paper-lifted);--surface-code: var(--paper-code);--surface-sunk: var(--paper-sunk);--card-border: var(--rule);--border: var(--rule);--border-strong: var(--rule-warm);--text-primary: var(--ink);--text-body: var(--ink);--text-data: var(--ink-data);--text-secondary: var(--ink-soft);--text-muted: var(--ink-muted);--accent: var(--rust);--accent-deep: var(--rust-deep);--accent-amber: var(--amber);--tone-question: var(--rust);--tone-answer: var(--amber-deep);--tone-note: var(--olive);--tone-tip: var(--amber);--tone-caution: var(--clay);--tone-danger: var(--brick);--tone-ok: var(--olive);--obj-radius: 6px;--radius-md: 5px;--radius-sm: 4px;--radius-xs: 3px;--max-radius: 999px;--shadow-soft: 0 6px 14px rgba(90, 74, 54, .13);--shadow-modal: 0 24px 60px rgba(42, 38, 34, .28);--content-max: 1280px;--content-max-narrow: 960px;--content-gutter: 40px;--toc-width: 250px;--toc-gap: 64px;--measure: none;--header-height: 57px;--header-offset: 89px}:root[data-theme=dark]{color-scheme:dark;--paper: #1e1b18;--paper-lifted: #322d28;--paper-raised: #2a2622;--paper-code: #161311;--paper-sunk: #332e28;--rule: #3a342d;--rule-warm: #4a3a2f;--ink: #f2ece1;--ink-data: #d6ccbc;--ink-soft: #b3a897;--ink-muted: #a2988a;--ink-faint: #8a8073;--rust: #e0794e;--rust-deep: #ee9165;--amber: #d9b45c;--amber-deep: #e3c179;--olive: #a3b571;--clay: #d08a5e;--brick: #e06c5a;--shadow-soft: 0 6px 14px rgba(0, 0, 0, .42);--shadow-modal: 0 24px 60px rgba(0, 0, 0, .62)}*,*:after,*:before{box-sizing:border-box}html{scroll-behavior:smooth}[hidden]{display:none!important}a{color:inherit;word-break:break-word;overflow-wrap:anywhere;text-decoration:none;border-bottom:1px solid transparent}p{line-height:1.72;overflow-wrap:anywhere;word-break:break-word;hyphens:auto;margin:0 0 1.1rem}p code,li code,td code,th code,blockquote code{overflow-wrap:anywhere;word-break:break-word;white-space:pre-wrap}:not(pre)>code{font-family:var(--font-mono);font-size:var(--text-code);background:var(--surface-code);padding:1px 6px;border-radius:var(--radius-xs)}td>code,th>code,td :not(pre)>code,th :not(pre)>code{background:none;padding:0}:is(h1,h2,h3,h4,h5,h6) code{font-size:.82em;padding:0 6px}body{margin:0;color:var(--text-body);background:var(--page-bg);font-family:var(--font-sans);font-size:var(--text-base);-webkit-font-smoothing:antialiased}h1{margin-top:0;margin-bottom:0}::selection{background-color:var(--rule);color:var(--text-primary)}img{max-width:100%;height:auto;display:block;margin:2rem auto;border:1px solid var(--border);border-radius:var(--obj-radius)}figure{margin:2rem 0}figure img{margin:0}figcaption{font-family:var(--font-mono);font-size:var(--text-xs);line-height:1.6;color:var(--text-muted);margin-top:.7rem}.table-scroll{max-width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;border:1px solid var(--border);border-radius:var(--obj-radius);margin:1.75rem 0}table{border-collapse:collapse;border-spacing:0;margin:1.75rem 0;width:100%;font-size:var(--text-code);line-height:1.55}.table-scroll>table{margin:0}th{text-align:left;padding:12px 20px;background:var(--surface);font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}td{padding:11px 20px;background:var(--page-bg);border-top:1px solid var(--border);vertical-align:top}.content{width:100%;max-width:var(--content-max);margin:0 auto;padding:0 var(--content-gutter)}.content-flex{display:grid;grid-template-columns:minmax(0,1fr) var(--toc-width);gap:var(--toc-gap);align-items:start;padding:52px 0 110px}.div-content-body{order:1;min-width:0}.div-content-toc{order:2;min-width:0;position:sticky;top:var(--header-offset);align-self:start;max-height:calc(100vh - var(--header-offset) - 2rem);overflow-y:auto}.page-heading,.div-content-body h1{font-size:var(--text-2xl);font-weight:700;line-height:1.12;letter-spacing:-.025em;margin:0 0 26px}.page-heading{padding-top:52px}.div-content-body h2{font-size:var(--text-xl);font-weight:600;line-height:1.25;letter-spacing:-.015em;margin:56px 0 20px;padding-bottom:12px;border-bottom:1px solid var(--border)}.div-content-body h3{font-size:var(--text-lg);font-weight:600;line-height:1.3;color:var(--text-primary);margin:48px 0 20px}.div-content-body h4{font-size:var(--text-base);font-weight:600;line-height:1.35;color:var(--text-primary);margin:32px 0 14px}.div-content-body h5,.div-content-body h6{font-size:var(--text-xs);font-weight:600;line-height:1.4;color:var(--text-secondary);margin:28px 0 12px}.div-content-body :is(h2,h3,h4,h5,h6){scroll-margin-top:var(--header-offset)}.report-body>p,.report-body>ul,.report-body>ol,.report-body>blockquote{max-width:var(--measure)}.report-body>ul,.report-body>ol{padding-left:24px;line-height:1.7;margin:0 0 1.1rem}.report-body>:is(ul,ol) :is(ul,ol){padding-left:24px;margin:10px 0 0}.report-body>ul li,.report-body>ol li{margin-bottom:10px}.report-body a:not([class]){color:var(--accent)}.report-body a:not([class]):hover{border-bottom-color:currentColor}@media(max-width:1100px){.content{padding:0 20px}.content-flex{grid-template-columns:minmax(0,1fr);gap:0;padding:32px 0 72px}.div-content-body{max-width:100%}.div-content-toc{display:none}}@media(max-width:600px){.page-heading,.div-content-body h1{font-size:var(--text-xl)}.div-content-body h2{font-size:var(--text-lg)}}.site-header{position:sticky;top:0;z-index:40;background:color-mix(in srgb,var(--page-bg) 88%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}.site-nav{max-width:var(--content-max);margin:0 auto;padding:16px var(--content-gutter);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem}.wordmark{font-size:19px;font-weight:700;letter-spacing:-.01em;color:var(--text-primary);white-space:nowrap}.wordmark span{color:var(--accent)}.nav-links{display:flex;flex-wrap:wrap;justify-content:center;gap:28px}.nav-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px}.nav-link{font-size:var(--text-xs);color:var(--text-secondary);transition:color .15s ease}.nav-link:hover{color:var(--accent)}.nav-link.is-active{color:var(--text-primary);font-weight:600}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;flex:none;width:34px;height:34px;padding:0;background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:background-color .12s ease,border-color .12s ease,color .12s ease}.theme-toggle:hover{border-color:var(--accent);color:var(--accent)}.theme-toggle:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 20%,transparent)}.theme-toggle__moon{display:block}.theme-toggle__sun{display:none}:root[data-theme=dark] .theme-toggle__moon{display:none}:root[data-theme=dark] .theme-toggle__sun{display:block}.menu-toggle{position:absolute;opacity:0;pointer-events:none}#burger-icon{display:none;color:var(--text-secondary)}@media(max-width:1000px){.site-nav{grid-template-columns:1fr auto;row-gap:0;padding:14px 20px}#burger-icon{display:block;cursor:pointer}#nav-links{display:none;grid-column:1 / -1;grid-row:2;flex-direction:column;align-items:flex-start;gap:14px;padding-top:14px}#menu-toggle:checked~#nav-links{display:flex}.nav-actions{grid-column:2;grid-row:1}}.search-trigger{display:inline-flex;align-items:center;gap:9px;height:34px;min-width:230px;padding:0 10px 0 11px;background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-md);font-family:var(--font-sans);font-size:var(--text-xs);color:var(--text-secondary);cursor:pointer;transition:border-color .12s ease,color .12s ease}.search-trigger:hover{border-color:var(--border-strong);color:var(--text-primary)}.search-trigger:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.search-trigger__label{white-space:nowrap}.search-trigger__key{margin-left:auto}.search-trigger__key,.search-modal__close kbd{font-family:var(--font-mono);font-size:var(--text-2xs);line-height:1;padding:3px 6px;color:var(--text-muted);background:var(--surface-sunk);border-radius:var(--radius-xs)}.search-modal{position:fixed;inset:0;z-index:100;display:flex;justify-content:center;align-items:flex-start;padding:10vh 20px 20px}.search-modal[hidden]{display:none}.search-modal__backdrop{position:absolute;inset:0;background:color-mix(in srgb,var(--ink) 45%,transparent);backdrop-filter:blur(2px)}.search-modal__dialog{position:relative;display:flex;flex-direction:column;width:min(760px,100%);max-height:100%;overflow:hidden;background:var(--page-bg);border:1px solid var(--border-strong);border-radius:var(--obj-radius);box-shadow:var(--shadow-modal)}.search-modal__field{display:flex;align-items:center;gap:14px;flex:none;height:62px;padding:0 16px 0 20px;border-bottom:1px solid var(--border)}.search-modal__icon{flex:none;color:var(--text-muted)}.search-modal__input{flex:1;min-width:0;height:100%;border:0;background:transparent;font-family:var(--font-sans);font-size:var(--text-base);color:var(--text-primary)}.search-modal__input:focus{outline:none}.search-modal__input::placeholder{color:var(--ink-faint)}.search-modal__close{flex:none;padding:0;background:none;border:0;cursor:pointer}.search-modal__status{flex:none;margin:0;padding:12px 20px;font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border)}.search-modal__status[hidden]{display:none}.search-modal__results{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;margin:0;padding:8px;list-style:none}.search-modal__results:empty{display:none}.search-result+.search-result{margin-top:4px}.search-result__main{display:flex;flex-direction:column;gap:5px;padding:12px 14px;border-radius:var(--radius-md);color:var(--text-primary)}.search-result__main:hover,.search-result__main:focus-visible,.search-result__sub:hover,.search-result__sub:focus-visible{background:var(--surface);outline:none}.search-result__crumb{display:flex;flex-wrap:wrap;gap:7px;font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--text-muted)}.search-result__sep{color:var(--border-strong)}.search-result__title{font-size:var(--text-base);font-weight:600;line-height:1.3}.search-result__excerpt{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden;font-size:var(--text-xs);line-height:1.55;color:var(--text-secondary)}.search-modal mark{background:none;color:var(--accent);font-weight:600}.search-result__sub{display:flex;align-items:baseline;gap:8px;margin-left:14px;padding:7px 14px;border-radius:var(--radius-md);font-size:var(--text-xs);color:var(--text-secondary)}.search-result__sub-arrow{color:var(--text-muted)}mark.pagefind-highlight{background:color-mix(in srgb,var(--amber) 26%,transparent);color:inherit;border-radius:var(--radius-xs);padding:0 2px}.search-hits{position:fixed;right:20px;bottom:20px;z-index:50;display:flex;align-items:center;gap:12px;padding:9px 10px 9px 16px;background:var(--surface-raised);border:1px solid var(--border-strong);border-radius:var(--max-radius);box-shadow:var(--shadow-soft);animation:search-hits-in .18s ease-out}.search-hits[hidden]{display:none}@keyframes search-hits-in{0%{opacity:0;transform:translateY(6px)}}@media(prefers-reduced-motion:reduce){.search-hits{animation:none}}.search-hits__count{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--text-muted);white-space:nowrap}.search-hits__clear{display:inline-flex;align-items:center;gap:8px;padding:5px 8px 5px 11px;background:var(--page-bg);border:1px solid var(--border);border-radius:var(--max-radius);font-family:var(--font-sans);font-size:var(--text-xs);color:var(--text-primary);cursor:pointer;transition:border-color .12s ease,color .12s ease}.search-hits__clear:hover{border-color:var(--accent);color:var(--accent)}.search-hits__clear kbd{font-family:var(--font-mono);font-size:var(--text-2xs);line-height:1;padding:3px 6px;color:var(--text-muted);background:var(--surface-sunk);border-radius:var(--radius-xs)}@media(max-width:600px){.search-hits{right:12px;bottom:12px;padding:6px}.search-hits__count,.search-hits__clear kbd{display:none}}body.search-open{overflow:hidden}@media(max-width:1000px){.search-trigger__label,.search-trigger__key{display:none}.search-trigger{width:34px;min-width:0;padding:0;justify-content:center}}@media(max-width:600px){.search-modal{padding:0}.search-modal__dialog{width:100%;height:100%;max-height:none;border:0;border-radius:0}}#quote{border-left:4px solid var(--border-strong);padding-left:12px;margin:1em 0;color:var(--text-secondary)}starlight-file-tree{border:1px solid var(--border);border-radius:var(--obj-radius);background:var(--surface-code);padding:1.25rem 1.5rem;font-family:var(--font-mono);font-size:var(--text-code)}starlight-file-tree .directory>details>summary{color:var(--text-primary)}starlight-file-tree .directory>details>summary::marker,starlight-file-tree .directory>details>summary::-webkit-details-marker{color:var(--text-muted)}starlight-file-tree .directory>details>summary:hover,starlight-file-tree .directory>details>summary:hover .tree-icon{color:var(--accent)}starlight-file-tree .directory>details>summary:hover~ul{border-color:var(--border-strong)}starlight-file-tree .directory>details>summary:hover .highlight .tree-icon{color:var(--surface-raised)}starlight-file-tree ul{border-inline-start-color:var(--border)}starlight-file-tree .file{color:var(--text-data)}starlight-file-tree .empty,starlight-file-tree .comment{color:var(--text-muted)}starlight-file-tree .highlight{color:var(--surface-raised);background-color:var(--accent)}starlight-file-tree svg{fill:var(--ink-soft)}starlight-file-tree .highlight svg.tree-icon{fill:currentColor}.about-intro{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:56px;align-items:start;padding:64px 0 0}.about-eyebrow{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0 0 14px}.about-name{font-size:var(--text-2xl);font-weight:700;line-height:1.12;letter-spacing:-.025em;margin:0 0 28px}.about-intro p{max-width:64ch;text-wrap:pretty}.about-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}.about-action{display:inline-flex;align-items:center;gap:8px;padding:11px 18px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--text-primary);font-size:var(--text-xs);font-weight:600;transition:background .12s ease,border-color .12s ease}.about-action:hover{border-color:var(--border-strong);background:var(--surface-sunk)}.about-action--primary{background:var(--accent);border-color:var(--accent);color:var(--page-bg)}.about-action--primary:hover{background:var(--accent-deep);border-color:var(--accent-deep)}.about-portrait{margin:0}.about-portrait-frame{padding:8px;border:1px solid var(--border);border-radius:var(--obj-radius);background:var(--surface)}.about-portrait img{display:block;width:100%;height:auto;aspect-ratio:4 / 5;object-fit:cover;border-radius:var(--radius-xs)}.about-faq>h2:first-child{margin-top:0}@media(max-width:900px){.about-intro{grid-template-columns:minmax(0,1fr);gap:32px;padding-top:40px}.about-portrait{max-width:300px}}@media(max-width:600px){.about-name{font-size:var(--text-xl)}}
