.harmony-gallery-loader{position:absolute;inset:0;z-index:100;display:grid;place-items:center;background:linear-gradient(180deg,#102033,#070f1c);color:#fff;pointer-events:none;opacity:1;transition:opacity .6s ease}
body>.harmony-gallery-loader{position:fixed}
.harmony-gallery-loader.is-done{opacity:0}
.harmony-gallery-loader__center{display:flex;flex-direction:column;align-items:center;gap:20px}
.harmony-gallery-loader__count{font:300 12px Jost,sans-serif;letter-spacing:.22em;font-variant-numeric:tabular-nums;min-width:68px;text-align:center;color:#fff8edc9}
.harmony-gallery-loader__flow{position:relative;display:block;width:68px;height:44px;perspective:240px;transform-style:preserve-3d}
.harmony-gallery-loader__flow>span{position:absolute;left:23px;top:6px;width:22px;height:28px;border:1.2px solid #fff;border-radius:1px;background:#070f1c;transform-origin:center;animation:harmonyLoadFlow 2.8s linear infinite}
.harmony-gallery-loader__flow>span:nth-child(1){animation-delay:-1.68s}.harmony-gallery-loader__flow>span:nth-child(2){animation-delay:-2.24s}.harmony-gallery-loader__flow>span:nth-child(4){animation-delay:-.56s}.harmony-gallery-loader__flow>span:nth-child(5){animation-delay:-1.12s}
@keyframes harmonyLoadFlow{0%,100%{transform:translateX(0) translateZ(14px) rotateY(0) scale(1.05);opacity:1}20%{transform:translateX(13px) translateZ(-12px) rotateY(-42deg);opacity:.8}40%{transform:translateX(24px) translateZ(-24px) rotateY(-55deg);opacity:.45}49%{transform:translateX(29px) translateZ(-30px) rotateY(-60deg);opacity:0}50%{transform:translateX(-29px) translateZ(-30px) rotateY(60deg);opacity:0}60%{transform:translateX(-24px) translateZ(-24px) rotateY(55deg);opacity:.45}80%{transform:translateX(-13px) translateZ(-12px) rotateY(42deg);opacity:.8}}
.harmony-gallery-view::before{display:none!important}
.gallery-page__return,.harmony-gallery-loader__back{position:fixed;left:auto;right:30px;top:24px;bottom:auto;z-index:110;display:inline-flex;align-items:center;gap:10px;min-height:36px;padding:0;background:none;border:0;border-radius:0;color:#fff8ede0;font:italic 400 23px/1.2 'Cormorant Garamond',serif;letter-spacing:.01em;text-transform:none;pointer-events:auto;transition:color .3s}
.gallery-page__return svg{width:21px;height:21px;color:#cdb384}
.gallery-page__return::after,.harmony-gallery-loader__back::after{content:'';position:absolute;left:31px;right:0;bottom:0;height:1px;background:#cdb38480;transform:scaleX(.2);transform-origin:left;transition:transform .35s}
.gallery-page__return:hover::after,.harmony-gallery-loader__back:hover::after{transform:scaleX(1)}
.harmony-gallery-loader__back::before{content:'←';font:300 20px Jost,sans-serif;color:#cdb384}
.gallery-page:not(.is-gallery-ready) .cf__stage{opacity:0;transition:none}
.gallery-page.is-gallery-ready .cf__stage{opacity:1;transition:opacity .65s ease,transform .65s cubic-bezier(.16,1,.3,1)}
.harmony-gallery-view iframe{transition:opacity .4s ease}
#catalogue[hidden],.hd__nav a[hidden]{display:none!important}
@media(max-width:600px){.gallery-page__return,.harmony-gallery-loader__back{right:20px;top:22px;font-size:20px}.gallery-page__return svg{width:19px;height:19px}}
@media(prefers-reduced-motion:reduce){.harmony-gallery-loader__flow>span{animation:none}.harmony-gallery-loader,.gallery-page__return::after{transition:none}}

.gallery-page__return span{font:inherit}
.harmony-gallery-view iframe{pointer-events:none}
.harmony-gallery-view.is-gallery-visible iframe{pointer-events:auto}
.gallery-page:not(.is-gallery-ready) .cf{pointer-events:none}


/* Available height, not model detection: compact iPhones retain the approved cover size. */
@media(max-width:600px) and (orientation:portrait){.gallery-page .cf__item{width:clamp(145px,calc(145px + (var(--gallery-height,100svh) - 720px)*.18),180px)}}
.gallery-page .cfx{overflow:visible;perspective:1100px}
.gallery-page .cfx__fig{border-radius:12px;overflow:hidden;will-change:transform,opacity;backface-visibility:hidden}
.gallery-page .cfx__fig img{border-radius:12px}
.gallery-page .cfx__flight{position:absolute;inset:0;margin:0}
.gallery-page__brand{width:110px}
@media(max-width:600px){.gallery-page__brand{width:104px}}

/* The outer covers keep their final shading throughout the entrance. */
.gallery-page .cf__item{filter:none!important}
.gallery-page .cf__item::after{display:none!important}
@media(max-width:900px){.gallery-page .cf__stage{filter:none!important}.gallery-page .cf.is-preview-returning .cf__stage{filter:none!important}}

@media(max-width:900px){
 .gallery-page.is-gallery-ready .cf__stage{transition:opacity .12s ease}
 .harmony-gallery-loader{transition-duration:.18s}
 .harmony-gallery-view iframe{transition-duration:.16s}
}

/* The live experience is revealed underneath, at exactly the scene and scroll position left behind. */
.harmony-gallery-view{transition:opacity .52s cubic-bezier(.4,0,.2,1)}
.harmony-gallery-view::backdrop{background:transparent}
.harmony-gallery-view iframe{transform-origin:50% 45%;transition:opacity .4s ease,transform .52s cubic-bezier(.4,0,.2,1)}
.harmony-gallery-view.is-gallery-leaving{opacity:0;pointer-events:none}
.harmony-gallery-view.is-gallery-leaving iframe{transform:translateY(-12px) scale(.976);pointer-events:none}
.gallery-page.is-gallery-leaving main,.gallery-page.is-gallery-leaving .gallery-page__header{animation:galleryReturnOut .52s cubic-bezier(.4,0,.2,1) both;pointer-events:none}
.gallery-page.is-gallery-leaving>.harmony-gallery-loader{opacity:0;transition:opacity .52s ease}
@keyframes galleryReturnOut{to{opacity:0;transform:translateY(-12px) scale(.976)}}
.harmony-gallery-returning::after{content:'';position:fixed;inset:0;z-index:2147483645;pointer-events:none;background:#070f1c;animation:galleryReturnVeil 1.1s ease both}
@keyframes galleryReturnVeil{0%,20%{opacity:1}100%{opacity:0}}
@media(prefers-reduced-motion:reduce){.harmony-gallery-view,.harmony-gallery-view iframe{transition:none!important}.gallery-page.is-gallery-leaving main,.gallery-page.is-gallery-leaving .gallery-page__header{animation:none}.harmony-gallery-returning::after{display:none}}
.harmony-gallery-loader__flow{scale:1.12}
.harmony-gallery-loader__center{gap:23px}

/* Preview geometry is final before reveal; no inherited mobile vignette or residual frame. */
.gallery-page .cfx,.gallery-page .cfx.is-open{transform:translate(-50%,-50%);transition:opacity .3s ease,visibility 0s}
.gallery-page .cfx.is-closing{transform:translate(-74%,-50%) scale(.96);transition:transform .66s cubic-bezier(.55,0,1,1),opacity .5s ease}
.gallery-page .cfx__fig,.gallery-page .cfx__flight{border:0;border-radius:12px;box-shadow:none;background:transparent;outline:none}
.gallery-page .cfx__fig::before,.gallery-page .cfx__fig::after{display:none!important}
.gallery-page .cfx__fig img{border-radius:12px;transition:none;filter:none;mask-image:none;-webkit-mask-image:none}
@media(max-width:600px){
 .gallery-page__header{position:fixed;inset:0 0 auto;transform:none}
 .gallery-page__return{position:absolute;top:22px;bottom:auto;right:20px}
}


/* Direct child of body: the return never inherits an animated header's containing block. */
@media(max-width:600px){
 body.gallery-page>.gallery-page__return{position:fixed!important;top:calc(22px + env(safe-area-inset-top,0px));right:20px;bottom:auto;left:auto;z-index:160;transform:none!important;translate:none;will-change:auto;margin:0}
}


/* Logo, return, title, tabs and photographs share one scrolling composition. */
.gallery-scene{position:relative;isolation:isolate;min-height:var(--gallery-height,100svh)}
.gallery-page .gallery-scene .gallery-page__header{position:absolute!important;inset:0 0 auto;transform:none}
.gallery-page .gallery-scene .gallery-page__return{position:absolute!important;top:calc(22px + env(safe-area-inset-top,0px));bottom:auto;left:auto;right:20px;transform:none!important}
.gallery-page.is-gallery-leaving main,.gallery-page.is-gallery-leaving .gallery-page__header{animation:none}
.gallery-page.is-gallery-leaving .gallery-scene{animation:galleryReturnOut .52s cubic-bezier(.4,0,.2,1) both}
.gallery-page .cfx.is-mobile-returning{pointer-events:none!important}
@media(max-width:900px){.gallery-page .cfx{touch-action:none}.gallery-page .cf.is-preview-returning .cf__stage{filter:none!important}}
@media(prefers-reduced-motion:reduce){.gallery-page.is-gallery-leaving .gallery-scene{animation:none}}

