@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-cyrillic-ext-wght-normal.DjL33-gN.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-cyrillic-wght-normal.BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-vietnamese-wght-normal.6IgcOCM7.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-latin-ext-wght-normal.DC-KSUi6.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-latin-wght-normal.BgDaEnEv.woff2)format("woff2-variations");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}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-cyrillic-ext-wght-normal.X_5orZeX.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-cyrillic-wght-normal.DiZS0aHC.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-symbols2-wght-normal.CO5SzqOn.woff2)format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-vietnamese-wght-normal.DadHysG0.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-latin-ext-wght-normal.Bwz-egvJ.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-latin-wght-normal.XN7g48iV.woff2)format("woff2-variations");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{--bg:#fff;--surface:#fafafa;--surface-2:#f0f0f0;--line:#eaeaea;--line-2:#d4d4d4;--line-3:#a3a3a3;--fg:#0a0a0a;--fg-1:#171717;--fg-2:#404040;--fg-3:#6b6b6b;--fg-4:#8a8a8a;--accent:#c2410c;--accent-soft:#fff4ed;color-scheme:light;--sans:"Geist Variable", "Geist", system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"Geist Mono Variable", "Geist Mono", ui-monospace, "SF Mono", Menlo, monospace;--w-read:760px;--w-wide:1120px;--gutter:32px;--ease-out:cubic-bezier(.23, 1, .32, 1)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0a0a0a;--surface:#111;--surface-2:#1c1c1c;--line:#242424;--line-2:#333;--line-3:#525252;--fg:#ededed;--fg-1:#d6d6d6;--fg-2:#a8a8a8;--fg-3:#8f8f8f;--fg-4:#6e6e6e;--accent:#fb923c;--accent-soft:#1f140c;color-scheme:dark}}:root[data-theme=dark]{--bg:#0a0a0a;--surface:#111;--surface-2:#1c1c1c;--line:#242424;--line-2:#333;--line-3:#525252;--fg:#ededed;--fg-1:#d6d6d6;--fg-2:#a8a8a8;--fg-3:#8f8f8f;--fg-4:#6e6e6e;--accent:#fb923c;--accent-soft:#1f140c;color-scheme:dark}@media (width<=640px){:root{--gutter:16px}}*,:before,:after{box-sizing:border-box}html{background:var(--bg);-webkit-text-size-adjust:100%}body{background:var(--bg);min-height:100vh;color:var(--fg);font-family:var(--sans);-webkit-font-smoothing:antialiased;flex-direction:column;margin:0;font-size:15px;line-height:1.6;display:flex}main{flex:1}::selection{background:var(--fg);color:var(--bg)}:focus-visible{outline:2px solid var(--fg);outline-offset:2px;border-radius:4px}a{color:inherit;text-underline-offset:3px;text-decoration-thickness:1px}a:hover{text-decoration-color:var(--accent)}code,pre,.mono{font-family:var(--mono);font-size:.9em}.skip{background:var(--fg);color:var(--bg);border-radius:6px;padding:6px 10px;position:absolute;top:8px;left:-9999px}.skip:focus{z-index:10;left:8px}.wrap{width:100%;max-width:calc(var(--w-wide) + var(--gutter) * 2);padding:0 var(--gutter);margin:0 auto}.wrap-read{max-width:calc(var(--w-read) + var(--gutter) * 2)}.masthead{z-index:5;background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:saturate(1.4)blur(10px);border-bottom:1px solid var(--line);position:sticky;top:0}.masthead .wrap{align-items:center;gap:28px;height:56px;display:flex}.mark{letter-spacing:-.01em;align-items:center;gap:8px;font-size:15px;font-weight:600;text-decoration:none;display:inline-flex}.mark svg rect,.mark svg path{stroke:currentColor}.mark-tld{color:var(--fg-3);font-weight:500}.nav{scrollbar-width:none;flex:1;gap:4px;min-width:0;display:flex;overflow-x:auto}.nav a{white-space:nowrap;color:var(--fg-3);border-radius:6px;padding:6px 10px;font-size:14px;text-decoration:none;transition:color .15s,background-color .15s}.nav a:hover{color:var(--fg);background:var(--surface-2)}.nav a[aria-current=page]{color:var(--fg)}.btn{background:var(--fg);height:34px;color:var(--bg);border:1px solid var(--fg);font:500 14px/1 var(--sans);white-space:nowrap;transition:transform .16s var(--ease-out), opacity .15s ease;border-radius:6px;align-items:center;gap:6px;padding:0 14px;text-decoration:none;display:inline-flex}.btn:hover{opacity:.88}.btn:active{transform:scale(.97)}.btn-ghost{color:var(--fg);border-color:var(--line-2);background:0 0}.btn-ghost:hover{opacity:1;background:var(--surface-2)}.btn-lg{height:42px;padding:0 18px;font-size:15px}.btn .arrow{transition:transform .15s}.btn:hover .arrow{transform:translate(2px)}@media (width<=640px){.masthead .btn{display:none}.masthead .wrap{gap:12px}}.footer{border-top:1px solid var(--line);color:var(--fg-3);margin-top:96px;font-size:13px}.footer .wrap{flex-wrap:wrap;justify-content:space-between;gap:12px 28px;padding-top:28px;padding-bottom:40px;display:flex}.footer nav{flex-wrap:wrap;gap:8px 20px;display:flex}.footer a{text-decoration:none}.footer a:hover{color:var(--fg)}.eyebrow{font:500 12px/1.4 var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--fg-3);margin:0 0 10px;display:block}.display{letter-spacing:-.035em;text-wrap:balance;margin:0;font-size:clamp(36px,6vw,60px);font-weight:600;line-height:1.04}.lede{max-width:620px;color:var(--fg-2);text-wrap:pretty;margin:0;font-size:clamp(16px,2vw,19px);line-height:1.55}.h2{letter-spacing:-.025em;text-wrap:balance;margin:0;font-size:clamp(24px,3.4vw,32px);font-weight:600;line-height:1.15}.muted{color:var(--fg-3)}.hero{flex-direction:column;gap:22px;padding:clamp(64px,11vw,128px) 0 clamp(48px,8vw,88px);display:flex}.hero-actions{flex-wrap:wrap;gap:10px;padding-top:6px;display:flex}.badge{border:1px solid var(--line);color:var(--fg-2);background:var(--surface);border-radius:999px;align-self:flex-start;align-items:center;gap:8px;padding:4px 10px 4px 4px;font-size:13px;text-decoration:none;transition:border-color .15s;display:inline-flex}.badge:hover{border-color:var(--line-3)}.badge b{background:var(--fg);color:var(--bg);border-radius:999px;padding:1px 8px;font-size:12px;font-weight:500}.band{border-top:1px solid var(--line);padding:clamp(56px,8vw,88px) 0}.band-head{flex-direction:column;gap:10px;max-width:640px;margin-bottom:40px;display:flex}.band-head p{color:var(--fg-2);margin:0}.domains{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;display:grid}.domain{border:1px solid var(--line);background:var(--surface);border-radius:10px;flex-direction:column;gap:10px;padding:24px;display:flex}.domain h3{font:600 20px/1.2 var(--mono);letter-spacing:-.02em;margin:0}.domain p{color:var(--fg-2);margin:0}.domain ul{color:var(--fg-2);flex-direction:column;gap:6px;margin:4px 0 0;padding:0;font-size:14px;list-style:none;display:flex}.domain li:before{content:"→";color:var(--fg-4);margin-right:8px}.domain-here{background:var(--bg);border-color:var(--line-3)}.domain-tag{font:500 11px/1 var(--mono);text-transform:uppercase;letter-spacing:.05em;background:var(--surface-2);color:var(--fg-3);border-radius:4px;align-self:flex-start;padding:4px 6px}.domain-here .domain-tag{background:var(--accent-soft);color:var(--accent)}.steps{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:32px;display:grid}.steps h3{letter-spacing:-.01em;margin:6px 0;font-size:17px}.steps p{color:var(--fg-2);margin:0}.cards{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;display:grid}.card{border:1px solid var(--line);transition:border-color .15s ease, transform .16s var(--ease-out);border-radius:10px;flex-direction:column;gap:8px;padding:22px;text-decoration:none;display:flex}.card:hover{border-color:var(--line-3)}.card:active{transform:scale(.99)}.card h3{letter-spacing:-.01em;justify-content:space-between;gap:12px;margin:0;font-size:17px;display:flex}.card p{color:var(--fg-2);margin:0;font-size:14px}.card .arrow{color:var(--fg-4);transition:transform .15s,color .15s}.card:hover .arrow{color:var(--fg);transform:translate(3px)}.kv{border-collapse:collapse;width:100%;font-size:14px}.kv th,.kv td{text-align:left;vertical-align:top;border-top:1px solid var(--line);padding:12px 16px 12px 0}.kv tr:last-child th,.kv tr:last-child td{border-bottom:1px solid var(--line)}.kv th{white-space:nowrap;width:1%;font-weight:500}.kv td{color:var(--fg-2)}.kv code{color:var(--fg);word-break:break-all}.scroll-x{-webkit-overflow-scrolling:touch;overflow-x:auto}.page-head{border-bottom:1px solid var(--line);flex-direction:column;gap:16px;margin-bottom:40px;padding:clamp(56px,9vw,96px) 0 32px;display:flex}.page-head .display{font-size:clamp(32px,5vw,48px)}.prose{color:var(--fg-1);font-size:16px;line-height:1.7}.prose>*+*{margin-top:1.1em}.prose h2{letter-spacing:-.02em;margin-top:2.4em;scroll-margin-top:80px;font-size:22px;line-height:1.25}.prose h3{margin-top:1.8em;scroll-margin-top:80px;font-size:17px}.prose p,.prose ul,.prose ol{margin-bottom:0}.prose ul,.prose ol{padding-left:1.3em}.prose li+li{margin-top:.35em}.prose code{background:var(--surface-2);border-radius:4px;padding:1px 5px;font-size:.85em}.prose blockquote{border-left:2px solid var(--accent);background:var(--surface);color:var(--fg-2);border-radius:0 8px 8px 0;margin-left:0;padding:14px 18px}.prose blockquote p{margin:0}.prose table{border-collapse:collapse;width:100%;font-size:14px;display:block;overflow-x:auto}.prose th,.prose td{text-align:left;vertical-align:top;border-top:1px solid var(--line);padding:10px 14px 10px 0}.prose th{color:var(--fg);font-weight:500}.prose td{color:var(--fg-2)}.prose strong{color:var(--fg);font-weight:600}.prose pre{border:1px solid var(--line);border-radius:10px;padding:16px 18px;font-size:13px;line-height:1.6;overflow-x:auto}.prose pre code{font-size:inherit;background:0 0;padding:0}.prose hr{border:0;border-top:1px solid var(--line);margin:3em 0}.with-toc{grid-template-columns:minmax(0,1fr) 200px;gap:64px;display:grid}.toc{align-self:start;font-size:13px;position:sticky;top:88px}.toc ol{border-left:1px solid var(--line);flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.toc a{color:var(--fg-3);border-left:1px solid #0000;margin-left:-1px;padding-left:14px;text-decoration:none;transition:color .15s,border-color .15s;display:block}.toc a:hover{color:var(--fg);border-left-color:var(--fg)}@media (width<=900px){.with-toc{grid-template-columns:minmax(0,1fr)}.toc{display:none}}.nsid-list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.nsid-list li{border-bottom:1px solid var(--line)}.nsid-list a{grid-template-columns:minmax(0,260px) 80px minmax(0,1fr);align-items:baseline;gap:20px;padding:16px 4px;text-decoration:none;transition:background-color .1s;display:grid}.nsid-list a:hover{background:var(--surface)}.nsid-list .nsid{font-family:var(--mono);color:var(--fg);font-size:14px}.nsid-list .desc{color:var(--fg-2);font-size:14px}@media (width<=720px){.nsid-list a{grid-template-columns:1fr auto;gap:4px 12px}.nsid-list .desc{grid-column:1/-1}}.kind{font:500 11px/1 var(--mono);text-transform:uppercase;letter-spacing:.05em;background:var(--surface-2);color:var(--fg-3);white-space:nowrap;border-radius:4px;padding:4px 6px;display:inline-block}.kind-record{background:var(--accent-soft);color:var(--accent)}.def{border:1px solid var(--line);border-radius:10px;margin-top:24px;scroll-margin-top:80px;overflow:hidden}.def-head{background:var(--surface);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;padding:14px 18px;display:flex}.def-head h2{font:600 15px/1.3 var(--mono);margin:0}.def-head h2 a{text-decoration:none}.def-head h2 a:hover{text-decoration:underline}.def-body{flex-direction:column;gap:18px;padding:18px;display:flex}.def-body>p{color:var(--fg-2);margin:0}.def-section{flex-direction:column;gap:8px;display:flex}.def-section h3{font:500 12px/1.4 var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--fg-3);margin:0}.fields{border-collapse:collapse;width:100%;font-size:14px}.fields th,.fields td{text-align:left;vertical-align:top;border-top:1px solid var(--line);padding:10px 14px 10px 0}.fields thead th{font:500 12px/1.4 var(--mono);color:var(--fg-3);border-top:0;padding-top:0}.fields .name{font-family:var(--mono);color:var(--fg);white-space:nowrap}.fields .req{font:500 10px/1 var(--mono);color:var(--accent);text-transform:uppercase;letter-spacing:.05em;margin-left:6px}.fields .type{font-family:var(--mono);white-space:nowrap;color:var(--fg-1);font-size:13px}.fields .type a{color:var(--accent);text-decoration:none}.fields .type a:hover{text-decoration:underline}.fields td.about{color:var(--fg-2);min-width:220px}.fields td.about p{margin:0}.fields .nested{border-left:1px solid var(--line-2);margin-top:10px;padding-left:14px}.constraints{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.constraints span{font:400 12px/1.3 var(--mono);color:var(--fg-3);border:1px solid var(--line);border-radius:4px;padding:2px 6px}.typeline{font-family:var(--mono);font-size:14px}.typeline a{color:var(--accent);text-decoration:none}.raw summary{cursor:pointer;font:500 13px/1.4 var(--mono);color:var(--fg-3);padding:10px 0;list-style:none;transition:color .15s}.raw summary::-webkit-details-marker{display:none}.raw summary:before{content:"+ "}.raw[open] summary:before{content:"− "}.raw summary:hover{color:var(--fg)}.raw pre{background:var(--surface);border:1px solid var(--line);border-radius:10px;margin:0;padding:18px;font-size:13px;line-height:1.65;overflow-x:auto}.meta-row{color:var(--fg-3);flex-wrap:wrap;gap:8px 20px;font-size:13px;display:flex}.meta-row a{color:var(--fg-2)}.byline{align-items:center;gap:8px;text-decoration:none;display:inline-flex}.byline:hover span:last-child{text-decoration:underline;text-decoration-color:var(--accent)}.avatar{object-fit:cover;background:var(--surface-2);width:24px;height:24px;box-shadow:0 0 0 1px var(--line);border-radius:999px;flex:none}.avatar-fallback{font:500 12px/1 var(--mono);text-transform:uppercase;color:var(--fg-2);place-items:center;display:inline-grid}.crumbs{color:var(--fg-3);gap:8px;font-size:13px;display:flex}.crumbs a{text-decoration:none}.crumbs a:hover{color:var(--fg)}.prose .status{border:1px dashed var(--line-3);background:var(--surface);color:var(--fg-2);border-radius:10px;padding:14px 18px}.prose .status>*+*{margin-top:.8em}.prose .status p{margin-bottom:0}.prose .status .status-label,.status-tag{font:500 11px/1 var(--mono);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;border-radius:4px;margin:0;padding:4px 6px;display:inline-block}.status-tag{vertical-align:2px;margin-left:6px}.status-pending .status-label,.status-tag.status-pending{background:var(--accent-soft);color:var(--accent)}.status-planned .status-label,.status-tag.status-planned{background:var(--surface-2);color:var(--fg-2)}.notice{max-width:var(--w-read);border-left:2px solid var(--accent);background:var(--surface);color:var(--fg-2);border-radius:0 8px 8px 0;margin:0 0 32px;padding:14px 18px;font-size:15px}.history{max-width:var(--w-read);margin:0 0 56px;padding:0;list-style:none}.history li{border-bottom:1px solid var(--line);padding:18px 0}.history li:first-child{padding-top:0}.history-title{font:inherit;margin:0}.history a{color:var(--fg);align-items:center;gap:10px;text-decoration:none;display:inline-flex}.history a:hover .history-date{text-decoration:underline}.history-date{font-size:17px;font-weight:500}.history p{color:var(--fg-2);margin:6px 0 0}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important}}.prose .status p:empty{display:none}
