@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,500;0,600;1,400;1,500&display=swap');
:root{--ink:#20251d;--cream:#f3f0e8;--muted:#686b60;--orange:#bf6b35}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',sans-serif}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,a,input,select,textarea{outline-offset:6px}header{height:100px;display:flex;align-items:center;justify-content:space-between;padding:0 5vw;background:var(--cream)}.brand{font-family:'Playfair Display',Georgia,serif;font-size:29px;line-height:1.1;letter-spacing:-1px}.brand span{display:block;font-family:'DM Sans',sans-serif;font-size:9px;letter-spacing:4px;margin-top:9px}nav{display:flex;gap:35px;align-items:center;font-size:12px}.nav-cta{border-bottom:1px solid;padding:10px 0}.hero{position:relative;min-height:720px;height:calc(100svh - 100px);max-height:1050px;color:#fff;isolation:isolate}.hero>img{position:absolute;width:100%;height:100%;object-fit:cover;z-index:-3}.shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(17,19,14,.66),rgba(17,19,14,.05) 80%),linear-gradient(0deg,rgba(17,19,14,.5),transparent 35%);z-index:-2}.hero-content{padding:8vh 7vw 100px}.eyebrow{font-size:10px;font-weight:600;letter-spacing:2.5px;margin:0 0 30px}h1,h2{font-family:'Playfair Display',Georgia,serif;font-weight:400;letter-spacing:-2px;line-height:1.08;margin:0}h1{font-size:clamp(62px,6.6vw,106px)}h1 em,h2 em{font-weight:400}h1 em{color:#f3c28b}.intro{font-size:15px;line-height:1.7;margin:28px 0}.button{display:flex;align-items:center;justify-content:space-between;gap:40px;width:max-content;border:0;padding:18px 23px;font-size:12px;font-weight:600;cursor:pointer}.light{background:var(--cream);color:var(--ink)}.hero-bottom{position:absolute;bottom:30px;left:5vw;right:5vw;display:flex;justify-content:space-between;font-size:9px;letter-spacing:2px}.section{padding:110px 7vw}.section-head{display:flex;justify-content:space-between;gap:60px;align-items:flex-end;margin-bottom:45px}h2{font-size:clamp(40px,4.2vw,65px)}.section-head>p{max-width:330px;font-size:14px;line-height:1.9;color:var(--muted);margin:0}.photo-open{display:block;width:100%;position:relative;background:transparent;border:0;padding:0;cursor:zoom-in}.photo-open img{display:block;width:100%;height:auto}.photo-open>span{position:absolute;top:24px;right:24px;background:var(--cream);padding:13px 16px;font-size:9px;letter-spacing:1px}.photo-open b{padding-left:25px;font-size:16px}.caption{display:flex;justify-content:space-between;margin-top:18px;font-size:11px;color:var(--muted)}.perspective{background:#242b22;color:#eceee1;padding-bottom:35px}.perspective .eyebrow{color:#c8b397}.perspective-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:12vw}.perspective-grid>div{max-width:410px}.perspective p{line-height:1.9;font-size:14px;color:#c2c5b9}.perspective .large{font-size:23px;line-height:1.5;color:#f1f0e7;margin-top:0}.text-link{display:inline-block;background:none;border:0;border-bottom:1px solid;padding:10px 0;font-size:12px;cursor:pointer}.words{border-top:1px solid #4e5648;margin-top:85px;display:flex;align-items:center;justify-content:space-between;padding-top:25px;font-family:'Playfair Display',Georgia,serif;font-size:clamp(25px,5vw,74px);letter-spacing:4px}.words i{font-size:25px;color:#ca9b62;font-style:normal}.inquire{display:grid;grid-template-columns:1fr 1fr;gap:12vw}.inquire>div>p:last-child{font-size:14px;line-height:1.8;color:var(--muted);max-width:340px;margin-top:30px}form label{display:block;font-size:11px;margin:0 0 10px}input,select,textarea{width:100%;border:1px solid #c9c9bc;background:transparent;padding:14px;color:var(--ink);border-radius:0;margin-bottom:23px;font-size:13px}textarea{resize:vertical}.dark{background:var(--ink);color:#fff;width:100%}.form-note{font-size:11px;color:var(--muted);line-height:1.7}#result{border-top:1px solid #ccc;padding-top:25px;margin-top:25px}#status{font-size:12px}footer{border-top:1px solid #d3d3c8;margin:0 5vw;padding:40px 0;display:flex;align-items:center;justify-content:space-between;gap:25px}footer p{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-size:18px}footer>span{font-size:10px;color:var(--muted)}dialog{border:0;background:#151812;color:white;max-width:96vw;width:1300px;padding:50px 20px 15px}dialog::backdrop{background:#000e}dialog img{width:100%;max-height:78vh;object-fit:contain}dialog p{font-size:12px;text-align:center}.close{position:absolute;top:12px;right:20px;color:#fff;background:transparent;border:0;padding:5px;cursor:pointer}.skip{position:absolute;top:-100px;left:15px;background:#fff;padding:15px;z-index:10}.skip:focus{top:10px}@media(max-width:720px){header{height:85px;padding:0 6vw}.brand{font-size:25px}nav{gap:15px}nav>a:not(.nav-cta){display:none}.nav-cta{font-size:10px}.hero{min-height:660px;height:calc(90svh - 85px)}.hero>img{object-position:42% center}.hero-content{padding:70px 7vw 100px}h1{font-size:60px}.hero-bottom{font-size:8px;letter-spacing:1px}.hero-bottom span:last-child{display:none}.section{padding:70px 7vw}.section-head{display:block}.section-head>p{margin-top:25px}.photo-open>span{top:10px;right:10px;padding:8px;font-size:7px}.photo-open b{padding-left:8px}.caption{font-size:9px;gap:15px}.perspective-grid,.inquire{grid-template-columns:1fr;gap:35px}.words{margin-top:45px;letter-spacing:1px}.words i{font-size:16px}footer{flex-wrap:wrap;justify-content:space-between}footer p{display:none}footer>span{max-width:130px;text-align:right;line-height:1.8}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.contact-buttons{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}.contact-buttons .button{width:auto;gap:18px;padding:15px 18px}.contact-details{font-size:14px;line-height:2}.contact-details a{overflow-wrap:anywhere}.contact-details a:hover{text-decoration:underline}#send-email{margin-bottom:12px}

.page-intro{background:#242b22;color:#f3f0e8}.page-intro h1{font-size:clamp(46px,6vw,85px);max-width:1000px}.lead{font-size:19px;line-height:1.8;max-width:800px;margin:30px 0}.page-intro .dark{background:#f3f0e8;color:#242b22}.page-intro .contact-details{font-size:13px}.session-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin:45px 0}.session{border-top:1px solid #b8b8a8;padding:30px 12px 25px 0}.session h3{font-family:'Playfair Display',Georgia,serif;font-size:29px;font-weight:400;margin:20px 0}.session p{font-size:14px;line-height:1.8;min-height:70px}.portrait-section{display:grid;grid-template-columns:1fr 1.2fr;gap:8vw;align-items:center;background:#e7e3d8}.portrait-section p,.two-cols p,.pricing p,.section>p{line-height:1.9;max-width:800px}.portrait-wrap{max-width:400px}.portrait{display:block;width:100%;max-height:480px;object-fit:cover;object-position:center top}.portrait[hidden]{display:none}.portrait-fallback{font-family:Georgia,serif;font-size:48px;padding:80px 25px;background:#242b22;color:#fff}.portrait-fallback span{font:12px sans-serif}.pricing{background:#e7e3d8}.two-cols{display:grid;grid-template-columns:1fr 1fr;gap:60px;margin-top:35px}.two-cols h3{font-family:Georgia,serif;font-size:26px;font-weight:400}.two-cols li{line-height:1.9;margin:12px 0;font-size:15px}.gallery-empty{border:1px dashed #b8b8a8;padding:50px 35px;margin-top:50px}.gallery-empty h3{font-family:Georgia,serif;font-size:33px;font-weight:400}.gallery-empty p{font-size:14px;line-height:1.9}.city-links{display:grid;grid-template-columns:repeat(3,1fr);gap:0 30px;margin:35px 0}.city-links a{border-bottom:1px solid #cecec0;padding:20px 0;font-size:14px}.trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.check{display:flex;gap:12px;line-height:1.7;align-items:flex-start;font-size:12px;margin-bottom:22px}.check input{width:17px;flex-shrink:0;margin:3px 0}.form-note a{text-decoration:underline}.email-draft{margin-top:15px}.form-status{font-size:12px;line-height:1.8}.menu-toggle{display:none}footer div{font-size:12px;line-height:1.9}footer div p{font-family:inherit;font-style:normal;font-size:12px}nav{gap:24px}.inquire>div .contact-details{overflow-wrap:anywhere}.inquire>div .contact-buttons .button{font-size:11px;padding:12px}.inquire>div .contact-buttons{gap:7px}@media(max-width:950px){.session-grid{grid-template-columns:repeat(2,1fr)}nav{gap:14px;font-size:11px}.inquire{gap:6vw}}@media(max-width:720px){.menu-toggle{display:block;background:transparent;border:1px solid #aaa;padding:10px;font-size:12px}header{position:relative}nav{display:none;position:absolute;top:85px;left:0;right:0;z-index:5;background:#f3f0e8;padding:25px}nav.open{display:flex;flex-direction:column;align-items:flex-start}nav.open>a{display:block!important;font-size:14px;padding:8px}.portrait-section,.two-cols{grid-template-columns:1fr;gap:30px}.city-links{grid-template-columns:repeat(2,1fr)}.session h3{font-size:24px}.session-grid{gap:15px}.session p{min-height:0}.session{padding-top:23px}.hero-content h1{font-size:54px}.lead{font-size:17px}.portrait-wrap{max-width:300px}footer div{width:100%}footer div p{display:block}}

.portfolio-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin:36px 0}.portfolio-grid figure{margin:0;background:#111;border-radius:8px;overflow:hidden}.portfolio-grid img{display:block;width:100%;height:auto}.portfolio-grid a:focus-visible{outline:4px solid #bf9c64;outline-offset:3px}@media(max-width:720px){.portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}}@media(max-width:420px){.portfolio-grid{grid-template-columns:1fr}}

/* Natural photo proportions, no letterbox borders or empty grid cells. */
.portfolio-grid{display:block;columns:3;column-gap:20px}.portfolio-grid figure{display:inline-block;vertical-align:top;width:100%;margin:0 0 20px;background:transparent;break-inside:avoid;border-radius:8px}.portfolio-grid .photo-frame{display:block;overflow:hidden;position:relative}.portfolio-grid img{display:block;max-width:none}.portfolio-grid .photo-frame:hover img{filter:brightness(1.025)}@media(max-width:900px){.portfolio-grid{columns:2}}@media(max-width:540px){.portfolio-grid{columns:1}.portfolio-grid figure{margin-bottom:16px}}
