@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500&family=Inter:wght@300;400;500&display=swap');
:root{--ink:#1f1d1b;--muted:#7a746d;--line:#e8e4de;--bg:#fff;--soft:#f7f5f2;--serif:'Cormorant Garamond',Georgia,serif;--sans:'Inter',system-ui,-apple-system,sans-serif;--max:1280px}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:var(--sans);font-weight:300;color:var(--ink);background:var(--bg);line-height:1.7;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}a{color:inherit;text-decoration:none}
h1,h2,h3{font-family:var(--serif);font-weight:400;letter-spacing:.01em;line-height:1.15}
.wrap{max-width:var(--max);margin:0 auto;padding:0 32px}
.nav{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:76px}
.brand{font-family:var(--serif);font-size:1.55rem;letter-spacing:.04em}
.links{display:flex;gap:34px;list-style:none}
.links a{font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);transition:color .2s}
.links a:hover,.links a.active{color:var(--ink)}
.burger{display:none;background:none;border:0;width:30px;height:20px;position:relative;cursor:pointer}
.burger span,.burger:before,.burger:after{content:'';position:absolute;left:0;right:0;height:1px;background:var(--ink);transition:.3s}
.burger:before{top:0}.burger span{top:9px}.burger:after{bottom:0}
.nav.open .burger:before{top:9px;transform:rotate(45deg)}.nav.open .burger span{opacity:0}.nav.open .burger:after{bottom:10px;transform:rotate(-45deg)}
.hero{position:relative;height:calc(100vh - 77px);min-height:520px;max-height:960px;overflow:hidden}
.hero img{width:100%;height:100%;object-fit:cover}
.hero .cap{position:absolute;left:0;right:0;bottom:12%;text-align:center;color:var(--ink)}
.hero h1{font-size:clamp(2.6rem,6vw,5.2rem)}
.eyebrow{font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;color:var(--muted)}
.intro{text-align:center;max-width:680px;margin:0 auto;padding:130px 32px 100px}
.intro h2{font-size:clamp(2rem,3.4vw,2.8rem);margin:18px 0 22px}
.intro p{color:var(--muted)}
.cats{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;padding-bottom:140px}
.cat img{aspect-ratio:4/5;object-fit:cover;width:100%;transition:opacity .4s}
.cat:hover img{opacity:.85}
.cat h3{font-size:1.6rem;margin-top:18px}.cat span{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.page-head{text-align:center;padding:110px 32px 70px}.page-head h1{font-size:clamp(2.6rem,5vw,4rem);margin-top:12px}
.page-head p{color:var(--muted);max-width:560px;margin:16px auto 0}
.gallery{columns:3 320px;column-gap:20px;padding-bottom:140px}
.gallery a{display:block;margin-bottom:20px;break-inside:avoid;background:var(--soft);cursor:zoom-in}
.gallery img{width:100%;transition:opacity .4s}.gallery a:hover img{opacity:.88}
.lb{position:fixed;inset:0;background:rgba(255,255,255,.97);display:none;align-items:center;justify-content:center;z-index:100}
.lb.on{display:flex}.lb img{max-width:88vw;max-height:86vh;object-fit:contain;user-select:none}
.lb button{position:absolute;background:none;border:0;font-family:var(--serif);font-size:2.6rem;color:var(--ink);cursor:pointer;padding:16px;line-height:1}
.lb .x{top:12px;right:20px}.lb .pv{left:12px;top:50%;transform:translateY(-50%)}.lb .nx{right:12px;top:50%;transform:translateY(-50%)}
.lb .ct{position:absolute;bottom:22px;font-size:.72rem;letter-spacing:.2em;color:var(--muted)}
.split{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center;padding:60px 32px 140px}
.split h2{font-size:2.6rem;margin:14px 0 22px}.split p{color:var(--muted);margin-bottom:16px}
form{display:grid;gap:22px;max-width:640px;margin:0 auto;padding:0 32px 140px}
.row{display:grid;grid-template-columns:1fr 1fr;gap:22px}
label{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);display:grid;gap:8px}
input,select,textarea{font:inherit;font-size:1rem;color:var(--ink);border:0;border-bottom:1px solid var(--line);padding:10px 0;background:none;outline:none;border-radius:0}
input:focus,select:focus,textarea:focus{border-color:var(--ink)}
.btn{justify-self:start;font:inherit;font-size:.74rem;letter-spacing:.24em;text-transform:uppercase;border:1px solid var(--ink);background:none;padding:16px 38px;cursor:pointer;transition:.25s}
.btn:hover{background:var(--ink);color:#fff}
footer{border-top:1px solid var(--line);padding:50px 0;text-align:center;font-size:.78rem;color:var(--muted);letter-spacing:.06em}
footer .brand{display:block;margin-bottom:8px;color:var(--ink)}
@media(max-width:900px){.cats{grid-template-columns:1fr 1fr}.split{grid-template-columns:1fr;gap:50px}}
@media(max-width:760px){.wrap{padding:0 22px}.burger{display:block}
.links{position:fixed;top:77px;left:0;right:0;flex-direction:column;align-items:center;gap:26px;padding:40px 0;background:#fff;border-bottom:1px solid var(--line);transform:translateY(-130%);transition:transform .35s;z-index:-1}
.nav.open .links{transform:none}.nav .wrap{height:64px}.links{top:65px}.brand{font-size:1.3rem}
.hero{height:72vh;min-height:420px}.intro{padding:80px 24px 64px}.cats{gap:18px;padding-bottom:90px}.cat h3{font-size:1.3rem}
.gallery{columns:2;column-gap:10px}.gallery a{margin-bottom:10px}.page-head{padding:70px 24px 44px}.row{grid-template-columns:1fr}.lb button{font-size:2rem}}
@media(max-width:760px){.hero{max-height:640px}.hero .cap{padding:0 20px}.hero .eyebrow{letter-spacing:.16em;font-size:.62rem}}
.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0) 55%)}
.hero .cap{z-index:1;color:#fff}.hero .eyebrow{color:rgba(255,255,255,.85)}
@media(max-width:760px){.hero img{object-position:72% 50%}}
/* Weddings & galleries: true-aspect masonry, no cropping */
.gallery{columns:3;column-gap:20px}
.gallery img{height:auto;object-fit:initial}
@media(max-width:1024px){.gallery{columns:2;column-gap:14px}.gallery a{margin-bottom:14px}}
@media(max-width:600px){.gallery{columns:1}.gallery a{margin-bottom:12px}}
/* Justified rows: left-to-right reading order, true aspect ratios, no cropping */
.gallery{columns:auto;display:flex;flex-wrap:wrap;gap:12px;--row:300px}
.gallery:after{content:'';flex-grow:999}
.gallery a{position:relative;margin:0;flex-grow:var(--r);flex-basis:calc(var(--row) * var(--r));break-inside:auto}
.gallery a:before{content:'';display:block;padding-bottom:var(--pad)}
.gallery a img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
@media(max-width:1024px){.gallery{--row:220px;gap:10px}.gallery a{margin:0}}
@media(max-width:600px){.gallery{--row:150px;gap:8px}.gallery a{margin:0}}

.portfolio-section h2{font-size:clamp(1.8rem,3vw,2.6rem);margin:0 0 24px}.portfolio-section>p{color:var(--muted);margin-bottom:28px}
.portrait-placeholder{aspect-ratio:4/5;width:100%;background:var(--soft,#f2f0ec);border:1px solid rgba(0,0,0,.06);display:grid;place-items:center;color:var(--muted,#777)}
a.btn{display:inline-block;margin-top:14px}
body.lb-open{overflow:hidden}
.hp{display:none}
