/* Original photographs: preserve their color profiles and native proportions. */
.gallery-image{aspect-ratio:2/3}
.gallery-image img{object-position:center!important;filter:none}
.gallery-page .gallery-grid{gap:22px;padding:0 5%}
.portrait-image{aspect-ratio:2/3}
.portrait-image img{object-position:50% 43%;filter:none}
.contact-photo{object-position:50% center;filter:none}
.contact-photo-shade{display:none}
.contact-visual>p{color:#383b2b;text-shadow:0 1px 20px #fff9}
.contact-visual .contact-logo{filter:invert(1);mix-blend-mode:multiply}

/* Twelve original photographs: a precise 3 × 4 opening, then depth. */
.memory-journey{height:440svh}
.memory-sticky{min-height:0}
.memory-world{--perspective:1050;--card-width:min(18vw,calc((100svh - 200px)/4.5),210px);--card-gap:16px;perspective:1050px;perspective-origin:50% 50%;display:block}
.memory-camera{position:absolute;inset:0;transform-style:preserve-3d;will-change:transform}
.memory-plane{left:50%;top:50%;--depth-scale:calc(1 - var(--plane-z) / var(--perspective));width:calc(var(--card-width)*var(--depth-scale));height:auto;aspect-ratio:2/3;border:0;box-shadow:0 18px 50px #0005;transform-origin:center;backface-visibility:hidden;transform:translate(-50%,-50%) translate3d(calc(var(--plane-x)*(var(--card-width) + var(--card-gap))*var(--depth-scale)),calc(var(--plane-y)*(var(--card-width)*1.5 + var(--card-gap))*var(--depth-scale)),calc(var(--plane-z)*1px))}
.memory-plane img{display:block;width:100%;height:100%;object-fit:cover;filter:none}
.memory-final img{object-position:50% 27%}
.memory-sticky h2{align-self:end;margin-bottom:13svh;font-size:clamp(75px,8vw,130px);text-shadow:0 2px 30px #000b;line-height:.95}
.memory-label{top:40px}
.memory-label,.memory-footer{text-shadow:0 1px 8px #000}
.memory-footer{bottom:30px}

/* A fine champagne light, with a transparent center over photographs. */
.pointer-light{position:fixed;top:0;left:0;width:0;height:0;z-index:90;pointer-events:none;opacity:0;transition:opacity .25s;will-change:transform}
.pointer-light.is-visible{opacity:1}
.pointer-light i,.pointer-light b{position:absolute;left:0;top:0;transform:translate(-50%,-50%);border-radius:50%;display:block}
.pointer-light i{width:5px;height:5px;background:#efdbb4;box-shadow:0 0 9px #d9b97d99}
.pointer-light b{width:31px;height:31px;border:1px solid #d9bb8399;box-shadow:0 0 12px #e4c59022,inset 0 0 8px #e4c59015;transition:width .25s,height .25s,border-color .25s}
.pointer-light.is-link b{width:52px;height:52px;border-color:#f2d6a2}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.light-cursor,.light-cursor a,.light-cursor button{cursor:none}.light-cursor input,.light-cursor textarea,.light-cursor select,.light-cursor video,.light-cursor dialog,.light-cursor dialog *{cursor:auto}}

.film-collection{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;margin-top:58px}
.film-mini{min-width:0}
.film-mini button{position:relative;display:block;width:100%;aspect-ratio:4/3;padding:0;background:#191a15;border:0;color:#fff}
.film-mini img{display:block;width:100%;height:100%;object-fit:contain;filter:none}
.film-mini .film-play{width:58px;height:58px;backdrop-filter:none;background:#08090635}
.film-mini button:hover .film-play{background:#efece5;color:#10100e}
.film-mini h3{font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(30px,3vw,44px);font-weight:400;font-style:italic;line-height:1.1;margin:21px 0 10px}
.film-mini p{display:flex;justify-content:space-between;gap:15px;color:#bbb3a7;font-size:12px;letter-spacing:.025em;margin:0}
.film-mini p span:last-child{color:#e9d4ad}
.film-selection-label{font-size:12px;letter-spacing:.17em;text-transform:uppercase;color:#b8a68b;margin-top:60px;margin-bottom:-30px}
.video-error[hidden]{display:none}
@media(max-width:1000px){.film-collection{gap:17px}.film-mini h3{font-size:32px}.gallery-page .gallery-grid{gap:14px;padding:0 4%}}
@media(max-width:700px){
 .gallery-page .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:0 8px}
 .home-gallery .gallery-grid{gap:5px;padding:0 5px}
 .memory-journey{height:400svh}.memory-sticky{min-height:0}.memory-world{--perspective:850;--card-width:min(20vw,calc((100svh - 170px)/4.5));--card-gap:8px;perspective:850px;perspective-origin:50% 50%}
 .memory-label{top:29px}.memory-label .eyebrow{font-size:11px}.memory-counter{font-size:11px}.memory-plane>span{font-size:11px}
 .memory-sticky h2{font-size:clamp(62px,15vw,95px);margin-bottom:16svh}.memory-footer{bottom:27px}
 .contact-photo{object-position:50% 37%}.contact-visual>p{font-size:40px;max-width:85%}
 .film-collection{grid-template-columns:1fr;gap:34px;margin-top:44px}.film-mini h3{font-size:38px;margin-top:17px}.film-mini p{font-size:13px}.film-mini .film-play{width:66px;height:66px}
}
@media(prefers-reduced-motion:reduce){
 .pointer-light{display:none!important}
 .memory-journey{height:auto;min-height:0;padding:55px 6%}
 .memory-sticky{position:relative;height:auto;min-height:0;display:block;overflow:visible}
 .memory-label{position:relative;inset:auto;margin-bottom:34px}
 .memory-world{position:relative;inset:auto;perspective:none;height:auto}
 .memory-camera{position:relative;inset:auto;transform:none!important;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
 .memory-plane{position:relative;left:auto;top:auto;width:100%!important;height:auto!important;aspect-ratio:2/3;transform:none!important;opacity:1!important;visibility:visible!important}
 .memory-final img{object-position:center}
 .memory-sticky h2{opacity:1!important;transform:none!important;margin:55px 0 30px;font-size:clamp(54px,7vw,100px)}
 .memory-footer{position:relative;inset:auto;justify-content:center;text-align:center}.memory-track{display:none}
 @media(max-width:700px){.memory-camera{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}}
}

/* Aligned wordmark, distinct navigation and quiet editorial details. */
.header .brand{transform:translateY(5px) scale(.68)}
.header nav{gap:clamp(32px,4.4vw,68px)}
.header nav a{position:relative;display:block;padding:12px 5px;letter-spacing:.045em;color:#eee7dd;white-space:nowrap}
.header nav a::after{content:"";position:absolute;bottom:0;left:5px;right:5px;height:1px;background:#bda686;opacity:.7;transform:scaleX(.72);transition:transform .3s,opacity .3s}
.header nav a:hover::after,.header nav a:focus-visible::after,.header nav a[aria-current="page"]::after{transform:scaleX(1);opacity:1}
.header nav a:hover,.header nav a:focus-visible{color:#e3c99e}
.hero-topline span:last-child{max-width:none;white-space:nowrap;line-height:1.6}
.vision-kicker{display:flex;align-items:center;gap:23px;margin-bottom:28px}
.vision-kicker .image-index{position:static;flex:none;font-size:66px;line-height:1;color:#a39172}
.vision-kicker .eyebrow{margin:0;line-height:1.9}
.footer-logo{width:112px;height:100px}
.footer-logo img{width:150px;height:150px;top:-27px;left:-19px}
@media(max-width:1000px) and (min-width:701px){.header nav{gap:28px}.header nav a{font-size:13px}.header-cta span{margin-left:18px}.small-mark{font-size:23px}}
@media(max-width:700px){.header .brand{transform:translateY(4px) scale(.60)}.vision-kicker{gap:18px;margin-bottom:23px}.vision-kicker .image-index{font-size:56px}.small-mark{font-size:22px}.footer-logo{width:108px;height:95px}.footer-logo img{width:144px;height:144px;left:-18px;top:-26px}}
@media(max-width:360px){.header .brand{transform:translateY(4px) scale(.52)}}
@media(prefers-reduced-motion:reduce){.header nav a::after{transition:none}}

/* The language choices sit below the existing contact underline. */
.motion-toggle .motion-label{font-size:inherit}
.header-contact{position:relative;flex:none}
.header-contact .header-cta{display:block;white-space:nowrap}
.language-switcher{position:absolute;top:calc(100% + 5px);left:50%;width:max-content;transform:translateX(-50%);display:flex;gap:6px;align-items:center}
.language-switcher button{display:grid;place-items:center;width:30px;height:28px;border:0;border-bottom:1px solid transparent;border-radius:0;background:transparent;padding:0;color:inherit;line-height:1;transition:border-color .2s,transform .2s}
.language-switcher button span{font-size:19px;line-height:1}
.language-switcher button[aria-pressed="true"]{border-bottom-color:#d1b384}
.language-switcher button:hover{transform:translateY(-2px);border-bottom-color:#d1b384}
.language-switcher button:focus-visible{outline:1px solid #e3c99e;outline-offset:3px}
@media(max-width:700px){.header{column-gap:4px}.header-contact{margin-left:auto;top:-10px}.header .menu-toggle{margin-left:0}.language-switcher{top:calc(100% + 2px);gap:5px}.language-switcher button{width:28px;height:27px}.language-switcher button span{font-size:18px}}
@media(prefers-reduced-motion:reduce){.language-switcher button{transition:none}.language-switcher button:hover{transform:none}}

/* A quiet reading space for each couple’s testimonial alongside their teaser. */
/* Mobile-only vectors prevent iOS emoji substitution; desktop glyphs are untouched. */
@media(max-width:700px){
 [data-mobile-icon="arrow"]{--mobile-arrow-size:23px;position:relative;display:inline-block;flex:none;width:var(--mobile-arrow-size);height:var(--mobile-arrow-size);font-size:0!important;line-height:0;vertical-align:middle}
 [data-mobile-icon="arrow"]::after{content:"";position:absolute;inset:0;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 19 19 5M5 5h14v14' fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 19 19 5M5 5h14v14' fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}
 .header-cta [data-mobile-icon="arrow"]{--mobile-arrow-size:13px}
 .thin-arrow[data-mobile-icon="arrow"]{--mobile-arrow-size:25px}
 .film-mini p [data-mobile-icon="arrow"]{--mobile-arrow-size:13px}
 .footer-social [data-mobile-icon="arrow"]{--mobile-arrow-size:16px}
 .contact-button>[data-mobile-icon="arrow"],.form-submit>[data-mobile-icon="arrow"]{--mobile-arrow-size:24px}
 .gallery-image>[data-mobile-icon="arrow"]{display:none}
 [data-mobile-icon="play"]{font-size:0;line-height:0}
 .play-circle[data-mobile-icon="play"]{position:relative;padding:0}
 [data-mobile-icon="play"]::after{content:"";position:absolute;top:50%;left:50%;width:22px;height:22px;transform:translate(-50%,-50%);background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m8 5 11 7-11 7Z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m8 5 11 7-11 7Z'/%3E%3C/svg%3E") center/contain no-repeat}
 .film-mini .film-play{width:76px;height:76px}
}

#film-dialog.has-testimonial[open]{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.43fr);grid-template-rows:auto auto auto;column-gap:clamp(28px,4vw,68px);row-gap:20px;align-content:center;align-content:safe center;align-items:center}
#film-dialog.has-testimonial .dialog-header{grid-column:1/-1;grid-row:1;margin-bottom:8px}
#film-dialog.has-testimonial #full-film{grid-column:1;grid-row:2;width:100%;height:auto;max-height:68dvh;min-width:0}
#film-dialog.has-testimonial .film-quality{grid-column:1;grid-row:3}
#film-dialog.has-testimonial .video-error{grid-column:1;grid-row:4}
.film-testimonial{grid-column:2;grid-row:2/4;align-self:center;border-left:1px solid #a18b663f;padding:12px 0 12px clamp(24px,3vw,46px);min-width:0}
.film-testimonial[hidden]{display:none}
.film-testimonial .eyebrow{color:#b8a68b;font-size:10px;line-height:1.7;letter-spacing:.14em;margin:0 0 18px}
.testimonial-ornament{display:block;color:#b8a68b;font-family:'Cormorant Garamond',Georgia,serif;font-size:70px;line-height:.7;height:39px}
.film-testimonial blockquote{margin:0}
.film-testimonial blockquote p{font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(23px,2.05vw,30px);line-height:1.35;font-weight:400;margin:0;color:#e9e3d9}
@media(max-width:850px){
 #film-dialog.has-testimonial[open]{display:flex;align-items:stretch;justify-content:flex-start;gap:18px;padding:24px 5% 40px}
 #film-dialog.has-testimonial .dialog-header{flex:none;margin:0;position:sticky;top:0;z-index:2;background:#0a0a09;padding:8px 0 12px}
 #film-dialog.has-testimonial #full-film{flex:none;max-height:62dvh}
 #film-dialog.has-testimonial .film-quality{flex:none}
 .film-testimonial{align-self:center;width:100%;max-width:540px;margin-top:12px;border-left:0;border-top:1px solid #a18b663f;padding:28px 0 0}
 .film-testimonial blockquote p{font-size:26px;line-height:1.4}
 .film-testimonial .eyebrow{margin-bottom:18px}
}

/* Legal information, outside the approved visual composition. */
.footer-legal{display:flex;justify-content:center;align-items:center;gap:14px;flex-wrap:wrap;margin:28px auto 18px;font-size:13px}.footer-legal a,.form-privacy a{text-decoration:underline;text-underline-offset:4px}

/* Approved welcome film: retain original colors, without the dark overlay. */
.hero-scene > .shade{display:none}

/* Ivory navigation, echoing the editorial footer without changing the entrance. */
.header,.inner-page .header{background:#e6e2d7;color:#414333;border-bottom-color:#41433326}
.header .brand img{filter:invert(1);mix-blend-mode:multiply;opacity:.9}
.header nav a,.header .header-cta,.inner-page .header nav a,.inner-page .header-cta{color:#414333}
.header nav a::after{background:#927b54;opacity:.7}
.header .header-cta{border-bottom-color:#927b54}
.header .header-cta span,.inner-page .header-cta span{color:#927b54}
.header nav a:hover,.header nav a:focus-visible,.header .header-cta:hover,.header .header-cta:focus-visible,
.inner-page .header nav a:hover,.inner-page .header nav a:focus-visible{color:#756344}
.header a:focus-visible,.header button:focus-visible{outline-color:#806a45}
.header .language-switcher button[aria-pressed="true"],.header .language-switcher button:hover{border-bottom-color:#927b54}
@media(max-width:700px){
 .mobile-nav,.inner-page .mobile-nav{background:#e6e2d7;color:#414333;border-bottom:1px solid #41433326;box-shadow:0 16px 24px #10100e12}
 .mobile-nav a,.inner-page .mobile-nav a{color:#414333}
 .mobile-nav a:hover,.mobile-nav a:focus-visible,.inner-page .mobile-nav a:hover,.inner-page .mobile-nav a:focus-visible{color:#756344}
}

/* Match the approved shot framing; the title remains above the video. */
#hero-video{object-position:50% 0%;transform-origin:50% 0%}
#hero-framed{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;visibility:hidden}
@media(max-width:700px){#hero-video{object-position:51% 0%}}
