@font-face{font-family:Doto;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/doto-latin-800-normal.woff2) format("woff2")}@font-face{font-family:Doto;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/doto-latin-400-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:600;font-display:swap;src:url(/fonts/inter-latin-600-normal.woff2) format("woff2")}@font-face{font-family:Doto Punct;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/inter-latin-600-normal.woff2) format("woff2");unicode-range:U+003A,U+003B}@font-face{font-family:Inter Fallback;src:local("Arial");size-adjust:107%;ascent-override:90%;descent-override:22%;line-gap-override:0%}@font-face{font-family:Doto Fallback;src:local("Courier New");size-adjust:92%;ascent-override:95%;descent-override:25%;line-gap-override:0%}:root{--bg: #12141b;--bg-deep: #0d0f14;--card: #131414;--card-2: #171a1a;--line: #1b3a33;--line-soft: #1f2a28;--text: #e9eeec;--muted: #9fada8;--faint: #6f7d78;--accent: #04bf8a;--accent-hi: #2dffc4;--accent-dark: #03986e;--accent-deep: #025940;--on-accent: #03140e;--warn: #f0b429;--danger: #ff7a7a;--font-display: "Doto Punct", "Doto", "Doto Fallback", ui-monospace, monospace;--font-body: "Inter", "Inter Fallback", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;--step--1: .875rem;--step-0: 1.0625rem;--step-1: 1.25rem;--step-2: clamp(1.5rem, 1.2rem + 1.2vw, 2rem);--step-3: clamp(1.9rem, 1.4rem + 2vw, 2.9rem);--step-4: clamp(2.5rem, 1.5rem + 4.4vw, 4.6rem);--step-5: clamp(3.4rem, 1.5rem + 9vw, 8.5rem);--radius: 6px;--radius-lg: 10px;--wrap: 72rem;--wrap-prose: 44rem;--gutter: clamp(1.1rem, 4vw, 2rem);--space-section: clamp(4rem, 8vw, 7rem);--glow: 0 0 18px rgb(45 255 196 / .35);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:5.5rem;background:var(--bg)}body{margin:0;min-height:100vh;background:var(--bg);color:var(--text);font:400 var(--step-0)/1.65 var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:clip;position:relative}body:before{content:"";position:absolute;inset:0 0 auto;height:62rem;pointer-events:none;z-index:-1;background:radial-gradient(60rem 28rem at 50% -4rem,rgb(4 191 138 / .2),transparent 70%),linear-gradient(to right,rgb(255 255 255 / .035) 1px,transparent 1px) 0 0 / 3.5rem 3.5rem,linear-gradient(to bottom,rgb(255 255 255 / .035) 1px,transparent 1px) 0 0 / 3.5rem 3.5rem;-webkit-mask-image:linear-gradient(to bottom,#000 30%,transparent);mask-image:linear-gradient(to bottom,#000 30%,transparent)}img,svg{max-width:100%;display:block}h1,h2,h3,h4{margin:0;text-wrap:balance}p{margin:0 0 1em}a{color:var(--accent-hi);text-underline-offset:.2em;text-decoration-thickness:1px}a:hover{color:#fff}:focus-visible{outline:2px solid var(--accent-hi);outline-offset:3px;border-radius:3px}::selection{background:var(--accent-deep);color:#fff}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.skip-link{position:fixed;left:1rem;top:-4rem;z-index:100;background:var(--accent);color:var(--on-accent);padding:.6rem 1rem;border-radius:var(--radius);font-weight:600;text-decoration:none}.skip-link:focus{top:1rem}.wrap{width:min(100% - 2 * var(--gutter),var(--wrap));margin-inline:auto}.wrap-prose{width:min(100% - 2 * var(--gutter),var(--wrap-prose));margin-inline:auto}.section{padding-block:var(--space-section)}.section+.section{padding-top:0}.section+.section:before{content:"";display:block;height:15px;width:min(100% - 2 * var(--gutter),var(--wrap));margin:0 auto var(--space-section);background:radial-gradient(circle,var(--accent-hi) 0 2.5px,rgb(45 255 196 / .28) 3px 5px,transparent 5.5px) center / 15px 15px no-repeat,radial-gradient(circle,var(--bg) 0 7.4px,transparent 7.5px) center / 15px 15px no-repeat,repeating-linear-gradient(90deg,var(--line) 0 6px,transparent 6px 12px) center / 100% 1px no-repeat}.display,h1,h2.display{font-family:var(--font-display);font-weight:700;letter-spacing:.01em;line-height:1.08}h1{font-size:var(--step-4);text-shadow:0 0 36px rgb(45 255 196 / .14);overflow-wrap:break-word}h2{font-family:var(--font-display);font-weight:700;font-size:clamp(1.7rem,1.25rem + 1.5vw,2.45rem);line-height:1.18;letter-spacing:0}h3{font-size:var(--step-1);font-weight:600;line-height:1.3}.kicker{display:inline-flex;align-items:center;gap:.6rem;font-size:var(--step--1);font-weight:600;color:var(--accent);margin-bottom:1rem;letter-spacing:.01em}.kicker:before{content:"";width:.5rem;height:.5rem;border-radius:50%;background:var(--accent-hi);box-shadow:var(--glow)}.lead{font-size:clamp(1.125rem,1rem + .6vw,1.35rem);color:var(--muted);line-height:1.55;max-width:40rem;text-wrap:pretty}.muted{color:var(--muted)}.mono-num{font-family:var(--font-display);font-weight:700;font-variant-numeric:tabular-nums}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;min-height:2.9rem;padding:.7rem 1.35rem;font:600 1rem/1.2 var(--font-body);border-radius:var(--radius);border:1px solid transparent;text-decoration:none;cursor:pointer;transition:transform .15s ease,box-shadow .2s ease,background-color .2s ease,border-color .2s ease}.btn-primary{background:var(--accent);color:var(--on-accent);box-shadow:0 0 0 1px #2dffc440,0 6px 24px -6px #04bf8a8c}.btn-primary:hover{background:var(--accent-hi);color:var(--on-accent);box-shadow:0 0 0 1px #2dffc499,0 8px 30px -4px #2dffc480;transform:translateY(-1px)}.btn-ghost{background:#ffffff05;color:var(--text);border-color:var(--line)}.btn-ghost:hover{border-color:var(--accent);color:#fff;background:#04bf8a14}.btn-sm{min-height:2.4rem;padding:.45rem 1rem;font-size:.9375rem}.btn svg{width:1rem;height:1rem}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);padding:clamp(1.25rem,3vw,2rem)}.check,.prose ul:not([class])>li:before,.check-list li:before{content:"";display:inline-block;flex:none;width:1.05em;height:1.05em;background:var(--accent-hi);-webkit-mask:var(--check-mask) center / contain no-repeat;mask:var(--check-mask) center / contain no-repeat;filter:drop-shadow(0 0 4px rgb(45 255 196 / .7))}:root{--check-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12.5l5.2 5.2L20 6.5'/%3E%3C/svg%3E");--cross-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6L6 18'/%3E%3C/svg%3E");--dash-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M6 12h12'/%3E%3C/svg%3E")}.check-list{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}.check-list li{display:flex;gap:.7rem;align-items:flex-start}.check-list li:before{margin-top:.3em}.cross,.dim-cross{display:inline-block;width:1.05em;height:1.05em;background:var(--faint);-webkit-mask:var(--cross-mask) center / contain no-repeat;mask:var(--cross-mask) center / contain no-repeat}.partial-dash{display:inline-block;width:1.05em;height:1.05em;background:var(--warn);-webkit-mask:var(--dash-mask) center / contain no-repeat;mask:var(--dash-mask) center / contain no-repeat}.circuit{stroke:var(--accent);stroke-width:1.5;stroke-dasharray:5 7;fill:none;opacity:.8}@media(prefers-reduced-motion:no-preference){.circuit{animation:flow 2.4s linear infinite}@keyframes flow{to{stroke-dashoffset:-24}}}.prose{font-size:var(--step-0);line-height:1.75;color:#d5dcd9}.prose>*+*{margin-top:1.25em}.prose>:first-child{margin-top:0}.prose h2:not([class]){margin-top:2.8em;padding-top:1.6rem;border-top:1px dashed var(--line);color:var(--text);font-size:var(--step-2);scroll-margin-top:5.5rem}.prose h2:target,.prose h3:target{color:var(--accent-hi)}.prose h2:not([class]):first-child{border-top:0;padding-top:0;margin-top:0}.prose h3:not([class]){margin-top:2.1em;font-size:var(--step-1);color:var(--text);scroll-margin-top:5.5rem}.prose h2:not([class])+*,.prose h3:not([class])+*{margin-top:.8em}.prose p,.prose li{text-wrap:pretty}.prose strong{color:#fff;font-weight:600}.prose a{text-decoration-color:#2dffc473;transition:text-decoration-color .2s}.prose a:hover{text-decoration-color:currentColor}.prose ul:not([class]),.prose ol:not([class]){padding:0;margin-left:0;list-style:none;display:grid;gap:.55rem}.prose ul:not([class])>li{position:relative;padding-left:1.9rem}.prose ul:not([class])>li:before{position:absolute;left:0;top:.5em}.prose ul:not([class]) ul:not([class]),.prose ol:not([class]) ul:not([class]){margin-top:.55rem}.prose ul:not([class]) ul:not([class])>li:before{-webkit-mask-image:var(--dash-mask);mask-image:var(--dash-mask);background:var(--accent);filter:none;width:1em;height:1em}.prose ol:not([class]){counter-reset:ol}.prose ol:not([class])>li{counter-increment:ol;position:relative;padding-left:2.4rem}.prose ol:not([class])>li:before{content:counter(ol);position:absolute;left:0;top:.05em;font-family:var(--font-display);font-weight:700;font-size:1.3em;line-height:1.2;color:var(--accent-hi)}.prose blockquote{margin-inline:0;padding:.2rem 0 .2rem 1.4rem;border-left:2px dashed var(--accent-dark);color:var(--muted);font-size:1.05em}.prose blockquote>*+*{margin-top:.8em}.prose code{font:.88em/1 var(--font-mono);color:var(--accent-hi);background:#04bf8a17;border:1px solid var(--line);border-radius:4px;padding:.12em .4em}.prose pre{background:var(--bg-deep);border:1px solid var(--line);border-radius:var(--radius-lg);padding:1.1rem 1.25rem;overflow-x:auto;font-size:.9rem;line-height:1.6}.prose pre code{background:none;border:0;padding:0;color:#d5dcd9;font-size:inherit;line-height:inherit}.prose hr{border:0;border-top:1px dashed var(--line);margin-block:2.5em}.prose img{border-radius:var(--radius-lg);border:1px solid var(--line);height:auto}.prose table:not([class]){display:block;overflow-x:auto;overscroll-behavior-x:contain;max-width:100%;width:max-content;border-collapse:separate;border-spacing:0;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--card);font-size:.95rem;line-height:1.5}.prose table:not([class]) th,.prose table:not([class]) td{padding:.8rem 1rem;text-align:left;border-bottom:1px solid var(--line-soft);min-width:5.5rem;vertical-align:top}.prose table:not([class]) th{font-weight:600;color:#fff;background:var(--card-2);border-bottom-color:var(--line);white-space:normal}.prose table:not([class]) tr:last-child td{border-bottom:0}.prose table:not([class]) tbody tr:hover td{background:#04bf8a0a}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}.hub-head{padding:clamp(2.5rem,6vw,5rem) 0 clamp(2rem,4vw,3rem)}.hub-head h1{max-width:22em;font-size:clamp(2.2rem,1rem + 3.6vw,3.6rem)}.hub-head .lead{margin-top:1.2rem}.tags{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem;margin:1.5rem 0 0;padding:0}.tags li{border:1px dashed var(--line);border-radius:4px;padding:.2rem .7rem;font-size:.85rem;color:var(--muted)}.posts{list-style:none;margin:0;padding:0;display:grid;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;max-width:52rem}.posts a{display:block;padding:1.5rem 1.6rem;background:var(--card);text-decoration:none;color:inherit;transition:background .2s}.posts a{position:relative}.posts a:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--accent-hi);box-shadow:var(--glow);transform:scaleY(0);transition:transform .25s ease}.posts a:hover:before,.posts a:focus-visible:before{transform:scaleY(1)}.posts a:hover{background:var(--card-2)}.posts time{font-size:.85rem;color:var(--accent)}.posts h2{font-family:var(--font-body);font-weight:600;font-size:1.3rem;line-height:1.3;margin:.3rem 0 .5rem;letter-spacing:0}.posts a:hover h2{color:var(--accent-hi)}.posts p{margin:0;color:var(--muted);font-size:.97rem}.ptags{display:inline-block;margin-top:.7rem;font-size:.8rem;color:var(--faint)}.vs-grid{list-style:none;margin:0;padding:0;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(18rem,1fr))}.vs-grid a{position:relative;display:flex;flex-direction:column;gap:.7rem;height:100%;padding:1.5rem;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);text-decoration:none;color:inherit;transition:border-color .2s,box-shadow .2s}.vs-grid a:hover,.vs-grid a:focus-visible{border-color:var(--accent);box-shadow:0 10px 40px -20px #2dffc480}.vs-grid a:hover .vs-go{color:var(--accent-hi)}.vs-t{font-family:var(--font-display);font-weight:700;font-size:1.7rem;line-height:1.1;color:var(--accent-hi)}.vs-d{color:var(--muted);font-size:.95rem;line-height:1.6;flex:1}.vs-go{font-weight:600;font-size:.9rem;color:var(--text)}.faq{margin-top:3.5rem}.faq>h2,.sources>h2,.related>h2{font-size:var(--step-2);margin-bottom:1.2rem}.faq-list{border-top:1px solid var(--line)}.faq details{border-bottom:1px solid var(--line);transition:background .2s}.faq details[open]{background:linear-gradient(to right,rgb(4 191 138 / .06),transparent 70%);box-shadow:inset 2px 0 0 var(--accent);padding-left:1rem}.faq details[open] summary{color:var(--accent-hi)}.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1.1rem 0;font-weight:600;font-size:1.04rem;line-height:1.4}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"";flex:none;width:1.1rem;height:1.1rem;background:var(--accent-hi);-webkit-mask:var(--plus) center / contain no-repeat;mask:var(--plus) center / contain no-repeat;transition:transform .25s ease;--plus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M12 4v16M4 12h16'/%3E%3C/svg%3E")}.faq details[open] summary:after{transform:rotate(45deg)}.faq summary:hover{color:var(--accent-hi)}.faq details p{margin:0 0 1.2rem;color:#c4cdc9;max-width:38rem;line-height:1.7}.prose,.lead,.card,.callout-body,.faq details p{overflow-wrap:anywhere}.prose code{overflow-wrap:anywhere}@media(pointer:coarse),(max-width:52rem){.crumbs a,.toc a,.f-cols a,.f-bottom a{min-height:2.75rem;display:inline-flex;align-items:center}.toc a{display:flex}.faq summary{min-height:2.75rem}}@media(prefers-reduced-motion:no-preference){.p-head .wrap>*,.hub-head>*{animation:rise .7s cubic-bezier(.2,.7,.2,1) backwards}.p-head .wrap>:nth-child(2),.hub-head>:nth-child(2){animation-delay:.05s}.p-head .wrap>:nth-child(3),.hub-head>:nth-child(3){animation-delay:.1s}.p-head .wrap>:nth-child(4),.hub-head>:nth-child(4){animation-delay:.16s}.p-head .wrap>:nth-child(5),.hub-head>:nth-child(5){animation-delay:.22s}.p-head .wrap>:nth-child(6),.hub-head>:nth-child(6){animation-delay:.28s}@keyframes rise{0%{opacity:.4;transform:translateY(10px)}}}.logo[data-astro-cid-tvrurpns]{display:inline-flex;align-items:center;gap:.65rem;color:var(--text)}.logo[data-astro-cid-tvrurpns] svg[data-astro-cid-tvrurpns]{filter:drop-shadow(0 0 5px rgb(45 255 196 / .45))}.word[data-astro-cid-tvrurpns]{display:inline-flex;align-items:baseline;gap:.4rem;line-height:1}.tb[data-astro-cid-tvrurpns]{font-family:var(--font-display);font-weight:700;font-size:1.55rem;letter-spacing:.02em;color:var(--accent-hi)}.ref[data-astro-cid-tvrurpns]{font-weight:600;font-size:1.02rem;letter-spacing:-.01em}.strip{background:#04bf8a14;border-bottom:1px solid var(--line);font-size:.8125rem;line-height:1.45;color:var(--muted)}.strip p{margin-block:0;padding:.55rem 0;display:flex;gap:.6rem;align-items:baseline}.strip .dot{flex:none;width:.45rem;height:.45rem;border-radius:50%;background:var(--accent-hi);box-shadow:var(--glow);transform:translateY(-.05em)}.strip a{color:var(--text)}.site-header{position:sticky;top:0;z-index:50;background:#12141bd1;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line-soft)}.site-header .bar{display:flex;align-items:center;justify-content:space-between;min-height:4rem;gap:1rem}.brand{text-decoration:none;color:inherit;display:inline-flex;align-items:center;min-height:2.75rem}.nav{display:flex;align-items:center;gap:1.5rem}.nav ul{list-style:none;margin:0;padding:0;display:flex;gap:.25rem}.nav ul a{display:flex;align-items:center;min-height:2.75rem;padding:.5rem .8rem;color:var(--muted);text-decoration:none;font-size:.95rem;font-weight:600;border-radius:var(--radius);transition:color .2s,background .2s}.nav ul a:hover{color:#fff;background:#ffffff0a}.nav ul a[aria-current=page]{color:var(--accent-hi);box-shadow:inset 0 -2px 0 var(--accent);border-radius:var(--radius) var(--radius) 0 0}.menu-btn{display:none;width:2.75rem;height:2.75rem;border:1px solid var(--line);background:transparent;border-radius:var(--radius);cursor:pointer;color:var(--text);place-items:center}.menu-btn .bars,.menu-btn .bars:before,.menu-btn .bars:after{display:block;width:1.1rem;height:2px;background:currentColor;border-radius:1px;transition:transform .2s}.menu-btn .bars{position:relative}.menu-btn .bars:before,.menu-btn .bars:after{content:"";position:absolute;left:0}.menu-btn .bars:before{top:-6px}.menu-btn .bars:after{top:6px}.menu-btn[aria-expanded=true] .bars{background:transparent}.menu-btn[aria-expanded=true] .bars:before{transform:translateY(6px) rotate(45deg)}.menu-btn[aria-expanded=true] .bars:after{transform:translateY(-6px) rotate(-45deg)}@media(max-width:52rem){.menu-btn{display:grid}.nav{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;gap:.8rem;padding:.8rem var(--gutter) 1.2rem;background:var(--bg);border-bottom:1px solid var(--line);box-shadow:0 30px 40px -10px #0009}.nav.open{display:flex}.nav ul{flex-direction:column}.nav ul a{padding:.8rem .4rem;min-height:3rem;border-bottom:1px dashed var(--line-soft);border-radius:0!important;box-shadow:none!important;font-size:1rem}.nav ul a[aria-current=page]{border-left:2px solid var(--accent-hi);padding-left:.8rem}.nav-cta{width:100%}}.site-footer{position:relative;margin-top:var(--space-section);border-top:1px solid var(--line);background:var(--bg-deep);padding-block:3.5rem 6rem;font-size:.9rem}.site-footer:before{content:"";position:absolute;left:0;right:0;top:-1px;height:1px;background:linear-gradient(90deg,transparent,var(--accent) 50%,transparent);opacity:.7}.f-top{display:grid;gap:2.5rem;grid-template-columns:minmax(0,1fr)}@media(min-width:62rem){.f-top{grid-template-columns:20rem 1fr;gap:4rem}}.f-brand p{color:var(--muted);margin:1rem 0 0;line-height:1.6;max-width:22rem}.f-brand .verified{font-size:.8125rem;color:var(--faint)}.f-brand a{text-decoration:none;display:inline-flex;align-items:center;min-height:2.75rem}.f-cols{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem 1.5rem}@media(min-width:40rem){.f-cols{grid-template-columns:repeat(4,1fr)}}.f-h{margin:0 0 .8rem;font-weight:600;color:#fff}.f-cols ul{list-style:none;margin:0;padding:0;display:grid;gap:.1rem}.f-cols a{display:inline-block;padding:.3rem 0;color:var(--muted);text-decoration:none}.f-cols a:hover{color:var(--accent-hi)}.f-bottom{margin-top:3rem;padding-top:1.5rem;border-top:1px dashed var(--line);display:flex;flex-wrap:wrap;gap:1rem 2rem;justify-content:space-between;color:var(--muted)}.f-bottom p{margin:0;max-width:40rem}.f-bottom ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.3rem 1.2rem}.f-bottom a{color:var(--text);padding:.3rem 0;display:inline-block}.sticky-cta{position:fixed;left:0;right:0;bottom:0;z-index:40;padding:.7rem var(--gutter) calc(.7rem + env(safe-area-inset-bottom));background:#0d0f14eb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--line);transform:translateY(110%);visibility:hidden;transition:transform .3s ease,visibility 0s linear .3s;display:none}.sticky-cta .btn{width:100%}.sticky-cta.show{transform:none;visibility:visible;transition:transform .3s ease}@media(max-width:52rem){.sticky-cta{display:block}}
