/* The three photo collections share this composition; the welcome/header stay intact. */
.gallery-photo-viewer {width:min(1200px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 32px);margin:auto;padding:0;overflow:hidden;border:1px solid #d8ad6a;border-radius:16px;background:#061522;color:#f8f3ec;box-shadow:0 30px 90px #000b;}
.gallery-photo-viewer::backdrop {background:#020b15dc;backdrop-filter:blur(8px);}
.gallery-photo-viewer-inner {display:flex;flex-direction:column;max-height:calc(100dvh - 32px);}
.gallery-photo-viewer-top {display:flex;align-items:center;gap:16px;padding:12px 18px;border-bottom:1px solid #e9bd734d;font:500 17px/1.3 Manrope,sans-serif;}
.gallery-photo-viewer-title {flex:1;min-width:0;}
.gallery-photo-viewer-count {color:#e9bd73;white-space:nowrap;}
.gallery-photo-viewer-close,.gallery-photo-viewer-prev,.gallery-photo-viewer-next {display:grid;place-items:center;flex:none;width:42px;height:42px;padding:0;border:1px solid #e9bd73a6;border-radius:50%;background:#061a2b;color:#f1c477;font:400 34px/1 Georgia,serif;cursor:pointer;}
.gallery-photo-viewer-close {font-size:30px;}
.gallery-photo-viewer-stage {position:relative;display:grid;place-items:center;min-height:0;background:#020d19;}
.gallery-photo-viewer-stage img {display:block;max-width:100%;max-height:calc(100dvh - 110px);object-fit:contain;}
.gallery-photo-viewer-prev,.gallery-photo-viewer-next {position:absolute;z-index:1;top:50%;transform:translateY(-50%);background:#061a2bdc;}
.gallery-photo-viewer-prev {left:16px;}.gallery-photo-viewer-next {right:16px;}
.gallery-photo-viewer button:hover {background:#153451;}
.gallery-photo-viewer button:focus-visible {outline:2px solid #ffe1a0;outline-offset:3px;}
@media(max-width:767px) {.gallery-photo-viewer-top {font-size:13px;padding:8px 10px;}.gallery-photo-viewer-close,.gallery-photo-viewer-prev,.gallery-photo-viewer-next {width:36px;height:36px;font-size:28px;}.gallery-photo-viewer-stage img {max-height:calc(100dvh - 85px);}.gallery-photo-viewer-prev {left:6px;}.gallery-photo-viewer-next {right:6px;}}
.gallery-page #main .gallery-editorial,
.gallery-page[data-program-transitions] #main .gallery-editorial[data-gallery-carousel] {
 display:block;padding:73px 0 62px;background:linear-gradient(#031225bb,#031225dd),url('forest-lanterns.webp') center/cover #031225;
}
.gallery-page #main .gallery-editorial > .gallery-editorial-layout { display:flex;flex-direction:column;width:100%;max-width:none;margin:0;transform:none; }
.gallery-page[data-program-transitions] #main .gallery-editorial > .gallery-editorial-layout { height:100%; }
.gallery-detail-hero { position:relative;isolation:isolate;flex:1;min-height:360px; }
.gallery-hero-photo { position:absolute;z-index:-1;inset:0 0 0 auto;width:66%;overflow:hidden; }
.gallery-hero-photo img { display:block;width:100%;height:100%;object-fit:cover;object-position:var(--hero-position,50% 20%); }
.gallery-hero-photo::after { content:'';position:absolute;inset:0;background:linear-gradient(90deg,#031225 0%,#031225aa 9%,transparent 29%),linear-gradient(0deg,#03122555,transparent 35%);pointer-events:none; }
.gallery-detail-breadcrumbs,.gallery-detail-copy,.gallery-album { width:min(1440px,calc(100% - 144px));margin-inline:auto; }
.gallery-detail-breadcrumbs { display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding-top:24px;color:#d9e1e9;font-size:13px;line-height:1.5; }
.gallery-detail-breadcrumbs > span[aria-hidden] { color:#f1c477; }
.gallery-detail-copy { padding-top:18px;padding-bottom:24px; }
.gallery-detail-copy > * { max-width:38%; }
.gallery-detail-divider { display:block;width:270px;height:28px;object-fit:contain;margin:0 0 20px; }
.gallery-page .gallery-editorial .gallery-detail-copy h2 { margin:0;color:#f8f4ec;font:400 clamp(44px,3.8vw,64px)/1.02 'Cormorant Garamond',Georgia,serif; }
.gallery-detail-copy h2 em,.gallery-album-heading h3 em { color:#f1c477;font-style:normal; }
.gallery-detail-subtitle,.gallery-detail-description { font:400 16px/1.5 Manrope,sans-serif;color:#e2e7ed; }
.gallery-detail-subtitle { margin:15px 0 0; }
.gallery-detail-description { margin:16px 0 0; }
.gallery-page .gallery-detail-all { display:flex;justify-content:space-between;align-items:center;gap:15px;width:390px;min-height:52px;margin-top:22px;padding:12px 24px;border:1px solid #ffe4ad;border-radius:7px;background:linear-gradient(110deg,#ffe29a,#dca650);box-shadow:0 4px 18px #f1c47720;color:#031225;font:600 15px/1.4 Manrope,sans-serif; }
.gallery-detail-all > span { font:400 30px/1 Georgia,serif; }
.gallery-album { flex-shrink:0;min-width:0;padding-top:22px;padding-bottom:12px;border-top:1px solid #b6cbe350; }
.gallery-album-heading { display:grid;grid-template-columns:1.15fr 1fr auto;align-items:center;gap:28px;margin-bottom:18px; }
.gallery-page .gallery-album-heading h3 { margin:0;color:#f8f4ec;font:400 clamp(29px,2.2vw,38px)/1.1 'Cormorant Garamond',Georgia,serif; }
.gallery-album-heading > p { max-width:45ch;margin:0;color:#d9e1e9;font:400 13px/1.5 Manrope,sans-serif; }
.gallery-group-controls { display:flex;align-items:center;gap:14px; }
.gallery-group-controls button { display:grid;place-items:center;width:44px;height:44px;padding:11px;background:#031225ce;color:#f1c477;border:1px solid #e9bb70;border-radius:50%;cursor:pointer; }
.gallery-group-controls button:hover { box-shadow:0 0 12px #f1c47755; }
.gallery-group-controls svg { width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.3; }
.gallery-carousel-status { position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden;white-space:nowrap; }
.gallery-page #main .gallery-editorial .gallery-grid {
 display:grid;grid-auto-flow:column;grid-template-columns:none;grid-auto-columns:calc((100% - 40px)/5);grid-template-rows:1fr;gap:10px;
 height:clamp(140px,19svh,180px);min-height:0;flex:none;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;
}
.gallery-editorial .gallery-grid::-webkit-scrollbar { display:none; }
.gallery-page #main .gallery-editorial .gallery-image { display:block;position:relative;min-width:0;min-height:0;height:100%;aspect-ratio:auto;border:1px solid #d4ab67;border-radius:9px;background:#071d33;overflow:hidden;scroll-snap-align:start; }
.gallery-page #main .gallery-editorial .gallery-image img { display:block;width:100%;height:100%;object-fit:cover;object-position:var(--photo-position,50% 50%);transition:transform .25s; }
.gallery-editorial .gallery-image:hover img { transform:scale(1.04); }
.gallery-editorial .gallery-image:hover { border-color:#ffe1a0; }
.gallery-page #main .gallery-editorial .gallery-image > span { display:none; }
.gallery-editorial :is(a,button,.gallery-grid):focus-visible { outline:2px solid #ffe1a0;outline-offset:3px; }
.gallery-page:not([data-program-transitions]) .gallery-editorial-layout { min-height:790px; }
@media(min-width:1280px) {
 .gallery-page[data-program-transitions] #main .gallery-editorial[data-gallery-carousel] { height:var(--catalog-viewport);min-height:0;max-height:var(--catalog-viewport);overflow:clip; }
 .gallery-page[data-program-transitions] .gallery-editorial .gallery-detail-hero { min-height:0; }
}
@media(min-width:1280px) and (max-height:850px) {
 .gallery-detail-breadcrumbs { padding-top:15px; }
 .gallery-detail-copy { padding-top:10px;padding-bottom:16px; }
 .gallery-detail-divider { margin-bottom:10px;height:22px; }
 .gallery-page .gallery-editorial .gallery-detail-copy h2 { font-size:44px; }
 .gallery-detail-subtitle,.gallery-detail-description { font-size:14px;line-height:1.4; }
 .gallery-detail-subtitle { margin-top:10px; }.gallery-detail-description { margin-top:12px; }
 .gallery-page .gallery-detail-all { margin-top:14px;min-height:46px; }
 .gallery-album { padding-top:16px;padding-bottom:8px; }.gallery-album-heading { margin-bottom:12px;gap:22px; }
 .gallery-page .gallery-album-heading h3 { font-size:30px; }.gallery-album-heading > p { font-size:12px; }
}
@media(max-width:1279px) {
 .gallery-page[data-program-transitions] #main .gallery-editorial[data-gallery-carousel] { height:auto;min-height:var(--catalog-viewport);max-height:none;overflow:visible;position:relative; }
 .gallery-page[data-program-transitions] #main .gallery-editorial > .gallery-editorial-layout { height:auto; }
 .gallery-page .catalog-chapter:has(.gallery-editorial) .catalog-mask-stage { height:var(--chapter-height);margin-top:0; }
 .gallery-detail-hero { flex:none;min-height:510px; }
 .gallery-detail-breadcrumbs,.gallery-detail-copy,.gallery-album { width:calc(100% - 64px); }
 .gallery-detail-copy > * { max-width:44%; }
 .gallery-hero-photo { width:59%; }
 .gallery-page .gallery-editorial .gallery-detail-copy h2 { font-size:42px; }
 .gallery-detail-subtitle,.gallery-detail-description { font-size:15px; }
 .gallery-album-heading { grid-template-columns:1fr auto;gap:14px; }
 .gallery-album-heading > p { grid-column:1/-1;grid-row:2;max-width:none; }
 .gallery-group-controls { grid-column:2;grid-row:1; }
 .gallery-page #main .gallery-editorial .gallery-grid { grid-auto-columns:calc((100% - 20px)/3);height:175px; }
}
@media(min-width:1024px) and (max-width:1279px) { .gallery-page #main .gallery-editorial .gallery-grid { grid-auto-columns:calc((100% - 30px)/4); } }
@media(max-width:767px) {
 .gallery-page #main .gallery-editorial,.gallery-page[data-program-transitions] #main .gallery-editorial[data-gallery-carousel] { padding-top:65px;padding-bottom:70px; }
 .gallery-detail-hero { display:flex;flex-direction:column;min-height:0; }
 .gallery-detail-breadcrumbs { order:0;width:calc(100% - 36px);padding:18px 0;font-size:12px;gap:8px; }
 .gallery-hero-photo { position:relative;order:1;inset:auto;width:100%;height:auto;z-index:0; }
 .gallery-hero-photo img { height:auto;aspect-ratio:3/2;object-position:50% 20%; }
 .gallery-hero-photo::after { background:linear-gradient(0deg,#031225,transparent 28%); }
 .gallery-detail-copy { order:2;width:calc(100% - 36px);padding:16px 0 26px; }
 .gallery-detail-copy > * { max-width:100%; }
 .gallery-detail-divider { width:230px;height:22px;margin-bottom:14px; }
 .gallery-page .gallery-editorial .gallery-detail-copy h2 { font-size:40px; }
 .gallery-detail-subtitle,.gallery-detail-description { font-size:15px; }
 .gallery-page .gallery-detail-all { width:100%;min-height:52px;margin-top:20px; }
 .gallery-album { width:calc(100% - 36px);padding-top:22px; }
 .gallery-page .gallery-album-heading h3 { font-size:31px; }
 .gallery-album-heading > p { font-size:13px; }
 .gallery-group-controls { gap:8px; }
 .gallery-page #main .gallery-editorial .gallery-grid { grid-auto-columns:100%;height:220px;gap:12px; }
 .gallery-page:not([data-program-transitions]) .gallery-editorial-layout { min-height:0; }
}
@media(prefers-reduced-motion:no-preference) {
 .gallery-editorial:not([inert]) .gallery-hero-photo img { animation:gallery-detail-appear .7s both; }
 .gallery-editorial:not([inert]) .gallery-detail-copy h2 { animation:gallery-detail-rise .6s both; }
 .gallery-editorial:not([inert]) .gallery-detail-copy > p { animation:gallery-detail-appear .6s .1s both; }
 .gallery-editorial:not([inert]) .gallery-detail-all { animation:gallery-detail-appear .6s .2s both; }
 @keyframes gallery-detail-appear { from{opacity:0}to{opacity:1} }
 @keyframes gallery-detail-rise { from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none} }
}
@media(prefers-reduced-motion:reduce) { .gallery-editorial *, .gallery-editorial *::before { animation:none!important;transition:none!important;scroll-behavior:auto!important; } }
@media(min-width:1280px) and (max-height:699px) {
 .gallery-page[data-program-transitions] #main .gallery-editorial[data-gallery-carousel] { height:auto;min-height:var(--catalog-viewport);max-height:none;overflow:visible;position:relative; }
 .gallery-page[data-program-transitions] #main .gallery-editorial > .gallery-editorial-layout { height:auto; }
 .gallery-page .catalog-chapter:has(.gallery-editorial) .catalog-mask-stage { height:var(--chapter-height);margin-top:0; }
 .gallery-page[data-program-transitions] .gallery-editorial .gallery-detail-hero { min-height:420px; }
}
/* In native reading mode the welcome must scroll away instead of covering albums. */
.gallery-page:not([data-program-transitions]) .gallery-welcome { position:relative; }
/* The scroll mask is the only entrance reveal. An inert/focus change must not
   restart opacity animations after the next chapter has already appeared. */
.gallery-page[data-program-transitions] #main .catalog-chapter-scene * { animation:none!important; }
.gallery-page #main .gallery-editorial .gallery-image[aria-current="true"] { border-color:#ffe1a0;box-shadow:inset 0 0 0 1px #ffe1a0; }
.gallery-hero-photo.is-portrait { background:#031225; }
.gallery-hero-photo.is-portrait img { object-fit:contain;object-position:center; }
