:root{--paper: #fbfaf7;--ink: #1a1a18;--ink-muted: #6f6e6a;--ink-faint: #a8a7a2;--rule: rgba(26, 26, 24, .12);--accent: #1a1a18;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;--font-serif: "Newsreader", "Times New Roman", serif;--font-mono: "JetBrains Mono", "SF Mono", Menlo, monospace;--max-width: 1200px;--gutter: clamp(1.5rem, 4vw, 3rem)}@media (prefers-color-scheme: dark){:root{--paper: #131311;--ink: #f0eee8;--ink-muted: #908e88;--ink-faint: #5a5854;--rule: rgba(240, 238, 232, .14)}}*{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--font-sans);font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{background:var(--paper);color:var(--ink);line-height:1.5;font-feature-settings:"ss01","cv11"}a{color:inherit;text-decoration:none;transition:opacity .15s ease}a:hover{opacity:.6}img,video,canvas{max-width:100%;height:auto;display:block}::selection{background:var(--ink);color:var(--paper)}.shell{max-width:var(--max-width);margin:0 auto;padding:0 var(--gutter)}.site-header{padding:2rem 0 1.25rem;border-bottom:.5px solid var(--rule);display:flex;justify-content:space-between;align-items:baseline;gap:2rem;flex-wrap:wrap}.site-header__name{font-size:1.125rem;font-weight:500;letter-spacing:-.01em}.site-header__name a{display:inline-block}.site-header__tagline{font-size:.75rem;color:var(--ink-faint);margin-top:.125rem;text-transform:uppercase;letter-spacing:.08em}.site-nav{display:flex;gap:1.5rem;font-size:.875rem;color:var(--ink-muted)}.site-nav a[aria-current=page]{color:var(--ink);font-weight:500}.site-footer{margin-top:6rem;padding:1.25rem 0 2rem;border-top:.5px solid var(--rule);display:flex;justify-content:space-between;font-size:.6875rem;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.08em}.lede{font-size:clamp(1.5rem,3.5vw,1.875rem);line-height:1.25;letter-spacing:-.015em;max-width:38ch;margin:3rem 0 4rem}.lede em{color:var(--ink-faint);font-style:normal}h1,h2,h3{font-weight:500;letter-spacing:-.015em;line-height:1.2}h1{font-size:clamp(1.75rem,4vw,2.25rem)}h2{font-size:1.25rem}h3{font-size:1rem}p{margin:1rem 0;max-width:65ch}.index{margin:1rem 0 0}.index__head,.index__row{display:grid;grid-template-columns:80px 1fr 140px 50px;gap:0;align-items:baseline}.index__head{font-size:.6875rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint);padding-bottom:.5rem;border-bottom:.5px solid var(--rule)}.index__head>div:last-child{text-align:right}.index__row{padding:1rem 0;border-bottom:.5px solid var(--rule);font-size:.9375rem;transition:background .15s ease}.index__row:hover{background:#1a1a1806}@media (prefers-color-scheme: dark){.index__row:hover{background:#f0eee80a}}.index__year{color:var(--ink-muted);font-variant-numeric:tabular-nums;font-size:.875rem}.index__title{font-weight:500}.index__subtitle{color:var(--ink-faint);font-weight:400;margin-left:.5rem}.index__category{color:var(--ink-muted);font-size:.8125rem}.index__num{text-align:right;color:var(--ink-faint);font-variant-numeric:tabular-nums;font-size:.75rem}.index__row a{display:contents}.meta{margin-top:2rem;padding-top:1rem;border-top:.5px solid var(--rule);font-size:.6875rem;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.08em;display:flex;justify-content:space-between}.project{max-width:720px;margin:3rem auto}.project__year{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint);margin-bottom:.5rem}.project__title{margin-bottom:.5rem}.project__subtitle{color:var(--ink-muted);font-size:1.125rem;margin-bottom:3rem}.project__body{font-size:1rem;line-height:1.7}.project__body p{margin:1.25rem 0}.project__body h2{margin-top:3rem;margin-bottom:.75rem}.project__cover{margin:2.5rem 0 3rem}.project__cover img{width:100%;max-height:70vh;object-fit:cover}.project__gallery{margin-top:1.5rem;display:flex;flex-direction:column;gap:1.5rem}.project__gallery-item{margin:0}.project__gallery-item img{width:100%;height:auto;display:block}@media (max-width: 640px){.index__head,.index__row{grid-template-columns:60px 1fr 40px}.index__category{display:none}.lede{margin:2rem 0 3rem}}
