*{box-sizing:border-box;margin:0;padding:0}
:root{--bg:#10100f;--paper:#ece9e2;--muted:#a9a59b;--line:rgba(236,233,226,.16);--serif:"Cormorant Garamond",Georgia,serif;--sans:"DM Sans",Arial,sans-serif}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--paper);font-family:var(--sans);font-weight:300;line-height:1.55;overflow-x:hidden}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit}
.nav{position:fixed;top:0;left:0;width:100%;height:82px;padding:0 5vw;display:flex;align-items:center;justify-content:space-between;z-index:50;mix-blend-mode:normal;background:linear-gradient(180deg,rgba(0,0,0,.55),transparent);transition:.35s}
.nav.scrolled{background:rgba(16,16,15,.9);backdrop-filter:blur(14px);height:70px}
.brand{display:flex;align-items:center;gap:12px;font-size:12px;letter-spacing:.22em;font-weight:500}
.brand-mark{width:34px;height:34px;border:1px solid rgba(236,233,226,.6);border-radius:50%;display:grid;place-items:center;font-family:var(--serif);font-size:20px;font-style:italic}
.nav-links{display:flex;gap:34px;font-size:11px;text-transform:uppercase;letter-spacing:.18em}
.nav-links a{opacity:.75;transition:.2s}.nav-links a:hover{opacity:1}
.nav-cta{font-size:10px;text-transform:uppercase;letter-spacing:.16em;border-bottom:1px solid rgba(236,233,226,.55);padding-bottom:5px}
.menu-btn{display:none;background:none;border:0}
.hero{min-height:100vh;position:relative;display:flex;align-items:flex-end;overflow:hidden}
.hero-media,.hero-shade{position:absolute;inset:0}.hero-media img{width:100%;height:100%;object-fit:cover;object-position:center}
.hero-shade{background:linear-gradient(90deg,rgba(5,5,4,.78),rgba(5,5,4,.18) 65%,rgba(5,5,4,.38)),linear-gradient(0deg,rgba(5,5,4,.82),transparent 42%)}
.hero-content{position:relative;z-index:2;padding:0 8vw 12vh;max-width:820px}
.eyebrow,.section-label,.kicker{font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:#c9c5bb}
.hero h1{font-family:var(--serif);font-size:clamp(70px,10.5vw,158px);line-height:.78;font-weight:400;letter-spacing:-.04em;margin:26px 0 34px}
em{font-style:italic;font-weight:400}
.hero-copy{font-size:15px;max-width:430px;color:#d2cec5;margin-bottom:32px}
.outline-btn,.solid-btn{display:inline-flex;align-items:center;gap:26px;text-transform:uppercase;letter-spacing:.16em;font-size:10px;border:1px solid rgba(236,233,226,.5);padding:15px 19px;transition:.25s}
.outline-btn:hover{background:var(--paper);color:var(--bg)}
.hero-bottom{position:absolute;bottom:28px;left:5vw;right:5vw;display:flex;justify-content:space-between;font-size:8px;letter-spacing:.19em;color:#bbb7ae;z-index:2}
.hero-tag{position:absolute;right:5vw;top:120px;font-size:9px;letter-spacing:.18em;opacity:.65;z-index:2}
.section-pad{padding:140px 8vw}
.intro{background:var(--paper);color:var(--bg)}
.intro .section-label,.intro .kicker{color:#65615a}
.intro-grid{display:grid;grid-template-columns:1.1fr .7fr;gap:10vw;margin-top:45px}
.intro h2,.feature h2,.work h2,.experience h2{font-family:var(--serif);font-weight:400;font-size:clamp(46px,6vw,86px);line-height:.9;letter-spacing:-.035em}
.intro-text{padding-top:12px;font-size:15px;color:#555149}.intro-text p+p{margin-top:18px}
.text-link{display:inline-block;margin-top:30px;font-size:10px;letter-spacing:.15em;text-transform:uppercase;border-bottom:1px solid #9d998f;padding-bottom:6px}
.feature{display:grid;grid-template-columns:1.05fr .95fr;gap:8vw;align-items:center}
.image-frame{position:relative;overflow:hidden}
.feature-image img{width:100%;height:min(720px,70vw);object-fit:cover;display:block;filter:saturate(.9)}
.watermark{position:absolute;right:13px;bottom:12px;font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.78);text-shadow:0 1px 5px rgba(0,0,0,.7);pointer-events:none}
.feature-copy{max-width:530px}.feature-copy .section-label{margin-bottom:42px}.feature-copy .kicker{margin-bottom:18px}.feature-copy>p:not(.kicker){color:var(--muted);margin:28px 0 35px;font-size:15px}
.service-list{border-top:1px solid var(--line)}.service-list div{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:10px;border-bottom:1px solid var(--line);padding:17px 0}.service-list span{font-size:9px;color:#77736b}.service-list b{font-family:var(--serif);font-size:23px;font-weight:500}.service-list small{color:#77736b;font-size:10px;text-align:right}
.work{background:#151513}.work-head{display:flex;justify-content:space-between;align-items:end;gap:50px;margin-bottom:52px}.work-head p{max-width:350px;color:#858178;font-size:13px}
.filters{display:flex;gap:9px;margin-bottom:28px;flex-wrap:wrap}.filter{background:none;border:1px solid var(--line);padding:9px 15px;font-size:9px;letter-spacing:.13em;text-transform:uppercase;cursor:pointer}.filter.active,.filter:hover{background:var(--paper);color:var(--bg)}
.masonry{columns:3 280px;column-gap:14px}.photo{position:relative;margin:0 0 14px;break-inside:avoid;overflow:hidden;background:#222;cursor:pointer}.photo img{display:block;width:100%;height:auto;transition:transform .7s cubic-bezier(.2,.7,.2,1),filter .5s}.photo:hover img{transform:scale(1.035);filter:brightness(.82)}.photo figcaption{position:absolute;left:16px;bottom:15px;font-size:9px;text-transform:uppercase;letter-spacing:.14em;opacity:0;transform:translateY(8px);transition:.3s}.photo:hover figcaption{opacity:1;transform:none}.photo.hidden{display:none}
.quote{background:var(--paper);color:var(--bg);text-align:center;padding-left:14vw;padding-right:14vw}.quote-mark{font-family:var(--serif);font-size:90px;line-height:.45}.quote blockquote{font-family:var(--serif);font-size:clamp(36px,5vw,67px);line-height:.94;font-weight:400;max-width:1000px;margin:35px auto 28px}.quote p{font-size:9px;letter-spacing:.22em;color:#716d65}
.experience-grid{display:grid;grid-template-columns:.7fr 1.3fr .8fr;gap:5vw;align-items:start;margin-top:60px}.big-number{font-family:var(--serif);font-size:clamp(100px,15vw,220px);line-height:.7}.big-number span{font-size:.25em;vertical-align:top}.experience-grid h2{font-size:clamp(42px,5vw,70px)}.experience-grid>div:nth-child(2) p{max-width:470px;color:#8e8a82;margin-top:28px;font-size:14px}.principles{border-top:1px solid var(--line)}.principles div{border-bottom:1px solid var(--line);display:flex;gap:20px;padding:15px 0;font-size:11px}.principles b{color:#69665f;font-weight:400}.principles span{letter-spacing:.05em}
.cta{position:relative;min-height:650px;display:grid;place-items:center;text-align:center;overflow:hidden;background:#c9c0b2;color:#151513}.cta-inner{position:relative;z-index:2}.cta h2{font-family:var(--serif);font-size:clamp(60px,8vw,120px);line-height:.82;font-weight:400;letter-spacing:-.04em;margin:25px 0 42px}.solid-btn{border-color:#25231f;background:#171614;color:#eee9e0}.solid-btn:hover{background:transparent;color:#171614}.cta-orb{position:absolute;width:540px;height:540px;border-radius:50%;border:1px solid rgba(20,19,17,.18);right:-120px;bottom:-300px}.cta-orb:before{content:"";position:absolute;inset:70px;border:1px solid rgba(20,19,17,.12);border-radius:50%}
footer{padding:45px 5vw 28px;background:#0b0b0a}.footer-top{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:start;padding-bottom:60px}.footer-note{font-family:var(--serif);font-size:25px;line-height:1}.footer-links{display:flex;flex-direction:column;align-items:flex-end;gap:8px;font-size:10px;color:#aaa69d}.footer-links a:hover{text-decoration:underline}.footer-bottom{border-top:1px solid var(--line);padding-top:17px;display:flex;justify-content:space-between;font-size:8px;letter-spacing:.16em;color:#706d66}
.lightbox{position:fixed;inset:0;background:rgba(5,5,4,.96);z-index:100;display:none;place-items:center;padding:50px}.lightbox.open{display:grid}.lightbox img{max-width:90vw;max-height:82vh;object-fit:contain}.close-lightbox{position:absolute;top:22px;right:30px;border:0;background:none;font-size:38px;font-weight:200;cursor:pointer}.lightbox-caption{position:absolute;bottom:22px;left:0;right:0;text-align:center;font-size:10px;letter-spacing:.17em;text-transform:uppercase;color:#aaa69d}
.reveal{opacity:0;transform:translateY(18px);animation:up .9s .15s forwards}.hero h1.reveal{animation-delay:.3s}.hero-copy.reveal{animation-delay:.45s}.outline-btn.reveal{animation-delay:.6s}
@keyframes up{to{opacity:1;transform:none}}
@media(max-width:850px){
  .nav{height:68px;padding:0 6vw}.nav-links,.nav-cta{display:none}.menu-btn{display:flex;flex-direction:column;gap:5px}.menu-btn span{width:25px;height:1px;background:#eee}
  .hero-content{padding:0 7vw 13vh}.hero h1{font-size:18vw}.hero-copy{font-size:13px}.hero-bottom{left:7vw;right:7vw}.hero-bottom span:nth-child(2){display:none}
  .section-pad{padding:95px 7vw}.intro-grid,.feature,.experience-grid{grid-template-columns:1fr;gap:55px}.feature{display:flex;flex-direction:column}.feature-image{width:100%}.feature-copy{max-width:none}.work-head{display:block}.work-head p{margin-top:22px}.masonry{columns:2 170px}.quote{padding-left:7vw;padding-right:7vw}.footer-top{grid-template-columns:1fr;gap:30px}.footer-links{align-items:flex-start}.footer-bottom{gap:15px;flex-wrap:wrap}.service-list small{display:none}
}
@media(max-width:520px){.masonry{columns:1}.hero-bottom span:last-child{display:none}.hero{min-height:88vh}.hero-media img{object-position:center}.cta{min-height:540px}.lightbox{padding:20px}.lightbox img{max-width:96vw}}

.mobile-menu{position:fixed;inset:0;background:#11110f;z-index:45;padding:120px 8vw;display:flex;flex-direction:column;gap:28px}
.mobile-menu a{font-family:var(--serif);font-size:54px;line-height:.8}

/* Cinematic polish */
body{cursor:default}
body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:9999;opacity:.055;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E")}
.hero-media img{animation:heroZoom 14s ease-out both}
@keyframes heroZoom{from{transform:scale(1.08)}to{transform:scale(1)}}
.hero:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(120deg,transparent 20%,rgba(255,255,255,.07) 50%,transparent 80%);transform:translateX(-120%);animation:lightSweep 2.2s 1s ease-out forwards}
@keyframes lightSweep{to{transform:translateX(120%)}}
.section-pad{scroll-margin-top:80px}
.enquiry{background:#e5e0d7;color:#161512}
.enquiry .section-label,.enquiry .kicker{color:#6f6a62}
.enquiry-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:9vw;margin-top:45px}
.enquiry-note{max-width:440px;color:#68635b;margin-top:28px;font-size:14px}
.enquiry-form{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.enquiry-form label{font-size:9px;text-transform:uppercase;letter-spacing:.16em;color:#625e57}
.enquiry-form input,.enquiry-form select,.enquiry-form textarea{display:block;width:100%;margin-top:8px;border:0;border-bottom:1px solid #aaa49a;background:transparent;padding:12px 0;color:#171614;font:14px var(--sans);outline:none;border-radius:0}
.enquiry-form textarea{resize:vertical}
.enquiry-form input:focus,.enquiry-form select:focus,.enquiry-form textarea:focus{border-bottom-color:#171614}
.enquiry-form .full{grid-column:1/-1}
.form-btn{border:1px solid #171614;cursor:pointer;justify-self:start;margin-top:8px}
.dark-btn{border-color:#171614;color:#171614}
.dark-btn:hover{background:#171614;color:#eee9e0}
.cta-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}
.whatsapp-float{position:fixed;right:22px;bottom:22px;z-index:80;width:54px;height:54px;border-radius:50%;display:grid;place-items:center;background:#171614;color:#f2eee5;border:1px solid rgba(255,255,255,.25);font-size:9px;font-weight:600;letter-spacing:.08em;box-shadow:0 12px 35px rgba(0,0,0,.28);transition:.25s}
.whatsapp-float:hover{transform:translateY(-4px) scale(1.04)}
@media(max-width:850px){.enquiry-grid{grid-template-columns:1fr;gap:45px}.enquiry-form{grid-template-columns:1fr}.enquiry-form .full{grid-column:auto}}

.section-label,.intro-grid,.feature-image,.feature-copy,.work-head,.photo,.quote blockquote,.experience-grid,.enquiry-grid{transition:opacity .8s ease,transform .8s ease}
.section-label:not(.in-view),.intro-grid:not(.in-view),.feature-image:not(.in-view),.feature-copy:not(.in-view),.work-head:not(.in-view),.photo:not(.in-view),.quote blockquote:not(.in-view),.experience-grid:not(.in-view),.enquiry-grid:not(.in-view){opacity:0;transform:translateY(22px)}

/* About section — new image + Pre-Wedding column */
.intro-grid{grid-template-columns:.9fr .75fr 1.05fr;align-items:start}
.intro-image{margin-top:4px;max-height:560px}
.intro-image img{display:block;width:100%;height:560px;object-fit:cover}
.about-service{border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;grid-template-columns:42px 1fr;gap:12px;padding:17px 0;margin:28px 0 24px}
.about-service>span{font-size:9px;color:#77736b}
.about-service b{display:block;font-family:var(--serif);font-size:24px;font-weight:500}
.about-service small{display:block;color:#77736b;font-size:10px;margin-top:4px}
@media(max-width:850px){
  .intro-grid{grid-template-columns:1fr;gap:45px}
  .intro-image{max-height:none}
  .intro-image img{height:min(560px,115vw)}
}

/* Wedding label on the About image */
.about-label{position:absolute;left:18px;bottom:18px;font-family:var(--serif);font-size:30px;letter-spacing:.08em;color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.55);pointer-events:none}
@media(max-width:850px){.about-label{font-size:24px;left:14px;bottom:14px}}

/* Unique contact / location section */
.contact-unique{min-height:720px;background:#c9c0b2}
.contact-intro{max-width:560px;margin:0 auto 34px;color:#514d46;font-size:14px;line-height:1.7}
.location-wrap{margin:55px auto 0;max-width:920px;padding-top:24px;border-top:1px solid rgba(20,19,17,.18)}
.location-label{display:block;font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:#6b665e;margin-bottom:18px}
.locations{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}
.locations span{font-size:10px;letter-spacing:.12em;text-transform:uppercase;border:1px solid rgba(20,19,17,.24);padding:10px 14px;background:rgba(255,255,255,.08)}
.locations span:last-child{font-family:var(--serif);font-size:17px;letter-spacing:.02em;text-transform:none;padding:7px 17px}
@media(max-width:520px){.contact-unique{min-height:650px}.location-wrap{margin-top:42px}.locations{gap:7px}.locations span{padding:8px 10px;font-size:8px}.locations span:last-child{font-size:15px}}
