.learn{min-height:calc(100vh - var(--topbar));grid-template-columns:264px minmax(0,1fr);display:grid}.learn-side{top:var(--topbar);height:calc(100vh - var(--topbar));border-right:1px solid var(--color-border-subtle);padding:var(--space-4) var(--space-3) var(--space-8);background:var(--color-bg-base);scrollbar-width:thin;align-self:start;position:sticky;overflow-y:auto}.learn-drawer-head{display:none}.learn-main{min-width:0}.learn-bar,.learn-scrim{display:none}body.no-scroll{overflow:hidden}.learn-tree{flex-direction:column;gap:2px;display:flex}.learn-tree ul{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.learn-link{align-items:center;gap:var(--space-2);min-width:0;min-height:36px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:var(--text-label-size);line-height:var(--text-body-line);font-weight:var(--weight-medium);flex:1;display:flex}.learn-link:hover{color:var(--color-text-primary);background:var(--color-bg-hover);text-decoration:none}.learn-link svg{width:var(--icon-sm);height:var(--icon-sm);flex:none}.learn-link.top{margin-bottom:var(--space-2)}.learn-link.on,.learn-item.on>.learn-link{color:var(--color-text-primary);background:var(--color-bg-active);font-weight:var(--weight-semibold)}.learn-link.top.on svg{color:var(--color-accent)}.learn-link.child{padding-left:var(--space-6);font-size:var(--text-body-size);min-height:32px;padding-top:6px;padding-bottom:6px}.learn-link.child.on{box-shadow:inset 2px 0 0 var(--color-accent)}.learn-item{border-radius:var(--radius-md);align-items:center;display:flex}.learn-item:hover>.learn-toggle{color:var(--color-text-primary)}.learn-toggle{width:32px;height:32px;color:var(--color-text-tertiary);border-radius:var(--radius-md);background:0 0;border:0;flex:none;padding:0}.learn-toggle:hover:not(:disabled){background:var(--color-bg-hover);color:var(--color-text-primary);border-color:#0000}.learn-toggle svg{transition:transform var(--duration-fast) var(--ease-standard)}.learn-toggle svg.open{transform:rotate(90deg)}.learn-children{margin:2px 0 var(--space-2)!important}.learn-group{margin-top:var(--space-3)}.learn-group-head{width:100%;height:32px;padding:0 var(--space-3);color:var(--color-text-tertiary);font-size:var(--text-caption-size);font-weight:var(--weight-semibold);background:0 0;border:0;justify-content:space-between}.learn-group-head:hover:not(:disabled){color:var(--color-text-primary);background:0 0;border-color:#0000}.learn-group-head svg{transition:transform var(--duration-fast) var(--ease-standard)}.learn-group-head svg.closed{transform:rotate(-90deg)}.learn-doc{gap:var(--space-12);padding:var(--space-8) var(--space-10) var(--space-20);animation:enter var(--duration-slow) var(--ease-enter) backwards;grid-template-columns:minmax(0,760px) 224px;justify-content:center;display:grid}.learn-doc.single{grid-template-columns:minmax(0,760px)}.learn-article{min-width:0}.crumbs ol{align-items:center;gap:var(--space-1);margin:0 0 var(--space-4);font-size:var(--text-caption-size);font-weight:var(--weight-medium);flex-wrap:wrap;padding:0;list-style:none;display:flex}.crumbs li{align-items:center;gap:var(--space-1);display:inline-flex}.crumbs li+li:before{content:"/";color:var(--color-text-disabled);margin-right:var(--space-1)}.crumbs a{color:var(--color-text-secondary)}.crumbs a:hover{color:var(--color-text-primary)}.learn-head{margin-bottom:var(--space-6);padding-bottom:var(--space-5);border-bottom:1px solid var(--color-border-subtle)}.learn-head h1{margin:0 0 var(--space-2)}.learn-lead{color:var(--color-text-secondary);font-size:var(--text-body-lg-size);line-height:var(--text-body-lg-line);margin:0 0 var(--space-2)}.learn-meta{color:var(--color-text-tertiary);font-size:var(--text-caption-size);margin:0}.learn-toc{top:calc(var(--topbar) + var(--space-8));max-height:calc(100vh - var(--topbar) - var(--space-16));padding-top:var(--space-1);align-self:start;position:sticky;overflow-y:auto}.learn-toc-title{font-size:var(--text-caption-size);font-weight:var(--weight-semibold);color:var(--color-text-primary);margin:0 0 var(--space-2)}.learn-toc ul,.toc-inline ul{border-left:1px solid var(--color-border-subtle);margin:0;padding:0;list-style:none}.learn-toc a,.toc-inline a{padding:5px var(--space-3);color:var(--color-text-secondary);font-size:var(--text-caption-size);line-height:var(--text-caption-line);font-weight:var(--weight-medium);border-left:2px solid #0000;margin-left:-1px;display:block}.learn-toc li.sub a,.toc-inline li.sub a{padding-left:var(--space-6)}.learn-toc a:hover,.toc-inline a:hover{color:var(--color-text-primary);text-decoration:none}.learn-toc a.on{color:var(--color-text-primary);border-left-color:var(--color-accent)}.toc-inline{margin:0 0 var(--space-6);background:var(--color-bg-surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);display:none}.toc-inline summary{font-weight:var(--weight-semibold);font-size:var(--text-label-size)}.toc-inline[open] summary{margin-bottom:var(--space-3)}.pager{gap:var(--space-3);margin-top:var(--space-12);padding-top:var(--space-6);border-top:1px solid var(--color-border-subtle);grid-template-columns:1fr 1fr;display:grid}.pager-link{gap:var(--space-1);padding:var(--space-4);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);background:var(--color-bg-surface);color:var(--color-text-primary);flex-direction:column;min-width:0;display:flex}.pager-link:hover{border-color:var(--color-border-strong);text-decoration:none}.pager-link.next{text-align:right;grid-column:2;align-items:flex-end}.pager-dir{align-items:center;gap:var(--space-1);color:var(--color-text-tertiary);font-size:var(--text-caption-size);font-weight:var(--weight-medium);display:inline-flex}.pager-dir svg{width:14px;height:14px}.pager-title{font-weight:var(--weight-semibold);overflow-wrap:anywhere}.prose{font-size:var(--text-body-lg-size);color:var(--color-text-secondary);overflow-wrap:break-word;line-height:26px}.prose>:first-child{margin-top:0}.prose p,.prose ul,.prose ol,.prose blockquote,.prose .table-wrap,.prose .code-block,.prose .code-tabs,.prose .callout{margin:0 0 var(--space-5)}.prose h2{margin:var(--space-12) 0 var(--space-4);scroll-margin-top:calc(var(--topbar) + var(--space-6))}.prose h3{margin:var(--space-8) 0 var(--space-3);scroll-margin-top:calc(var(--topbar) + var(--space-6));font-size:18px;line-height:26px}.prose h4{margin:var(--space-6) 0 var(--space-2);scroll-margin-top:calc(var(--topbar) + var(--space-6))}.prose h2,.prose h3,.prose h4{color:var(--color-text-primary);position:relative}.heading-anchor{margin-left:var(--space-2);color:var(--color-text-tertiary);font-weight:var(--weight-medium);opacity:0;transition:opacity var(--duration-fast) var(--ease-standard)}.prose :is(h2,h3,h4):hover .heading-anchor,.heading-anchor:focus-visible{opacity:1;text-decoration:none}.prose strong{color:var(--color-text-primary)}.prose a{color:var(--color-accent-text);text-decoration:underline;-webkit-text-decoration-color:var(--color-border-strong);text-decoration-color:var(--color-border-strong);text-underline-offset:3px}.prose a:hover{text-decoration-color:currentColor}.prose ul,.prose ol{padding-left:var(--space-6)}.prose li{margin:var(--space-1) 0}.prose li>ul,.prose li>ol{margin:var(--space-1) 0 0}.prose li::marker{color:var(--color-text-tertiary)}.prose blockquote{border-left:2px solid var(--color-border-strong);padding:var(--space-1) 0 var(--space-1) var(--space-4);color:var(--color-text-secondary)}.prose hr{margin:var(--space-8) 0}.prose :not(pre)>code{font-family:var(--font-mono);border-radius:var(--radius-xs);background:var(--color-bg-raised);border:1px solid var(--color-border-subtle);color:var(--color-text-primary);overflow-wrap:anywhere;padding:1px 6px;font-size:.875em}.table-wrap{border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);overflow-x:auto}.prose table{font-size:var(--text-body-size);line-height:var(--text-body-line)}.prose th{color:var(--color-text-primary);font-weight:var(--weight-semibold);font-size:var(--text-caption-size);white-space:nowrap}.prose td{color:var(--color-text-secondary);vertical-align:top}.prose td code{white-space:nowrap}.callout{background:var(--color-bg-surface);border:1px solid var(--color-border-subtle);border-left:3px solid var(--color-border-strong);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);font-size:var(--text-body-size);line-height:22px}.callout>:last-child{margin-bottom:0}.callout p{margin:0 0 var(--space-2)}.callout-title{font-weight:var(--weight-semibold);color:var(--color-text-primary);margin-bottom:var(--space-1)!important}.callout-tip{border-left-color:var(--color-accent)}.callout-warning{border-left-color:var(--color-warn)}.callout-warning .callout-title{color:var(--color-warn)}.callout-caution{border-left-color:var(--color-danger)}.callout-caution .callout-title{color:var(--color-danger)}.code-block{border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);background:var(--color-bg-sunken);overflow:hidden}.code-head{justify-content:space-between;align-items:center;gap:var(--space-2);height:36px;padding:0 var(--space-2) 0 var(--space-4);border-bottom:1px solid var(--color-border-subtle);background:var(--color-bg-surface);display:flex}.code-title{font-size:var(--text-caption-size);font-weight:var(--weight-medium);color:var(--color-text-tertiary);font-family:var(--font-mono);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.code-copy{height:26px;padding:0 var(--space-2);font-size:var(--text-caption-size);font-weight:var(--weight-medium);color:var(--color-text-secondary);background:0 0;border-color:#0000}.code-copy:hover:not(:disabled){background:var(--color-bg-hover);color:var(--color-text-primary);border-color:#0000}.code-block pre{padding:var(--space-4);font-family:var(--font-mono);tab-size:2;margin:0;font-size:13px;line-height:21px;overflow-x:auto}.code-block code{color:var(--color-text-secondary);font-family:inherit}.code-tabs{border-radius:var(--radius-lg)}.code-tabs .code-block{border-top:0;border-top-left-radius:0;border-top-right-radius:0}.code-tabs .tab-panel>.code-block{margin:0}.tab-list{gap:var(--space-1);padding:0 var(--space-2);background:var(--color-bg-surface);border:1px solid var(--color-border-subtle);border-bottom:1px solid var(--color-border-subtle);border-radius:var(--radius-lg) var(--radius-lg) 0 0;display:flex;overflow-x:auto}.tab-button{height:36px;padding:0 var(--space-3);color:var(--color-text-secondary);font-size:var(--text-caption-size);background:0 0;border:0;border-bottom:2px solid #0000;border-radius:0;margin-bottom:-1px}.tab-button:hover:not(:disabled){color:var(--color-text-primary);background:0 0;border-color:#0000}.tab-button[aria-selected=true],.tab-button[aria-selected=true]:hover:not(:disabled){color:var(--color-text-primary);border-bottom:2px solid var(--color-accent)}.hljs-keyword,.hljs-built_in,.hljs-type,.hljs-literal,.hljs-section,.hljs-selector-tag{color:var(--color-text-primary);font-weight:var(--weight-semibold)}.hljs-title,.hljs-title.function_,.hljs-title.class_,.hljs-attr,.hljs-attribute,.hljs-property,.hljs-name,.hljs-variable.language_,.hljs-string,.hljs-regexp,.hljs-symbol,.hljs-template-tag,.hljs-number{color:var(--color-text-primary)}.hljs-comment,.hljs-quote,.hljs-meta,.hljs-doctag{color:var(--color-text-tertiary);font-style:italic}.hljs-punctuation,.hljs-operator,.hljs-subst{color:var(--color-text-tertiary)}.hljs-params{color:var(--color-text-secondary)}.learn-home{padding:var(--space-8) var(--space-10) var(--space-20);max-width:calc(1120px + 2 * var(--space-10));animation:enter var(--duration-slow) var(--ease-enter) backwards;margin:0 auto}.learn-hero{align-items:center;gap:var(--space-8);padding:var(--space-10) var(--space-10);background:var(--color-bg-surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);grid-template-columns:minmax(0,1fr) 320px;display:grid;overflow:hidden}.learn-hero h1{margin:0 0 var(--space-2)}.learn-hero p{color:var(--color-text-secondary);font-size:var(--text-body-lg-size);line-height:var(--text-body-lg-line);margin:0 0 var(--space-6)}.learn-hero-art{width:100%;height:auto;max-height:220px}.hero-search{width:min(480px,100%);height:var(--control-lg);justify-content:flex-start;gap:var(--space-3);padding:0 var(--space-2) 0 var(--space-4);border-radius:var(--radius-pill);background:var(--color-bg-sunken);border-color:var(--color-border);color:var(--color-text-tertiary);font-weight:var(--weight-regular);font-size:var(--text-body-lg-size)}.hero-search:hover:not(:disabled){background:var(--color-bg-sunken);border-color:var(--color-border-strong);color:var(--color-text-secondary)}.hero-search svg{width:var(--icon-md);height:var(--icon-md)}.hero-search span{text-align:left;flex:1}kbd,.hero-kbd{font-family:var(--font-sans);font-size:var(--text-micro-size);line-height:var(--text-micro-line);font-weight:var(--weight-semibold);color:var(--color-text-secondary);background:var(--color-bg-raised);border:1px solid var(--color-border);border-radius:var(--radius-xs);white-space:nowrap;align-items:center;gap:2px;padding:2px 6px;display:inline-flex}kbd svg{width:11px;height:11px}.hero-kbd{height:28px;padding:0 var(--space-2);border-radius:var(--radius-pill)}.doc-art{aspect-ratio:16/9;border-radius:var(--radius-md);outline:1px solid var(--color-border-subtle);outline-offset:-1px;background:var(--color-bg-surface);transition:outline-color var(--duration-base) var(--ease-standard), filter var(--duration-base) var(--ease-standard);position:relative;overflow:hidden}.doc-art-cubes{width:100%;height:100%;display:block;position:absolute;inset:0}.doc-art-mark{aspect-ratio:1;border-radius:var(--radius-lg);background:var(--color-bg-raised);border:1px solid var(--color-border);width:25%;color:var(--color-text-secondary);justify-content:center;align-items:center;display:flex;position:absolute;top:50%;left:12%;transform:translateY(-50%)}.doc-art-mark svg{width:46%;height:46%}.doc-art.small{flex:none;width:96px}.doc-art.small .doc-art-cubes g{display:none}.doc-art.small .doc-art-mark{border-radius:var(--radius-md);width:40%;left:50%;transform:translate(-50%,-50%)}.doc-card{gap:var(--space-1);color:var(--color-text-primary);flex-direction:column;min-width:0;display:flex}.doc-card:hover{text-decoration:none}.doc-card:hover .doc-art{outline-color:var(--color-border-strong);filter:brightness(1.08)}.doc-card .doc-art{margin-bottom:var(--space-2)}.doc-card-meta{font-size:var(--text-caption-size);line-height:var(--text-caption-line);font-weight:var(--weight-medium);color:var(--color-text-tertiary)}.doc-card-title{font-weight:var(--weight-semibold);font-size:var(--text-label-size);line-height:var(--text-label-line)}.doc-card-desc{font-size:var(--text-caption-size);line-height:var(--text-caption-line);color:var(--color-text-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.learn-latest{--cols:4}.browse-grid{gap:var(--grid-gap);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.browse-card{background:var(--color-bg-surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);flex-direction:column;display:flex;overflow:hidden}.browse-card-head{align-items:center;gap:var(--space-4);padding:var(--space-4);color:var(--color-text-primary);border-bottom:1px solid var(--color-border-subtle);display:flex}.browse-card-head:hover{background:var(--color-bg-raised);text-decoration:none}.browse-card-head .doc-art{outline-color:var(--color-border)}.browse-card-head>span{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.browse-card-title{font-weight:var(--weight-semibold);font-size:var(--text-subheading-size);line-height:var(--text-subheading-line)}.browse-card-desc{color:var(--color-text-secondary);font-size:var(--text-body-size)}.browse-card ul{padding:var(--space-2);margin:0;list-style:none}.browse-card li a{justify-content:space-between;align-items:center;gap:var(--space-2);height:36px;padding:0 var(--space-3);border-radius:var(--radius-md);color:var(--color-text-secondary);font-weight:var(--weight-medium);display:flex}.browse-card li a:hover{background:var(--color-bg-hover);color:var(--color-text-primary);text-decoration:none}.browse-card li a svg{width:var(--icon-sm);height:var(--icon-sm);color:var(--color-text-tertiary)}.docs-search-button{height:var(--control-md);justify-content:flex-start;gap:var(--space-3);padding:0 var(--space-2) 0 40px;border-radius:var(--radius-pill);background:var(--color-bg-surface);border-color:var(--color-border-subtle);color:var(--color-text-tertiary);font-weight:var(--weight-regular);font-size:var(--text-body-size)}.docs-search-button:hover:not(:disabled){background:var(--color-bg-surface);border-color:var(--color-border);color:var(--color-text-secondary)}.docs-search-button span{text-align:left;flex:1}.palette-backdrop{align-items:flex-start;padding-top:12vh}.palette{background:var(--color-bg-raised);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);width:100%;max-width:640px;max-height:70vh;box-shadow:var(--elevation-3);flex-direction:column;display:flex;overflow:hidden}.palette-field{align-items:center;gap:var(--space-2);padding:0 var(--space-4);border-bottom:1px solid var(--color-border-subtle);display:flex;position:relative}.palette-field>svg{width:var(--icon-md);height:var(--icon-md);color:var(--color-text-tertiary);flex:none}.palette-field input{height:56px;font-size:var(--text-body-lg-size);background:0 0;border:0;flex:1;padding:0}.palette-field input:focus{box-shadow:none}.palette-body{padding:var(--space-2);min-height:72px;overflow-y:auto}.palette-body ul{margin:0;padding:0;list-style:none}.palette-note{padding:var(--space-4);color:var(--color-text-secondary);margin:0}.palette-hit{align-items:start;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-md);color:var(--color-text-primary);grid-template-columns:16px minmax(0,1fr) auto;display:grid}.palette-hit:hover{text-decoration:none}.palette-hit.on{background:var(--color-bg-active)}.palette-hit>svg{width:var(--icon-sm);height:var(--icon-sm);color:var(--color-text-tertiary);margin-top:2px}.palette-hit-text{flex-direction:column;gap:2px;min-width:0;display:flex}.palette-hit-title{font-weight:var(--weight-semibold);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.palette-hit-snippet{font-size:var(--text-caption-size);line-height:var(--text-caption-line);color:var(--color-text-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.palette-hit-section{font-size:var(--text-caption-size);color:var(--color-text-tertiary);white-space:nowrap}.palette-foot{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);border-top:1px solid var(--color-border-subtle);font-size:var(--text-caption-size);color:var(--color-text-tertiary);display:flex}.palette-foot a{font-weight:var(--weight-semibold)}.learn-search-form{margin-bottom:var(--space-4);position:relative}.learn-search-form svg{width:var(--icon-sm);height:var(--icon-sm);color:var(--color-text-tertiary);pointer-events:none;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.learn-search-form input{width:100%;height:var(--control-lg);border-radius:var(--radius-pill);padding-left:40px}.search-hits{margin:var(--space-3) 0 0;border-top:1px solid var(--color-border-subtle);flex-direction:column;padding:0;list-style:none;display:flex}.search-hit{padding:var(--space-4) var(--space-2);border-bottom:1px solid var(--color-border-subtle);color:var(--color-text-primary);flex-direction:column;gap:2px;display:flex}.search-hit:hover{background:var(--color-bg-surface);text-decoration:none}.search-hit-section{font-size:var(--text-caption-size);color:var(--color-text-tertiary);font-weight:var(--weight-medium)}.search-hit-title{font-weight:var(--weight-semibold);font-size:var(--text-subheading-size)}.search-hit-snippet{color:var(--color-text-secondary)}@media (max-width:1279px){.learn-doc{grid-template-columns:minmax(0,760px)}.learn-toc{display:none}.toc-inline{display:block}}@media (max-width:1199px){.learn{grid-template-columns:minmax(0,1fr)}.learn-side{z-index:var(--z-dialog);overscroll-behavior:contain;border-right:1px solid var(--color-border-strong);width:min(320px,86vw);height:auto;box-shadow:var(--elevation-3);background:var(--color-bg-base);visibility:hidden;transition:transform var(--duration-base) var(--ease-standard), visibility 0s linear var(--duration-base);padding-top:var(--space-2);align-self:stretch;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.learn-side.open{visibility:visible;transition:transform var(--duration-base) var(--ease-standard);transform:none}.learn-drawer-head{height:48px;padding:0 var(--space-1) 0 var(--space-3);margin-bottom:var(--space-2);justify-content:space-between;align-items:center;display:flex}.learn-scrim{z-index:calc(var(--z-dialog) - 1);background:var(--color-bg-overlay);display:block;position:fixed;inset:0}.learn-bar{align-items:center;gap:var(--space-2);top:var(--topbar);z-index:calc(var(--z-sticky) - 1);height:48px;padding:0 var(--gutter);background:var(--color-bg-base);border-bottom:1px solid var(--color-border-subtle);display:flex;position:sticky}.learn-menu{height:36px;padding:0 var(--space-3) 0 var(--space-2);margin-left:calc(-1 * var(--space-2));color:var(--color-text-primary);max-width:100%}.learn-menu svg{width:var(--icon-md);height:var(--icon-md)}.learn-doc{padding:var(--space-6) var(--gutter) var(--space-16);justify-content:stretch}.learn-doc,.learn-doc.single{grid-template-columns:minmax(0,1fr)}.learn-home{padding:var(--space-6) var(--gutter) var(--space-16)}}@media (max-width:899px){.learn-hero{padding:var(--space-8);grid-template-columns:minmax(0,1fr)}.learn-hero-art{display:none}.learn-latest{--cols:2.3}.browse-grid{grid-template-columns:minmax(0,1fr)}}@media (max-width:599px){.learn-bar{top:var(--topbar);padding:0 var(--space-4)}.learn-doc{padding-top:var(--space-5)}.learn-hero{padding:var(--space-6) var(--space-5)}.learn-latest{--cols:1.6}.prose{font-size:var(--text-body-size);line-height:24px}.prose h2{margin-top:var(--space-10)}.code-block pre{padding:var(--space-3);font-size:12px;line-height:19px}.pager{grid-template-columns:minmax(0,1fr)}.pager-link.next{grid-column:1}.palette-backdrop{padding:var(--space-2)}.palette{max-height:calc(100vh - 16px)}.palette-hit{grid-template-columns:16px minmax(0,1fr)}.palette-hit-section,.palette-foot>span{display:none}.doc-art.small{width:80px}}@media (prefers-reduced-motion:reduce){.learn-side{transition:none!important}}
