:root{--ink:#10231f;--ink-soft:#4d625d;--muted:#6f807c;--paper:#fff;--wash:#f4f7f5;--wash-warm:#fff8e8;--line:#dce5e1;--line-dark:#ffffff24;--forest:#0d2822;--forest-2:#14372f;--mint:#2ed0a0;--mint-dark:#087d5d;--blue:#2368d9;--amber:#b86700;--danger:#bd3d34;--shadow:0 18px 48px #0f2c241f;--content:1160px;--text:760px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:88px}body{color:var(--ink);background:var(--paper);font-family:var(--font-geist-sans), "Microsoft YaHei", "PingFang SC", Arial, sans-serif;letter-spacing:0;text-rendering:optimizelegibility;margin:0}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit;letter-spacing:0}img,video{max-width:100%;display:block}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:100;color:#fff;background:var(--forest);border-radius:4px;padding:10px 14px;position:fixed;top:12px;left:12px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.site-header{z-index:60;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffffff0;border-bottom:1px solid #10231f1a;position:sticky;top:0}.header-inner{width:min(calc(100% - 40px), var(--content));justify-content:space-between;align-items:center;gap:24px;height:70px;margin:0 auto;display:flex}.brand{align-items:center;gap:10px;min-width:0;font-size:17px;font-weight:760;display:inline-flex}.brand small{border-left:1px solid var(--line);color:var(--muted);font-family:var(--font-geist-mono), Consolas, monospace;text-transform:uppercase;padding-left:10px;font-size:10px;font-weight:560}.brand-mark{border:2px solid var(--mint);width:32px;height:32px;color:var(--mint-dark);background:#eafff7;border-radius:8px;flex:none;place-items:center;font-size:15px;font-weight:800;display:inline-grid}.header-actions{align-items:center;gap:10px;display:flex}.language-switch{border:1px solid var(--line);background:var(--wash);border-radius:6px;padding:3px;display:inline-flex}.language-switch a{min-width:62px;min-height:32px;color:var(--muted);border-radius:4px;place-items:center;font-size:11px;font-weight:650;display:inline-grid}.language-switch a[aria-current=page]{color:var(--ink);background:#fff;box-shadow:0 1px 4px #10231f1a}.header-github,.menu-button{border:1px solid var(--line);min-height:38px;color:var(--ink);background:#fff;border-radius:6px;justify-content:center;align-items:center;gap:8px;font-size:12px;font-weight:650;display:inline-flex}.header-github{padding:0 14px}.header-github svg,.menu-button svg{width:17px;height:17px}.menu-button{cursor:pointer;width:38px;padding:0;display:none}.mobile-nav{z-index:55;border-bottom:1px solid var(--line);box-shadow:var(--shadow);background:#fff;padding:14px 20px 22px;position:fixed;top:70px;left:0;right:0}.mobile-nav a{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:46px;font-size:14px;font-weight:650;display:flex}.mobile-nav svg{width:16px;height:16px}.hero{border-bottom:1px solid var(--line);background:linear-gradient(#f8fbf9 0%,#fff 65%);overflow:hidden}.hero-inner{width:min(calc(100% - 40px), var(--content));grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);align-items:center;gap:90px;min-height:560px;margin:0 auto;padding:78px 0 56px;display:grid}.eyebrow,.kicker{color:var(--mint-dark);font-family:var(--font-geist-mono), Consolas, monospace;text-transform:uppercase;margin:0;font-size:11px;font-weight:720}.hero h1{max-width:800px;color:var(--ink);margin:18px 0 0;font-size:64px;font-weight:780;line-height:1.08}.hero-lead{max-width:740px;color:var(--ink-soft);margin:25px 0 0;font-size:18px;line-height:1.75}.hero-meta{color:var(--muted);font-family:var(--font-geist-mono), Consolas, monospace;flex-wrap:wrap;gap:8px 20px;margin-top:26px;font-size:10px;display:flex}.hero-meta span{position:relative}.hero-meta span+span:before{content:"";background:#9baba6;border-radius:50%;width:3px;height:3px;position:absolute;top:50%;left:-12px}.hero-actions{flex-wrap:wrap;gap:10px;margin-top:34px;display:flex}.primary-button,.secondary-button{border-radius:6px;justify-content:center;align-items:center;gap:10px;min-height:46px;padding:0 18px;font-size:13px;font-weight:720;transition:transform .16s,box-shadow .16s,background .16s;display:inline-flex}.primary-button{color:#fff;background:var(--forest);box-shadow:0 10px 24px #0d28222e}.secondary-button{border:1px solid var(--line);color:var(--ink);background:#fff}.primary-button:hover,.secondary-button:hover{transform:translateY(-1px)}.primary-button svg,.secondary-button svg{width:17px;height:17px}.outcome-panel{box-shadow:var(--shadow);background:#fff;border:1px solid #cfe1da;border-radius:8px;padding:32px;position:relative;overflow:hidden}.outcome-panel:before{content:"";background:linear-gradient(90deg, var(--mint), #54a2ef, #f0b458);width:100%;height:4px;position:absolute;top:0;left:0}.outcome-icon{width:46px;height:46px;color:var(--mint-dark);background:#e8fbf4;border-radius:8px;place-items:center;display:grid}.outcome-icon svg{width:24px;height:24px}.outcome-panel>p{text-transform:uppercase;margin:22px 0 0;font-size:12px;font-weight:750}.outcome-panel ul{margin:18px 0 0;padding:0;list-style:none}.outcome-panel li{border-top:1px solid var(--line);color:var(--ink-soft);grid-template-columns:19px 1fr;gap:11px;padding:15px 0;font-size:13px;line-height:1.55;display:grid}.outcome-panel li svg{width:17px;height:17px;color:var(--mint-dark);margin-top:2px}.quick-path-wrap{width:min(calc(100% - 40px), var(--content));margin:0 auto;padding:44px 0 68px}.quick-path-heading{grid-template-columns:260px 1fr;align-items:baseline;gap:28px;margin-bottom:24px;display:grid}.quick-path-heading h2{margin:0;font-size:26px}.quick-path-heading p{color:var(--muted);margin:0;font-size:13px;line-height:1.6}.quick-path{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(6,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.quick-path li{border-right:1px solid var(--line);min-height:166px;padding:20px 18px;position:relative}.quick-path li:last-child{border-right:0}.quick-path li>span{color:#97a7a2;font-family:var(--font-geist-mono), Consolas, monospace;font-size:10px}.quick-path li>svg{width:20px;height:20px;color:var(--mint-dark);margin-top:25px;display:block}.quick-path li p{margin:13px 0 0;font-size:12px;font-weight:650;line-height:1.55}.tutorial-layout{width:min(100%, calc(var(--content) + 80px));border-left:1px solid var(--line);border-right:1px solid var(--line);grid-template-columns:240px minmax(0,1fr);align-items:start;margin:0 auto;display:grid}.toc{margin:34px 28px 0;position:sticky;top:94px}.toc>p{color:var(--muted);font-family:var(--font-geist-mono), Consolas, monospace;text-transform:uppercase;margin:0 0 12px;font-size:10px;font-weight:650}.toc nav{border-top:1px solid var(--line)}.toc nav a{border-bottom:1px solid var(--line);min-height:43px;color:var(--ink-soft);grid-template-columns:24px 1fr;align-items:center;font-size:12px;transition:color .16s,padding .16s;display:grid}.toc nav a:hover{color:var(--mint-dark);padding-left:4px}.toc nav a span{color:#9aaaa5;font-family:var(--font-geist-mono), Consolas, monospace;font-size:9px}.toc-release{color:#fff;background:var(--forest);border-radius:6px;justify-content:center;align-items:center;gap:8px;min-height:42px;margin-top:18px;padding:0 12px;font-size:11px;font-weight:680;display:flex}.toc-release svg{width:15px;height:15px}.tutorial-content{border-left:1px solid var(--line);min-width:0}.chapter,.update-band,.links-section{scroll-margin-top:84px}.chapter{border-bottom:1px solid var(--line);padding:92px 72px}.chapter-tint{background:var(--wash)}.chapter-header{max-width:var(--text)}.chapter-header h2,.links-section h2,.update-copy h2{margin:16px 0 0;font-size:42px;font-weight:760;line-height:1.15}.chapter-lead,.links-section>div:first-child>p:last-child{color:var(--ink-soft);margin:20px 0 0;font-size:16px;line-height:1.75}.checklist{max-width:var(--text);margin:36px 0 0;padding:0;list-style:none}.checklist li{border-bottom:1px solid var(--line);min-height:54px;color:var(--ink-soft);grid-template-columns:22px 1fr;align-items:start;gap:13px;padding:15px 0;font-size:14px;line-height:1.65;display:grid}.checklist li:first-child{border-top:1px solid var(--line)}.checklist svg{color:#fff;background:var(--mint-dark);border-radius:50%;width:18px;height:18px;margin-top:2px;padding:3px}.note{max-width:var(--text);border:1px solid var(--line);background:#fff;border-radius:6px;grid-template-columns:23px 1fr;gap:14px;margin-top:30px;padding:20px;display:grid}.note>svg{width:20px;height:20px;color:var(--mint-dark);margin-top:1px}.note strong{font-size:13px;display:block}.note p{color:var(--ink-soft);margin:5px 0 0;font-size:13px;line-height:1.65}.note>p{margin:0}.note-warning{background:var(--wash-warm);border-color:#ebcf9a}.note-warning>svg{color:var(--amber)}.numbered-steps{max-width:var(--text);border-top:1px solid var(--line);margin:40px 0 0;padding:0;list-style:none}.numbered-steps li{border-bottom:1px solid var(--line);grid-template-columns:42px 1fr;align-items:start;gap:16px;padding:18px 0;display:grid}.numbered-steps li>span{width:30px;height:30px;color:var(--mint-dark);font-family:var(--font-geist-mono), Consolas, monospace;border:1px solid #b9d3ca;border-radius:50%;place-items:center;font-size:10px;font-weight:700;display:grid}.numbered-steps p{color:var(--ink-soft);margin:3px 0 0;font-size:14px;line-height:1.65}.inline-release{color:#fff;background:var(--forest);border-radius:6px;align-items:center;gap:9px;width:fit-content;min-height:42px;margin-top:24px;padding:0 14px;font-size:11px;font-weight:700;display:inline-flex}.inline-release svg{width:15px;height:15px}.inline-release svg:last-child{opacity:.72;width:12px;height:12px}.figure-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 22px;margin-top:46px;display:grid}.figure-grid-single{grid-template-columns:minmax(0,1fr)}.figure-grid figure{min-width:0;margin:0}.figure-grid figure>a{background:#eef2f0;border:1px solid #cbd7d3;border-radius:6px;justify-content:center;align-items:center;min-height:190px;display:flex;position:relative;overflow:hidden}.figure-grid img{aspect-ratio:16/10;object-fit:contain;background:#eef2f0;width:100%;height:auto;transition:transform .24s}.figure-grid figure>a:hover img{transform:scale(1.01)}.figure-expand{color:#fff;opacity:0;background:#0d2822d1;border-radius:5px;place-items:center;width:32px;height:32px;transition:opacity .18s;display:grid;position:absolute;top:10px;right:10px}.figure-grid figure>a:hover .figure-expand,.figure-grid figure>a:focus-visible .figure-expand{opacity:1}.figure-expand svg{width:14px;height:14px}.figure-grid figcaption{color:var(--muted);margin-top:11px;font-size:11px;line-height:1.55}.two-column-instructions{grid-template-columns:repeat(2,minmax(0,1fr));gap:46px;margin-top:44px;display:grid}.two-column-instructions .checklist{margin-top:20px}.subhead-icon{align-items:center;gap:10px;display:flex}.subhead-icon>svg{width:20px;height:20px;color:var(--mint-dark)}.subhead-icon h3{margin:0;font-size:17px}.chapter-dark{color:#f1f7f5;background:var(--forest);border-color:var(--line-dark)}.chapter-dark .kicker{color:var(--mint)}.chapter-dark .chapter-lead,.chapter-dark .numbered-steps p,.chapter-dark .figure-grid figcaption{color:#aec0ba}.numbered-steps-dark,.numbered-steps-dark li{border-color:var(--line-dark)}.numbered-steps-dark li>span{color:var(--mint);border-color:#2f695a}.note-dark{background:#17352d;border-color:#31534a}.note-dark>svg{color:var(--mint)}.note-dark p{color:#b9c8c3}.chapter-dark .figure-grid figure>a,.chapter-dark .figure-grid img{background:#0b1c18;border-color:#34554c}.connection-check{border-top:1px solid var(--line-dark);grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:44px;margin-top:66px;padding-top:54px;display:grid}.connection-copy h3{margin:15px 0 0;font-size:28px}.connection-copy>p:not(.kicker){color:#aec0ba;margin:15px 0 0;font-size:13px;line-height:1.7}.connection-success{color:#b9d8cf;grid-template-columns:22px 1fr;gap:12px;margin-top:28px;font-size:12px;line-height:1.65;display:grid}.connection-success svg{width:19px;height:19px;color:var(--mint)}.copy-block{background:#0a1b17;border:1px solid #cad7d2;border-radius:6px;overflow:hidden}.copy-block-head{border-bottom:1px solid #ffffff21;justify-content:space-between;align-items:center;gap:14px;min-height:45px;padding:0 12px 0 16px;display:flex}.copy-block-head>span{color:#a9bbb5;font-family:var(--font-geist-mono), Consolas, monospace;align-items:center;gap:8px;font-size:10px;display:inline-flex}.copy-block-head svg{width:15px;height:15px}.copy-block-head button{color:#d7e5e0;cursor:pointer;background:#14342c;border:1px solid #31564c;border-radius:5px;align-items:center;gap:7px;min-height:30px;padding:0 10px;font-size:10px;display:inline-flex}.copy-block pre{color:#c8ded7;font-family:var(--font-geist-mono), Consolas, monospace;white-space:pre-wrap;overflow-wrap:anywhere;margin:0;padding:22px;font-size:11px;line-height:1.75;overflow:auto}.update-band{background:#fff8e4;border-bottom:1px solid #e0c786;grid-template-columns:minmax(0,1fr) minmax(260px,.68fr);align-items:center;gap:44px;padding:64px 72px;display:grid}.update-copy{grid-template-columns:34px 1fr;gap:16px;display:grid}.update-copy>svg{width:26px;height:26px;color:var(--amber);margin-top:4px}.update-copy h2{margin-top:0;font-size:28px}.update-copy p{color:#6b5739;margin:14px 0 0;font-size:13px;line-height:1.7}.update-copy small{color:#8a6a36;font-family:var(--font-geist-mono), Consolas, monospace;margin-top:14px;font-size:9px;line-height:1.65;display:block}.update-band .figure-grid{margin-top:0}.update-band .figure-grid figure>a,.update-band .figure-grid img{background:#fff5d9;min-height:150px}.demo-stage{box-shadow:var(--shadow);background:#071710;border:1px solid #294941;border-radius:8px;margin-top:44px;overflow:hidden}.demo-heading{color:#e7f3ef;justify-content:space-between;align-items:center;gap:20px;min-height:64px;padding:0 18px;display:flex}.demo-heading p{margin:0;font-size:13px;font-weight:700}.demo-heading span{color:#8aa79e;margin-top:4px;font-size:10px;display:block}.demo-heading a{color:var(--mint);align-items:center;gap:7px;font-size:10px;font-weight:650;display:inline-flex}.demo-heading svg{width:14px;height:14px}.demo-stage video{aspect-ratio:16/9;background:#07131d;width:100%}.chapter>.copy-block{max-width:var(--text);margin-top:38px}.evidence-fields{border-top:1px solid var(--line);border-left:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));margin:44px 0 0;display:grid}.evidence-fields div{border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#ffffffb3;min-height:112px;padding:20px}.evidence-fields dt{color:var(--mint-dark);font-family:var(--font-geist-mono), Consolas, monospace;font-size:11px;font-weight:700}.evidence-fields dd{color:var(--ink-soft);margin:10px 0 0;font-size:12px;line-height:1.6}.troubleshooting-grid{margin-top:42px}.faq-list{border-top:1px solid var(--line)}.faq-list details{border-bottom:1px solid var(--line)}.faq-list summary{min-height:64px;color:var(--ink);cursor:pointer;justify-content:space-between;align-items:center;gap:18px;font-size:14px;font-weight:680;list-style:none;display:flex}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary svg{width:17px;height:17px;color:var(--muted);flex:none;transition:transform .18s}.faq-list details[open] summary svg{transform:rotate(90deg)}.faq-list details p{max-width:730px;color:var(--ink-soft);margin:-2px 0 22px;font-size:13px;line-height:1.75}.chapter-security{color:#fff;background:#17201e}.chapter-security .kicker{color:#f3b84d}.chapter-security .chapter-lead,.chapter-security .checklist li{color:#bdc7c4}.chapter-security .checklist li,.chapter-security .checklist li:first-child{border-color:#ffffff1f}.chapter-security .checklist svg{color:#17201e;background:#f3b84d}.links-section{grid-template-columns:minmax(220px,.72fr) minmax(0,1.28fr);gap:64px;padding:84px 72px;display:grid}.links-section h2{font-size:36px}.links-section>div:first-child>p:last-child{font-size:13px}.official-links{border-top:1px solid var(--line)}.official-links a{border-bottom:1px solid var(--line);min-height:54px;color:var(--ink-soft);justify-content:space-between;align-items:center;gap:18px;font-size:12px;transition:color .16s,padding .16s;display:flex}.official-links a:hover{color:var(--blue);padding-left:4px}.official-links svg{flex:none;width:15px;height:15px}.site-footer{color:#a7bbb5;background:#071713;border-top:1px solid #ffffff1a}.site-footer>div{width:min(calc(100% - 40px), var(--content));align-items:center;gap:15px;min-height:118px;margin:0 auto;display:flex}.site-footer .brand-mark{color:var(--mint);background:#0d2720}.site-footer p{margin:0;font-size:11px}.site-footer a{color:#d8e6e1;align-items:center;gap:7px;margin-left:auto;font-size:11px;display:inline-flex}.site-footer a svg{width:14px;height:14px;transform:rotate(-90deg)}@media (width<=1120px){.hero-inner{gap:48px}.hero h1{font-size:54px}.quick-path{grid-template-columns:repeat(3,minmax(0,1fr))}.quick-path li:nth-child(3){border-right:0}.quick-path li:nth-child(-n+3){border-bottom:1px solid var(--line)}.tutorial-layout{border-left:0;border-right:0;width:100%}.chapter,.update-band,.links-section{padding-left:52px;padding-right:52px}}@media (width<=900px){.hero-inner{grid-template-columns:1fr;gap:48px;padding-top:66px}.outcome-panel{max-width:680px}.tutorial-layout{grid-template-columns:1fr}.toc{display:none}.tutorial-content{border-left:0}.menu-button{display:inline-flex}.two-column-instructions,.connection-check,.update-band,.links-section{grid-template-columns:1fr}.update-band .figure-grid{max-width:560px}}@media (width<=700px){html{scroll-padding-top:76px}.header-inner{width:min(calc(100% - 28px), var(--content));height:64px}.brand small,.header-github span{display:none}.header-github{width:38px;padding:0}.language-switch a{min-width:50px;font-size:10px}.mobile-nav{top:64px}.hero-inner,.quick-path-wrap{width:min(calc(100% - 30px), var(--content))}.hero-inner{min-height:0;padding:52px 0 42px}.hero h1{font-size:42px}.hero-lead{font-size:15px;line-height:1.7}.hero-actions{flex-direction:column;align-items:stretch}.primary-button,.secondary-button{width:100%}.outcome-panel{padding:26px 22px}.quick-path-wrap{padding:36px 0 48px}.quick-path-heading{grid-template-columns:1fr;gap:8px}.quick-path{grid-template-columns:1fr}.quick-path li{border-right:0;border-bottom:1px solid var(--line);grid-template-columns:28px 26px 1fr;align-items:center;gap:10px;min-height:96px;display:grid}.quick-path li:nth-child(-n+3){border-bottom:1px solid var(--line)}.quick-path li:last-child{border-bottom:0}.quick-path li>svg,.quick-path li p{margin:0}.chapter,.update-band,.links-section{padding:68px 22px}.chapter-header h2,.links-section h2{font-size:34px}.chapter-lead{font-size:14px}.figure-grid,.evidence-fields{grid-template-columns:1fr}.figure-grid figure>a{min-height:150px}.two-column-instructions{gap:38px}.connection-check{gap:34px}.copy-block-head button span{display:none}.copy-block pre{padding:18px;font-size:10px}.demo-heading{flex-direction:column;align-items:flex-start;padding-top:15px;padding-bottom:15px}.update-copy{grid-template-columns:28px 1fr}.update-copy h2{font-size:24px}.links-section{gap:34px}.site-footer>div{flex-wrap:wrap;align-items:flex-start;min-height:132px;padding:25px 0}.site-footer p{width:calc(100% - 48px);margin-top:8px}.site-footer a{width:100%;margin-left:0}}@media (width<=430px){.header-inner{gap:8px}.brand{gap:7px;font-size:14px}.brand-mark{width:29px;height:29px}.header-actions{gap:6px}.language-switch a{min-width:42px}.hero h1{font-size:36px}.hero-meta{flex-direction:column;align-items:flex-start;gap:7px}.hero-meta span+span:before{display:none}.chapter-header h2,.links-section h2{font-size:30px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
