@layer legacy;@layer settings{:root{--ff:"Space Grotesk",system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans, sans-serif;--ff-mono:"Space Mono", "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;--fw-light:300;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--fs-2xs:1rem;--fs-s:1.0625rem;--fs:1.1875rem;--fs-m:1.3125rem;--fs-l:1.5rem;--fs-xl:1.875rem;--fs-2xl:2.5rem;--fs-3xl:4rem;--lh-s:1.2;--lh:1.5;--lh-m:1.6;--lh-l:1.7;--space-2xs:.25rem;--space-s:.5rem;--space:1rem;--space-m:1.5rem;--space-l:2rem;--space-xl:3rem;--space-2xl:4rem;--br-s:4px;--br-m:8px;--br-l:16px;--br-xl:24px;--br-round:9999px;--border-s:1px;--border-m:2px;--border-l:3px;--max-width:1280px;--site-header-offset:calc(env(safe-area-inset-top,0px) + 4.5rem);--z-base:1;--z-nav:100;--z-popover:500;--z-modal:1000;--z-toast:2000;--transition-s:.25s ease;--transition-m:.4s ease;--transition-l:.7s ease;--c-indigo-700:#4137c8;--c-violet-500:#6065f0;--c-violet-300:#a1b2fc;--c-violet-muted:#868eea;--c-violet-muted-hover:#9da4f1;--c-indigo-cta-dark:#655ec9;--c-indigo-cta-hover-dark:#847fd2;--c-berry-500:#f14b9e;--c-berry-300:#ff5cc3;--c-berry-400:#f27db8;--c-berry-bright-light:#d60088;--c-berry-bright-dark:#ff52bf;--c-berry-soft-dark:#e236a3;--c-success:#10b77f;--c-warning:#f59b0a;--c-error:#ef4343;--c-ink-900:#0f1729;--c-slate-700:#324053;--c-slate-300:#c8d3df;--c-paper:#fafaff;--c-white:#fff;--c-slate-950:#0c1322;--c-slate-900:#141a29;--c-slate-850:#1f2533;--c-slate-800:#222835;--c-slate-750:#2f3541;--c-slate-700-dark:#3b4254;--c-mist:#e8e9ee;--c-mist-bright:#f3f4f7;--c-mist-muted:#a5aab6;--c-code-bg-light:#f0f1ff;--c-background:light-dark(var(--c-paper),var(--c-slate-950));--c-surface:light-dark(var(--c-white),var(--c-slate-900));--c-surface-alt:light-dark(#f3f3fc,var(--c-slate-850));--c-text:light-dark(var(--c-ink-900),var(--c-mist));--c-text-muted:light-dark(var(--c-slate-700),var(--c-mist-muted));--c-text-inverse:light-dark(var(--c-white),var(--c-slate-950));--c-heading:light-dark(var(--c-ink-900),var(--c-mist-bright));--c-border:light-dark(var(--c-slate-300),var(--c-slate-750));--c-border-strong:light-dark(var(--c-slate-700),var(--c-slate-700-dark));--c-link:light-dark(var(--c-indigo-700),var(--c-violet-muted));--c-link-hover:light-dark(var(--c-violet-500),var(--c-violet-muted-hover));--c-accent:light-dark(#f5009b,#ff66c7);--c-eyebrow:light-dark(#d60088,#ff52bf);--c-accent-soft:light-dark(var(--c-berry-300),var(--c-berry-soft-dark));--c-on-accent-soft:light-dark(var(--c-ink-900),var(--c-ink-900));--c-cta-bg:light-dark(var(--c-indigo-700),var(--c-indigo-cta-dark));--c-cta-bg-hover:light-dark(var(--c-violet-500),var(--c-indigo-cta-hover-dark));--c-cta-text:light-dark(var(--c-white),var(--c-mist-bright));--c-code-bg:light-dark(var(--c-code-bg-light),var(--c-slate-800));--c-code-text:light-dark(var(--c-indigo-700),var(--c-violet-muted));--outline-offset:2px;--focus-ring:light-dark(0 0 0 3px #6065f033,0 0 0 3px #868eea40);--shadow-sm:light-dark(0 2px 8px #0f17290f,0 2px 8px #0003);--shadow-md:light-dark(0 8px 24px #0f172914,0 8px 24px #00000047);--shadow-lg:light-dark(0 16px 48px #0f17291f,0 12px 32px #00000061)}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:300 700;src:url(/fonts/space-grotesk-variable.woff2)format("woff2-variations")}@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/fonts/space-mono-400.woff2)format("woff2")}@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/fonts/space-mono-700.woff2)format("woff2")}}@layer base{*,:before,:after{box-sizing:border-box}html{color-scheme:light dark;-webkit-text-size-adjust:100%;text-rendering:optimizelegibility;scroll-behavior:smooth;font-size:100%}body{background:var(--c-background);min-height:100vh;color:var(--c-text);font-family:var(--ff);font-size:var(--fs);font-weight:var(--fw-regular);line-height:var(--lh);margin:0}img,svg,video{max-width:100%;height:auto;display:block}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--c-link);outline-offset:var(--outline-offset);box-shadow:var(--focus-ring)}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:var(--space);color:var(--c-heading);font-weight:var(--fw-semibold);line-height:var(--lh-s);letter-spacing:-.01em;text-wrap:balance}h1{font-size:max(var(--fs-2xl), min(4vw, var(--fs-3xl)))}h2{font-size:var(--fs-2xl)}h3{font-size:var(--fs-xl)}h4{font-size:var(--fs-l)}h5,h6{font-size:var(--fs-m)}p,ul:not([class]),ol:not([class]),dl:not([class]),blockquote,figure{margin-top:0;margin-bottom:var(--space)}p,li:not([class]),dd:not([class]){text-wrap:pretty;max-width:70ch}ul:not([class]),ol:not([class]){padding-left:var(--space-m)}li:not([class])+li:not([class]),li:not([class])>ul:not([class]),li:not([class])>ol:not([class]){margin-top:var(--space-2xs)}a{color:var(--c-link);text-underline-offset:.2em;transition:color var(--transition-s), text-decoration-color var(--transition-s);text-decoration-thickness:1px}a:hover{color:var(--c-link-hover)}strong,b{font-weight:var(--fw-semibold);color:var(--c-heading)}hr{margin-top:var(--space-xl);margin-bottom:var(--space-xl);border:0;border-top:var(--border-s) solid var(--c-border)}::-moz-selection{background:var(--c-accent-soft);color:var(--c-on-accent-soft)}code,kbd,samp{font-family:var(--ff-mono);color:var(--c-code-text);font-size:.95em}:not(pre)>code{border-radius:var(--br-s);background:var(--c-code-bg);padding:.15em .4em}pre{margin-top:var(--space);margin-bottom:var(--space);padding:var(--space-m);border-radius:var(--br-m);background:var(--c-code-bg);color:var(--c-text);font-family:var(--ff-mono);font-size:var(--fs-s);line-height:var(--lh);overflow-x:auto}pre code{color:inherit;font-size:inherit;background:0 0;padding:0}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:var(--c-text-muted);font-style:italic}.token.punctuation{color:var(--c-text-muted)}.token.property,.token.tag,.token.constant,.token.symbol,.token.deleted,.token.selector,.token.attr-name{color:var(--c-accent)}.token.boolean,.token.number,.token.atrule,.token.keyword{color:var(--c-link)}.token.string,.token.char,.token.attr-value,.token.builtin,.token.inserted{color:var(--c-success)}.token.operator,.token.entity,.token.url,.token.variable,.token.function,.token.class-name{color:var(--c-violet-500)}.token.regex,.token.important{color:var(--c-warning)}.token.important,.token.bold{font-weight:var(--fw-bold)}.token.italic{font-style:italic}}@layer utilities{.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}}@layer layout{.page-shell{width:min(100% - var(--space-l), var(--max-width));margin-left:auto;margin-right:auto}main.page-shell{padding-top:var(--space-2xl);padding-bottom:var(--space-2xl)}.docs-layout{grid-gap:var(--space-xl);gap:var(--space-xl);min-width:0;display:grid}.docs-layout>.docs-content{min-width:0}}@layer components{.site-header{z-index:var(--z-nav);background:var(--c-surface);border-bottom:var(--border-s) solid var(--c-border);position:sticky;top:0}.site-header>.page-shell{padding-top:var(--space-s);padding-bottom:var(--space-s);justify-content:space-between;align-items:center;gap:var(--space-m);display:flex}.site-title{color:var(--c-heading);font-size:var(--fs-l);font-weight:var(--fw-bold);letter-spacing:-.02em;-webkit-text-decoration:none;text-decoration:none}.menu-toggle{border:var(--border-s) solid var(--c-border);border-radius:var(--br-s);width:2.75rem;height:2.75rem;color:var(--c-text);background:0 0;justify-content:center;align-items:center;padding:0;display:none;position:relative}.menu-toggle:before{content:"";background:currentColor;border-radius:1px;width:1rem;height:2px;position:absolute;top:50%;left:50%;translate:-50% -50%;box-shadow:0 -6px,0 6px}.site-nav .nav-list{align-items:center;gap:var(--space-2xs);margin:0;padding:0;list-style:none;display:flex}.site-nav .nav-list ul{margin:0;padding:0;list-style:none}.site-nav .nav-list a{padding:var(--space-s) var(--space);border-radius:var(--br-s);color:var(--c-text);font-size:var(--fs-s);font-weight:var(--fw-medium);-webkit-text-decoration:none;text-decoration:none;display:inline-block}.site-nav .nav-list a:hover{background:var(--c-surface-alt);color:var(--c-link)}.site-nav .nav-list a[aria-current=page],.site-nav .nav-list .is_current>a,.site-nav .nav-list .is_current>.row>a{color:var(--c-link);font-weight:var(--fw-semibold)}.site-nav .sub-toggle{border:var(--border-s) solid transparent;border-radius:var(--br-s);width:2.5rem;height:2.5rem;color:var(--c-text-muted);background:0 0;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:none;position:relative}.site-nav .sub-toggle:hover{color:var(--c-link);background:var(--c-surface-alt)}.site-nav .sub-toggle:after{content:"";width:.45rem;height:.45rem;transition:transform var(--transition-s);border:2px solid;border-width:0 2px 2px 0;position:absolute;top:42%;left:50%;transform:translate(-50%,-50%)rotate(45deg)}.eyebrow{margin:0 0 var(--space-s);color:#d60088;max-width:none;font-size:var(--fs-s);font-weight:var(--fw-semibold);letter-spacing:.08em;text-transform:uppercase}.site-hero{margin-bottom:var(--space-2xl)}.site-hero>h1{margin:0 0 var(--space-m);font-size:max(var(--fs-2xl), min(5vw, var(--fs-3xl)));line-height:var(--lh-s)}.site-hero>.intro{max-width:60ch;margin:0 0 var(--space-m);color:var(--c-text-muted);font-size:var(--fs-l);line-height:var(--lh-l)}.site-hero>.summary-badge{margin-bottom:var(--space);padding:var(--space-2xs) var(--space);background:var(--c-accent-soft);color:var(--c-on-accent-soft);border-radius:var(--br-round);font-size:var(--fs-2xs);font-weight:var(--fw-semibold);letter-spacing:.06em;text-transform:uppercase;display:inline-block}.site-hero>.summary-note{max-width:60ch;margin-top:var(--space);color:var(--c-text-muted);margin-bottom:0}.hero-actions{gap:var(--space);margin-top:var(--space-l);flex-wrap:wrap;display:flex}.hero-actions>a{padding:var(--space) var(--space-m);border:var(--border-s) solid transparent;border-radius:var(--br-s);font-weight:var(--fw-semibold);transition:background var(--transition-s), border-color var(--transition-s), color var(--transition-s), box-shadow var(--transition-s), transform var(--transition-s);justify-content:center;align-items:center;-webkit-text-decoration:none;text-decoration:none;display:inline-flex}.hero-actions>a:first-child{background:var(--c-cta-bg);color:var(--c-cta-text);border-color:var(--c-cta-bg)}.hero-actions>a:first-child:hover{background:var(--c-cta-bg-hover);border-color:var(--c-cta-bg-hover);box-shadow:var(--shadow-md);transform:translateY(-2px)}.hero-actions>a:first-child:focus-visible{background:var(--c-cta-bg-hover);border-color:var(--c-cta-bg-hover)}.hero-actions>a:not(:first-child){color:var(--c-link);border-color:var(--c-link);background:0 0}.hero-actions>a:not(:first-child):hover{background:var(--c-cta-bg);color:var(--c-cta-text);border-color:var(--c-cta-bg);box-shadow:var(--shadow-sm);transform:translateY(-2px)}.hero-actions>a:not(:first-child):focus-visible{background:var(--c-cta-bg);color:var(--c-cta-text);border-color:var(--c-cta-bg)}.content-block{margin-top:var(--space-2xl)}.content-block>h2{scroll-margin-block-start:var(--space-xl)}.content-block>h2~h2,.content-block>h3{margin-top:var(--space-l)}.content-block>p,.content-block>ul,.content-block>ol{line-height:var(--lh-l)}.content-block>p+.code-example,.content-block>ul+.code-example,.content-block>ol+.code-example,.content-block>p+.cli-command,.content-block>ul+.cli-command,.content-block>ol+.cli-command,.content-block>.code-example+p,.content-block>.code-example+ul,.content-block>.code-example+ol,.content-block>.cli-command+p,.content-block>.cli-command+ul,.content-block>.cli-command+ol,.content-block>.code-example+.cli-command{margin-top:var(--space-l)}.hub-grid{grid-gap:var(--space-m);gap:var(--space-m);margin-bottom:var(--space-l);grid-template-columns:repeat(auto-fill,minmax(min(100%,18rem),1fr));display:grid}.hub-card{background:var(--c-surface);border:var(--border-s) solid var(--c-border);border-radius:var(--br-m);transition:border-color var(--transition-s), box-shadow var(--transition-s);margin:0}.hub-card:hover,.hub-card:focus-within{border-color:var(--c-link);box-shadow:var(--shadow-sm)}.hub-card>.link,.hub-card>.stack{gap:var(--space-s);padding:var(--space-m);flex-direction:column;height:100%;display:flex}.hub-card>.link{color:inherit;-webkit-text-decoration:none;text-decoration:none}.hub-card>.title{color:var(--c-heading);font-size:var(--fs-m);font-weight:var(--fw-semibold);line-height:var(--lh-s);-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:var(--c-link);text-underline-offset:.2em;transition:color var(--transition-s), text-decoration-thickness var(--transition-s);margin:0;text-decoration-thickness:1px}.hub-card>.link:hover .title,.hub-card>.link:focus-visible .title{color:var(--c-link);text-decoration-thickness:3px}.hub-card>.body{gap:var(--space-s);color:var(--c-text-muted);font-size:var(--fs-s);line-height:var(--lh-l);flex-direction:column;display:flex}.hub-card>.body>p{max-width:none;margin:0}.hub-card .cta{color:var(--c-link);font-size:var(--fs-s);font-weight:var(--fw-semibold);text-underline-offset:.2em;transition:color var(--transition-s), text-decoration-thickness var(--transition-s);margin-top:auto;-webkit-text-decoration:underline 1px;text-decoration:underline 1px}.hub-card>.link:hover .cta,.hub-card>.link:focus-visible .cta{color:var(--c-link-hover);text-decoration-thickness:3px}.comparison-table-wrap{margin-top:var(--space-m);margin-bottom:var(--space-l);background:var(--c-surface);border:var(--border-s) solid var(--c-border);border-radius:var(--br-m);-webkit-overflow-scrolling:touch;max-width:100%;overflow-x:auto}.comparison-table{border-collapse:collapse;width:100%;font-size:var(--fs-s);line-height:var(--lh-l);margin:0}.comparison-table th,.comparison-table td{padding:var(--space) var(--space-m);text-align:left;vertical-align:top;border-bottom:var(--border-s) solid var(--c-border)}.comparison-table thead th{background:var(--c-surface-alt);color:var(--c-text-muted);font-size:var(--fs-2xs);font-weight:var(--fw-semibold);letter-spacing:.06em;text-transform:uppercase}.comparison-table tbody th[scope=row]{color:var(--c-heading);font-weight:var(--fw-semibold);white-space:nowrap}.comparison-table tbody tr:last-child td,.comparison-table tbody tr:last-child th{border-bottom:0}.comparison-table:not(.comparison-table--plain) tbody tr:last-child{background:var(--c-surface-alt)}.comparison-table:not(.comparison-table--plain) tbody tr:last-child th[scope=row]{color:var(--c-link)}.comparison-pairs{margin-top:var(--space-m);margin-bottom:var(--space-l)}.comparison-pairs>.header{display:none}.comparison-pairs>.list{grid-gap:var(--space);gap:var(--space);margin:0;padding:0;list-style:none;display:grid}.comparison-pair{grid-gap:0;background:var(--c-surface);border:var(--border-s) solid var(--c-border);border-radius:var(--br-m);gap:0;display:grid;overflow:hidden}.comparison-pair>.side{grid-gap:var(--space-2xs);gap:var(--space-2xs);padding:var(--space);display:grid}.comparison-pair>.side>.label{color:var(--c-text-muted);font-size:var(--fs-2xs);font-weight:var(--fw-semibold);letter-spacing:.06em;line-height:var(--lh-s);text-transform:uppercase}.comparison-pair>.side>.label>code{font-size:inherit;letter-spacing:0;text-transform:none}.comparison-pair>.side>.text{max-width:none;color:var(--c-text);font-size:var(--fs-s);line-height:var(--lh-l);margin:0}.comparison-pair>.side--left>.label{color:var(--c-heading)}.comparison-pair>.side--right{background:var(--c-surface-alt);border-top:var(--border-s) solid var(--c-border)}.comparison-pair>.side--right>.label{color:var(--c-link)}.decision-tree{margin-top:var(--space-m);margin-bottom:var(--space-l);background:var(--c-surface);border:var(--border-s) solid var(--c-border);border-radius:var(--br-m);overflow:hidden}.decision-tree>.list{grid-gap:0;gap:0;margin:0;padding:0;list-style:none;display:grid}.decision-tree>.list>.step{grid-gap:var(--space-s);gap:var(--space-s);padding:var(--space-m) var(--space);border-top:var(--border-s) solid var(--c-border);display:grid}.decision-tree>.list>.step:first-child{border-top:0}.decision-tree .prompt{max-width:none;color:var(--c-heading);font-size:var(--fs-m);font-weight:var(--fw-semibold);line-height:var(--lh-s);margin:0}.decision-tree .branch{align-items:baseline;gap:var(--space-2xs) var(--space-s);max-width:none;font-size:var(--fs-s);line-height:var(--lh-l);flex-wrap:wrap;margin:0;display:flex}.decision-tree .branch>.label{font-weight:var(--fw-semibold);letter-spacing:.04em;text-transform:uppercase}.decision-tree .branch--yes{padding:var(--space-s) var(--space);border-radius:var(--br-s);color:var(--c-success);background:light-dark(#10b77f1f,#10b77f33)}.decision-tree .branch--yes>.label,.decision-tree .branch--yes>.outcome{color:var(--c-success)}.decision-tree .branch--yes>.value{color:var(--c-heading);font-weight:var(--fw-semibold)}.decision-tree .branch--continue{color:var(--c-text-muted)}.decision-tree .branch--continue>.arrow{color:var(--c-link);font-size:var(--fs-m);font-weight:var(--fw-bold);line-height:1}.decision-tree .branch--continue>.hint{font-size:var(--fs-2xs);font-style:italic}.decision-tree .closing{margin:var(--space-2xs) 0 0;max-width:none;padding:var(--space-s) var(--space);background:var(--c-surface-alt);border-left:var(--border-l) solid var(--c-link);border-radius:0 var(--br-s) var(--br-s) 0;color:var(--c-text-muted);font-size:var(--fs-s);font-style:italic;line-height:var(--lh-l)}.migration-steps{grid-gap:0;margin:var(--space-m) 0;background:var(--c-surface);border:var(--border-s) solid var(--c-border);border-radius:var(--br-m);gap:0;padding:0;list-style:none;display:grid;overflow:hidden}.migration-steps>.step{grid-gap:var(--space);gap:var(--space);padding:var(--space-m) var(--space);border-top:var(--border-s) solid var(--c-border);grid-template-columns:auto minmax(0,1fr);align-items:start;margin:0;display:grid}.migration-steps>.step:first-child{border-top:0}.migration-steps .marker{background:var(--c-accent-soft);border-radius:var(--br-round);width:2.25rem;height:2.25rem;color:var(--c-on-accent-soft);font-family:var(--ff-mono);font-size:var(--fs-s);font-weight:var(--fw-bold);flex-shrink:0;place-items:center;line-height:1;display:grid;position:relative}.migration-steps .text{max-width:none;color:var(--c-text);font-size:var(--fs-s);line-height:var(--lh-l);margin:.35rem 0 0}.migration-milestones{grid-gap:var(--space-m);gap:var(--space-m);margin:var(--space-m) 0;grid-template-columns:repeat(auto-fill,minmax(min(100%,14rem),1fr));padding:0;list-style:none;display:grid}.migration-milestones>.milestone{gap:var(--space-2xs);padding:var(--space-m);background:var(--c-code-bg);border:var(--border-s) solid var(--c-border);border-radius:var(--br-m);flex-direction:column;margin:0;display:flex}.migration-milestones .phase{max-width:none;color:var(--c-link);font-size:var(--fs-2xs);font-weight:var(--fw-semibold);letter-spacing:.06em;text-transform:uppercase;margin:0}.migration-milestones .title{color:var(--c-heading);font-size:var(--fs-m);font-weight:var(--fw-semibold);line-height:var(--lh-s);margin:0}.migration-milestones .description{max-width:none;color:var(--c-text-muted);font-size:var(--fs-s);line-height:var(--lh-l);margin:0}.migration-effort{grid-gap:var(--space-m);gap:var(--space-m);margin:var(--space-m) 0;grid-template-columns:repeat(auto-fill,minmax(min(100%,16rem),1fr));padding:0;list-style:none;display:grid}.migration-effort>.tier{gap:var(--space-s);padding:var(--space-m);background:var(--c-surface);border:var(--border-s) solid var(--c-border);border-radius:var(--br-m);border-top:var(--border-l) solid var(--c-link);flex-direction:column;margin:0;display:flex}.migration-effort .size{max-width:none;color:var(--c-heading);font-size:var(--fs-s);font-weight:var(--fw-semibold);line-height:var(--lh-s);margin:0}.migration-effort .duration{max-width:none;color:var(--c-link);font-family:var(--ff-mono);font-size:var(--fs-m);font-weight:var(--fw-semibold);line-height:var(--lh-s);margin:0}.migration-effort .note{max-width:none;color:var(--c-text-muted);font-size:var(--fs-s);line-height:var(--lh-l);margin:0}.breadcrumbs{margin-bottom:var(--space-l);color:var(--c-text-muted);font-size:var(--fs-s)}.breadcrumbs>ol{align-items:baseline;gap:var(--space-2xs) var(--space-s);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.breadcrumbs li{align-items:baseline;gap:var(--space-s);max-width:none;display:inline-flex}.breadcrumbs li:not(:last-child):after{content:"/";color:var(--c-border-strong)}.breadcrumbs a{color:inherit;text-decoration-color:#0000}.breadcrumbs a:hover,.breadcrumbs a:focus-visible{color:var(--c-link);text-decoration-color:currentColor}.breadcrumbs [aria-current=page]{color:var(--c-text);font-weight:var(--fw-medium)}.section-nav{gap:var(--space-s);margin-top:var(--space-m);margin-bottom:var(--space-xl);flex-wrap:wrap;display:flex}.section-nav a{padding:var(--space-s) var(--space);background:var(--c-surface);color:var(--c-text);border:var(--border-s) solid var(--c-border);border-radius:var(--br-round);font-size:var(--fs-s);font-weight:var(--fw-medium);transition:background var(--transition-s), border-color var(--transition-s), color var(--transition-s);-webkit-text-decoration:none;text-decoration:none}.section-nav a:hover,.section-nav a:focus-visible{background:var(--c-accent-soft);border-color:var(--c-accent);color:var(--c-on-accent-soft)}.docs-sidebar{align-self:start;min-width:0}.docs-sidebar>.disclosure{background:var(--c-surface-alt);border:var(--border-s) solid var(--c-border);border-radius:var(--br-m)}.docs-sidebar>.disclosure>summary{padding:var(--space);color:var(--c-heading);font-weight:var(--fw-semibold);cursor:pointer;list-style:none}.docs-sidebar>.disclosure>summary::-webkit-details-marker{display:none}.docs-sidebar .toc{padding:0 var(--space) var(--space)}.docs-sidebar .group{grid-gap:var(--space-s);gap:var(--space-s);display:grid}.docs-sidebar .heading{color:var(--c-text-muted);font-size:var(--fs-2xs);font-weight:var(--fw-semibold);letter-spacing:.08em;text-transform:uppercase;margin:0}.docs-sidebar .list{grid-gap:2px;gap:2px;margin:0;padding:0;list-style:none;display:grid}.docs-sidebar .list a{padding:var(--space-2xs) var(--space-s);border-radius:var(--br-s);color:var(--c-text);font-size:var(--fs-s);-webkit-text-decoration:none;text-decoration:none;display:block}.docs-sidebar .list a:hover{background:var(--c-surface);color:var(--c-link)}.docs-sidebar .list a[aria-current=page]{background:var(--c-surface);color:var(--c-link);font-weight:var(--fw-semibold)}.docs-sidebar .list--nested{margin-top:var(--space-2xs);padding-left:var(--space-s);border-left:var(--border-s) solid var(--c-border)}.docs-sidebar .list--nested a{font-size:var(--fs-2xs);color:var(--c-text-muted)}.doc-pager{gap:var(--space);margin-top:var(--space-2xl);padding-top:var(--space-l);border-top:var(--border-s) solid var(--c-border);flex-wrap:wrap;justify-content:space-between;display:flex}.doc-pager>.spacer{flex:1 1 0;max-width:16rem}.doc-pager .link{align-items:center;gap:var(--space);max-width:24rem;padding:var(--space) var(--space-m);background:var(--c-surface);border:var(--border-s) solid var(--c-border);border-radius:var(--br-m);color:var(--c-text);transition:border-color var(--transition-s), background var(--transition-s), box-shadow var(--transition-s);flex:1 1 0;-webkit-text-decoration:none;text-decoration:none;display:flex}.doc-pager .link:hover,.doc-pager .link:focus-visible{border-color:var(--c-link);background:var(--c-surface-alt);box-shadow:var(--shadow-sm)}.doc-pager .arrow{color:var(--c-link);font-size:var(--fs-l);font-weight:var(--fw-semibold);transition:transform var(--transition-s);flex:none}.doc-pager .link--previous:hover .arrow,.doc-pager .link--previous:focus-visible .arrow{transform:translate(-2px)}.doc-pager .link--next:hover .arrow,.doc-pager .link--next:focus-visible .arrow{transform:translate(2px)}.doc-pager .body{flex-direction:column;flex:auto;gap:2px;min-width:0;display:flex}.doc-pager .link--previous .body{text-align:right;align-items:flex-end}.doc-pager .link--next .body{text-align:left;align-items:flex-start}.doc-pager .label{color:var(--c-text-muted);font-size:var(--fs-2xs);font-weight:var(--fw-medium);letter-spacing:.08em;text-transform:uppercase}.doc-pager .name{color:var(--c-heading);font-size:var(--fs);font-weight:var(--fw-semibold);line-height:var(--lh-s);text-underline-offset:.2em;transition:color var(--transition-s), text-decoration-color var(--transition-s);text-decoration:underline 2px #0000}.doc-pager .link:hover .name,.doc-pager .link:focus-visible .name{color:var(--c-link);text-decoration-color:currentColor}.doc-pager .context{color:var(--c-text-muted);font-size:var(--fs-2xs)}.related-links{margin-top:var(--space-2xl);padding-top:var(--space-l);border-top:var(--border-s) solid var(--c-border)}.related-links>h2{margin:0 0 var(--space);color:var(--c-text-muted);font-size:var(--fs-2xs);font-weight:var(--fw-semibold);letter-spacing:.08em;text-transform:uppercase}.related-links>ul{grid-gap:var(--space);gap:var(--space);grid-template-columns:repeat(auto-fill,minmax(min(100%,16rem),1fr));margin:0;padding:0;list-style:none;display:grid}.related-links li{max-width:none}.related-links a{gap:var(--space-2xs);padding:var(--space) var(--space-m);background:var(--c-surface);border:var(--border-s) solid var(--c-border);border-radius:var(--br-m);color:var(--c-text);transition:border-color var(--transition-s), box-shadow var(--transition-s);flex-direction:column;-webkit-text-decoration:none;text-decoration:none;display:flex}.related-links a:hover,.related-links a:focus-visible{border-color:var(--c-link);box-shadow:var(--shadow-sm)}.related-links .meta{color:var(--c-text-muted);font-size:var(--fs-2xs);font-weight:var(--fw-medium);letter-spacing:.06em;text-transform:uppercase}.related-links .headline{color:var(--c-heading);font-size:var(--fs);font-weight:var(--fw-semibold);line-height:var(--lh-s);text-underline-offset:.2em;transition:color var(--transition-s), text-decoration-color var(--transition-s);text-decoration:underline 2px #0000}.related-links a:hover .headline,.related-links a:focus-visible .headline{color:var(--c-link);text-decoration-color:currentColor}.code-example{margin-left:0;margin-right:0;margin-top:var(--space);margin-bottom:var(--space);background:var(--c-code-bg);border:var(--border-s) solid var(--c-border);border-radius:var(--br-m);overflow:hidden}.code-example--before{border-color:#ef434366}.code-example--after{border-color:#10b77f66}.code-example>figcaption{justify-content:space-between;align-items:center;gap:var(--space);padding:var(--space-s) var(--space);background:var(--c-surface-alt);border-bottom:var(--border-s) solid var(--c-border);color:var(--c-text-muted);font-size:var(--fs-2xs);font-weight:var(--fw-medium);letter-spacing:.06em;text-transform:uppercase;display:flex}.code-example>pre{padding:var(--space-m) var(--space);border-radius:0;margin:0}.code-example .copy{padding:var(--space-2xs) var(--space);background:var(--c-cta-bg);border:var(--border-s) solid var(--c-cta-bg);border-radius:var(--br-s);color:var(--c-cta-text);font-size:var(--fs-s);font-weight:var(--fw-semibold);transition:background var(--transition-s), border-color var(--transition-s), box-shadow var(--transition-s), transform var(--transition-s)}.code-example .copy:hover{background:var(--c-cta-bg-hover);border-color:var(--c-cta-bg-hover);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.code-example .copy:focus-visible{background:var(--c-cta-bg-hover);border-color:var(--c-cta-bg-hover)}.code-example .copy-status{max-width:none;padding:var(--space-s) var(--space);border-top:var(--border-s) solid var(--c-border);font-size:var(--fs-s);font-weight:var(--fw-semibold);line-height:var(--lh-s);text-align:center;margin:0}.code-example .copy-status:empty{display:none}.code-example .copy-status--success{color:var(--c-success);background:light-dark(#10b77f1f,#10b77f33);border-top-color:light-dark(#10b77f59,#10b77f73)}.code-example .copy-status--error{color:var(--c-error);background:light-dark(#ef43431f,#ef434333);border-top-color:light-dark(#ef434359,#ef434373)}.cli-command{margin-left:0;margin-right:0;margin-top:var(--space);margin-bottom:var(--space);background:var(--c-code-bg);border:var(--border-s) solid var(--c-border);border-radius:var(--br-m);overflow:hidden}.cli-command>figcaption{justify-content:space-between;align-items:center;gap:var(--space);padding:var(--space-s) var(--space);background:var(--c-surface-alt);border-bottom:var(--border-s) solid var(--c-border);color:var(--c-text-muted);font-size:var(--fs-2xs);font-weight:var(--fw-medium);letter-spacing:.06em;text-transform:uppercase;flex-wrap:wrap;display:flex}.cli-command__label{flex:auto;min-width:0}.cli-command__controls{align-items:center;gap:var(--space);flex-wrap:wrap;display:flex}.cli-command__tabs{gap:var(--space-2xs);display:flex}.cli-command__tab{padding:var(--space-2xs) var(--space-s);border:var(--border-s) solid var(--c-border);border-radius:var(--br-s);color:var(--c-text-muted);font-size:var(--fs-2xs);font-weight:var(--fw-semibold);letter-spacing:.04em;text-transform:lowercase;transition:background var(--transition-s), border-color var(--transition-s), color var(--transition-s);background:0 0}.cli-command__tab:hover{color:var(--c-text);border-color:var(--c-border-strong)}.cli-command__tab.is-active{background:var(--c-surface);color:var(--c-heading);border-color:var(--c-border-strong)}.cli-command__tab:focus-visible{outline-offset:var(--outline-offset)}.cli-command>pre{padding:var(--space-m) var(--space);border-radius:0;margin:0}.cli-command .copy{padding:var(--space-2xs) var(--space);background:var(--c-cta-bg);border:var(--border-s) solid var(--c-cta-bg);border-radius:var(--br-s);color:var(--c-cta-text);font-size:var(--fs-s);font-weight:var(--fw-semibold);letter-spacing:normal;text-transform:none;transition:background var(--transition-s), border-color var(--transition-s), box-shadow var(--transition-s), transform var(--transition-s)}.cli-command .copy:hover{background:var(--c-cta-bg-hover);border-color:var(--c-cta-bg-hover);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.cli-command .copy:focus-visible{background:var(--c-cta-bg-hover);border-color:var(--c-cta-bg-hover)}.cli-command .copy-status{max-width:none;padding:var(--space-s) var(--space);border-top:var(--border-s) solid var(--c-border);font-size:var(--fs-s);font-weight:var(--fw-semibold);line-height:var(--lh-s);text-align:center;margin:0}.cli-command .copy-status:empty{display:none}.cli-command .copy-status--success{color:var(--c-success);background:light-dark(#10b77f1f,#10b77f33);border-top-color:light-dark(#10b77f59,#10b77f73)}.cli-command .copy-status--error{color:var(--c-error);background:light-dark(#ef43431f,#ef434333);border-top-color:light-dark(#ef434359,#ef434373)}.cli-command-inline__sep{color:var(--c-text-muted);font-weight:var(--fw-regular)}.file-tree{margin-left:0;margin-right:0;margin-top:var(--space);margin-bottom:var(--space);background:var(--c-code-bg);border:var(--border-s) solid var(--c-border);border-radius:var(--br-m);overflow:hidden}.file-tree>figcaption{padding:var(--space-s) var(--space);background:var(--c-surface-alt);border-bottom:var(--border-s) solid var(--c-border);color:var(--c-text-muted);font-size:var(--fs-2xs);font-weight:var(--fw-medium);letter-spacing:.06em;text-transform:uppercase}.file-tree>.body{padding:var(--space-m) var(--space);font-family:var(--ff-mono);font-size:var(--fs-s);line-height:var(--lh)}.file-tree .root{align-items:center;gap:var(--space-s);margin:0 0 var(--space-s);font-weight:var(--fw-semibold);display:flex}.file-tree .root .name{color:var(--c-link)}.file-tree .list{margin:0;padding:0;list-style:none}.file-tree .entry{grid-gap:0 var(--space-2xs);align-items:baseline;gap:0 var(--space-2xs);grid-template-columns:minmax(0,auto) minmax(0,1fr);margin:0;padding:.1em 0;display:grid}.file-tree .guide{color:var(--c-text-muted);opacity:.55;white-space:pre;user-select:none}.file-tree .row{align-items:center;gap:var(--space-2xs) var(--space-s);flex-wrap:wrap;min-width:0;display:flex}.file-tree .icon{flex-shrink:0;width:1em;height:1em}.file-tree .entry--folder .icon{color:var(--c-link)}.file-tree .entry--file .icon{color:var(--c-text-muted)}.file-tree .entry--folder .name{color:var(--c-text);font-weight:var(--fw-medium)}.file-tree .entry--file .name{color:var(--c-text)}.file-tree .comment{color:var(--c-text-muted);font-size:.92em;font-style:italic;font-weight:var(--fw-regular)}.pattern-pair{grid-gap:var(--space-m);gap:var(--space-m);margin-top:var(--space-m);display:grid}.pattern-pair:has(+*){margin-bottom:var(--space-l)}.pattern-card{grid-gap:var(--space);gap:var(--space);padding:var(--space-m);background:var(--c-surface);border:var(--border-s) solid var(--c-border);border-radius:var(--br-m);display:grid}.pattern-card>h3{font-size:var(--fs-l);margin:0}.pattern-card--bad{border-top:var(--border-l) solid var(--c-error)}.pattern-card--good{border-top:var(--border-l) solid var(--c-success)}.site-search{grid-gap:var(--space-m);gap:var(--space-m);margin-top:var(--space-l);margin-bottom:var(--space-l);display:grid}.site-search>.query{width:100%;padding:var(--space) var(--space-m);background:var(--c-surface);border:var(--border-s) solid var(--c-border);border-radius:var(--br-m);color:var(--c-text)}.site-search>.query:disabled{background:var(--c-surface-alt);color:var(--c-text-muted);cursor:not-allowed}.site-search>.hits{grid-gap:var(--space);gap:var(--space);display:grid}.site-search .hit{grid-gap:var(--space-2xs);gap:var(--space-2xs);padding:var(--space-m);background:var(--c-surface);border:var(--border-s) solid var(--c-border);border-radius:var(--br-m);display:grid}.site-search .hit a{color:var(--c-heading);text-decoration-color:#0000}.site-search .hit a:hover,.site-search .hit a:focus-visible{color:var(--c-link);text-decoration-color:currentColor}.site-search .hit p,.search-unavailable,.search-empty,.search-error,.search-help{color:var(--c-text-muted);font-size:var(--fs-s);margin:0}.search-help code{font-size:.95em}.release-list{grid-gap:var(--space-l);gap:var(--space-l);margin:0;padding:0;list-style:none;display:grid}.release{max-width:none;padding:var(--space-l);background:var(--c-surface);border:var(--border-s) solid var(--c-border);border-radius:var(--br-m)}.release--current{border-color:var(--c-link);box-shadow:var(--shadow-sm)}.release>.row{align-items:center;gap:var(--space-s) var(--space);margin-bottom:var(--space);flex-wrap:wrap;display:flex}.release>.row>.title{font-size:var(--fs-xl);line-height:var(--lh-s);margin:0}.release>.row>.badge{padding:var(--space-2xs) var(--space-s);border-radius:var(--br-round);font-size:var(--fs-2xs);font-weight:var(--fw-semibold);line-height:var(--lh-s);letter-spacing:.06em;text-transform:uppercase;align-items:center;display:inline-flex}.release>.row>.badge--current{background:var(--c-accent-soft);color:var(--c-on-accent-soft)}.release>.row>.badge--archived{background:var(--c-surface-alt);color:var(--c-text-muted)}.release>.row>.badge--draft{color:var(--c-warning);background:#f59b0a2e}.release>.row>.date{color:var(--c-text-muted);font-size:var(--fs-s);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:var(--lh-s);margin-left:auto}.release>.blurb{color:var(--c-text-muted);line-height:var(--lh-l);margin:0}.release>.changes{margin-top:var(--space-l);padding-top:var(--space-m);border-top:var(--border-s) solid var(--c-border)}.release>.changes>.heading{margin:0 0 var(--space);color:var(--c-text-muted);font-size:var(--fs-2xs);font-weight:var(--fw-semibold);letter-spacing:.08em;text-transform:uppercase}.release>.changes--removed>.heading{color:var(--c-error)}.release>.changes>.list{grid-gap:var(--space-s);gap:var(--space-s);padding-left:var(--space-m);color:var(--c-text-muted);font-size:var(--fs-s);line-height:var(--lh-l);margin:0;display:grid}.release>.changes>.list>li{max-width:72ch}.site-footer{margin-top:var(--space-2xl);background:var(--c-surface-alt);border-top:var(--border-s) solid var(--c-border)}.site-footer>.inner{grid-gap:var(--space-l);gap:var(--space-l);padding-top:var(--space-2xl);padding-bottom:var(--space-2xl);display:grid}.site-footer .intro>.title{margin:0 0 var(--space-s);color:var(--c-heading);font-size:var(--fs-xl);font-weight:var(--fw-bold);letter-spacing:-.02em}.site-footer .intro>p{color:var(--c-text-muted);line-height:var(--lh-l);margin:0}.site-footer .intro>.topics{gap:var(--space-s);margin-top:var(--space-m);flex-direction:column;display:flex}.site-footer .intro>.topics a{color:var(--c-text);font-weight:var(--fw-medium);text-decoration-color:#0000}.site-footer .intro>.topics a:hover,.site-footer .intro>.topics a:focus-visible,.site-footer .intro>.topics a[aria-current=page]{color:var(--c-link);text-decoration-color:currentColor}.site-footer .bottom{grid-gap:var(--space);gap:var(--space);padding-top:var(--space-l);border-top:var(--border-s) solid var(--c-border);grid-column:1/-1;display:grid}.site-footer .legal{align-items:center;gap:var(--space-s) var(--space-m);color:var(--c-text-muted);font-size:var(--fs-s);line-height:var(--lh);flex-wrap:wrap;display:flex}.site-footer .legal>.copyright{color:inherit;font-size:inherit;line-height:inherit;margin:0}.site-footer .legal-list{align-items:center;gap:var(--space-s) var(--space-m);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.site-footer .legal-list li{max-width:none;line-height:inherit;margin:0}.site-footer .legal-list li+li{margin:0}.site-footer .legal-list a{color:inherit;font-size:inherit;line-height:inherit;text-decoration-color:#0000}.site-footer .legal-list a:hover,.site-footer .legal-list a:focus-visible{color:var(--c-link);text-decoration-color:currentColor}.site-footer .credits{color:var(--c-text-muted);font-size:var(--fs-s);line-height:var(--lh);margin:0}}@layer theme,hacks;@media (width>=768px){.comparison-pairs>.header{grid-gap:var(--space);gap:var(--space);margin-bottom:var(--space-s);padding-left:var(--space);padding-right:var(--space);grid-template-columns:1fr 1fr;display:grid}.comparison-pairs>.header>.label{color:var(--c-text-muted);font-size:var(--fs-2xs);font-weight:var(--fw-semibold);letter-spacing:.06em;text-transform:uppercase}.comparison-pairs>.header>.label--left{color:var(--c-heading)}.comparison-pairs>.header>.label--right{color:var(--c-link)}.comparison-pairs>.header>.label>code{font-size:inherit;letter-spacing:0;text-transform:none}.comparison-pair{grid-template-columns:1fr 1fr}.comparison-pair>.side--right{border-top:0;border-left:var(--border-s) solid var(--c-border)}.pattern-pair{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=1280px){.docs-layout{gap:var(--space-2xl);grid-template-columns:16rem minmax(0,1fr)}.docs-sidebar{top:var(--site-header-offset);scroll-margin-top:var(--site-header-offset);max-height:calc(100vh - var(--site-header-offset) - var(--space));position:sticky;overflow-y:auto}.docs-sidebar>.disclosure{background:0 0;border:0;border-radius:0}.docs-sidebar>.disclosure>summary{display:none}.docs-sidebar .toc{padding:0}.site-footer .intro>.topics{gap:var(--space) var(--space-l);flex-flow:wrap}}@media (width>=1280px) and (pointer:fine){.site-nav .nav-list>li{position:relative}.site-nav .nav-list>li>.row{display:contents}.site-nav .nav-list>li>ul{min-width:14rem;padding:var(--space-2xs);background:var(--c-surface);border:var(--border-s) solid var(--c-border);border-radius:var(--br-m);box-shadow:var(--shadow-md);display:none;position:absolute;top:100%;right:0}.site-nav .nav-list>li:hover>ul,.site-nav .nav-list>li:focus-within>ul,.site-nav .nav-list>li>ul a{display:block}.site-nav .nav-list .is_nested>a{padding-left:var(--space-m);color:var(--c-text-muted)}}@media (width<=1279.98px),(width>=1280px) and (pointer:coarse){.site-header>.page-shell{grid-column-gap:var(--space);-moz-column-gap:var(--space);align-items:center;column-gap:var(--space);grid-row-gap:0;grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr) auto;row-gap:0;display:grid}.site-header>.page-shell>:first-child{grid-area:1/1;min-width:0}.site-header>.page-shell>.menu-toggle{grid-area:1/2;justify-self:end}.site-header>.page-shell>.site-nav{grid-area:2/1/auto/-1}.menu-toggle{display:inline-flex}.site-nav{padding-top:var(--space-s);padding-bottom:var(--space-s);display:none}.site-header.is_nav_open .site-nav{display:block}.site-nav .nav-list{flex-direction:column;align-items:stretch;gap:2px}.site-nav .nav-list>li>.row{align-items:center;gap:var(--space-s);display:flex}.site-nav .nav-list>li>.row>a{flex:auto}.site-nav .sub-toggle{display:inline-flex}.site-nav .nav-list>li>ul{margin-top:var(--space-2xs);padding-left:var(--space);border-left:var(--border-s) solid var(--c-border);display:none}.site-nav .nav-list>li.is_open>ul{display:block}.site-nav .nav-list>li.is_open>.row>.sub-toggle:after{transform:translate(-50%,-50%)rotate(-135deg)}}@media (width<=767.98px){:root{--fs-2xs:.875rem;--fs-s:.9375rem;--fs:1.0625rem;--fs-m:1.1875rem;--fs-l:1.375rem;--fs-xl:1.6875rem;--fs-2xl:2.125rem;--fs-3xl:3.25rem}.comparison-table th,.comparison-table td{padding:var(--space-s) var(--space)}.comparison-pair>.side>.label.visually-hidden{clip:auto;white-space:normal;border:0;width:auto;height:auto;margin:0;padding:0;position:static;overflow:visible}.section-nav{gap:var(--space-s);scroll-snap-type:x proximity;padding-bottom:var(--space-2xs);flex-wrap:nowrap;overflow-x:auto}.section-nav a{scroll-snap-align:start;flex:none}.doc-pager>.spacer{display:none}.doc-pager .link{max-width:none}.release>.row>.date{flex-basis:100%;margin-left:0}}@media (prefers-color-scheme:dark){.eyebrow{color:#ff52bf}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.site-nav .sub-toggle:after,.hero-actions>a{transition:none}.hero-actions>a:hover,.doc-pager .link--previous:hover .arrow,.doc-pager .link--previous:focus-visible .arrow,.doc-pager .link--next:hover .arrow,.doc-pager .link--next:focus-visible .arrow{transform:none}.code-example .copy{transition:none}.code-example .copy:hover{transform:none}.cli-command .copy{transition:none}.cli-command .copy:hover{transform:none}}
