:root{--paper:#fff;--ink:#262a28;--muted:#636963;--line:#e5e7e4;--rust:#405b60;--max:880px}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:15px;line-height:1.65}a{color:inherit;text-decoration:underline;text-underline-offset:3px}a:hover{color:var(--rust)}a:focus-visible,summary:focus-visible{outline:3px solid var(--rust);outline-offset:4px}.skip-link{position:absolute;left:20px;top:-80px;background:var(--ink);color:var(--paper);padding:8px 12px;z-index:5}.skip-link:focus{top:12px}
.site-header{background:var(--paper)}.header-inner{min-height:58px;display:flex;align-items:center;justify-content:center;gap:24px}.wordmark{font-size:14px;text-decoration:none;font-weight:600}.wordmark b{font-weight:600}.primary-nav{display:flex;align-items:center;gap:18px}.nav-link{color:var(--muted);font-size:13px;text-decoration:none}.nav-link.is-active{color:var(--ink);text-decoration:underline;text-underline-offset:5px}.nav-link:hover{text-decoration:underline}.eyebrow{margin:0;color:var(--muted);font-size:13px;font-weight:400}
.hero{padding-top:78px;padding-bottom:60px;text-align:center}.hero-grid{display:block;max-width:640px;margin:0 auto}.hero h1{font-size:38px;font-weight:500;line-height:1.2;letter-spacing:0;margin:0 auto 12px;max-width:640px}.page-intro h1,.project-header h1,.not-found h1{font-size:30px;font-weight:500;line-height:1.25;letter-spacing:0;margin:0 0 14px;max-width:760px}.hero-aside{max-width:640px;margin-inline:auto}.lede{font-size:16px;line-height:1.6;color:var(--muted);max-width:640px}.hero-aside .lede{margin:0}.text-link{font-size:14px;color:var(--rust)}
.section{padding-bottom:42px}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:8px}.section-head h2{font-size:17px;font-weight:500;margin:0}.project-grid{display:block}.project-card{border-top:1px solid var(--line);padding:17px 0}.card-meta{display:flex;gap:12px;color:var(--muted);font-size:12px}.fixture{color:var(--muted)}.project-card h3,.archive-item h3{font-size:18px;font-weight:500;line-height:1.4;margin:5px 0}.project-card h3 a,.archive-item h3 a{text-decoration:none}.project-card h3 a:hover,.archive-item h3 a:hover{text-decoration:underline}.project-card p,.archive-item p{color:var(--muted);font-size:14px;max-width:700px;margin:5px 0}.tag-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px}.tag-row>*{font-size:12px;color:var(--muted)}
.contact-band{border-top:1px solid var(--line);padding:26px 0}.contact-grid{display:flex;align-items:baseline;justify-content:center;gap:24px}.contact-band h2{font-size:16px;font-weight:500;margin:0}.contact-copy{display:flex;gap:18px;font-size:14px}.contact-copy p{margin:0}.contact-copy .text-link{margin:0}.muted{color:var(--muted)}.site-footer{font-size:12px;color:var(--muted);border-top:1px solid var(--line)}.footer-inner{display:flex;justify-content:center;gap:8px;padding-top:17px;padding-bottom:17px}
.page-intro{padding-top:38px;padding-bottom:18px}.page-intro h1{margin:0 0 12px}.filter-row{display:flex;gap:18px;flex-wrap:wrap}.filter{font-size:13px;color:var(--muted)}.filter.selected{color:var(--ink);font-weight:600}.archive-list{border-top:0}.archive-item{display:block;border-bottom:1px solid var(--line);padding:17px 0;align-items:start}
.project-page,.notebook-page{padding-top:28px;padding-bottom:48px}.back-link{font-size:14px;color:var(--muted)}.project-header{max-width:800px;padding:28px 0}.project-header h1{margin:10px 0 14px}.project-header .lede{margin-bottom:16px}.media-stack{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px;margin-bottom:32px}.project-media{margin:0}.project-media img,.project-media video{display:block;width:100%;max-height:480px;object-fit:contain}.project-media figcaption{font-size:12px;color:var(--muted);margin-top:8px}.project-layout{display:grid;grid-template-columns:minmax(0,3fr) minmax(200px,1fr);gap:40px}.prose{max-width:700px}.prose-section{border-top:1px solid var(--line);padding:20px 0}.prose-section h2{font-size:19px;font-weight:600;margin:0 0 12px}.prose p,.prose li{font-size:15px}.prose a{color:var(--rust)}.prose code{font-size:.9em;background:var(--paper);padding:2px 4px}.prose pre{overflow:auto;background:var(--paper);padding:16px;font-size:13px}.project-aside{border-top:1px solid var(--line);padding-top:16px;align-self:start}.aside-link{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding:12px 0;font-size:13px}.demo-shell{margin-top:24px;border:1px solid var(--line);padding:12px}.demo-shell summary{cursor:pointer;font-size:14px;font-weight:500}.demo-mount{padding-top:16px}
.notebook-fragment{border-top:1px solid var(--line);padding-top:20px;overflow:auto}.notebook-fragment img{max-width:100%;height:auto}.not-found{padding-top:64px;padding-bottom:96px}.not-found h1{margin:12px 0}.button{display:inline-flex;gap:12px;background:var(--ink);color:var(--paper);padding:10px 14px;font-size:14px;text-decoration:none;margin-top:12px}.button:hover{background:var(--rust);color:var(--paper)}.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}
@media(max-width:700px){.header-inner{min-height:56px;gap:16px}.primary-nav{gap:13px}.wordmark{font-size:13px}.nav-link{font-size:12px}.hero{padding-top:52px;padding-bottom:42px}.hero h1{font-size:28px}.page-intro h1,.project-header h1,.not-found h1{font-size:28px}.contact-grid{display:block;text-align:center}.contact-copy{justify-content:center;flex-wrap:wrap;margin-top:8px}.project-layout,.media-stack{grid-template-columns:1fr;gap:24px}.footer-inner{display:block;text-align:center}.footer-inner span{display:block;margin:4px 0}.page-intro{padding-top:28px}.project-page,.notebook-page{padding-top:24px}.project-header{padding:24px 0}.project-aside{width:100%}.project-media img,.project-media video{max-height:420px}}
