@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";
:root{--bg:#fff;--bg-subtle:#f8f9fb;--fg:#0a0a0a;--fg-muted:#6b7280;--fg-faint:#9ca3af;--accent:#0d2d6e;--accent-mid:#1e4db7;--accent-soft:#e8edf8;--accent-line:#c7d4f0;--border:#e5e7eb;--border-dark:#d1d5db;--code-bg:#f4f6fa;--code-panel-bg:#0c111c;--code-panel-muted:#161d2e;--code-scroll:#ffffff1f;--code-chrome-border:#ffffff1a;--code-label-bg:#ffffff0f;--radius:4px;--radius-lg:8px;--max-w:1100px;--nav-h:64px;--font-sans:"Inter", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", monospace;--transition:.16s ease}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}body{font-family:var(--font-sans);background:var(--bg);color:var(--fg);font-size:16px;line-height:1.6}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}.container{width:100%;max-width:var(--max-w);margin:0 auto;padding:0 24px}.section{padding:96px 0}.section--alt{background:var(--bg-subtle);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}h1,h2,h3,h4{letter-spacing:-.02em;color:var(--fg);font-weight:700;line-height:1.18}h1{font-size:clamp(2.4rem,5vw,3.8rem)}h2{font-size:clamp(1.6rem,3vw,2.2rem)}h3{font-size:1.15rem;font-weight:600}h4{text-transform:uppercase;letter-spacing:.08em;font-size:.95rem;font-weight:600}p{color:var(--fg-muted);font-size:1rem;line-height:1.75}.label{letter-spacing:.12em;text-transform:uppercase;color:var(--accent);font-size:.72rem;font-weight:600}.section-header{margin-bottom:56px}.section-header .label{margin-bottom:12px}.section-header h2{margin-bottom:16px}.section-header p{max-width:560px;font-size:1.05rem}.btn{font-family:var(--font-sans);border-radius:var(--radius);cursor:pointer;transition:background var(--transition), color var(--transition), border-color var(--transition);white-space:nowrap;border:1.5px solid #0000;align-items:center;gap:8px;padding:10px 20px;font-size:.875rem;font-weight:500;display:inline-flex}.btn--primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn--primary:hover{background:var(--accent-mid);border-color:var(--accent-mid)}.btn--outline{color:var(--fg);border-color:var(--border-dark);background:0 0}.btn--outline:hover{border-color:var(--accent);color:var(--accent)}.badge{font-family:var(--font-mono);background:var(--accent-soft);color:var(--accent);border:1px solid var(--accent-line);border-radius:100px;align-items:center;gap:6px;padding:4px 12px;font-size:.72rem;font-weight:500;display:inline-flex}.badge:before{content:"";background:var(--accent-mid);border-radius:50%;width:6px;height:6px}.navbar{z-index:100;height:var(--nav-h);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border);background:#ffffffeb;align-items:center;display:flex;position:fixed;top:0;left:0;right:0}.navbar__inner{width:100%;max-width:var(--max-w);justify-content:space-between;align-items:center;margin:0 auto;padding:0 24px;display:flex}.navbar__logo{letter-spacing:-.03em;color:var(--fg);transition:color var(--transition);align-items:center;gap:10px;font-size:1.1rem;font-weight:700;display:flex}.navbar__logo img{width:auto;height:28px}.navbar__logo:hover{color:var(--accent)}.navbar__nav{align-items:center;gap:4px;list-style:none;display:flex}.navbar__nav a{color:var(--fg-muted);border-radius:var(--radius);transition:color var(--transition), background var(--transition);padding:6px 12px;font-size:.875rem;font-weight:500}.navbar__nav a:hover{color:var(--fg);background:var(--bg-subtle)}.navbar__nav a.active{color:var(--accent)}.navbar__external{color:var(--fg-muted);border-radius:var(--radius);border:1px solid var(--border-dark);background:var(--bg);transition:color var(--transition), background var(--transition), border-color var(--transition);align-items:center;gap:8px;padding:6px 12px;font-size:.875rem;font-weight:600;display:inline-flex}.navbar__external:hover{color:var(--accent);border-color:var(--accent-line);background:var(--bg-subtle)}.navbar__mobile-toggle{cursor:pointer;color:var(--fg);background:0 0;border:none;padding:4px;display:none}.hero{padding:calc(var(--nav-h) + 80px) 0 96px;border-bottom:1px solid var(--border)}.hero__eyebrow{margin-bottom:24px}.hero__heading{max-width:820px;margin-bottom:24px}.hero__heading em{color:var(--accent);font-style:normal}.hero__sub{max-width:580px;margin-bottom:40px;font-size:1.125rem}.hero__actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.hero__meta{flex-wrap:wrap;align-items:center;gap:32px;margin-top:72px;display:flex}.hero__meta-item{flex-direction:column;gap:4px;display:flex}.hero__meta-item span:first-child{font-family:var(--font-mono);color:var(--fg);font-size:1.5rem;font-weight:700;line-height:1}.hero__meta-item span:last-child{color:var(--fg-faint);text-transform:uppercase;letter-spacing:.08em;font-size:.8rem}.hero__meta-divider{background:var(--border-dark);width:1px;height:40px}.layer-diagram{border:1px solid var(--border);border-radius:var(--radius-lg);align-items:stretch;gap:0;max-width:720px;margin:64px 0 0;display:flex;overflow:hidden}.layer-diagram__item{border-right:1px solid var(--border);transition:background var(--transition);flex-direction:column;flex:1;gap:6px;padding:20px 24px;display:flex}.layer-diagram__item:last-child{border-right:none}.layer-diagram__item--active{background:var(--accent)}.layer-diagram__item--active .layer-diagram__name,.layer-diagram__item--active .layer-diagram__role{color:#fff}.layer-diagram__tag{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--fg-faint);font-size:.65rem;font-weight:500}.layer-diagram__item--active .layer-diagram__tag{color:#fff9}.layer-diagram__name{color:var(--fg);letter-spacing:-.01em;font-size:.95rem;font-weight:700}.layer-diagram__role{color:var(--fg-muted);font-size:.78rem;line-height:1.4}.feature-grid{background:var(--border);border:1px solid var(--border);border-radius:var(--radius-lg);grid-template-columns:repeat(3,1fr);gap:1px;display:grid;overflow:hidden}.feature-card{background:var(--bg);transition:background var(--transition);flex-direction:column;gap:12px;padding:36px 32px;display:flex}.feature-card:hover{background:var(--bg-subtle)}.feature-card__icon{border:1px solid var(--border-dark);border-radius:var(--radius);width:36px;height:36px;color:var(--accent);background:var(--accent-soft);justify-content:center;align-items:center;margin-bottom:4px;font-size:1.1rem;display:flex}.feature-card h3{font-size:.95rem}.feature-card p{font-size:.875rem;line-height:1.6}.topic-table-wrap{border:1px solid var(--border);border-radius:var(--radius-lg);overflow-x:auto}.topic-table{border-collapse:collapse;width:100%;font-size:.875rem}.topic-table thead{background:var(--bg-subtle);border-bottom:1px solid var(--border-dark)}.topic-table th{text-align:left;text-transform:uppercase;letter-spacing:.08em;color:var(--fg-muted);padding:12px 20px;font-size:.72rem;font-weight:600}.topic-table td{border-bottom:1px solid var(--border);vertical-align:top;padding:13px 20px}.topic-table tr:last-child td{border-bottom:none}.topic-table tr:hover td{background:var(--bg-subtle)}.topic-table code{font-family:var(--font-mono);background:var(--code-bg);border:1px solid var(--border);color:var(--accent);border-radius:var(--radius);padding:2px 7px;font-size:.82rem}.topic-group-label{background:var(--accent-soft);border-bottom:1px solid var(--accent-line);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);padding:8px 20px 6px;font-size:.72rem;font-weight:600}.timeline{flex-direction:column;gap:0;padding-left:32px;display:flex;position:relative}.timeline:before{content:"";background:var(--border-dark);width:1px;position:absolute;top:8px;bottom:8px;left:10px}.timeline-item{padding:0 0 40px 32px;position:relative}.timeline-item:last-child{padding-bottom:0}.timeline-item__dot{background:var(--bg);border:2px solid var(--border-dark);border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;display:flex;position:absolute;top:4px;left:-22px}.timeline-item__dot--done{background:var(--accent);border-color:var(--accent);color:#fff}.timeline-item__dot--active{background:var(--bg);border-color:var(--accent)}.timeline-item__dot--active:after{content:"";background:var(--accent);border-radius:50%;width:8px;height:8px}.timeline-item__num{font-family:var(--font-mono);color:var(--bg);font-size:.65rem;font-weight:700}.timeline-item__content h3{margin-bottom:4px;font-size:.95rem}.timeline-item__content p{font-size:.85rem;line-height:1.55}.support-strip{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;padding:40px 0;display:flex}.support-strip__text p:first-child{color:var(--fg);margin-bottom:4px;font-size:.95rem;font-weight:600}.support-strip__text p:last-child{color:var(--fg-faint);font-size:.82rem}.footer{background:var(--bg);border-top:1px solid var(--border);padding:48px 0 32px}.footer__top{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:48px;margin-bottom:48px;display:flex}.footer__brand p{color:var(--fg-faint);max-width:280px;margin-top:10px;font-size:.82rem;line-height:1.6}.footer__logo{letter-spacing:-.03em;color:var(--fg);align-items:center;gap:8px;margin-bottom:4px;font-size:1rem;font-weight:700;display:flex}.footer__logo img{width:auto;height:22px}.footer__links{gap:48px;display:flex}.footer__col h4{text-transform:uppercase;letter-spacing:.1em;color:var(--fg-muted);margin-bottom:14px;font-size:.72rem;font-weight:600}.footer__col ul{flex-direction:column;gap:10px;list-style:none;display:flex}.footer__col a{color:var(--fg-muted);transition:color var(--transition);font-size:.875rem}.footer__col a:hover{color:var(--fg)}.footer__bottom{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding-top:24px;display:flex}.footer__bottom p{color:var(--fg-faint);font-size:.8rem}.footer__bottom a{color:var(--fg-faint);text-underline-offset:3px;text-decoration:underline}.footer__bottom a:hover{color:var(--fg)}.spec-layout{padding-top:calc(var(--nav-h) + 48px);grid-template-columns:220px 1fr;align-items:start;gap:64px;padding-bottom:96px;display:grid}.spec-sidebar{top:calc(var(--nav-h) + 24px);position:sticky}.spec-sidebar nav h4{text-transform:uppercase;letter-spacing:.1em;color:var(--fg-muted);margin-bottom:14px;font-size:.72rem;font-weight:600}.spec-sidebar nav ul{flex-direction:column;gap:2px;list-style:none;display:flex}.spec-sidebar nav a{color:var(--fg-muted);border-radius:var(--radius);transition:color var(--transition), border-color var(--transition), background var(--transition);border-left:2px solid #0000;padding:5px 10px;font-size:.82rem;line-height:1.4;display:block}.spec-sidebar nav a:hover{color:var(--fg);background:var(--bg-subtle)}.spec-sidebar nav a.active{color:var(--accent);border-left-color:var(--accent);background:var(--accent-soft)}.prose h1,.prose h2,.prose h3,.prose h4{scroll-margin-top:calc(var(--nav-h) + 24px)}.prose h1{margin:0 0 24px;font-size:2rem}.prose h2{border-bottom:1px solid var(--border);margin:56px 0 16px;padding-bottom:10px;font-size:1.4rem}.prose h3{margin:32px 0 12px;font-size:1.05rem}.prose p{margin:0 0 16px}.prose ul,.prose ol{margin:0 0 16px;padding-left:24px}.prose li{color:var(--fg-muted);margin-bottom:6px;font-size:.95rem;line-height:1.7}.prose :not(pre)>code{font-family:var(--font-mono);background:var(--code-bg);border:1px solid var(--border);color:var(--accent);border-radius:var(--radius);padding:2px 6px;font-size:.82rem}.code-frame,.prose figure[data-rehype-pretty-code-figure]{border-radius:var(--radius-lg);border:1px solid var(--code-chrome-border);background:var(--code-panel-bg);margin:0 0 24px;padding-top:36px;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff0a,0 12px 40px -24px #0000008c}.code-frame:before,.prose figure[data-rehype-pretty-code-figure]:before{content:"";background:radial-gradient(circle at 17px 18px, #ff5f57 5px, transparent 6px), radial-gradient(circle at 37px 18px, #febc2e 5px, transparent 6px), radial-gradient(circle at 57px 18px, #28c840 5px, transparent 6px), linear-gradient(180deg, var(--code-panel-muted) 0%, var(--code-panel-bg) 100%);border-bottom:1px solid var(--code-chrome-border);pointer-events:none;background-repeat:no-repeat;height:36px;position:absolute;top:0;left:0;right:0}.code-frame[data-language]:after{content:attr(data-language);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:#ffffff73;pointer-events:none;font-size:.65rem;font-weight:500;position:absolute;top:9px;right:14px}.code-frame code,.prose figure[data-rehype-pretty-code-figure] code{font-feature-settings:"liga" 0, "calt" 0;letter-spacing:.01em;tab-size:2;font-family:var(--font-mono)!important;font-size:.8125rem!important;line-height:1.65!important}.code-frame pre,.prose figure[data-rehype-pretty-code-figure] pre{scrollbar-width:thin;scrollbar-color:var(--code-scroll) transparent;overflow-x:auto;background:0 0!important;border:none!important;border-radius:0!important;margin:0!important;padding:18px 20px 22px!important}.code-frame pre::-webkit-scrollbar{height:10px}.prose figure[data-rehype-pretty-code-figure] pre::-webkit-scrollbar{height:10px}.code-frame pre::-webkit-scrollbar-thumb{background:var(--code-scroll);border-radius:999px}.prose figure[data-rehype-pretty-code-figure] pre::-webkit-scrollbar-thumb{background:var(--code-scroll);border-radius:999px}.code-frame pre::-webkit-scrollbar-track{background:0 0}.prose figure[data-rehype-pretty-code-figure] pre::-webkit-scrollbar-track{background:0 0}.code-frame pre code,.prose figure[data-rehype-pretty-code-figure] pre code{width:max-content;min-width:100%;color:inherit;font-weight:400;display:block;background:0 0!important;border:none!important;padding:0!important}.code-frame pre code .line,.prose figure[data-rehype-pretty-code-figure] pre code .line{padding-right:12px}.prose pre:not(figure pre){background:var(--code-panel-bg);border:1px solid var(--code-chrome-border);border-radius:var(--radius-lg);margin:0 0 24px;padding:24px;overflow-x:auto}.prose pre:not(figure pre) code{font-size:.85rem;background:0 0!important;border:none!important;padding:0!important}.prose table{border-collapse:collapse;border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;margin:0 0 24px;font-size:.875rem;overflow:hidden}.prose th{background:var(--bg-subtle);text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--fg-muted);border-bottom:1px solid var(--border-dark);padding:10px 16px;font-size:.72rem;font-weight:600}.prose td{border-bottom:1px solid var(--border);color:var(--fg-muted);padding:11px 16px}.prose tr:last-child td{border-bottom:none}.prose blockquote{border-left:3px solid var(--accent-line);color:var(--fg-muted);margin:0 0 24px;padding-left:20px;font-style:italic}.about-hero{padding:calc(var(--nav-h) + 80px) 0 64px;border-bottom:1px solid var(--border)}.about-content{padding:80px 0}.about-grid{grid-template-columns:1fr 1fr;gap:64px;margin-top:64px;display:grid}.about-block h3{margin-bottom:12px;font-size:1.1rem}.about-block p{font-size:.9rem;line-height:1.75}.blog-hero{padding:calc(var(--nav-h) + 80px) 0 64px;border-bottom:1px solid var(--border)}.blog-empty{text-align:center;padding:120px 0}.blog-empty__icon{margin-bottom:24px;font-size:2.5rem}.blog-empty h3{margin-bottom:12px;font-size:1.2rem}.blog-empty p{max-width:400px;margin:0 auto;font-size:.9rem}@media (max-width:900px){.feature-grid{grid-template-columns:1fr 1fr}.about-grid{grid-template-columns:1fr;gap:40px}.spec-layout{grid-template-columns:1fr}.spec-sidebar{display:none}}@media (max-width:640px){.feature-grid{grid-template-columns:1fr}.layer-diagram{flex-direction:column}.layer-diagram__item{border-right:none;border-bottom:1px solid var(--border)}.layer-diagram__item:last-child{border-bottom:none}.navbar__nav{display:none}.navbar__mobile-toggle{display:block}.footer__links{flex-direction:column;gap:32px}.footer__top{flex-direction:column}.support-strip{flex-direction:column;align-items:flex-start}.hero__meta{gap:20px}.hero__meta-divider{display:none}}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.fade-up{animation:.5s both fadeUp}.fade-up--1{animation-delay:50ms}.fade-up--2{animation-delay:.12s}.fade-up--3{animation-delay:.2s}.fade-up--4{animation-delay:.28s}
