.lang[data-astro-cid-l4evwy7q]{text-transform:uppercase;gap:8px;font-size:.8rem;display:flex}.lang[data-astro-cid-l4evwy7q] a[data-astro-cid-l4evwy7q]{color:var(--muted);text-decoration:none}.lang[data-astro-cid-l4evwy7q] a[data-astro-cid-l4evwy7q][aria-current]{color:var(--text);font-weight:600}.site-header[data-astro-cid-nen7h5rs]{z-index:50;backdrop-filter:blur(12px);border-bottom:1px solid var(--line);background:#080c18e0;position:sticky;top:0}.site-header__bar[data-astro-cid-nen7h5rs]{align-items:center;gap:24px;height:72px;display:flex}.site-header__brand[data-astro-cid-nen7h5rs]{flex:none;margin-left:-12px;padding:12px;display:block}.site-header__brand[data-astro-cid-nen7h5rs] img[data-astro-cid-nen7h5rs]{width:106px;height:24px}.site-nav[data-astro-cid-nen7h5rs]{flex:1}.site-nav[data-astro-cid-nen7h5rs] ul[data-astro-cid-nen7h5rs]{justify-content:center;gap:clamp(14px,1.8vw,26px);margin:0;padding:0;list-style:none;display:flex}.site-nav[data-astro-cid-nen7h5rs] li[data-astro-cid-nen7h5rs]{margin:0}.site-nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{color:var(--muted);white-space:nowrap;border-bottom:1px solid #0000;padding:8px 0;font-size:.875rem;font-weight:600;text-decoration:none;display:block}.site-nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]:hover{color:var(--text)}.site-nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs][aria-current=page]{color:var(--text);border-bottom-color:var(--accent)}.site-header__actions[data-astro-cid-nen7h5rs]{align-items:center;gap:10px;margin-left:auto;display:flex}.menu-toggle[data-astro-cid-nen7h5rs]{border:1px solid var(--line-2);border-radius:var(--radius);width:44px;height:44px;color:var(--text);cursor:pointer;background:0 0;justify-content:center;align-items:center;padding:0;display:none}@media (width<=1120px){.site-nav[data-astro-cid-nen7h5rs],.site-header__login[data-astro-cid-nen7h5rs]{display:none}.menu-toggle[data-astro-cid-nen7h5rs]{display:inline-flex}}@media (width<=350px){.site-header__actions[data-astro-cid-nen7h5rs] .btn--primary[data-astro-cid-nen7h5rs]{display:none}}.drawer[data-astro-cid-nen7h5rs]{z-index:60;background:#05070db3;position:fixed;inset:0}.drawer[data-astro-cid-nen7h5rs][hidden]{display:none}.drawer__panel[data-astro-cid-nen7h5rs]{width:min(360px,100%);padding:14px var(--gutter) 28px;background:var(--ground);border-left:1px solid var(--line);position:absolute;top:0;bottom:0;right:0;overflow-y:auto}.drawer__top[data-astro-cid-nen7h5rs]{justify-content:space-between;align-items:center;height:44px;margin-bottom:18px;display:flex}.drawer__top[data-astro-cid-nen7h5rs] img[data-astro-cid-nen7h5rs]{width:106px;height:24px}.drawer__top[data-astro-cid-nen7h5rs] .menu-toggle[data-astro-cid-nen7h5rs]{display:inline-flex}.drawer__links[data-astro-cid-nen7h5rs]{border-top:1px solid var(--line);margin:0 0 24px;padding:0;list-style:none}.drawer__links[data-astro-cid-nen7h5rs] li[data-astro-cid-nen7h5rs]{border-bottom:1px solid var(--line);margin:0}.drawer__links[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{min-height:52px;color:var(--text);align-items:center;font-weight:600;text-decoration:none;display:flex}.drawer__links[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs][aria-current=page]{color:var(--accent)}.drawer__actions[data-astro-cid-nen7h5rs]{gap:10px;display:grid}.site-footer[data-astro-cid-jo6i4kqk]{border-top:1px solid var(--line);color:var(--muted);padding:clamp(48px,6vw,72px) 0 32px;font-size:.9rem}.site-footer__top[data-astro-cid-jo6i4kqk]{grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr));gap:32px;padding-bottom:36px;display:grid}.site-footer__brand[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]{margin:-12px;padding:12px;display:inline-block}.site-footer__brand[data-astro-cid-jo6i4kqk] img[data-astro-cid-jo6i4kqk]{width:154px;height:32px}.site-footer__brand[data-astro-cid-jo6i4kqk] p[data-astro-cid-jo6i4kqk]{max-width:34ch;margin:24px 0 0}.site-footer__col[data-astro-cid-jo6i4kqk] h2[data-astro-cid-jo6i4kqk]{letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin:0 0 14px;font-size:.68rem;font-weight:600}.site-footer__col[data-astro-cid-jo6i4kqk] ul[data-astro-cid-jo6i4kqk]{margin:0;padding:0;list-style:none}.site-footer__col[data-astro-cid-jo6i4kqk] li[data-astro-cid-jo6i4kqk]{margin:0}.site-footer__col[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk],.site-footer__social[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]{min-height:34px;color:var(--text);align-items:center;text-decoration:none;display:inline-flex}.site-footer__col[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]:hover,.site-footer__social[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]:hover{color:var(--accent)}.site-footer__trust[data-astro-cid-jo6i4kqk]{border-top:1px solid var(--line);padding:20px 0;font-size:.84rem}.site-footer__trust[data-astro-cid-jo6i4kqk] p[data-astro-cid-jo6i4kqk]{margin:0 0 6px}.site-footer__bottom[data-astro-cid-jo6i4kqk]{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:12px;padding-top:20px;font-size:.84rem;display:flex}.site-footer__social[data-astro-cid-jo6i4kqk]{gap:20px;display:inline-flex}@media (width<=860px){.site-footer__top[data-astro-cid-jo6i4kqk]{grid-template-columns:repeat(2,minmax(0,1fr))}.site-footer__brand[data-astro-cid-jo6i4kqk]{grid-column:1/-1}.site-footer__col[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk],.site-footer__social[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]{min-height:44px}}@media (width<=420px){.site-footer__top[data-astro-cid-jo6i4kqk]{grid-template-columns:minmax(0,1fr)}}@font-face{font-family:Montserrat;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/montserrat-400.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:Montserrat;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/montserrat-600.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:Montserrat;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/montserrat-800.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}:root{--ground:#080c18;--surface:#141c28;--surface-2:#10172a;--line:#242c40;--line-2:#33405a;--text:#f4f4f0;--muted:#8894a4;--accent:#7cc0fc;--signal:#20a8fc;--deep:#102840;--coral:#fc8c80;--red:#f05448;--ink:#0b1220;--todo:#f5c451;--font:"Montserrat", system-ui, -apple-system, "Segoe UI", sans-serif;--mono:ui-monospace, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--eyebrow-font:var(--font);--wrap:1140px;--gutter:clamp(16px, 4vw, 40px);--section:clamp(64px, 9vw, 120px);--radius:2px;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{text-size-adjust:100%;scroll-padding-top:88px}body{background:var(--ground);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0;font-size:1.0625rem;font-weight:400;line-height:1.6;overflow-x:hidden}img,svg{max-width:100%;display:block}img{height:auto}h1,h2,h3,h4{letter-spacing:-.02em;text-wrap:balance;margin:0 0 .5em;font-weight:800;line-height:1.1}h1{font-size:clamp(2.35rem,5.6vw,4.2rem);line-height:1.04}h2{font-size:clamp(1.7rem,3.5vw,2.65rem)}h3{letter-spacing:-.01em;font-size:1.2rem;line-height:1.25}h4{letter-spacing:0;font-size:1rem}p{text-wrap:pretty;margin:0 0 1em}strong,b{color:var(--text);font-weight:600}a{color:var(--accent);text-underline-offset:3px;text-decoration-thickness:1px}a:hover{color:var(--text)}ul,ol{margin:0 0 1em;padding-left:1.2em}li{margin:.25em 0}hr{border:0;border-top:1px solid var(--line);margin:2.5rem 0}code,kbd,samp,.mono{font-family:var(--mono);font-size:.92em}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:var(--radius)}::selection{background:var(--deep);color:var(--text)}.skip-link{z-index:100;background:var(--accent);color:var(--ink);padding:10px 14px;font-weight:600;text-decoration:none;position:absolute;top:-60px;left:12px}.skip-link:focus{top:12px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.wrap{width:100%;max-width:calc(var(--wrap) + var(--gutter) * 2);padding-inline:var(--gutter);margin-inline:auto}.wrap--narrow{max-width:calc(820px + var(--gutter) * 2)}.section{padding-block:var(--section)}.section--tight{padding-block:clamp(48px,6vw,80px)}.section--rule{border-top:1px solid var(--line)}.section--panel{background:var(--surface-2);border-block:1px solid var(--line)}.grid{gap:clamp(16px,2.2vw,24px);display:grid}.grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid--split{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:center;gap:clamp(28px,5vw,64px)}@media (width<=980px){.grid--4,.grid--3{grid-template-columns:repeat(2,minmax(0,1fr))}.grid--split{grid-template-columns:minmax(0,1fr)}}@media (width<=640px){.grid--2,.grid--3,.grid--4{grid-template-columns:minmax(0,1fr)}}.stack>*+*{margin-top:var(--stack,1rem)}.em{color:var(--accent)}.em-problem{color:var(--coral)}.lede{color:var(--text);max-width:58ch;font-size:clamp(1.08rem,1.7vw,1.28rem);line-height:1.55}.sub{color:var(--muted);max-width:64ch}.muted{color:var(--muted)}.small{font-size:.875rem}.center{text-align:center}.h-section{max-width:24ch;margin-bottom:.45em}.h-section--wide{max-width:30ch}.eyebrow{font-family:var(--eyebrow-font);letter-spacing:.26em;text-transform:uppercase;color:var(--muted);align-items:flex-start;gap:14px;margin:0 0 18px;font-size:.72rem;font-weight:600;display:flex}.eyebrow:before{content:"";background:var(--accent);flex:none;width:28px;height:1px;margin-top:.62em}.eyebrow--problem:before{background:var(--coral)}.eyebrow__text{min-width:0}.eyebrow .eyebrow__aside{color:var(--accent)}.eyebrow .eyebrow__aside:before{content:"·";color:var(--muted);margin:0 .7em 0 .2em}.label{font-family:var(--mono);letter-spacing:.02em;color:var(--muted);font-size:.78rem}.num{font-family:var(--mono);color:var(--accent);margin-right:.6em;font-size:.8rem}.callout{border-left:2px solid var(--signal);max-width:62ch;margin:clamp(28px,4vw,44px) 0 0;padding:2px 0 2px 18px;font-size:clamp(1.02rem,1.5vw,1.18rem);line-height:1.5}.callout--problem{border-left-color:var(--coral)}.callout p:last-child{margin:0}.callout .muted{margin-top:6px;font-size:.9rem;display:block}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(20px,2.4vw,28px);position:relative}.card>:last-child{margin-bottom:0}.card h3{margin-bottom:.45em}.card p{color:var(--muted)}.card p strong{color:var(--text)}.card--top{border-top:2px solid var(--accent)}.card--top-signal{border-top:2px solid var(--signal)}.card--top-problem{border-top:2px solid var(--coral)}.card--top-text{border-top:2px solid var(--text)}.card--left{border-left:2px solid var(--signal)}.card--left-problem{border-left:2px solid var(--coral)}.card--deep{background:var(--deep);border-color:#1c3d5e}.card--flat{background:0 0}.card__meta{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:12px;display:flex}.rows{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.rows>li{border-bottom:1px solid var(--line);margin:0;padding:16px 0}.rows--problem{border-top-color:#fc8c8073}.rows--problem>li{border-bottom-color:#fc8c8073}.ticks{margin:0;padding:0;list-style:none}.ticks li{margin:.45em 0;padding-left:18px;position:relative}.ticks li:before{content:"";background:var(--signal);width:6px;height:6px;position:absolute;top:.62em;left:0}.ticks--problem li:before{background:var(--red)}.btn{border-radius:var(--radius);min-height:48px;font-family:var(--font);white-space:nowrap;cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:10px;padding:12px 22px;font-size:.95rem;font-weight:600;line-height:1.2;text-decoration:none;transition:background-color .18s,border-color .18s,color .18s;display:inline-flex}.btn--primary{background:var(--signal);color:var(--ink)}.btn--primary:hover{background:var(--accent);color:var(--ink)}.btn--ghost{color:var(--text);border-color:var(--line-2);background:0 0}.btn--ghost:hover{border-color:var(--accent);color:var(--text)}.btn--sm{min-height:40px;padding:8px 16px;font-size:.875rem}.btn .arrow{transition:transform .18s}.btn:hover .arrow{transform:translate(3px)}.actions{flex-wrap:wrap;gap:12px;margin-top:30px;display:flex}@media (width<=420px){.actions .btn{white-space:normal;width:100%}}.link-arrow{font-weight:600;text-decoration:none}.link-arrow:after{content:" →"}.link-arrow:hover{text-decoration:underline}.tag{border-radius:var(--radius);font-family:var(--font);letter-spacing:.18em;text-transform:uppercase;white-space:nowrap;vertical-align:middle;border:1px solid;align-items:center;gap:6px;padding:3px 8px 2px;font-size:.64rem;font-weight:600;line-height:1.5;display:inline-flex}.tag--shipped{color:var(--accent)}.tag--available{color:var(--accent);background:#20a8fc1a}.tag--designed{color:var(--text);border-style:dashed}.tag--roadmap{color:var(--muted);border-style:dashed}.tag--illustrative,.tag--modeled{color:var(--muted)}@media (width<=420px){.tag{white-space:normal}}.todo{border:1px dashed var(--todo);border-radius:var(--radius);color:var(--todo);font-family:var(--mono);text-align:left;background:#16140e;margin:12px 0;padding:10px 12px;font-size:.8rem;line-height:1.45;display:block}.todo:before{content:"TODO  ";white-space:pre;font-weight:700}.todo--inline{margin:6px 0 0;padding:3px 8px;display:inline-block}.table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:.95rem}.table th,.table td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:14px 16px 14px 0}.table thead th{letter-spacing:.2em;text-transform:uppercase;color:var(--muted);border-bottom-color:var(--line-2);font-size:.68rem;font-weight:600}.table td.num-cell,.table th.num-cell{text-align:right;font-variant-numeric:tabular-nums}@media (width<=640px){.table--stack thead{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.table--stack,.table--stack tbody,.table--stack tr,.table--stack td,.table--stack th{width:100%;display:block}.table--stack tr{border-bottom:1px solid var(--line);padding:12px 0}.table--stack td,.table--stack th{border:0;padding:3px 0;text-align:left!important}.table--stack td[data-label]:before{content:attr(data-label);letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-size:.64rem;font-weight:600;display:block}}.prose{max-width:72ch}.prose h2{margin-top:2.2em;font-size:clamp(1.25rem,2.2vw,1.55rem)}.prose h3{margin-top:1.8em}.prose p,.prose li{color:#c9ced6}.prose a{color:var(--accent)}.prose ul{padding-left:1.2em}.prose .eff{color:var(--muted);font-family:var(--mono);font-size:.85rem}.motion [data-anim] .d-line{stroke-dasharray:1;stroke-dashoffset:1px}.motion [data-anim] .d-fade,.motion [data-anim] .d-drop{opacity:0}.motion [data-anim] .d-drop{transform:translateY(-10px)}.motion [data-anim] .d-grow{transform-origin:0;transform:scaleX(0)}.motion [data-anim].is-in .d-line{animation:d-draw var(--dur,.9s) cubic-bezier(.45, 0, .2, 1) var(--d,0s) forwards}.motion [data-anim].is-in .d-fade{animation:d-fade var(--dur,.6s) ease-out var(--d,0s) forwards}.motion [data-anim].is-in .d-drop{animation:d-drop var(--dur,.7s) cubic-bezier(.2, .7, .2, 1) var(--d,0s) forwards}.motion [data-anim].is-in .d-grow{animation:d-grow var(--dur,.8s) cubic-bezier(.45, 0, .2, 1) var(--d,0s) forwards}@keyframes d-draw{to{stroke-dashoffset:0}}@keyframes d-grow{to{transform:none}}@keyframes d-fade{to{opacity:1}}@keyframes d-drop{to{opacity:1;transform:none}}.motion [data-anim].is-in .d-pulse{animation:d-pulse 4.5s ease-in-out var(--d,0s) infinite}@keyframes d-pulse{0%,to{opacity:.18}50%{opacity:.5}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}.motion [data-anim] .d-line{stroke-dashoffset:0}.motion [data-anim] .d-fade,.motion [data-anim] .d-drop{opacity:1;transform:none}.motion [data-anim] .d-grow{transform:none}}
