:root{--paper:#f7f8f4;--ink:#182c29;--muted:#5c6d68;--line:#dce2da;--green:#235c49;--lime:#d2e997;color:var(--ink);background:var(--paper);font-synthesis:none;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;line-height:1.7}*{box-sizing:border-box}body{margin:0}a{color:var(--green);text-underline-offset:4px}button,input{font:inherit}a,button,input,summary{outline-offset:5px}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--green)}a:hover{color:#36795c}h1,h2,h3,p{margin-top:0}h1,h2,h3{letter-spacing:-.04em;font-weight:550;line-height:1.17}h1{font-size:clamp(2.4rem,4.6vw,4rem)}h2{font-size:clamp(1.8rem,3vw,2.6rem)}h3{font-size:1.35rem}p{margin-bottom:1.2em}.eyebrow{letter-spacing:.15em;color:var(--green);margin-bottom:20px;font-family:SFMono-Regular,Consolas,monospace;font-size:11px;font-weight:500}.site-header{border-bottom:1px solid var(--line)}.header-inner{justify-content:space-between;align-items:center;gap:30px;max-width:1280px;margin:auto;padding:25px 42px;display:flex}.brand{letter-spacing:-.04em;color:var(--ink);align-items:center;gap:13px;font-size:19px;font-weight:650;line-height:1.3;text-decoration:none;display:flex}.brand small{letter-spacing:.18em;color:var(--muted);margin-top:6px;font-size:9px;font-weight:500;display:block}.brand-mark{background:var(--ink);color:#fff;text-align:center;border-radius:9px;width:44px;font-family:Georgia,serif;font-size:35px;line-height:43px}.brand-mark>span{color:var(--lime)}nav{align-items:center;gap:32px;display:flex}nav a{color:var(--muted);font-size:13px;text-decoration:none}nav a[aria-current=page]{color:var(--ink);text-underline-offset:9px;text-decoration:underline}.nav-contact{border:1px solid var(--line);color:var(--ink);border-radius:5px;padding:8px 15px}main{max-width:1280px;min-height:60vh;margin:0 auto;padding:0 42px}.hero{grid-template-columns:1.3fr 1fr;align-items:center;gap:65px;padding:90px 0 85px;display:grid}.hero h1{margin-bottom:26px;font-size:clamp(2.5rem,4.5vw,4.15rem);line-height:1.1}.hero h1>span{color:#6e8376}.hero-intro{color:var(--muted);max-width:530px;font-size:17px;line-height:1.85}.hero-actions{align-items:center;gap:26px;margin-top:32px;display:flex}.button{background:var(--ink);color:#fff;border:0;border-radius:5px;align-items:center;gap:26px;padding:13px 20px;font-size:13px;font-weight:550;text-decoration:none;display:inline-flex}.button:hover{background:var(--green);color:#fff}.text-link{align-items:center;gap:16px;font-size:13px;font-weight:550;text-decoration:none;display:inline-flex}.network-visual{background:#eaf0e6;border:1px solid #d5dfcf;border-radius:9px;position:relative;overflow:hidden}.visual-top,.visual-bottom{letter-spacing:.08em;color:#566f5c;align-items:center;gap:8px;padding:16px 20px;font-family:Consolas,monospace;font-size:9px;display:flex}.visual-top{border-bottom:1px solid #d5dfcf}.visual-top>span:last-child{margin-left:auto}.status-dot{background:#56804a;border-radius:50%;width:6px;height:6px}.diagram{background-image:radial-gradient(#c4d3bf .8px,#0000 .8px);background-size:15px 15px;padding:28px 32px}.diagram-node{background:#f9fbf6;border:1px solid #cfd9c9;border-radius:6px;align-items:center;gap:17px;padding:14px 18px;display:flex;box-shadow:0 3px 5px #1c382007}.diagram-node>div{display:grid}.diagram-node small{letter-spacing:.12em;color:#74846d;font:9px Consolas,monospace}.diagram-node strong{margin:3px 0;font-size:14px;font-weight:600}.diagram-node div>span{color:var(--muted);font-size:10px}.node-icon{color:var(--green);width:28px;font:22px Consolas,monospace}.connector{align-items:center;gap:15px;height:35px;padding-left:31px;display:flex}.connector span{border-left:1px dashed #a8bea0;height:100%}.connector small{color:#75856c;letter-spacing:.05em;font:8px Consolas,monospace}.visual-bottom{letter-spacing:0;border-top:1px solid #d5dfcf;justify-content:center;font-size:10px}.work-section,.writing-section{border-top:1px solid var(--line);padding:50px 0 65px}.section-heading{justify-content:space-between;align-items:flex-end;gap:25px;margin-bottom:32px;display:flex}.section-heading h2{margin:0}.section-heading .eyebrow{margin-bottom:12px}.section-heading>.text-link{flex-shrink:0;margin-bottom:6px}.project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;display:grid}.project-card{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:7px;flex-direction:column;padding:28px;text-decoration:none;transition:transform .2s,border-color .2s;display:flex}.project-card:hover{color:var(--ink);border-color:#7f9c83;transform:translateY(-4px)}.card-top{color:var(--green);justify-content:space-between;gap:10px;margin-bottom:43px;font-size:10px;display:flex}.project-number{color:#8c9c8c;font-family:Consolas,monospace}.project-card h3{max-width:250px;margin-bottom:17px;font-size:25px;line-height:1.22}.project-card p{color:var(--muted);flex:1;font-size:13px;line-height:1.85}.tags{flex-wrap:wrap;gap:6px;margin:12px 0 25px;display:flex}.tags>span{color:#536554;background:#f7f9f4;border:1px solid #e0e5de;border-radius:3px;padding:3px 8px;font-size:9px}.card-action{border-top:1px solid #edf0e9;justify-content:space-between;padding-top:18px;font-size:12px;font-weight:550;display:flex}.practice{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:0 90px;padding:50px 0 65px;display:grid}.practice>.eyebrow{grid-column:1/-1}.practice h2{font-size:38px}.practice>div{color:var(--muted);font-size:15px}.writing-list>a{border-bottom:1px solid var(--line);color:var(--ink);align-items:center;gap:24px;padding:23px 0;text-decoration:none;display:flex}.writing-list h3{letter-spacing:-.02em;flex:1;margin:0;font-size:18px}.writing-index{color:#809080;font:11px Consolas,monospace}.writing-list time{color:var(--muted);white-space:nowrap;font-size:11px}.contact-strip{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:35px;max-width:1196px;margin:25px auto 0;padding:55px 0;display:flex}.contact-strip h2{margin-bottom:10px;font-size:29px}.contact-strip p:last-child{color:var(--muted);margin:0;font-size:13px}.contact-strip .eyebrow{margin-bottom:14px}.site-footer{border-top:1px solid var(--line);max-width:1280px;color:var(--muted);justify-content:space-between;gap:25px;margin:auto;padding:25px 42px 35px;font-size:11px;display:flex}.site-footer a{color:var(--muted);text-decoration:none}.site-footer span>span,.site-footer a>span{color:#b0bbaa;margin:0 12px}.reading{max-width:1000px;padding-top:60px}.directory{padding-top:60px}.page-heading{max-width:850px;margin-bottom:35px}.page-heading h1{margin-bottom:20px}.article-meta{color:var(--muted);font-size:12px}.article-meta>span{color:#acb7ac;margin:0 12px}.directory-intro{max-width:730px;color:var(--muted);margin:0 0 45px;font-size:18px}.directory .project-grid{margin-top:30px}.project-directory{padding:65px 0}.directory-links{grid-template-columns:1fr 1fr;gap:0 35px;display:grid}.directory-links a{border-bottom:1px solid var(--line);justify-content:space-between;gap:15px;padding:16px 0;font-size:14px;text-decoration:none;display:flex}.article-list article{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:30px;padding:24px 0;display:flex}.article-list h2{letter-spacing:-.025em;max-width:850px;margin:0;font-size:23px}.article-list a{text-decoration:none}.article-list time{color:var(--muted);white-space:nowrap;font-size:12px}.search-panel{border-top:1px solid var(--line);border-bottom:1px solid var(--line);max-width:600px;margin:25px 0 35px;font-size:13px}.search-panel summary{cursor:pointer;color:var(--muted);padding:13px 0}.search-panel summary>span{float:right}.search-panel form{padding:5px 0 20px}.search-panel label{margin-bottom:10px;font-size:12px;display:block}#search-form>div{gap:8px;display:flex}input{border:1px solid var(--line);background:#fff;border-radius:4px;flex:1;min-width:0;padding:11px}button{background:var(--green);color:#fff;cursor:pointer;border:0;border-radius:4px;padding:10px 18px}#results{padding-left:18px}#results:empty{display:none}#results li{padding:5px 0}.content{overflow-wrap:anywhere;padding-bottom:40px;font-size:16px;line-height:1.95}.content h2{margin:50px 0 20px;scroll-margin-top:30px;font-size:28px}.content h3{margin:35px 0 18px;scroll-margin-top:30px;font-size:22px}.content p{color:#3c4d46}.content img{border-radius:4px;max-width:100%;height:auto}.content figure{max-width:100%;margin:35px 0}.content figcaption{color:var(--muted);text-align:center;font-size:12px}.content pre{white-space:pre;color:#e1e9de;tab-size:4;background:#192c2a;border-radius:5px;max-width:100%;margin:8px 0 28px;padding:25px;font:13px/1.8 Consolas,Monaco,monospace;overflow-x:auto}.content pre code{color:inherit;font-size:inherit;background:0 0;padding:0}code{background:#e8eee4;border-radius:3px;padding:3px 5px;font:.85em Consolas,monospace}.copy-code{color:#3e5848;background:#e2e9de;margin:20px 0 0 auto;padding:7px 11px;font:10px Consolas,monospace;display:block}.content table{border-collapse:collapse;max-width:100%;font-size:14px;display:block;overflow-x:auto}.content th,.content td{border:1px solid var(--line);padding:12px}.content blockquote{background:#ecf1e7;border-left:3px solid #93af78;margin:30px 0;padding:15px 25px}.wp-block-columns{gap:25px;display:flex}.wp-block-column{flex:1;min-width:0}.aligncenter{text-align:center}iframe{max-width:100%}.skip-link{z-index:20;background:#fff;padding:10px;position:fixed;top:-100px;left:20px}.skip-link:focus{top:15px}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}@media (width>=1500px){.hero{padding-top:110px;padding-bottom:110px}}@media (width<=1100px){.contact-strip{margin-left:42px;margin-right:42px}.hero{gap:35px}.project-card{padding:22px}.hero-actions{gap:18px}.hero-actions .button{gap:12px}.hero h1{font-size:46px}}@media (width<=850px){.hero{grid-template-columns:1fr;gap:40px;padding:60px 0}.hero-intro{max-width:620px}.network-visual{max-width:550px}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.work-section .project-card:last-child{grid-column:1/-1}.practice{gap:0 35px}.practice h2{font-size:31px}.contact-strip{flex-direction:column;align-items:flex-start}.article-list article{display:block}.article-list time{margin-top:12px;display:block}.site-footer>span{display:none}}@media (width<=600px){.header-inner{flex-wrap:wrap;gap:20px;padding:20px}.brand{font-size:17px}nav{justify-content:space-between;gap:22px;width:100%}nav a{font-size:12px}.nav-contact{padding:5px 10px}main{padding-left:20px;padding-right:20px}.hero{padding:45px 0}.hero h1{font-size:39px}.hero-intro{font-size:15px}.hero-actions{flex-wrap:wrap}.diagram{padding:22px}.project-grid{grid-template-columns:1fr}.work-section .project-card:last-child{grid-column:auto}.section-heading{flex-direction:column;align-items:flex-start;gap:17px}.project-card h3{max-width:none}.card-top{margin-bottom:28px}.practice{grid-template-columns:1fr}.practice h2{font-size:32px}.writing-list>a{gap:13px}.writing-list h3{font-size:16px}.writing-list time{display:none}.contact-strip{margin:0 20px;padding:35px 0}.contact-strip h2{font-size:25px}.site-footer{padding:25px 20px;font-size:10px}.directory-links{grid-template-columns:1fr}.reading,.directory{padding-top:38px}.content{font-size:15px}.content pre{padding:18px;font-size:12px}.wp-block-columns{display:block}.directory-intro{font-size:16px}}.page-outline{border:1px solid var(--line);background:#eef2e9;border-radius:5px;margin:30px 0;padding:14px 20px;font-size:13px}.page-outline summary{cursor:pointer;color:var(--green)}.page-outline nav{gap:9px;padding:15px 0 0;display:grid}.page-outline nav a{font-size:12px}.project-card .project-date{color:var(--muted);flex:none;margin:-3px 0 16px;font-size:11px;line-height:1.5}.directory-date{color:var(--muted);margin-top:5px;font-size:11px;display:block}.directory-order{color:var(--muted);letter-spacing:0;margin:12px 0 0;font-size:12px}.illustrated-articles article{padding:0;display:block}.article-row{color:var(--ink);align-items:center;gap:24px;padding:25px 0;text-decoration:none;display:flex}.article-row:hover{color:var(--green)}.article-row-text{flex:1;min-width:0}.illustrated-articles .article-row :is(h2,h3,h4){margin:5px 0 0;font-size:22px;line-height:1.4}.article-topic{letter-spacing:.09em;text-transform:uppercase;color:var(--muted);font:10px Consolas,monospace}.topic-icon{color:#34634f;background:#e6eee0;border:1px solid #d9e4d3;border-radius:9px;flex-shrink:0;place-items:center;width:64px;height:64px;display:grid}.topic-icon svg{width:29px;height:29px}.topic-cloud{color:#3d658a;background:#e6eef5;border-color:#d9e4f0}.topic-programming{color:#725592;background:#ece8f3;border-color:#e1dbee}.topic-security{color:#965d43;background:#f3e9e5;border-color:#ebddd5}.topic-automation{color:#88702a;background:#f2efdf;border-color:#e7e2cb}.topic-systems{color:#526c79;background:#e8ecee;border-color:#dce2e5}.article-arrow{font-size:20px}.illustrated-articles.compact .article-row :is(h2,h3,h4){font-size:18px}.illustrated-articles.compact .topic-icon{width:52px;height:52px}.illustrated-articles.compact .topic-icon svg{width:25px;height:25px}@media (width<=600px){.article-row{flex-wrap:wrap;gap:14px;padding:22px 0}.topic-icon{width:48px;height:48px}.topic-icon svg{width:25px;height:25px}.illustrated-articles .article-row :is(h2,h3,h4){font-size:17px}.illustrated-articles .article-row time{width:100%;margin:0 0 0 62px;font-size:11px}.article-arrow{display:none}.illustrated-articles.compact .topic-icon{width:48px;height:48px}}.content .lightbox-trigger{cursor:zoom-in}.content .image-enlarge{max-width:100%;color:inherit;vertical-align:middle;background:0 0;border:0;padding:0;line-height:0;display:inline-block}.image-lightbox{color:#f4f7f1;background:#0c1615f7;border:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:0;position:fixed;inset:0;overflow:hidden}.image-lightbox[open]{grid-template-rows:auto minmax(0,1fr) auto;display:grid}.image-lightbox::backdrop{background:#101c1aeb}.lightbox-toolbar,.lightbox-footer{justify-content:space-between;align-items:center;gap:18px;padding:16px 24px;display:flex}.lightbox-toolbar{border-bottom:1px solid #ffffff20}.lightbox-toolbar>div{gap:10px;display:flex}.image-lightbox button{color:#f4f7f1;background:#ffffff12;border:1px solid #ffffff35;padding:9px 15px;font-size:12px}.image-lightbox button:hover{background:#ffffff25}.image-lightbox button:focus-visible{outline:2px solid #d2e997}.image-lightbox button[hidden]{display:none}.lightbox-count{color:#c8d5cd;margin:0;font-size:12px}.lightbox-stage{overscroll-behavior:contain;justify-content:center;align-items:center;min-height:0;padding:24px;display:flex;overflow:auto}.lightbox-image{object-fit:contain;width:auto;max-width:100%;height:auto;max-height:100%;display:block}.is-zoomed .lightbox-stage{display:block}.is-zoomed .lightbox-image{max-width:none;max-height:none;margin:auto}.lightbox-footer{border-top:1px solid #ffffff20}.lightbox-caption{text-align:center;color:#d4ded7;max-width:800px;margin:0;font-size:12px}.lightbox-prev,.lightbox-next{flex-shrink:0}@media (width<=600px){.lightbox-toolbar,.lightbox-footer{gap:8px;padding:12px}.image-lightbox button{padding:8px 10px;font-size:11px}.lightbox-stage{padding:12px}.lightbox-caption{max-height:65px;font-size:11px;overflow:auto}.lightbox-count{font-size:11px}}.lightbox-image{cursor:zoom-in}.is-zoomed .lightbox-image{cursor:zoom-out}.grouped-projects{gap:18px;display:grid}.project-group{border:1px solid var(--line);background:#fff;border-radius:6px;padding:24px 28px}.project-group-heading{justify-content:space-between;align-items:center;gap:20px;display:flex}.project-group-heading h3{margin:0 0 8px;font-size:22px}.project-group-heading h3 a{text-decoration:none}.project-group-heading p{margin:0}.project-group-heading>.text-link{flex-shrink:0}.project-group details{border-top:1px solid var(--line);margin-top:18px;padding-top:13px;font-size:13px}.project-group summary,.project-navigation summary{cursor:pointer;color:var(--green)}.project-group-parts h4{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:24px 0 10px;font-size:12px}.project-group-parts ol{margin:0;padding-left:20px}.project-group-parts li{padding:8px 0 8px 5px}.project-group-parts li a{text-decoration:none}.project-group-parts time{color:var(--muted);white-space:nowrap;margin-left:16px;font-size:11px}.project-navigation{border:1px solid var(--line);border-left:3px solid var(--green);background:#eef2e9;border-radius:5px;margin:25px 0 35px;padding:22px 25px}.project-navigation .eyebrow{margin:0 0 8px}.project-parent{font-size:20px;font-weight:550;text-decoration:none}.project-navigation details{margin-top:15px;font-size:13px}.project-navigation ol{margin-bottom:0;padding-left:20px}.project-navigation li{padding:6px 0}.project-navigation li a{text-decoration:none}.project-navigation a[aria-current=page]{font-weight:650;text-decoration:underline}.related-projects{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:8px 15px;margin-bottom:25px;padding:15px 0;font-size:12px;display:flex}.related-projects>span{color:var(--muted)}@media (width<=600px){.project-group{padding:20px}.project-group-heading{display:block}.project-group-heading>.text-link{margin-top:15px}.project-group-parts time{margin:4px 0 0;display:block}.project-navigation{padding:18px}.project-group-heading h3{font-size:20px}}.project-group-heading .project-subject{letter-spacing:.1em;text-transform:uppercase;color:var(--green);margin:0 0 9px;font:10px/1.5 Consolas,monospace}.project-walkthroughs{border-top:1px solid var(--line);padding:30px 0 50px}.project-walkthroughs>.eyebrow{margin-bottom:12px}.project-walkthroughs>h2{margin-bottom:15px;font-size:28px}.project-walkthroughs .article-row time{font-size:11px}.project-content .project-media{float:none;border:1px solid var(--line);text-align:center;background:#fff;border-radius:7px;width:100%;max-width:100%;margin:30px 0;display:block;overflow:hidden}.project-content .project-media>a,.project-content .project-media>.image-enlarge{aspect-ratio:16/10;background:#f0f3ed;border-radius:0;justify-content:center;align-items:center;width:100%;max-width:100%;padding:18px;line-height:0;display:flex}.project-content .project-media img{object-fit:contain;border-radius:0;width:auto;max-width:100%;height:auto;max-height:100%;margin:auto;display:block}.project-content .project-media>img{aspect-ratio:16/10;object-fit:contain;background:#f0f3ed;width:100%;height:100%;padding:18px}.project-content .project-media figcaption{border-top:1px solid var(--line);background:#fff;margin:0;padding:12px 16px;font-size:12px;line-height:1.6}.project-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:30px 0;display:grid}.project-content .project-gallery .project-media{max-width:100%;margin:0}.project-content .project-media>a>br{display:none}.terminology{border-top:1px solid var(--line);margin:25px 0 45px}.terminology dt{color:var(--ink);padding-top:20px;font-size:16px;font-weight:650}.terminology dd{border-bottom:1px solid var(--line);color:#3c4d46;margin:8px 0 0;padding-bottom:20px;font-size:15px;line-height:1.85}@media (width<=600px){.project-gallery{grid-template-columns:1fr;gap:18px}.project-content .project-media>a,.project-content .project-media>.image-enlarge{padding:12px}.project-content .project-media figcaption{font-size:11px}}.screenshot-collection{border:1px solid var(--line);background:#fff;border-radius:7px;margin:24px 0 42px;overflow:hidden}.screenshot-collection>summary{cursor:pointer;color:var(--green);justify-content:space-between;align-items:center;gap:20px;padding:19px 22px;font-size:14px;font-weight:550;list-style:none;display:flex}.screenshot-collection>summary::-webkit-details-marker{display:none}.screenshot-collection>summary>span:before{content:"+";width:25px;font:18px Consolas,monospace;display:inline-block}.screenshot-collection[open]>summary>span:before{content:"−"}.screenshot-collection>summary>small{white-space:nowrap;color:var(--muted);font-size:11px;font-weight:400}.project-content .screenshot-description{color:var(--muted);margin:0 0 20px;padding:0 22px;font-size:13px;line-height:1.7}.project-content .f5-screenshot-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:0;padding:0 20px 20px}.project-content .f5-screenshot-grid .project-media{border-radius:4px}.project-content .f5-screenshot-grid .project-media>a,.project-content .f5-screenshot-grid .project-media>.image-enlarge{padding:8px}.project-content .f5-screenshot-grid .project-media figcaption{padding:9px;font-size:10px;line-height:1.5}.project-content .f5-lead-image{max-width:720px;margin:30px auto 20px}.project-content .f5-lead-image>a,.project-content .f5-lead-image>.image-enlarge{aspect-ratio:16/9}.screenshot-collection[open]>summary{border-bottom:1px solid var(--line);margin-bottom:18px}@media (width<=800px){.project-content .f5-screenshot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=500px){.project-content .f5-screenshot-grid{grid-template-columns:1fr;padding:0 14px 14px}.screenshot-collection>summary{gap:10px;padding:16px 14px;font-size:12px}.screenshot-collection>summary>small{font-size:10px}.project-content .screenshot-description{padding:0 14px}}.content:not(.project-content) .article-media{float:none;border:1px solid var(--line);background:#f0f3ed;border-radius:6px;width:100%;max-width:100%;margin:30px 0;padding:16px;display:block;overflow:hidden}.content:not(.project-content) .article-media>a,.content:not(.project-content) .article-media>.image-enlarge{text-align:center;background:0 0;width:100%;max-width:100%;padding:0;line-height:0;display:block}.content:not(.project-content) .article-media img{object-fit:contain;border-radius:2px;width:100%;max-width:100%;height:auto;max-height:560px;margin:0 auto;display:block}.content:not(.project-content) .article-media figcaption{border-top:1px solid var(--line);margin:16px 0 0;padding-top:12px;font-size:12px;line-height:1.6}.content ul,.content ol{margin:14px 0 18px;padding-left:26px}.content li{margin:3px 0;padding-left:3px;line-height:1.6}.content li>ul,.content li>ol{margin:6px 0}.content li>p{margin:0 0 .35em}.content li>p:last-child{margin-bottom:0}.content h4{margin:30px 0 15px;font-size:19px;line-height:1.4}.content h5,.content h6{margin:25px 0 12px;font-size:17px;line-height:1.4}.content table{border-radius:4px;width:100%}.content th{text-align:left;background:#e9eee3}.content td,.content th{vertical-align:top;overflow-wrap:anywhere}.content pre{overflow-wrap:normal;word-break:normal}.content p:empty{display:none}@media (width<=600px){.content:not(.project-content) .article-media{margin:24px 0;padding:10px}.content:not(.project-content) .article-media img{max-height:430px}.content ul,.content ol{padding-left:22px}}.content video{object-fit:contain;border:1px solid var(--line);background:#192c2a;border-radius:6px;width:100%;max-width:100%;height:auto;max-height:560px;margin:30px 0;display:block}.content audio{width:100%;max-width:100%;margin:20px 0}.code-example{background:#192c2a;border:1px solid #2e4640;border-radius:6px;margin:24px 0 30px;overflow:hidden}.code-header{color:#e4eee6;background:#233c36;border-bottom:1px solid #ffffff16;justify-content:space-between;align-items:center;gap:15px;padding:10px 16px;display:flex}.code-filename{overflow-wrap:anywhere;font:12px/1.6 Consolas,Monaco,monospace}.code-kind{text-transform:uppercase;letter-spacing:.08em;color:#b6ccbe;font:10px Consolas,monospace}.code-header .copy-code{color:#e4eee6;background:#ffffff0d;border:1px solid #ffffff25;flex-shrink:0;margin:0;padding:6px 10px}.content .code-example pre{border:0;border-radius:0;max-height:650px;margin:0;overflow:auto}.code-disclosure{border:1px solid var(--line);background:#eef2e9;border-radius:6px;margin:25px 0;padding:0 18px}.code-disclosure>summary{cursor:pointer;color:var(--green);padding:15px 0;font-size:13px;font-weight:550}.code-disclosure .code-example{margin:0 0 18px}.content .article-intro{border-left:3px solid #93af78;margin-bottom:35px;padding-left:20px;font-size:18px;line-height:1.8}@media (width<=600px){.code-header{padding:9px 12px}.code-filename{font-size:11px}.code-header .copy-code{font-size:10px}.content .article-intro{font-size:16px}.content .code-example pre{max-height:500px}}.code-actions{flex-shrink:0;align-items:center;gap:14px;display:flex}.code-line-count{color:#b6ccbe;white-space:nowrap;font:10px Consolas,monospace}.code-disclosure-count{color:var(--muted);white-space:nowrap;margin-left:16px;font:10px Consolas,monospace}@media (width<=600px){.code-actions{gap:6px}.code-line-count{display:none}.code-disclosure-count{margin-left:10px}.code-disclosure>summary{overflow-wrap:anywhere}}.content .code-example pre{max-height:420px;overflow:auto}.content .code-example.is-expanded pre{max-height:none;overflow-x:auto}.code-header .expand-code{color:#e4eee6;background:#ffffff0d;border:1px solid #ffffff25;margin:0;padding:6px 10px;font:10px Consolas,monospace}.code-header .expand-code:hover{background:#ffffff20}@media (width<=600px){.content .code-example pre{max-height:360px}.code-actions{gap:5px}.code-header .expand-code,.code-header .copy-code{padding:6px 8px}}.content .code-example pre.astro-code{background:#192c2a!important}.content .code-example pre[data-language=text]{color:#e1e9de!important}.content .astro-code code{font:inherit}.content .astro-code .line{line-height:inherit}.project-article-menu nav{display:block}.project-article-group+.project-article-group{margin-top:24px}.project-article-group-title{margin:0 0 12px;font-size:15px;line-height:1.5}.project-article-menu ol{margin:0;padding-left:22px}.project-article-menu li{padding:5px 0;line-height:1.6}.project-article-menu a{overflow-wrap:anywhere}.project-article-menu a[aria-current=page]{font-weight:650;text-decoration:underline}.project-walkthroughs .article-row[aria-current=page]{box-shadow:inset 3px 0 var(--green);background:#eef2e9;padding-inline:16px}.topic-browser{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:42px 0 52px}.topic-browser .section-heading{align-items:flex-start;margin-bottom:26px}.topic-browser .eyebrow{margin-bottom:12px}.topic-browser h2{margin-bottom:14px}.topic-browser-intro{color:var(--muted);max-width:620px;margin:0;font-size:14px;line-height:1.7}.topic-browser .text-link{white-space:nowrap;margin-top:8px}.topic-browser-rows{gap:0;display:grid}.topic-browser-row{grid-template-columns:165px minmax(0,1fr);align-items:center;gap:20px;padding:16px 0;display:grid}.topic-browser-row+.topic-browser-row{border-top:1px solid var(--line)}.topic-browser-row h3{letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin:0;font:500 11px/1.5 SFMono-Regular,Consolas,monospace}.topic-browser-row ul{flex-wrap:wrap;gap:9px;margin:0;padding:0;list-style:none;display:flex}.topic-browser-row li{margin:0;padding:0}.topic-browser-row a{border:1px solid var(--line);min-height:42px;color:var(--ink);background:#fff;border-radius:999px;align-items:center;gap:12px;padding:8px 14px;font-size:13px;line-height:1.5;text-decoration:none;transition:background .15s,border-color .15s;display:inline-flex}.topic-browser-row a:hover{border-color:var(--green);color:var(--green);background:#eef2e9}@media (width<=800px){.topic-browser-row{grid-template-columns:1fr;gap:12px}.topic-browser .section-heading{display:block}.topic-browser .text-link{margin-top:18px;display:inline-block}}@media (width<=600px){.topic-browser{padding:30px 0 34px}.topic-browser-row{padding:18px 0}.topic-browser-row a{gap:9px;padding:8px 12px;font-size:12px}.topic-browser-row ul{gap:8px}}
