@font-face{font-family:Sarasa Gothic SC Embedded;src:url(/fonts/SarasaGothicSC-Regular.woff2) format("woff2");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Sarasa Gothic SC Embedded;src:url(/fonts/SarasaGothicSC-Bold.woff2) format("woff2");font-style:normal;font-weight:700;font-display:swap}@font-face{font-family:Sarasa Mono SC Embedded;src:url(/fonts/SarasaMonoSC-Regular.woff2) format("woff2");font-style:normal;font-weight:400;font-display:swap}:root{--font-sans:"Sarasa Gothic SC Embedded","Sarasa Gothic SC","Sarasa Gothic","Noto Sans SC","PingFang SC",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-mono:"Sarasa Mono SC Embedded","Sarasa Mono SC","Sarasa Mono","SFMono-Regular",Consolas,"Liberation Mono",monospace;--bg:#fff;--surface:#fff1f7;--surface-strong:#e8f5ff;--text:#2d2630;--muted:#675d68;--border:#e6d5e0;--accent:#a83f6a;--accent-hover:#7f2850;--code:#f5f0f5;--on-accent:#fff;--sheet-shadow:0 18px 44px -18px rgba(45,38,48,.3);--theme-i:0;color-scheme:light;--header-h:3rem;--rail-w:16rem;--rail-pad:1.25rem;--dur:220ms;--ease:cubic-bezier(.2,0,0,1)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-sans);line-height:1.75}button,input,select,textarea{font:inherit}a{color:var(--accent);text-decoration-thickness:.08em;text-underline-offset:.16em}a:hover{color:var(--accent-hover)}.site-root{min-height:100vh;display:flex;flex-direction:column}.site-header{position:-webkit-sticky;position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;height:var(--header-h);padding:0 clamp(1rem,4vw,3rem);background:var(--bg);border-bottom:1px solid var(--border)}@supports(animation-timeline:scroll()){@media(prefers-reduced-motion:no-preference){.site-header{border-bottom-color:transparent;animation:header-detach linear both;animation-timeline:scroll(root block);animation-range:0 32px}}}@keyframes header-detach{to{border-bottom-color:var(--border)}}.brand{display:inline-flex;align-items:center;gap:.5rem;color:var(--text);font-size:1rem;font-weight:700;letter-spacing:.01em;text-decoration:none}.brand-logo{width:1.5rem;height:1.5rem;object-fit:contain}.theme-logo-dark{display:none}.brand span{color:var(--accent);font-weight:400}.site-tools{display:flex;align-items:center;gap:1.5rem;min-width:0}.search{width:min(240px,36vw)}.search,.search-field{position:relative}.search-field:before{height:1px;background:var(--border)}.search-field:after,.search-field:before{content:"";position:absolute;left:0;right:0;bottom:0}.search-field:after{height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform var(--dur) var(--ease)}.search:focus-within .search-field:after{transform:scaleX(1)}.search input{width:100%;padding:.3rem 0;margin:0;color:var(--text);caret-color:var(--accent);background:none;border:0;border-radius:0;font:inherit;font-size:.95rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.search input::placeholder{color:var(--muted);opacity:1}.search input::-webkit-search-cancel-button,.search input::-webkit-search-decoration{-webkit-appearance:none;display:none}.search input:focus{outline:none}.search-sheet{position:absolute;top:calc(100% + .5rem);right:0;z-index:20;width:min(420px,100vw - 2rem);max-height:min(60vh,32rem);overflow-y:auto;overscroll-behavior:contain;margin:0;padding:.5rem 0;list-style:none;background:var(--bg);box-shadow:var(--sheet-shadow);animation:sheet-in .16s var(--ease)}@keyframes sheet-in{0%{opacity:0;transform:translateY(-4px)}}.search-result a{display:block;padding:.5rem 1rem;color:var(--text);text-decoration:none}.search-result-section{display:block;color:var(--muted);font-size:.78rem;line-height:1.4}.search-result-title{display:block;font-size:.95rem;line-height:1.4;transition:color .15s var(--ease)}.search-result-snippet{display:block;margin-top:.15rem;color:var(--muted);font-size:.82rem;line-height:1.5}.search-result[aria-selected=true] .search-result-title{color:var(--accent)}.search-result mark{color:var(--accent);background:none;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.18em}.search-status{padding:.5rem 1rem;color:var(--muted);font-size:.9rem}.theme-toggle{--w:3.25em;position:relative;display:inline-flex;flex:0 0 auto;font-size:.95rem}.theme-choice{display:inline-flex;align-items:center;gap:.3em;padding:.3rem 0;margin:0;background:none;border:0;border-radius:0;font:inherit;color:var(--muted);cursor:pointer;transition:color .15s var(--ease)}.theme-choice svg{width:.95em;height:.95em;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round}.theme-choice+.theme-choice{margin-left:.75rem}.theme-choice:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.theme-choice[data-value=light]{color:var(--text)}:root[data-theme=dark] .theme-choice[data-value=light]{color:var(--muted)}:root[data-theme=dark] .theme-choice[data-value=dark]{color:var(--text)}@media(prefers-color-scheme:dark){:root:not([data-theme]) .theme-choice[data-value=light]{color:var(--muted)}:root:not([data-theme]) .theme-choice[data-value=dark]{color:var(--text)}}:root .theme-toggle .theme-choice:hover{color:var(--text)}.theme-toggle:after{content:"";position:absolute;left:0;bottom:0;width:var(--w);height:2px;background:var(--accent);transform:translateX(calc(var(--theme-i) * (var(--w) + .75rem)));transition:transform var(--dur) var(--ease)}::view-transition-new(root),::view-transition-old(root){animation-duration:.25s;animation-timing-function:var(--ease)}.site-body{display:flex;width:100%;max-width:1440px;margin:0 auto;flex:1 1}.site-sidebar{position:-webkit-sticky;position:sticky;top:var(--header-h);align-self:flex-start;width:var(--rail-w);flex:0 0 var(--rail-w);max-height:calc(100vh - var(--header-h));max-height:calc(100dvh - var(--header-h));overflow-y:auto;overscroll-behavior:contain;padding:1.5rem var(--rail-pad) 3rem;border-right:1px solid var(--border);scrollbar-width:thin;scrollbar-color:var(--border) transparent}.nav{position:relative;font-size:.9rem;line-height:1.45}.nav ul{list-style:none;margin:0;padding:0}.nav>ul>li+li{margin-top:.4rem}.nav-row{position:relative;display:flex;align-items:flex-start;gap:.5rem}.nav-link{flex:1 1 auto;min-width:0;display:block;padding:.3rem .5rem .3rem calc((var(--depth, 1) - 1)*.85rem);color:var(--text);text-decoration:none;transition:color .15s var(--ease)}.nav-text{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;overflow-wrap:anywhere}.nav-link[data-kind=section]{font-weight:700}.nav li[data-depth="1"]>.nav-row>.nav-link{font-size:.92rem}.nav li[data-depth="2"]>.nav-row>.nav-link{font-size:.88rem}.nav li[data-depth="3"]>.nav-row>.nav-link{font-size:.85rem}.nav-link:focus-visible,.nav-link:hover{color:var(--accent)}.nav-link:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.nav-row.is-active .nav-link{color:var(--accent);font-weight:700}.nav-row.is-active .nav-text{display:block}.nav-toggle{flex:0 0 auto;display:grid;place-items:center;width:1.75rem;height:1.75rem;margin:.05rem -.5rem 0 0;padding:0;background:none;border:0;border-radius:0;color:var(--muted);cursor:pointer;transition:color .15s var(--ease)}.nav-toggle:hover{color:var(--text)}.nav-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.nav-toggle:after,.nav-toggle:before{content:"";grid-area:1/1;width:9px;height:1px;background:currentColor;transition:transform var(--dur) var(--ease),opacity var(--dur) var(--ease)}.nav-toggle:after{transform:rotate(90deg)}.nav-toggle[aria-expanded=true]:after{transform:rotate(0deg);opacity:0}.nav-group{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--dur) var(--ease)}.nav-group>ul{min-height:0;overflow:hidden;visibility:hidden;opacity:0;transition:opacity .15s var(--ease),visibility 0s var(--dur)}.nav-group[data-open=true]{grid-template-rows:1fr}.nav-group>ul>li:last-child{margin-bottom:.25rem}.nav-group[data-open=true]>ul{visibility:visible;opacity:1;transition:opacity .15s var(--ease) 80ms,visibility 0s}.nav-cursor{position:absolute;top:0;right:calc(-1*var(--rail-pad));width:2px;height:1px;background:var(--accent);pointer-events:none;opacity:0;transform-origin:top;transform:translateY(var(--cursor-top,0)) scaleY(var(--cursor-h,0));transition:transform var(--dur) var(--ease),opacity .15s var(--ease)}.nav-cursor[data-ready=true]{opacity:1}.site-main{flex:1 1;min-width:0;padding:clamp(2rem,5vw,5rem) clamp(1.25rem,5vw,5rem);overflow-x:clip}.doc-page{display:flex;gap:clamp(2rem,5vw,5rem);max-width:1100px;margin:0 auto}.doc-content{flex:1 1;min-width:0;container-type:inline-size;overflow-wrap:anywhere}.doc-content>h1,.landing h1{margin:0 0 1.5rem;font-size:clamp(2.25rem,5vw,3.6rem);line-height:1.2;letter-spacing:-.025em;text-wrap:balance}.doc-content>h1{font-size:clamp(1.4rem,90cqw/var(--title-w,14),3.6rem);text-wrap:pretty}.doc-content h2{margin-top:2.75rem}.doc-content h3{margin-top:2rem}.doc-content h2,.doc-content h3,.doc-content h4{scroll-margin-top:calc(var(--header-h) + 1.25rem)}.doc-content img{display:block;max-width:100%;height:auto;margin:1.5rem auto;border-radius:.3rem}.doc-content pre{overflow-x:auto;padding:1rem 1.25rem;border:1px solid var(--border);border-radius:.4rem}.doc-content code,.doc-content pre{background:var(--code);font-family:var(--font-mono)}.doc-content code{padding:.12em .3em;border-radius:.2rem;font-size:.9em}.doc-content pre code{padding:0;background:none}.doc-content blockquote{margin:1.5rem 0;padding:.5rem 1.25rem;color:var(--muted);border-left:3px solid var(--accent);background:var(--surface)}.doc-content table{display:block;overflow-x:auto;border-collapse:collapse;margin:1.5rem 0}.doc-content td,.doc-content th{padding:.55rem .8rem;border:1px solid var(--border);text-align:left}.doc-content th{background:var(--surface)}.toc{width:190px;flex:0 0 190px;align-self:flex-start;position:-webkit-sticky;position:sticky;top:calc(var(--header-h) + 2rem);font-size:.88rem}.toc h2{margin:0 0 .75rem;font-size:.8rem;font-weight:700;color:var(--muted);letter-spacing:.01em}.toc ul{list-style:none;margin:0;padding:0}.toc li{margin:.35rem 0}.toc a{color:var(--muted);text-decoration:none;transition:color .15s var(--ease)}.toc a:hover,.toc a[aria-current=location]{color:var(--accent)}.mobile-nav-backdrop,.mobile-nav-toggle,.mobile-sidebar{display:none}.landing{max-width:800px;margin:0 auto;padding:clamp(2rem,8vw,7rem) 0}.landing-logo{display:block;width:clamp(7rem,20vw,10rem);height:auto;margin:0 0 1rem}.landing-logo.theme-logo-dark{display:none}.eyebrow{margin:0 0 .35rem;color:var(--accent);font-size:.85rem;font-weight:700;letter-spacing:.01em}.lead{max-width:42rem;color:var(--muted);font-size:1.2rem}.landing-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin:2rem 0 4rem}.button{display:inline-block;padding:.65rem 1.1rem;background:var(--accent);border-radius:.3rem;text-decoration:none}.button,.button:hover{color:var(--on-accent)}.button:hover{background:var(--accent-hover)}.button-secondary{color:var(--accent);background:var(--surface-strong)}.button-secondary:hover{color:var(--accent-hover);background:var(--border)}.landing-section{max-width:42rem;padding-top:1.5rem}.landing-section,.site-footer{border-top:1px solid var(--border)}.site-footer{display:flex;justify-content:space-between;gap:1rem;padding:1.5rem clamp(1rem,4vw,3rem);color:var(--muted);font-size:.9rem}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}:root[data-theme=dark]{--bg:#1e1b24;--surface:#2b2430;--surface-strong:#20303d;--text:#f7edf4;--muted:#c8b9c7;--border:#514452;--accent:#f2a4c3;--accent-hover:#ffc3d9;--code:#28232d;--on-accent:#fff;--sheet-shadow:0 18px 44px -18px rgba(0,0,0,.75);--theme-i:1;color-scheme:dark}:root[data-theme=dark] .theme-logo-light{display:none}:root[data-theme=dark] .theme-logo-dark{display:block}@media(prefers-color-scheme:dark){:root:not([data-theme]) .theme-logo-light{display:none}:root:not([data-theme]) .theme-logo-dark{display:block}:root:not([data-theme]){--bg:#1e1b24;--surface:#2b2430;--surface-strong:#20303d;--text:#f7edf4;--muted:#c8b9c7;--border:#514452;--accent:#f2a4c3;--accent-hover:#ffc3d9;--code:#28232d;--on-accent:#fff;--sheet-shadow:0 18px 44px -18px rgba(0,0,0,.75);--theme-i:1;color-scheme:dark}}@media(max-width:850px){.site-sidebar{--rail-pad:1rem;--rail-w:190px}.doc-page{display:block}.toc{display:none}}@media(max-width:620px){.site-header{gap:1rem}.site-tools{flex:1 1 auto;gap:1rem}.search{flex:1 1 auto;width:auto;min-width:0}.search-sheet{position:fixed;top:calc(var(--header-h) + .5rem);left:1rem;right:1rem;width:auto}.theme-toggle{--w:.95em}.theme-choice-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.mobile-nav-toggle{display:inline-grid;place-items:center;width:2.5rem;height:2.5rem;margin-right:-.5rem;padding:0;color:var(--text);background:none;border:0;border-radius:0;cursor:pointer}.mobile-nav-backdrop:focus-visible,.mobile-nav-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.site-sidebar{display:none}.mobile-nav-backdrop{display:block;position:fixed;inset:0;z-index:19;padding:0;border:0;cursor:default;background:color-mix(in srgb,var(--text) 40%,transparent);animation:fade-in .2s var(--ease)}.mobile-sidebar{--rail-pad:1.25rem;display:block;position:fixed;inset:0 auto 0 0;z-index:20;width:min(86vw,320px);overflow-y:auto;overscroll-behavior:contain;padding:calc(var(--header-h) + 1.5rem) var(--rail-pad) 2rem;background:var(--bg);border-right:1px solid var(--border);box-shadow:var(--sheet-shadow);animation:drawer-in var(--dur) var(--ease)}.site-main{padding:2rem 1.1rem 3rem}.landing{padding-block:2rem}}@keyframes fade-in{0%{opacity:0}}@keyframes drawer-in{0%{transform:translateX(-100%)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.mobile-nav-backdrop,.mobile-sidebar,.nav-cursor,.nav-group,.nav-group>ul,.nav-link,.nav-text,.nav-toggle,.nav-toggle:after,.nav-toggle:before,.search-field:after,.search-result-title,.search-sheet,.theme-choice,.theme-toggle:after,.toc a{transition:none!important;animation:none!important}::view-transition-group(*),::view-transition-new(*),::view-transition-old(*){animation:none!important}}