@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-bottom]{object-position:top bottom}[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-top]{object-position:bottom top}[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-right]{object-position:left right}[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-left]{object-position:right left}[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}}@layer reset{*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body,h1,h2,p,figure{margin:0}img,picture{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{font:inherit}}@layer base{:root{--font-sans:"Helvetica Neue", "Neue Haas Grotesk Text Pro", Arial, sans-serif;--font-display:"Helvetica Neue", "Neue Haas Grotesk Display Pro", Arial, sans-serif;--paper:#fafaf7;--ink:#171716;--muted:#666663;--line:#ddddd7;--placeholder:#eeeeea;--placeholder-hover:#e9e9e4;--focus:#3157d5;--gutter:clamp(.875rem, 1.8vw, 1.75rem);--grid-gap:clamp(.75rem, 1.25vw, 1.25rem);--container:120rem}html{background:var(--paper);min-width:20rem;color:var(--ink);font-family:var(--font-sans)}body{min-width:20rem;font-size:1rem;line-height:1.35}:focus-visible{outline:2px solid var(--focus);outline-offset:3px}::selection{background:var(--ink);color:var(--paper)}}@layer layout{.site-header{width:min(100%, var(--container));padding:1.05rem var(--gutter) 1.15rem;margin-inline:auto}.wordmark{letter-spacing:-.012em;font-size:.73rem;font-weight:500;line-height:1;display:inline-block}.portfolio-grid{grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-flow:dense;gap:var(--grid-gap);width:min(100%, var(--container));padding:0 var(--gutter) clamp(3rem, 7vw, 7rem);margin-inline:auto;display:grid}.project-card{grid-column:span 2;min-width:0}.project-card[data-size=wide]{grid-column:span 3}.project-page,.not-found{width:min(100%, var(--container));padding-inline:var(--gutter);margin-inline:auto}.project-intro{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) minmax(14rem,32rem);align-items:end;gap:2rem;padding:clamp(2.5rem,7vw,7rem) 0 clamp(1.5rem,3vw,3rem);display:grid}.project-intro h1{font-family:var(--font-display);letter-spacing:-.04em;font-size:clamp(1.4rem,2.7vw,2.8rem);font-weight:500;line-height:1}.project-intro__meta{color:var(--muted);flex-direction:column;gap:.35rem;font-size:.7rem;display:flex}.project-gallery{gap:var(--grid-gap);padding:var(--grid-gap) 0 clamp(4rem, 8vw, 8rem);display:grid}.project-navigation{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;padding-bottom:clamp(2rem,5vw,5rem);display:grid}.project-navigation a{flex-direction:column;gap:.25rem;padding:.8rem 0;display:flex}.project-navigation a:last-child{text-align:right;align-items:flex-end}.project-navigation span{color:var(--muted);text-transform:uppercase;font-size:.57rem}.project-navigation strong{font-size:.7rem;font-weight:500}.not-found{min-height:calc(100dvh - 3rem);padding-top:clamp(4rem,12vw,10rem)}.not-found .eyebrow{color:var(--muted);margin-bottom:1rem;font-size:.65rem}.not-found h1{letter-spacing:-.07em;margin-bottom:2rem;font-size:clamp(3rem,10vw,8rem);font-weight:500;line-height:.86}.not-found a{border-bottom:1px solid;font-size:.72rem}}@layer components{.skip-link{z-index:100;background:var(--ink);color:var(--paper);padding:.55rem .75rem;font-size:.7rem;position:fixed;top:.5rem;left:.5rem;translate:0 -200%}.skip-link:focus{translate:0}.project-card__media{aspect-ratio:1;background:var(--placeholder);border:1px solid var(--line);overflow:hidden}.project-card[data-size=wide] .project-card__media{aspect-ratio:16/9}.project-card picture,.project-card img,.project-card__placeholder{width:100%;height:100%}.project-card img{object-fit:cover;transition:scale .35s}.project-card__placeholder{transition:background-color .2s;display:block}.project-card__meta{justify-content:space-between;align-items:baseline;gap:.75rem;min-height:1.8rem;padding-top:.42rem;display:flex}.project-card__meta h2{letter-spacing:-.012em;text-overflow:ellipsis;white-space:nowrap;font-size:.65rem;font-weight:500;overflow:hidden}.project-card__meta p{color:var(--muted);text-align:right;text-overflow:ellipsis;white-space:nowrap;font-size:.56rem;overflow:hidden}@media (hover:hover){.project-card a:hover img{scale:1.012}.project-card a:hover .project-card__placeholder{background:var(--placeholder-hover)}}.project-dialog{width:calc(100vw - (2 * var(--gutter)));max-width:104rem;height:calc(100dvh - (2 * var(--gutter)));background:var(--paper);max-height:none;color:var(--ink);border:0;margin:auto;padding:0;overflow:hidden}.project-dialog::backdrop{background:#0f0f0e9e}.project-dialog__shell{overscroll-behavior:contain;height:100%;overflow-y:auto}.project-dialog__bar{z-index:2;background:color-mix(in srgb, var(--paper) 94%, transparent);border-bottom:1px solid var(--line);backdrop-filter:blur(10px);justify-content:space-between;align-items:center;min-height:2.8rem;padding:.55rem .75rem .55rem 1rem;display:flex;position:sticky;top:0}.project-dialog__bar p{font-size:.65rem;font-weight:500}.project-dialog__bar button{aspect-ratio:1;width:2rem;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;padding:0;font-size:1.25rem;font-weight:300;line-height:1;display:grid}.project-dialog__bar button:hover{background:var(--placeholder)}.project-dialog__content{padding:clamp(1rem,2vw,2rem)}.project-view__gallery{gap:var(--grid-gap);display:grid}.project-view__gallery figure{margin:0}.project-view__gallery picture,.project-view__gallery img{width:100%;height:auto}.project-view__placeholder,.project-gallery__placeholder{aspect-ratio:16/10;background:var(--placeholder);border:1px solid var(--line)}.project-gallery__item picture,.project-gallery__item img{width:100%;height:auto}}@layer utilities{.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}}@media (width<=899px){.portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-card,.project-card[data-size=wide]{grid-column:span 1}.project-card[data-size=wide] .project-card__media{aspect-ratio:1}}@media (width<=599px){:root{--gutter:.75rem;--grid-gap:.75rem}.site-header{padding-top:.9rem;padding-bottom:1rem}.portfolio-grid{grid-template-columns:1fr}.project-card,.project-card[data-size=wide]{grid-column:span 1}.project-card[data-size=wide] .project-card__media{aspect-ratio:16/9}.project-card__meta{min-height:1.65rem}.project-dialog{width:calc(100vw - .75rem);height:calc(100dvh - .75rem)}.project-dialog__content{padding:.75rem}.project-intro{grid-template-columns:1fr;gap:.75rem}.project-navigation{grid-template-columns:1fr}.project-navigation a:last-child{text-align:left;border-top:1px solid var(--line);align-items:flex-start}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
