:root{--paper:#fffefd;--ink:#171713;--muted:#777675;--accent:#a82925;--line:#e5e4e1;--soft:#f2f2f0;--focus:#a82925;--sans:"Helvetica Neue", Helvetica, Arial, sans-serif;--display:"Iowan Old Style", "Baskerville", "Times New Roman", serif;--content:min(100% - 3rem, 1440px);color-scheme:light;font-family:var(--sans);font-synthesis:none;color:var(--ink);background:var(--paper);line-height:1.45}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--paper);min-width:320px}body{background:var(--paper);min-width:320px;min-height:100vh;margin:0}body:has(.lightbox-shell:not([hidden])){overflow:hidden}a{color:inherit}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid var(--focus);outline-offset:4px}img{max-width:100%;display:block}button{font:inherit}[hidden]{display:none!important}.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}.skip-link{z-index:100;color:var(--paper);background:var(--ink);padding:.65rem .85rem;text-decoration:none;transition:transform .16s;position:fixed;top:.75rem;left:.75rem;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.site-header{z-index:10;border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--paper) 94%, transparent);position:relative}.site-header__inner,.site-footer__inner{width:var(--content);margin:0 auto;display:flex}.site-header__inner{justify-content:space-between;align-items:center;gap:2rem;min-height:6.4rem}.wordmark{color:var(--accent);flex:none;line-height:1;text-decoration:none;display:inline-flex}.wordmark__name{font-family:var(--sans);letter-spacing:.015em;font-size:clamp(1.25rem,1.75vw,1.65rem);font-weight:500}.site-nav{letter-spacing:.035em;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.35rem 1.45rem;font-size:.78rem;font-weight:400;line-height:1.2;display:flex}.site-nav a{color:var(--muted);padding:.4rem 0;text-decoration:none;transition:color .16s;position:relative}.site-nav a:after{content:"";transform-origin:100%;background:currentColor;height:1px;transition:transform .16s;position:absolute;bottom:0;left:0;right:0;transform:scaleX(0)}.site-nav a:hover,.site-nav a:focus-visible,.site-nav a[aria-current=page]{color:var(--accent)}.site-nav a:hover:after,.site-nav a:focus-visible:after,.site-nav a[aria-current=page]:after{transform-origin:0;transform:scaleX(1)}.site-nav__menu{position:relative}.site-nav__menu summary{color:var(--muted);cursor:pointer;padding:.4rem 1rem .4rem 0;list-style:none;transition:color .16s;position:relative}.site-nav__menu summary::-webkit-details-marker{display:none}.site-nav__menu summary:after{color:currentColor;content:"+";font-size:.9rem;line-height:1;position:absolute;top:.29rem;right:0}.site-nav__menu[open] summary:after{content:"−"}.site-nav__menu summary:hover,.site-nav__menu summary:focus-visible,.site-nav__menu summary[aria-current=page]{color:var(--accent)}.site-nav__menu summary:focus-visible{outline:2px solid var(--focus);outline-offset:4px}.site-nav__menu-panel{z-index:20;border:1px solid var(--line);background:var(--paper);min-width:14rem;padding:.55rem;display:grid;position:absolute;top:calc(100% + .65rem);right:-.8rem;box-shadow:0 .8rem 2rem #17171314}.site-nav__menu-panel a{padding:.52rem .6rem;display:block}.site-nav__menu-panel a:after{display:none}main{min-height:calc(100vh - 11rem)}.portfolio-page,.content-page{width:var(--content);margin:0 auto;padding:clamp(2.5rem,6vw,6.75rem) 0 clamp(5rem,10vw,9rem)}.portfolio-page--home{padding-top:clamp(1.5rem,3vw,3.25rem)}.page-intro{gap:.7rem;max-width:42rem;margin-bottom:clamp(2.25rem,5vw,5rem);display:grid}.page-intro h1,.empty-page h1{max-width:11ch;font-family:var(--display);letter-spacing:-.065em;text-wrap:balance;margin:0;font-size:clamp(2.6rem,6vw,6.75rem);font-weight:400;line-height:.9}.eyebrow{color:var(--muted);letter-spacing:.18em;text-transform:uppercase;margin:0;font-size:.63rem;font-weight:700;line-height:1.1}.page-intro__description{max-width:38rem;color:var(--muted);margin:1rem 0 0;font-size:.95rem;line-height:1.65}.gallery-grid{gap:clamp(.6rem,1.05vw,1.1rem);margin:0;padding:0;display:grid}.gallery-row{align-items:stretch;gap:clamp(.6rem,1.05vw,1.1rem);width:100%;display:flex}.gallery-grid__item{flex:var(--gallery-ratio) 1 0;min-width:0}.gallery-grid__link{color:inherit;text-decoration:none;display:block}.gallery-grid figure{aspect-ratio:var(--gallery-ratio);background:var(--soft);margin:0;position:relative;overflow:hidden}.gallery-grid img{object-fit:contain;background:var(--soft);width:100%;height:100%;transition:opacity .22s,transform .5s cubic-bezier(.2,.65,.25,1)}.gallery-grid__link:hover img,.gallery-grid__link:focus-visible img{opacity:.83;transform:scale(1.012)}.empty-state{border-top:1px solid var(--line);color:var(--muted);padding:4rem 0}.content-page--about{grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);column-gap:clamp(2rem,8vw,10rem);display:grid}.content-page--about .page-intro{grid-area:1/1;align-self:start;position:sticky;top:2rem}.rich-text{color:#393833;grid-area:1/2;max-width:42rem;font-size:clamp(1rem,1.2vw,1.18rem);line-height:1.68}.rich-text h1,.rich-text h2,.rich-text h3{color:var(--ink);font-family:var(--display);letter-spacing:-.045em;margin:0 0 1.8rem;font-weight:400;line-height:1}.rich-text h1{font-size:clamp(2rem,4vw,4.25rem)}.rich-text h2,.rich-text h3{font-size:clamp(1.6rem,3vw,2.8rem)}.rich-text p{max-width:38rem;margin:0 0 1.25rem}.rich-text strong{color:var(--ink);font-weight:700}.rich-text em{color:var(--muted)}.rich-text ul,.rich-text ol{margin:1.5rem 0;padding-left:1.2rem}.content-page__gallery{grid-column:1/-1;margin-top:clamp(4rem,10vw,10rem)}.content-page--contact .page-intro{max-width:54rem}.contact-layout{border-top:1px solid var(--line);grid-template-columns:minmax(0,.85fr) minmax(16rem,1.15fr);align-items:start;gap:clamp(2rem,10vw,10rem);padding-top:clamp(1rem,3vw,3rem);display:grid}.contact-layout__intro{max-width:33rem}.contact-details{gap:1.2rem;margin:0;font-style:normal;display:grid}.contact-details__item{border-bottom:1px solid var(--line);gap:.35rem;padding-bottom:1.2rem;text-decoration:none;display:grid}.contact-details__item:hover span:last-child,.contact-details__item:focus-visible span:last-child{text-underline-offset:.2em;text-decoration:underline}.contact-details__label{color:var(--muted);letter-spacing:.15em;text-transform:uppercase;font-size:.62rem;font-weight:700}.text-link{letter-spacing:.12em;text-underline-offset:.25em;text-transform:uppercase;margin-top:1.5rem;font-size:.75rem;font-weight:700;text-decoration-thickness:1px;display:inline-block}.empty-page{width:var(--content);align-content:center;min-height:min(70vh,50rem);margin:0 auto;padding:4rem 0 8rem;display:grid}.empty-page p{max-width:25rem;color:var(--muted);margin:1.5rem 0 0}.site-footer{border-top:1px solid var(--line)}.site-footer__inner{min-height:5rem;color:var(--muted);letter-spacing:.1em;text-transform:uppercase;justify-content:space-between;align-items:center;gap:1rem;font-size:.6rem;font-weight:600;line-height:1.4}.site-footer a{color:var(--ink);text-decoration:none}.site-footer a:hover,.site-footer a:focus-visible{text-underline-offset:.25em;text-decoration:underline}.lightbox-shell{z-index:50;color:var(--paper);place-items:center;padding:clamp(1rem,3vw,3rem);display:grid;position:fixed;inset:0}.lightbox-backdrop{cursor:zoom-out;background:#0f0f0df5;position:absolute;inset:0}.lightbox-panel{z-index:1;grid-template-rows:auto minmax(0,1fr);justify-items:center;width:min(100%,1280px);max-height:100%;display:grid;position:relative}.lightbox-toolbar{justify-content:space-between;align-items:center;width:100%;min-height:3rem;display:flex}.lightbox-count{color:#f8f7f3a8;letter-spacing:.14em;font-size:.65rem;font-weight:600}.lightbox-close,.lightbox-arrow{z-index:2;color:var(--paper);cursor:pointer;background:0 0;border:0;place-items:center;display:grid;position:relative}.lightbox-close{width:2.5rem;height:2.5rem;font-size:2rem;font-weight:300;line-height:1}.lightbox-figure{justify-items:center;max-width:calc(100% - 6rem);max-height:calc(100vh - 7rem);margin:0;display:grid;position:relative}.lightbox-figure img{object-fit:contain;user-select:none;width:auto;max-width:100%;max-height:calc(100vh - 9.5rem)}.lightbox-figure figcaption{color:#f8f7f3d1;text-align:center;gap:.25rem;width:min(100%,42rem);padding:.9rem .25rem 0;font-size:.8rem;line-height:1.45;display:grid}.lightbox-figure figcaption strong{color:var(--paper);font-weight:600}.lightbox-tags{color:#f8f7f38f;letter-spacing:.08em;text-transform:uppercase;font-size:.68rem}.lightbox-arrow{color:#f8f7f3cc;width:3rem;height:5rem;margin-top:-1.5rem;font-size:1.7rem;transition:color .16s,transform .16s;position:absolute;top:50%}.lightbox-arrow:hover,.lightbox-arrow:focus-visible{color:var(--paper)}.lightbox-arrow--previous{left:0}.lightbox-arrow--next{right:0}@media (width<=960px){:root{--content:min(100% - 2.25rem, 1440px)}.site-header__inner{flex-direction:column;justify-content:center;align-items:flex-start;gap:1rem;min-height:5.5rem}.site-nav{justify-content:flex-start;gap:.25rem 1rem}.content-page--about{display:block}.content-page--about .page-intro{position:static}.content-page--about .rich-text{max-width:42rem}.content-page__gallery{margin-top:5rem}}@media (width<=620px){:root{--content:min(100% - 1.5rem, 1440px)}.site-header__inner{min-height:7.5rem;padding:1.1rem 0}.site-nav{gap:.2rem .8rem;font-size:.6rem}.portfolio-page,.content-page{padding-top:2.75rem}.portfolio-page--home{padding-top:1rem}.page-intro{margin-bottom:2.25rem}.page-intro h1,.empty-page h1{font-size:clamp(2.6rem,15vw,4.5rem)}.gallery-grid{gap:.7rem}.gallery-row{grid-template-columns:1fr;gap:.7rem;display:grid}.gallery-grid__item{flex:none}.contact-layout{display:block}.contact-layout__intro{max-width:none}.contact-details{margin-top:3rem}.site-footer__inner{flex-direction:column;justify-content:center;align-items:flex-start;min-height:7rem}.lightbox-shell{padding:.75rem}.lightbox-figure{max-width:calc(100% - 2.5rem)}.lightbox-arrow{width:3rem;height:3rem;margin:0;top:auto;bottom:.25rem}.lightbox-arrow--previous{left:.5rem}.lightbox-arrow--next{right:.5rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
