.gallery-page { overflow: clip; }
.gallery-page [data-gallery-reveal] { opacity: 0; transform: translateY(12px); transition: opacity 450ms ease, transform 450ms ease; }
.gallery-page [data-gallery-reveal].is-visible { opacity: 1; transform: translateY(0); }
.gallery-hero { position: relative; min-height: 720px; display: grid; grid-template-columns: minmax(0, 1fr); align-items: end; isolation: isolate; }
.gallery-hero__image, .gallery-hero__shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.gallery-hero__image { object-fit: cover; object-position: center; z-index: -2; }
.gallery-hero__shade { z-index: -1; pointer-events: none; background: linear-gradient(90deg, rgba(13,13,13,.88) 0%, rgba(13,13,13,.56) 38%, rgba(13,13,13,.05) 70%), linear-gradient(0deg, rgba(13,13,13,.9) 0%, rgba(13,13,13,.16) 54%, rgba(13,13,13,.03) 100%); }
.gallery-hero__content { width: min(var(--container-max), calc(100% - (var(--gutter-desktop) * 2))); padding-block: 0 88px; }
.gallery-hero__copy { width: min(100%, 540px); min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-5); }
.gallery-hero__copy > * { min-width: 0; margin: 0; }
.gallery-hero__copy h1 { font-size: clamp(3.25rem, 5.2vw, 4.5rem); }
.gallery-hero__copy p:not(.eyebrow) { max-width: 34rem; }
.gallery-hero__copy .rule { margin: 0; }
.gallery-intent__copy { width: min(100%, 620px); min-width: 0; margin-inline: auto; }
.gallery-intent__statement { display: grid; grid-template-columns: 40px minmax(0, 1fr); column-gap: var(--space-4); padding-block: var(--space-5); border-top: 1px solid var(--color-bronze-line); }
.gallery-intent__statement:last-child { border-bottom: 1px solid var(--color-bronze-line); }
.gallery-intent__statement > * { min-width: 0; }
.gallery-intent__statement > span, .gallery-summary__facts > article > span { color: var(--color-antique-gold); font-size: var(--font-size-meta); font-weight: 600; letter-spacing: .1em; }
.gallery-intent__statement h3 { margin-block-end: var(--space-2); }
.gallery-intent__statement p { margin: 0; }
.gallery-setting__grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 2fr) minmax(0, 6fr); column-gap: var(--space-6); align-items: start; }
.gallery-setting__copy { grid-column: 1 / span 1; width: min(100%, 430px); min-width: 0; padding-block-start: var(--space-7); }
.gallery-setting__figure { grid-column: 3 / span 1; width: min(100%, 560px); min-width: 0; margin: 0; }
.gallery-setting__figure .media-frame { aspect-ratio: 4 / 5; }
.gallery-figure { min-width: 0; }
.gallery-image-button { display: block; width: 100%; min-width: 0; padding: 0; border-radius: 0; overflow: hidden; background: transparent; text-align: inherit; }
.gallery-image-button .media-frame { position: relative; width: 100%; }
.gallery-image-button .media-frame::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(135deg, transparent 35%, var(--color-gold-wash)); opacity: 0; transition: opacity var(--transition-slow); }
.gallery-image-button:hover .media-frame::after, .gallery-image-button:focus-visible .media-frame::after { opacity: .55; }
.gallery-figure figcaption { display: flex; min-width: 0; gap: var(--space-3); align-items: flex-start; margin-block-start: var(--space-3); }
.gallery-figure figcaption span { flex: 0 0 24px; color: var(--color-antique-gold); font-size: var(--font-size-meta); font-weight: 600; letter-spacing: .08em; }
.gallery-text-link { position: relative; width: fit-content; text-decoration: none; }
.gallery-text-link::after { content: ""; position: absolute; right: 0; bottom: 8px; left: 0; height: 1px; background: var(--color-bronze-line); transform-origin: left; transition: transform var(--transition-base), background-color var(--transition-base); }
.gallery-text-link:hover::after, .gallery-text-link:focus-visible::after { background: var(--color-antique-gold); transform: scaleX(1.08); }
.gallery-arrival__intro { width: min(100%, 520px); min-width: 0; }
.gallery-arrival__mosaic { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 1fr) minmax(0, 4fr); align-items: start; margin-block-start: var(--space-7); }
.gallery-arrival__reception { grid-column: 1 / span 1; min-width: 0; }
.gallery-arrival__architecture { grid-column: 3 / span 1; min-width: 0; margin-block-start: 72px; }
.gallery-arrival__reception .media-frame { aspect-ratio: 3 / 2; }
.gallery-arrival__architecture .media-frame { aspect-ratio: 16 / 10; }
.gallery-arrival__transition { width: min(100%, 520px); min-width: 0; margin-block-start: var(--space-7); }
.gallery-arrival__transition .rule { margin: 0 0 var(--space-4); }
.gallery-arrival__transition p { margin: 0; color: var(--color-platinum); }
.gallery-celebration__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 3fr) minmax(0, 4fr); column-gap: var(--space-6); align-items: start; }
.gallery-celebration__figure { grid-column: 1 / span 1; width: min(100%, 500px); min-width: 0; }
.gallery-celebration__figure .media-frame { aspect-ratio: 3 / 4; }
.gallery-celebration__copy { grid-column: 3 / span 1; width: min(100%, 460px); min-width: 0; padding-block-start: var(--space-6); }
.gallery-celebration__closing { margin-block-start: var(--space-7); padding-block-start: var(--space-5); border-top: 1px solid var(--color-bronze-line); }
.gallery-celebration__closing p { margin: 0; color: var(--color-platinum); }
.gallery-hospitality__intro { width: min(100%, 540px); min-width: 0; }
.gallery-hospitality__figure { width: min(100%, 980px); min-width: 0; margin: var(--space-7) 0 0 auto; }
.gallery-hospitality__figure .media-frame { aspect-ratio: 16 / 9; }
.gallery-hospitality__quote { width: min(100%, 620px); min-width: 0; margin: var(--space-7) auto 0; text-align: center; }
.gallery-hospitality__quote .rule { margin: 0 auto var(--space-5); }
.gallery-hospitality__quote blockquote { margin: 0; padding: 0; border: 0; font-size: clamp(1.875rem, 3vw, 2.25rem); }
.gallery-hospitality__quote blockquote p { margin: 0; }
.gallery-cultural__intro { width: min(100%, 650px); min-width: 0; }
.gallery-cultural__composition { display: grid; grid-template-columns: minmax(0, 8fr) minmax(0, 1fr) minmax(260px, 3fr); column-gap: var(--space-5); align-items: center; margin-block-start: var(--space-7); }
.gallery-cultural__figure { grid-column: 1 / span 1; width: min(100%, 780px); min-width: 0; }
.gallery-cultural__figure .media-frame { aspect-ratio: 3 / 2; }
.gallery-cultural__aside { grid-column: 3 / span 1; width: 100%; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-5); }
.gallery-cultural__aside > * { min-width: 0; margin: 0; }
.gallery-cultural__statement { color: var(--color-platinum); font-family: var(--font-display); font-size: clamp(1.75rem, 2.6vw, 2rem); line-height: 1.14; }
.gallery-summary__panel { width: min(var(--container-max), calc(100% - (var(--gutter-desktop) * 2))); }
.gallery-summary__intro { width: min(100%, 540px); min-width: 0; }
.gallery-summary__facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-block-start: var(--space-7); }
.gallery-summary__facts > article { min-width: 0; padding-inline: var(--space-5); border-left: 1px solid var(--color-bronze-line); }
.gallery-summary__facts > article:first-child { padding-inline-start: 0; border-left: 0; }
.gallery-summary__facts h3 { margin-block: var(--space-3) var(--space-2); }
.gallery-summary__facts p { margin: 0; }
.gallery-cta { padding-block-end: var(--space-11); }
.gallery-cta__inner { width: min(var(--container-max), calc(100% - (var(--gutter-desktop) * 2))); }
.gallery-cta__copy { width: min(100%, 660px); min-width: 0; margin-inline: auto; }
.gallery-cta__copy .rule { margin: 0 0 var(--space-5); }
.gallery-cta__actions { display: flex; min-width: 0; flex-wrap: wrap; align-items: center; gap: var(--space-5); }
.gallery-cta__actions > * { min-width: 0; }
.gallery-modal[hidden] { display: none; }
.gallery-modal { position: fixed; z-index: 10001; inset: 0; display: grid; place-items: center; padding: var(--space-5); }
.gallery-modal__backdrop { position: absolute; inset: 0; background: rgba(13,13,13,.94); }
.gallery-modal__dialog { position: relative; z-index: 1; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; width: min(1100px, 100%); max-height: calc(100vh - 48px); min-width: 0; padding: var(--space-6); border: 1px solid var(--color-bronze-line); border-radius: var(--radius-xl); background: var(--color-charcoal); box-shadow: var(--shadow-nav); }
.gallery-modal__content { min-width: 0; text-align: center; }
.gallery-modal__content img { width: auto; max-width: 100%; max-height: calc(100vh - 210px); margin-inline: auto; border-radius: var(--radius-lg); object-fit: contain; }
.gallery-modal__content p { margin: var(--space-4) auto 0; color: var(--color-muted-platinum); font-size: var(--font-size-small); }
.gallery-modal__count { color: var(--color-antique-gold) !important; font-size: var(--font-size-meta) !important; letter-spacing: .1em; }
.gallery-modal__close, .gallery-modal__control { position: absolute; display: grid; width: 44px; min-width: 44px; height: 44px; place-items: center; border: 1px solid var(--color-bronze-line); border-radius: 50%; background: var(--color-charcoal); color: var(--color-platinum); font-size: 1.5rem; transition: color var(--transition-base), border-color var(--transition-base), background-color var(--transition-base); }
.gallery-modal__close:hover, .gallery-modal__control:hover { border-color: var(--color-antique-gold); color: var(--color-antique-gold); }
.gallery-modal__close { top: var(--space-3); right: var(--space-3); }
.gallery-modal__control--previous { left: var(--space-3); }
.gallery-modal__control--next { right: var(--space-3); }
body.gallery-modal-open { overflow: hidden; }
@media (max-width: 1199px) { .gallery-hero { min-height: 620px; } .gallery-hero__content, .gallery-summary__panel, .gallery-cta__inner { width: min(var(--container-tablet-max), calc(100% - (var(--gutter-tablet) * 2))); } .gallery-setting__grid { grid-template-columns: minmax(320px, 2fr) minmax(0, 3fr); column-gap: var(--space-7); } .gallery-setting__copy, .gallery-setting__figure { grid-column: auto; } .gallery-setting__copy { padding-block-start: 0; } .gallery-arrival__mosaic { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: var(--space-5); } .gallery-arrival__reception, .gallery-arrival__architecture { grid-column: auto; } .gallery-arrival__architecture { margin-block-start: var(--space-7); } .gallery-celebration__grid { grid-template-columns: minmax(0, 1fr) minmax(320px, 1fr); } .gallery-celebration__figure, .gallery-celebration__copy { grid-column: auto; } .gallery-cultural__composition { grid-template-columns: minmax(0, 3fr) minmax(260px, 2fr); gap: var(--space-5); } .gallery-cultural__figure, .gallery-cultural__aside { grid-column: auto; } }
@media (max-width: 979px) { .gallery-setting__grid, .gallery-celebration__grid, .gallery-cultural__composition { grid-template-columns: minmax(0, 1fr); row-gap: var(--space-6); } .gallery-setting__copy, .gallery-setting__figure, .gallery-celebration__figure, .gallery-celebration__copy, .gallery-cultural__figure, .gallery-cultural__aside { grid-column: 1; width: min(100%, 620px); } .gallery-setting__figure, .gallery-celebration__figure { width: min(100%, 560px); } .gallery-celebration__copy { padding-block-start: 0; } .gallery-cultural__aside { align-items: flex-start; } .gallery-hospitality__figure { width: 100%; } }
@media (max-width: 767px) { .gallery-page [data-gallery-reveal] { opacity: 1; transform: none; } .gallery-hero { min-height: 660px; } .gallery-hero__image { object-position: 58% center; } .gallery-hero__shade { background: linear-gradient(0deg, rgba(13,13,13,.94) 0%, rgba(13,13,13,.58) 43%, rgba(13,13,13,.05) 78%); } .gallery-hero__content, .gallery-summary__panel, .gallery-cta__inner { width: calc(100% - (var(--gutter-mobile) * 2)); } .gallery-hero__content { padding-block-end: var(--space-6); } .gallery-hero__copy { gap: var(--space-4); } .gallery-hero__copy h1 { font-size: 2.625rem; } .gallery-hero__copy p:not(.eyebrow) { max-width: none; } .gallery-intent__copy { width: 100%; } .gallery-intent__statement { grid-template-columns: minmax(0, 1fr); row-gap: var(--space-2); } .gallery-setting__grid, .gallery-arrival__mosaic, .gallery-celebration__grid, .gallery-cultural__composition { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); } .gallery-setting__copy, .gallery-setting__figure, .gallery-arrival__reception, .gallery-arrival__architecture, .gallery-celebration__figure, .gallery-celebration__copy, .gallery-cultural__figure, .gallery-cultural__aside { grid-column: 1; width: 100%; max-width: none; } .gallery-setting__copy { order: 1; } .gallery-setting__figure { order: 2; } .gallery-arrival__architecture { margin-block-start: 0; } .gallery-arrival__reception .media-frame, .gallery-hospitality__figure .media-frame, .gallery-cultural__figure .media-frame { aspect-ratio: 4 / 5; } .gallery-arrival__transition { width: 100%; margin-block-start: var(--space-6); } .gallery-celebration__figure { order: 2; } .gallery-celebration__copy { order: 1; } .gallery-hospitality__figure { margin-block-start: var(--space-6); } .gallery-hospitality__quote { width: 100%; margin-block-start: var(--space-6); } .gallery-hospitality__quote blockquote { font-size: 1.875rem; } .gallery-cultural__aside { gap: var(--space-4); } .gallery-summary__facts { grid-template-columns: minmax(0, 1fr); margin-block-start: var(--space-6); } .gallery-summary__facts > article, .gallery-summary__facts > article:first-child { padding: var(--space-5) 0 0; border-left: 0; border-top: 1px solid var(--color-bronze-line); } .gallery-summary__facts > article:first-child { padding-block-start: var(--space-5); } .gallery-cta { padding-block-end: var(--space-10); } .gallery-cta__copy { width: 100%; } .gallery-cta__actions { align-items: stretch; gap: var(--space-4); } .gallery-cta__actions .button--primary { width: 100%; min-height: 3rem; } .gallery-modal { padding: var(--space-3); } .gallery-modal__dialog { grid-template-columns: minmax(0, 1fr); padding: var(--space-6) var(--space-3) var(--space-3); } .gallery-modal__content img { max-height: calc(100vh - 220px); } .gallery-modal__control { position: static; margin: var(--space-3) auto 0; } .gallery-modal__control--previous { grid-row: 2; grid-column: 1; margin-left: calc(50% - 52px); } .gallery-modal__control--next { grid-row: 2; grid-column: 1; margin-left: calc(50% + 8px); margin-top: -44px; } }
@media (max-width: 389px) { .gallery-hero__copy h1 { font-size: 2.5rem; } .gallery-hero__copy .button--primary { font-size: .625rem; } }
@media (prefers-reduced-motion: reduce) { .gallery-page [data-gallery-reveal] { opacity: 1; transform: none; transition: none; } .gallery-image-button .media-frame::after { transition: none; } }