@font-face{font-family:Inter;font-style:normal;font-weight:300;font-display:swap;src:url(/fonts/inter-latin-300-normal.woff2)format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/inter-latin-400-normal.woff2)format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/inter-latin-500-normal.woff2)format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/inter-latin-600-normal.woff2)format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/inter-latin-700-normal.woff2)format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/inter-latin-800-normal.woff2)format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-latin-400-normal.woff2)format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-latin-500-normal.woff2)format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-mono-latin-600-normal.woff2)format("woff2")}:root{--ink:#121417;--deep:#0b0d10;--s1:#181b21;--s2:#1e2229;--paper:#f4f1ea;--paper-2:#f4f1eacc;--blue:#5b82ee;--brand:#1f4fd8;--link:#8fa8f2;--amber:#e09f1f;--amber-t:#f0b64a;--grid:#1c2027;--muted:#a3a7ad;--haze:#0f1a30;--rule:#f4f1ea1f;--rule-2:#f4f1ea38;--rule-3:#f4f1ea73;--mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--sans:Inter,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--gut:clamp(20px,3.2vw,48px);--gut-l:calc(var(--gut) + 16px);--ease:cubic-bezier(.2,0,0,1);--ease-io:cubic-bezier(.45,0,.55,1);--t-label:11px;--t-small:13px;--t-body:16px;--t-lead:clamp(17px,1.35vw,20px);--t-h3:clamp(20px,1.6vw,24px);--t-h2:clamp(30px,3.2vw,52px);--t-h1:clamp(40px,4.6vw,76px);--t-display:clamp(46px,7.15vw,140px);color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;background:var(--deep);scroll-padding-top:80px}body{background:var(--deep);min-height:100vh;color:var(--paper);font:400 var(--t-body)/1.55 var(--sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0;overflow-x:hidden}h1,h2,h3,h4,p,figure,blockquote,dl,dd,ul,ol{margin:0}ul[role=list],ol[role=list]{padding:0;list-style:none}img,svg,video,canvas{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}table{border-collapse:collapse}::selection{background:var(--amber);color:var(--deep)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}:focus{outline:none}:focus-visible{outline:2px solid var(--amber-t);outline-offset:3px}.skip{z-index:100;background:var(--paper);color:var(--deep);font:600 12px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;transition:top .15s var(--ease);padding:10px 14px;position:fixed;top:-60px;left:16px}.skip:focus-visible{top:12px}.label{font:500 var(--t-label)/1.3 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.label-amb{color:var(--amber-t)}.w300{font-weight:300}.w700{letter-spacing:-.05em;font-weight:700}.display{font-size:var(--t-display);letter-spacing:-.045em;font-weight:300;line-height:.93}.h1{font-size:var(--t-h1);letter-spacing:-.04em;text-wrap:balance;font-weight:300;line-height:.98}.h2{font-size:var(--t-h2);letter-spacing:-.04em;text-wrap:balance;font-weight:300;line-height:1}.lead{font-size:var(--t-lead);color:var(--paper-2);text-wrap:pretty;max-width:52ch;line-height:1.5}.muted{color:var(--muted)}.tag{background:var(--amber);color:var(--deep);font:600 11px/1.3 var(--mono);letter-spacing:.08em;padding:2px 6px;display:inline-block}.inst{pointer-events:none;z-index:40;font:500 10px/1 var(--mono);letter-spacing:.08em;color:var(--muted);position:fixed;inset:0}.br{border:0 solid #f4f1ea8c;width:18px;height:18px;position:absolute}.br-tl{transform-origin:0 0;border-top-width:1px;border-left-width:1px;top:10px;left:10px}.br-tr{transform-origin:100% 0;border-top-width:1px;border-right-width:1px;top:10px;right:10px}.br-bl{transform-origin:0 100%;border-bottom-width:1px;border-left-width:1px;bottom:10px;left:10px}.br-br{transform-origin:100% 100%;border-bottom-width:1px;border-right-width:1px;bottom:10px;right:10px}.ruler{position:absolute}.ruler-y{width:12px;top:84px;bottom:56px;left:10px}.ruler-y .ticks{transform-origin:top;background:repeating-linear-gradient(#f4f1ea61 0 1px,#0000 1px 40px) 0/12px 100% no-repeat,repeating-linear-gradient(#f4f1ea2e 0 1px,#0000 1px 8px) 0/6px 100% no-repeat;position:absolute;inset:0}.ruler-cursor{border:5px solid #0000;border-left:6px solid var(--amber);width:0;height:0;position:absolute;top:0;left:14px;transform:translateY(-5px)}.ruler-x{height:10px;bottom:10px;left:84px;right:84px}.ruler-x .ticks{transform-origin:0;transition:opacity .3s var(--ease);background:repeating-linear-gradient(90deg,#f4f1ea61 0 1px,#0000 1px 80px) bottom/100% 10px no-repeat,repeating-linear-gradient(90deg,#f4f1ea29 0 1px,#0000 1px 8px) bottom/100% 5px no-repeat;position:absolute;inset:0}.readout{white-space:nowrap;font-variant-numeric:tabular-nums;border:1px solid var(--rule);transition:opacity .3s var(--ease);background:#0b0d10e0;gap:.7em;padding:5px 8px;display:flex;position:absolute;bottom:24px}.readout .sep{color:#7d828a}body:not([data-has-hero]) .readout,.past-hero .readout{opacity:0;pointer-events:none}body:not([data-has-hero]) .readout{display:none}.ro-bl{color:var(--muted);left:36px}.ro-br{color:var(--paper);right:36px}.ro-frame{color:var(--amber-t)}@media (prefers-reduced-motion:no-preference){.inst .br{animation:br-in .4s var(--ease) both}.ruler-y .ticks{animation:ry-in .4s var(--ease-io) both}.ruler-x .ticks{animation:rx-in .4s 50ms var(--ease-io) both}.readout,.top{animation:.35s .15s both fade-in}}@keyframes br-in{0%{opacity:0;transform:scale(0)}}@keyframes ry-in{0%{transform:scaleY(0)}}@keyframes rx-in{0%{transform:scaleX(0)}}@keyframes fade-in{0%{opacity:0}}@keyframes rise-in{0%{opacity:0;transform:translateY(10px)}}@keyframes mask-up{0%{transform:translateY(105%)}}.top{z-index:50;font:500 11px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;-webkit-backdrop-filter:blur(6px);background:linear-gradient(#0b0d10eb,#0b0d10c7 70%,#0b0d1000);align-items:center;gap:24px;padding:18px 36px 14px;display:flex;position:fixed;top:0;left:0;right:0}.brand{align-items:center;gap:12px;padding:6px 0;display:flex}.mark{fill:none;width:22px;height:22px;stroke:var(--blue);stroke-width:16px;stroke-linecap:round;stroke-linejoin:round;flex:none}.mark circle{fill:var(--amber);stroke:none}.brand-t{color:var(--paper)}.brand-rev{color:var(--muted);border-left:1px solid var(--rule-2);padding-left:12px}.nav{margin-left:auto}.nav ul{gap:22px;margin:0;padding:0;list-style:none;display:flex}.nav a{color:var(--muted);transition:color .15s var(--ease);padding:8px 0;display:inline-block}.nav a[aria-current=page]{color:var(--paper);box-shadow:inset 0 -1px 0 var(--amber)}@media (hover:hover){.nav a:hover{color:var(--paper)}}.menu-btn{border:1px solid var(--rule-2);min-height:36px;color:var(--paper);font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;background:#0b0d1099;align-items:center;gap:8px;padding:6px 10px;display:none}.menu-btn i{background:currentColor;width:14px;height:1px;display:block;box-shadow:0 -4px,0 4px}.key{font:600 12px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--deep);background:var(--paper);border:1px solid var(--paper);align-items:stretch;transition:transform .15s ease-out,box-shadow .15s ease-out,background-color .15s ease-out,border-color .15s ease-out;display:inline-flex;position:relative;box-shadow:0 3px #8d8a83,0 3px 0 1px #0009}.key-cap{padding:17px 20px 16px}.key-glyph{border-left:1px solid #0b0d1040;place-items:center;min-width:44px;font-size:15px;display:grid}.key-ghost{color:var(--paper);border-color:var(--rule-2);background:0 0;box-shadow:0 3px #f4f1ea1f}.key-ghost .key-glyph{border-left-color:var(--rule-2);font-size:12px}.key:active{transform:translateY(3px)scale(.96);box-shadow:0 0 #8d8a83}@media (hover:hover){.key:hover{background:var(--amber-t);border-color:var(--amber-t);color:var(--deep)}.key-ghost:hover{border-color:var(--paper);color:var(--paper);background:#f4f1ea0f}}.status{font:500 11px/1.3 var(--mono);letter-spacing:.12em;color:var(--muted);text-transform:uppercase;align-items:center;gap:10px;display:flex}.status i{color:#80858c;font-style:normal}.dot{background:var(--amber);flex:none;width:7px;height:7px;box-shadow:0 0 10px 1px #e09f1fb3}@media (prefers-reduced-motion:no-preference){.dot{animation:1.6s steps(2,end) infinite blink}}@keyframes blink{50%{opacity:.25}}.main{z-index:1;position:relative}.foot{z-index:1}.section{padding:96px var(--gut) 96px var(--gut-l);position:relative}.section-head{border-bottom:1px solid var(--rule-2);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px 32px;margin-bottom:0;padding-bottom:18px;display:flex}.section-head .h2{max-width:22ch}.panel{border:1px solid var(--rule-2);position:relative}.panel>.br{border-color:#f4f1ea80;width:10px;height:10px}.panel>.br-tl{top:6px;left:6px}.panel>.br-tr{top:6px;right:6px}.panel>.br-bl{bottom:6px;left:6px}.panel>.br-br{bottom:6px;right:6px}.link{color:var(--link);text-underline-offset:3px;transition:color .15s var(--ease),text-decoration-color .15s var(--ease);text-decoration:underline #8fa8f259}@media (hover:hover){.link:hover{color:var(--paper);text-decoration-color:var(--paper)}}.rows{margin:0;padding:0;list-style:none}.row{border-bottom:1px solid var(--rule);transition:background-color .15s var(--ease);grid-template-columns:4.5em minmax(0,2fr) minmax(0,1.1fr) 9em 2em;align-items:baseline;gap:24px;padding:22px 0;scroll-margin-top:90px;display:grid;position:relative}.row:target{background:#e09f1f0f}.row-code{font:600 12px/1.4 var(--mono);letter-spacing:.08em;color:var(--amber-t)}.row-title{letter-spacing:-.02em;font-size:clamp(20px,1.8vw,28px);font-weight:600;line-height:1.2}.row-title a:after{content:"";position:absolute;inset:0}.row-claim{color:var(--muted);font-size:14px;line-height:1.5}.row-dom,.row-per{font:500 11px/1.5 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--paper-2)}.row-per{color:var(--muted);font-variant-numeric:tabular-nums}.row-go{font:500 14px/1 var(--mono);color:var(--muted);transition:transform .15s var(--ease),color .15s var(--ease);justify-self:end}.row:focus-within{background:#5b82ee0f}@media (hover:hover){.row:hover{background:#5b82ee0f}.row:hover .row-go{color:var(--amber-t);transform:translate(4px)}}.row-head{border-bottom:1px solid var(--rule-2);padding:0 0 10px}.row-head>span{font:500 10px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.prose{max-width:68ch;color:var(--paper-2);font-size:18px;line-height:1.65}.prose>*+*{margin-top:1.1em}.prose h2,.prose h3,.prose h4{color:var(--paper);letter-spacing:-.02em;margin-top:2em;line-height:1.2}.prose h2{font-size:clamp(26px,2.4vw,34px);font-weight:600}.prose h3{font-size:22px;font-weight:600}.prose h4{font:600 12px/1.4 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--amber-t)}.prose h2+*,.prose h3+*,.prose h4+*{margin-top:.6em}.prose a{color:var(--link);text-underline-offset:3px;text-decoration:underline #8fa8f266}.prose strong{color:var(--paper);font-weight:600}.prose ul,.prose ol{padding-left:1.3em}.prose li+li{margin-top:.4em}.prose li::marker{color:var(--amber-t);font-family:var(--mono)}.prose blockquote{border-left:2px solid var(--amber);color:var(--paper);padding:4px 0 4px 20px;font-size:1.08em}.prose hr{border:0;border-top:1px solid var(--rule-2);margin:2.4em 0}.prose code{font:500 .86em/1.5 var(--mono);background:var(--s1);border:1px solid var(--rule);padding:.08em .35em}.prose pre{border:1px solid var(--rule-2);tab-size:2;padding:18px 20px;font-size:14px;line-height:1.6;position:relative;overflow-x:auto;background:var(--s1)!important}.prose pre code{font-size:inherit;background:0 0;border:0;padding:0}.astro-code,.astro-code span{color:var(--shiki-dark);background-color:var(--shiki-dark-bg);font-style:var(--shiki-dark-font-style);font-weight:var(--shiki-dark-font-weight);text-decoration:var(--shiki-dark-text-decoration)}.prose table{width:100%;font-size:15px;line-height:1.45;display:block;overflow-x:auto}.prose th{font:500 10.5px/1.3 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);text-align:left;border-bottom:1px solid var(--rule-2);padding:8px 14px 8px 0}.prose td{border-bottom:1px solid var(--rule);vertical-align:top;padding:10px 14px 10px 0}.prose img{border:1px solid var(--rule)}.prose .footnotes{border-top:1px solid var(--rule-2);color:var(--muted);margin-top:3em;padding-top:1.2em;font-size:14px}.prose .footnotes h2{font:500 11px/1.3 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:0}.prose sup a,.prose .data-footnote-backref{font-family:var(--mono);color:var(--amber-t);text-decoration:none}.foot{padding:26px var(--gut) 64px var(--gut-l);border-top:1px solid var(--rule);font:500 10.5px/1.4 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 28px;display:flex;position:relative}.foot ul{flex-wrap:wrap;gap:6px 20px;margin:0;padding:0;list-style:none;display:flex}.foot a{color:var(--link);padding:6px 0;display:inline-block}@media (hover:hover){.foot a:hover{color:var(--paper)}}@media (width<=1000px){.brand-rev{display:none}}@media (width<=900px){.menu-btn{margin-left:auto;display:inline-flex}.nav{border:1px solid var(--rule-2);background:#0b0d10f7;margin:0;padding:8px 16px;display:none;position:fixed;top:62px;left:12px;right:12px}.nav.open{display:block}.nav ul{flex-direction:column;gap:0}.nav a{border-bottom:1px solid var(--rule);padding:13px 0;font-size:12px;display:block}.nav li:last-child a{border-bottom:0}.nav{width:min(340px,100vw - 24px);left:auto}}@media (width<=760px){.top{gap:10px;padding:14px 18px 10px}.brand-rev{display:none}.brand-t{font-size:10px}.ruler-y{top:70px;bottom:48px}.ruler-x{left:60px;right:60px}.ro-bl{display:none}.ro-br{font-size:9.5px;bottom:20px;right:20px}.past-hero .readout,.past-hero .ruler-x .ticks{opacity:0}.section{padding:72px 18px 72px 22px}.row{grid-template-columns:3.2em minmax(0,1fr) 1.2em;gap:6px 12px;padding:18px 0}.row-code{grid-row:span 3}.row-title,.row-dom,.row-per{grid-column:2}.row-go{grid-area:1/3}.row-head{display:none}.key{letter-spacing:.1em}.key-cap{padding:15px 12px 14px;font-size:11px}[data-ro-scene],[data-ro-scene-sep]{display:none}.key-glyph{min-width:40px}.foot{padding:24px 20px 56px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.dg text{font-family:var(--mono);letter-spacing:.08em;paint-order:stroke;stroke:var(--deep);stroke-width:4px;stroke-linejoin:round}.dg .d-lbl{fill:var(--paper);font-weight:600}.dg .d-amb{fill:var(--amber-t)}.dg .d-plain{font-weight:400}.dg .d-sub{fill:var(--muted)}.dg .d-frame{fill:none;stroke:#f4f1ea2e}.dg .d-tick{fill:none;stroke:#f4f1ea47}.dg .d-ring{fill:none;stroke:var(--blue);stroke-width:1px}.dg .d-ring.d-hot{stroke:var(--amber);stroke-width:1.4px}.dg .d-ticks{fill:none;stroke:var(--blue);stroke-opacity:.45;stroke-width:5px}.dg .d-ticks.d-hot{stroke:var(--amber)}.dg .d-sweep-fan{fill:url(#dg-asm-sweep)}.dg .d-sweep-edge{stroke:#cfe0ff;stroke-opacity:.5}.dg .d-orbit{fill:none;stroke:#f4f1ea29;stroke-dasharray:2 5}.dg .d-spoke{stroke:var(--blue);stroke-opacity:.3}.dg .d-node{fill:var(--deep);stroke:var(--paper);stroke-opacity:.85}.dg .d-node-hot{fill:var(--amber);stroke:var(--amber)}.dg .d-orch{fill:none;stroke:var(--paper);stroke-opacity:.9}.dg .d-orch-mid{fill:none;stroke:var(--blue);stroke-opacity:.75}.dg .d-orch-core{fill:#5b82ee2e;stroke:var(--blue);stroke-opacity:.75}.dg .d-box{fill:var(--deep);stroke:var(--paper);stroke-opacity:.7}.dg .d-rule{stroke:#f4f1ea38}.dg .d-bar{fill:var(--blue)}.dg .d-pin{fill:var(--paper)}.dg .d-leader{fill:none;stroke:#f4f1ea61}.dg .d-leader-solid{fill:none;stroke:#f4f1ea73}.dg .d-handover{stroke:var(--amber-t);stroke-dasharray:4 4}.dg .dg-d{transition:opacity .2s var(--ease)}.dg[data-hl] .dg-d{opacity:.18}.dg[data-hl="1"] .dg-d[data-d="1"],.dg[data-hl="2"] .dg-d[data-d="2"],.dg[data-hl="3"] .dg-d[data-d="3"],.dg[data-hl="4"] .dg-d[data-d="4"]{opacity:1}@media (prefers-reduced-motion:no-preference){.dg .dg-orbit,.dg .d-sweep{transform-box:view-box;transform-origin:400px 400px}.dg .dg-orbit{animation:240s linear infinite dg-spin}.dg .d-sweep{animation:8s linear infinite dg-spin}.dg .d-handover{animation:1s linear infinite dg-march}.dg-pre .d-ring{stroke-dasharray:1 1;stroke-dashoffset:1px}.dg-pre .d-ticks,.dg-pre .d-node{opacity:0}.dg-in .d-ring{stroke-dasharray:1 1;animation:dg-draw 1.1s var(--ease-io) both}.dg-in .d-ring:nth-of-type(2){animation-delay:.12s}.dg-in .d-ticks{animation:.6s .3s both fade-in}.dg-in .d-node{animation:.35s .4s both fade-in}}@keyframes dg-spin{to{transform:rotate(360deg)}}@keyframes dg-march{to{stroke-dashoffset:-16px}}@keyframes dg-draw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}@media (width<=760px){.dg text{stroke-width:6px;font-size:19px}.dg .d-sub{display:none}}@media (width<=430px){.brand-t{display:none}}.field[data-astro-cid-wul7fgjm]{z-index:0;pointer-events:none;contain:strict;position:fixed;inset:0;overflow:hidden}.f-layer[data-astro-cid-wul7fgjm]{will-change:transform;width:100%;height:136vh;position:absolute;inset:-12vh 0 -24vh}.field[data-astro-cid-wul7fgjm] svg *{vector-effect:non-scaling-stroke}.f-calm[data-astro-cid-wul7fgjm] circle[data-astro-cid-wul7fgjm]{fill:#f4f1ea;fill-opacity:.09}.f-horizon[data-astro-cid-wul7fgjm]{stroke:#f4f1ea;stroke-opacity:.06}.f-quiet[data-astro-cid-wul7fgjm]{height:100%;inset:0}.f-quiet[data-astro-cid-wul7fgjm] i[data-astro-cid-wul7fgjm]{background:#f4f1ea0d;position:absolute}.q-h[data-astro-cid-wul7fgjm]{height:1px;top:38%;left:0;right:0}.q-v[data-astro-cid-wul7fgjm]{width:1px;top:0;bottom:0;left:72%}@supports (animation-timeline:scroll()){@media (prefers-reduced-motion:no-preference){.f-move[data-astro-cid-wul7fgjm]{animation:linear both f-drift}.field[data-astro-cid-wul7fgjm] .f-move[data-astro-cid-wul7fgjm]{animation-timeline:scroll(root)}}}@keyframes f-drift{0%{transform:translate(0,0)rotate(0)}to{transform:translate3d(0,var(--f-y1,-10vh),0) rotate(var(--f-r1,0deg))}}
