@font-face{font-family:Azeret Mono;font-style:normal;font-weight:500 700;font-display:swap;src:url(/fonts/azeret-mono-latin.woff2)format("woff2");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:Nunito;font-style:normal;font-weight:200 1000;font-display:swap;src:url(/fonts/nunito-latin.woff2)format("woff2");unicode-range:U+0-24F,U+2000-206F,U+20A0-20CF,U+2100-214F,U+2190-21FF,U+22??,U+FEFF,U+FFFD}:root{--ink:#1c2733;--ink-soft:#486581;--ice:#edf6ff;--ice-strong:#d7ebff;--line:#bdd9f4;--blue:#1769e0;--blue-dark:#0b4eb4;--paper:#fbfdff;--white:#fff;--display:"Azeret Mono", ui-monospace, monospace;--body:"Nunito", system-ui, sans-serif;--page:72rem;--measure:46rem;color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--body);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;margin:0;font-size:1rem;line-height:1.75}a{color:var(--blue-dark);text-decoration:none}a:hover{color:var(--blue)}a:focus-visible{outline-offset:3px;border-radius:.15rem;outline:3px solid #79b8ff}.site-header{border-bottom:1px solid var(--line);background:#fbfdffeb}.header-inner,.footer-inner{width:min(calc(100% - 3rem), var(--page));margin-inline:auto}.header-inner{justify-content:space-between;align-items:center;gap:1.5rem;min-height:4.75rem;display:flex}.brand{color:var(--ink);font-family:var(--display);letter-spacing:-.03em;flex:none;align-items:center;gap:.65rem;font-size:1.4rem;font-weight:700;line-height:1;display:inline-flex}.brand:hover{color:var(--ink)}.brand-mark{width:1.75rem;height:1.75rem;overflow:visible}.header-actions,.site-nav ul{align-items:center;display:flex}.header-actions{gap:1.5rem}.site-header ul{gap:.2rem;margin:0;padding:0;list-style:none}.site-header li+li{margin-top:0}.site-header a:not(.brand){color:var(--ink-soft);padding:.4rem .65rem;font-size:1rem;font-weight:500;line-height:1.25rem;display:block}.site-header a[aria-current=page]{color:var(--ink);background:var(--ice);border-radius:.35rem}.locale-select{margin-bottom:-.45rem;padding-bottom:.45rem;position:relative}.locale-trigger{border-left:1px solid var(--line);color:var(--ink-soft);align-items:center;gap:.4rem;padding:.4rem 0 .4rem 1rem;font-size:1rem;font-weight:500;line-height:1.25rem;display:inline-flex}.locale-globe{flex:none;width:1rem;height:1rem}.site-header .locale-menu{z-index:10;border:1px solid var(--line);background:var(--white);opacity:0;pointer-events:none;border-radius:.35rem;min-width:100%;padding:.3rem;transition:opacity .12s;position:absolute;top:100%;right:0;box-shadow:0 .35rem 1rem #1c27331f}.locale-select:hover .locale-menu,.locale-select:focus-within .locale-menu{opacity:1;pointer-events:auto}.site-header .locale-menu a{white-space:nowrap;border-radius:.25rem;padding:.3rem .6rem}main{min-height:calc(100vh - 13rem)}.page{width:min(calc(100% - 3rem), var(--measure));margin-inline:auto;padding-block:3rem}.page-header{margin-bottom:4rem}h1,h2,h3{color:var(--ink);text-wrap:balance;line-height:1.25}h1{font-family:var(--display);letter-spacing:-.07em;margin:0;font-size:clamp(2.35rem,7vw,4.75rem)}h2{letter-spacing:-.035em;margin:0 0 1.25rem;scroll-margin-top:1.5rem;font-size:clamp(1.4rem,3vw,1.85rem)}.heading-anchor{color:var(--blue-dark);font-family:var(--display);opacity:0;margin-left:.35em;font-weight:600;transition:opacity .12s;display:inline-block}h2:hover .heading-anchor,.heading-anchor:focus-visible{opacity:1}h3{margin:2rem 0 1rem;font-size:1.15rem}p{margin:0 0 1.15rem}li+li{margin-top:.55rem}code,pre{font-family:var(--display)}.content-section{border-top:1px solid var(--line);padding-block:3rem}.section-link{align-items:center;gap:.35rem;font-weight:600;display:inline-flex}.section-link:after{content:"→";font-family:var(--display)}.site-footer{border-top:1px solid var(--line);color:var(--ink-soft)}.footer-inner{padding-block:2rem;font-size:1rem}.footer-meta{text-align:center;margin:0}@media (width<=48rem){.header-inner{flex-direction:column;align-items:flex-start;gap:.6rem;padding-block:1rem}.header-actions{justify-content:space-between;gap:.5rem;width:100%}.site-header a:not(.brand){padding-inline:.45rem;font-size:1rem}.locale-trigger{padding-left:.5rem}.page{width:min(calc(100% - 2rem), var(--measure));padding-block:3.5rem 4rem}.page-header{margin-bottom:3rem}}@media (width<=25rem){.brand span,.site-header a:not(.brand){font-size:1rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
