@font-face{font-family:mono;src:url(../media/jetbrains_mono_latin_wght_normal-s.p.2odd3csjijl0b.woff2)format("woff2");font-display:swap;font-weight:100 800;font-style:normal}@font-face{font-family:mono Fallback;src:local(Arial);ascent-override:77.57%;descent-override:22.82%;line-gap-override:0.0%;size-adjust:131.49%}.mono_3a036e3-module__tWpFlG__className{font-family:mono,mono Fallback,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-style:normal}.mono_3a036e3-module__tWpFlG__variable{--font-mono:"mono", "mono Fallback", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}
:root{--bg:#fff;--surface:#f9fbfb;--surface-2:#f1f3f3;--fg:#090b0c;--fg-muted:#56676a;--line:#e3e7e8;--brand:#005f78;--brand-fg:#f9fbfb;--link:#005f78;--cv-bg:#fff;--cv-dot:#b2b9ba;--cv-ruler:#f5f7f7;--cv-tick:#7c898c;--cut:#00008b;--stitch:#006400;--hole:#d2691e;--dim:#ff8c00;--accent-teal:#006f83;--accent-green:#287c42;--accent-amber:#b96a00;--accent-violet:#6b4cae;--accent-rose:#c03a51;--accent-blue:#2a61b1;--font:var(--font-mono), ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--radius:.625rem;--step--1:.8125rem;--step-0:.96875rem;--step-1:1.125rem;--step-2:clamp(1.45rem, 1.1rem + 1.4vw, 2rem);--step-3:clamp(2rem, 1.3rem + 3vw, 3.25rem);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@supports (color:lab(0% 0 0)){:root{--bg:lab(100% 0 0);--surface:lab(98.5129% -.644743 -.229931);--surface-2:lab(95.7289% -.644743 -.229919);--fg:lab(2.93655% -.435196 -.608262);--fg-muted:lab(42.154% -5.79177 -4.40937);--line:lab(91.3368% -1.38441 -1.08377);--brand:lab(36.5114% -17.1989 -21.6292);--brand-fg:lab(98.5129% -.644743 -.229931);--link:lab(36.5114% -17.1989 -21.6292);--cv-bg:lab(100% 0 0);--cv-dot:lab(74.5392% -2.2192 -1.7182);--cv-ruler:lab(97.1209% -.644743 -.229919);--cv-tick:lab(56.0299% -4.13898 -3.20721);--accent-teal:lab(42.5603% -22.6555 -18.9783);--accent-green:lab(45.828% -36.2628 23.944);--accent-amber:lab(53.0374% 28.7569 61.9798);--accent-violet:lab(39.7275% 30.6008 -48.516);--accent-rose:lab(45.9118% 55.0508 19.0668);--accent-blue:lab(40.9033% 3.95271 -48.7782)}}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#090b0c;--surface:#101315;--surface-2:#161b1d;--fg:#f9fbfb;--fg-muted:#9ca8ab;--line:#ffffff1a;--link:#67cfe3;--cv-bg:#050607;--cv-dot:#373f40;--cv-ruler:#0d1011;--cv-tick:#778385;--cut:#0ff;--stitch:#0f0;--hole:#fff;--dim:orange;--accent-teal:#67cfe3;--accent-green:#6ed889;--accent-amber:#f5b75b;--accent-violet:#bda8fc;--accent-rose:#fd8994;--accent-blue:#87bafd;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@supports (color:lab(0% 0 0)){:root:not([data-theme=light]){--bg:lab(2.93655% -.435196 -.608262);--surface:lab(5.74158% -1.07321 -1.37032);--surface-2:lab(9.32863% -1.87989 -2.1017);--fg:lab(98.5129% -.644743 -.229931);--fg-muted:lab(67.9697% -3.85058 -3.02824);--line:lab(100% 0 0/.1);--link:lab(77.5247% -27.2313 -19.7604);--cv-bg:lab(1.56624% -.283763 -.402638);--cv-dot:lab(25.8331% -2.75546 -2.13576);--cv-ruler:lab(4.45206% -.727817 -.993282);--cv-tick:lab(53.7026% -3.86429 -2.99423);--accent-teal:lab(77.5247% -27.2313 -19.7604);--accent-green:lab(78.7102% -45.0683 29.4705);--accent-amber:lab(79.0591% 16.321 54.7999);--accent-violet:lab(72.9818% 21.0464 -39.5097);--accent-rose:lab(70.6246% 45.4513 14.9741);--accent-blue:lab(74.0112% -4.29925 -38.6694)}}}:root[data-theme=dark]{--bg:#090b0c;--surface:#101315;--surface-2:#161b1d;--fg:#f9fbfb;--fg-muted:#9ca8ab;--line:#ffffff1a;--link:#67cfe3;--cv-bg:#050607;--cv-dot:#373f40;--cv-ruler:#0d1011;--cv-tick:#778385;--cut:#0ff;--stitch:#0f0;--hole:#fff;--dim:orange;--accent-teal:#67cfe3;--accent-green:#6ed889;--accent-amber:#f5b75b;--accent-violet:#bda8fc;--accent-rose:#fd8994;--accent-blue:#87bafd;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@supports (color:lab(0% 0 0)){:root[data-theme=dark]{--bg:lab(2.93655% -.435196 -.608262);--surface:lab(5.74158% -1.07321 -1.37032);--surface-2:lab(9.32863% -1.87989 -2.1017);--fg:lab(98.5129% -.644743 -.229931);--fg-muted:lab(67.9697% -3.85058 -3.02824);--line:lab(100% 0 0/.1);--link:lab(77.5247% -27.2313 -19.7604);--cv-bg:lab(1.56624% -.283763 -.402638);--cv-dot:lab(25.8331% -2.75546 -2.13576);--cv-ruler:lab(4.45206% -.727817 -.993282);--cv-tick:lab(53.7026% -3.86429 -2.99423);--accent-teal:lab(77.5247% -27.2313 -19.7604);--accent-green:lab(78.7102% -45.0683 29.4705);--accent-amber:lab(79.0591% 16.321 54.7999);--accent-violet:lab(72.9818% 21.0464 -39.5097);--accent-rose:lab(70.6246% 45.4513 14.9741);--accent-blue:lab(74.0112% -4.29925 -38.6694)}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--fg);font-family:var(--font);font-size:var(--step-0);font-feature-settings:"calt" 0;margin:0;line-height:1.7}img,svg{max-width:100%}a{color:var(--link);text-underline-offset:3px}a:focus-visible,.btn:focus-visible,summary:focus-visible{outline:2px solid var(--link);outline-offset:3px;border-radius:4px}h1,h2,h3{text-wrap:balance;margin:0}p{margin:0}.wrap{max-width:1160px;margin-inline:auto;padding-inline:20px}@media (max-width:600px){.wrap{padding-inline:16px}}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.keys{color:var(--fg-muted);white-space:nowrap;flex:none;align-items:center;gap:2px;font-size:.75rem;font-weight:400;display:inline-flex}.keys kbd{border:1px solid var(--line);background:var(--surface-2);min-width:1.7em;color:var(--fg);font-family:var(--font);text-align:center;border-radius:5px;padding:0 5px;font-size:.6875rem;font-weight:600;line-height:1.6}.skip{position:absolute;left:-9999px}.skip:focus{z-index:20;background:var(--bg);padding:8px 12px;top:16px;left:16px}.top{z-index:10;background:color-mix(in oklch, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);position:sticky;top:0}.top-row{align-items:center;gap:28px;padding-block:10px;display:flex}.brand{color:var(--fg);letter-spacing:-.01em;flex:none;align-items:center;gap:10px;font-weight:700;text-decoration:none;display:flex}.nav{font-size:var(--step--1);gap:22px;display:flex}.nav a{color:var(--fg-muted);align-items:center;gap:6px;text-decoration:none;display:inline-flex}.nav a svg{color:var(--link);opacity:.85}.nav a:hover{color:var(--fg)}.nav a[aria-current]{color:var(--fg);background:color-mix(in oklch, var(--link) 13%, transparent);border-radius:999px;margin:-4px -10px;padding:4px 10px}.spacer{flex:1}.theme-toggle{border-radius:calc(var(--radius) * .8);border:1px solid var(--line);background:var(--surface);width:36px;height:36px;color:var(--fg-muted);cursor:pointer;flex:none;place-items:center;padding:0;display:grid}.theme-toggle:hover{color:var(--fg);background:var(--surface-2)}.theme-toggle:focus-visible{outline:2px solid var(--link);outline-offset:3px}.theme-toggle .to-light,:root[data-theme=dark] .theme-toggle .to-dark{display:none}:root[data-theme=dark] .theme-toggle .to-light{display:block}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .theme-toggle .to-dark{display:none}:root:not([data-theme=light]) .theme-toggle .to-light{display:block}}.menu{display:none;position:relative}.menu summary{cursor:pointer;font-size:var(--step--1);border:1px solid var(--line);border-radius:6px;align-items:center;gap:6px;padding:8px 10px;list-style:none;display:inline-flex}.menu summary::-webkit-details-marker{display:none}.menu nav{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;min-width:12rem;padding:6px;display:flex;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 16px 40px -20px #0c181d73;box-shadow:0 16px 40px -20px lab(7.31123% -4.01193 -5.12956/.45)}.menu nav a{color:var(--fg);border-radius:6px;align-items:center;gap:10px;padding:8px 10px;text-decoration:none;display:flex}.menu nav a:hover{background:var(--surface-2)}.menu nav a[aria-current]{background:color-mix(in oklch, var(--link) 13%, transparent)}.menu nav a svg{color:var(--link)}.brand svg{flex:none}.open-short{display:none}@media (max-width:360px){.brand-name{display:none}}@media (max-width:480px){.top-row{gap:8px}.top-row .btn-primary .glyph,.menu-text,.open-long{display:none}.open-short{display:inline}}@media (max-width:860px){.nav{display:none}.menu{display:block}.top-row{gap:12px}}.btn{font:inherit;font-size:var(--step--1);border-radius:calc(var(--radius) * .8);white-space:nowrap;border:1px solid #0000;align-items:center;gap:8px;padding:9px 16px;font-weight:600;text-decoration:none;display:inline-flex}.btn-primary{background:var(--brand);color:var(--brand-fg)}.btn-primary:hover{background:color-mix(in oklch, var(--brand) 88%, black)}.btn-ghost{border-color:var(--line);color:var(--fg);background:var(--surface)}.btn-ghost:hover{background:var(--surface-2)}.btn-lg{font-size:var(--step-0);padding:12px 20px}.btn-light{background:var(--brand-fg);color:var(--brand)}.btn-light:hover{background:#fff;background:lab(100% 0 0)}.btn-outline-light{color:var(--brand-fg);border-color:#ffffff73;border-color:lab(100% 0 0/.45)}.btn-outline-light:hover{background:#ffffff1a;background:lab(100% 0 0/.1)}.actions{flex-wrap:wrap;gap:12px;margin-top:30px;display:flex}.label{text-transform:uppercase;letter-spacing:.1em;color:var(--fg-muted);font-size:.75rem;font-weight:600}.eyebrow{text-transform:uppercase;letter-spacing:.1em;color:var(--link);background:color-mix(in oklch, var(--brand) 9%, transparent);border:1px solid color-mix(in oklch, var(--brand) 22%, transparent);border-radius:999px;align-self:flex-start;align-items:center;gap:8px;padding:4px 12px;font-size:.75rem;font-weight:600;display:inline-flex}.intro.centred{text-align:center;flex-direction:column;align-items:center;gap:14px;max-width:46rem;margin-inline:auto;display:flex}.intro.centred .eyebrow{align-self:center}.intro.centred p{color:var(--fg-muted);max-width:60ch}.intro h2{font-size:var(--step-2);letter-spacing:-.025em;font-weight:700;line-height:1.2}.glyph{flex:none}.tile{color:var(--a,var(--link));background:color-mix(in oklch, var(--a,var(--link)) 13%, transparent);border:1px solid color-mix(in oklch, var(--a,var(--link)) 24%, transparent);flex:none;place-items:center;display:grid}.tile-sm{border-radius:9px;width:34px;height:34px}.tile-md{border-radius:12px;width:46px;height:46px}.tile-lg{border-radius:15px;width:56px;height:56px}.accent-teal{--a:var(--accent-teal)}.accent-green{--a:var(--accent-green)}.accent-amber{--a:var(--accent-amber)}.accent-violet{--a:var(--accent-violet)}.accent-rose{--a:var(--accent-rose)}.accent-blue{--a:var(--accent-blue)}.bento{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.bento-card{border:1px solid color-mix(in oklch, var(--a) 28%, var(--line));background:var(--surface);color:var(--fg);border-radius:16px;flex-direction:column;gap:10px;padding:24px;text-decoration:none;transition:border-color .15s,transform .15s,box-shadow .15s;display:flex;position:relative;overflow:hidden}.bento-card:hover{border-color:color-mix(in oklch, var(--a) 60%, var(--line));box-shadow:0 20px 40px -26px color-mix(in oklch, var(--a) 70%, transparent);transform:translateY(-2px)}.bento-card h3{font-size:var(--step-1);margin-top:6px;font-weight:700;line-height:1.35}.bento-card p{color:var(--fg-muted)}.bento-card .more{color:var(--a);font-size:var(--step--1);align-items:center;gap:6px;margin-top:auto;padding-top:6px;font-weight:600;display:inline-flex}.b-lead{background:radial-gradient(90% 60% at 100% 0%, color-mix(in oklch, var(--a) 12%, transparent), transparent 70%), var(--surface);grid-row:span 2}.b-lead h3{font-size:var(--step-2);letter-spacing:-.02em}.b-wide{grid-column:1/-1;grid-template-columns:auto minmax(0,.9fr) minmax(0,1.4fr) auto;align-items:center;gap:24px;display:grid}.b-wide h3,.b-wide .more{margin:0;padding:0}.stitch-piece{border:1px solid var(--line);background:var(--cv-bg);border-radius:12px;width:100%;height:auto;margin-top:auto;display:block}.b-lead .more{margin-top:4px}.sc-cut,.sc-stitch{fill:none;stroke-linecap:round}.sc-cut{stroke:var(--cut);stroke-width:1.8px;stroke-opacity:.85}.sc-stitch{stroke:var(--stitch);stroke-width:1.1px;stroke-opacity:.75}.sc-hole{stroke:var(--hole);stroke-width:1.8px;stroke-linecap:round}@media (max-width:960px){.bento{grid-template-columns:repeat(2,minmax(0,1fr))}.b-lead{grid-area:auto/1/auto/-1}.b-wide{grid-template-columns:auto minmax(0,1fr)}.b-wide p,.b-wide .more{grid-column:1/-1}}@media (max-width:600px){.bento{grid-template-columns:minmax(0,1fr)}}.also-row{font-size:var(--step--1);color:var(--fg-muted);flex-wrap:wrap;align-items:center;gap:8px 10px;display:flex}.chip{border:1px solid var(--line);background:var(--bg);color:var(--fg);border-radius:999px;align-items:center;gap:7px;padding:6px 13px;text-decoration:none;display:inline-flex}.chip svg{color:var(--link)}.chip:hover{border-color:var(--brand)}.chip-strong{background:var(--brand);border-color:var(--brand);color:var(--brand-fg);font-weight:600}.chip-strong svg{color:inherit}.hero{background:radial-gradient(55% 70% at 88% 8%, color-mix(in oklch, var(--brand) 18%, transparent), transparent 70%), var(--bg);position:relative;overflow:hidden}.hero:before{content:"";background-image:radial-gradient(var(--cv-dot) 1px, transparent 1.3px);opacity:.75;pointer-events:none;background-size:22px 22px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 10%,#0000 90%);mask-image:linear-gradient(#000 10%,#0000 90%)}.hero .wrap{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);align-items:center;gap:56px;padding-block:80px 88px;display:grid;position:relative}.hero h1{font-size:var(--step-3);letter-spacing:-.035em;margin-top:18px;font-weight:800;line-height:1.08}.hero .lede{color:var(--fg-muted);max-width:52ch;font-size:var(--step-1);margin-top:22px;line-height:1.65}.chips{flex-wrap:wrap;gap:8px;margin:28px 0 0;padding:0;list-style:none;display:flex}.chips li{border:1px solid var(--line);background:color-mix(in oklch, var(--bg) 80%, transparent);font-size:var(--step--1);border-radius:999px;align-items:center;gap:7px;padding:5px 12px;display:inline-flex}.chips svg{color:var(--link)}@media (max-width:900px){.hero .wrap{grid-template-columns:minmax(0,1fr);gap:40px;padding-block:48px 56px}}.hero-figure{margin:0}.app{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow:hidden;box-shadow:0 24px 60px -30px #0c181d73;box-shadow:0 24px 60px -30px lab(7.31123% -4.01193 -5.12956/.45)}.app-bar{border-bottom:1px solid var(--line);align-items:center;gap:14px;padding:7px 12px;font-size:.75rem;display:flex}.app-bar svg{flex:none}.app-bar .menus{color:var(--fg-muted);gap:12px;min-width:0;display:flex;overflow:hidden}.app-bar .doc{color:var(--fg-muted);white-space:nowrap;margin-left:auto}.app-body{grid-template-columns:30px minmax(0,1fr);display:grid}.rail{border-right:1px solid var(--line);flex-direction:column;gap:4px;padding:6px 4px;display:flex}.rail span{height:22px;color:var(--fg-muted);border-radius:5px;place-items:center;font-size:.6875rem;display:grid}.rail span.on{background:var(--brand);color:var(--brand-fg)}.canvas{background:var(--cv-bg);min-width:0}.canvas svg{width:100%;height:auto;display:block}.cv-dot{fill:var(--cv-dot)}.cv-ruler{fill:var(--cv-ruler)}.cv-tick{stroke:var(--cv-tick);stroke-width:1px;vector-effect:non-scaling-stroke}.cv-num{fill:var(--cv-tick);font-family:var(--font);font-size:2.1px}.cv-cut,.cv-stitch,.cv-dim,.cv-hole{fill:none;vector-effect:non-scaling-stroke;stroke-linejoin:round;stroke-linecap:round}.cv-cut{stroke:var(--cut);stroke-width:1.5px;stroke-opacity:.85}.cv-stitch{stroke:var(--stitch);stroke-width:1.5px;stroke-opacity:.8}.cv-dim{stroke:var(--dim);stroke-width:1.1px;stroke-opacity:.9}.cv-dimtext{fill:var(--dim);font-family:var(--font);font-size:3px}.cv-hole{stroke:var(--hole);stroke-width:1px;stroke-opacity:.9}.status{border-top:1px solid var(--line);color:var(--fg-muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:14px;padding:6px 12px;font-size:.6875rem;display:flex}.status span+span:not(.msg){border-left:1px solid var(--line);padding-left:14px}.status .msg{color:var(--fg);margin-left:auto}.caption{color:var(--fg-muted);margin-top:10px;font-size:.75rem}section.block{border-top:1px solid var(--line)}section.block>.wrap{padding-block:84px}.split{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:56px;display:grid}.split .intro{flex-direction:column;align-self:start;gap:16px;display:flex}.split h2,.stack h2{font-size:var(--step-2);letter-spacing:-.025em;font-weight:700;line-height:1.2}.split .intro p,.stack .intro p{color:var(--fg-muted);max-width:60ch}.stack{flex-direction:column;gap:40px;display:flex}.stack .intro{flex-direction:column;gap:14px;display:flex}@media (max-width:900px){.split{grid-template-columns:minmax(0,1fr);gap:32px}section.block>.wrap{padding-block:60px}}.values{background:var(--surface);border-block:1px solid var(--line)}.values-row{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.value{align-items:flex-start;gap:18px;padding:40px 28px;display:flex}.value:first-child{padding-left:0}.value:last-child{padding-right:0}.value+.value{border-left:1px solid var(--line)}.value h3{font-size:var(--step-1);letter-spacing:-.01em;margin-top:4px;font-weight:700}.value p:not(.label){color:var(--fg-muted);margin-top:6px}@media (max-width:900px){.values-row{grid-template-columns:minmax(0,1fr)}.value,.value:first-child,.value:last-child{padding:28px 0}.value+.value{border-left:0;border-top:1px solid var(--line)}}.timeline{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;margin:56px 0 0;padding:0;list-style:none;display:grid;position:relative}.timeline:before{content:"";background:repeating-linear-gradient(90deg, var(--link) 0 10px, transparent 10px 18px);opacity:.6;height:2px;position:absolute;top:36px;left:16.6%;right:16.6%}.timeline li{text-align:center;flex-direction:column;align-items:center;gap:8px;display:flex;position:relative}.node{border:2px solid var(--brand);background:var(--bg);width:72px;height:72px;color:var(--link);box-shadow:0 0 0 10px var(--bg);border-radius:50%;place-items:center;margin-bottom:10px;display:grid;position:relative}.num{background:var(--brand);width:24px;height:24px;color:var(--brand-fg);border-radius:50%;place-items:center;font-size:.75rem;font-weight:700;display:grid;position:absolute;top:-4px;right:-6px}.timeline h3{font-size:var(--step-1);font-weight:700}.timeline p{color:var(--fg-muted);max-width:34ch}@media (max-width:860px){.timeline{grid-template-columns:minmax(0,1fr);gap:36px}.timeline:before{background:repeating-linear-gradient(180deg, var(--link) 0 10px, transparent 10px 18px);width:2px;height:auto;inset:36px auto 36px 36px}.timeline li{text-align:left;grid-template-columns:72px minmax(0,1fr);align-items:start;column-gap:20px;display:grid}.timeline .node{grid-row:span 2;margin:0}.timeline h3{margin-top:10px}}.files>.wrap{padding-block:0 84px}.files-panel{border:1px solid color-mix(in oklch, var(--brand) 25%, transparent);background:linear-gradient(135deg, color-mix(in oklch, var(--brand) 14%, var(--bg)), color-mix(in oklch, var(--brand) 4%, var(--bg)) 70%);border-radius:22px;padding:56px;position:relative;overflow:hidden}.files-panel:before{content:"";border:1.5px dashed color-mix(in oklch, var(--link) 45%, transparent);pointer-events:none;border-radius:15px;position:absolute;inset:10px}.files-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:56px;display:grid;position:relative}.files-grid .intro{flex-direction:column;gap:16px;display:flex}.files-grid .intro>p{color:var(--fg-muted);max-width:56ch}.folder{border:1px solid var(--line);background:var(--bg);border-radius:14px;overflow:hidden;transform:rotate(-1.2deg);box-shadow:0 30px 60px -32px #001a258c;box-shadow:0 30px 60px -32px lab(7.37614% -8.15041 -12.503/.55)}.folder-bar{border-bottom:1px solid var(--line);font-size:var(--step--1);align-items:center;gap:10px;padding:10px 14px;display:flex}.folder-bar .tab{background:var(--brand);border-radius:2px 3px 3px;flex:none;width:18px;height:13px;position:relative}.folder-bar .tab:before{content:"";background:var(--brand);border-radius:2px 2px 0 0;width:8px;height:4px;position:absolute;top:-3px;left:0}.folder-bar .where{color:var(--fg-muted);white-space:nowrap;align-items:center;gap:5px;margin-left:auto;font-size:.75rem;display:inline-flex}.folder ul{margin:0;padding:0;list-style:none}.folder li{border-bottom:1px solid var(--line);font-size:var(--step--1);grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:12px;padding:11px 14px;display:grid}.folder li:last-child{border-bottom:0}.folder li .when{color:var(--fg-muted);white-space:nowrap;font-size:.75rem}.folder-foot{border-top:1px solid var(--line);color:var(--fg-muted);background:var(--surface);padding:10px 14px;font-size:.75rem}.points{flex-direction:column;gap:16px;margin:10px 0 0;padding:0;list-style:none;display:flex}.points li{align-items:flex-start;gap:14px;display:flex}.points h3{font-size:var(--step-0);font-weight:700}.points p{color:var(--fg-muted);font-size:var(--step--1)}@media (max-width:860px){.files-panel{padding:32px 22px}.files-grid{grid-template-columns:minmax(0,1fr);gap:36px}.folder{transform:none}}.feat{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.feat .f{border:1px solid color-mix(in oklch, var(--a) 28%, var(--line));background:var(--surface);color:var(--fg);border-radius:16px;flex-direction:column;gap:10px;padding:24px;text-decoration:none;transition:border-color .15s,transform .15s,box-shadow .15s;display:flex;position:relative;overflow:hidden}.feat .f:hover{border-color:color-mix(in oklch, var(--a) 60%, var(--line));box-shadow:0 20px 40px -26px color-mix(in oklch, var(--a) 70%, transparent);transform:translateY(-2px)}.feat .f h3{font-size:var(--step-1);margin-top:6px;font-weight:700;line-height:1.35}.feat .f p{color:var(--fg-muted);flex:1}.feat .more{color:var(--a);font-size:var(--step--1);align-items:center;gap:6px;font-weight:600;display:inline-flex}@media (max-width:900px){.feat{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:600px){.feat{grid-template-columns:minmax(0,1fr)}}.also{color:var(--fg-muted);font-size:var(--step--1)}.also a{font-weight:600}.versus-band{background:var(--surface)}.versus-band .intro{margin-bottom:40px}.versus-scroll{border:1px solid var(--line);background:var(--bg);border-radius:16px;max-width:940px;margin-inline:auto;overflow-x:auto}.versus{border-collapse:collapse;width:100%;min-width:36rem}.versus th,.versus td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:16px 18px}.versus tr:last-child th,.versus tr:last-child td{border-bottom:0}.versus thead th{text-transform:uppercase;letter-spacing:.08em;color:var(--fg-muted);background:var(--surface);font-size:.75rem;font-weight:600}.versus thead th.us{background:var(--brand);color:var(--brand-fg)}.versus tbody th{width:12rem;font-weight:600;font-size:var(--step--1)}.versus tbody th .glyph{color:var(--link)}.versus td{color:var(--fg-muted);font-size:var(--step--1)}.versus td.us{color:var(--fg);background:color-mix(in oklch, var(--brand) 8%, var(--bg));font-weight:600}.cell{align-items:flex-start;gap:10px;display:flex}.mark{border-radius:50%;flex:none;place-items:center;width:20px;height:20px;margin-top:2px;display:grid}.mark.no{color:var(--accent-rose);background:color-mix(in oklch, var(--accent-rose) 14%, transparent)}.mark.yes{color:var(--brand-fg);background:var(--brand)}.faq{border-top:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));gap:0 48px;display:grid}.faq>div{border-bottom:1px solid var(--line);flex-direction:column;gap:8px;padding-block:22px;display:flex}.faq h3{font-size:var(--step-0);font-weight:700}.faq p{color:var(--fg-muted)}@media (max-width:760px){.faq{grid-template-columns:minmax(0,1fr)}}.faq-split{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:start;gap:56px;display:grid}.faq-split .intro{flex-direction:column;align-items:flex-start;gap:16px;display:flex;position:sticky;top:96px}.faq-split .intro p{color:var(--fg-muted);max-width:44ch}.faq-list{flex-direction:column;gap:10px;display:flex}.faq-list details{border:1px solid var(--line);background:var(--surface);border-radius:14px}.faq-list details[open]{background:var(--bg);border-color:color-mix(in oklch, var(--brand) 45%, var(--line));box-shadow:0 16px 36px -28px #001a2580;box-shadow:0 16px 36px -28px lab(7.37614% -8.15041 -12.503/.5)}.faq-list summary{cursor:pointer;justify-content:space-between;align-items:center;gap:16px;padding:16px 18px;list-style:none;display:flex}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary h3{font-size:var(--step-0);font-weight:700}.faq-list details>p{color:var(--fg-muted);padding:0 18px 18px}.toggle{background:var(--surface-2);width:28px;height:28px;color:var(--link);border-radius:50%;flex:none;place-items:center;transition:transform .2s;display:grid}.faq-list details[open] .toggle{background:var(--brand);color:var(--brand-fg);transform:rotate(45deg)}@media (max-width:900px){.faq-split{grid-template-columns:minmax(0,1fr);gap:32px}.faq-split .intro{position:static}}.closing{color:var(--brand-fg);background:radial-gradient(50% 120% at 100% 0%, #ffffff24, transparent 60%), var(--brand);position:relative;overflow:hidden}@supports (color:lab(0% 0 0)){.closing{background:radial-gradient(50% 120% at 100% 0%, lab(100% 0 0/.14), transparent 60%), var(--brand)}}.closing:before{content:"";pointer-events:none;border:2px dashed #ffffff59;border:2px dashed lab(100% 0 0/.35);border-radius:18px;position:absolute;inset:12px}.closing .wrap{text-align:center;flex-direction:column;align-items:center;gap:18px;padding-block:92px;display:flex;position:relative}.closing h2{font-size:var(--step-3);letter-spacing:-.035em;font-weight:800;line-height:1.1}.closing p{color:#ffffffd1;color:lab(100% 0 0/.82);max-width:56ch}.closing .eyebrow{color:var(--brand-fg);background:#ffffff1f;background:lab(100% 0 0/.12);border-color:#ffffff47;border-color:lab(100% 0 0/.28);align-self:center}.closing .actions{justify-content:center;margin-top:6px}.crumbs ol{font-size:var(--step--1);color:var(--fg-muted);flex-wrap:wrap;gap:4px 8px;margin:0;padding:0;list-style:none;display:flex}.crumbs li+li:before{content:"/";color:var(--fg-muted);margin-right:8px}.crumbs a{color:var(--fg-muted)}.page-band{border-bottom:1px solid var(--line);background:radial-gradient(50% 90% at 92% 0%, color-mix(in oklch, var(--brand) 12%, transparent), transparent 70%), var(--surface);position:relative}.page-band:before{content:"";background-image:radial-gradient(var(--cv-dot) 1px, transparent 1.3px);opacity:.5;pointer-events:none;background-size:22px 22px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(90deg,#0000 30%,#000);mask-image:linear-gradient(90deg,#0000 30%,#000)}.page-band .page-head{padding-block:40px 44px;position:relative}.kicker{align-items:center;gap:12px;margin-top:6px;display:flex}.page-head{flex-direction:column;gap:16px;padding-block:48px 8px;display:flex}.page-head h1{font-size:var(--step-3);letter-spacing:-.03em;max-width:24ch;font-weight:800;line-height:1.1}.page-head .lede{color:var(--fg-muted);font-size:var(--step-1);max-width:62ch}.page-body{padding-block:32px 72px}.with-toc{grid-template-columns:minmax(0,1fr) 15rem;align-items:start;gap:56px;display:grid}.toc{font-size:var(--step--1);flex-direction:column;gap:6px;display:flex;position:sticky;top:84px}.toc a{color:var(--fg-muted);text-decoration:none}.toc a:hover{color:var(--fg)}@media (max-width:960px){.with-toc{grid-template-columns:minmax(0,1fr)}.toc{order:-1;position:static}}.meta{font-size:var(--step--1);color:var(--fg-muted)}.prose{min-width:0;max-width:72ch}.prose>*+*{margin-top:1.1em}.prose h2{font-size:var(--step-2);letter-spacing:-.02em;margin-top:2.2em;scroll-margin-top:84px;line-height:1.25}.prose h3{font-size:var(--step-1);margin-top:1.8em;scroll-margin-top:84px}.prose h4{font-size:var(--step-0);margin-top:1.5em;scroll-margin-top:84px}.prose p,.prose li{color:var(--fg)}.prose ul,.prose ol{padding-left:1.4em}.prose li+li{margin-top:.35em}.prose code,.prose kbd{font-family:var(--font);background:var(--surface-2);border:1px solid var(--line);border-radius:4px;padding:1px 5px;font-size:.85em}.prose pre{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;overflow-x:auto}.prose pre code{background:0 0;border:0;padding:0}.prose table{border-collapse:collapse;max-width:100%;font-size:var(--step--1);display:block;overflow-x:auto}.prose th,.prose td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:9px 12px}.prose th{background:var(--surface);white-space:nowrap;font-weight:600}.prose blockquote{border:1px solid color-mix(in oklch, var(--brand) 25%, var(--line));border-radius:var(--radius);background:color-mix(in oklch, var(--brand) 5%, transparent);color:var(--fg-muted);margin-inline:0;padding:12px 16px}.prose hr{border:0;border-top:1px solid var(--line);margin-block:2em}.prose img{border-radius:var(--radius);border:1px solid var(--line)}@media (min-width:1000px){.hub-four .feat{grid-template-columns:repeat(4,minmax(0,1fr))}}.feature-figure{max-width:560px;margin:0 0 36px}.feature-figure .canvas{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.fig-page{fill:color-mix(in oklch, var(--link) 5%, transparent);stroke:var(--cv-tick);stroke-dasharray:4 3;vector-effect:non-scaling-stroke}.fig-label{fill:var(--cv-tick);font-family:var(--font);font-size:12px}.read-next{border-top:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 48px;max-width:72ch;margin-top:56px;padding-top:32px;display:grid}.read-next h2{font-size:var(--step-1);font-weight:700}.read-next ul{flex-direction:column;gap:14px;margin:14px 0 0;padding:0;list-style:none;display:flex}.read-next li{font-size:var(--step--1);flex-direction:column;display:flex}.read-next a{font-weight:600}.read-next li span{color:var(--fg-muted)}@media (max-width:760px){.read-next{grid-template-columns:minmax(0,1fr)}}.related,.hub-notes{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 40px;display:grid}.hub-notes{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:48px}.related ul{flex-direction:column;gap:8px;margin:12px 0 0;padding:0;list-style:none;display:flex}.hub-notes p{color:var(--fg-muted);margin-top:10px}.faq-jump{font-size:var(--step--1);flex-wrap:wrap;gap:8px 20px;padding-block:8px 40px;display:flex}section.faq-group>.wrap{padding-block:56px}.faq-group,.faq-group .faq>div{scroll-margin-top:64px}.releases{min-width:0;max-width:80ch}.release{flex-direction:column;gap:16px;scroll-margin-top:84px;display:flex}.release+.release{margin-top:72px}.release-head{flex-direction:column;gap:10px;margin-bottom:8px;display:flex}.release-head h2{font-size:var(--step-2);letter-spacing:-.025em;line-height:1.2}.release-date{color:var(--fg-muted);font-size:var(--step--1);flex-wrap:wrap;align-items:center;gap:8px 12px;font-weight:600;display:flex}.release-date>.glyph{color:var(--link)}.release-date .eyebrow{align-self:center}.release-summary{color:var(--fg-muted);max-width:68ch}.release-section{border:1px solid color-mix(in oklch, var(--a) 24%, var(--line));background:var(--surface);border-radius:16px;flex-direction:column;gap:14px;padding:22px 24px;scroll-margin-top:84px;display:flex}.release-section h3{font-size:var(--step-1);align-items:center;gap:12px;line-height:1.35;display:flex}.release-section ul{margin:0;padding-left:1.3em}.release-section li+li{margin-top:.5em}.release-section li::marker{color:var(--a)}.release-toc .toc-release{color:var(--fg);flex-direction:column;font-weight:600;display:flex}.release-toc .toc-release .meta{font-weight:400}.release-toc .toc-sub{padding-left:12px}@media (max-width:960px){.release-toc{display:none}}@media (max-width:600px){.release-section{padding:18px 16px}}@media (max-width:760px){.related,.hub-notes{grid-template-columns:minmax(0,1fr)}}.foot-wrap{border-top:1px solid var(--line)}.foot{font-size:var(--step--1);color:var(--fg-muted);grid-template-columns:minmax(0,1fr) minmax(0,2.2fr);align-items:start;gap:32px;padding-block:40px;display:grid}.foot-brand{flex-direction:column;gap:10px;display:flex}.foot-cols{grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;display:grid}.foot-cols>div{flex-direction:column;gap:8px;display:flex}.foot-cols .label{align-items:center;gap:6px;display:inline-flex}.foot-cols .label svg{color:var(--link)}.foot-cols a{color:var(--fg-muted);text-decoration:none}.foot-cols a:hover{color:var(--fg);text-decoration:underline}@media (max-width:860px){.foot{grid-template-columns:minmax(0,1fr)}.foot-cols{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
