@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-content:""}}}@layer theme{:root,:host{--font-sans:"Atkinson Hyperlegible Next", system-ui, -apple-system, sans-serif;--font-mono:"Atkinson Hyperlegible Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--spacing:.25rem;--text-xs:.75rem;--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--font-weight-light:300;--font-weight-semibold:600;--font-weight-bold:700;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--color-bg:#050505;--color-surface:#0e0e11;--color-surface-hover:#16161a;--color-border:#1f1f23;--color-border-strong:#2e2e35;--color-text:#fafafa;--color-text-muted:#a1a1aa;--color-text-subtle:#71717a;--color-accent:#04dd7c;--color-accent-hover:#01ff90;--color-accent-dim:#04dd7c14;--color-accent-active:#003e1e;--color-amber:#f59e0b;--color-code-comment:#6b7280;--color-code-literal:#8fb9a3;--color-code-keyword:#a9a5c9;--header-h:56px;--sidebar-w:280px;--content-max:750px;--radius-base:6px}}@layer base{*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:17px}body{font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);min-height:100vh;line-height:1.7}a{color:var(--color-accent);text-decoration:none}a:hover{color:var(--color-accent-hover)}img{max-width:100%}}@layer components{.preview-ribbon{z-index:9999;background:var(--color-amber);color:#fff;letter-spacing:.08em;text-transform:uppercase;transform-origin:50%;pointer-events:none;-webkit-user-select:none;user-select:none;padding:3px 40px;font-size:.6rem;font-weight:700;position:fixed;top:18px;right:-30px;transform:rotate(45deg)}.tessl-logo-img{width:auto;height:22px}.tessl-header-nav{align-items:center;gap:1.5rem;margin-left:auto;display:flex}.tessl-header-nav a{white-space:nowrap;color:var(--color-text);flex-shrink:0;align-items:center;gap:.25rem;font-size:.875rem;text-decoration:none;transition:color .15s,opacity .15s;display:inline-flex}.tessl-header-nav a:hover{color:var(--color-text);opacity:.75;text-decoration:none}.tessl-nav-external svg{opacity:.6}.tessl-nav-registry{border:1px solid #ffffff40;border-radius:8px;align-items:center;gap:.35rem;padding:.3rem .8rem;font-size:.875rem;font-weight:500;transition:border-color .15s,background .15s;display:inline-flex;color:var(--color-text)!important}.tessl-nav-demo{border:1px solid var(--color-text);background:var(--color-text);border-radius:8px;align-items:center;gap:.35rem;padding:.3rem .8rem;font-size:.875rem;font-weight:500;transition:opacity .15s;display:inline-flex;color:var(--color-bg)!important}.tessl-nav-demo:hover{text-decoration:none;opacity:.85!important}.tessl-nav-registry:hover{background:#ffffff0f;border-color:#ffffff8c;text-decoration:none;opacity:1!important}.tessl-nav-dropdown{align-items:center;display:inline-flex;position:relative}.tessl-nav-dropdown-btn{cursor:pointer;color:var(--color-text);background:0 0;border:none;align-items:center;gap:.3rem;padding:0;font-family:inherit;font-size:.875rem;transition:opacity .15s;display:inline-flex}.tessl-nav-dropdown-btn:hover{opacity:.75}.tessl-nav-dropdown-btn svg{opacity:.7;transition:transform .2s}.tessl-nav-dropdown.open .tessl-nav-dropdown-btn svg{transform:rotate(180deg)}.tessl-nav-dropdown-menu{visibility:hidden;opacity:0;pointer-events:none;background:var(--color-surface);border:1px solid var(--color-border);z-index:200;border-radius:8px;min-width:180px;padding:10px 0 .5rem;transition:opacity .15s,visibility .15s;position:absolute;top:100%;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #00000080}.tessl-nav-dropdown.open .tessl-nav-dropdown-menu{visibility:visible;opacity:1;pointer-events:auto}.tessl-nav-dropdown-menu a{color:var(--color-text);opacity:.75;padding:.45rem 1rem;font-size:.875rem;text-decoration:none;transition:background .1s,opacity .1s;display:block}.tessl-nav-dropdown-menu a:hover{opacity:1;background:#ffffff0f}.tessl-header-burger{cursor:pointer;background:0 0;border:none;flex-direction:column;flex-shrink:0;justify-content:center;gap:5px;margin-left:auto;padding:6px;display:none}.tessl-header-burger span{background:var(--color-text);border-radius:2px;width:20px;height:2px;transition:transform .2s,opacity .2s;display:block}.tessl-header-burger[aria-expanded=true] span:first-child{transform:translateY(7px)rotate(45deg)}.tessl-header-burger[aria-expanded=true] span:nth-child(2){opacity:0}.tessl-header-burger[aria-expanded=true] span:nth-child(3){transform:translateY(-7px)rotate(-45deg)}.sidebar-toggle{top:calc(var(--header-h) + .6rem);z-index:210;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-base);width:2.25rem;height:2.25rem;color:var(--color-text);cursor:pointer;justify-content:center;align-items:center;display:none;position:fixed;left:.9rem;box-shadow:0 1px 3px #0006}.sidebar-toggle:hover{color:var(--color-accent);border-color:var(--color-accent)}.sidebar{top:var(--header-h);width:var(--sidebar-w);background:var(--color-bg);border-right:1px solid var(--color-border);z-index:100;transition:transform .25s;position:fixed;bottom:0;left:0;overflow-y:auto}.sidebar-inner{flex-direction:column;min-height:100%;padding-bottom:2rem;display:flex}.sidebar-brand{flex-shrink:0;padding:1.25rem 1.25rem 1.5rem}.sidebar-title{font-size:.9rem;font-weight:600;display:block}.sidebar-sub{color:var(--color-text-muted);margin-top:.2rem;font-size:.75rem;display:block}.sidebar-modules{flex:1;padding:1rem 0}.sidebar-label{letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-subtle);padding:0 1.25rem .6rem;font-size:.68rem;font-weight:700}.nav-module{color:var(--color-text-muted);cursor:pointer;border-left:2px solid #0000;grid-template-columns:1.6rem 1fr auto;align-items:center;gap:.4rem;padding:.6rem 1.25rem;font-size:.865rem;transition:background .12s,border-color .12s,color .12s;display:grid}.nav-module:hover{background:var(--color-surface-hover);color:var(--color-text)}.nav-module.active{background:var(--color-surface-hover);border-left-color:var(--color-accent);color:var(--color-text);font-weight:600}.mod-num{color:var(--color-text-subtle);font-variant-numeric:tabular-nums;font-size:.72rem;font-weight:600}.nav-module.active .mod-num{color:var(--color-text-muted)}.mod-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mod-status{flex-shrink:0;font-size:.7rem;transition:color .2s}.sidebar-footer{border-top:1px solid var(--color-border);flex-shrink:0;padding:1rem 1.25rem 0;font-size:.75rem}.sidebar-footer a{color:var(--color-text-subtle)}.sidebar-footer a:hover{color:var(--color-accent)}.content{margin-left:var(--sidebar-w);padding-top:var(--header-h);flex-direction:column;min-height:100vh;display:flex}.content-main{flex:1 0 auto}.module-body{max-width:var(--content-max);margin:0 auto;padding:3rem 2rem 5rem}.module-eyebrow{letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-subtle);margin-bottom:.4rem;font-size:.72rem;font-weight:700}.module-body h1{letter-spacing:-.02em;margin-bottom:1.5rem;font-size:2rem;font-weight:500;line-height:1.2}.lesson-head{flex-wrap:wrap;align-items:baseline;gap:.75rem;margin-bottom:1.5rem;display:flex}.lesson-head h1{margin-bottom:0}.lesson-duration{color:var(--color-text-muted);white-space:nowrap;font-size:.85rem;font-weight:500}.module-meta{flex-wrap:wrap;gap:1.25rem;margin-bottom:1rem;display:flex}.meta-tag{color:var(--color-text-muted);align-items:center;gap:.4rem;font-size:.8rem;display:inline-flex}.meta-tag svg{opacity:.7;flex-shrink:0}.ships-box,.install-box{border-radius:var(--radius-base);flex-wrap:wrap;align-items:baseline;gap:.75rem;margin-bottom:.6rem;font-size:.875rem;display:flex}.ships-box{padding:.15rem 0}.ships-label,.install-label{letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-subtle);flex-shrink:0;font-size:.68rem;font-weight:700}.ships-value{color:var(--color-text)}.ships-value code{font-family:var(--font-mono);color:var(--color-text);font-size:.88em}.install-box{background:var(--color-surface);padding:.7rem 1rem}.install-cmd{font-family:var(--font-mono);color:var(--color-text);word-break:break-all;font-size:.875rem}.lesson-modes{margin-bottom:1rem}.modes-intro{color:var(--color-text-muted);margin:0 0 .6rem;font-size:.9rem;line-height:1.5}.modes-intro strong{color:var(--color-text);font-weight:600}.install-help{color:var(--color-text-muted);flex-basis:100%;font-size:.8rem;line-height:1.5}.install-help code{font-family:var(--font-mono);color:var(--color-text);font-size:.88em}.install-help em{color:var(--color-text);font-style:normal}.module-prose{margin-top:2.5rem}.module-prose h2{letter-spacing:-.01em;margin:3.5rem 0 1rem;font-size:1.35rem;font-weight:500}.module-prose h2:first-child{margin-top:0}.module-prose h3{margin:2rem 0 .75rem;font-size:1.05rem;font-weight:500}.module-prose h4{color:var(--color-text-muted);margin:1.5rem 0 .5rem;font-size:.95rem;font-weight:500}.module-prose p{margin-bottom:1rem}.module-prose p:last-child{margin-bottom:0}.module-prose ul,.module-prose ol{margin:0 0 1rem 1.5rem}.module-prose li{margin-bottom:.3rem}.module-prose li>ul,.module-prose li>ol{margin-top:.3rem;margin-bottom:.3rem}.module-prose strong{color:var(--color-text);font-weight:600}.module-prose em{font-style:italic}.module-prose table{border-collapse:collapse;width:100%;margin:1.5rem 0;font-size:.875rem;display:block;overflow-x:auto}.module-prose th{border-bottom:1px solid var(--color-border-strong);text-align:left;white-space:nowrap;color:var(--color-text-muted);letter-spacing:.03em;text-transform:uppercase;padding:.5rem .9rem .5rem 0;font-size:.82rem;font-weight:600}.module-prose td{border-bottom:1px solid var(--color-border);vertical-align:top;padding:.6rem .9rem .6rem 0}.module-prose tr>th:last-child,.module-prose tr>td:last-child{padding-right:0}.module-prose tbody tr:last-child td{border-bottom:none}.module-prose code{font-family:var(--font-mono);color:var(--color-text);font-size:.88em}.module-prose pre{background:var(--color-surface);border-radius:var(--radius-base);margin:1.25rem 0;padding:1.1rem 1.25rem;overflow-x:auto}.module-prose pre code{color:var(--color-text);background:0 0;border:none;padding:0;font-size:.875rem;line-height:1.6}.copy-btn{background:var(--color-surface-hover);border:1px solid var(--color-border-strong);color:var(--color-text-muted);font:inherit;cursor:pointer;border-radius:4px;align-items:center;gap:.35rem;padding:.25rem .6rem;font-size:.75rem;transition:color .15s,border-color .15s,opacity .15s;display:inline-flex}.copy-btn:hover{color:var(--color-text);border-color:var(--color-accent)}.copy-btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.copy-btn.is-copied{color:var(--color-accent);border-color:var(--color-accent)}.copy-btn.is-failed{color:var(--color-text);border-color:var(--color-border-strong)}.copy-btn svg{flex-shrink:0}.code-block{position:relative}.code-block>.copy-btn{opacity:.7;position:absolute;top:.55rem;right:.55rem}.code-block:hover>.copy-btn,.code-block>.copy-btn:focus-visible,.code-block>.copy-btn.is-copied{opacity:1}.copy-btn--inline{flex-shrink:0;align-self:center;margin-left:auto}.install-box.has-copy .install-cmd{flex:100%}.module-prose blockquote{border-left:2px solid var(--color-border-strong);margin:1.5rem 0;padding:.1rem 0 .1rem 1.1rem}.module-prose blockquote strong{color:var(--color-text)}.module-prose blockquote p{margin-bottom:.5rem}.module-prose blockquote p:last-child{margin-bottom:0}.module-prose hr{border:none;border-top:1px solid var(--color-border);margin:2.5rem 0}.collapse-toggle{background:var(--color-surface-hover);border:1px solid var(--color-border-strong);color:var(--color-text-muted);font:inherit;cursor:pointer;border-radius:4px;align-items:center;padding:.3rem .75rem;font-size:.8rem;display:inline-flex}.collapse-toggle:hover{color:var(--color-text);border-color:var(--color-accent)}.collapsible-pre.is-clamped pre{max-height:340px;overflow:hidden}.collapsible-pre .collapse-toggle{margin-top:.5rem}.ref-collapse-all{justify-content:flex-end;margin-bottom:1rem;display:flex}details.ref-section{border-bottom:1px solid var(--color-border);margin:0}details.ref-section>summary{cursor:pointer;color:var(--color-text);align-items:center;gap:.5rem;padding:.85rem 0;font-size:1.05rem;font-weight:600;list-style:none;display:flex}details.ref-section>summary::-webkit-details-marker{display:none}details.ref-section>summary:before{content:"▸";color:var(--color-text-subtle);font-size:.85em;transition:transform .15s}details.ref-section[open]>summary:before{transform:rotate(90deg)}details.ref-section>:not(summary){margin-left:0;margin-right:0}details.ref-section>:nth-child(2){margin-top:1rem}details.ref-section>:last-child{margin-bottom:1rem}.hljs{background:0 0!important}.hljs-comment,.hljs-quote{color:var(--color-code-comment);font-style:italic}.hljs-number,.hljs-string,.hljs-meta .hljs-meta-string,.hljs-literal,.hljs-doctag,.hljs-regexp,.hljs-addition{color:var(--color-code-literal)}.hljs-keyword,.hljs-selector-tag,.hljs-type,.hljs-built_in,.hljs-builtin-name,.hljs-symbol{color:var(--color-code-keyword)}.hljs-title,.hljs-section,.hljs-name,.hljs-selector-id,.hljs-selector-class,.hljs-attribute,.hljs-attr{color:var(--color-text);font-weight:600}.hljs-variable,.hljs-template-variable,.hljs-meta,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-bullet,.hljs-link{color:var(--color-text-muted)}.hljs-deletion{color:var(--color-text-subtle);text-decoration:line-through}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.completion-area{border-top:1px solid var(--color-border);align-items:center;gap:1rem;margin:3.5rem 0 2rem;padding-top:2rem;display:flex;position:relative}.star-burst{pointer-events:none;z-index:5;width:0;height:0;position:absolute}.star-burst span{color:var(--color-accent);line-height:1;animation:.95s ease-out forwards star-burst;position:absolute;top:0;left:0}@keyframes star-burst{0%{opacity:0;transform:translate(0)scale(.3)}15%{opacity:1}to{opacity:0;transform:translate(var(--dx,0), var(--dy,-20px)) scale(1.1)}}.complete-btn{background:var(--color-accent);color:#000;border-radius:var(--radius-base);cursor:pointer;border:none;flex-shrink:0;padding:.65rem 1.5rem;font-family:inherit;font-size:.9rem;font-weight:600;transition:background .15s,transform .1s}.complete-btn:hover{background:var(--color-accent-hover);transform:translateY(-1px)}.complete-check{color:var(--color-accent);font-size:.9rem;font-weight:600;display:none}.nav-btn{border-radius:var(--radius-base);border:1px solid var(--color-border);color:var(--color-text-muted);align-items:center;gap:.4rem;padding:.6rem 1.25rem;font-size:.875rem;transition:border-color .15s,color .15s,background .15s;display:inline-flex}.nav-btn:hover{border-color:var(--color-border-strong);color:var(--color-text);background:var(--color-surface)}.track-done{color:var(--color-accent);font-size:.875rem;font-weight:500}.index-body{max-width:960px;margin:0 auto;padding:2rem 2rem 5rem}.hero{margin-bottom:1rem;padding:3.5rem 0 2.5rem}.hero h1{letter-spacing:-.03em;margin-bottom:.9rem;font-size:2.4rem;font-weight:500;line-height:1.15}.hero-sub{color:var(--color-text-muted);max-width:560px;font-size:1.05rem;line-height:1.6}.module-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;display:grid}.module-grid--courses{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.module-card{background:var(--color-surface);color:var(--color-text);border-radius:10px;padding:1.35rem 1.4rem 1.5rem;transition:background .15s;display:block;position:relative}.module-card:hover{background:var(--color-surface-hover);color:var(--color-text)}.card-eyebrow{letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-subtle);margin-bottom:.45rem;font-size:.68rem;font-weight:700}.card-title{margin-bottom:.5rem;font-size:1rem;font-weight:600;line-height:1.35}.card-desc{color:var(--color-text-muted);margin-bottom:1rem;font-size:.845rem;line-height:1.55}.card-meta{flex-wrap:wrap;gap:.75rem;display:flex}.card-meta span{color:var(--color-text-subtle);font-size:.75rem}.card-status{font-size:.8rem;position:absolute;top:1rem;right:1rem}@media (max-width:768px){.tessl-header-nav{display:none}.tessl-header-burger{margin-right:2.5rem;display:flex}.sidebar-toggle{display:flex}.tessl-header-nav.mobile-open{top:var(--header-h);background:var(--color-surface);border-bottom:1px solid var(--color-border);z-index:199;flex-direction:column;align-items:stretch;padding:.5rem 0 .75rem;position:absolute;left:0;right:0;box-shadow:0 8px 24px #00000080;display:flex!important}.tessl-header-nav.mobile-open>a,.tessl-header-nav.mobile-open>.tessl-nav-dropdown{color:var(--color-text);opacity:.85;border-radius:0;padding:.65rem 1.5rem;font-size:.9rem;display:block}.tessl-header-nav.mobile-open>a:hover{opacity:1;background:#ffffff0d}.tessl-header-nav.mobile-open .tessl-nav-registry{text-align:left;border:none;border-radius:0;width:100%;font-weight:400}.tessl-header-nav.mobile-open .tessl-nav-dropdown-btn{opacity:.85;justify-content:space-between;width:100%;padding:0;font-size:.9rem}.tessl-header-nav.mobile-open .tessl-nav-dropdown-menu{box-shadow:none;visibility:visible;opacity:1;pointer-events:auto;background:#ffffff08;border:none;border-top:1px solid #ffffff0f;border-radius:0;min-width:0;margin-top:.4rem;padding:.25rem 0;transition:none;display:none;position:static;transform:none}.tessl-header-nav.mobile-open .tessl-nav-dropdown.open .tessl-nav-dropdown-menu{display:block}.tessl-header-nav.mobile-open .tessl-nav-dropdown-menu a{padding:.55rem 2rem;font-size:.85rem}.sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0);box-shadow:4px 0 20px #0009}.content{padding-top:calc(var(--header-h) + .5rem);margin-left:0}.module-body{padding:2rem 1.25rem 3rem}.module-body h1{font-size:1.6rem}.index-body{padding:1.25rem 1rem 3rem}.hero{padding:2rem 0 1.5rem}.hero h1{font-size:1.75rem}.module-grid{grid-template-columns:1fr}}@media (min-width:769px) and (max-width:1024px){:root{--sidebar-w:240px}}@media (min-width:769px) and (max-width:1180px){.tessl-property-byline{display:none}.tessl-header-nav{gap:1rem}.tessl-header-inner{padding-right:1.5rem}}.sidebar-group{margin-top:1rem}.sidebar-group:first-of-type{margin-top:0}summary.sidebar-course{cursor:pointer;align-items:center;gap:.4rem;list-style:none;transition:color .12s;display:flex}summary.sidebar-course::-webkit-details-marker{display:none}summary.sidebar-course:before{content:"▸";color:var(--color-text-subtle);font-size:.9em;transition:transform .15s}.sidebar-group[open]>summary.sidebar-course:before{transform:rotate(90deg)}summary.sidebar-course:hover,summary.sidebar-course:hover:before{color:var(--color-accent)}summary.sidebar-course:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.nav-overview .mod-title{color:var(--color-text-subtle)}.nav-overview:hover .mod-title,.nav-overview.active .mod-title{color:var(--color-text)}a.sidebar-title{color:var(--color-text);text-decoration:none}a.sidebar-title:hover{color:var(--color-accent)}a.sidebar-quickstart{letter-spacing:0;text-transform:none;color:var(--color-accent);background:var(--color-accent-dim);border-radius:var(--radius-base);align-items:center;gap:.4rem;margin:0 .75rem .9rem;padding:.55rem .75rem;font-size:.85rem;font-weight:600;text-decoration:none;transition:background .12s,color .12s;display:flex}a.sidebar-quickstart:after{content:"→";margin-left:auto;font-size:.95em}a.sidebar-quickstart:hover{color:var(--color-accent-hover);background:#04dd7c24}a.sidebar-quickstart.active{background:var(--color-accent-active);color:var(--color-text)}.stepper-bar{border-bottom:1px solid var(--color-border);flex-direction:column;gap:.5rem;margin:2rem 0 1.5rem;padding-bottom:1.25rem;display:flex}.stepper-track{gap:.4rem;display:flex}.stepper-dot{background:var(--color-border);cursor:pointer;border:none;border-radius:2px;flex:1 1 0;min-width:12px;height:4px;padding:0;transition:background .15s}.stepper-dot:hover{background:var(--color-border-strong)}.stepper-dot.done{background:var(--color-accent-active)}.stepper-dot.current{background:var(--color-accent)}.stepper-dot:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.stepper-count{color:var(--color-text-muted);letter-spacing:.01em;font-size:.78rem;font-weight:500}html.js-stepper .module-body[data-stepper=lesson]:not(.stepper-on) .lesson-step:not(:first-of-type),html:not(.js-stepper) .stepper-bar,html:not(.js-stepper) .stepper-nav,html.js-stepper .module-body[data-stepper=lesson]:not(.stepper-on) .completion-area,html.js-stepper .module-body[data-stepper=lesson]:not(.stepper-on) .page-nav{display:none}.lesson-step{animation:.18s stepfade}.lesson-step[hidden]{display:none}@keyframes stepfade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.lesson-step{animation:none}.star-burst{display:none}}.stepper-nav{justify-content:space-between;align-items:center;gap:1rem;margin-top:2.5rem;display:flex}.stepper-nav .nav-btn{cursor:pointer;background:0 0;font-family:inherit}.stepper-prev:disabled{opacity:.35;cursor:default}.stepper-prev:disabled:hover{border-color:var(--color-border);color:var(--color-text-muted);background:0 0}.stepper-next{border-color:var(--color-accent);color:var(--color-accent);background:0 0}.stepper-next:hover{background:var(--color-accent-dim);color:var(--color-accent-hover);border-color:var(--color-accent-hover)}.stepper-progress-text{color:var(--color-text-subtle);font-size:.8rem}[hidden]{display:none!important}.callout{background:var(--color-surface);border-left:3px solid var(--color-border-strong);border-radius:0 var(--radius-base) var(--radius-base) 0;margin:1.5rem 0;padding:1rem 1.25rem}.callout-title{letter-spacing:.05em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:.5rem;font-size:.8rem;font-weight:700}.callout p:last-child,.callout ul:last-child{margin-bottom:0}.callout.callout-green{background:var(--color-accent-dim);border-left-color:var(--color-accent)}.callout.callout-green .callout-title{color:var(--color-accent)}.callout.callout-amber{border-left-color:var(--color-amber);background:#f59e0b14}.callout.callout-amber .callout-title{color:var(--color-amber)}}@layer utilities{.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.top-0{top:0}.right-0{right:0}.left-0{left:0}.z-\[200\]{z-index:200}.container{width:100%}@media (min-width:769px){.container{max-width:769px}}@media (min-width:1025px){.container{max-width:1025px}}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-0{margin:0}.mx-auto{margin-inline:auto}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-16{margin-top:calc(var(--spacing) * 16)}.mt-\[0\.55rem\]{margin-top:.55rem}.mb-1{margin-bottom:var(--spacing)}.mb-\[0\.7rem\]{margin-bottom:.7rem}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.h-\[var\(--header-h\)\]{height:var(--header-h)}.h-full{height:100%}.max-w-\[620px\]{max-width:620px}.max-w-\[760px\]{max-width:760px}.max-w-\[1200px\]{max-width:1200px}.min-w-0{min-width:0}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-\[1fr_2fr\]{grid-template-columns:1fr 2fr}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-8{gap:calc(var(--spacing) * 8)}.gap-12{gap:calc(var(--spacing) * 12)}.gap-\[0\.4rem\]{gap:.4rem}.gap-\[0\.6rem\]{gap:.6rem}.gap-\[0\.8rem\]{gap:.8rem}.overflow-hidden{overflow:hidden}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-border{border-color:var(--color-border)}.bg-bg{background-color:var(--color-bg)}.bg-surface{background-color:var(--color-surface)}.px-6{padding-inline:calc(var(--spacing) * 6)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pt-12{padding-top:calc(var(--spacing) * 12)}.pr-20{padding-right:calc(var(--spacing) * 20)}.pb-8{padding-bottom:calc(var(--spacing) * 8)}.pb-10{padding-bottom:calc(var(--spacing) * 10)}.pl-6{padding-left:calc(var(--spacing) * 6)}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-sm\/\[1\.7\]{font-size:var(--text-sm);line-height:1.7}.text-xs\/\[1\.7\]{font-size:var(--text-xs);line-height:1.7}.text-\[0\.8rem\]{font-size:.8rem}.text-\[0\.9rem\]{font-size:.9rem}.text-\[0\.72rem\]{font-size:.72rem}.text-\[0\.78rem\]{font-size:.78rem}.text-\[0\.8125rem\]{font-size:.8125rem}.text-\[1\.2rem\]{font-size:1.2rem}.leading-\[1\.5\]{--tw-leading:1.5;line-height:1.5}.leading-\[1\.55\]{--tw-leading:1.55;line-height:1.55}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[-0\.01em\]{--tw-tracking:-.01em;letter-spacing:-.01em}.tracking-\[0\.05em\]{--tw-tracking:.05em;letter-spacing:.05em}.break-all{word-break:break-all}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.text-border-strong{color:var(--color-border-strong)}.text-text{color:var(--color-text)}.text-text-muted{color:var(--color-text-muted)}.text-text-subtle{color:var(--color-text-subtle)}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.no-underline{text-decoration-line:none}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.before\:mx-\[0\.45rem\]:before{content:var(--tw-content);margin-inline:.45rem}.before\:text-text-subtle:before{content:var(--tw-content);color:var(--color-text-subtle)}.before\:content-\[\'·\'\]:before{--tw-content:"·";content:var(--tw-content)}@media (hover:hover){.hover\:no-underline:hover{text-decoration-line:none}}@media not all and (min-width:769px){.max-md\:relative{position:relative}.max-md\:hidden{display:none}.max-md\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.max-md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.max-md\:flex-col{flex-direction:column}.max-md\:items-start{align-items:flex-start}.max-md\:gap-8{gap:calc(var(--spacing) * 8)}.max-md\:px-4{padding-inline:calc(var(--spacing) * 4)}}.\[\&_\.install-cmd\]\:break-normal .install-cmd{overflow-wrap:normal;word-break:normal}.\[\&_\.install-cmd\]\:\[overflow-wrap\:anywhere\] .install-cmd{overflow-wrap:anywhere}.\[\&_a\]\:text-text-muted a{color:var(--color-text-muted)}.\[\&_a\]\:no-underline a{text-decoration-line:none}@media (hover:hover){.\[\&_a\]\:hover\:text-accent a:hover{color:var(--color-accent)}}.\[\&_code\]\:font-mono code{font-family:var(--font-mono)}.\[\&_code\]\:text-\[0\.92em\] code{font-size:.92em}.\[\&_code\]\:text-text-muted code{color:var(--color-text-muted)}.\[\&_strong\]\:font-semibold strong{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.\[\&_strong\]\:text-text strong{color:var(--color-text)}@media not all and (min-width:769px){.max-md\:\[\&\.mobile-open\]\:flex.mobile-open{display:flex}}.\[\&\>a\]\:text-sm\/\[1\.7\]>a{font-size:var(--text-sm);line-height:1.7}.\[\&\>a\]\:text-text-muted>a{color:var(--color-text-muted)}.\[\&\>a\]\:transition-colors>a{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media (hover:hover){.\[\&\>a\]\:hover\:text-accent>a:hover{color:var(--color-accent)}}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.content--index .\[\.content--index_\&\]\:max-w-\[1100px\]{max-width:1100px}.open .\[\.open_\&\]\:visible{visibility:visible}}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}
