:root{color:#202124;font-synthesis:none;color-scheme:light;--muted:#60646c;--line:#e5e7eb;background:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}a:hover{text-underline-offset:5px;text-decoration:underline}a:focus-visible{outline-offset:6px;border-radius:2px;outline:2px solid #343a46}::selection{background:#dde3ec}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-weight:550}p{line-height:1.75}.shell{max-width:1040px;margin:auto;padding:0 48px}.header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:30px 0;display:flex}.wordmark{letter-spacing:-1px;font-size:24px;font-weight:650}nav{gap:30px;font-size:14px;display:flex}nav a{color:var(--muted);padding:6px 0}nav a[aria-current=page]{color:#202124;text-underline-offset:8px;text-decoration:underline}.skip{z-index:10;background:#fff;padding:12px;position:absolute;top:-100px;left:16px}.skip:focus{top:10px}.hero{max-width:730px;padding:76px 0 66px}h1{letter-spacing:-2px;margin-bottom:24px;font-size:clamp(38px,5vw,56px);line-height:1.15}.intro{color:#40444c;max-width:670px;margin-bottom:16px;font-size:20px;line-height:1.65}.hero-note{color:var(--muted);margin-bottom:0;font-size:16px}.eyebrow{letter-spacing:1.6px;color:var(--muted);margin-bottom:20px;font-size:10px;font-weight:650;line-height:1.7}.writing-section{border-top:1px solid var(--line);padding:28px 0 30px}.feature{grid-template-columns:160px minmax(0,1fr);align-items:center;gap:32px;display:grid}.feature-image{aspect-ratio:1;object-fit:contain;background:#f5f6f8;border-radius:10px;width:100%;height:auto;display:block}.feature-copy .eyebrow{margin-bottom:13px}.feature-copy h2{letter-spacing:-1px;margin-bottom:18px;font-size:32px;line-height:1.22}.feature-copy>p:not(.eyebrow){color:var(--muted);margin-bottom:25px;font-size:16px}.part-links{flex-wrap:wrap;gap:12px;display:flex}.part-links a{border:1px solid #d9dde3;border-radius:22px;padding:10px 18px;font-size:13px;font-weight:550}.part-links a:hover{background:#f3f4f6;border-color:#858b95;text-decoration:none}footer{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:24px;margin-top:60px;padding:28px 0 34px;display:flex}.footer-name{color:var(--muted);font-size:12px}.footer-links{flex-wrap:wrap;gap:25px;font-size:12px;display:flex}.page-heading{padding:72px 0 32px}.page-heading h1{margin-bottom:22px}.series-intro{max-width:680px;margin:8px 0 30px}.series-intro .eyebrow{margin-bottom:13px}.series-intro h2{letter-spacing:-.7px;margin-bottom:15px;font-size:28px;line-height:1.3}.series-intro>p:last-child{color:var(--muted);font-size:16px}.article-list{border-top:1px solid var(--line)}.article-entry{border-bottom:1px solid var(--line);padding:25px 0 28px}.article-entry .eyebrow{margin-bottom:10px}.article-entry h3{letter-spacing:-.4px;margin-bottom:8px;font-size:21px;line-height:1.4}.article-entry p:last-child{color:var(--muted);margin-bottom:0;font-size:15px}.about-copy{max-width:690px;padding-bottom:20px}.causes{border-top:1px solid var(--line);max-width:690px;margin-top:24px;padding-top:24px}.causes h2{margin-bottom:16px;font-size:20px}.causes ul{flex-wrap:wrap;gap:12px 28px;margin:0;padding:0;list-style:none;display:flex}.causes a{text-underline-offset:5px;font-size:14px;text-decoration:underline}.about-copy p:not(.intro){color:var(--muted);font-size:17px}.post-row{border-bottom:1px solid var(--line);padding:28px 0}.post-row h2{margin-bottom:12px;font-size:25px;line-height:1.4}.post-row p{color:var(--muted)}.text-link{text-underline-offset:5px;font-size:14px;text-decoration:underline}.article{max-width:720px;margin:45px auto 70px}.article .page-heading{padding-top:40px}.prose{font-size:18px;line-height:1.8}.prose h2{margin-top:40px;font-size:29px}.prose a{text-decoration:underline}.prose img{max-width:100%;height:auto}.prose pre{padding:18px;font-size:14px;overflow:auto}.prose blockquote{color:var(--muted);border-left:2px solid #b5bbc4;margin-left:0;padding-left:24px}@media (width<=650px){.shell{padding:0 24px}.header{padding:24px 0}.wordmark{font-size:23px}nav{gap:22px;font-size:13px}h1{letter-spacing:-1.5px}.hero{padding:52px 0 43px}.intro{font-size:18px}.hero-note{font-size:15px}.feature{grid-template-columns:1fr;gap:20px}.feature-image{max-width:112px;margin:0}.feature-copy h2{font-size:28px}.feature-copy>p:not(.eyebrow){font-size:15px}.page-heading{padding:50px 0 24px}.series-intro h2{font-size:25px}.article-entry h3{font-size:19px}footer{align-items:flex-start;margin-top:40px}.footer-links{justify-content:flex-end;gap:16px}.about-copy p:not(.intro){font-size:16px}}@media (width<=360px){footer{flex-direction:column;gap:16px}}.projects-section{border-top:1px solid var(--line);margin-top:34px;padding-top:28px}.project-summary{justify-content:space-between;align-items:flex-start;gap:28px;display:flex}.project-summary h2{letter-spacing:-.6px;margin-bottom:13px;font-size:27px}.project-summary h2 a{text-underline-offset:6px;text-decoration:underline 1px}.project-summary p{max-width:620px;color:var(--muted);margin-bottom:0}.project-status{color:var(--muted);border:1px solid var(--line);white-space:nowrap;border-radius:16px;padding:7px 10px;font-size:11px}.project-detail{border-top:1px solid var(--line);max-width:720px;padding:22px 0 15px}.project-detail>.eyebrow{text-transform:uppercase;margin-bottom:12px;font-size:10px}.project-detail h2{letter-spacing:-1px;margin-bottom:12px;font-size:35px}.project-detail .project-tagline{color:#30343b;font-size:21px}.project-detail p,.project-detail li{color:var(--muted);font-size:16px;line-height:1.8}.project-detail h3{margin-top:30px;margin-bottom:12px;font-size:18px}.project-detail ul{padding-left:21px}.project-detail li{margin-bottom:8px;padding-left:4px}.project-technologies{flex-wrap:wrap;gap:8px;margin-top:22px;display:flex}.project-technologies span{color:#505660;background:#f3f4f6;border-radius:5px;padding:6px 10px;font-size:11px}@media (width<=650px){.project-summary{flex-direction:column;gap:17px}.projects-section{margin-top:22px}nav{gap:17px}}@media (width<=360px){nav{gap:13px;font-size:12px}}
