@layer astro.images{:where([data-astro-image]){height:auto}:where([data-astro-image=full-width]){width:100%}:where([data-astro-image=constrained]){max-width:100%}[data-astro-image-fit=fill]{object-fit:fill}[data-astro-image-fit=contain]{object-fit:contain}[data-astro-image-fit=cover]{object-fit:cover}[data-astro-image-fit=scale-down]{object-fit:scale-down}[data-astro-image-pos=top]{object-position:top}[data-astro-image-pos=bottom]{object-position:bottom}[data-astro-image-pos=left]{object-position:left}[data-astro-image-pos=right]{object-position:right}[data-astro-image-pos=center]{object-position:center}[data-astro-image-pos=top-left]{object-position:top left}[data-astro-image-pos=top-right]{object-position:top right}[data-astro-image-pos=top-center]{object-position:top center}[data-astro-image-pos=bottom-left]{object-position:bottom left}[data-astro-image-pos=bottom-right]{object-position:bottom right}[data-astro-image-pos=bottom-center]{object-position:bottom center}[data-astro-image-pos=left-top]{object-position:left top}[data-astro-image-pos=left-bottom]{object-position:left bottom}[data-astro-image-pos=left-center]{object-position:left center}[data-astro-image-pos=right-top]{object-position:right top}[data-astro-image-pos=right-bottom]{object-position:right bottom}[data-astro-image-pos=right-center]{object-position:right center}[data-astro-image-pos=center-top]{object-position:center top}[data-astro-image-pos=center-bottom]{object-position:center bottom}[data-astro-image-pos=center-left]{object-position:center left}[data-astro-image-pos=center-right]{object-position:center right}}:root{color-scheme:light;--ink:#111;--grey:#6a6a6a;--line:#e3e3e3;--wash:#f4f4f4;--gutter:16px;--wide:1400px;--font:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}@media (width>=700px){:root{--gutter:32px}}@media (width>=1100px){:root{--gutter:48px}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{color:var(--ink);font:400 17px/1.6 var(--font);overflow-wrap:break-word;background:#fff;flex-direction:column;min-height:100vh;margin:0;display:flex}main{flex:1}img,video{max-width:100%}a{color:inherit;text-underline-offset:.18em;text-decoration-color:#aaa}a:hover{text-decoration-color:currentColor}:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.site-header{max-width:var(--wide);width:100%;padding:18px var(--gutter);grid-template-columns:1fr auto;grid-template-areas:"brand social""nav nav";align-items:center;gap:10px 16px;margin:0 auto;display:grid}@media (width>=700px){.site-header{grid-template-columns:auto 1fr auto;grid-template-areas:"brand nav social";padding-top:22px;padding-bottom:22px}}.brand{letter-spacing:.01em;grid-area:brand;align-items:center;gap:10px;font-size:15px;font-weight:500;text-decoration:none;display:inline-flex}.brand img{width:34px;height:auto;display:block}.main-nav{letter-spacing:.1em;text-transform:uppercase;grid-area:nav;gap:22px;font-size:12px;display:flex}@media (width>=700px){.main-nav{justify-content:flex-end;margin-right:24px}}.main-nav a{color:var(--grey);border-bottom:1px solid #0000;padding:4px 0;text-decoration:none}.main-nav a:hover,.main-nav a[aria-current]{color:var(--ink)}.main-nav a[aria-current]{border-bottom-color:var(--ink)}.social{grid-area:social;justify-self:end;gap:14px;display:flex}.social a{color:var(--grey);margin:-4px;padding:4px;display:inline-flex}.social a:hover{color:var(--ink)}.site-footer{max-width:calc(var(--wide) - 2 * var(--gutter));width:calc(100% - 2 * var(--gutter));border-top:1px solid var(--line);letter-spacing:.08em;text-transform:uppercase;color:var(--grey);flex-wrap:wrap;justify-content:space-between;gap:8px 24px;margin:72px auto 0;padding:22px 0 84px;font-size:12px;display:flex}.footer-links{gap:22px;display:inline-flex}.footer-links a{text-decoration:none}.footer-links a:hover{color:var(--ink)}.filter-bar{letter-spacing:.1em;text-transform:uppercase;flex-wrap:wrap;gap:4px 22px;padding:14px 0 12px;font-size:12px;display:flex}.filter-bar button{appearance:none;cursor:pointer;color:var(--grey);font:inherit;letter-spacing:inherit;text-transform:inherit;background:0 0;border:0;border-bottom:1px solid #0000;margin:0;padding:4px 0}.filter-bar button:hover,.filter-bar button[aria-pressed=true]{color:var(--ink)}.filter-bar button[aria-pressed=true]{border-bottom-color:var(--ink)}.filter-bar .n{font-variant-numeric:tabular-nums;opacity:.7;margin-left:3px}@media (width>=700px){.filter-bar button+button{position:relative}.filter-bar button+button:before{content:"·" / "";color:var(--grey);position:absolute;left:-13px}}html:not(.js) .filter-bar{display:none}.projects{max-width:var(--wide);padding:8px var(--gutter) 0;margin:0 auto}html[data-view=scroll] .view-grid,html:not([data-view=scroll]) .view-scroll{display:none}.year-row{border-top:1px solid var(--line);grid-template-columns:1fr;gap:8px 0;padding:22px 0 30px;display:grid}@media (width>=700px){.year-row{grid-template-columns:150px 1fr;gap:0 24px}}.year{font:300 clamp(34px, 5vw, 56px)/1 var(--font);letter-spacing:-.01em;font-variant-numeric:tabular-nums;margin:0}.tiles{grid-template-columns:repeat(2,1fr);align-content:start;gap:22px 12px;margin:0;padding:0;list-style:none;display:grid}@media (width>=600px){.tiles{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:26px 16px}}.tile{text-decoration:none;display:block}.thumb{aspect-ratio:1;background:var(--wash);display:block;overflow:hidden}.thumb img{object-fit:cover;width:100%;max-width:none;height:100%;max-height:none;transition:opacity .15s;display:block}.tile:hover .thumb img{opacity:.88}.tile-name{margin-top:8px;font-size:13px;line-height:1.3;display:block}.tile-date{color:var(--grey);font-variant-numeric:tabular-nums;margin-top:1px;font-size:12px;line-height:1.3;display:block}a[target=_blank] .tile-name:after,a[target=_blank] h3:after{content:" ↗" / " (opens in a new tab)";color:var(--grey)}.scroll-row{border-top:1px solid var(--line);grid-template-columns:1fr;gap:12px;padding:26px 0 34px;text-decoration:none;display:grid}@media (width>=800px){.scroll-row{grid-template-columns:minmax(200px,30%) 1fr;gap:0 40px;padding:30px 0 44px}}.scroll-caption{font-size:13px;line-height:1.45}@media (width>=800px){.scroll-caption{text-align:right;align-self:start;position:sticky;top:20px}}.scroll-caption h3{margin:0 0 2px;font-size:15px;font-weight:600;line-height:1.3}.scroll-caption .year-label{color:var(--grey);font-variant-numeric:tabular-nums;margin:0 0 2px}.scroll-caption .theme-labels{color:var(--grey);letter-spacing:.1em;text-transform:uppercase;margin:0 0 10px;font-size:11px}.scroll-caption .summary{color:var(--grey);margin:0}.scroll-pic{display:block}.scroll-pic img{width:100%;height:auto;max-height:none;max-width:min(100%, calc(80vh * var(--arn,1.5)));margin:0;display:block}.scroll-row:hover .scroll-caption h3{text-underline-offset:.18em;text-decoration:underline}.view-switch{z-index:10;left:50%;bottom:calc(18px + env(safe-area-inset-bottom,0px));border:1px solid var(--ink);background:#fffffff5;display:inline-flex;position:fixed;transform:translate(-50%)}.view-switch button{appearance:none;color:var(--ink);cursor:pointer;font:500 12px/1 var(--font);letter-spacing:.1em;text-transform:uppercase;background:0 0;border:0;min-width:76px;min-height:40px;margin:0;padding:12px 18px}.view-switch button+button{border-left:1px solid var(--ink)}.view-switch button[aria-pressed=true]{background:var(--ink);color:#fff}.view-switch button:focus-visible{outline-offset:-4px;outline-color:#fff}.view-switch button[aria-pressed=false]:focus-visible{outline-color:var(--ink)}html:not(.js) .view-switch{display:none}.page{max-width:1100px;padding:18px var(--gutter) 0;margin:0 auto}.page-head{max-width:760px;margin:0 auto 26px}.page-head h1{font:600 clamp(26px, 4vw, 38px)/1.15 var(--font);letter-spacing:-.01em;margin:0 0 10px}.meta{color:var(--grey);margin:0;font-size:13px;line-height:1.7}.meta span+span:before{content:"·";margin:0 8px}.meta a{color:var(--ink)}.prose>*{max-width:760px;margin-left:auto;margin-right:auto}.prose p,.prose ul,.prose ol{margin-top:0;margin-bottom:1em}.prose ul,.prose ol{padding-left:1.3em}.prose li{margin-bottom:.3em}.prose>.media{max-width:1100px;margin-top:0;margin-bottom:26px}.prose>.media+:not(.media),.prose>:not(.media)+.media{margin-top:30px}.prose img{width:100%;height:auto;max-width:min(100%, calc(85vh * var(--arn,1.5)));max-height:none;margin:0 auto;display:block}.prose video{width:100%;height:auto;aspect-ratio:var(--ar,16/9);max-width:min(100%, calc(80vh * var(--arn,1.7778)));background:#000;margin:0 auto;display:block}.prose p.embed a{width:100%;max-width:760px;margin:0 auto;text-decoration:none;display:block;position:relative}.prose p.embed img{aspect-ratio:16/9;object-fit:cover;background:#000;max-width:100%}.prose p.embed a:after{content:"";opacity:.92;border:18px solid #0000;border-left:30px solid #fff;border-right-width:0;position:absolute;top:calc(50% - 14px);left:50%;transform:translate(-50%,-50%)}.prose p.embed span{color:var(--grey);text-underline-offset:.18em;margin-top:8px;font-size:14px;text-decoration:underline;display:block}.pager{border-top:1px solid var(--line);justify-content:space-between;gap:24px;max-width:760px;margin:64px auto 0;padding:22px 0 0;font-size:14px;display:flex}.pager a{max-width:48%;text-decoration:none;display:block}.pager small{color:var(--grey);letter-spacing:.1em;text-transform:uppercase;margin-bottom:2px;font-size:11px;display:block}.pager .next{text-align:right;margin-left:auto}.pager a:hover strong{text-underline-offset:.18em;text-decoration:underline}.about .prose>.media{max-width:760px}.about .prose img{max-width:min(100%,340px);margin:0 0 1.2em}.contact{max-width:760px;margin:28px auto 0;padding:0;font-size:15px;list-style:none}.contact li{margin:0 0 6px}.contact span{min-width:92px;color:var(--grey);letter-spacing:.1em;text-transform:uppercase;font-size:12px;display:inline-block}.posts{max-width:760px;margin:0 auto;padding:0;list-style:none}.posts li{border-top:1px solid var(--line);grid-template-columns:8.5em 1fr;gap:0 16px;padding:12px 0;display:grid}@media (width<=520px){.posts li{grid-template-columns:1fr;gap:2px}}.posts time{color:var(--grey);font-variant-numeric:tabular-nums;font-size:14px}.posts a{font-size:18px;text-decoration:none}.posts a:hover{text-underline-offset:.18em;text-decoration:underline}.calm{max-width:760px;color:var(--grey);margin:0 auto}.post-date{margin-bottom:10px;display:block}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
