:root{--bg:#14120D;--bg-top:#191509;--bg-bottom:#100E0A;--bg-glow:#1B170C;--surface:#1E1B14;--hairline:rgba(255,255,255,.07);--ink1:#F0EDE4;--ink2:#ABA694;--ink3:#7D7869;--gold:#E0B84C;--gold-dim:rgba(224,184,76,.14);--positive:#5BBE7F;--positive-dim:rgba(91,190,127,.14);--negative:#E07856;--negative-dim:rgba(224,120,86,.14);--warning:#E0A33E;--warning-dim:rgba(224,163,62,.14);--goal:#C9D45E;--goal-dim:rgba(201,212,94,.14);--c1:#1D95C9;--c2:#B38C2A;--c3:#8672E8;--c4:#16997B;--c5:#3E86DC;--c6:#C75CA6;--serif:ui-serif, "New York", Georgia, serif;--sans:-apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Helvetica, Arial, sans-serif;--mono:ui-monospace, SFMono-Regular, Menlo, monospace;--gutter:40px;--measure:1400px;--rail-w:264px;--toc-w:190px;--nav-h:61px;--gap-item:8px;--gap-lede:12px;--gap-para:18px;--gap-block:20px;--gap-h4:20px;--gap-h3:28px;--gap-h2:40px;--gap-section:48px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + 24px)}body{margin:0;background:var(--bg);color:var(--ink1);font-family:var(--sans);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}.backdrop{position:fixed;inset:0;z-index:0;pointer-events:none;background:radial-gradient(120% 46% at 50% 0%,#1F1A0E 0%,rgba(20,18,13,0) 70%),linear-gradient(180deg,var(--bg-top) 0%,var(--bg) 42%,var(--bg-bottom) 100%)}a{color:inherit}h1,h2,h3,h4{font-family:var(--serif);font-weight:600;letter-spacing:-.02em;margin:0}p{margin:0}.kicker{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}.skip{position:absolute;left:-9999px;top:0;z-index:100;background:var(--gold);color:var(--bg);padding:10px 18px;border-radius:0 0 10px 0;font-weight:600}.skip:focus{left:0}header.nav{position:sticky;top:0;z-index:40;background:rgba(20,18,13,.86);backdrop-filter:blur(14px);border-bottom:1px solid var(--hairline)}.nav-in{max-width:var(--measure);margin:0 auto;padding:14px var(--gutter);display:flex;align-items:center;gap:24px}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-family:var(--serif);font-size:19px;font-weight:600;letter-spacing:.01em}.mark{width:30px;height:30px;flex:none;display:block}.brand-docs{font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);background:var(--gold-dim);border-radius:999px;padding:3px 9px;align-self:center}nav.links{display:flex;gap:24px;margin-left:8px}nav.links a{text-decoration:none;color:var(--ink2);font-size:15px}nav.links a:hover{color:var(--ink1)}.nav-search{position:relative;margin-left:auto;width:min(360px,38vw);min-width:0}.search-input{width:100%;min-width:0;font:inherit;font-size:15px;color:var(--ink1);background:rgba(255,255,255,3%);border:1px solid var(--hairline);border-radius:999px;padding:8px 16px;-webkit-appearance:none;appearance:none}.search-input::placeholder{color:var(--ink3)}.search-input:focus{outline:none;border-color:rgba(224,184,76,.4)}.search-results{position:absolute;top:calc(100% + 10px);left:0;right:0;z-index:50;background:var(--surface);border:1px solid var(--hairline);border-radius:16px;padding:8px;max-height:min(520px,70vh);overflow-y:auto}.search-results a{display:block;text-decoration:none;padding:10px 12px;border-radius:10px}.search-results a:hover,.search-results a.sel{background:var(--gold-dim)}.search-hit-title{display:block;font-size:15px;font-weight:600;color:var(--ink1)}.search-hit-section{display:block;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);margin-bottom:3px}.search-hit-desc{display:block;font-size:13px;color:var(--ink2);margin-top:2px}.search-empty{padding:14px 12px;color:var(--ink3);font-size:14px}.drawer-toggle{position:absolute;left:-9999px}.menu-btn{display:none;flex-direction:column;gap:4px;cursor:pointer;padding:8px;margin-left:4px}.menu-bar{display:block;width:20px;height:2px;background:var(--ink1);border-radius:1px}.shell{position:relative;z-index:1;max-width:var(--measure);margin:0 auto;padding:0 var(--gutter);display:grid;grid-template-columns:var(--rail-w)minmax(0,1fr);gap:40px}.rail{position:sticky;top:var(--nav-h);align-self:start;min-height:calc(100vh - var(--nav-h));max-height:calc(100vh - var(--nav-h));overflow-y:auto;padding:28px 0 48px;border-right:1px solid var(--hairline)}.content{min-width:0}.rail-nav{padding-right:20px;font-size:15px}.rail-home{display:block;text-decoration:none;color:var(--ink2);padding:6px 0;margin-bottom:14px}.rail-home:hover,.rail-home.current{color:var(--gold)}.rail-group{margin-bottom:16px}.rail-top{display:block;text-decoration:none;color:var(--ink1);font-family:var(--serif);font-size:16px;font-weight:600;padding:5px 0}.rail-top:hover{color:var(--gold)}.rail-group.open>.rail-top{color:var(--gold)}.rail-list,.rail-sublist{list-style:none;margin:4px 0 0;padding:0 0 0 1px}.rail-list>li>a,.rail-sublist>li>a{display:block;text-decoration:none;color:var(--ink2);font-size:14.5px;line-height:1.45;padding:6px 0 6px 14px;border-left:1px solid var(--hairline)}.rail-list>li>a:hover,.rail-sublist>li>a:hover{color:var(--ink1);border-left-color:var(--ink3)}.rail-list>li>a.current,.rail-sublist>li>a.current{color:var(--gold);border-left-color:var(--gold)}.rail-sublist{padding-left:14px}.page{display:grid;grid-template-columns:minmax(0,1fr)var(--toc-w);gap:40px;align-items:start}.breadcrumb{position:relative;z-index:1;padding:28px 0 0;font-size:13.5px;color:var(--ink3)}.breadcrumb a{color:var(--ink3);text-decoration:none}.breadcrumb a:hover{color:var(--gold)}.breadcrumb-sep{margin:0 8px;color:var(--ink3)}.breadcrumb-current{color:var(--ink2)}.onthispage{position:sticky;top:calc(var(--nav-h) + 28px);align-self:start;max-height:calc(100vh - var(--nav-h) - 56px);overflow-y:auto;padding:28px 0 40px;font-size:14px}.onthispage-head{font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink3);margin-bottom:12px}.onthispage nav ul{list-style:none;margin:0;padding:0}.onthispage nav ul ul{padding-left:14px}.onthispage nav li{margin:0}.onthispage nav a{display:block;text-decoration:none;color:var(--ink2);line-height:1.45;padding:5px 0 5px 12px;border-left:1px solid var(--hairline)}.onthispage nav a:hover{color:var(--ink1);border-left-color:var(--ink3)}.doc{padding:26px 0 72px;max-width:70ch}.doc .kicker{display:block;margin-bottom:14px}.doc h1{font-size:42px;line-height:1.08}.doc h2{font-size:27px;line-height:1.25;margin:var(--gap-h2)0 0}.doc h3{font-size:19px;line-height:1.3;margin:var(--gap-h3)0 0;color:var(--ink1)}.doc h4{font-size:16px;line-height:1.4;margin:var(--gap-h4)0 0;color:var(--ink1)}.doc :is(h2,h3,h4)+:is(p,ul,ol,dl,pre,table,blockquote,div,figure){margin-top:var(--gap-lede)}.doc p{color:var(--ink2);margin-top:var(--gap-para);line-height:1.75}.doc ul,.doc ol{margin:var(--gap-para)0 0;padding-left:24px;color:var(--ink2)}.doc li{margin-top:var(--gap-item);line-height:1.75;padding-left:4px}.doc li>ul,.doc li>ol{margin-top:var(--gap-item)}.doc li::marker{color:var(--gold)}.doc strong{color:var(--ink1);font-weight:600}.doc em{font-style:italic}.doc a{color:var(--gold);text-decoration:underline;text-underline-offset:3px}.doc a:hover{color:var(--ink1)}.doc .doc-lead{margin-top:var(--gap-para);font-size:20px;line-height:1.7;color:var(--ink1)}.doc hr{border:0;border-top:1px solid var(--hairline);margin:var(--gap-h2)0 0}.doc blockquote{margin:var(--gap-block)0 0;padding-left:18px;border-left:2px solid var(--gold);color:var(--ink2)}.doc ol>li{padding-left:6px}.doc ol>li::marker{color:var(--gold);font-weight:600}.doc code{font-family:var(--mono);font-size:.88em;color:var(--ink1);background:rgba(255,255,255,5%);border:1px solid var(--hairline);border-radius:6px;padding:1px 5px}.doc pre{margin:var(--gap-block)0 0;padding:16px 18px;overflow-x:auto;background:var(--surface);border:1px solid var(--hairline);border-radius:12px}.doc pre code{background:0 0;border:0;padding:0;font-size:14px;line-height:1.6}.doc .table-scroll,.doc table{margin-top:var(--gap-block)}.doc table{border-collapse:collapse;font-size:15px;display:block;overflow-x:auto;width:max-content;min-width:100%;max-width:100%}.doc thead th{text-align:left;font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink3);padding:0 18px 10px 0;border-bottom:1px solid var(--hairline);white-space:nowrap}.doc tbody td{padding:12px 18px 12px 0;border-bottom:1px solid var(--hairline);color:var(--ink2);vertical-align:top;line-height:1.6}.doc tbody tr:last-child td{border-bottom:0}.doc td strong{color:var(--ink1)}.money{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.admonition{margin-top:var(--gap-block);padding:16px 18px;border-radius:12px;border:1px solid var(--hairline);background:var(--surface);border-left-width:2px}.admonition-label{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;margin-bottom:8px}.admonition-body>p{margin-top:0;color:var(--ink2)}.admonition-body>p+p{margin-top:14px}.admonition-body>ul,.admonition-body>ol{margin-top:12px}.admonition-note{border-left-color:var(--gold)}.admonition-note .admonition-label{color:var(--gold)}.admonition-tip{border-left-color:var(--positive)}.admonition-tip .admonition-label{color:var(--positive)}.admonition-caution{border-left-color:var(--warning)}.admonition-caution .admonition-label{color:var(--warning)}.admonition-warning{border-left-color:var(--negative)}.admonition-warning .admonition-label{color:var(--negative)}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-top:var(--gap-block)}.card{background:var(--surface);border:1px solid var(--hairline);border-radius:16px}.cardlink{display:flex;flex-direction:column;gap:6px;padding:18px 20px;text-decoration:none}.cardlink:hover{border-color:rgba(224,184,76,.4)}.card-title{font-family:var(--serif);font-size:17px;font-weight:600;color:var(--ink1)}.cardlink:hover .card-title{color:var(--gold)}.card-desc{font-size:14px;color:var(--ink2);line-height:1.55}.doc .cardlink{text-decoration:none}.shot-fig{margin:var(--gap-block)0 0;display:flex;flex-direction:column;align-items:flex-start;gap:12px}.shot-fig img{display:block;width:100%;max-width:280px;height:auto;border-radius:26px;border:1px solid rgba(255,255,255,.12)}.shot-fig figcaption{font-size:14px;color:var(--ink3);max-width:52ch;line-height:1.6}.doc .doc-back{margin-top:var(--gap-section);padding-top:20px;border-top:1px solid var(--hairline);font-size:15px}.doc .feedback{margin-top:0;font-size:14px;color:var(--ink3)}.mailto .at::before{content:"@"}footer.site{border-top:1px solid var(--hairline);padding:44px 0 60px;position:relative;z-index:1}.foot-in{max-width:var(--measure);margin:0 auto;padding:0 var(--gutter)}.foot-grid{display:flex;gap:40px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap}.foot-links{display:flex;gap:26px;flex-wrap:wrap}.foot-links a{color:var(--ink2);text-decoration:none;font-size:15px}.foot-links a:hover{color:var(--gold)}.credit{margin-top:26px;color:var(--ink3);font-size:13px;max-width:64ch;line-height:1.7}@media(max-width:1180px){.page{grid-template-columns:minmax(0,1fr)}.onthispage{display:none}}@media(max-width:1000px){:root{--gutter:24px;--rail-w:220px}.shell{gap:28px}.doc h1{font-size:36px}nav.links{display:none}}@media(max-width:760px){body{font-size:16px}.nav-in{gap:12px}.brand-docs{display:none}.menu-btn{display:flex}.nav-search{width:auto;flex:1;min-width:0}.shell{display:block;padding-bottom:0}.rail{position:static;max-height:none;overflow:visible;border-right:0;border-bottom:1px solid var(--hairline);padding:18px 0;display:none}.drawer-toggle:checked~.shell .rail{display:block}.rail-nav{padding-right:0}:root{--gap-para:16px;--gap-block:18px;--gap-h4:18px;--gap-h3:24px;--gap-h2:32px;--gap-section:40px}.doc{padding:22px 0 56px;max-width:none}.doc h1{font-size:31px}.doc h2{font-size:23px}.doc .doc-lead{font-size:18px}.search-results{position:fixed;left:16px;right:16px;top:calc(var(--nav-h) + 10px)}.shot-fig img{max-width:240px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}.bg{color:#e2e4e5;background-color:#282a36}.chroma{color:#e2e4e5;background-color:#282a36}.chroma .x{}.chroma .err{color:#ff5c57}.chroma .cl{}.chroma .lnlinks{outline:none;text-decoration:none;color:inherit}.chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}.chroma .hl{background-color:#3d3f4a}.chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#7f7f7f}.chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#7f7f7f}.chroma .line{display:flex}.chroma .k{color:#ff6ac1}.chroma .kc{color:#ff6ac1}.chroma .kd{color:#ff5c57}.chroma .kn{color:#ff6ac1}.chroma .kp{color:#ff6ac1}.chroma .kr{color:#ff6ac1}.chroma .kt{color:#9aedfe}.chroma .n{}.chroma .na{color:#57c7ff}.chroma .nc{color:#f3f99d}.chroma .no{color:#ff9f43}.chroma .nd{color:#ff9f43}.chroma .ni{}.chroma .ne{}.chroma .nl{color:#ff5c57}.chroma .nn{}.chroma .nx{}.chroma .py{}.chroma .nt{color:#ff6ac1}.chroma .nb{color:#ff5c57}.chroma .bp{}.chroma .nv{color:#ff5c57}.chroma .vc{color:#ff5c57}.chroma .vg{color:#ff5c57}.chroma .vi{color:#ff5c57}.chroma .vm{color:#ff5c57}.chroma .nf{color:#57c7ff}.chroma .fm{color:#57c7ff}.chroma .l{}.chroma .ld{}.chroma .s{color:#5af78e}.chroma .sa{color:#5af78e}.chroma .sb{color:#5af78e}.chroma .sc{color:#5af78e}.chroma .dl{color:#5af78e}.chroma .sd{color:#5af78e}.chroma .s2{color:#5af78e}.chroma .se{color:#5af78e}.chroma .sh{color:#5af78e}.chroma .si{color:#5af78e}.chroma .sx{color:#5af78e}.chroma .sr{color:#5af78e}.chroma .s1{color:#5af78e}.chroma .ss{color:#5af78e}.chroma .m{color:#ff9f43}.chroma .mb{color:#ff9f43}.chroma .mf{color:#ff9f43}.chroma .mh{color:#ff9f43}.chroma .mi{color:#ff9f43}.chroma .il{color:#ff9f43}.chroma .mo{color:#ff9f43}.chroma .o{color:#ff6ac1}.chroma .ow{color:#ff6ac1}.chroma .p{}.chroma .c{color:#78787e}.chroma .ch{color:#78787e}.chroma .cm{color:#78787e}.chroma .c1{color:#78787e}.chroma .cs{color:#78787e}.chroma .cp{color:#78787e}.chroma .cpf{color:#78787e}.chroma .g{}.chroma .gd{color:#ff5c57}.chroma .ge{text-decoration:underline}.chroma .gr{color:#ff5c57}.chroma .gh{font-weight:700}.chroma .gi{font-weight:700}.chroma .go{color:#43454f}.chroma .gp{}.chroma .gs{font-style:italic}.chroma .gu{font-weight:700}.chroma .gt{}.chroma .gl{text-decoration:underline}.chroma .w{}