@font-face{font-family:Uncut Sans;src:url(/fonts/UncutSans-Light.woff2) format("woff2");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:Uncut Sans;src:url(/fonts/UncutSans-Book.woff2) format("woff2");font-weight:350;font-style:normal;font-display:swap}@font-face{font-family:Uncut Sans;src:url(/fonts/UncutSans-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Uncut Sans;src:url(/fonts/UncutSans-Medium.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Uncut Sans;src:url(/fonts/UncutSans-Bold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Uncut Sans;src:url(/fonts/UncutSans-RegularItalic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}:root{--noche: #0f0f0f;--white: #ffffff;--haze: #f7f8f4;--emerald: #189b5c;--neon: #7ce55e;--cielo: #3d9dd8;--sol: #ffb41d;--blushed: #f78bd8;--rojizo: #f96e43;--page: #f7f8f4;--raised: #ffffff;--sunk: rgb(15 15 15 / .06);--edge: rgb(15 15 15 / .14);--edge-strong: rgb(15 15 15 / .45);--ink: #0f0f0f;--soft: rgb(15 15 15 / .85);--mute: rgb(15 15 15 / .68);--faint: rgb(15 15 15 / .45);--on-ink: #ffffff;--fs-display: 80px;--fs-title: 56px;--fs-h1: 30px;--fs-h2: 24px;--fs-body: 14px;--fs-read: 16px;--lh: 1.43;--lh-read: 1.6;--tracking-tight: -.02em;--pill: 999px;--radius-btn: 999px;--radius-hover: 999px;--r-sm: 8px;--r-md: 12px;--r-lg: 16px;--r-xl: 20px;--float-sm: 0 1px 2px rgb(15 15 15 / .06), 0 4px 16px rgb(15 15 15 / .08);--float-md: 0 2px 4px rgb(15 15 15 / .06), 0 12px 32px rgb(15 15 15 / .12);--float-lg: 0 24px 64px rgb(15 15 15 / .2);--ease: cubic-bezier(.2, 0, .38, .9);--bg: var(--page);--surface: var(--raised);--fg: var(--ink);--muted-fg: var(--mute);--line: var(--edge);--accent: var(--ink);--accent-fg: var(--on-ink);--focus: var(--ink);--code-bg: var(--sunk);--link: var(--ink);color-scheme:light dark}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--page: #0f0f0f;--raised: #0f0f0f;--sunk: rgb(255 255 255 / .08);--edge: rgb(255 255 255 / .18);--edge-strong: rgb(255 255 255 / .5);--ink: #ffffff;--soft: rgb(255 255 255 / .88);--mute: rgb(255 255 255 / .7);--faint: rgb(255 255 255 / .45);--on-ink: #0f0f0f;--float-sm: 0 1px 2px rgb(0 0 0 / .3), 0 4px 16px rgb(0 0 0 / .35);--float-md: 0 2px 4px rgb(0 0 0 / .3), 0 12px 32px rgb(0 0 0 / .45);--float-lg: 0 24px 64px rgb(0 0 0 / .6)}}:root[data-theme=dark]{--page: #0f0f0f;--raised: #0f0f0f;--sunk: rgb(255 255 255 / .08);--edge: rgb(255 255 255 / .18);--edge-strong: rgb(255 255 255 / .5);--ink: #ffffff;--soft: rgb(255 255 255 / .88);--mute: rgb(255 255 255 / .7);--faint: rgb(255 255 255 / .45);--on-ink: #0f0f0f;--float-sm: 0 1px 2px rgb(0 0 0 / .3), 0 4px 16px rgb(0 0 0 / .35);--float-md: 0 2px 4px rgb(0 0 0 / .3), 0 12px 32px rgb(0 0 0 / .45);--float-lg: 0 24px 64px rgb(0 0 0 / .6)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:5rem}body{margin:0;background:var(--bg);color:var(--fg);font-family:Uncut Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-size:var(--fs-body);font-weight:400;line-height:var(--lh);letter-spacing:normal}a{color:var(--link);text-underline-offset:3px}a:hover{text-decoration-thickness:2px}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:4px}.skip-link{position:absolute;left:1rem;top:-4rem;z-index:100;padding:.5rem 1rem;border-radius:var(--pill);background:var(--accent);color:var(--accent-fg);font-weight:500;text-decoration:none}.skip-link:focus{top:1rem}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:1rem;height:4rem;padding:0 clamp(1rem,3vw,2rem);background:var(--bg);border-bottom:1px solid var(--line)}.brand{display:inline-flex;align-items:center;gap:.6rem;flex:none;color:var(--fg);text-decoration:none}.brand-mark{display:block;width:2.25rem;height:2.25rem}.brand-word{display:block;height:1.4rem;width:auto;filter:brightness(0)}.brand-docs{padding:.1rem .65rem;border:1px solid var(--edge-strong);border-radius:var(--pill);font-size:12px;font-weight:500}.brand-tf{display:inline-flex;align-items:center;gap:6px;margin-left:2px}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .brand-word{filter:none}}:root[data-theme=dark] .brand-word{filter:none}@media(max-width:640px){.brand-docs,.brand-tf{display:none}}.topbar-slot{flex:1;display:flex;align-items:center;gap:.5rem;min-width:0}.pill-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:2rem;padding:0 .9rem;border-radius:var(--radius-btn);border:1px solid var(--edge-strong);background:var(--raised);color:var(--fg);font:inherit;font-size:14px;font-weight:500;cursor:pointer;text-decoration:none;transition:background-color .1s var(--ease),color .1s var(--ease),border-color .1s var(--ease)}.pill-btn:hover{background:var(--sunk)}.menu-btn{display:none}.topbar-spacer{flex:1}.topbar-nav{display:flex;align-items:center;gap:.25rem;flex:none}.topbar-link{display:none;flex:none;align-items:center;height:2rem;padding:0 .9rem;border-radius:var(--pill);color:var(--mute);font-size:14px;font-weight:500;text-decoration:none}.topbar-link[aria-current=page]{background:var(--sunk);color:var(--ink)}.topbar-link:hover{background:var(--sunk);color:var(--ink);text-decoration:none}@media(min-width:640px){.topbar-link{display:inline-flex}.user-panel-nav{display:none}}.user-menu{position:relative;flex:none;order:4}.user-btn{display:inline-flex;align-items:center;gap:.5rem;max-width:18rem;min-height:2rem;padding:.15rem .8rem .15rem .2rem;border-radius:var(--radius-btn);border:1px solid var(--edge-strong);background:var(--raised);color:var(--fg);font:inherit;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .1s var(--ease)}.user-btn:hover,.user-btn[aria-expanded=true]{background:var(--sunk)}.user-avatar{display:inline-grid;place-items:center;flex:none;width:1.5rem;height:1.5rem;border-radius:50%;background:var(--ink);color:var(--on-ink);font-size:12px;font-weight:500;line-height:1}.user-email{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.user-panel{position:absolute;right:0;top:calc(100% + .4rem);z-index:40;min-width:14rem;max-width:calc(100vw - 2rem);padding:6px;background:var(--raised);color:var(--fg);border:1px solid var(--edge);border-radius:var(--r-lg);box-shadow:var(--float-md)}.user-panel[hidden]{display:none}.user-panel-email{margin:0;padding:.4rem .75rem .5rem;font-size:12px;color:var(--mute);overflow-wrap:anywhere;border-bottom:1px solid var(--line)}.user-panel ul{list-style:none;margin:6px 0 0;padding:0}.user-panel a{display:flex;align-items:center;min-height:2rem;padding:0 .75rem;border-radius:var(--r-sm);color:var(--fg);text-decoration:none;font-size:14px}.user-panel a{transition:background-color .1s var(--ease)}.user-panel a:hover{background:var(--sunk)}.shell{display:grid;grid-template-columns:17rem minmax(0,1fr) 15rem;gap:2rem;max-width:120rem;margin:0 auto;padding:0 clamp(1rem,3vw,2rem)}.sidebar,.toc{position:sticky;top:4rem;align-self:start;max-height:calc(100vh - 4rem);overflow-y:auto;padding:1.5rem 0;font-size:14px}main{padding:2rem 0 4rem;min-width:0}main>.content{max-width:none}.sidebar ul{list-style:none;margin:0;padding:0}.sidebar ul ul{margin-left:.75rem;padding-left:.5rem;border-left:1px solid var(--line)}.sidebar summary{cursor:pointer;padding:.3rem .75rem;font-weight:500;color:var(--mute);border-radius:var(--r-sm);text-transform:lowercase}.sidebar details[open]>summary{color:var(--ink)}.sidebar{interpolate-size:allow-keywords}.sidebar summary{list-style:none;display:flex;align-items:center;gap:.4rem}.sidebar summary::-webkit-details-marker{display:none}.sidebar summary:before{content:"";flex:none;width:.5rem;height:.5rem;background:currentColor;clip-path:polygon(0 0,100% 50%,0 100%);transition:transform .25s var(--ease)}.sidebar details[open]>summary:before{transform:rotate(90deg)}.sidebar details::details-content{block-size:0;overflow:hidden;opacity:0;transition:block-size .3s var(--ease),opacity .25s var(--ease),content-visibility .3s allow-discrete}.sidebar details[open]::details-content{block-size:auto;opacity:1}.sidebar summary:hover,.sidebar a:hover{background:var(--sunk);color:var(--ink)}.sidebar a{display:block;padding:.3rem .75rem;border-radius:var(--r-sm);color:var(--mute);text-decoration:none}.sidebar a[aria-current=page]{display:flex;align-items:center;gap:.5rem;background:var(--ink);color:var(--on-ink);font-weight:500;border-radius:var(--pill)}.sidebar a[aria-current=page]:before{content:"";flex:none;width:8px;height:8px;border-radius:50%;background:var(--neon)}.toc h2{font-size:12px;font-weight:500;color:var(--mute);margin:0 0 .5rem;text-transform:lowercase}.toc ul{list-style:none;margin:0;padding:0}.toc li.d3{padding-left:1rem}.toc a{display:block;padding:.2rem 0 .2rem .9rem;border-left:1px solid var(--line);color:var(--mute);text-decoration:none}.toc a:hover{color:var(--ink);border-left-color:var(--ink);text-decoration:none}.page-meta{display:flex;flex-wrap:wrap;gap:.25rem .75rem;align-items:center;margin:-.5rem 0 1.5rem;font-size:14px;color:var(--mute)}.page-meta>*+*:before{content:"·";margin-right:.75rem}.page-meta-version{font-weight:500}.page-title{font-size:var(--fs-h1);font-weight:500;line-height:1.2;letter-spacing:var(--tracking-tight);margin:0 0 1rem}article{font-size:var(--fs-read);line-height:var(--lh-read)}article h1,article h2,article h3,article h4{line-height:1.3;letter-spacing:var(--tracking-tight);font-weight:500;margin:2.2rem 0 .75rem}article h1{font-size:var(--fs-h1)}article h2{font-size:var(--fs-h2)}article h3{font-size:18px}article h4{font-size:16px}article p,article ul,article ol,article table,article blockquote,article details,article pre,article figure{margin:0 0 1.1rem}article ul,article ol{padding-left:1.5rem}article li+li{margin-top:.25rem}article a{color:var(--fg);font-weight:500;text-decoration:underline;text-decoration-color:currentColor;text-decoration-thickness:1px;text-underline-offset:3px}article a:hover{text-decoration-thickness:2px}article img,article video{max-width:100%;height:auto;border-radius:var(--r-md)}article hr{border:0;border-top:1px solid var(--line);margin:2rem 0}article blockquote{padding:.5rem 1.25rem;background:var(--sunk);border-radius:var(--r-md)}article blockquote>:last-child{margin-bottom:0}.aside{--aside-accent: var(--cielo);margin:0 0 1.1rem;padding:.9rem 1.25rem;border:1px solid var(--aside-accent);border-radius:var(--r-md);background:var(--raised);color:var(--fg);overflow-wrap:anywhere}.aside-tip{--aside-accent: var(--neon)}.aside-caution{--aside-accent: var(--sol)}.aside-danger{--aside-accent: var(--rojizo)}.aside .aside-title{margin:0 0 .5rem;font-weight:500}.aside .aside-kind{display:inline-block;margin-right:.35rem;padding:0 .6rem;border:1px solid var(--aside-accent);border-radius:var(--pill);background:transparent;color:var(--fg);font-size:12px;font-weight:500;line-height:1.7;text-transform:lowercase}.aside .aside-body>:first-child{margin-top:0}.aside .aside-body>:last-child{margin-bottom:0}.aside .aside-body{min-width:0}.aside pre{max-width:100%;overflow-x:auto}.aside img,.aside video,.aside table{max-width:100%}article table{display:block;overflow-x:auto;border-collapse:collapse;width:max-content;max-width:100%;font-size:14px}article th,article td{border:1px solid var(--line);padding:.5rem .85rem;text-align:left;vertical-align:top}article th{background:var(--sunk);font-weight:500;color:var(--soft)}article details{border:1px solid var(--line);border-radius:var(--r-md);padding:.6rem 1rem;background:var(--surface)}article summary{cursor:pointer;font-weight:500}article iframe{display:block;width:100%;aspect-ratio:16 / 9;height:auto;border:0;border-radius:var(--r-md);margin:0 0 1.1rem}article kbd{border:1px solid var(--line);border-bottom-width:2px;border-radius:6px;padding:.05rem .4rem;font-size:.85em;background:var(--surface)}article code{font-family:IBM Plex Mono,ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.88em}article :not(pre)>code{background:var(--sunk);border-radius:var(--r-sm);padding:.05rem .4rem}article pre{overflow-x:auto;padding:1rem;border-radius:var(--r-md);border:0;background:var(--code-bg);font-size:14px;line-height:1.5}article pre code{font-size:inherit}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .shiki,:root:not([data-theme=light]) .shiki span,:root:not([data-theme=light]) .astro-code,:root:not([data-theme=light]) .astro-code span{color:var(--shiki-dark)!important;font-style:var(--shiki-dark-font-style)!important;font-weight:var(--shiki-dark-font-weight)!important}:root:not([data-theme=light]) article pre.shiki,:root:not([data-theme=light]) article pre.astro-code{background-color:var(--code-bg)!important}}:root[data-theme=dark] .shiki,:root[data-theme=dark] .shiki span,:root[data-theme=dark] .astro-code,:root[data-theme=dark] .astro-code span{color:var(--shiki-dark)!important;font-style:var(--shiki-dark-font-style)!important;font-weight:var(--shiki-dark-font-weight)!important}:root[data-theme=dark] article pre.shiki,:root[data-theme=dark] article pre.astro-code{background-color:var(--code-bg)!important}article pre.shiki,article pre.astro-code{background-color:var(--code-bg)!important}.notice{max-width:40rem;margin:4rem auto;padding:0 1rem}.notice h1{font-size:var(--fs-h1);font-weight:500;letter-spacing:var(--tracking-tight);line-height:1.2}@media(max-width:1100px){.shell{grid-template-columns:17rem minmax(0,1fr)}.toc{display:none}}@media(max-width:800px){.shell{grid-template-columns:minmax(0,1fr);gap:0}.menu-btn{display:inline-flex}.sidebar{display:none;position:static;max-height:none;padding:1rem 0 0}.sidebar.open{display:block}.user-email{display:none}.user-btn{padding-right:.2rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.pill-btn,.user-btn,.user-panel a,.sidebar summary:before,.sidebar details::details-content{transition:none}}.sidebar a.is-deprecated{opacity:.6}.sidebar a.is-deprecated[aria-current=page]{opacity:1}.nav-tag{margin-left:.4rem;padding:0 .5rem;border:1px solid var(--sol);border-radius:var(--pill);font-size:11px;font-weight:500;vertical-align:middle;color:var(--fg);text-transform:lowercase}
