
:root{--paper:#faf9f6;--ink:#24231f;--muted:#77736d;--accent:#a16d54;--line:#e4e0da}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button{cursor:pointer}.wrap{max-width:1540px;margin:auto;padding:0 clamp(14px,3vw,46px)}header{height:82px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{font-size:15px;letter-spacing:.21em;font-weight:750}.brand small{display:block;font-size:9px;letter-spacing:.25em;color:var(--muted);margin-top:6px}nav{display:flex;align-items:center;gap:clamp(15px,3vw,40px);font-size:12px;text-transform:uppercase;letter-spacing:.13em}nav a{padding:8px 0}nav a[aria-current=page]{border-bottom:1px solid var(--ink)}nav a:hover{color:var(--accent)}.pill{display:inline-block;border:1px solid currentColor;border-radius:99px;padding:13px 21px;transition:.2s}.pill:hover{background:var(--ink);color:white}.eyebrow{font-size:11px;font-weight:650;letter-spacing:.24em;text-transform:uppercase;color:var(--muted)}h1,h2,h3{font-family:Georgia,"Times New Roman",serif;font-weight:400;letter-spacing:-.05em}h1{font-size:clamp(60px,8.5vw,136px);line-height:.98;margin:20px 0}h2{font-size:clamp(42px,5.5vw,83px);line-height:1.04;margin:15px 0}h3{font-size:clamp(30px,3vw,50px);margin:0 0 20px}em{font-weight:400;color:var(--accent)}p{line-height:1.75}.lead{color:#6b6761;font-size:clamp(15px,1.4vw,19px);max-width:580px}.intro{text-align:center;padding:55px 0 42px}.intro .lead{margin:0 auto}.hero{height:clamp(480px,59vw,760px);background:#000;position:relative;overflow:hidden}.hero img{width:100%;height:100%;object-fit:contain}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.53),transparent 55%);pointer-events:none}.hero-copy{position:absolute;z-index:1;bottom:clamp(26px,5vw,70px);left:clamp(24px,5vw,72px);color:white;max-width:400px}.hero-copy .eyebrow{color:#d5d0c8}.hero-copy h2{font-size:clamp(37px,5vw,70px)}.hero-copy p{color:#ddd;font-size:14px}.section-head{display:flex;align-items:end;justify-content:space-between;gap:30px;padding:75px 0 23px}.section-head p{max-width:390px;color:var(--muted);font-size:15px}.triptych{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.photo{margin:0;min-width:0}.photo img{display:block;width:100%;height:auto;cursor:zoom-in}.photo img:hover{filter:brightness(.95)}.photo figcaption{font-size:10px;letter-spacing:.1em;color:var(--muted);padding:10px 2px}.feature{display:grid;grid-template-columns:1fr 1fr;background:#ded1be;margin:80px 0}.feature-copy{padding:clamp(35px,7vw,110px);padding-left:clamp(65px,10vw,190px);display:flex;flex-direction:column;justify-content:center}.feature-copy p{color:#64594e;max-width:430px}.feature-image{background:#9e6237;min-height:480px;overflow:hidden}.feature-image img{width:100%;height:100%;max-height:700px;object-fit:cover;object-position:center 43%;display:block}.cta{padding:90px 0 100px;text-align:center}.cta p{color:var(--muted);max-width:570px;margin:0 auto 30px}.page-head{padding:80px 0 45px}.page-head h1{font-size:clamp(70px,9vw,132px)}.page-head p{max-width:610px;color:var(--muted)}.filters{display:flex;gap:9px;flex-wrap:wrap;margin:0 0 25px}.filter{border:1px solid #d8d4ce;background:transparent;border-radius:99px;padding:11px 18px;color:#666;font-size:12px}.filter.active,.filter:hover{background:#24231f;color:white;border-color:#24231f}.gallery{columns:3 260px;column-gap:9px}.gallery .photo{break-inside:avoid;margin:0 0 9px}.gallery .photo[hidden]{display:none}.gallery .photo img{width:100%}.gallery-bottom{padding:65px 0 100px;text-align:center}.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,7vw,120px);padding:65px 0 120px}.contact-layout h1{font-size:clamp(66px,8vw,118px)}.contact-layout p{color:var(--muted);max-width:480px}.contact-links{display:flex;flex-direction:column;align-items:flex-start;gap:16px;margin-top:35px}.contact-links a{text-decoration:underline;text-underline-offset:5px}.contact-card{background:#ece7df;padding:clamp(26px,4vw,60px)}.contact-card label{display:block;font-size:12px;letter-spacing:.09em;text-transform:uppercase;margin:0 0 8px}.contact-card input,.contact-card textarea{display:block;width:100%;border:1px solid #cfc9c0;background:#faf9f6;border-radius:0;padding:15px;margin:0 0 24px;color:var(--ink)}.contact-card textarea{min-height:150px;resize:vertical}.contact-card button{background:#24231f;color:white;border:0;padding:16px 24px}.contact-card small{display:block;color:#716b63;line-height:1.5;margin-top:18px}.footer-dark{background:#24231f;color:#fff;padding:70px 0}.footer-dark .eyebrow{color:#b9b5ae}.footer-dark h2{font-size:clamp(46px,6vw,88px)}.footer-dark p{color:#b9b5ae}footer{display:flex;justify-content:space-between;gap:20px;padding:25px 0;color:var(--muted);font-size:11px}.lightbox{display:none;position:fixed;inset:0;z-index:100;background:rgba(8,8,8,.97);align-items:center;justify-content:center;padding:60px 65px;touch-action:pan-y}.lightbox.open{display:flex}.lightbox img{max-width:100%;max-height:100%;object-fit:contain;transform:scale(var(--zoom,1));transition:transform .15s;touch-action:pan-y}.lightbox button{position:absolute;color:white;background:rgba(0,0,0,.18);border:0;font-size:32px;padding:12px;z-index:2}.lightbox .close{top:12px;right:22px}.lightbox .prev{left:8px;top:48%}.lightbox .next{right:8px;top:48%}.lightbox .zoom{right:70px;top:17px;font-size:15px}.counter{position:absolute;bottom:20px;color:#aaa;font-size:12px;letter-spacing:.1em}@media(max-width:800px){header{height:70px}.brand{font-size:12px}nav{font-size:11px;gap:14px}.intro{padding:48px 0 30px}.hero{height:570px}.hero:after{background:linear-gradient(0deg,rgba(0,0,0,.7),transparent 55%)}.hero-copy{left:24px;bottom:30px}.section-head{display:block;padding-top:60px}.triptych{grid-template-columns:1fr 1fr}.triptych .photo:last-child{grid-column:1/-1;max-width:65%;margin:auto}.feature{grid-template-columns:1fr;margin:60px 0}.feature-image{order:-1;min-height:0;height:510px}.contact-layout{grid-template-columns:1fr;padding-top:30px}}@media(max-width:480px){.wrap{padding:0 13px}.brand{font-size:11px}.brand small{font-size:7px}nav{gap:10px;font-size:10px}.intro{padding:36px 0 25px}.hero{height:520px}.triptych{gap:7px}.triptych .photo:last-child{max-width:80%}.feature-image{height:400px}.feature-copy{padding:42px 27px}.gallery{columns:2 135px;column-gap:7px}.gallery .photo{margin-bottom:7px}.lightbox{padding:55px 25px}.lightbox .prev{left:0}.lightbox .next{right:0}.lightbox .zoom{right:60px}footer{flex-direction:column;gap:8px}.page-head{padding-top:55px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

.hidden-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* Intentional portfolio rhythm: two composed photo grids and an editorial pause. */
.portfolio-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.portfolio-grid .photo{margin:0;min-width:0;overflow:hidden;background:#e9e5df;aspect-ratio:4/5}
.portfolio-grid .photo img{width:100%;height:100%;object-fit:cover;display:block}
.portfolio-interlude{min-height:390px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:70px 20px;margin:9px 0;background:#eae4db}
.portfolio-interlude h2{font-size:clamp(48px,6vw,90px);margin:20px 0 12px}
.portfolio-interlude p{color:#6b6761;font-size:15px;margin:0}
@media(max-width:650px){.portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.portfolio-interlude{min-height:300px;margin:7px 0;padding:50px 18px}.portfolio-interlude h2{font-size:clamp(42px,9vw,64px)}}

/* Brown portrait: preserve the entire original 1229 × 1536 (4:5) image.
   Let the beige text panel take the remaining width instead of cropping the photo. */
.feature{grid-template-columns:minmax(0,1fr) minmax(0,40%);align-items:stretch}
.feature-image{background:transparent;min-height:0;overflow:visible;align-self:stretch}
.feature-image img{display:block;width:100%;height:auto;max-height:none;object-fit:contain;object-position:center}
.feature-copy{padding-left:clamp(45px,8vw,155px);padding-right:clamp(30px,5vw,95px)}
@media(max-width:800px){.feature{grid-template-columns:minmax(0,1fr)}.feature-image{height:auto;min-height:0}.feature-image img{height:auto;max-height:none;width:100%;object-fit:contain}}
@media(max-width:480px){.feature-image{height:auto}.feature-copy{padding:42px 27px}}
