:root{--color-primary-100: hsl(335, 80%, 96%);--color-primary-200: hsl(335, 80%, 92%);--color-primary-300: hsl(335, 76%, 85%);--color-primary-400: hsl(335, 85%, 64%);--color-primary-500: hsl(335, 80%, 53%);--color-primary-600: hsl(335, 80%, 46%);--color-primary-700: hsl(335, 72%, 38%);--color-primary-800: hsl(335, 72%, 31%);--color-primary-900: hsl(335, 72%, 25%);--color-secondary-300: hsl(190, 80%, 80%);--color-secondary-400: hsl(189, 86%, 50%);--color-secondary-500: hsl(189, 88%, 42%);--color-secondary-600: hsl(189, 88%, 35%);--color-positive-400: hsl(163, 100%, 34%);--color-positive-500: hsl(163, 100%, 31%);--color-positive-600: hsl(163, 100%, 27%);--color-negative-400: hsl(355, 79%, 70%);--color-negative-500: hsl(353, 79%, 63%);--color-negative-600: hsl(355, 79%, 58%);--color-warning-400: hsl(48, 70%, 55%);--color-warning-600: hsl(48, 70%, 45%);--color-info-400: hsl(200, 83%, 60%);--color-info-600: hsl(200, 83%, 45%);--color-content: hsl(230, 26%, 14%);--color-content-muted: hsl(230, 12%, 45%);--color-content-faint: hsl(230, 12%, 58%);--color-content-inv: hsl(220, 40%, 94%);--color-content-inv-muted: hsl(220, 18%, 68%);--color-content-inv-faint: hsl(220, 14%, 50%);--color-base: hsl(0, 0%, 100%);--color-base-soft: hsl(240, 24%, 98%);--color-base-sink: hsl(240, 20%, 96%);--color-ink: hsl(230, 28%, 7%);--color-ink-soft: hsl(230, 22%, 11%);--color-ink-line: hsl(230, 16%, 18%);--color-line: hsl(240, 16%, 90%);--color-line-strong: hsl(240, 16%, 84%);--color-shadow: 230 28% 7%;--font-family-primary: 'Hanken Grotesk', -apple-system, system-ui, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', sans-serif;--font-family-mono: 'JetBrains Mono', ui-monospace, 'SF Mono', 'SFMono-Regular', Menlo, monospace;--font-size-1200: 3rem;--font-size-1100: 2.5rem;--font-size-1000: 2.25rem;--font-size-900: 2rem;--font-size-800: 1.75rem;--font-size-700: 1.5rem;--font-size-600: 1.25rem;--font-size-500: 1.125rem;--font-size-400: 1rem;--font-size-300: 0.875rem;--font-size-200: 0.75rem;--font-size-100: 0.6875rem;--line-height-ui: 1.2;--line-height-default: 1.4;--line-height-paragraph: 1.7;--font-weight-default: 400;--font-weight-medium: 500;--font-weight-strong: 600;--font-weight-heading: 700;--timing-fast: 120ms;--timing-normal: 240ms;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--navbar-height: 4rem;--sidebar-width: 17rem;--toc-width: 15rem;--content-max: 50rem;--breakpoint-md: 1024px;--breakpoint-lg: 1280px;--shadow-panel: 0 1px 2px hsl(var(--color-shadow) / 0.06), 0 8px 24px -12px hsl(var(--color-shadow) / 0.18);--shadow-float: 0 2px 4px hsl(var(--color-shadow) / 0.08), 0 16px 40px -16px hsl(var(--color-shadow) / 0.28)}*,*::before,*::after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}body{min-height:100vh;line-height:var(--line-height-paragraph);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}img,picture,svg,video{display:block;max-width:100%}input,button,textarea,select{font:inherit;color:inherit}a{color:inherit;text-decoration:none}ul,ol{list-style:none;padding:0}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-heading);line-height:var(--line-height-default)}:focus-visible{outline:2px solid var(--color-primary-500);outline-offset:2px;border-radius:3px}body{font-family:var(--font-family-primary);font-size:var(--font-size-400);font-weight:var(--font-weight-default);background-color:var(--color-base);color:var(--color-content)}.u-grid-ink{background-color:var(--color-ink);background-image:linear-gradient(to right, rgba(226,232,243,0.04) 1px, transparent 1px),linear-gradient(to bottom, rgba(226,232,243,0.04) 1px, transparent 1px);background-size:40px 40px}.icon{width:1em;height:1em;display:inline-block;vertical-align:-0.125em;flex:none}.u-mono-label,.home-section-kicker,.home-kicker,.card-meta,.doc-pager-dir,.doc-breadcrumb,.doc-toc-label,.sidebar-group-label{font-family:var(--font-family-mono);font-size:var(--font-size-200);font-weight:var(--font-weight-medium);letter-spacing:0.08em;text-transform:uppercase}.u-signal{color:var(--color-primary-500)}.skip-link{position:absolute;left:-999px;top:0.5rem;z-index:100;background:var(--color-primary-600);color:#fff;padding:0.5rem 1rem;border-radius:var(--radius-sm)}.skip-link:focus{left:0.5rem}.navbar{position:sticky;top:0;z-index:50;height:var(--navbar-height);display:flex;align-items:center;gap:1.5rem;padding:0 1.25rem;background-color:rgba(13,15,23,0.86);backdrop-filter:saturate(140%) blur(12px);border-bottom:1px solid var(--color-ink-line);color:var(--color-content-inv)}.navbar-brand{display:flex;align-items:center;gap:0.6rem;font-weight:var(--font-weight-heading);font-size:var(--font-size-500);color:var(--color-content-inv);letter-spacing:-0.01em}.navbar-brand .mark{width:1.6rem;height:1.6rem;display:grid;place-items:center;border-radius:var(--radius-sm);background:linear-gradient(150deg, var(--color-primary-500), var(--color-primary-700));box-shadow:0 0 0 1px rgba(231,39,119,0.35),0 4px 14px -4px rgba(231,39,119,0.7)}.navbar-brand .mark svg{width:1rem;height:1rem;color:#fff}.navbar-brand .tag{font-family:var(--font-family-mono);font-size:var(--font-size-100);letter-spacing:0.1em;text-transform:uppercase;color:var(--color-content-inv-faint);padding:0.1rem 0.4rem;border:1px solid var(--color-ink-line);border-radius:999px;align-self:center}.navbar-nav{display:flex;align-items:center;gap:0.25rem;margin-left:0.5rem}.navbar-link{display:inline-flex;align-items:center;gap:0.4rem;padding:0.45rem 0.7rem;border-radius:var(--radius-sm);font-size:var(--font-size-300);font-weight:var(--font-weight-medium);color:var(--color-content-inv-muted);transition:color var(--timing-fast),background-color var(--timing-fast)}.navbar-link:hover{color:var(--color-content-inv);background-color:rgba(28,30,44,0.8)}.navbar-link.is-active{color:var(--color-content-inv)}.navbar-spacer{flex:1}.navbar-search{display:flex;align-items:center;gap:0.5rem;min-width:13rem;padding:0.4rem 0.7rem;font-size:var(--font-size-300);color:var(--color-content-inv-faint);background-color:#181a25;border:1px solid var(--color-ink-line);border-radius:var(--radius-sm);cursor:text;transition:border-color var(--timing-fast)}.navbar-search:hover{border-color:#383b4d}.navbar-search svg{width:0.95rem;height:0.95rem}.navbar-search .kbd{margin-left:auto;font-family:var(--font-family-mono);font-size:var(--font-size-100);padding:0.1rem 0.35rem;border:1px solid var(--color-ink-line);border-radius:4px}.navbar-burger{display:none;width:2.2rem;height:2.2rem;place-items:center;border-radius:var(--radius-sm);border:1px solid var(--color-ink-line);color:var(--color-content-inv);background:transparent;cursor:pointer}.navbar-burger svg{width:1.1rem;height:1.1rem}.layout{display:grid;grid-template-columns:var(--sidebar-width) minmax(0, 1fr);max-width:96rem;margin:0 auto}.sidebar{position:sticky;top:var(--navbar-height);align-self:start;height:calc(100vh - var(--navbar-height));overflow-y:auto;overscroll-behavior:contain;padding:1.75rem 0.75rem 3rem 1.25rem;border-right:1px solid var(--color-line);background-color:var(--color-base)}.sidebar-mobile-nav{display:none;padding-bottom:1.25rem;margin-bottom:1.25rem;border-bottom:1px solid var(--color-line)}.sidebar-mobile-nav .sidebar-link{font-weight:var(--font-weight-strong);color:var(--color-content)}@media (max-width: 1024px){.sidebar-mobile-nav{display:block}}.sidebar-group{margin-bottom:1.6rem}.sidebar-group-label{display:flex;align-items:center;gap:0.5rem;color:var(--color-content-faint);padding:0 0.6rem 0.55rem}.sidebar-group-label::before{content:'';width:0.55rem;height:1px;background:var(--color-primary-500)}.sidebar-link{display:block;padding:0.34rem 0.6rem;margin:1px 0;border-radius:var(--radius-sm);font-size:var(--font-size-300);color:var(--color-content-muted);border-left:2px solid transparent;transition:color var(--timing-fast),background-color var(--timing-fast)}.sidebar-link:hover{color:var(--color-content);background-color:var(--color-base-soft)}.sidebar-link.is-active{color:var(--color-primary-600);font-weight:var(--font-weight-strong);background-color:var(--color-primary-100);border-left-color:var(--color-primary-500)}.doc{display:grid;grid-template-columns:minmax(0, 1fr) var(--toc-width);gap:3.5rem;padding:2.5rem clamp(1.25rem, 4vw, 3.5rem) 6rem}.doc-article{max-width:var(--content-max);min-width:0}.doc-toc{position:sticky;top:calc(var(--navbar-height) + 2.5rem);align-self:start;max-height:calc(100vh - var(--navbar-height) - 4rem);overflow-y:auto;font-size:var(--font-size-300)}.doc-toc-label{color:var(--color-content-faint);padding-bottom:0.6rem;margin-bottom:0.6rem;border-bottom:1px solid var(--color-line)}.doc-toc nav ul{display:flex;flex-direction:column;gap:0.1rem}.doc-toc nav ul ul{padding-left:0.85rem}.doc-toc a{display:block;padding:0.2rem 0;color:var(--color-content-muted);border-left:2px solid transparent;padding-left:0.7rem;margin-left:-0.7rem;transition:color var(--timing-fast)}.doc-toc a:hover{color:var(--color-content)}.doc-toc a.is-active{color:var(--color-primary-600);border-left-color:var(--color-primary-500)}@media (max-width: 1280px){.doc{grid-template-columns:minmax(0, 1fr)}.doc-toc{display:none}}@media (max-width: 1024px){:root{--sidebar-width: 0px}.navbar-burger{display:grid}.navbar-nav{display:none}.layout{grid-template-columns:minmax(0, 1fr)}.sidebar{position:fixed;top:var(--navbar-height);left:0;width:82vw;max-width:20rem;height:calc(100vh - var(--navbar-height));transform:translateX(-102%);transition:transform var(--timing-normal) ease;z-index:45;box-shadow:var(--shadow-float)}#nav-toggle:checked~.layout .sidebar{transform:translateX(0)}#nav-toggle:checked~.sidebar-scrim{opacity:1;pointer-events:auto}.sidebar-scrim{position:fixed;inset:var(--navbar-height) 0 0 0;background:rgba(13,15,23,0.5);opacity:0;pointer-events:none;transition:opacity var(--timing-normal);z-index:44}}@media (max-width: 640px){.navbar-search{display:none}}.doc-breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:0.45rem;color:var(--color-content-faint);margin-bottom:1.1rem}.doc-breadcrumb a{color:var(--color-content-faint);transition:color var(--timing-fast)}.doc-breadcrumb a:hover{color:var(--color-primary-600)}.doc-breadcrumb .sep{opacity:0.5}.doc-breadcrumb .current{color:var(--color-content-muted)}.doc-title{font-size:clamp(2rem, 4vw, var(--font-size-1100));letter-spacing:-0.02em;line-height:1.1;margin-bottom:0.7rem}.doc-lead{font-size:var(--font-size-500);color:var(--color-content-muted);line-height:var(--line-height-paragraph);max-width:44rem}.doc-header{padding-bottom:1.5rem;margin-bottom:2rem;border-bottom:1px solid var(--color-line)}.prose{font-size:var(--font-size-400);color:var(--color-content)}.prose>*+*{margin-top:1.1rem}.prose h2{font-size:var(--font-size-800);letter-spacing:-0.015em;margin-top:3rem;padding-top:0.4rem;scroll-margin-top:calc(var(--navbar-height) + 1.5rem)}.prose h3{font-size:var(--font-size-600);margin-top:2.2rem;scroll-margin-top:calc(var(--navbar-height) + 1.5rem)}.prose h4{font-size:var(--font-size-500);margin-top:1.8rem;scroll-margin-top:calc(var(--navbar-height) + 1.5rem)}.prose h2+p,.prose h3+p,.prose h4+p{margin-top:0.6rem}.prose p{line-height:var(--line-height-paragraph)}.prose a:not(.button){color:var(--color-primary-600);font-weight:var(--font-weight-medium);text-decoration:underline;text-decoration-color:var(--color-primary-200);text-underline-offset:2px;transition:text-decoration-color var(--timing-fast)}.prose a:not(.button):hover{text-decoration-color:var(--color-primary-500)}.prose strong{font-weight:var(--font-weight-strong)}.prose ul,.prose ol{padding-left:1.3rem;line-height:var(--line-height-paragraph)}.prose ul{list-style:none}.prose ul>li{position:relative}.prose ul>li::before{content:'';position:absolute;left:-1.05rem;top:0.72em;width:5px;height:5px;border-radius:1px;background:var(--color-primary-400);transform:rotate(45deg)}.prose ol{list-style:decimal}.prose ol::marker{color:var(--color-content-faint)}.prose li+li{margin-top:0.35rem}.prose li>ul,.prose li>ol{margin-top:0.35rem}.prose blockquote{padding:0.25rem 0 0.25rem 1.1rem;border-left:2px solid var(--color-line-strong);color:var(--color-content-muted);font-style:italic}.prose hr{border:0;border-top:1px solid var(--color-line);margin:2.5rem 0}.heading-anchor{color:var(--color-content-faint);opacity:0;margin-left:0.5rem;font-weight:400;text-decoration:none;transition:opacity var(--timing-fast),color var(--timing-fast)}.prose h2:hover .heading-anchor,.prose h3:hover .heading-anchor,.prose h4:hover .heading-anchor{opacity:1}.heading-anchor:hover{color:var(--color-primary-500)}.doc-pager{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:4rem;padding-top:2rem;border-top:1px solid var(--color-line)}.doc-pager-link{display:flex;flex-direction:column;gap:0.25rem;padding:0.9rem 1.1rem;border:1px solid var(--color-line);border-radius:var(--radius-md);transition:border-color var(--timing-fast),background-color var(--timing-fast)}.doc-pager-link:hover{border-color:var(--color-primary-300);background:var(--color-primary-100)}.doc-pager-link.-next{text-align:right}.doc-pager-dir{color:var(--color-content-faint)}.doc-pager-title{font-weight:var(--font-weight-strong);color:var(--color-content)}@media (max-width: 560px){.doc-pager{grid-template-columns:1fr}}.prose :not(pre)>code{font-family:var(--font-family-mono);font-size:0.86em;padding:0.12em 0.4em;border-radius:5px;background:var(--color-base-sink);border:1px solid var(--color-line);color:var(--color-primary-700);word-break:break-word}.prose a:not(.button) code{color:inherit}.chroma-wrap{margin-top:1.4rem;background:#0f111a;border:1px solid var(--color-ink-line);border-radius:var(--radius-md);box-shadow:var(--shadow-panel);overflow:hidden}.chroma-wrap pre{margin:0;padding:1rem 1.15rem;overflow-x:auto;font-family:var(--font-family-mono);font-size:var(--font-size-300);line-height:1.65;color:#ccd3e1;tab-size:2}.chroma-wrap pre::-webkit-scrollbar{height:8px}.chroma-wrap pre::-webkit-scrollbar-thumb{background:var(--color-ink-line);border-radius:999px}.code-block{margin-top:1.4rem}.code-block .chroma-wrap{margin-top:0;border-radius:0 0 var(--radius-md) var(--radius-md)}.code-head{display:flex;align-items:center;gap:0.55rem;padding:0.55rem 0.9rem;background:#151823;border:1px solid var(--color-ink-line);border-bottom:0;border-radius:var(--radius-md) var(--radius-md) 0 0;font-family:var(--font-family-mono);font-size:var(--font-size-200);color:var(--color-content-inv-muted)}.code-head .dot{width:0.5rem;height:0.5rem;border-radius:999px;background:var(--color-primary-500)}.code-head .lang{margin-left:auto;text-transform:uppercase;letter-spacing:0.08em;color:var(--color-content-inv-faint);font-size:var(--font-size-100)}.copy-btn{position:absolute;top:0.55rem;right:0.55rem;font-family:var(--font-family-mono);font-size:var(--font-size-100);letter-spacing:0.04em;text-transform:uppercase;color:var(--color-content-inv-muted);background:#1c1e2c;border:1px solid var(--color-ink-line);border-radius:5px;padding:0.25rem 0.55rem;cursor:pointer;opacity:0;transition:opacity var(--timing-fast),color var(--timing-fast),border-color var(--timing-fast)}.chroma-wrap:hover .copy-btn,.copy-btn:focus-visible{opacity:1}.copy-btn:hover{color:var(--color-content-inv);border-color:#3c4053}.copy-btn.is-done{color:var(--color-positive-400);border-color:var(--color-positive-600)}.chroma .c,.chroma .ch,.chroma .cm,.chroma .c1,.chroma .cs{color:#70758f;font-style:italic}.chroma .cp,.chroma .cpf{color:#7e839a}.chroma .k,.chroma .kc,.chroma .kd,.chroma .kn,.chroma .kp,.chroma .kr{color:#f47bad}.chroma .kt{color:#6cdbef}.chroma .o,.chroma .ow{color:#8f99ae}.chroma .p{color:#959eb2}.chroma .nb,.chroma .bp{color:#75ddf0}.chroma .nf,.chroma .fm{color:#61daef}.chroma .nc,.chroma .nn{color:#eed677}.chroma .nt{color:#f17eae}.chroma .na{color:#eed677}.chroma .nv,.chroma .vc,.chroma .vg,.chroma .vi{color:#cad2e2}.chroma .s,.chroma .s1,.chroma .s2,.chroma .sb,.chroma .sc,.chroma .sd,.chroma .sh,.chroma .sx,.chroma .sr,.chroma .ss{color:#6ed8a3}.chroma .se,.chroma .si{color:#f0d775}.chroma .m,.chroma .mi,.chroma .mf,.chroma .mh,.chroma .mo,.chroma .il{color:#f7a964}.chroma .l,.chroma .ld{color:#6ed8a3}.chroma .gp{color:#e36398;user-select:none}.chroma .gi{color:#5ed499}.chroma .gd{color:#e7747e}.chroma .err{color:#ef7680}.button{display:inline-flex;align-items:center;justify-content:center;gap:0.5rem;padding:0.6rem 1.1rem;border-radius:var(--radius-sm);font-size:var(--font-size-300);font-weight:var(--font-weight-strong);border:1px solid transparent;cursor:pointer;transition:background-color var(--timing-fast),border-color var(--timing-fast),transform var(--timing-fast);text-decoration:none}.button:active{transform:translateY(1px)}.button svg{width:1em;height:1em}.button.-primary{background:var(--color-primary-600);color:#fff}.button.-primary:hover{background:var(--color-primary-500)}.button.-ghost{color:var(--color-content);border-color:var(--color-line-strong);background:var(--color-base)}.button.-ghost:hover{border-color:var(--color-primary-300);background:var(--color-primary-100)}.button.-ink{background:#1c1e2c;color:var(--color-content-inv);border-color:var(--color-ink-line)}.button.-ink:hover{background:#242738}.button.-small{padding:0.4rem 0.8rem;font-size:var(--font-size-200)}.callout{display:flex;gap:0.85rem;margin-top:1.4rem;padding:0.95rem 1.1rem;border:1px solid var(--color-line);border-left-width:3px;border-radius:var(--radius-md);background:var(--color-base-soft)}.callout-icon{flex:none;width:1.2rem;height:1.2rem;margin-top:0.15rem}.callout-icon svg{width:100%;height:100%}.callout-body{font-size:var(--font-size-300);line-height:var(--line-height-paragraph);color:var(--color-content-muted)}.callout-body>*+*{margin-top:0.5rem}.callout-body strong{color:var(--color-content)}.callout-title{display:block;font-family:var(--font-family-mono);font-size:var(--font-size-200);letter-spacing:0.06em;text-transform:uppercase;font-weight:var(--font-weight-strong);margin-bottom:0.3rem}.callout.-note{border-left-color:var(--color-info-600)}.callout.-note .callout-icon,.callout.-note .callout-title{color:var(--color-info-600)}.callout.-tip{border-left-color:var(--color-positive-600)}.callout.-tip .callout-icon,.callout.-tip .callout-title{color:var(--color-positive-600)}.callout.-warning{border-left-color:var(--color-warning-600)}.callout.-warning .callout-icon,.callout.-warning .callout-title{color:var(--color-warning-600)}.callout.-danger{border-left-color:var(--color-negative-600)}.callout.-danger .callout-icon,.callout.-danger .callout-title{color:var(--color-negative-600)}.shot{margin:1.8rem 0}.shot-frame{border:1px solid var(--color-line-strong);border-radius:var(--radius-lg);overflow:hidden;background:var(--color-ink);box-shadow:var(--shadow-float)}.shot-chrome{display:flex;align-items:center;gap:0.7rem;padding:0.6rem 0.9rem;background:#131520;border-bottom:1px solid var(--color-ink-line)}.shot-dots{display:flex;gap:0.4rem}.shot-dots i{width:0.62rem;height:0.62rem;border-radius:999px;background:#3d4151}.shot-dots i:first-child{background:#d14753}.shot-dots i:nth-child(2){background:#dda73c}.shot-dots i:nth-child(3){background:#3db87a}.shot-url{flex:1;max-width:26rem;font-family:var(--font-family-mono);font-size:var(--font-size-200);color:var(--color-content-inv-faint);background:#1a1c28;border:1px solid var(--color-ink-line);border-radius:999px;padding:0.25rem 0.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shot-frame img{display:block;width:100%;height:auto;background:var(--color-base)}.shot-caption{display:flex;gap:0.5rem;margin-top:0.7rem;font-size:var(--font-size-200);color:var(--color-content-faint)}.shot-caption::before{content:'';flex:none;width:1rem;height:1px;margin-top:0.55rem;background:var(--color-primary-500)}.card-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(15rem, 1fr));gap:1rem;margin-top:1.6rem}.card{display:flex;flex-direction:column;gap:0.4rem;padding:1.15rem 1.2rem 1.25rem;border:1px solid var(--color-line);border-radius:var(--radius-md);background:var(--color-base);transition:border-color var(--timing-fast),transform var(--timing-fast),box-shadow var(--timing-fast)}a.card:hover{border-color:var(--color-primary-300);transform:translateY(-2px);box-shadow:var(--shadow-panel)}.card-icon{width:2.1rem;height:2.1rem;display:grid;place-items:center;border-radius:var(--radius-sm);background:var(--color-primary-100);color:var(--color-primary-600);margin-bottom:0.4rem}.card-icon svg{width:1.15rem;height:1.15rem}.card-title{font-weight:var(--font-weight-strong);font-size:var(--font-size-500);letter-spacing:-0.01em}.card-desc{font-size:var(--font-size-300);color:var(--color-content-muted);line-height:var(--line-height-default)}.card-meta{margin-top:auto;padding-top:0.7rem;color:var(--color-content-faint);display:flex;align-items:center;gap:0.4rem}a.card:hover .card-meta{color:var(--color-primary-600)}.prose table{width:100%;border-collapse:collapse;margin-top:1.4rem;font-size:var(--font-size-300);border:1px solid var(--color-line);border-radius:var(--radius-md);overflow:hidden}.prose thead{background:var(--color-base-soft)}.prose th{text-align:left;font-family:var(--font-family-mono);font-size:var(--font-size-200);letter-spacing:0.04em;text-transform:uppercase;color:var(--color-content-muted);padding:0.6rem 0.9rem;border-bottom:1px solid var(--color-line)}.prose td{padding:0.65rem 0.9rem;border-bottom:1px solid var(--color-line);vertical-align:top;line-height:var(--line-height-default)}.prose tbody tr:last-child td{border-bottom:0}.prose td code{white-space:nowrap}.badge{display:inline-flex;align-items:center;gap:0.3rem;font-family:var(--font-family-mono);font-size:var(--font-size-100);letter-spacing:0.04em;text-transform:uppercase;padding:0.16rem 0.5rem;border-radius:999px;border:1px solid var(--color-line-strong);color:var(--color-content-muted)}.badge.-method{color:var(--color-primary-700);border-color:var(--color-primary-300);background:var(--color-primary-100)}kbd{font-family:var(--font-family-mono);font-size:0.82em;padding:0.08em 0.4em;border:1px solid var(--color-line-strong);border-bottom-width:2px;border-radius:5px;background:var(--color-base)}.steps{counter-reset:step;margin-top:1.5rem;padding-left:0;list-style:none}.steps>li{position:relative;padding-left:2.6rem;padding-bottom:1.6rem;margin-left:0.4rem;border-left:1px solid var(--color-line)}.steps>li:last-child{border-left-color:transparent;padding-bottom:0}.steps>li::before{counter-increment:step;content:counter(step);position:absolute;left:-0.9rem;top:-0.15rem;width:1.8rem;height:1.8rem;display:grid;place-items:center;font-family:var(--font-family-mono);font-size:var(--font-size-300);font-weight:var(--font-weight-strong);color:var(--color-primary-600);background:var(--color-base);border:1px solid var(--color-primary-300);border-radius:999px}.steps>li::before{box-shadow:0 0 0 4px var(--color-base)}.step-title{font-weight:var(--font-weight-strong);display:block;margin-bottom:0.2rem}button.navbar-search{appearance:none;text-align:left;font:inherit;color:var(--color-content-inv-faint)}.search-modal[hidden]{display:none}.search-modal{position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;align-items:center;padding:clamp(2rem, 10vh, 6rem) 1rem 1rem}.search-backdrop{position:absolute;inset:0;background:rgba(13,15,23,0.55);backdrop-filter:saturate(120%) blur(6px)}.search-panel{position:relative;width:100%;max-width:36rem;background:var(--color-base);border:1px solid var(--color-line);border-radius:var(--radius-lg);box-shadow:var(--shadow-float);overflow:hidden;display:flex;flex-direction:column;max-height:calc(100vh - 6rem)}.search-input-row{display:flex;align-items:center;gap:0.7rem;padding:0.85rem 1rem;border-bottom:1px solid var(--color-line)}.search-input-row .icon{width:1.1rem;height:1.1rem;color:var(--color-content-muted)}.search-input{flex:1;min-width:0;border:0;outline:0;background:transparent;font-size:var(--font-size-500);color:var(--color-content)}.search-input::placeholder{color:var(--color-content-faint)}.search-input-row .kbd{font-family:var(--font-family-mono);font-size:var(--font-size-100);padding:0.12rem 0.4rem;border:1px solid var(--color-line-strong);border-bottom-width:2px;border-radius:4px;color:var(--color-content-muted)}.search-results{overflow-y:auto;overscroll-behavior:contain;padding:0.4rem}.search-empty{padding:1.8rem 1rem;text-align:center;color:var(--color-content-muted);font-size:var(--font-size-300)}.search-empty strong{color:var(--color-content);font-weight:var(--font-weight-strong)}.search-hit{display:block;padding:0.65rem 0.8rem;border-radius:var(--radius-sm);color:var(--color-content);border-left:2px solid transparent;transition:background-color var(--timing-fast)}.search-hit:hover{background:var(--color-base-soft)}.search-hit.is-active{background:var(--color-primary-100);border-left-color:var(--color-primary-500)}.search-hit-section{display:block;font-family:var(--font-family-mono);font-size:var(--font-size-100);letter-spacing:0.08em;text-transform:uppercase;color:var(--color-content-faint);margin-bottom:0.1rem}.search-hit.is-active .search-hit-section{color:var(--color-primary-700)}.search-hit-title{display:block;font-size:var(--font-size-400);font-weight:var(--font-weight-strong);color:var(--color-content)}.search-hit.is-active .search-hit-title{color:var(--color-primary-700)}.search-hit-desc{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:var(--font-size-300);color:var(--color-content-muted);margin-top:0.1rem;line-height:var(--line-height-default)}.search-hit mark{background:transparent;color:var(--color-primary-600);font-weight:var(--font-weight-strong)}.search-hit.is-active mark{color:var(--color-primary-700)}.search-foot{display:flex;align-items:center;gap:1rem;padding:0.5rem 0.9rem;border-top:1px solid var(--color-line);font-family:var(--font-family-mono);font-size:var(--font-size-100);letter-spacing:0.04em;text-transform:uppercase;color:var(--color-content-faint);background:var(--color-base-soft)}.search-foot .key{display:inline-block;padding:0 0.4rem;margin-right:0.3rem;border:1px solid var(--color-line-strong);border-radius:3px;color:var(--color-content-muted)}html.is-search-open{overflow:hidden}@media (max-width: 640px){.search-modal{padding:0}.search-panel{max-width:100%;max-height:100vh;border-radius:0;border-width:0}}.home{display:block}.home-hero{position:relative;overflow:hidden;padding:clamp(3.5rem, 9vw, 7rem) 1.5rem clamp(3rem, 7vw, 5rem);color:var(--color-content-inv);border-bottom:1px solid var(--color-ink-line)}.home-hero::after{content:'';position:absolute;top:-30%;right:-10%;width:40rem;height:40rem;background:radial-gradient(circle, rgba(231,39,119,0.22), transparent 60%);pointer-events:none}.home-hero-inner{max-width:60rem;margin:0 auto;position:relative;z-index:1}.home-kicker{display:inline-flex;align-items:center;gap:0.55rem;color:var(--color-primary-400);margin-bottom:1.4rem}.home-kicker::before{content:'';width:1.4rem;height:1px;background:var(--color-primary-500)}.home-title{font-size:clamp(2.4rem, 6vw, 4rem);line-height:1.02;letter-spacing:-0.03em;max-width:18ch}.home-title .signal{color:var(--color-primary-400)}.home-lead{margin-top:1.4rem;font-size:clamp(1.05rem, 2vw, var(--font-size-600));line-height:var(--line-height-paragraph);color:var(--color-content-inv-muted);max-width:46rem}.home-actions{display:flex;flex-wrap:wrap;gap:0.8rem;margin-top:2rem}.home-section{max-width:64rem;margin:0 auto;padding:clamp(2.5rem, 6vw, 4.5rem) 1.5rem}.home-section+.home-section{padding-top:0}.home-section-head{margin-bottom:0.4rem}.home-section-kicker{color:var(--color-primary-600)}.home-section-title{font-size:var(--font-size-800);letter-spacing:-0.015em;margin-top:0.5rem}.home-section-lead{color:var(--color-content-muted);margin-top:0.5rem;max-width:44rem}.home-terminal{margin-top:1.6rem;background:#0f111a;border:1px solid var(--color-ink-line);border-radius:var(--radius-lg);box-shadow:var(--shadow-float);overflow:hidden}.home-terminal pre{margin:0;padding:1.2rem 1.4rem;font-family:var(--font-family-mono);font-size:var(--font-size-300);line-height:1.9;color:#ccd3e1;overflow-x:auto}.home-terminal .pmpt{color:var(--color-primary-400);user-select:none}.home-terminal .cmt{color:#70758f}.home-terminal .arg{color:#6ed8a3}.home-foot{border-top:1px solid var(--color-line);margin-top:2rem;padding:2.5rem 1.5rem;text-align:center;color:var(--color-content-faint);font-size:var(--font-size-300)}.home-foot a{color:var(--color-content-muted)}.home-foot a:hover{color:var(--color-primary-600)}
