@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@300;400;500;600&family=Manrope:wght@300;400;500;600&display=swap');
:root{color-scheme:dark;--bg:#111210;--fg:#ecece5;--muted:#a7a89f;--line:#34362f;--accent:#c6ceae}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;background:var(--bg);color:var(--fg);font-family:'DM Sans',sans-serif;font-size:16px}a{color:inherit;text-decoration:none}button{font:inherit}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:7px}header{position:absolute;z-index:5;top:0;left:0;width:100%;padding:34px 4.2%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ffffff30}.brand{font-family:'Manrope',sans-serif;font-size:23px;letter-spacing:.14em;font-weight:500;line-height:1.2;white-space:nowrap}.brand span{display:block;font-size:10px;letter-spacing:.3em;margin-top:8px}header nav{display:flex;gap:42px;font-size:14px}header nav a{padding:8px 0}header nav a:hover{color:var(--accent)}header nav span{margin-left:14px}.menu{display:none}.hero{height:100svh;min-height:720px;position:relative;overflow:hidden}.hero-photo{position:absolute;width:100%;height:100%;object-fit:cover;object-position:center 35%;filter:grayscale(1) brightness(.65)}.shade{position:absolute;inset:0;background:linear-gradient(90deg,#080b09b3,transparent 85%),linear-gradient(0deg,#080b099c,transparent 30%)}.hero-top{position:absolute;top:150px;left:4.2%;right:4.2%;display:flex;justify-content:space-between;font-size:12px;letter-spacing:.16em;color:#d0d1c8}.hero-copy{position:absolute;left:9%;top:30%;}.eyebrow{font-size:12px;letter-spacing:.17em;line-height:1.8;margin:0 0 30px;color:var(--muted)}.hero .eyebrow{color:#c5c8bf}h1,h2,h3,p{font-weight:400}h1{font-family:'Manrope',sans-serif;font-weight:300;font-size:clamp(54px,6.6vw,105px);line-height:1.04;letter-spacing:-.055em;margin:0 0 42px}em{font-family:Georgia,serif;font-weight:400;letter-spacing:-.04em;color:var(--accent)}.text-link{font-size:14px;display:inline-flex;gap:50px;align-items:center;padding-bottom:13px;border-bottom:1px solid #9c9e91}.text-link span{font-size:23px;transition:transform .2s}.text-link:hover span{transform:translate(3px,3px)}.hero-bottom{position:absolute;bottom:35px;left:4.2%;right:4.2%;display:flex;justify-content:space-between;font-size:11px;letter-spacing:.13em}.section{padding:110px 7.5%}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:65px}.section-heading>p{font-size:16px;color:var(--muted);line-height:1.7;margin-bottom:8px}h2{font-family:'Manrope',sans-serif;font-weight:300;font-size:clamp(40px,4.2vw,68px);line-height:1.14;letter-spacing:-.045em;margin:0}.work-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:80px 7%}.image-wrap{position:relative;overflow:hidden;background:#242720}.image-wrap img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s,filter .8s;filter:saturate(.6)}.work:hover img{transform:scale(1.035);filter:saturate(.95)}.image-action{position:absolute;right:20px;bottom:20px;background:#151711c9;backdrop-filter:blur(8px);padding:12px 18px;font-size:13px;opacity:0;transform:translateY(8px);transition:.3s}.work:hover .image-action,.work:focus-visible .image-action{opacity:1;transform:none}.work-portrait .image-wrap{height:590px}.work-portrait img{filter:grayscale(1);object-position:65% center}.work-event{margin-top:135px}.work-event .image-wrap{height:370px}.work-wedding .image-wrap{height:390px}.work-food{margin-top:10px}.work-food .image-wrap{height:490px}.work-estate{grid-column:1/-1;margin-top:0}.work-estate .image-wrap{height:510px}.work-caption{display:flex;justify-content:space-between;align-items:center;margin-top:20px}.work-caption h3{font-size:19px;margin:0}.work-caption>span{font-size:12px;color:var(--muted)}.concept-note{font-size:12px;color:var(--muted);margin:40px 0 0}.services{background:#171914}.services .section-heading{align-items:flex-start}.service-list article{display:grid;grid-template-columns:45px 1.3fr 1fr 35px;align-items:center;gap:20px;border-top:1px solid var(--line);padding:30px 0;scroll-margin-top:35px}.service-list article:last-child{border-bottom:1px solid var(--line)}.service-list article>span{font-size:12px;color:var(--muted)}.service-list h3{font-family:Manrope,sans-serif;font-size:26px;letter-spacing:-.035em;margin:0}.service-list p{color:var(--muted);font-size:14px;line-height:1.7;max-width:275px;margin:0}.service-list article>a{font-size:26px;padding:8px}.service-list article:target{background:#ffffff06}.about{display:grid;grid-template-columns:1fr 2.1fr;gap:30px;border-bottom:1px solid var(--line)}.about-copy{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin:38px 0 25px;color:var(--muted);line-height:1.8}.about-copy p{margin:0}.contact{padding-top:115px;padding-bottom:95px}.contact h2{font-size:clamp(48px,7.5vw,114px)}.contact-row{display:flex;align-items:end;justify-content:space-between;margin-top:55px}.contact-row p{color:var(--muted);line-height:1.8;margin:0}.contact-cta{padding:20px 0;border-bottom:1px solid var(--accent);display:flex;gap:65px;align-items:center;font-size:18px}.contact-cta span{font-size:32px}footer{border-top:1px solid var(--line);padding:45px 4.2%;display:flex;justify-content:space-between;gap:30px;align-items:center}footer>div{display:flex;flex-direction:column;gap:12px;font-size:14px}footer>span{font-size:11px;line-height:2;letter-spacing:.08em;color:var(--muted)}footer>a:last-child{font-size:28px}.skip{position:fixed;top:-100px;left:20px;z-index:20;background:var(--bg);padding:15px}.skip:focus{top:15px}#mobile-nav{position:absolute;z-index:10;top:101px;left:0;right:0;background:#111210;padding:25px 6%;border-bottom:1px solid var(--line)}#mobile-nav a{padding:15px 0;display:block} @media(min-width:1500px){.section{padding-left:max(7.5%,calc((100vw - 1350px)/2));padding-right:max(7.5%,calc((100vw - 1350px)/2))}}@media(max-width:750px){header{padding:26px 6%}.brand{font-size:19px}.brand span{font-size:9px}header nav{display:none}.menu{display:block;background:none;color:var(--fg);border:0;font-size:14px;padding:10px 0}.hero{min-height:690px;max-height:1000px}.hero-top{top:130px;left:6%;right:6%;font-size:10px;gap:15px}.hero-copy{left:6%;top:32%}.hero .eyebrow{font-size:10px}h1{font-size:clamp(51px,10vw,75px)}.hero-photo{object-position:62% center}.shade{background:linear-gradient(90deg,#080b09bd,#080b092b),linear-gradient(0deg,#080b0999,transparent 40%)}.hero-bottom{left:6%;right:6%;font-size:9px}.hero-bottom>span:first-child{display:none}.section{padding:75px 6%}.section-heading{display:block;margin-bottom:40px}.section-heading>p{margin-top:24px}.work-grid{gap:40px;display:block}.work{display:block;margin:0 0 45px}.work .image-wrap{height:410px}.work-event .image-wrap,.work-estate .image-wrap,.work-wedding .image-wrap{height:300px}.work-caption h3{font-size:17px}.image-action{opacity:1;transform:none;font-size:12px}.services .section-heading>p{margin-top:0}.service-list article{grid-template-columns:25px 1fr 25px;gap:10px;padding:25px 0}.service-list h3{font-size:22px}.service-list p{grid-column:2;grid-row:2;max-width:100%}.service-list article>a{grid-column:3;grid-row:1/3}.about{display:block}.about-copy{grid-template-columns:1fr;gap:20px}.contact-row{align-items:start;flex-direction:column;gap:30px}.contact-cta{font-size:16px;gap:40px}footer{padding:35px 6%;display:grid;grid-template-columns:1fr auto}footer>div{grid-column:1;grid-row:2}footer>span{grid-row:3}footer>a:last-child{grid-column:2;grid-row:1}.concept-note{line-height:1.7}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
@media(min-width:751px){.hero-photo{width:72%;right:0;object-position:center 38%}.shade{background:linear-gradient(90deg,#111210 12%,#111210d9 30%,#11121025 68%),linear-gradient(0deg,#111210b3,transparent 35%)}.hero-copy{left:7.5%}}
/* Refinements: retain the original homepage visual system. */
.hero-top{justify-content:flex-end}
.work-caption{gap:18px;align-items:baseline}
.work-caption>span{flex-shrink:0}
.work-caption h3{line-height:1.45}
.contact-options{min-width:0}
.contact-socials{display:flex;flex-wrap:wrap;gap:16px 28px;font-size:14px;line-height:1.7}
.contact-cta:not([hidden])+.contact-socials{margin-top:24px}
[data-contact-email]{overflow-wrap:anywhere}
[data-contact-email][hidden]{display:none}
.gallery-intro{padding:165px 7.5% 55px}
.gallery-back{margin-bottom:65px;gap:24px}
.gallery-intro .eyebrow{margin-bottom:20px}
.gallery-intro h1{font-size:clamp(44px,5.6vw,86px);max-width:1050px;margin:0;line-height:1.12}
.gallery-sequence{padding:0 4.2%}
.gallery-image{margin:0 auto 65px;max-width:1600px}
.gallery-image img{display:block;width:100%;height:85svh;min-height:420px;max-height:1100px;object-fit:contain;background:var(--bg)}
.gallery-image figcaption{font-size:12px;color:var(--muted);line-height:1.7;margin:22px 0 0;text-align:center}
.gallery-image--wide img{height:auto;min-height:0}
.gallery-image--offset{max-width:72%;margin-left:auto;margin-right:0}
.gallery-image--offset img{height:auto;min-height:0}
.gallery-end{display:flex;justify-content:space-between;gap:30px;padding:30px 7.5% 100px}
@media(max-width:750px){.gallery-intro{padding:140px 6% 35px}.gallery-back{margin-bottom:45px}.gallery-intro h1{font-size:clamp(38px,8.5vw,60px)}.gallery-sequence{padding:0 6%}.gallery-image img{height:auto;min-height:0;max-height:none}.gallery-image{margin-bottom:45px}.gallery-image--offset{max-width:88%}.gallery-image figcaption{text-align:left}.gallery-end{padding:15px 6% 65px;flex-wrap:wrap;gap:30px}.gallery-end .text-link{gap:24px}.contact-options{width:100%}.contact-socials{gap:12px 24px}}

/* Keep practical contacts quietly grouped in the footer. */
footer>div{gap:16px;min-width:0}
footer>div a{overflow-wrap:anywhere;line-height:1.6}
@media(min-width:751px) and (max-width:1050px){footer{flex-wrap:wrap;column-gap:40px;row-gap:30px}}

/* Secondary typography: restrained contrast, with the headline system untouched. */
footer>div{font-size:.8125rem;font-weight:300;letter-spacing:.025em;color:#a3a59b}
footer>span{font-size:.75rem;font-weight:400;letter-spacing:.1em;color:#96988e}
footer>div a{transition:color .2s ease}
footer>div a:hover,footer>div a:focus-visible{color:var(--fg)}
.eyebrow,.services .section-heading>.eyebrow{font-size:.75rem;font-weight:300;letter-spacing:.19em;color:#96988e}
.work-caption>span,.service-list article>span{font-size:.75rem;font-weight:300;letter-spacing:.06em;color:#96988e}
.concept-note,.gallery-image figcaption{font-size:.75rem;font-weight:400;letter-spacing:.02em;color:#96988e}
.section-heading>p:not(.eyebrow),.service-list p,.about-copy,.contact-row p{font-weight:400;letter-spacing:.01em;color:#9ea096}
.hero-top,.hero-bottom{font-size:.75rem;font-weight:300;letter-spacing:.16em;color:#c3c5bc}

/* Original final photograph: no color treatment or overlay; preserve the full exposure. */
.hero .hero-photo{filter:none;object-fit:contain;object-position:right center}
.hero .shade{display:none}
@media(max-width:750px){.hero .hero-photo{object-position:center bottom}}

/* Final portrait cover: preserve original tones, including on hover. */
.work.work-portrait img,.work.work-portrait:hover img{filter:none;object-position:50% 35%}

/* Final food cover: preserve original colors, including on hover. */
.work.work-food img,.work.work-food:hover img{filter:none;object-position:50% 50%}

/* Final wedding cover: focus the existing frame on the couple. */
.work.work-wedding img,.work.work-wedding:hover img{filter:none;object-fit:cover;object-position:75% 20%}

/* Final interior cover: preserve spatial context and original colors. */
.work.work-estate img,.work.work-estate:hover img{filter:none;object-fit:cover;object-position:50% 50%}

/* Shared frame behavior; retain the existing staggered card positions and sizes. */
.work{min-width:0}
.work .image-wrap img,.work:hover .image-wrap img{object-fit:cover;filter:none}
.work.work-event img{object-position:65% 65%}
.work-caption{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;column-gap:18px;margin-top:20px}
.work-caption h3{min-width:0}
.work-caption>span{justify-self:end;align-self:baseline}
/* Per-image --focal-point can be set when adding photographs to a gallery. */
.gallery-image{min-width:0}
.gallery-image img{object-fit:cover;object-position:var(--focal-point,50% 50%)}
.gallery-image--wide img,.gallery-image--offset img{max-height:none}

/* Scoped final Contact and footer refinements. */
.contact-email{margin-top:28px;overflow-wrap:anywhere;max-width:100%}
footer .footer-brand{font-size:14px;white-space:normal;line-height:1.6;color:#a3a59b}
footer .footer-brand span{font-size:12px;letter-spacing:.1em;margin-top:6px}

.hero-top>span{color:rgba(255,255,255,.82);text-shadow:0 1px 10px rgba(0,0,0,.45)}

/* Keep homepage portfolio covers clear on mobile. */
@media(max-width:750px){#portfolio .image-action{display:none}}
