:root{color-scheme:dark;--bg:#111315;--panel:#191c1f;--text:#eeeFEB;--muted:#a6aaa8;--line:#323638;--accent:#c1ed87;--orange:#edb186;--max:1160px;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:28px}body{margin:0;background:var(--bg);color:var(--text);font-size:17px;line-height:1.65}a{color:inherit;text-underline-offset:5px}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:6px}a:hover{color:var(--accent)}.wrap{max-width:var(--max);margin:auto;padding:0 36px}.skip{position:absolute;top:-90px;background:var(--accent);color:#111;padding:12px;z-index:10}.skip:focus{top:8px}.site-header{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:108px;border-bottom:1px solid var(--line)}.brand{font-size:24px;font-weight:750;text-decoration:none;letter-spacing:-1px}.brand span{color:var(--accent)}nav{display:flex;gap:30px;align-items:center}nav a{font-size:14px;text-decoration:none;color:#c8cbc9}nav a:hover{color:var(--accent)}.eyebrow,.label,.meta{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px;letter-spacing:.08em}.eyebrow{text-transform:uppercase;color:var(--accent);margin:0 0 22px}.intro{padding:67px 0 54px;display:grid;grid-template-columns:1.45fr 1fr;gap:70px;align-items:end}.intro h1{font-size:clamp(42px,5.9vw,72px);line-height:1.07;font-weight:620;letter-spacing:-.055em;margin:0}.intro h1 em{font-style:normal;color:var(--accent)}.intro-copy{color:var(--muted);max-width:380px;margin:0 0 4px;font-size:17px}.section-top{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:0 0 22px}.section-top h2{font-size:14px;font-weight:500;margin:0;letter-spacing:.02em}.section-top span{font-family:ui-monospace,monospace;color:var(--muted);font-size:12px}.feature{display:grid;grid-template-columns:1.17fr 1fr;min-height:345px;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--panel)}.feature-copy{padding:36px 38px;display:flex;flex-direction:column;align-items:start}.tags{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:22px}.tag{border:1px solid #414840;border-radius:5px;padding:3px 9px;font-family:ui-monospace,monospace;font-size:12px;color:var(--accent)}.tag.subtle{color:#b4b8b5;border-color:var(--line)}.feature h2{font-size:clamp(27px,3vw,36px);line-height:1.18;letter-spacing:-.035em;margin:0 0 17px;max-width:410px}.feature h2 a{text-decoration:none}.feature p{font-size:16px;color:var(--muted);max-width:430px;margin:0 0 24px}.text-link{font-size:14px;font-weight:600;margin-top:auto}.feature-visual{padding:30px;background:#242d23;display:flex;flex-direction:column;justify-content:center;align-items:center;border-left:1px solid #3a4535}.diagram-title{align-self:stretch;color:#bbc9b3;font-family:ui-monospace,monospace;font-size:12px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:30px}.flow{width:100%;max-width:310px;display:grid;grid-template-columns:1fr 1fr;gap:0 18px;text-align:center}.flow-box{background:#303d2c;border:1px solid #607853;padding:18px 12px;border-radius:6px;font-size:15px;color:#e0eed8}.flow-box.primary{grid-column:1/-1;background:var(--accent);color:#24331b;border-color:var(--accent);font-size:20px;font-weight:650;letter-spacing:-.025em}.flow-line{height:32px;border-left:1px solid #829774;width:1px;justify-self:center}.diagram-note{font-size:12px;color:#bbc9b3;margin-top:25px}.main-grid{display:grid;grid-template-columns:1fr 295px;gap:70px;margin-top:58px}.post-list{border-top:1px solid var(--line)}.post-row{padding:25px 0;border-bottom:1px solid var(--line)}.meta{color:var(--muted);font-size:12px;letter-spacing:.025em}.post-row h3{font-size:23px;letter-spacing:-.025em;line-height:1.3;margin:8px 0}.post-row h3 a{text-decoration:none}.post-row p{color:var(--muted);font-size:15px;margin:0}.aside-title{font-size:14px;font-weight:500;margin:0 0 22px}.services{border-top:1px solid var(--line)}.service{padding:20px 0;border-bottom:1px solid var(--line)}.service a{font-size:16px;font-weight:600;text-decoration:none}.service p{font-size:13px;color:var(--muted);margin:3px 0 0}.service .label{display:block;color:#c7ccc4;font-size:12px;margin-top:8px;letter-spacing:0}.about{display:grid;grid-template-columns:1fr 2fr;gap:70px;padding:40px 0;margin-top:65px;border-top:1px solid var(--line)}.about h2{font-size:24px;letter-spacing:-.03em;margin:0}.about p{color:var(--muted);font-size:16px;margin:0 0 15px}.about p:last-child{margin:0}.footer{padding:25px 0 32px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;font-family:ui-monospace,monospace;font-size:12px;color:var(--muted)}.footer a{text-decoration:none}.article-head{padding:55px 0 35px;max-width:850px;margin:auto}.back{font-size:14px;color:var(--muted);display:inline-block;margin-bottom:38px}.article-head h1{font-size:clamp(35px,5vw,60px);line-height:1.12;letter-spacing:-.045em;margin:18px 0 20px}.lede{font-size:21px;line-height:1.6;color:#bec3bd;margin:0 0 24px}.article-layout{max-width:850px;margin:auto}.article-body{max-width:700px;font-size:18px;color:#ced1cc}.article-body h2{font-size:27px;line-height:1.3;color:var(--text);letter-spacing:-.025em;margin:42px 0 15px}.article-body p{margin:0 0 23px}.article-body li{margin:10px 0}.article-body strong{color:var(--text)}.article-body blockquote{border-left:2px solid var(--accent);margin:32px 0;padding:2px 0 2px 24px;font-size:23px;color:var(--text);letter-spacing:-.02em}.article-body code{font-size:.85em;overflow-wrap:anywhere;color:var(--accent)}.article-end{border-top:1px solid var(--line);padding:25px 0;margin-top:45px;font-size:14px;color:var(--muted)}.related{margin:30px 0 60px}.related a{font-size:18px}.error{min-height:65vh;padding:90px 0}.error h1{font-size:52px;letter-spacing:-.04em}
@media(min-width:1500px){.intro{padding-top:80px;padding-bottom:65px}}
@media(max-width:850px){.intro{gap:30px;grid-template-columns:1.2fr 1fr}.main-grid{gap:35px;grid-template-columns:1fr 250px}.feature-copy{padding:28px}.feature-visual{padding:25px}.about{gap:35px}}
@media(max-width:640px){.wrap{padding:0 22px}.site-header{min-height:84px;gap:18px}.brand{font-size:22px}nav{gap:18px}nav a{font-size:13px}.intro{display:block;padding:40px 0}.intro h1{font-size:48px;max-width:380px}.eyebrow{font-size:12px;margin-bottom:18px}.intro-copy{margin-top:24px;max-width:450px;font-size:16px}.feature{grid-template-columns:1fr}.feature-copy{padding:28px 25px}.feature-visual{border-left:0;border-top:1px solid #3a4535;padding:24px}.diagram-title{margin-bottom:20px}.flow{max-width:330px}.flow-box{padding:12px}.flow-line{height:22px}.diagram-note{margin-top:18px}.main-grid{grid-template-columns:1fr;gap:38px;margin-top:40px}.post-row h3{font-size:22px}.about{display:block;margin-top:42px;padding:30px 0}.about h2{margin-bottom:20px}.footer{flex-direction:column;gap:9px}.article-head{padding-top:28px}.back{margin-bottom:25px}.lede{font-size:19px}.article-body{font-size:17px}.article-body h2{font-size:25px}.article-body blockquote{font-size:21px}.article-head h1{font-size:39px}.section-top span{font-size:12px}.service{padding:17px 0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.feature-media{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;background:#211a13;border-left:1px solid var(--line)}.project-video{display:block;width:auto;height:auto;max-width:100%;max-height:530px;aspect-ratio:9/16;background:#18130f;border-radius:6px}.media-note{color:var(--muted);font-size:12px;line-height:1.5;margin:16px 0 0;text-align:center}.feature-copy{justify-content:center}.feature-copy .text-link{margin-top:18px}.screenshots{margin:42px 0}.screenshot-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.screenshot-grid:focus-visible{outline:2px solid var(--accent);outline-offset:5px}.screenshot-card{margin:0;min-width:0;background:var(--panel);border:1px solid var(--line);border-radius:8px;overflow:hidden}.screenshot-card>a{display:block;background:#1c1814;padding:18px}.screenshot-card img{width:100%;height:310px;object-fit:contain;display:block}.screenshot-card figcaption{padding:18px;font-size:14px;line-height:1.5}.screenshot-card strong{display:block;font-size:16px;font-weight:600;margin-bottom:6px}.screenshot-card figcaption span{display:block;color:var(--muted)}.article-demo{display:grid;grid-template-columns:300px 1fr;gap:40px;align-items:center;padding:28px;background:var(--panel);border:1px solid var(--line);border-radius:8px}.article-demo .project-video{width:100%;max-height:580px}.article-demo h2{font-size:29px;line-height:1.25;letter-spacing:-.03em}.article-demo p:not(.eyebrow){color:var(--muted);font-size:16px}.article-demo .media-note{text-align:left;font-size:13px}.article-layout>.screenshots{margin-bottom:48px}.article-layout .screenshot-card>a{padding:12px}.article-layout .screenshot-card img{height:280px}
@media(max-width:640px){.feature-media{border-left:0;border-top:1px solid var(--line);padding:20px}.project-video{max-height:500px}.screenshot-grid{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:84%;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:12px;gap:16px}.screenshot-card{scroll-snap-align:start}.screenshot-card img,.article-layout .screenshot-card img{height:330px}.article-demo{display:flex;flex-direction:column;padding:20px;gap:24px}.article-demo .project-video{max-height:500px;width:auto}.article-demo h2{font-size:26px;margin:0 0 15px}.article-demo .eyebrow{margin-bottom:15px}}
.archive-note,.date-note,.project-period{color:var(--muted);font-size:13px;line-height:1.6}.archive-note{margin:-5px 0 22px;max-width:540px}.date-note{border-top:1px solid var(--line);padding-top:16px}.date-note summary{cursor:pointer;width:fit-content}.date-note p{max-width:700px;margin:12px 0 0}.date-kind{white-space:nowrap}.project-overview{padding:28px;background:var(--panel);border:1px solid var(--line);border-radius:8px;margin-bottom:36px}.project-overview .eyebrow{margin-bottom:16px}.project-overview h2{font-size:20px;letter-spacing:-.02em;margin:24px 0 16px}.project-overview .tags{margin-bottom:0}.build-credit{color:var(--accent);font-size:16px;margin:20px 0 0}.workflow{list-style:none;counter-reset:step;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:0;padding:0}.workflow li{counter-increment:step;border-top:1px solid var(--line);padding-top:16px;min-width:0}.workflow li:before{content:'0' counter(step);display:block;color:var(--accent);font:12px ui-monospace,monospace;margin-bottom:12px}.workflow strong{display:block;font-size:17px;margin-bottom:8px}.workflow span{display:block;color:var(--muted);font-size:14px;line-height:1.6}.project-overview .media-note{text-align:left;margin-top:24px}
@media(max-width:640px){.project-overview{padding:22px}.workflow{grid-template-columns:1fr;gap:18px}.workflow li{position:relative;padding-left:36px}.workflow li:before{position:absolute;left:0;top:20px}.workflow strong{margin-bottom:4px}}
