@font-face{font-family:"Archivo Variable";src:url("./fonts/archivo.woff2") format("woff2");font-weight:100 900;font-stretch:62% 125%;font-display:swap}@font-face{font-family:"IBM Plex Mono";src:url("./fonts/plex.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url("./fonts/plex-medium.woff2") format("woff2");font-weight:500;font-display:swap}@font-face{font-family:"IBM Plex Mono";src:url("./fonts/plex-italic.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap}
:root{--navy:#142038;--raised:#1b2a49;--stock:#f4f2ec;--sheet:#fbfaf6;--white:#f7f6f2;--ink:#0e1a2b;--muted:#5e6977;--silver:#aab3bd;--gold:#dfb967;--gold-ink:#805a1b;--blue:#afcbe3;--green:#d1dcc6;--profile:#8f9aa7;color-scheme:light;font-family:"Archivo Variable",sans-serif;color:var(--ink);background:var(--stock);font-synthesis:none;scroll-padding-top:100px}*{box-sizing:border-box}body{margin:0;font-size:17px;line-height:1.6}a{color:inherit;text-underline-offset:.2em}a:hover{color:var(--gold-ink)}button,input,summary{font:inherit}button,summary{cursor:pointer}button{color:inherit;background:transparent;border:1px solid currentColor;padding:8px 12px}button,a{transition:color 220ms,background-color 220ms,border-color 220ms}button:hover{background:color-mix(in srgb,currentColor 7%,transparent)}button:disabled{cursor:default}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--gold-ink);outline-offset:3px}.skip{position:fixed;top:0;left:20px;z-index:50;background:var(--sheet);padding:10px;transform:translateY(-120%)}.skip:focus{transform:none}.label,.site-header,.chapter-nav,.source,.code-bar,.part-nav,.chapter-contents,.progress-label,.tools,.page-end{font-family:"IBM Plex Mono",monospace;font-size:11px;line-height:1.4}.label{font-weight:500;letter-spacing:.14em;text-transform:uppercase}.site-header{background:var(--navy);color:var(--white);position:sticky;top:0;z-index:10;border-bottom:1px solid #ffffff30}.header-inner{max-width:1320px;margin:auto;min-height:64px;padding:16px 20px;display:flex;align-items:center;gap:32px}.wordmark{font-family:"Archivo Variable",sans-serif;font-stretch:125%;font-weight:400;font-size:20px;text-decoration:none;letter-spacing:.14em}.part-nav{display:flex;gap:24px;margin-left:auto;align-items:center}.part-nav a{display:flex;align-items:center;min-height:28px;text-decoration:none;text-transform:uppercase;letter-spacing:.1em}.part-nav [aria-current]{color:var(--gold)}.site-header button{border:0;padding:8px;font-size:11px;letter-spacing:.1em}.site-header :focus-visible{outline-color:var(--gold)}.reading-progress{height:2px;background:var(--gold);width:var(--progress,0%);position:absolute;bottom:-1px;left:0;pointer-events:none}.hero{background:var(--navy);color:var(--white);border-bottom:1px solid #ffffff30}.hero-inner{max-width:1320px;margin:auto;padding:56px 20px 48px}.hero .label{color:var(--silver);margin:0 0 24px}.hero h1{font-size:clamp(38px,5.6vw,80px);font-stretch:125%;font-weight:200;letter-spacing:.04em;line-height:.95;max-width:20ch;margin:0;padding:20px 0 28px;border-top:1px solid #ffffff30;border-bottom:1px solid #ffffff30}.hero-lead{font-size:clamp(20px,2vw,28px);font-weight:300;line-height:1.32;max-width:48ch;margin:28px 0 0}.layout{max-width:1320px;margin:auto;padding:48px 20px 80px;display:grid;grid-template-columns:minmax(0,3fr) minmax(0,9fr);gap:48px}.chapter-nav{align-self:start;position:sticky;top:96px;max-height:calc(100vh - 120px);overflow:auto}.chapter-nav .label{color:var(--muted);margin:0 0 20px}.chapter-nav ul,.chapter-contents ol{padding:0;list-style:none;margin:0 0 32px}.chapter-nav li{border-top:1px solid #0e1a2b28}.chapter-nav li:last-child{border-bottom:1px solid #0e1a2b28}.chapter-nav a{display:block;padding:14px 0;text-decoration:none;font-size:12px;line-height:1.5}.chapter-nav a[aria-current]{color:var(--gold-ink)}.chapter-contents li{margin:14px 0}.chapter-contents a{text-decoration:none;color:var(--muted)}.chapter-contents a[aria-current]{color:var(--gold-ink)}main{min-width:0}article{max-width:100%;padding-bottom:48px}article>p,article>ul,article>ol,article>blockquote{max-width:60ch}article>p{margin:0 0 24px}article h2{font-weight:400;font-size:28px;line-height:1.2;letter-spacing:-.02em;margin:64px 0 24px;padding-top:20px;border-top:1px solid #0e1a2b35;max-width:32ch}article h3{font-size:21px;font-weight:400;line-height:1.3;margin-top:40px}article h4{font-size:17px;margin-top:32px}article code{font-family:"IBM Plex Mono",monospace;font-size:.82em;overflow-wrap:anywhere}article pre{white-space:pre-wrap;overflow-wrap:anywhere}article img{max-width:100%;height:auto}article ul,article ol{padding-left:24px}article li{padding-left:4px;margin-bottom:8px}article blockquote{border-left:2px solid var(--gold-ink);padding-left:24px;margin-inline:0;color:var(--muted)}.table-scroll{max-width:100%;overflow:auto;margin:32px 0;border-top:1px solid #0e1a2b50}table{border-collapse:collapse;font-size:14px;min-width:100%}th,td{text-align:left;vertical-align:top;border-bottom:1px solid #0e1a2b28;padding:12px 16px 12px 0}th{font-weight:500}td code{white-space:normal}.code{background:var(--navy);color:var(--white);margin:32px 0;border-left:2px solid var(--gold);min-width:0;max-width:100%}.code-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;color:var(--silver);border-bottom:1px solid #ffffff25}.code-bar span{overflow-wrap:anywhere}.code-bar button{min-height:28px;padding:4px 8px;font-size:11px}.code-bar :focus-visible{outline-color:var(--gold)}.code pre{padding:16px 12px;margin:0;max-height:560px;overflow:auto;font-family:"IBM Plex Mono",monospace;font-size:14px;line-height:22px;font-variant-ligatures:none;tab-size:4}.code pre code{font-size:14px;overflow-wrap:anywhere;line-height:22px;font-variant-ligatures:none}.code-line{display:grid;grid-template-columns:3ch minmax(0,1fr);gap:16px;min-height:22px}.line-number{user-select:none;color:var(--profile);text-decoration:none;text-align:right}.code-src{white-space:pre-wrap;overflow-wrap:anywhere;min-width:0}.code.nowrap .code-src{white-space:pre}.code.nowrap .code-line{grid-template-columns:3ch max-content}.token.comment{color:var(--silver);font-style:italic}.token.keyword,.token.boolean,.token.class-name{color:var(--blue)}.token.string,.token.attr-value{color:var(--green)}.token.number,.token.function{color:var(--gold)}.token.punctuation,.token.operator{color:var(--silver)}.source{padding:16px;color:var(--silver);border-top:1px solid #ffffff25;line-height:1.7;overflow-wrap:anywhere}.source a:hover{color:var(--gold)}.source strong{font-weight:400;color:var(--white)}.source .claim{display:block;margin-top:8px}.interface-nav{display:flex;gap:0;border-bottom:1px solid #0e1a2b40;margin-bottom:40px}.interface-nav a{padding:12px 16px;text-decoration:none;font-family:"IBM Plex Mono",monospace;font-size:12px}.interface-nav [aria-current]{border-bottom:2px solid var(--gold-ink);color:var(--gold-ink)}.page-end{border-top:1px solid #0e1a2b40;padding:24px 0;display:flex;justify-content:space-between;gap:24px;line-height:1.8}.page-end a{display:block}.tools{display:flex;flex-wrap:wrap;gap:16px;padding:16px 0;align-items:center}.tools button{font-size:11px}.status{font-family:"IBM Plex Mono",monospace;font-size:12px;color:var(--muted)}dialog{padding:0;border:1px solid #ffffff30;max-width:none;max-height:none;color:var(--ink);background:var(--sheet)}dialog::backdrop{background:#0e1a2b80}.reference-dialog{position:fixed;inset:0 0 0 auto;margin:0;width:min(960px,80vw);height:100dvh;overflow:auto;scroll-padding-top:96px}.dialog-head{background:var(--navy);color:var(--white);padding:20px 24px;display:flex;justify-content:space-between;align-items:center;gap:20px;position:sticky;top:0;z-index:1}.dialog-head :focus-visible{outline-color:var(--gold)}.reference-body{padding:32px clamp(20px,4vw,64px)}.reference-body h1{font-size:38px;font-weight:300;font-stretch:125%;line-height:1.1}.reference-body article{max-width:60ch}.reference-dialog .return-rule{height:2px;background:var(--gold);width:100%;transform-origin:left}.search-dialog{position:fixed;inset:10vh 20px auto;margin:0 auto;max-width:760px;width:calc(100% - 40px);max-height:80dvh}.search-body{padding:24px;overflow:auto;max-height:65dvh}.search-body input{width:100%;padding:12px;border:1px solid var(--muted);color:var(--ink);background:var(--sheet);font-size:17px}.search-body ol{list-style:none;padding:0}.search-body li{border-top:1px solid #0e1a2b35;padding:16px 0}.search-body a{font-size:19px}.search-body p{font-size:14px;color:var(--muted);margin-bottom:0}.mobile-nav{display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}[hidden]{display:none!important}
@media(min-width:1024px){.split-evidence{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:32px}}@media(max-width:1023px){.layout{grid-template-columns:1fr;gap:24px;padding-top:24px}.chapter-nav{display:none}.mobile-nav{display:block;border-top:1px solid #0e1a2b40;border-bottom:1px solid #0e1a2b40;margin:0 0 32px;font-family:"IBM Plex Mono",monospace;font-size:12px}.mobile-nav summary{padding:14px 0;min-height:44px;letter-spacing:.1em;text-transform:uppercase}.mobile-nav nav{padding:16px 0}.mobile-nav ul,.mobile-nav ol{list-style:none;padding:0;margin:0}.mobile-nav li{border-top:1px solid #0e1a2b28}.mobile-nav a{display:block;min-height:32px;padding:8px 0;text-decoration:none}.mobile-nav [aria-current]{color:var(--gold-ink)}.mobile-nav .label{color:var(--muted)}.chapter-nav details:not([open])>div{display:none}.chapter-nav ul{display:flex;flex-wrap:wrap;gap:16px}.chapter-nav li{border:0!important}.chapter-contents{display:none}.hero-inner{padding-top:40px}.hero h1{max-width:19ch}.reference-dialog{width:100%;}.part-nav{gap:14px}.header-inner{gap:16px}.hero-lead{max-width:42ch}article>p{max-width:60ch}}@media(max-width:639px){.header-inner{min-height:56px;padding:12px 20px}.wordmark{font-size:17px}.part-nav{gap:4px}.part-nav a{font-size:10px;letter-spacing:0;padding:6px 3px}.part-nav button{min-height:28px;font-size:10px;padding:6px 3px}.hero h1{font-size:38px}.hero-inner{padding-top:32px;padding-bottom:32px}.layout{padding-inline:20px}.code{margin-inline:-20px;max-width:calc(100% + 40px);width:calc(100% + 40px)}.code-line{gap:8px}.code pre{padding-inline:8px}.page-end{flex-direction:column}article h2{font-size:25px}.dialog-head{padding:16px 20px}.reference-body .code{margin-inline:-20px}.reference-body{padding:24px 20px}.search-body{padding:20px}.chapter-nav ul{margin-bottom:0}.chapter-nav a{padding:4px 0}}@media(max-width:380px){.header-inner{gap:8px;padding-inline:16px}.wordmark{font-size:15px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}@media(forced-colors:active){.hero,.site-header,.code,.dialog-head{border:1px solid CanvasText}.reading-progress,.return-rule{background:Highlight}.interface-nav [aria-current]{border-color:Highlight}.code,.code *{color:CanvasText}a,button{forced-color-adjust:auto}}

.hero a:hover{color:var(--gold)}.hero a:focus-visible{outline-color:var(--gold)}.hero-lead code{font-family:"IBM Plex Mono",monospace;font-size:.75em}

.hero h1{overflow-wrap:anywhere;hyphens:none}
.interface-nav{flex-wrap:wrap;gap:4px}.interface-nav button{min-height:44px;padding:10px 14px;color:var(--muted);font-family:"IBM Plex Mono",monospace;font-size:12px;border:0;border-bottom:2px solid transparent}.interface-nav [aria-pressed=true]{color:var(--gold-ink);border-bottom-color:var(--gold-ink)}.interface-nav button:focus-visible{outline:2px solid var(--gold-ink);outline-offset:3px}.search-body small{display:block;color:var(--muted);font:11px "IBM Plex Mono",monospace;margin-bottom:8px}.search-body li>a{display:block}.code.expanded pre{max-height:none}.code-bar button{min-height:36px}.code-bar>span:last-child{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.selected-line{background:#dfb96725}.line-number:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.reference-body h2,.reference-body h3{line-height:1.3;margin-top:40px}.reference-body p{line-height:1.6;margin-bottom:24px}.chapter-nav summary{cursor:pointer;padding:14px 0;font:12px "IBM Plex Mono",monospace;min-height:44px}.chapter-nav details ul{padding-left:12px}.reference-body h1{overflow-wrap:anywhere}

.result{margin:32px 0;padding:24px;background:var(--stock);border-top:2px solid var(--gold-ink);min-width:0}.result figcaption{font:12px "IBM Plex Mono",monospace;color:var(--muted);margin-bottom:20px}.result dl{margin:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:12px 24px}.result dt{font-size:14px}.result dd{margin:0;min-width:0}.result pre{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font:13px/1.6 "IBM Plex Mono",monospace}.result .status{margin:24px 0 0}@media(max-width:639px){.result{margin-inline:0;padding:16px}.result dl{grid-template-columns:minmax(0,1fr)}.result dd{margin-bottom:12px}}

.interface-nav button{transition:color 220ms ease,border-color 220ms ease}
