:root{--ink:#171715;--paper:#f3f1ed;--white:#fff;--line:rgba(23,23,21,.16);--serif:"Playfair Display",Georgia,serif;--sans:"Manrope",Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}img{display:block;width:100%}button{font:inherit}.nav{position:absolute;z-index:10;top:0;left:0;width:100%;height:96px;padding:0 4.5vw;display:flex;align-items:center;justify-content:space-between;color:white;border-bottom:1px solid rgba(255,255,255,.24)}.brand{display:flex;flex-direction:column;line-height:1;text-align:center;letter-spacing:.3em}.brand span{font-family:var(--serif);font-size:1.15rem}.brand small{font-size:.52rem;letter-spacing:.46em;margin-top:9px}.nav nav{display:flex;gap:36px;font-size:.78rem;text-transform:uppercase;letter-spacing:.12em}.nav nav a,.nav-cta{transition:opacity .25s}.nav nav a:hover,.nav-cta:hover{opacity:.6}.nav-cta{font-size:.72rem;text-transform:uppercase;letter-spacing:.13em;border-bottom:1px solid;padding-bottom:5px}.hero{height:100svh;min-height:720px;position:relative;color:white;overflow:hidden}.hero-image{height:100%;object-fit:cover;object-position:center 38%;filter:grayscale(1)}.hero-shade,.reserve-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.75) 0%,rgba(0,0,0,.36) 48%,rgba(0,0,0,.15) 100%)}.hero-copy{position:absolute;left:9vw;top:50%;transform:translateY(-45%);max-width:820px}.eyebrow{text-transform:uppercase;letter-spacing:.28em;font-size:.7rem;font-weight:600;margin:0 0 26px}.eyebrow.dark{color:#5e5b55}.hero h1,.section h2,.reserve h2{font:400 clamp(3.5rem,7vw,7.6rem)/.94 var(--serif);letter-spacing:-.045em;margin:0}.hero h1 em,.section h2 em,.reserve h2 em{font-weight:400}.hero .intro{font-size:1.05rem;font-weight:300;max-width:480px;margin:34px 0}.hero-actions{display:flex;align-items:center;gap:36px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:56px;padding:0 28px;font-size:.73rem;letter-spacing:.15em;text-transform:uppercase}.button.light{background:white;color:var(--ink)}.text-link{font-size:.76rem;text-transform:uppercase;letter-spacing:.12em;border-bottom:1px solid rgba(255,255,255,.6);padding-bottom:6px}.text-link span,.channel-link span,.package-card a span{margin-left:10px}.scroll-mark{position:absolute;right:4.5vw;bottom:36px;display:flex;align-items:center;gap:14px;text-transform:uppercase;letter-spacing:.18em;font-size:.58rem}.scroll-mark i{height:62px;width:1px;background:white}.section{padding:140px 8vw}.manifesto{display:grid;grid-template-columns:minmax(300px,.8fr) 1.2fr;gap:10vw;align-items:center}.portrait-wrap{position:relative}.portrait-wrap:before{content:"";position:absolute;left:-22px;bottom:-22px;width:60%;height:70%;border:1px solid #a5a19a;z-index:-1}.portrait-wrap img{height:680px;object-fit:cover;object-position:center;filter:grayscale(1)}.manifesto h2{font-size:clamp(2.7rem,5vw,5.3rem)}.manifesto-copy>p:not(.eyebrow):not(.signature){max-width:620px;color:#4c4944;font-weight:300;font-size:1.02rem}.manifesto blockquote{font:italic 1.45rem/1.5 var(--serif);margin:40px 0;padding-left:26px;border-left:1px solid #77716a}.signature{letter-spacing:.25em;font-size:.75rem;margin-top:42px}.signature small{display:block;letter-spacing:.1em;color:#77716a;margin-top:5px}.dark-section,.packages{background:var(--ink);color:white}.section-heading{display:grid;grid-template-columns:1fr 2fr;column-gap:4vw;margin-bottom:70px;align-items:end}.section-heading .eyebrow{grid-column:1}.section-heading h2{grid-column:2;font-size:clamp(3rem,6vw,6rem)}.section-heading>p:last-child{grid-column:2;color:#aaa7a1;max-width:560px}.film-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:46px 28px}.film-card.feature{grid-row:span 2}.video-open{position:relative;padding:0;border:0;background:none;width:100%;cursor:pointer;overflow:hidden}.video-open img{aspect-ratio:16/9;object-fit:cover;filter:grayscale(1);transition:transform .7s,filter .5s}.film-card.feature .video-open img{aspect-ratio:4/5}.video-open:hover img{transform:scale(1.025);filter:grayscale(.2)}.play{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);width:64px;height:64px;border:1px solid white;border-radius:50%;display:grid;place-items:center;color:white;padding-left:4px;background:rgba(0,0,0,.22);backdrop-filter:blur(4px)}.film-card div p{color:#8c8984;text-transform:uppercase;letter-spacing:.17em;font-size:.62rem;margin:17px 0 3px}.film-card h3{font:400 1.5rem var(--serif);margin:0}.channel-link{display:block;width:max-content;margin:72px 0 0 auto;border-bottom:1px solid #706e69;padding-bottom:7px;font-size:.76rem;text-transform:uppercase;letter-spacing:.13em}.formats .section-heading{margin-bottom:35px}.format-list{border-top:1px solid var(--line)}.format-list article{display:grid;grid-template-columns:70px 1fr 180px;align-items:center;min-height:112px;border-bottom:1px solid var(--line);transition:padding .25s,background .25s}.format-list article:hover{padding-left:18px;background:white}.format-list span{font-size:.65rem;color:#8b877f}.format-list h3{font:400 clamp(1.6rem,3vw,2.7rem) var(--serif);margin:0}.format-list p{text-transform:uppercase;letter-spacing:.14em;font-size:.65rem;color:#77716a}.packages .section-heading{margin-bottom:50px}.package-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.package-card{border:1px solid #4d4b47;padding:42px;position:relative}.package-card.selected{background:#f2f0eb;color:var(--ink)}.badge{position:absolute;right:24px;top:0;transform:translateY(-50%);background:white;color:var(--ink);padding:7px 12px;font-size:.57rem;text-transform:uppercase;letter-spacing:.15em}.package-top{display:flex;justify-content:space-between;align-items:baseline;padding-bottom:28px;border-bottom:1px solid currentColor}.package-top span{font:400 2.2rem var(--serif)}.package-top strong{font-weight:400;font-size:1.15rem}.package-card ul{list-style:none;margin:31px 0;padding:0;min-height:170px}.package-card li{margin:12px 0;color:#c5c2bb;font-size:.86rem}.package-card.selected li{color:#5d5952}.package-card a{display:block;border-top:1px solid currentColor;padding-top:20px;text-transform:uppercase;letter-spacing:.13em;font-size:.7rem}.payment-note{max-width:680px;margin:36px auto 0;text-align:center;color:#93908b;font-size:.78rem}.extras{background:#e9e6e0}.extras .section-heading{margin-bottom:45px}.extras-grid{display:grid;grid-template-columns:1fr 1fr;gap:8vw}.extras-grid h3{font:400 1.8rem var(--serif);border-bottom:1px solid var(--line);padding-bottom:20px}.extras-grid p{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:13px 0;margin:0;font-size:.85rem}.extras-grid b{font-weight:500}.reserve{height:82vh;min-height:650px;position:relative;color:white}.reserve>img{height:100%;object-fit:cover;object-position:center;filter:grayscale(1)}.reserve-shade{background:rgba(0,0,0,.56)}.reserve-copy{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);text-align:center;width:min(900px,86vw)}.reserve h2{font-size:clamp(3rem,6.8vw,7rem)}.reserve-copy>p:not(.eyebrow){font-weight:300;margin:30px auto;max-width:560px}footer{min-height:190px;background:#0e0e0d;color:white;padding:50px 6vw;display:flex;align-items:center;justify-content:space-between;border-top:1px solid #333}footer>p{font:italic 1rem var(--serif);color:#96938e}footer>a{text-transform:uppercase;letter-spacing:.15em;font-size:.68rem}.video-modal{width:min(1100px,92vw);padding:0;border:0;background:#000;box-shadow:0 30px 90px #000;color:white}.video-modal::backdrop{background:rgba(0,0,0,.88);backdrop-filter:blur(8px)}.video-frame{aspect-ratio:16/9}.video-frame iframe{width:100%;height:100%;border:0}.close{position:absolute;right:4px;top:-48px;background:none;border:0;color:white;font-size:2rem;cursor:pointer}.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s ease}.reveal.visible{opacity:1;transform:none}
@media(max-width:800px){.nav{height:76px;padding:0 22px}.nav nav{display:none}.nav-cta{font-size:.62rem}.hero{min-height:680px}.hero-image{object-position:60% center}.hero-shade{background:linear-gradient(0deg,rgba(0,0,0,.82),rgba(0,0,0,.1))}.hero-copy{left:24px;right:24px;top:auto;bottom:100px;transform:none}.hero h1{font-size:clamp(3.1rem,15vw,5rem)}.hero .intro{font-size:.92rem;margin:24px 0}.hero-actions{align-items:flex-start;flex-direction:column;gap:20px}.scroll-mark{display:none}.section{padding:90px 24px}.manifesto{grid-template-columns:1fr;gap:70px}.portrait-wrap img{height:520px}.section-heading{display:block;margin-bottom:45px}.section-heading h2{font-size:3.2rem}.film-grid{grid-template-columns:1fr}.film-card.feature{grid-row:auto}.film-card.feature .video-open img,.video-open img{aspect-ratio:16/10}.channel-link{margin-top:45px}.format-list article{grid-template-columns:44px 1fr}.format-list p{grid-column:2}.package-grid,.extras-grid{grid-template-columns:1fr}.package-card{padding:32px 24px}.package-card ul{min-height:0}.reserve{min-height:640px}footer{flex-direction:column;gap:28px;text-align:center}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.video-open img{transition:none}}

/* Refined framing and contact links */
.hero-image{object-position:center top}
.portrait-wrap img{object-position:center top}
.reserve>img{object-position:center 28%}
.social-links{display:flex;gap:24px;align-items:center}
.social-links a{text-transform:uppercase;letter-spacing:.15em;font-size:.68rem}
@media(max-width:800px){.hero-image{object-position:58% top}.portrait-wrap img{object-position:center top}.reserve>img{object-position:center 24%}.social-links{flex-wrap:wrap;justify-content:center;gap:16px 24px}}

/* Preserve complete source framing; layout centering must not depend on reveal transforms. */
.hero{background:#0d0d0d;display:flex;align-items:center;padding:160px 6vw 80px;height:auto;min-height:100svh}
.hero-image{position:absolute;right:0;top:125px;width:65%;height:calc(100% - 145px);object-fit:contain;object-position:right center}
.hero-shade{background:linear-gradient(90deg,#0d0d0d 12%,rgba(13,13,13,.75) 42%,transparent 72%)}
.hero-copy,.hero-copy.visible{position:relative;left:auto;top:auto;bottom:auto;transform:none;width:56%;max-width:850px;z-index:1}
.hero h1{font-size:clamp(3rem,5.5vw,6.4rem);line-height:1.08}
.hero-actions{flex-wrap:wrap}
.portrait-wrap{width:100%;max-width:605px;justify-self:center}
.portrait-wrap img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:center 40%}
.reserve{display:grid;place-items:center;min-height:650px;height:auto;padding:100px 24px;isolation:isolate;background:#151515;overflow:hidden}
.reserve>img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center;z-index:-2}
.reserve-shade{z-index:-1;background:rgba(0,0,0,.62)}
.reserve-copy,.reserve-copy.visible{position:relative;inset:auto;transform:none;width:min(100%,1000px);margin:0 auto;text-align:center}
.reserve-copy .eyebrow{width:100%;margin:0 auto 26px;text-align:center}
.reserve h2{font-size:clamp(2.7rem,5.8vw,6rem);line-height:1.1}
@media(max-width:800px){
  .hero{display:block;padding:100px 0 48px;min-height:0}
  .hero-image{position:relative;inset:auto;width:100%;height:auto;max-height:560px;object-fit:contain;object-position:center}
  .hero-shade{display:none}
  .hero-copy,.hero-copy.visible{inset:auto;width:auto;margin:28px 24px 0;max-width:none}
  .hero h1{font-size:clamp(2.6rem,10vw,4.5rem)}
  .portrait-wrap img{height:auto;object-fit:cover;object-position:center 40%}
  .reserve{min-height:600px;padding:80px 24px}
  .reserve>img{object-fit:contain;object-position:center}
}

/* Persistent availability shortcut for paid-traffic visitors. */
.nav{position:fixed;background:rgba(14,14,13,.78);backdrop-filter:blur(12px)}
.nav-cta{display:inline-flex;align-items:center;min-height:38px;padding:0 14px;border:1px solid rgba(255,255,255,.7);background:rgba(255,255,255,.08);font-size:.65rem}
.nav-cta:hover{opacity:1;background:white;color:var(--ink)}

.reserve-video{position:absolute;inset:-20px;width:calc(100% + 40px);height:calc(100% + 40px);object-fit:cover;object-position:center;filter:blur(4px) grayscale(1);z-index:-2;background:#151515 url('assets/closing-poster.jpg') center/cover no-repeat;pointer-events:none}
.reserve-motion{position:absolute;right:24px;bottom:20px;z-index:2;min-height:44px;padding:8px 16px;border:1px solid rgba(255,255,255,.6);background:rgba(0,0,0,.6);color:white;cursor:pointer;font-size:.75rem}
.reserve-copy .button{padding:16px 24px;line-height:1.5;text-align:center;max-width:100%;white-space:normal}
.wedding-form{display:grid;gap:15px;width:min(760px,100%);margin:35px auto 0;text-align:left;background:rgba(16,16,15,.7);border:1px solid rgba(255,255,255,.35);padding:28px;backdrop-filter:blur(8px)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}.wedding-form label{display:grid;gap:7px;color:#f2efea;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}.wedding-form input,.wedding-form select{width:100%;height:48px;border:1px solid rgba(255,255,255,.42);border-radius:0;background:rgba(255,255,255,.96);color:var(--ink);padding:0 12px;font:400 .92rem var(--sans);letter-spacing:normal;text-transform:none}.wedding-form select{cursor:pointer}.wedding-form .button{justify-self:start;border:0;cursor:pointer;margin-top:5px}.form-note{margin:0!important;max-width:none!important;color:#d3d0ca;font-size:.73rem!important;line-height:1.55;text-align:left}.reserve:has(.wedding-form){padding-block:80px}.reserve:has(.wedding-form) .reserve-copy{max-width:1000px}
.wedding-form{gap:22px;padding:clamp(24px,4vw,48px);width:min(900px,100%)}.wedding-form .form-row{gap:22px}.wedding-form label{font-size:.8rem;letter-spacing:.09em;gap:8px}.wedding-form input:not([type=checkbox]),.wedding-form select,.wedding-form textarea{width:100%;border:0;border-bottom:1px solid rgba(255,255,255,.5);background:transparent;color:#fff;border-radius:0;padding:12px 2px;font:400 1rem var(--sans);letter-spacing:normal;text-transform:none}.wedding-form textarea{min-height:115px;resize:vertical}.wedding-form input::placeholder,.wedding-form textarea::placeholder{color:#c4c0ba}.wedding-form select option{background:#171715;color:#fff}.wedding-form :is(input,select,textarea):focus-visible{outline:2px solid #fff;outline-offset:3px}.wedding-form .button{justify-self:stretch;width:100%;display:flex;justify-content:space-between;gap:16px;margin:0;min-height:56px}.wedding-form .form-consent{font-size:.83rem!important}.wedding-form .form-note{font-size:.82rem!important}
.extras-grid .extras-heading{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:10px 20px}
.extras-heading small{font:400 .875rem/1.5 var(--sans);color:#5d5952}

/* Background video and playback controls. */
.hero-video{inset:0;width:100%;height:100%;object-fit:cover;object-position:center;filter:none;background:#0d0d0d url('assets/hero-video-poster-v2.jpg') center/cover no-repeat}
.hero-motion{position:absolute;right:24px;bottom:24px;z-index:3;min-height:44px;padding:8px 16px;border:1px solid rgba(255,255,255,.6);background:rgba(0,0,0,.6);color:white;cursor:pointer;font-size:.75rem}
.hero:has(.hero-video) .scroll-mark{bottom:88px}
@media(max-width:800px){
  .hero-video{position:relative;inset:auto;aspect-ratio:16/9;width:100%;height:auto;max-height:none;object-fit:contain}
  .hero-motion{top:108px;bottom:auto;right:12px}
}

/* Desktop headings follow one vertical reading order. */
@media(min-width:801px){
  .film-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .section{padding-inline:max(6vw,calc((100% - 1440px)/2))}
  .section-heading{display:block;max-width:1100px;text-align:left}
  .section-heading .eyebrow{margin:0 0 20px}
  .section-heading h2{max-width:100%;line-height:1.08;text-wrap:balance}
  .section-heading>p:last-child:not(.eyebrow){margin:24px 0 0;max-width:680px}
  .manifesto{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(48px,7vw,120px)}
  .package-top{flex-wrap:wrap;gap:8px 20px}
  .nav nav{gap:clamp(18px,2.2vw,36px)}
}

/* Mobile spacing and wrapping. */
@media(max-width:800px){
  .hero-copy,.hero-copy.visible{margin-inline:max(24px,env(safe-area-inset-left)) max(24px,env(safe-area-inset-right))}
  .hero-copy h1{padding-inline:3px;overflow-wrap:break-word}
  .hero-actions{max-width:100%;gap:20px}
  .hero-actions a{max-width:100%;min-height:44px;display:inline-flex;align-items:center}
  .hero-actions .button{text-align:center}
  .manifesto,.film-grid,.package-grid,.extras-grid{min-width:0}
  .manifesto-copy,.film-card,.package-card,.extras-grid>div{min-width:0}
  .section h2{font-size:clamp(2.3rem,10vw,3.2rem);line-height:1.08;overflow-wrap:break-word}
  .portrait-wrap:before{left:-12px;bottom:-12px}
  .channel-link{width:fit-content;max-width:100%;line-height:1.6;min-height:44px}
  .package-top{flex-wrap:wrap;gap:8px 16px}
  .package-top strong{white-space:nowrap}
  .package-grid{gap:32px}
  .extras-grid p{gap:16px}
  .extras-grid b{flex-shrink:0}
  .social-links a{display:inline-flex;align-items:center;min-height:44px}
  .reserve-copy{min-width:0}
  .reserve .button{max-width:100%;text-align:center}
  .close{top:4px;right:4px;z-index:2;width:44px;height:44px;background:rgba(0,0,0,.75);line-height:1}
  .hero{display:flex;align-items:flex-end;min-height:720px;min-height:max(720px,100svh);height:auto;padding:260px max(24px,env(safe-area-inset-right)) max(32px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left));isolation:isolate}
  .hero .hero-video{position:absolute;inset:0;width:100%;height:100%;max-height:none;aspect-ratio:auto;object-fit:cover;object-position:52% center;z-index:-2}
  .hero .hero-shade{display:block;z-index:-1;background:linear-gradient(180deg,rgba(0,0,0,.5) 0%,rgba(0,0,0,.08) 24%,rgba(0,0,0,.48) 44%,rgba(0,0,0,.85) 70%,rgba(0,0,0,.94) 100%)}
  .hero-copy,.hero-copy.visible{position:relative;inset:auto;width:100%;max-width:560px;margin:0;transform:none}
  .hero-copy .eyebrow{margin-bottom:20px;font-size:.7rem;letter-spacing:.23em}
  .hero h1{font-size:clamp(2.5rem,10.5vw,4.5rem);line-height:1.06;letter-spacing:-.045em;padding-inline:2px;text-wrap:balance}
  .hero .intro{font-size:1rem;line-height:1.65;margin:22px 0 26px;max-width:38ch}
  .hero-actions{align-items:stretch;gap:14px;width:100%;max-width:360px}
  .hero-actions .button{width:100%;min-height:52px}
  .hero-actions .text-link{align-self:center;justify-content:center;min-height:44px;font-size:.72rem}
  .hero-motion{top:92px;right:20px;bottom:auto;min-height:44px;padding:8px 12px;font-size:.7rem;background:rgba(0,0,0,.35);border-color:rgba(255,255,255,.4)}
  .reserve:has(.wedding-form){padding:70px 20px}.wedding-form{padding:20px 16px;gap:13px}.form-row{grid-template-columns:1fr}.wedding-form .button{width:100%;min-height:54px}.form-note{text-align:center}
}

.package-contact{display:flex;justify-content:center;margin-top:32px}.package-contact .button{max-width:100%;min-height:48px;text-align:center;white-space:normal}

.testimonials[hidden]{display:none}.testimonials{background:#e9e6e0}.testimonials .section-heading{margin-bottom:55px}.testimonial-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.testimonial-card{min-width:0;margin:0;padding:clamp(28px,3.4vw,54px);background:var(--paper);display:flex;flex-direction:column;justify-content:space-between;border-top:1px solid #88837b}.testimonial-card blockquote{margin:0 0 42px;font:400 clamp(1.3rem,2.2vw,2rem)/1.45 var(--serif);white-space:pre-wrap;overflow-wrap:anywhere}.testimonial-card blockquote:before{content:'“';color:#867e70}.testimonial-card blockquote:after{content:'”';color:#867e70}.testimonial-card figcaption{font-size:.88rem;color:#5e5b55;overflow-wrap:anywhere}
@media(max-width:800px){.testimonials{padding-block:82px}.testimonials .section-heading{margin-bottom:34px}.testimonial-grid{grid-template-columns:1fr}.testimonial-card blockquote{margin-bottom:26px}}

.wedding-process{border-top:1px solid var(--line)}.process-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px}.process-grid article{border-top:1px solid var(--line);padding-top:24px}.process-grid span{color:#746d63;font-size:14px}.process-grid h3{font:400 1.65rem var(--serif)}.process-grid p{font-size:1rem}.format-list a{text-decoration:underline}@media(max-width:800px){.process-grid{grid-template-columns:1fr;gap:24px}}
