:root{--white:#fff;--paper:#f6f6f4;--ink:#171717;--muted:#737373;--line:#dcdcd8;--serif:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;--sans:Arial,Helvetica,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--white);font-family:var(--sans);font-size:16px;line-height:1.5}body.menu-open,body.lightbox-open{overflow:hidden}img{display:block;max-width:100%}a{color:inherit}button{font:inherit}.skip-link{position:fixed;top:-5rem;left:1rem;z-index:100;background:var(--ink);color:#fff;padding:.7rem 1rem}.skip-link:focus{top:1rem}
.site-header{height:92px;padding:0 clamp(1.5rem,4vw,5rem);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:rgba(255,255,255,.97)}.wordmark{display:block;width:54px;height:54px;text-decoration:none}.wordmark img{width:100%;height:100%;object-fit:contain}.site-nav{display:flex;align-items:center;gap:clamp(1.5rem,3vw,3.5rem)}.site-nav a{position:relative;padding:.55rem 0;text-decoration:none;font-size:.78rem;text-transform:uppercase;letter-spacing:.11em}.site-nav a:after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;background:var(--ink);transition:right .25s}.site-nav a:hover:after,.site-nav a.active:after{right:0}.menu-button{display:none;border:0;background:transparent;padding:.7rem 0;font-size:.78rem;text-transform:uppercase;letter-spacing:.1em}
.kicker,.page-title>p:first-child{margin:0 0 1.1rem;color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.18em}.home-intro{min-height:51vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:6rem 1.5rem}.home-intro h1{margin:0 0 1.7rem;font-family:var(--serif);font-size:clamp(3.2rem,6vw,6.2rem);font-weight:400;line-height:1;letter-spacing:-.04em}.home-intro>p:last-child{margin:0;font-family:var(--serif);color:#555;font-size:1.15rem;line-height:1.6}.home-feature{border-top:1px solid var(--line);display:grid;grid-template-columns:1.2fr .8fr;min-height:70vh}.home-image{display:block;background:var(--paper);overflow:hidden}.home-image img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}.home-image:hover img{transform:scale(1.01)}.home-feature-copy{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:clamp(3rem,7vw,8rem)}.home-feature-copy h2{margin:0 0 2rem;font-family:var(--serif);font-weight:400;font-size:clamp(3rem,5vw,6rem);line-height:.96;letter-spacing:-.04em}.home-feature-copy>p:not(.kicker){max-width:25rem;color:var(--muted);font-family:var(--serif);font-size:1.15rem}.text-link,.contact-link{margin-top:2rem;padding-bottom:.4rem;border-bottom:1px solid var(--ink);text-decoration:none;font-size:.78rem;text-transform:uppercase;letter-spacing:.09em}.text-link span{margin-left:1rem}
.portfolio-page{padding:0 clamp(1.5rem,4vw,5rem) clamp(5rem,9vw,9rem)}.page-title{max-width:1400px;margin:0 auto;padding:clamp(5rem,9vw,9rem) 0 clamp(4rem,7vw,7rem);text-align:center}.page-title h1{margin:0 0 1.5rem;font-family:var(--serif);font-size:clamp(3.5rem,7.5vw,8rem);line-height:.95;font-weight:400;letter-spacing:-.045em}.page-description{margin:0 auto;color:var(--muted);font-family:var(--serif);font-size:1.2rem}.complete-gallery{max-width:1500px;margin:0 auto;columns:3;column-gap:clamp(1.5rem,3vw,3.5rem)}.complete-gallery button{display:inline-block;width:100%;margin:0 0 clamp(2.5rem,5vw,5rem);padding:0;border:0;background:transparent;color:inherit;text-align:left;break-inside:avoid;cursor:zoom-in}.complete-gallery img{width:100%;height:auto;background:var(--paper);transition:opacity .25s}.complete-gallery button:hover img{opacity:.88}.complete-gallery span{display:block;margin-top:.8rem;padding-top:.7rem;border-top:1px solid var(--line);color:var(--muted);font-family:var(--serif);font-size:.92rem}
.about-page{min-height:calc(100vh - 92px);display:grid;grid-template-columns:1fr 1fr}.about-image{min-height:650px;background:var(--paper)}.about-image img{width:100%;height:100%;object-fit:contain}.about-content{display:flex;flex-direction:column;justify-content:center;padding:clamp(4rem,8vw,9rem)}.about-content h1{margin:0 0 2rem;font-family:var(--serif);font-size:clamp(3.3rem,6vw,6.5rem);line-height:.95;font-weight:400;letter-spacing:-.04em}.about-content p{max-width:35rem;color:#555}.about-content .lead{margin:0 0 1.5rem;color:var(--ink);font-family:var(--serif);font-size:clamp(1.6rem,2.5vw,2.4rem);line-height:1.35}.contact-link{width:fit-content}
.site-footer{min-height:150px;padding:3rem clamp(1.5rem,4vw,5rem);display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:2rem;border-top:1px solid var(--line);font-size:.75rem}.site-footer p{margin:0;color:var(--muted)}.site-footer>a{justify-self:center;text-decoration:none}.socials{justify-self:end;display:flex;gap:1.5rem}.socials a{text-decoration:none;text-transform:uppercase;letter-spacing:.08em}.socials a:hover,.site-footer>a:hover{text-decoration:underline}
.lightbox{width:100vw;max-width:none;height:100vh;max-height:none;padding:3rem;border:0;background:rgba(255,255,255,.98)}.lightbox[open]{display:grid;place-items:center}.lightbox::backdrop{background:rgba(0,0,0,.3)}.lightbox img{max-width:88vw;max-height:86vh;object-fit:contain}.lightbox-close{position:fixed;right:2rem;top:1.5rem;border:0;background:transparent;cursor:pointer;font-size:.75rem;text-transform:uppercase;letter-spacing:.1em}
@media(max-width:900px){.complete-gallery{columns:2}.home-feature{grid-template-columns:1fr}.home-image{min-height:70vw}}
@media(max-width:650px){.site-header{height:74px;padding:0 1.25rem}.menu-button{display:block;position:relative;z-index:2}.site-nav{position:fixed;inset:74px 0 auto;z-index:20;padding:2rem 1.25rem 2.5rem;display:flex;align-items:flex-start;flex-direction:column;gap:1.2rem;border-bottom:1px solid var(--line);background:#fff;transform:translateY(calc(-100% - 74px));transition:transform .3s ease}.site-nav.open{transform:translateY(0)}.site-nav a{font-size:1rem}.home-intro{min-height:46vh;padding:5rem 1.25rem}.home-feature-copy{padding:4rem 1.25rem}.page-title{text-align:left}.complete-gallery{columns:1}.about-page{grid-template-columns:1fr}.about-image{min-height:75vw}.about-content{padding:5rem 1.25rem}.site-footer{grid-template-columns:1fr;align-items:start}.site-footer>a,.socials{justify-self:start}.socials{flex-wrap:wrap}.lightbox{padding:1rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition-duration:.01ms!important}}
