:root{--bg:#fff;--ink:#242424;--muted:#767676;--green:#0085a1;--line:#e8e8e8;--soft:#f7f8f9;--mono:ui-monospace,SFMono-Regular,Consolas,monospace}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.75 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:hover{color:var(--green)}button,input{font:inherit}a,button,input{touch-action:manipulation}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid #34adc5;outline-offset:4px}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.3}h1{font-size:40px}h2{font-size:28px}h3{font-size:23px}.wrap{width:min(1100px,calc(100% - 56px));margin:auto}.site-header{height:78px;border-bottom:1px solid var(--line);background:#fff}.nav-wrap{padding:0 32px;height:100%;display:flex;justify-content:space-between;align-items:center}.brand{font-size:20px;font-weight:800;white-space:nowrap}nav{display:flex;gap:28px;align-items:center;font-size:12px;font-weight:750;letter-spacing:.035em}nav>a{text-transform:uppercase}.language-switch{display:flex;gap:10px;border-left:1px solid #bbb;padding-left:22px;font-size:12px;white-space:nowrap}.language-switch a[aria-current]{border-bottom:2px solid currentColor}.home .site-header{position:absolute;z-index:2;inset:0 0 auto;color:white;background:transparent;border:0}.home .site-header a:hover{color:#cdeff5}.home .language-switch{border-color:#ffffff66}.intro-header{background:#163c55 url('/assets/original-cover.png') center center/cover no-repeat;min-height:455px;display:flex;align-items:center;justify-content:center;text-align:center;color:white;position:relative}.intro-header:before{content:"";position:absolute;inset:0;background:linear-gradient(#00121c33,#00121c0d)}.site-heading{position:relative;padding:110px 24px 80px;text-shadow:0 2px 14px #001e3580}.site-heading h1{font-size:80px;font-weight:800;letter-spacing:-2px;margin:0 0 14px}.site-heading p{font-size:19px;font-weight:300;margin:0}.blog-home{display:grid;grid-template-columns:minmax(0,760px) 240px;gap:70px;padding:55px 0 65px}.home-intro{padding-bottom:30px;border-bottom:1px solid var(--line);margin-bottom:30px}.eyebrow{color:var(--green);font-size:11px;line-height:1.6;letter-spacing:.09em;font-weight:750;text-transform:uppercase}.home-intro>p:nth-child(2){font-size:17px;line-height:1.8;margin-bottom:20px;color:#555}.topic-pills{display:flex;flex-wrap:wrap;gap:8px}.topic-pills a{border:1px solid #ccc;border-radius:16px;padding:3px 11px;font-size:11px;white-space:nowrap;color:#666}.topic-pills a:hover{border-color:var(--green);color:var(--green)}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:8px}.section-heading h2{font-size:17px;font-weight:700;margin:0;color:#666}.text-link{font-size:12px;color:var(--green)}.article-row{padding:26px 0;border-bottom:1px solid var(--line)}.article-row h3{font-size:26px;font-weight:750;letter-spacing:-.025em;line-height:1.35;margin:7px 0 11px}.article-row p{font-size:14px;line-height:1.8;color:#666;margin-bottom:10px}.article-row .eyebrow{font-size:10px}.row-meta{font:italic 12px/1.8 Georgia,"Times New Roman",serif;color:#888}.archive-button{display:inline-block;margin-top:30px;border:1px solid #ddd;padding:10px 20px;font-size:12px;font-weight:750;text-transform:uppercase;letter-spacing:.05em}.archive-button:hover{background:var(--green);border-color:var(--green);color:#fff}.home-sidebar{font-size:13px;color:#777}.home-sidebar section{padding:25px 0;border-top:1px solid var(--line)}.home-sidebar section:first-child{padding-top:0;border:0}.avatar-mark{border-radius:50%;margin-bottom:19px;object-fit:cover;image-rendering:pixelated}.home-sidebar h2{font-size:20px;color:#444;margin-bottom:8px}.home-sidebar strong{font-size:12px;font-weight:600;color:#777;display:block;margin-bottom:15px}.home-sidebar p{line-height:1.9;margin-bottom:16px}.home-sidebar h3{font-size:12px;letter-spacing:.05em;color:#888;margin-bottom:14px}.home-sidebar ul{list-style:none;margin:0;padding:0}.home-sidebar li{margin:8px 0}.sidebar-social{display:flex;gap:20px;margin-top:18px;font-size:12px;color:#555}.section{padding:50px 0 65px}.page-header{padding:10px 0 32px;max-width:850px}.page-header h1{font-size:40px;margin:14px 0 20px;letter-spacing:-.03em}.page-header>p:last-child{font-size:17px;line-height:1.8;color:#777}.page-shell{max-width:840px;padding:55px 0 70px}.topic-list{border-top:1px solid var(--line)}.topic-item{display:grid;grid-template-columns:42px 1fr 90px;gap:24px;align-items:start;padding:32px 0;border-bottom:1px solid var(--line)}.topic-number{font:12px/1.6 var(--mono);color:#aaa;padding-top:6px}.topic-item h3{margin:0 0 10px;font-size:24px}.topic-item p{color:#777;font-size:15px;margin-bottom:12px}.topic-keywords{color:#999;font:11px/1.6 var(--mono)}.topic-count{font-size:12px;color:#888;padding-top:7px;text-align:right;white-space:nowrap}.topic-intro{color:#777;margin-bottom:15px}.archive-group{display:grid;grid-template-columns:200px 1fr;gap:45px;margin-bottom:45px}.archive-group h2{font-size:21px;padding-top:28px;line-height:1.5}.archive-group h2 span{font-size:13px;color:#999}.article-shell{display:grid;grid-template-columns:minmax(0,790px) 210px;gap:55px;padding:55px 0 65px}.article-header h1{font-size:38px;line-height:1.3;margin:20px 0;letter-spacing:-.03em}.article-deck{color:#777;font-size:17px}.article-meta{display:flex;flex-wrap:wrap;gap:20px;font-size:11px;color:#888;padding:12px 0 22px;border-bottom:1px solid var(--line)}.article-language{display:inline-block;color:var(--green);font-size:12px;margin-top:16px}.notice{font-size:12px;color:#777;background:#f7f8f9;border-left:3px solid #ddd;padding:13px 17px;margin:24px 0 30px}.prose{font-size:16px;line-height:1.9;overflow-wrap:anywhere}.prose p{margin-bottom:22px}.prose h2{font-size:27px;line-height:1.4;margin:44px 0 20px;letter-spacing:-.015em}.prose h3{font-size:21px;margin:31px 0 16px}.prose h4{font-size:18px}.prose a{color:var(--green);text-decoration:underline;text-underline-offset:4px;text-decoration-color:#bed5dc}.prose ul,.prose ol{padding-left:24px}.prose li{margin-bottom:8px}.prose img{max-width:100%;height:auto}.prose pre{padding:20px;background:#f6f8fa!important;border:1px solid #e9edef;border-radius:4px;overflow-x:auto;font:12px/1.8 var(--mono);white-space:pre}.prose code{font-family:var(--mono);font-size:.85em;padding:2px 4px;background:#f1f3f4;border-radius:3px}.prose pre code{background:transparent;padding:0}.prose table{display:block;max-width:100%;overflow:auto;border-collapse:collapse;font-size:14px;margin:24px 0}.prose th,.prose td{border:1px solid #ddd;padding:10px 13px;min-width:110px;vertical-align:top}.prose th{background:#f5f7f8;text-align:left}.prose blockquote{margin:25px 0;border-left:4px solid #ddd;padding:5px 20px;color:#777}.prose blockquote p:last-child{margin:0}.article-toc{position:sticky;top:25px;align-self:start;max-height:85vh;overflow:auto;padding-top:7px}.article-toc nav{display:block;font-size:12px;font-weight:400;letter-spacing:0}.article-toc ul{padding-left:0;list-style:none}.article-toc li{margin:12px 0;line-height:1.6}.article-toc li ul{padding-left:12px;border-left:1px solid #ddd}.article-toc a{color:#888}.article-toc a:hover{color:var(--green)}.article-end{border-top:1px solid var(--line);margin-top:45px;padding-top:25px;display:flex;justify-content:space-between;gap:15px;font-size:12px;color:var(--green)}.site-footer{width:min(1100px,calc(100% - 56px));margin:0 auto;padding:35px 0 42px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:start;gap:20px;font-size:12px;color:#888}.footer-brand{font-size:16px;font-weight:700;color:#555}.site-footer p{margin:6px 0}.footer-links{display:flex;gap:25px;padding-top:4px}.site-footer small{text-align:right;font-size:11px}.button{display:inline-flex;align-items:center;justify-content:center;background:var(--green);color:#fff;border:1px solid var(--green);padding:12px 20px;font-size:14px;font-weight:650;cursor:pointer}.button:hover{color:#fff;background:#00697f}.search-page{max-width:850px;min-height:65vh}#search-form{display:flex;gap:12px}#search-input{min-width:0;flex:1;padding:13px 17px;background:#fff;border:1px solid #bbb}#search-status{font-size:13px;color:#888;margin:20px 0}.skip,.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.skip:focus{width:auto;height:auto;clip-path:none;top:8px;left:10px;background:#fff;color:#333;padding:10px;z-index:10}
@media(max-width:1000px){.blog-home{grid-template-columns:minmax(0,1fr) 210px;gap:40px}.article-shell{grid-template-columns:minmax(0,1fr) 180px;gap:35px}.nav-wrap{padding:0 24px}nav{gap:20px}}
@media(max-width:780px){.blog-home{grid-template-columns:1fr;padding-top:35px;gap:40px}.home-sidebar{display:grid;grid-template-columns:1fr 1fr;gap:28px}.home-sidebar section:first-child{grid-column:span 2}.article-shell{display:block}.article-toc{display:none}.archive-group{grid-template-columns:1fr;gap:0}.intro-header{min-height:370px}.site-heading h1{font-size:62px}.site-heading{padding-top:100px}.site-header{height:auto;min-height:80px}.nav-wrap{flex-wrap:wrap;gap:10px;padding:18px 24px}nav{gap:18px;flex-wrap:wrap}.language-switch{padding-left:15px}.site-footer{flex-wrap:wrap}.site-footer small{text-align:left}}
@media(max-width:520px){.wrap,.site-footer{width:calc(100% - 40px)}.nav-wrap{padding:15px 20px;display:block}.brand{font-size:19px}.nav-wrap nav{margin-top:12px;gap:17px;font-size:10px;justify-content:flex-start}.language-switch{font-size:10px;gap:8px;padding-left:13px}.intro-header{min-height:355px;background-position:59% center}.site-heading{padding:133px 20px 70px}.site-heading h1{font-size:47px;letter-spacing:-1px}.site-heading p{font-size:16px}.home-intro>p:nth-child(2){font-size:15px}.topic-pills{gap:7px}.topic-pills a{font-size:10px}.article-row h3{font-size:23px;line-height:1.4}.article-row p{font-size:13px}.row-meta{font-size:11px}.blog-home{padding-top:30px}.home-sidebar{gap:22px}.home-sidebar h2{font-size:22px}.section{padding-top:35px}.page-header h1{font-size:33px}.page-header>p:last-child{font-size:15px}.topic-item{grid-template-columns:24px 1fr;gap:15px;padding:25px 0}.topic-item h3{font-size:22px}.topic-item p{font-size:14px}.topic-count{grid-column:2;text-align:left;padding:0}.topic-keywords{font-size:10px}.page-shell{padding-top:35px}.article-shell{padding-top:32px}.article-header h1{font-size:30px;line-height:1.35}.article-deck{font-size:15px}.article-meta{gap:12px;font-size:10px}.prose{font-size:15px}.prose h2{font-size:24px}.prose h3{font-size:20px}.prose pre{font-size:11px;padding:13px}.notice{font-size:11px}.site-footer{display:block}.footer-links{margin:20px 0}.site-footer small{display:block}#search-form{gap:8px}#search-form .button{padding:10px 13px;font-size:12px;white-space:nowrap}.section-heading h2{font-size:16px}.text-link{font-size:11px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.learning-labs{margin:0 0 38px;padding:0 0 34px;border-bottom:1px solid var(--line);scroll-margin-top:24px}.learning-labs>h2{font-size:25px;line-height:1.35;margin:8px 0 12px;letter-spacing:-.02em}.labs-intro{font-size:14px;color:#666;line-height:1.8;margin:0 0 20px}.lab-cards{display:grid;gap:16px}.lab-card{background:var(--soft);border:1px solid var(--line);padding:22px}.lab-card h3{font-size:23px;line-height:1.4;letter-spacing:-.02em;margin:7px 0 12px}.lab-card>p:not(.eyebrow){font-size:14px;line-height:1.8;color:#666;margin:0 0 18px}.lab-links{display:flex;gap:18px;flex-wrap:wrap;align-items:center;font-size:12px}.lab-links a{color:var(--green)}.lab-links .lab-primary{font-weight:750}.lab-links span{color:#888;margin-left:auto;font:11px var(--mono)}@media(max-width:520px){.learning-labs>h2{font-size:23px}.lab-card{padding:18px}.lab-card h3{font-size:21px}.lab-links{gap:14px}.lab-links span{margin-left:0}}

.resource-links{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:18px;font-size:12px;color:var(--green)}
.home-projects li span{font:11px var(--mono);color:#888;margin:0 5px}.home-projects>.text-link{display:inline-block;margin-top:12px}.project-categories{display:flex;flex-wrap:wrap;gap:12px;font-size:13px;font-weight:600;letter-spacing:0}.project-categories a{border:1px solid var(--line);padding:7px 14px;border-radius:4px;text-transform:none}.project-categories span{margin-left:8px;color:var(--muted);font:11px var(--mono)}.project-tools{margin-bottom:38px;padding-bottom:34px;border-bottom:1px solid var(--line);scroll-margin-top:24px}.project-tools>h2{font-size:25px;margin:8px 0 12px;letter-spacing:-.02em}.tool-grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.tool-card{display:flex;flex-direction:column;height:100%;padding:22px;border:1px solid var(--line);background:var(--soft)}.tool-card:hover{border-color:var(--green)}.tool-card h3{font-size:20px;margin:0 0 10px}.tool-card p{font-size:14px;color:#666;margin:0 0 20px;line-height:1.8}.tool-card>span{font-size:12px;font-weight:650;color:var(--green);margin-top:auto}.projects-page .learning-labs{border:0;margin-bottom:0;padding-bottom:0}.projects-page .lab-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.projects-page .lab-card{display:flex;flex-direction:column}.projects-page .lab-links{margin-top:auto}.inner-page nav>a[aria-current=page]{color:var(--green)}@media(max-width:780px){.tool-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.projects-page .lab-cards{grid-template-columns:1fr}}@media(max-width:520px){.tool-grid{grid-template-columns:1fr}.tool-card{padding:18px}.project-tools>h2{font-size:23px}}
