:root{--bg:#fff;--fg:#1a1a1a;--muted:#6b7280;--line:#e8eaed;--accent:#0067c0;--code-bg:#f7f8fa;--wip:#8a5a00;--ok:#0a7a3d;--soft:#f7f9fb}
*{box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:clip}body{margin:0;overflow-x:clip;background:var(--bg);color:var(--fg);font:15px/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",system-ui,sans-serif;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}code,pre{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}code{background:var(--code-bg);padding:2px 5px;border-radius:3px;font-size:.92em}pre{overflow:auto;background:var(--code-bg);padding:16px;border:1px solid var(--line);border-radius:4px}.wrap{width:min(1040px,calc(100% - 40px));margin:0 auto}.top{border-bottom:1px solid var(--line)}.nav{min-height:58px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{font-weight:700;color:var(--fg)}.links{display:flex;gap:20px;flex-wrap:wrap}.links a{color:var(--muted);font-size:14px}.links a[aria-current=page]{color:var(--fg);font-weight:600}.main{padding:64px 0 76px}.eyebrow{color:var(--accent);font-size:13px;font-weight:600;margin:0 0 10px}h1{font-size:36px;line-height:1.2;margin:0 0 16px;font-weight:680}h2{font-size:21px;line-height:1.35;margin:36px 0 10px}h3{font-size:16px;margin:0 0 8px}p{margin:0 0 15px}.lede{font-size:18px;color:#444;max-width:720px}.muted{color:var(--muted)}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:34px 0 30px}.stat{padding:17px 18px 17px 0}.stat+.stat{border-left:1px solid var(--line);padding-left:20px}.stat strong{display:block;font-size:25px;line-height:1.25;font-variant-numeric:tabular-nums}.stat span{color:var(--muted);font-size:13px}.actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line)}.action{padding:18px 14px 18px 0;border-bottom:1px solid var(--line);color:var(--fg)}.action+.action{padding-left:16px;border-left:1px solid var(--line)}.action b{display:block;margin-bottom:4px}.action span{font-size:13px;color:var(--muted)}.footer{border-top:1px solid var(--line);padding:18px 0 28px;color:var(--muted);font-size:13px}.doc{max-width:760px}.doc h1{margin-bottom:10px}.doc h2{padding-top:6px}.doc ul,.doc ol{padding-left:22px}.doc li{margin:6px 0}.callout{border-left:3px solid var(--accent);padding:10px 14px;background:var(--soft);margin:20px 0}.docnav{display:flex;gap:16px;flex-wrap:wrap;margin:22px 0 28px;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:14px}.section{margin-top:36px}
.docs-layout{display:grid;grid-template-columns:232px minmax(0,1fr);gap:40px;max-width:1200px;margin:0 auto;padding:0 24px}.docs-layout .doc{width:100%;min-width:0;max-width:820px;margin:0}.sidebar{user-select:none;-webkit-user-drag:none;resize:none;align-self:start;position:sticky;top:20px;padding:28px 0;max-height:calc(100vh - 40px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#d8dfe8 transparent}.tree-details>summary{display:none}.tree-brand{display:block;color:var(--muted);font-size:12px;margin-bottom:18px}.tree-nav{font-size:13px}.tree-link{display:block;padding:7px 10px;color:var(--fg);border-left:2px solid transparent;border-radius:3px}.tree-link.active{background:#edf5fc;border-left:2px solid var(--accent);color:var(--accent);font-weight:600}.tree-children{border-left:1px solid var(--line);margin:2px 0 10px 11px;padding-left:9px;background:transparent}.tree-children a{display:block;color:var(--muted);padding:4px 8px;line-height:1.5}.tree-children .level-3{padding-left:18px}.tree-bottom{border-top:1px solid var(--line);margin-top:18px;padding-top:12px}.doc h2,.doc h3{scroll-margin-top:24px}.doc h3{margin:20px 0 10px}.modules-layout{display:grid;grid-template-columns:232px minmax(0,1fr);gap:32px;max-width:1280px;margin:auto;padding:0 24px}.modules-layout>.wrap{min-width:0;width:100%;padding:0}.modules-layout .tree-nav a{text-decoration:none}.fx-canvas{position:fixed;inset:0;z-index:10000;pointer-events:none}.fx-content{will-change:opacity,transform}.tree-children a[aria-current=location]{color:var(--accent);background:transparent;font-weight:600;border-radius:0}@media(max-width:760px){.docs-layout,.modules-layout{display:block;padding:0 16px}.sidebar{position:static;max-height:none;padding:14px 0 0}.tree-details{border:1px solid var(--line);border-radius:5px}.tree-details>summary{display:block;cursor:pointer;padding:10px 12px;color:var(--accent);font-size:14px}.tree-nav{padding:0 12px 12px}.tree-brand{margin:8px 0}.docs-layout .main{padding-top:30px}.modules-layout>.wrap{padding:0}.tree-details:not([open])>.tree-nav{display:none}}@media(max-width:640px){.wrap{width:min(100% - 32px,1040px)}.nav{align-items:flex-start;padding:14px 0;flex-direction:column;gap:8px}.links{gap:14px}.main{padding:38px 0 52px}h1{font-size:29px}.lede{font-size:16px}.stats{grid-template-columns:1fr}.stat{padding:12px 0}.stat+.stat{border-left:0;border-top:1px solid var(--line);padding-left:0}.stat strong{font-size:22px}.actions{grid-template-columns:repeat(2,minmax(0,1fr))}.action{padding:14px 10px 14px 0}.action+.action{padding-left:10px}.action:nth-child(3){padding-left:0;border-left:0}.action:nth-child(4){padding-left:10px}}

.brand{display:inline-flex;align-items:center;gap:8px}.brand-icon{display:block;border-radius:5px}

/* Product homepage */
.home-page{--bg:#f8faf9;--fg:#17211d;--muted:#67736d;--line:#e2e9e4;--accent:#087f5b;--code-bg:#10251e;background:#f8faf9}
.home-page .wrap{width:min(1120px,calc(100% - 48px))}.home-page .top{border-color:#e4ebe6;background:rgba(248,250,249,.94)}.home-page .nav{min-height:72px}.home-page .brand{font-size:16px}.home-page .links{align-items:center;gap:28px}.home-page .links a{font-size:13px;color:#596760}.home-page .nav-cta{display:inline-flex;align-items:center;gap:12px;padding:9px 13px;border:1px solid #cbd8d0;border-radius:4px;color:#17211d;font-size:13px;font-weight:650;white-space:nowrap}.home-page .nav-cta:hover,.home-page .button:hover{text-decoration:none;border-color:#087f5b}
.home-hero{overflow:hidden;background:#f8faf9}.hero-inner{padding-top:104px;padding-bottom:86px}.home-page .eyebrow{display:flex;align-items:center;gap:9px;margin-bottom:22px;color:#087f5b;font-size:11px;font-weight:700}.status-dot{width:7px;height:7px;border-radius:50%;background:#23a477;box-shadow:0 0 0 4px #dff1e8}.home-page h1{max-width:800px;margin:0;color:#17211d;font-size:clamp(48px,7vw,82px);line-height:1.04;font-weight:650}.hero-copy{max-width:590px;margin:24px 0 0;color:#56635c;font-size:17px;line-height:1.8}.hero-actions{display:flex;gap:12px;margin-top:30px;flex-wrap:wrap}.home-page .button{display:inline-flex;align-items:center;gap:18px;min-height:46px;padding:0 17px;border:1px solid #cbd8d0;border-radius:4px;font-size:14px;font-weight:650}.home-page .button-primary{background:#087f5b;border-color:#087f5b;color:#fff}.home-page .button-secondary{color:#203029;background:#fff}.hero-meta{display:flex;align-items:center;gap:12px;margin-top:48px;color:#77827c;font:12px ui-monospace,SFMono-Regular,Consolas,monospace}.hero-meta i{width:3px;height:3px;border-radius:50%;background:#a7b2ab}
.demo-band{background:#edf3ef;border-top:1px solid #e3ebe5;border-bottom:1px solid #e3ebe5}.demo-layout{display:grid;grid-template-columns:minmax(250px,.85fr) minmax(0,1.15fr);gap:72px;align-items:center;padding-top:70px;padding-bottom:70px}.demo-intro .eyebrow{margin-bottom:15px}.home-page h2{margin:0;color:#17211d;font-size:30px;line-height:1.25;font-weight:640}.demo-intro>p:not(.eyebrow){max-width:370px;margin:17px 0;color:#5d6963;font-size:14px}.demo-intro>a{display:inline-flex;gap:10px;margin-top:6px;color:#087f5b;font-size:13px;font-weight:650}.code-demo{overflow:hidden;border:1px solid #203b30;border-radius:6px;background:#10251e;color:#e3eee8;box-shadow:0 14px 38px rgba(25,52,40,.12)}.code-top{display:flex;align-items:center;gap:7px;height:42px;padding:0 14px;border-bottom:1px solid #294337;color:#9eb0a6}.code-dot{width:7px;height:7px;border-radius:50%;background:#66776e}.code-dot:first-child{background:#df806d}.code-dot:nth-child(2){background:#d8b566}.code-dot:nth-child(3){background:#72ae82}.code-file{margin-left:9px;font:11px ui-monospace,SFMono-Regular,Consolas,monospace}.code-run{margin-left:auto;border:0;background:none;padding:3px 0;color:#91c9a8;font:10px ui-monospace,SFMono-Regular,Consolas,monospace;cursor:pointer}.code-run:hover{color:#fff}.code-run:disabled{cursor:wait;opacity:.65}.code-demo textarea{display:block;width:100%;min-height:230px;margin:0;padding:22px;border:0;border-radius:0;outline:none;resize:vertical;background:transparent;color:#e3eee8;font:13px/1.9 ui-monospace,SFMono-Regular,Consolas,monospace;tab-size:4;white-space:pre}.code-demo textarea:focus{box-shadow:inset 0 0 0 1px #3c7258}.code-output{display:flex;align-items:center;gap:15px;min-height:42px;padding:8px 16px;border-top:1px solid #294337;background:#142b22}.code-output>span{flex:0 0 auto;color:#91a69a;font:9px ui-monospace,SFMono-Regular,Consolas,monospace}.code-output pre{flex:1;min-width:0;margin:0;padding:0;overflow:auto;border:0;background:none;color:#d7e6dc;font:11px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap}.code-output b{margin-left:auto;color:#82b99a;font:10px ui-monospace,SFMono-Regular,Consolas,monospace;font-weight:500;white-space:nowrap}.code-output.program-error{background:#321f1d}.code-output.program-error pre,.code-output.network-error pre{color:#f1b0a5}.code-output.program-error b,.code-output.network-error b{color:#ed9c90}.code-output.running{background:#1b3328}.code-output.running pre{color:#b5d6c1}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.home-paths{padding-top:73px;padding-bottom:74px}.paths-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:24px}.paths-heading .eyebrow{margin-bottom:11px}.home-page .paths-heading h2{font-size:27px}.paths-heading>p{margin:0 0 3px;color:#6a766f;font-size:13px}.path-list{border-top:1px solid #dfe7e1}.path-item{display:grid;grid-template-columns:48px minmax(140px,.75fr) minmax(180px,1.5fr) 24px;align-items:center;gap:12px;min-height:68px;border-bottom:1px solid #dfe7e1;color:#17211d}.path-item:hover{background:#f0f5f1;text-decoration:none}.path-index{color:#829087;font:11px ui-monospace,SFMono-Regular,Consolas,monospace}.path-title{font-size:14px;font-weight:650}.path-detail{color:#68756e;font-size:12px}.path-arrow{justify-self:end;color:#087f5b;font-size:16px}.home-facts{border-top:1px solid #e2e9e4;background:#f1f5f2}.facts-inner{display:grid;grid-template-columns:repeat(3,minmax(100px,.55fr)) minmax(260px,1.4fr);align-items:center;gap:24px;padding-top:24px;padding-bottom:24px}.facts-inner>div{display:flex;flex-direction:column;gap:3px}.facts-inner strong{font-size:20px;line-height:1.3}.facts-inner span{color:#68756e;font-size:11px}.facts-inner>p{margin:0;color:#68756e;font-size:11px;line-height:1.7}.facts-inner>p a{color:#087f5b;white-space:nowrap}.home-page .footer{padding:22px 0;border-color:#e2e9e4;background:#f8faf9}.footer-inner{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.footer-inner .brand{margin-right:4px;font-size:12px}.footer-inner>span,.footer-inner>a:not(.brand){color:#78837d;font-size:11px}.footer-inner>span:last-child{margin-left:auto}

/* Shared green product language for docs and module pages */
body:not(.home-page){--bg:#f8faf9;--fg:#17211d;--muted:#67736d;--line:#e2e9e4;--accent:#087f5b;--code-bg:#f0f5f1;background:#f8faf9;color:#17211d}body:not(.home-page) .top{border-color:#e2e9e4;background:#f8faf9}body:not(.home-page) .brand{color:#17211d}body:not(.home-page) .links a{color:#596760}body:not(.home-page) .links a[aria-current=page]{color:#087f5b}body:not(.home-page) .main{padding-top:74px}body:not(.home-page) .eyebrow{color:#087f5b;font-size:11px;letter-spacing:.08em;text-transform:uppercase}body:not(.home-page) h1{font-size:clamp(36px,5vw,58px);color:#17211d;font-weight:650;letter-spacing:-.025em}body:not(.home-page) h2{color:#17211d;font-weight:640}body:not(.home-page) .lede{color:#596760;line-height:1.8}body:not(.home-page) a{color:#087f5b}body:not(.home-page) pre,body:not(.home-page) table{border-color:#dfe8e1;background:#fff}body:not(.home-page) th{background:#edf3ef;color:#506058}body:not(.home-page) .docnav{border-color:#dfe8e1}body:not(.home-page) .docnav a{border-color:#dfe8e1;color:#637169}body:not(.home-page) .docnav a:hover{background:#edf3ef;color:#087f5b}body:not(.home-page) .sidebar{scrollbar-color:#c8d8ce transparent}body:not(.home-page) .tree-link.active{background:#e5f2eb;border-left-color:#087f5b;color:#087f5b}body:not(.home-page) .tree-children a[aria-current=location]{color:#087f5b;background:#edf7f1}body:not(.home-page) .modules-layout,body:not(.home-page) .docs-layout{background:transparent}body:not(.home-page) .module-card,body:not(.home-page) .module-row{border-color:#dfe8e1;background:#fff}body:not(.home-page) .footer{border-color:#e2e9e4;background:#f1f5f2;color:#718078}
@media(max-width:760px){.home-page .wrap{width:min(100% - 36px,600px)}.home-page .nav{min-height:62px;gap:12px}.home-page .links{gap:14px}.home-page .links a:nth-child(n+3){display:none}.home-page .nav-cta{padding:8px 9px;font-size:11px}.home-page .brand{font-size:14px}.hero-inner{padding-top:76px;padding-bottom:58px}.home-page h1{font-size:clamp(45px,12vw,68px)}.hero-copy{font-size:15px}.hero-meta{gap:8px;margin-top:36px;font-size:10px}.demo-layout{grid-template-columns:1fr;gap:28px;padding-top:48px;padding-bottom:48px}.home-page h2{font-size:26px}.code-demo pre{padding:17px 15px;font-size:11px}.paths-heading{display:block}.paths-heading>p{margin-top:12px}.home-paths{padding-top:52px;padding-bottom:54px}.path-item{grid-template-columns:30px minmax(100px,.7fr) minmax(0,1.4fr) 18px;gap:8px;min-height:64px}.path-title{font-size:12px}.path-detail{font-size:10px}.facts-inner{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding-top:20px;padding-bottom:20px}.facts-inner>p{grid-column:1/-1}.footer-inner{gap:12px}.footer-inner>span:last-child{margin-left:0}}

