:root{color-scheme:light;--paper:#f7f4ec;--ink:#292720;--muted:#625d53;--line:#d7d2c6;color:var(--ink);background:var(--paper);font-synthesis:none;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;font-size:13px;line-height:1.7}a{color:inherit;text-underline-offset:4px}::selection{background:var(--ink);color:var(--paper)}.shell{max-width:936px;margin:auto;padding:0 40px}.masthead{border-bottom:1px solid var(--ink);justify-content:space-between;align-items:center;gap:24px;padding:25px 0;display:flex}.wordmark{font-size:13px;font-weight:700;text-decoration:none}nav{color:var(--muted);gap:14px;font-size:11px;display:flex}nav a{text-decoration:none}nav a:hover{text-decoration:underline}.intro{padding:74px 0 58px}.eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin:0 0 21px;font-size:10px}h1{letter-spacing:-.065em;margin:0 0 25px;font-size:clamp(28px,4.5vw,40px);font-weight:500;line-height:1.2}.cursor{color:#968363}.intro-copy{color:var(--muted);margin:0;font-size:12px;line-height:1.9}.section-label{border-bottom:1px solid var(--ink);text-transform:uppercase;letter-spacing:.1em;justify-content:space-between;align-items:center;margin-bottom:21px;padding:0 0 13px;font-size:10px;display:flex}.section-label h2{font:inherit;margin:0}.section-label>span{color:var(--muted)}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.project-card{border:1px solid var(--line);flex-direction:column;min-height:330px;padding:22px;text-decoration:none;transition:background-color .15s,color .15s,border-color .15s;display:flex}.card-top{color:var(--muted);align-items:center;gap:12px;font-size:10px;display:flex}.project-card h3{letter-spacing:-.045em;margin:0 0 16px;font-size:18px;font-weight:500;line-height:1.35}.project-summary{margin:0 0 16px;font-size:11px;line-height:1.8}.project-detail{color:var(--muted);margin:0 0 25px;font-size:10px;line-height:1.9}.tags{color:var(--muted);flex-wrap:wrap;gap:7px 16px;margin:auto 0 23px;padding:0;font-size:9px;list-style:none;display:flex}.tags li:before{content:"#";opacity:.65}.card-link{border-top:1px solid var(--line);justify-content:space-between;padding-top:13px;font-size:10px;display:flex}a.project-card:hover,a.project-card:focus-visible{background:var(--ink);color:var(--paper);border-color:var(--ink)}a.project-card:hover :is(.card-top,.project-detail,.tags),a.project-card:focus-visible :is(.card-top,.project-detail,.tags){color:#ccc6b9}a.project-card:hover .card-link,a.project-card:focus-visible .card-link{border-color:#5a564c}.empty-card{color:#a29a8a;border-style:dashed;min-height:175px;font-size:10px}footer{color:var(--muted);justify-content:flex-end;margin-top:52px;padding:22px 0 30px;font-size:10px;display:flex}footer a{text-decoration:none}footer a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--ink);outline-offset:5px}.skip-link{background:var(--ink);color:var(--paper);z-index:1;padding:8px 14px;position:absolute;top:8px;left:8px;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}@media (width<=650px){.shell{padding:0 22px}.masthead{padding:22px 0}nav{gap:10px}.intro{padding:52px 0 42px}.project-grid{grid-template-columns:1fr}.project-card{min-height:320px;padding:20px}.empty-card{min-height:170px}h1{letter-spacing:-.055em}.intro-copy{font-size:12px}.desktop-break{display:none}footer{margin-top:45px}}@media (width<=370px){.wordmark{font-size:13px}.card-top{gap:8px}.shell{padding:0 17px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.project-card{transition:none}}.about{margin-top:64px}.about-grid{grid-template-columns:1fr 1fr;gap:40px;padding-top:8px;display:grid}.about-copy{font-size:11px;line-height:1.95}.about-copy p{margin:0 0 20px}.contact-links{flex-wrap:wrap;gap:20px;margin-top:27px;font-size:11px;display:flex}.cv h3{text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:0 0 17px;font-size:10px;font-weight:400}.cv dl{margin:0 0 28px}.cv dl:last-child{margin-bottom:0}.cv dl>div{margin-bottom:18px}.cv dt{margin-bottom:3px}.cv dd{color:var(--muted);margin:0;font-size:10px;line-height:1.8}.cv dd span{margin-top:3px;font-size:9px;display:block}@media (width<=650px){.about{margin-top:55px}.about-grid{grid-template-columns:1fr;gap:34px}.intro h1{font-size:clamp(26px,6.6vw,34px)}}@media (width>=651px){.shell{max-width:900px;padding:0 36px}.masthead{padding:17px 0}.wordmark{font-size:13px}nav{font-size:11px}.intro{padding:42px 0 34px}h1{margin-bottom:15px;font-size:40px}.intro-copy{font-size:12px}.section-label{margin-bottom:14px;padding-bottom:9px;font-size:9px}.project-grid{gap:16px}.project-card{min-height:310px;padding:22px}.card-top{font-size:9px}.project-card h3{margin:0 0 12px;font-size:19px}.project-summary{margin-bottom:12px;font-size:10px}.project-detail{margin-bottom:18px;font-size:10px;line-height:1.75}.tags{gap:6px 12px;margin-bottom:15px;font-size:9px}.card-link{padding-top:10px;font-size:9px}.empty-card{min-height:135px}.about{margin-top:45px}}.project-summary,.project-detail{font-size:15px;line-height:1.7}.tags{font-size:10px}.card-link{font-size:11px}.card-top{font-size:10px}.about-copy{font-size:16px}.cv{font-size:12px}.cv dd{font-size:11px}.cv dd span{font-size:10px}@media (width>=651px){.project-card{min-height:275px}.project-detail{margin-bottom:16px}.project-card h3{margin-top:0}.about{margin-top:48px}}.masthead{padding:9px 0}nav{gap:24px}.about-grid{display:block}.about-copy{max-width:620px}.background-summary{margin:32px 0 0;font-size:15px;line-height:1.85}.background-summary>div{grid-template-columns:100px minmax(0,1fr);gap:20px;margin-bottom:18px;display:grid}.background-summary dt{color:var(--muted);font-size:10px}.background-summary dd{margin:0}@media (width<=650px){.background-summary>div{grid-template-columns:1fr;gap:5px;margin-bottom:22px}}.about.about-page{margin-top:0;padding-top:28px}.about-page h1{margin-bottom:24px}nav a[aria-current=page]{color:var(--ink);text-decoration:underline}.card-link{align-items:center;min-height:48px;margin-bottom:-22px;padding-top:0}@media (width<=650px){.card-link{min-height:44px;margin-bottom:-20px}}.wordmark{font-size:17px}nav{font-size:13px}
