:root{color-scheme:light;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI Variable Text", "Segoe UI", Inter, Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: "JetBrains Mono", "Cascadia Code", "SF Mono", ui-monospace, Menlo, Consolas, "Liberation Mono", monospace;--bg: #ffffff;--bg-subtle: #f6f7fa;--bg-sunken: #eef1f6;--surface: #ffffff;--surface-raised: #ffffff;--border: #e1e5ec;--border-strong: #c9d0db;--text: #1c2230;--text-muted: #56607a;--text-faint: #7d879c;--heading: #111522;--accent: #2f5fe3;--accent-hover: #244ec2;--accent-text: #2952cc;--accent-soft: #eaf0ff;--accent-contrast: #ffffff;--success: #1a7f37;--success-soft: #e6f6ea;--warning: #9a6700;--warning-soft: #fff5d6;--danger: #c22f3d;--danger-soft: #fdecee;--violet: #7b3fc4;--violet-soft: #f3ebfc;--shadow-sm: 0 1px 2px rgba(20, 28, 45, .06);--shadow-md: 0 4px 16px rgba(20, 28, 45, .08), 0 1px 3px rgba(20, 28, 45, .06);--shadow-lg: 0 18px 50px rgba(20, 28, 45, .14);--code-bg: #f6f8fb;--code-border: #e3e8f0;--inline-code-bg: #eef1f7;--tok-keyword: #2952cc;--tok-control: #8039bf;--tok-keyword-operator: #0b7285;--tok-constant: #b45309;--tok-type: #0e7490;--tok-function: #8a5800;--tok-number: #b45309;--tok-string: #2f7a32;--tok-escape: #0b7285;--tok-comment: #7a8290;--tok-doc: #5c6f8f;--tok-attribute: #be2a57;--tok-compile-time: #be2a57;--tok-operator: #0b7285;--tok-invalid: #c62828;--header-height: 60px;--radius-sm: 6px;--radius: 10px;--radius-lg: 16px;--content-width: 760px}:root[data-theme=dark]{color-scheme:dark;--bg: #0d1017;--bg-subtle: #121620;--bg-sunken: #0a0c12;--surface: #151a24;--surface-raised: #1a202c;--border: #242b38;--border-strong: #353e4f;--text: #d9dee8;--text-muted: #9aa4b6;--text-faint: #6f798c;--heading: #f2f5fa;--accent: #6d9eff;--accent-hover: #8fb4ff;--accent-text: #86aeff;--accent-soft: rgba(109, 158, 255, .13);--accent-contrast: #0b1020;--success: #4cc26a;--success-soft: rgba(76, 194, 106, .13);--warning: #e3b341;--warning-soft: rgba(227, 179, 65, .13);--danger: #ff6b76;--danger-soft: rgba(255, 107, 118, .13);--violet: #bb9af7;--violet-soft: rgba(187, 154, 247, .14);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 4px 18px rgba(0, 0, 0, .35);--shadow-lg: 0 20px 60px rgba(0, 0, 0, .5);--code-bg: #12151c;--code-border: #232a36;--inline-code-bg: #1d2330;--tok-keyword: #7aa2f7;--tok-control: #bb9af7;--tok-keyword-operator: #89ddff;--tok-constant: #ff9e64;--tok-type: #2ac3de;--tok-function: #e0af68;--tok-number: #ff9e64;--tok-string: #9ece6a;--tok-escape: #89ddff;--tok-comment: #5f6d85;--tok-doc: #7289ab;--tok-attribute: #f7768e;--tok-compile-time: #f7768e;--tok-operator: #89ddff;--tok-invalid: #ff6b6b}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--header-height) + 16px)}body{margin:0;min-height:100vh;display:flex;flex-direction:column;color:var(--text);background:var(--bg);font-family:var(--font-sans);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:var(--accent-text);text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:3px}h1,h2,h3,h4{color:var(--heading);line-height:1.25;letter-spacing:-.01em}code,kbd,pre{font-family:var(--font-mono);font-variant-ligatures:none}kbd{padding:1px 6px;font-size:.8em;color:var(--text-muted);background:var(--bg-subtle);border:1px solid var(--border-strong);border-bottom-width:2px;border-radius:4px}::selection{background:color-mix(in srgb,var(--accent) 28%,transparent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}button,input,select{font:inherit;color:inherit}[hidden]{display:none!important}.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.site-header{position:sticky;top:0;z-index:50;height:var(--header-height);background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:saturate(160%) blur(12px);-webkit-backdrop-filter:saturate(160%) blur(12px);border-bottom:1px solid var(--border)}.site-header-inner{display:flex;align-items:center;gap:28px;height:100%;max-width:1400px;margin:0 auto;padding:0 24px}.brand{display:inline-flex;align-items:center;gap:9px;color:var(--heading);font-size:1.28rem;font-weight:700;letter-spacing:-.02em}.brand:hover{text-decoration:none}.brand-mark{width:26px;height:26px;color:var(--accent);flex:none}.brand-badge{padding:1px 7px;font-size:.66rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--accent-text);background:var(--accent-soft);border-radius:999px}.site-nav{display:flex;align-items:center;gap:4px}.site-nav a{padding:6px 12px;color:var(--text-muted);font-size:.93rem;font-weight:500;border-radius:var(--radius-sm);transition:color .15s,background-color .15s}.site-nav a:hover{color:var(--heading);background:var(--bg-subtle);text-decoration:none}.site-nav a[aria-current=page]{color:var(--heading);background:var(--bg-sunken)}.site-actions{display:flex;align-items:center;gap:6px;margin-left:auto}.icon-button{display:inline-grid;place-items:center;width:36px;height:36px;padding:0;color:var(--text-muted);background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;transition:color .15s,background-color .15s,border-color .15s}.icon-button:hover{color:var(--heading);background:var(--bg-subtle);border-color:var(--border)}.icon-button svg{width:18px;height:18px}.theme-toggle .icon-sun{display:none}:root[data-theme=dark] .theme-toggle .icon-sun{display:block}:root[data-theme=dark] .theme-toggle .icon-moon{display:none}.nav-toggle{display:none}@media (max-width: 820px){.site-header-inner{gap:12px;padding:0 16px}.nav-toggle{display:inline-grid}.site-nav{position:absolute;top:var(--header-height);left:0;right:0;display:none;flex-direction:column;align-items:stretch;gap:2px;padding:10px 12px 14px;background:var(--bg);border-bottom:1px solid var(--border);box-shadow:var(--shadow-md)}.site-nav a{padding:10px 12px;font-size:1rem}.site-header[data-open] .site-nav{display:flex}}.site-footer{margin-top:auto;border-top:1px solid var(--border);background:var(--bg-subtle)}.site-footer-inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 32px;max-width:1400px;margin:0 auto;padding:26px 24px;color:var(--text-faint);font-size:.88rem}.site-footer nav{display:flex;flex-wrap:wrap;gap:6px 20px}.site-footer a{color:var(--text-muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;padding:0 16px;font-size:.93rem;font-weight:600;line-height:1;white-space:nowrap;color:var(--heading);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);cursor:pointer;transition:background-color .15s,border-color .15s,color .15s,box-shadow .15s,transform .05s}.btn:hover{text-decoration:none;background:var(--bg-subtle);border-color:var(--text-faint)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn svg{width:16px;height:16px;flex:none}.btn-primary{color:var(--accent-contrast);background:var(--accent);border-color:var(--accent);box-shadow:var(--shadow-sm)}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-ghost{background:transparent;border-color:transparent;color:var(--text-muted)}.btn-ghost:hover{color:var(--heading);background:var(--bg-subtle);border-color:var(--border)}.btn-large{min-height:46px;padding:0 22px;font-size:1rem;border-radius:var(--radius)}.btn-small{min-height:30px;padding:0 10px;font-size:.84rem}.select{min-height:34px;padding:0 32px 0 12px;font-size:.9rem;color:var(--text);background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%237d879c' stroke-width='1.6'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E") no-repeat right 10px center / 14px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);appearance:none;cursor:pointer}.tok-keyword{color:var(--tok-keyword)}.tok-control{color:var(--tok-control)}.tok-keyword-operator{color:var(--tok-keyword-operator)}.tok-constant{color:var(--tok-constant)}.tok-type,.tok-type-name{color:var(--tok-type)}.tok-function{color:var(--tok-function)}.tok-number{color:var(--tok-number)}.tok-string{color:var(--tok-string)}.tok-escape,.tok-interpolation{color:var(--tok-escape)}.tok-comment{color:var(--tok-comment);font-style:italic}.tok-doc{color:var(--tok-doc);font-style:italic}.tok-attribute{color:var(--tok-attribute)}.tok-compile-time{color:var(--tok-compile-time);font-weight:600}.tok-operator{color:var(--tok-operator)}.tok-invalid{color:var(--tok-invalid);text-decoration:underline wavy}.code-block{position:relative;margin:1.25rem 0 1.5rem;background:var(--code-bg);border:1px solid var(--code-border);border-radius:var(--radius);overflow:hidden}.code-block pre{margin:0;padding:16px 18px;overflow-x:auto;font-size:.86rem;line-height:1.65;tab-size:4;color:var(--text);background:none;border:0}.code-block pre code{padding:0;font-size:inherit;background:none;border-radius:0}.code-actions{position:absolute;top:8px;right:8px;display:flex;gap:6px;opacity:0;transition:opacity .15s}.code-block:hover .code-actions,.code-block:focus-within .code-actions,.code-block[data-ran] .code-actions{opacity:1}@media (hover: none){.code-actions{opacity:1}}.code-action{display:inline-flex;align-items:center;gap:5px;height:28px;padding:0 10px;font-size:.78rem;font-weight:600;color:var(--text-muted);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);cursor:pointer}.code-action:hover{color:var(--heading);border-color:var(--text-faint);text-decoration:none}.code-action.run{color:var(--accent-contrast);background:var(--accent);border-color:var(--accent)}.code-action.run:hover{background:var(--accent-hover)}.code-action svg{width:12px;height:12px}.code-label{position:absolute;bottom:6px;right:10px;font-size:.68rem;font-family:var(--font-sans);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-faint);pointer-events:none}.run-result{margin:0;padding:10px 18px 12px;font-family:var(--font-mono);font-size:.82rem;line-height:1.55;white-space:pre-wrap;word-break:break-word;border-top:1px solid var(--code-border);background:var(--bg-subtle)}.run-result .status{display:flex;align-items:center;gap:8px;font-family:var(--font-sans);font-weight:600}.run-result .status:before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}.run-result.success .status{color:var(--success)}.run-result.failure .status{color:var(--danger)}.run-result.running .status{color:var(--text-muted)}.run-result .program-output{margin-top:6px;color:var(--text)}.run-result .problem{margin-top:6px;color:var(--danger)}.prose{max-width:var(--content-width);color:var(--text);font-size:1rem;line-height:1.72}.prose>:first-child{margin-top:0}.prose h1{margin:0 0 1rem;font-size:2.35rem;font-weight:750;letter-spacing:-.025em}.prose h2{margin:2.8rem 0 .9rem;padding-top:.2rem;font-size:1.55rem;font-weight:700}.prose h3{margin:2rem 0 .7rem;font-size:1.2rem;font-weight:650}.prose h4{margin:1.6rem 0 .6rem;font-size:1.02rem;font-weight:650}.prose p{margin:0 0 1.05rem}.prose .lead{font-size:1.17rem;color:var(--text-muted);line-height:1.65}.prose ul,.prose ol{margin:0 0 1.1rem;padding-left:1.45rem}.prose li{margin:.3rem 0}.prose li>ul,.prose li>ol{margin:.3rem 0}.prose li::marker{color:var(--text-faint)}.prose strong{color:var(--heading);font-weight:650}.prose hr{margin:2.6rem 0;border:0;border-top:1px solid var(--border)}.prose a{text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--accent) 35%,transparent);text-underline-offset:3px}.prose a:hover{text-decoration-color:var(--accent)}.prose :not(pre)>code{padding:.12em .38em;font-size:.86em;color:var(--heading);background:var(--inline-code-bg);border-radius:5px;overflow-wrap:break-word}.heading-anchor{float:left;margin-left:-1.1em;padding-right:.3em;color:var(--text-faint);font-weight:400;text-decoration:none!important;opacity:0;transition:opacity .15s}.prose h2:hover .heading-anchor,.prose h3:hover .heading-anchor,.prose h4:hover .heading-anchor{opacity:1}.table-wrap{margin:1.25rem 0 1.6rem;overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius)}.prose table{width:100%;border-collapse:collapse;font-size:.92rem;line-height:1.55}.prose th,.prose td{padding:9px 14px;text-align:left;vertical-align:top;border-bottom:1px solid var(--border)}.prose th{font-size:.8rem;font-weight:650;letter-spacing:.02em;color:var(--text-muted);background:var(--bg-subtle)}.prose tr:last-child td{border-bottom:0}.prose td code{white-space:normal}.callout{margin:1.4rem 0;padding:12px 16px 12px 44px;position:relative;color:var(--text);background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 22%,transparent);border-radius:var(--radius)}.callout p{margin:.3rem 0}.callout:before{content:"i";position:absolute;top:14px;left:14px;display:grid;place-items:center;width:20px;height:20px;font-size:.75rem;font-weight:700;font-family:Georgia,serif;color:var(--accent-contrast);background:var(--accent);border-radius:50%}.callout-tip{background:var(--success-soft);border-color:color-mix(in srgb,var(--success) 25%,transparent)}.callout-tip:before{content:"✓";font-family:var(--font-sans);background:var(--success)}.callout-warning{background:var(--warning-soft);border-color:color-mix(in srgb,var(--warning) 30%,transparent)}.callout-warning:before{content:"!";font-family:var(--font-sans);background:var(--warning)}.docs-layout{display:grid;grid-template-columns:272px minmax(0,1fr) 220px;gap:0;width:100%;max-width:1400px;margin:0 auto;flex:1}.docs-sidebar{position:sticky;top:var(--header-height);height:calc(100vh - var(--header-height));overflow-y:auto;padding:22px 14px 40px 22px;border-right:1px solid var(--border);scrollbar-width:thin}.docs-search{position:relative;margin-bottom:18px}.docs-search input{width:100%;height:36px;padding:0 12px 0 34px;font-size:.9rem;color:var(--text);background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-sm)}.docs-search input:focus{outline:none;border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px var(--accent-soft)}.docs-search svg{position:absolute;top:10px;left:11px;width:16px;height:16px;color:var(--text-faint);pointer-events:none}.docs-search-results{margin:8px 0 0;padding:0;list-style:none}.docs-search-results li a{display:block;padding:7px 10px;border-radius:var(--radius-sm);color:var(--text);font-size:.88rem;line-height:1.35}.docs-search-results li a:hover,.docs-search-results li a[aria-selected=true]{background:var(--bg-subtle);text-decoration:none}.docs-search-results .result-context{display:block;margin-top:2px;font-size:.76rem;color:var(--text-faint)}.docs-search-empty{padding:6px 10px;font-size:.86rem;color:var(--text-faint)}.docs-nav-group{margin:0 0 18px}.docs-nav-group-title{margin:0 0 6px;padding:0 10px;font-size:.72rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--text-faint)}.docs-nav-group ul{margin:0;padding:0;list-style:none}.docs-nav-group a{display:block;padding:5px 10px;color:var(--text-muted);font-size:.9rem;line-height:1.4;border-radius:var(--radius-sm)}.docs-nav-group a:hover{color:var(--heading);background:var(--bg-subtle);text-decoration:none}.docs-nav-group a[aria-current=page]{color:var(--accent-text);background:var(--accent-soft);font-weight:600}.docs-nav-group a.level-3{padding-left:22px;font-size:.84rem}.docs-main{min-width:0;padding:40px 56px 80px}.docs-main .prose{margin:0 auto}.docs-toc{position:sticky;top:var(--header-height);height:calc(100vh - var(--header-height));overflow-y:auto;padding:40px 20px 40px 8px;font-size:.84rem;scrollbar-width:thin}.docs-toc-title{margin:0 0 10px;font-size:.72rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--text-faint)}.docs-toc ul{margin:0;padding:0;list-style:none;border-left:1px solid var(--border)}.docs-toc a{display:block;margin-left:-1px;padding:4px 0 4px 12px;color:var(--text-muted);line-height:1.4;border-left:2px solid transparent}.docs-toc a:hover{color:var(--heading);text-decoration:none}.docs-toc a.level-3{padding-left:24px;font-size:.8rem}.docs-toc a.active{color:var(--accent-text);border-left-color:var(--accent)}.docs-breadcrumb{margin:0 auto 10px;max-width:var(--content-width);font-size:.84rem;color:var(--text-faint)}.docs-breadcrumb a{color:var(--text-muted)}.chapter-pager{display:grid;grid-template-columns:1fr 1fr;gap:16px;max-width:var(--content-width);margin:56px auto 0}.chapter-pager a{display:block;padding:14px 18px;border:1px solid var(--border);border-radius:var(--radius);transition:border-color .15s,background-color .15s}.chapter-pager a:hover{border-color:var(--accent);background:var(--accent-soft);text-decoration:none}.chapter-pager .label{display:block;font-size:.78rem;color:var(--text-faint)}.chapter-pager .title{display:block;margin-top:2px;font-weight:650;color:var(--heading)}.chapter-pager .next{text-align:right;grid-column:2}.docs-status{padding:40px 0;color:var(--text-muted)}.docs-status.error{color:var(--danger)}.docs-sidebar-toggle{display:none;position:sticky;top:var(--header-height);z-index:30;align-items:center;justify-content:flex-start;gap:8px;width:100%;margin:0;padding:10px 20px;color:var(--text);background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:saturate(160%) blur(12px);-webkit-backdrop-filter:saturate(160%) blur(12px);border:0;border-bottom:1px solid var(--border);border-radius:0;box-shadow:none}.docs-sidebar-toggle:before{content:"";width:14px;height:14px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M2 3.5h12M2 8h12M2 12.5h8' stroke='black' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M2 3.5h12M2 8h12M2 12.5h8' stroke='black' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat}.docs-sidebar-toggle:hover{color:var(--heading);background:var(--bg-subtle)}.reference-tabs{display:flex;gap:4px;max-width:var(--content-width);margin:0 auto 26px;padding:4px;background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius)}.reference-tabs a{flex:1;padding:7px 12px;text-align:center;font-size:.9rem;font-weight:600;color:var(--text-muted);border-radius:var(--radius-sm)}.reference-tabs a:hover{color:var(--heading);text-decoration:none}.reference-tabs a[aria-current=page]{color:var(--heading);background:var(--surface);box-shadow:var(--shadow-sm)}@media (max-width: 1240px){.docs-layout{grid-template-columns:260px minmax(0,1fr)}.docs-toc{display:none}.docs-main{padding:36px 40px 72px}}@media (max-width: 900px){.docs-layout{display:block}.docs-sidebar{position:fixed;z-index:40;top:var(--header-height);left:0;width:min(320px,86vw);background:var(--bg);box-shadow:var(--shadow-lg);transform:translate(-102%);transition:transform .2s ease}body[data-sidebar-open] .docs-sidebar{transform:none}.docs-sidebar-toggle{display:flex}.docs-main{padding:20px 20px 64px}.prose h1{font-size:1.9rem}}.avail{display:inline-block;margin:0 .15rem;padding:.05rem .5rem;border-radius:999px;font-family:var(--font-sans);font-size:.66rem;font-weight:700;letter-spacing:.05em;line-height:1.6;text-transform:uppercase;white-space:nowrap;vertical-align:.15em}.avail-both{color:var(--success);background:var(--success-soft)}.avail-runtime{color:var(--accent-text);background:var(--accent-soft)}.avail-compile{color:var(--violet);background:var(--violet-soft)}.avail-legend{display:grid;grid-template-columns:max-content 1fr;gap:8px 14px;align-items:center;margin:1.4rem 0 .6rem;padding:14px 18px;font-size:.9rem;color:var(--text-muted);background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius)}.avail-legend .avail{justify-self:start}.builtins-reference td:first-child{padding-left:1.95rem;text-indent:-1.2rem;font-family:var(--font-mono);font-size:.82rem}.builtins-reference td:first-child code{padding:0;background:none;color:var(--heading)}.builtins-reference td:first-child .avail{text-indent:0}.builtins-reference .signature-piece{white-space:nowrap}.builtins-reference tr.search-hit td{animation:search-hit 1.6s ease-out}@keyframes search-hit{0%{background:color-mix(in srgb,var(--warning) 30%,transparent)}to{background:transparent}}.home{flex:1}.hero{position:relative;overflow:hidden;border-bottom:1px solid var(--border)}.hero:before{content:"";position:absolute;inset:-40% -10% auto;height:620px;background:radial-gradient(ellipse at 20% 30%,color-mix(in srgb,var(--accent) 18%,transparent),transparent 60%),radial-gradient(ellipse at 80% 10%,color-mix(in srgb,var(--violet) 14%,transparent),transparent 55%);pointer-events:none}.hero-inner{position:relative;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:56px;align-items:center;max-width:1240px;margin:0 auto;padding:88px 32px 92px}.eyebrow{display:inline-flex;align-items:center;gap:8px;margin:0 0 18px;padding:4px 12px 4px 6px;font-size:.82rem;font-weight:600;color:var(--text-muted);background:var(--surface);border:1px solid var(--border);border-radius:999px;box-shadow:var(--shadow-sm)}.eyebrow span{padding:1px 8px;font-size:.7rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--accent-contrast);background:var(--accent);border-radius:999px}.hero h1{margin:0 0 20px;font-size:clamp(2.3rem,4.6vw,3.6rem);font-weight:780;line-height:1.08;letter-spacing:-.035em}.hero h1 em{font-style:normal;background:linear-gradient(95deg,var(--accent),var(--violet));-webkit-background-clip:text;background-clip:text;color:transparent}.hero .lead{margin:0 0 30px;max-width:34rem;font-size:1.16rem;line-height:1.65;color:var(--text-muted)}.hero-actions{display:flex;flex-wrap:wrap;gap:12px}.hero-note{margin:22px 0 0;font-size:.88rem;color:var(--text-faint)}.code-window{overflow:hidden;background:var(--code-bg);border:1px solid var(--code-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.code-window-bar{display:flex;align-items:center;gap:8px;height:42px;padding:0 14px;border-bottom:1px solid var(--code-border);background:var(--bg-subtle)}.code-window-bar .dot{width:11px;height:11px;border-radius:50%;background:var(--border-strong)}.code-window-bar .file{margin-left:8px;font-size:.8rem;font-family:var(--font-mono);color:var(--text-faint)}.code-window-bar .btn{margin-left:auto}.code-window pre{margin:0;padding:20px 22px;overflow-x:auto;font-size:.86rem;line-height:1.7}.code-window .run-result{border-top-color:var(--code-border)}.section{max-width:1240px;margin:0 auto;padding:84px 32px}.section-header{max-width:640px;margin:0 0 40px}.section-header h2{margin:0 0 12px;font-size:clamp(1.7rem,3vw,2.2rem);letter-spacing:-.025em}.section-header p{margin:0;font-size:1.07rem;color:var(--text-muted)}.feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.feature{display:flex;flex-direction:column;min-width:0;padding:24px 24px 20px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);transition:border-color .2s,box-shadow .2s,transform .2s}.feature:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md);transform:translateY(-2px)}.feature h3{margin:0 0 8px;font-size:1.08rem}.feature p{margin:0 0 16px;font-size:.93rem;color:var(--text-muted);line-height:1.6}.feature pre{margin:auto 0 0;padding:12px 14px;overflow-x:auto;font-size:.78rem;line-height:1.6;background:var(--code-bg);border:1px solid var(--code-border);border-radius:var(--radius)}.feature a.more{margin-top:12px;font-size:.86rem;font-weight:600}.band{background:var(--bg-subtle);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.path-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.path-card{display:flex;flex-direction:column;gap:10px;padding:26px;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);transition:border-color .2s,box-shadow .2s}.path-card:hover{text-decoration:none;border-color:var(--accent);box-shadow:var(--shadow-md)}.path-card .icon{display:grid;place-items:center;width:40px;height:40px;color:var(--accent-text);background:var(--accent-soft);border-radius:var(--radius)}.path-card .icon svg{width:20px;height:20px}.path-card h3{margin:4px 0 0;font-size:1.12rem}.path-card p{margin:0;font-size:.93rem;color:var(--text-muted)}.path-card .go{margin-top:auto;padding-top:6px;font-size:.88rem;font-weight:600;color:var(--accent-text)}@media (max-width: 1000px){.hero-inner{grid-template-columns:minmax(0,1fr);gap:40px;padding:64px 24px 72px}.feature-grid,.path-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 640px){.feature-grid,.path-grid{grid-template-columns:minmax(0,1fr)}.section{padding:60px 18px}.hero-inner{padding:48px 18px 56px}}body.app-page{height:100vh;overflow:hidden}body.app-page .site-footer{display:none}.status-pill{display:inline-flex;align-items:center;gap:7px;font-size:.84rem;font-weight:600;color:var(--text-muted);white-space:nowrap}.status-pill:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--text-faint)}.status-pill.success{color:var(--success)}.status-pill.success:before{background:var(--success)}.status-pill.error{color:var(--danger)}.status-pill.error:before{background:var(--danger)}.status-pill.warning{color:var(--warning)}.status-pill.warning:before{background:var(--warning)}.status-pill.running{color:var(--accent-text)}.status-pill.running:before{background:var(--accent);animation:pulse 1s ease-in-out infinite}@keyframes pulse{50%{opacity:.3}}.panel-header{display:flex;align-items:center;gap:10px;min-height:42px;padding:0 12px 0 16px;font-size:.8rem;font-weight:650;letter-spacing:.02em;color:var(--text-muted);background:var(--bg-subtle);border-bottom:1px solid var(--border)}.panel-header .spacer{flex:1}.tab-list{display:flex;align-items:stretch;align-self:stretch;gap:2px}.tab-list button{display:inline-flex;align-items:center;gap:6px;padding:0 10px;font-size:.82rem;font-weight:600;color:var(--text-faint);background:none;border:0;border-bottom:2px solid transparent;cursor:pointer}.tab-list button[aria-selected=true]{color:var(--heading);border-bottom-color:var(--accent)}.tab-list .count{min-width:18px;padding:0 5px;font-size:.7rem;line-height:17px;text-align:center;color:var(--accent-contrast);background:var(--danger);border-radius:999px}.output-body{flex:1;min-height:0;overflow:auto}.program-output{margin:0;padding:14px 16px;font-family:var(--font-mono);font-size:.86rem;line-height:1.6;white-space:pre-wrap;word-break:break-word;color:var(--text)}.program-output .note{color:var(--text-faint);font-style:italic;font-family:var(--font-sans)}.program-output .ok{color:var(--success);font-family:var(--font-sans);font-weight:600}.program-output .fail{color:var(--danger);font-family:var(--font-sans);font-weight:600}.problem-list{margin:0;padding:6px 0;list-style:none}.problem-list li button{display:grid;grid-template-columns:18px 1fr;gap:8px;width:100%;padding:8px 16px;text-align:left;font-size:.86rem;line-height:1.45;background:none;border:0;cursor:pointer}.problem-list li button:hover{background:var(--bg-subtle)}.problem-list .severity{width:10px;height:10px;margin-top:5px;border-radius:50%;background:var(--danger)}.problem-list .severity.warning{background:var(--warning)}.problem-list .severity.note{background:var(--accent)}.problem-list .where{display:block;margin-top:2px;font-family:var(--font-mono);font-size:.76rem;color:var(--text-faint)}.problem-empty{padding:16px;font-size:.88rem;color:var(--text-faint)}.editor-host{flex:1;min-height:0;position:relative}.playground{display:flex;flex-direction:column;flex:1;min-height:0}.playground-toolbar{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid var(--border);background:var(--bg)}.playground-toolbar .spacer{flex:1}.toolbar-hint{font-size:.8rem;color:var(--text-faint)}.playground-panes{display:grid;grid-template-columns:minmax(0,var(--split, 58%)) 6px minmax(0,1fr);flex:1;min-height:0}.pane{display:flex;flex-direction:column;min-width:0;min-height:0}.pane-divider{background:var(--border);cursor:col-resize;transition:background-color .15s}.pane-divider:hover,.pane-divider.dragging{background:var(--accent)}.visual-canvas{display:block;width:calc(100% - 32px);max-width:520px;height:auto;margin:16px;background:#0f1624;border:1px solid var(--border);border-radius:var(--radius)}@media (max-width: 860px){body.app-page{height:auto;overflow:auto}.playground-toolbar{flex-wrap:wrap}.playground-toolbar .select{flex:1 1 150px;min-width:0}.playground-panes{grid-template-columns:1fr;grid-template-rows:60vh auto}.pane-divider{display:none}.output-pane{min-height:40vh;border-top:1px solid var(--border)}.toolbar-hint{display:none}}.tutorial{display:grid;grid-template-columns:280px minmax(0,1fr) minmax(0,1.05fr);flex:1;min-height:0}.lesson-nav{overflow-y:auto;padding:18px 12px 32px;border-right:1px solid var(--border);background:var(--bg-subtle);scrollbar-width:thin}.lesson-progress{margin:2px 10px 18px}.lesson-progress .label{display:flex;justify-content:space-between;font-size:.8rem;color:var(--text-muted)}.lesson-progress .bar{height:6px;margin-top:6px;background:var(--bg-sunken);border-radius:999px;overflow:hidden}.lesson-progress .bar span{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--violet));border-radius:inherit;transition:width .3s}.lesson-module{margin:0 0 14px}.lesson-module h3{margin:0 0 4px;padding:0 10px;font-size:.72rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--text-faint)}.lesson-module ol{margin:0;padding:0;list-style:none}.lesson-module a{display:flex;align-items:center;gap:9px;padding:6px 10px;font-size:.88rem;color:var(--text-muted);border-radius:var(--radius-sm)}.lesson-module a:hover{color:var(--heading);background:var(--bg-sunken);text-decoration:none}.lesson-module a[aria-current=step]{color:var(--heading);background:var(--surface);box-shadow:var(--shadow-sm);font-weight:600}.lesson-module .mark{flex:none;display:grid;place-items:center;width:18px;height:18px;font-size:.66rem;color:var(--text-faint);border:1.5px solid var(--border-strong);border-radius:50%}.lesson-module a.done .mark{color:#fff;background:var(--success);border-color:var(--success)}.lesson{overflow-y:auto;padding:34px 40px 60px;border-right:1px solid var(--border);scrollbar-width:thin}.lesson-meta{margin:0 0 8px;font-size:.8rem;font-weight:600;color:var(--accent-text);letter-spacing:.02em}.lesson .prose{max-width:640px}.lesson .prose h1{font-size:1.9rem}.exercise{margin:1.6rem 0 0;padding:16px 18px;background:var(--violet-soft);border:1px solid color-mix(in srgb,var(--violet) 26%,transparent);border-radius:var(--radius)}.exercise h2{display:flex;align-items:center;gap:8px;margin:0 0 6px!important;padding:0!important;font-size:1rem!important;color:var(--violet)}.exercise p:last-child{margin-bottom:0}.exercise-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.lesson-pager{display:flex;justify-content:space-between;gap:12px;max-width:640px;margin-top:36px}.workbench{display:flex;flex-direction:column;min-width:0;min-height:0}.workbench-toolbar{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--border)}.workbench-toolbar .spacer{flex:1}.workbench-tabs{display:flex;gap:4px;padding:0 10px;background:var(--bg-subtle);border-bottom:1px solid var(--border)}.workbench-tabs button{position:relative;padding:9px 12px;font:inherit;font-size:.84rem;font-weight:600;color:var(--text-muted);background:none;border:0;cursor:pointer}.workbench-tabs button:hover,.workbench-tabs button[aria-selected=true]{color:var(--heading)}.workbench-tabs button[aria-selected=true]:after{content:"";position:absolute;left:8px;right:8px;bottom:-1px;height:2px;background:var(--accent);border-radius:2px}.workbench-tabs button[data-part=exercise][aria-selected=true]{color:var(--violet)}.workbench-tabs button[data-part=exercise][aria-selected=true]:after{background:var(--violet)}.workbench-editor{flex:1.4;min-height:0;display:flex;flex-direction:column}.workbench-output{flex:1;min-height:0;display:flex;flex-direction:column;border-top:1px solid var(--border)}.lesson-success{display:flex;align-items:center;gap:10px;margin:12px 16px 0;padding:10px 14px;font-size:.9rem;font-weight:600;color:var(--success);background:var(--success-soft);border-radius:var(--radius)}@media (max-width: 1200px){.tutorial{grid-template-columns:240px minmax(0,1fr) minmax(0,1fr)}.lesson{padding:28px 28px 48px}}@media (max-width: 960px){body.app-page.tutorial-page{height:auto;overflow:auto}.tutorial{display:block}.lesson-nav{display:none}body[data-sidebar-open] .lesson-nav{display:block;position:fixed;z-index:40;top:var(--header-height);left:0;bottom:0;width:min(320px,86vw);box-shadow:var(--shadow-lg)}.lesson{overflow:visible;border-right:0;padding:24px 20px 32px}.lesson .docs-sidebar-toggle{display:flex;width:calc(100% + 40px);margin:-24px -20px 20px}.workbench{height:80vh;border-top:1px solid var(--border)}.workbench-toolbar{flex-wrap:wrap}}.install{flex:1}.install .prose{margin:0 auto;padding:56px 24px 80px}.step-list{counter-reset:step;margin:1.6rem 0;padding:0;list-style:none}.step-list>li{position:relative;margin:0 0 1.4rem;padding-left:46px}.step-list>li:before{counter-increment:step;content:counter(step);position:absolute;top:0;left:0;display:grid;place-items:center;width:30px;height:30px;font-size:.85rem;font-weight:700;color:var(--accent-text);background:var(--accent-soft);border-radius:50%}.step-list h3{margin:.1rem 0 .4rem!important;font-size:1.05rem!important}.monaco-editor .suggest-widget,.monaco-editor .monaco-hover{border-radius:8px!important}
