*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:135px}body{margin:0;color:#24221f;background:#ffffff;font:18px/1.55 Afacad,"Afacad Fallback",Arial,sans-serif}a{color:inherit;text-underline-offset:4px}button,input{font:inherit}button,a,input,summary{outline-offset:5px}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid #675f55}button{cursor:pointer}button:disabled{cursor:default}::selection{background:#e9e2d8}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-weight:400;line-height:1.1;letter-spacing:-.035em}h1{font-size:54px;margin-bottom:22px}h2{font-size:33px;margin-top:56px;margin-bottom:20px;scroll-margin-top:135px}h3{font-size:27px;margin-bottom:12px}p{margin-bottom:20px}p a,li a,td a{color:#675f55}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.76em;background:#f3f0eb;border-radius:4px;padding:3px 5px;overflow-wrap:anywhere}pre code{font-size:13px;line-height:1.85;background:transparent;padding:0;overflow-wrap:normal}.skip{position:fixed;top:-100px;left:20px;background:#fff;padding:12px;z-index:100}.skip:focus{top:12px}.review-banner{min-height:34px;display:flex;align-items:center;gap:8px;background:#f0ece5;border-bottom:1px solid #e3dfd9;padding:4px 30px;font-size:14px;position:relative;z-index:5}.review-banner a{margin-left:auto;text-decoration:none}.review-dot{height:6px;width:6px;background:#675f55;border-radius:50%}.topbar{height:82px;position:sticky;top:0;z-index:10;background:#fffffff5;backdrop-filter:blur(12px);border-bottom:1px solid #e3dfd9;display:flex;align-items:center;justify-content:space-between;padding:0 30px;gap:20px}.brand{display:flex;align-items:center;gap:24px;text-decoration:none;flex-shrink:0}.brand img{width:112px;height:auto}.brand span{border-left:1px solid #e3dfd9;padding-left:24px;font-size:21px}.top-actions{display:flex;align-items:center;gap:28px}.top-actions button{border:1px solid #e3dfd9;border-radius:6px;background:#f7f6f3;padding:8px 13px;font-size:16px;color:#675f55}.top-actions button>span{font-size:22px;margin-right:8px}.top-actions a{font-size:15px;text-decoration:none}kbd{border:1px solid #e3dfd9;border-radius:3px;font:11px ui-monospace,monospace;padding:3px 5px;margin-left:35px;color:#675f55}#menu-toggle{display:none}.layout{display:grid;grid-template-columns:244px minmax(0,1fr) 180px;max-width:1600px;margin:auto}.sidebar{position:sticky;top:82px;height:calc(100dvh - 82px);overflow:auto;padding:32px 22px 30px 28px;border-right:1px solid #e3dfd9;scrollbar-width:thin}.nav-version{font-size:19px;border:1px solid #e3dfd9;padding:12px 14px;border-radius:6px;margin-bottom:28px;background:#f7f6f3}.nav-version span{display:block;font-size:13px;color:#675f55;letter-spacing:.02em}.nav-group{margin-bottom:25px}.nav-group>span{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.12em;margin:0 12px 8px;color:#675f55}.nav-group a{display:block;text-decoration:none;font-size:16px;line-height:1.25;padding:9px 12px;border-radius:5px;margin:2px 0;color:#675f55}.nav-group a:hover{background:#f7f6f3;color:#24221f}.nav-group a[aria-current]{background:#f0ece5;color:#24221f;box-shadow:inset 2px 0 #675f55}.layout main{min-width:0;max-width:980px;width:100%;padding:40px 54px 24px;margin:auto}.breadcrumb{font-size:13px;color:#675f55;margin-bottom:44px}.breadcrumb span{margin:0 10px;color:#b8afa3}.eyebrow{font-size:12px;letter-spacing:.16em;color:#675f55;margin-bottom:20px}.page-intro{padding-bottom:20px}.lead{font-size:23px;line-height:1.45;color:#675f55;max-width:690px;margin-bottom:16px}.home h1{font-size:clamp(50px,5.1vw,80px);line-height:1.02;letter-spacing:-.045em;max-width:900px}.home h1 em{display:block;font-family:Afacad,"Afacad Fallback",Arial,sans-serif;font-style:normal;font-weight:400;letter-spacing:-.055em}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin:8px 0 35px}.button{border:1px solid #e3dfd9;display:inline-flex;align-items:center;justify-content:center;padding:11px 20px;text-decoration:none;border-radius:5px;font-size:17px;gap:30px}.button.primary{background:#24221f;border-color:#24221f;color:#fff}.button:hover{background:#f0ece5}.button.primary:hover{background:#39352f}.version-strip{display:flex;align-items:center;gap:26px;flex-wrap:wrap;border-top:1px solid #e3dfd9;border-bottom:1px solid #e3dfd9;padding:18px 0;margin-bottom:8px;font-size:10px;letter-spacing:.12em;color:#675f55}.version-strip strong{display:block;font-size:18px;color:#24221f;letter-spacing:0;font-weight:400}.version-strip a{font-size:14px;letter-spacing:0;margin-left:auto}.cards{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:25px 0 40px}.card{text-decoration:none;background:#f7f6f3;border:1px solid #e3dfd9;border-radius:7px;padding:25px 25px 20px;transition:background .15s,border-color .15s}.card:hover{background:#f0ece5;border-color:#d7cfc1}.card p{font-size:17px;line-height:1.4;color:#675f55;margin:0}.card-kicker{display:block;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#675f55;margin-bottom:22px}.card h3{display:flex;justify-content:space-between;gap:12px;font-size:27px}.card h3 span{font-size:19px;color:#675f55}.note{background:#f7f6f3;border:1px solid #e3dfd9;border-left:3px solid #a3927a;border-radius:4px;padding:19px 22px;font-size:17px;color:#675f55;margin:24px 0}.table-scroll{width:100%;overflow-x:auto;margin:25px 0 32px;border:1px solid #e3dfd9;border-radius:6px;scrollbar-width:thin}table{width:100%;border-collapse:collapse;font-size:16px;line-height:1.5;min-width:510px;text-align:left}th{font-size:13px;letter-spacing:.02em;background:#f7f6f3;color:#675f55;font-weight:400}td,th{padding:15px 17px;border-bottom:1px solid #e3dfd9;vertical-align:top}tr:last-child td{border-bottom:0}td:first-child{color:#24221f;width:26%}td{color:#675f55}td code{font-size:11px;white-space:nowrap;overflow-wrap:normal}.code-block{border:1px solid #39352f;border-radius:7px;overflow:hidden;background:#262421;color:#efeae0;margin:25px 0}.code-top{display:flex;justify-content:space-between;align-items:center;background:#302d28;border-bottom:1px solid #49433b;padding:9px 17px;font-size:12px;color:#c8bfb1}.code-top button{background:transparent;border:1px solid #675f55;border-radius:4px;padding:3px 11px;color:#efeae0;font-size:12px}.code-top button:hover{background:#49433b}.code-block pre{overflow:auto;margin:0;padding:23px 24px;tab-size:2;max-height:720px}.code-block code{color:inherit}.toc{position:sticky;top:82px;align-self:start;padding:50px 18px 30px 0;font-size:13px;max-height:calc(100dvh - 82px);overflow:auto}.toc>span{display:block;color:#675f55;font-size:10px;letter-spacing:.1em;margin-bottom:18px}.toc a{display:block;color:#675f55;text-decoration:none;line-height:1.35;padding:7px 0 7px 13px;border-left:1px solid #e3dfd9}.toc a:hover{color:#24221f;border-color:#a3927a}.steps{padding-left:24px}.steps li{padding-left:7px;margin-bottom:15px}.steps li::marker{color:#a3927a}ul{padding-left:23px}li{margin-bottom:10px}strong{font-weight:600}.sources{margin-top:46px;padding:16px 0;border-top:1px solid #e3dfd9;color:#675f55;font-size:14px}.sources summary{cursor:pointer}.sources ul{margin-bottom:0}.sources a{overflow-wrap:anywhere;color:#675f55}.pager{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:30px 0 50px}.pager a{text-decoration:none;border:1px solid #e3dfd9;border-radius:6px;padding:18px;font-size:17px}.pager a:last-child{text-align:right}.pager a:hover{background:#f7f6f3}.pager small{display:block;font-size:10px;letter-spacing:.12em;color:#675f55;margin-bottom:8px}footer{font-size:12px;color:#675f55;border-top:1px solid #e3dfd9;padding-top:22px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.checklist{display:grid;gap:12px;margin:24px 0}.checklist label{display:flex;align-items:flex-start;gap:13px;padding:13px 16px;border:1px solid #e3dfd9;border-radius:5px;background:#f7f6f3;cursor:pointer}.checklist input{width:17px;height:17px;margin:5px 0 0;accent-color:#675f55;flex-shrink:0}.checklist label:has(input:checked){background:#f0ece5;color:#675f55}.checklist input:checked+span{text-decoration:line-through}dialog{width:min(640px,calc(100% - 30px));border:1px solid #e3dfd9;border-radius:11px;padding:22px;background:#ffffff;color:#24221f;box-shadow:0 30px 100px #1b281a55;max-height:80dvh}dialog::backdrop{background:#141b1580;backdrop-filter:blur(3px)}.search-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.search-head label{font-size:19px}.search-head button{border:0;background:none;color:#675f55;font-size:20px}#search-input{border:1px solid #e3dfd9;border-radius:5px;padding:13px 15px;width:100%;background:#fff;font-size:19px}#search-results{overflow:auto;max-height:45dvh;margin-top:14px}#search-results a{display:block;padding:14px 12px;text-decoration:none;border-bottom:1px solid #e3dfd9}#search-results a:hover,#search-results a:focus{background:#f7f6f3}#search-results strong{font-weight:400;font-size:20px;display:block}#search-results span{font-size:15px;color:#675f55;display:block;line-height:1.3;margin-top:3px}.search-hint{font-size:12px;color:#675f55;margin:15px 0 0}.no-results{padding:18px;color:#675f55}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#24221f;color:#fff;border-radius:7px;padding:10px 20px;z-index:50;font-size:15px;opacity:0;pointer-events:none;transition:opacity .2s}#toast.show{opacity:1}
@media(min-width:1700px){.layout{border-left:1px solid #e3dfd9;border-right:1px solid #e3dfd9}}@media(max-width:1200px){.layout{grid-template-columns:220px minmax(0,1fr)}.toc{display:none}.layout main{padding:35px 45px}.sidebar{padding-left:18px;padding-right:16px}.home h1{font-size:65px}.top-actions{gap:20px}}@media(max-width:820px){.topbar{height:70px;padding:0 20px}.review-banner{padding:5px 20px}.brand{gap:14px}.brand img{width:100px}.brand span{font-size:19px;padding-left:14px}.top-actions{gap:12px}.top-actions kbd,.website-link{display:none}.top-actions button{font-size:14px;padding:5px 10px}.layout{display:block}.sidebar{display:none;position:fixed;z-index:20;top:104px;left:0;bottom:0;width:280px;height:calc(100dvh - 104px);background:#ffffff;box-shadow:10px 15px 30px #1f2e1b25;padding:24px;overscroll-behavior:contain}.sidebar.open{display:block}#menu-toggle{display:block}.layout main{padding:30px 30px 22px;max-width:850px}.breadcrumb{margin-bottom:35px}.home h1{font-size:62px}.lead{font-size:22px}.page-intro{padding-bottom:12px}}@media(max-width:540px){body{font-size:18px}.review-banner{font-size:12px;gap:6px;padding:6px 16px}.review-banner .banner-detail{display:none}.topbar{padding:0 16px;gap:8px}.brand span{display:none}.brand img{width:105px}.top-actions{gap:8px}#search-open{font-size:0;padding:3px 10px}#search-open>span{font-size:24px;margin:0}.layout main{padding:25px 22px 22px}.home h1{font-size:49px}h1{font-size:42px}h2{font-size:31px;margin-top:42px}.lead{font-size:21px}.cards{grid-template-columns:1fr;gap:12px}.card{padding:22px}.card-kicker{margin-bottom:17px}.hero-actions{display:grid;gap:10px}.button{font-size:17px;padding:12px 16px}.version-strip{gap:17px}.version-strip a{width:100%;margin:0}.code-block pre{padding:18px 16px}.code-block code{font-size:12px}.note{padding:16px}.breadcrumb{font-size:12px;margin-bottom:30px;line-height:1.5}.pager{gap:10px}.pager a{font-size:15px;padding:14px}.sidebar{top:104px}.table-scroll{margin:22px 0}footer{font-size:11px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Shared website shell, measured from the live developers page. */
.docs-context{height:60px;position:sticky;top:84px;z-index:15;display:flex;align-items:center;justify-content:space-between;padding:0 var(--pad);background:#fff;border-bottom:1px solid #e3dfd9;gap:20px}.docs-context>a{font-size:17px;text-decoration:none}.docs-context .top-actions{gap:12px}.docs-context #menu-toggle{display:none}.sidebar{top:144px;height:calc(100dvh - 144px)}.toc{top:144px;max-height:calc(100dvh - 144px)}.layout main{padding-top:30px}.layout{max-width:1440px}.review-banner{color:#675f55;background:#f7f6f3;border-color:#e3dfd9}.review-dot{background:#a3927a}.home h1 em{color:#675f55;font-family:Afacad,"Afacad Fallback",Arial,sans-serif;font-style:normal}.card{border-radius:5px}.button{border-radius:3px;padding:13px 25px}.doc-page .site-footer{display:block}.doc-page .site-footer h2{letter-spacing:normal}.site-header .primary-nav{z-index:90}.doc-page .site-footer .footer-thesis h2{margin:0}.doc-page .site-footer .footer-column h2,.doc-page .site-footer .footer-follow h2{margin:0 0 12px}.doc-page .site-footer .footer-follow{margin-top:25px}.doc-page .site-footer .footer-logo{padding:28px 0}.doc-page .site-footer .footer-grid{margin-top:25px}.doc-page .site-footer .footer-column a{color:#24221f}.doc-page .site-footer{max-width:none}.doc-page .site-header .desktop-nav a{font-family:Afacad,"Afacad Fallback",Arial,sans-serif}.doc-page .breadcrumb{margin-bottom:35px}.doc-page .page-intro{background:transparent}.doc-page .site-footer .footer-logo img{width:220px;height:auto}
@media(max-width:820px){.docs-context #menu-toggle{display:block}.docs-context{top:84px}.sidebar{top:144px;width:280px;height:calc(100dvh - 144px)}.docs-context .top-actions{margin-left:auto}.doc-page .layout main{padding:28px 24px}}
@media(max-width:700px){.docs-context{top:72px;height:52px;padding:0 20px}.sidebar{top:124px;height:calc(100dvh - 124px)}.doc-page .site-footer{padding-top:28px}.review-banner{font-size:12px;padding:5px 20px}.docs-context>a{font-size:16px}.doc-page .layout main{padding:25px 22px}.doc-page h1{font-size:42px}.docs-context .top-actions button{padding:5px 9px}.doc-page .site-footer .footer-thesis h2{font-size:30px}.doc-page .site-footer .footer-column h2{font-size:11px}}

.doc-page h2{scroll-margin-top:170px}.doc-page{scroll-padding-top:170px}

:root[data-theme=dark] .doc-page :is(.docs-context,.sidebar,.toc,.layout main,article,.page-intro){background:var(--dark-base)!important;color:var(--ink)!important}:root[data-theme=dark] .doc-page :is(.card,.note,th,.checklist label,.nav-version,.nav-group a[aria-current],.table-scroll){background:var(--paper)!important;color:var(--ink)!important;border-color:var(--line)!important}:root[data-theme=dark] .doc-page :is(.lead,.breadcrumb,.eyebrow,.card p,.card-kicker,.nav-group a,.nav-group>span,.toc a,.toc>span,td,th,.sources,.sources a,.pager small,.search-hint){color:var(--muted)!important}:root[data-theme=dark] .doc-page :is(.pager a,.top-actions button,code,kbd){background:var(--paper);color:var(--ink);border-color:var(--line)}:root[data-theme=dark] .doc-page .code-block :is(pre,code){background:var(--dark-surface)!important;color:var(--ink)!important}:root[data-theme=dark] .doc-page #search-results a:hover{background:var(--paper)}

:root[data-theme=dark] .doc-page #search-input{background:var(--dark-surface);color:var(--ink);border-color:var(--line)}:root[data-theme=dark] .doc-page #search-results span{color:var(--muted)}

/* Version metadata sits outside main and needs its own theme foreground. */
:root[data-theme=dark] .doc-page .nav-version span{color:var(--muted)}
