@font-face { font-family: 'Bodoni Moda'; src: url('assets/fonts/bodoni-moda.ttf') format('truetype'); font-style: normal; font-weight: 400; font-display: swap; }
@font-face { font-family: Montserrat; src: url('assets/fonts/montserrat.ttf') format('truetype'); font-style: normal; font-weight: 400; font-display: swap; }

:root { color-scheme: dark; --ivory: #f0dfc0; --gold: #c9ad7a; --navy: #122b47; }
* { box-sizing: border-box; }
body { margin: 0; background: var(--navy); color: var(--ivory); font-family: Montserrat, Arial, sans-serif; }
.site-loader { display: none; }
.is-loading { overflow: hidden; }
.is-loading body { overflow: hidden; }
.is-loading .site-loader { display: grid; }
.site-loader { position: fixed; inset: 0; width: 100vw; z-index: 120; place-items: center; background: #081523; transform: translateY(0); transition: transform 1s cubic-bezier(.76,0,.24,1); }
.site-loader__content { width: min(260px, 64vw); text-align: center; transition: opacity .45s .15s ease, transform .7s ease; }
.site-loader__logo { display: block; width: 100%; height: auto; }
.site-loader__logo path, .site-loader__logo polygon, .site-loader__logo polyline, .site-loader__logo rect, .site-loader__logo line { fill: var(--ivory); fill-opacity: 0; stroke: var(--ivory); stroke-width: 2.5; stroke-dasharray: 1; stroke-dashoffset: 1; animation: logo-trace .65s ease var(--trace-delay, 0s) both, logo-fill .25s ease calc(.55s + var(--trace-delay, 0s)) both; }
.site-loader__slogan { margin: 28px -20px 0; display: flex; justify-content: center; gap: .35em; font: 400 18px/1.5 'Bodoni Moda', serif; letter-spacing: .01em; }
.site-loader__slogan span { overflow: hidden; }
.site-loader__slogan i { display: block; font-style: normal; animation: slogan-arrival .55s cubic-bezier(.19,1,.22,1) .2s both; }
.site-loader__slogan span + span i { animation-delay: .35s; }
.site-loader__line { height: 1px; margin: 28px 12px 0; background: rgb(201 173 122 / .2); overflow: hidden; }
.site-loader__line span { display: block; height: 100%; background: var(--gold); transform: scaleX(var(--load-progress, 0)); transform-origin: left; }
.site-loader__percentage { margin: 16px 0 0; font: 400 32px/1 'Bodoni Moda', serif; font-variant-numeric: tabular-nums; }
.site-loader__percentage span { font: 400 10px Montserrat, sans-serif; margin-left: 4px; color: var(--gold); }
.site-loader__caption { margin: 20px 0 0; font-size: 9px; line-height: 1.8; letter-spacing: .16em; text-transform: uppercase; color: var(--gold); }
.site-loader.is-leaving { transform: translateY(-100%); }
.site-loader.is-leaving .site-loader__content { opacity: 0; transform: translateY(-36px); }
.is-loading:not(.is-revealing) .hero__art,
.is-loading:not(.is-revealing) h1 .word,
.is-loading:not(.is-revealing) .hero__subtitle,
.is-loading:not(.is-revealing) .hero__cta { animation-play-state: paused; }
@keyframes logo-trace { to { stroke-dashoffset: 0; } }
@keyframes logo-fill { to { fill-opacity: 1; } }
@keyframes slogan-arrival { from { transform: translateY(110%); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
  .site-loader__logo path, .site-loader__logo polygon, .site-loader__logo polyline, .site-loader__logo rect, .site-loader__logo line { fill-opacity: 1; stroke-dashoffset: 0; }
}
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; }
a:focus-visible, button:focus-visible { outline: 2px solid var(--ivory); outline-offset: 7px; }
.hero { position: relative; isolation: isolate; width: 100%; aspect-ratio: 16 / 9; overflow: hidden; }
.hero__art, .hero__scrim { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero__art { object-fit: cover; object-position: center; z-index: -2; }
.hero__scrim { z-index: -1; pointer-events: none; background: linear-gradient(110deg, rgb(10 26 46 / .08), transparent 62%); }
.hero__header { position: absolute; top: 2.8%; left: 6.55%; right: 3.65%; display: flex; justify-content: space-between; align-items: flex-start; }
.brand { display: block; color: var(--gold); width: 2%; min-width: 25px; }
.hero__nav { display: flex; align-items: center; gap: 2.8vw; padding-top: .53vw; font-size: 1.08vw; color: #f5ead7; }
.hero__nav a { position: relative; white-space: nowrap; text-shadow: 0 1px 8px rgb(10 26 46 / .35); }
.hero__nav a::after { content: ''; position: absolute; left: 0; bottom: -.4em; height: 1px; width: 100%; background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform .25s ease; }
.hero__nav a:hover::after, .hero__nav a:focus-visible::after { transform: scaleX(1); }
.hero__copy { position: absolute; top: 14%; left: 6.8%; }
h1 { font-family: 'Bodoni Moda', 'Bodoni MT', Didot, serif; font-weight: 400; font-size: 8.12vw; line-height: .78; letter-spacing: -.022em; margin: 0; }
h1 span { display: block; white-space: nowrap; }
h1 span + span { margin-top: .115em; }
.hero__subtitle { text-transform: uppercase; font-size: 1.07vw; letter-spacing: .37em; line-height: 1.5; margin: .98vw 0 0 .13vw; color: #f1e6d4; }
.hero__cta { display: inline-flex; align-items: center; justify-content: space-between; gap: 1.5vw; margin: 1.55vw 0 0 .13vw; padding: .98vw 1.72vw; border: 1px solid rgb(242 223 190 / .9); border-radius: 100px; font-size: 1.15vw; line-height: 1.3; background: rgb(18 43 71 / .16); box-shadow: 0 0 12px rgb(255 194 116 / .06), inset 0 0 8px rgb(255 194 116 / .03); transition: background .3s ease, box-shadow .3s ease; }
.hero__cta svg { width: 1.4vw; height: 1.1vw; flex: none; transition: transform .3s ease; }
.hero__cta:hover, .hero__cta:focus-visible { background: rgb(18 43 71 / .24); box-shadow: 0 0 20px rgb(255 194 116 / .12); }
.hero__cta:hover svg, .hero__cta:focus-visible svg { transform: translateX(3px); }
.hero__edge { position: absolute; left: 2.45%; bottom: 4.4%; display: flex; align-items: center; flex-direction: column; gap: .9vw; }
.hero__edge span { writing-mode: vertical-rl; transform: rotate(180deg); text-transform: uppercase; font-size: .63vw; letter-spacing: .13em; color: #f5ead7; }
.hero__edge i { height: 5vw; width: 1px; background: rgb(240 223 192 / .7); }
.menu-toggle { display: none; }

@media (min-width: 701px) and (max-width: 1000px) {
  .hero__nav { font-size: 12px; gap: 3vw; }
  .hero__subtitle { font-size: 11px; letter-spacing: .23em; }
  .hero__cta { font-size: 12px; min-height: 44px; }
}
@media (max-width: 700px) {
  .hero { aspect-ratio: auto; min-height: 760px; height: 100svh; }
  .hero__art { object-position: 42% center; }
  .hero__scrim { background: linear-gradient(180deg, rgb(10 26 46 / .15), rgb(10 26 46 / .07) 50%, transparent 72%); }
  .hero__header { top: 26px; left: 26px; right: 26px; align-items: center; }
  .brand { width: 27px; }
  .menu-toggle { display: flex; align-items: center; gap: 13px; border: 0; padding: 14px 0 14px 12px; background: transparent; font-size: 12px; cursor: pointer; }
  .menu-toggle__lines { width: 22px; height: 7px; border-top: 1px solid currentColor; border-bottom: 1px solid currentColor; }
  .hero__nav { display: none; position: absolute; top: 65px; right: 0; min-width: 210px; padding: 25px; font-size: 14px; gap: 22px; background: rgb(18 43 71 / .97); border: 1px solid rgb(201 173 122 / .35); }
  .hero__nav.is-open { display: flex; flex-direction: column; align-items: flex-start; z-index: 3; }
  .hero__copy { top: 21%; left: 7%; right: 6%; }
  h1 { font-size: 13.4vw; line-height: .94; letter-spacing: -.025em; }
  h1 span + span { margin-top: .08em; }
  .hero__subtitle { font-size: 11px; letter-spacing: .14em; line-height: 1.8; max-width: 330px; margin: 24px 0 0; text-shadow: 0 1px 7px rgb(10 26 46 / .4); }
  .hero__cta { font-size: clamp(12px, 3.4vw, 14px); padding: 15px 20px; gap: 16px; margin: 26px 0 0; }
  .hero__cta svg { width: 22px; height: 16px; }
  .hero__edge { left: 25px; bottom: 28px; gap: 14px; }
  .hero__edge span { font-size: 8px; }
  .hero__edge i { height: 50px; }
}
@media (max-width: 700px) and (max-height: 700px) { .hero { min-height: 650px; } }
@media (prefers-reduced-motion: reduce) {
  *, *::after { transition: none !important; }
  .hero__cta:hover svg, .hero__cta:focus-visible svg { transform: none; }
}

/* Landing-page extensions: the hero geometry above stays independent. */
html { scroll-behavior: smooth; scrollbar-gutter: stable; }
section[id] { scroll-margin-top: 32px; }
.section { padding: clamp(80px, 8vw, 128px) 6.8%; }
.eyebrow { margin: 0 0 24px; color: var(--gold); text-transform: uppercase; font-size: 11px; line-height: 1.7; letter-spacing: .16em; }
.section h2 { margin: 0; font: 400 clamp(44px, 4.5vw, 80px)/1.08 'Bodoni Moda', serif; letter-spacing: -.02em; }
.section h3 { font: 400 clamp(28px, 2.7vw, 44px)/1.15 'Bodoni Moda', serif; letter-spacing: -.015em; margin: 0; }
.section-heading { display: grid; grid-template-columns: 7fr 4fr; gap: 7%; align-items: end; margin-bottom: 56px; }
.section-intro, .body-copy { font-size: 16px; line-height: 1.8; color: #e0d6c6; max-width: 58ch; margin: 0; }
.section-intro { max-width: 35ch; margin-bottom: 4px; }
.image-note { margin: 0 0 16px; font-size: 11px; color: #c3b69e; letter-spacing: .1em; }
figure { margin: 0; }
.image-window { overflow: hidden; background: #0a1a2e; }
.image-window img { display: block; width: 100%; height: 100%; object-fit: cover; }
figcaption { display: flex; justify-content: space-between; align-items: baseline; gap: 20px; padding-top: 22px; }
figcaption span { font-size: 11px; line-height: 1.7; letter-spacing: .06em; color: #c3b69e; }
.craft { background: #e8dcc8; color: var(--navy); display: grid; grid-template-columns: 6fr 5fr; column-gap: 8.3%; }
.craft .eyebrow { color: #745f3e; }
.craft__image { aspect-ratio: 4 / 5; }
.craft__image img { object-position: right center; }
.craft__story { align-self: center; padding: 24px 0; }
.craft__story .body-copy { color: #394958; margin-top: 28px; }
.text-link { display: inline-flex; align-items: center; gap: 24px; min-height: 44px; font-size: 13px; border-bottom: 1px solid currentColor; transition: opacity .25s ease; }
.text-link:hover { opacity: .75; }
.craft__story .text-link { margin-top: 32px; }
.craft a:focus-visible { outline-color: var(--navy); }
.craft__principles { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; padding-top: 72px; margin-top: 64px; border-top: 1px solid rgb(18 43 71 / .22); }
.craft__principles p { color: #394958; font-size: 15px; line-height: 1.8; margin: 18px 0 0; max-width: 35ch; }
.services__chapters { display: grid; grid-template-columns: 1fr 1fr; gap: 8.3%; margin-top: 72px; }
.service-chapter { border-top: 1px solid rgb(201 173 122 / .4); padding-top: 32px; }
.service-chapter h3 { font-size: clamp(36px, 3vw, 52px); margin-bottom: 24px; }
.service-chapter .eyebrow { margin-bottom: 20px; }
.service-list { list-style: none; margin: 32px 0 0; padding: 0; }
.service-list li { padding: 14px 0; border-bottom: 1px solid rgb(201 173 122 / .18); font-size: 13px; line-height: 1.6; color: #e0d6c6; }
.services__closing { display: flex; justify-content: space-between; align-items: center; gap: 32px; margin-top: 64px; }
.services__closing > span { font: 400 clamp(24px, 2.3vw, 36px)/1.2 'Bodoni Moda', serif; }
.services__culture { display: grid; grid-template-columns: 1fr 1.4fr; gap: 8.3%; border-top: 1px solid rgb(201 173 122 / .25); padding-top: 32px; margin-top: 48px; align-items: center; }
.journeys { background: #e8dcc8; color: var(--navy); }
.journeys .eyebrow { color: #745f3e; }
.journeys .section-intro, .journeys .body-copy { color: #394958; }
.journeys__formats { display: grid; grid-template-columns: 1fr 1fr; gap: 8.3%; margin: 64px 0; }
.journeys__formats h3 { margin-bottom: 24px; }
.destinations { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px 32px; }
.destinations p { font-size: 15px; line-height: 1.8; color: #394958; margin: 16px 0 0; }
.journeys__formulas { margin: 72px 0 40px; }
.formula-row { display: grid; grid-template-columns: 1fr 2fr; gap: 32px; padding: 24px 0; border-top: 1px solid rgb(18 43 71 / .25); }
.formula-row p { font-size: 15px; line-height: 1.8; margin: 0; color: #394958; max-width: 60ch; }
.journeys .outline-button { color: var(--navy); border-color: rgb(18 43 71 / .6); }
.journeys .outline-button:hover, .journeys .outline-button:focus-visible { background: rgb(18 43 71 / .06); box-shadow: none; }
.journeys a:focus-visible { outline-color: var(--navy); }
.outline-button { display: inline-flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 48px; padding: 15px 24px; border: 1px solid rgb(242 223 190 / .8); border-radius: 100px; background: transparent; font: 400 13px/1.4 Montserrat, sans-serif; color: var(--ivory); cursor: pointer; transition: background .3s ease, box-shadow .3s ease; }
.outline-button:hover, .outline-button:focus-visible { background: rgb(240 223 192 / .06); box-shadow: 0 0 18px rgb(255 194 116 / .08); }
.outline-button span { transition: transform .3s ease; }
.outline-button:hover span, .outline-button:focus-visible span { transform: translateX(3px); }
.contact { background: #0a1a2e; display: grid; grid-template-columns: 5fr 6fr; gap: 8.3%; }
.contact__invitation .body-copy { margin-top: 32px; max-width: 38ch; }
.contact__signature { margin-top: 72px; padding-top: 24px; border-top: 1px solid rgb(201 173 122 / .25); }
.contact__signature span { font: 400 28px/1.2 'Bodoni Moda', serif; }
.contact__signature p { font-size: 11px; letter-spacing: .08em; line-height: 1.7; color: #c3b69e; }
.inquiry h3 { font-size: 32px; }
.form-intro { font-size: 13px; line-height: 1.7; color: #c3b69e; margin: 12px 0 32px; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.form-grid label { font-size: 13px; line-height: 1.7; display: block; min-width: 0; }
.form-grid label > span { font-size: 10px; color: #c3b69e; }
.form-grid input, .form-grid select, .form-grid textarea { display: block; width: 100%; min-width: 0; min-height: 48px; margin-top: 8px; padding: 13px 14px; border: 1px solid rgb(185 165 138 / .45); border-radius: 2px; background: #122b47; color: #f1e6d4; font: 400 16px/1.5 Montserrat, sans-serif; }
.form-grid textarea { resize: vertical; min-height: 144px; }
.form-grid input::placeholder, .form-grid textarea::placeholder { color: #b4b8bc; opacity: 1; font-size: 13px; }
.form-grid input:focus-visible, .form-grid select:focus-visible, .form-grid textarea:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }
.form-wide { grid-column: 1 / -1; }
.form-note, .form-status { font-size: 12px; line-height: 1.7; color: #c3b69e; }
.form-note { margin: 24px 0; }
.form-status { margin-bottom: 0; }
.brief-preview { margin-top: 24px; }
.brief-preview label { display: block; font-size: 13px; }
.brief-preview textarea { display: block; width: 100%; margin: 12px 0; padding: 16px; resize: vertical; border: 1px solid rgb(185 165 138 / .45); border-radius: 2px; background: #122b47; color: #f1e6d4; font: 400 16px/1.6 Montserrat, sans-serif; }
.brief-preview textarea:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }
.footer { margin: 0; padding: 40px 6.8%; display: flex; align-items: center; justify-content: space-between; gap: 32px; background: #0a1a2e; border-top: 1px solid rgb(201 173 122 / .2); }
.footer__brand { font: 400 24px/1.2 'Bodoni Moda', serif; }
.footer > span { font-size: 10px; letter-spacing: .08em; color: #c3b69e; }
.footer .text-link { font-size: 11px; }
@media (max-width: 1000px) {
  .craft__principles { grid-template-columns: repeat(2, 1fr); }
  .destinations { grid-template-columns: repeat(2, 1fr); }
  figcaption { align-items: flex-start; flex-direction: column; gap: 10px; }
  .contact { grid-template-columns: 1fr; gap: 56px; }
  .contact__signature { margin-top: 32px; }
  .inquiry { max-width: 760px; }
}
@media (max-width: 700px) {
  .section { padding: 64px 26px; }
  .section h2 { font-size: clamp(32px, 8vw, 44px); line-height: 1.12; }
  .eyebrow { font-size: 10px; margin-bottom: 20px; }
  .section-heading { grid-template-columns: 1fr; gap: 24px; margin-bottom: 40px; }
  .section-intro { max-width: 100%; }
  .craft { grid-template-columns: 1fr; gap: 32px; }
  .craft__image { aspect-ratio: 4 / 3; }
  .craft__story { padding: 0; }
  .craft__principles { grid-template-columns: 1fr; gap: 32px; padding-top: 40px; margin-top: 8px; }
  .craft__principles p { font-size: 16px; max-width: none; }
  .services__chapters { grid-template-columns: 1fr; gap: 48px; margin-top: 40px; }
  .services__culture { grid-template-columns: 1fr; gap: 24px; }
  .journeys__formats { grid-template-columns: 1fr; gap: 40px; margin: 40px 0; }
  .destinations { grid-template-columns: 1fr; gap: 32px; }
  .destinations p, .formula-row p { font-size: 16px; }
  .journeys__formulas { margin-top: 48px; }
  .formula-row { grid-template-columns: 1fr; gap: 16px; }
  .services__closing { align-items: flex-start; flex-direction: column; gap: 24px; margin-top: 40px; }
  .outline-button { gap: 16px; padding: 15px 18px; font-size: 12px; }
  .contact { gap: 40px; }
  .form-grid { grid-template-columns: 1fr; gap: 20px; }
  .form-grid label > span { font-size: 11px; }
  .footer { padding: 32px 26px; flex-direction: column; align-items: flex-start; gap: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .outline-button:hover span, .outline-button:focus-visible span { transform: none; }
}

/* Usability audit: persistent navigation, native disclosure and quiet motion. */
.skip-link { position: fixed; top: 12px; left: 16px; z-index: 100; padding: 14px 20px; background: var(--ivory); color: var(--navy); transform: translateY(-150%); }
.skip-link:focus { transform: translateY(0); }
.hero__header { position: fixed; inset: 0 0 auto; z-index: 30; align-items: center; padding: 14px 6.8%; background: #0a1a2e; border-bottom: 1px solid rgb(201 173 122 / .18); transition: background .35s ease, border-color .35s ease; }
.hero__header.is-top:not(.menu-open) { background: transparent; border-color: transparent; }
.brand { width: 154px; min-width: 0; flex: none; min-height: 44px; display: flex; align-items: center; }
.brand-mark { display: block; width: 100%; aspect-ratio: 1636 / 538; background: url('assets/dream-gate-logo-ivory.png') center / contain no-repeat; }
.hero__nav { padding-top: 0; font-size: clamp(13px, 1.08vw, 18px); gap: 2.2vw; }
.hero__nav a { display: flex; align-items: center; min-height: 44px; }
.hero__nav a::after { bottom: 5px; }
.hero__nav a[aria-current="location"]::after { transform: scaleX(1); }
.hero__nav a[aria-current="location"] { color: var(--ivory); }
.hero__cta { min-height: 48px; }
.menu-backdrop { position: fixed; inset: 0; z-index: 29; background: rgb(10 26 46 / .65); }
body.menu-open { overflow: hidden; }
section[id] { scroll-margin-top: 104px; }
section[tabindex="-1"]:focus, main[tabindex="-1"]:focus { outline: none; }
#top { scroll-margin-top: 0; }
.section-intro, .body-copy { text-wrap: pretty; }
.eyebrow, .image-note, figcaption span, .contact__signature p { font-size: 12px; }
.service-list li { font-size: 14px; }
.form-grid label { font-size: 14px; }
.form-grid label > span { font-size: 12px; }
.form-grid input::placeholder, .form-grid textarea::placeholder { font-size: 14px; }
.footer__brand { width: 166px; flex: none; }
.footer > span, .footer .text-link { font-size: 12px; }
.destinations details { border-top: 1px solid rgb(18 43 71 / .25); padding: 18px 0; }
.destinations summary { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; list-style: none; cursor: pointer; min-height: 44px; font: 400 clamp(24px, 2vw, 32px)/1.25 'Bodoni Moda', serif; }
.destinations summary::-webkit-details-marker { display: none; }
.destinations summary::after { content: '+'; font: 400 20px/1 Montserrat, sans-serif; flex: none; }
.destinations details[open] summary::after { content: '−'; }
.destinations summary:focus-visible { outline: 2px solid var(--navy); outline-offset: 5px; }
.destinations p { margin-top: 12px; }
.reveal.is-revealed { animation: editorial-reveal .8s ease-out both; }
.reveal:focus-within { animation: none; }
.expertise-links { display: grid; grid-template-columns: repeat(2, 1fr); gap: 32px 8.3%; }
.expertise-links a { position: relative; padding: 28px 32px 28px 0; border-top: 1px solid rgb(201 173 122 / .35); }
.expertise-links h3 { font-size: clamp(26px, 2.3vw, 36px); }
.expertise-links p { font-size: 14px; line-height: 1.7; color: #e0d6c6; margin: 16px 0 0; }
.expertise-links a > span { position: absolute; right: 0; top: 32px; font-size: 18px; color: var(--gold); transition: transform .3s ease; }
.expertise-links a:hover > span, .expertise-links a:focus-visible > span { transform: translate(2px, -2px); }
.craft__visual .image-note { padding-top: 16px; margin-bottom: 0; color: #394958; }
.hero__art.is-loaded { animation: photographic-arrival 1s ease-out; }
.hero__art { transform: translateY(var(--scene-y, 0px)) scale(var(--hero-scale, 1.018)); }
@keyframes editorial-reveal { from { opacity: .55; translate: 0 6px; } to { opacity: 1; translate: 0 0; } }
@keyframes photographic-arrival { from { opacity: .7; } to { opacity: 1; } }
@media (max-width: 900px) {
  .hero__header { padding: 14px 24px; }
  .brand { width: 132px; }
  .menu-toggle { display: flex; align-items: center; gap: 13px; min-height: 44px; padding: 12px; border: 1px solid rgb(240 223 192 / .3); border-radius: 100px; background: rgb(10 26 46 / .16); font-size: 13px; cursor: pointer; }
  .menu-toggle__lines { width: 20px; height: 8px; border-top: 1px solid currentColor; border-bottom: 1px solid currentColor; transition: transform .25s ease; }
  .menu-toggle[aria-expanded="true"] .menu-toggle__lines { transform: rotate(90deg); }
  .hero__nav { display: flex; position: absolute; inset: 76px 16px auto; padding: 20px 24px; flex-direction: column; align-items: stretch; gap: 4px; background: #0a1a2e; border: 1px solid rgb(201 173 122 / .3); max-height: calc(100svh - 96px); overflow-y: auto; font-size: 20px; }
  .js .hero__nav { display: none; }
  .js .hero__nav.is-open { display: flex; animation: editorial-reveal .35s ease-out both; }
  .hero__nav a { min-height: 56px; border-bottom: 1px solid rgb(201 173 122 / .15); }
  .hero__nav a::after { width: 36px; bottom: 8px; }
  html:not(.js) .menu-toggle { display: none; }
}
@media (min-width: 701px) and (max-width: 900px) {
  .hero__copy { top: 22%; }
}
@media (max-width: 700px) {
  .hero__subtitle { font-size: 12px; letter-spacing: .1em; }
  .hero__cta { font-size: 13px; }
  .section { padding-top: 56px; padding-bottom: 56px; }
  .destinations { gap: 8px; }
  .form-grid label > span { font-size: 12px; }
  .hero__edge { display: none; }
  .hero__art { transform: none; }
  .expertise-links { grid-template-columns: 1fr; gap: 0; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .hero__art { transform: none; }
  .expertise-links a:hover > span, .expertise-links a:focus-visible > span { transform: none; }
}

/* Approved cinematic chapter direction — native scrolling, progressive enhancement. */
.scroll-progress { position: fixed; top: 0; left: 0; width: 100%; height: 2px; background: var(--gold); z-index: 60; transform: scaleX(0); transform-origin: left; pointer-events: none; }
.scroll-invitation { position: absolute; right: 6.8%; bottom: 36px; display: flex; align-items: center; gap: 20px; font-size: 12px; letter-spacing: .08em; }
.scroll-invitation span { font-size: 24px; animation: invite-scroll 2.4s ease-in-out infinite; }
@keyframes invite-scroll { 50% { transform: translateY(7px); } }
.word-mask { display: inline-block; overflow: clip; vertical-align: bottom; padding-bottom: .12em; margin-bottom: -.12em; }
h1 .word-mask, h1 .word { display: inline-block; margin-top: 0; }
.word { display: inline-block; }
.cinematic .motion-pending .word { transform: translateY(115%); }
.cinematic .motion-visible .word { animation: word-arrival 1.15s cubic-bezier(.19,1,.22,1) var(--word-delay) both; }
@keyframes word-arrival { from { transform: translateY(115%) rotate(3deg); } to { transform: translateY(0) rotate(0); } }
.cinematic .motion-pending:not(.animated-title) { opacity: .15; transform: translateY(28px); }
.cinematic .motion-visible:not(.animated-title) { transition: opacity 1s ease, transform 1s cubic-bezier(.19,1,.22,1); opacity: 1; transform: translateY(0); }
.hero__subtitle { animation: copy-arrival 1.4s .35s both; }
.hero__cta { animation: copy-arrival 1.4s .6s both; }
@keyframes copy-arrival { from { opacity: 0; translate: 0 12px; } to { opacity: 1; translate: 0 0; } }
.story { position: relative; background: #081523; }
.story__scene { position: relative; min-height: 100svh; isolation: isolate; overflow: hidden; display: flex; align-items: center; padding: 120px 6.8%; }
.story__scene img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.story__scene::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgb(6 15 26 / .55), transparent 80%), linear-gradient(0deg, rgb(6 15 26 / .7), transparent 35%); z-index: -1; }
.story__copy { max-width: 850px; }
.story__copy h2 { font: 400 clamp(48px, 6.8vw, 110px)/1.04 'Bodoni Moda', serif; letter-spacing: -.03em; margin: 0 0 30px; }
.story__copy > p:last-child { font-size: 16px; line-height: 1.8; max-width: 40ch; }
.story__rail { position: absolute; left: 6.8%; right: 6.8%; bottom: 65px; display: flex; justify-content: space-between; align-items: center; gap: 30px; font-size: 11px; letter-spacing: .09em; }
.story__rail div { display: flex; gap: 12px; }
.story__rail i { width: 60px; height: 1px; background: rgb(240 223 192 / .3); transition: background .5s; }
.story__rail i.is-active { background: var(--ivory); }
.story__note { position: absolute; bottom: 20px; left: 6.8%; font-size: 10px; letter-spacing: .06em; color: #ded4c1; }
.cinematic .story { height: 300svh; }
.cinematic .story__stage { position: sticky; top: 0; height: 100svh; overflow: hidden; }
.cinematic .story__scene { position: absolute; inset: 0; height: 100%; opacity: var(--scene-opacity, 0); pointer-events: none; }
.cinematic .story__scene:first-child { --scene-opacity: 1; }
.cinematic .story__scene img { transform: scale(var(--scene-scale, 1.06)); }
.cinematic .story__copy { transform: translateY(var(--copy-shift, 0)); opacity: var(--text-opacity, 1); }
.hero__header { align-items: center; }
.menu-toggle { display: flex; align-items: center; gap: 14px; min-height: 44px; padding: 12px 20px; background: rgb(10 26 46 / .18); border: 1px solid rgb(240 223 192 / .4); border-radius: 100px; cursor: pointer; font-size: 13px; position: relative; z-index: 34; }
.menu-toggle__lines { display: block; width: 22px; height: 8px; border-top: 1px solid; border-bottom: 1px solid; transition: transform .5s; }
.menu-toggle[aria-expanded="true"] .menu-toggle__lines { transform: rotate(90deg); }
.hero__header .brand { position: relative; z-index: 34; }
.js .hero__nav, .js .hero__nav.is-open { display: flex; position: fixed; inset: 0; width: 100%; height: 100svh; max-height: none; padding: 110px 9% 40px; border: 0; flex-direction: column; align-items: flex-start; justify-content: center; gap: 8px; background: #0a1a2e; font-size: clamp(36px, 4.5vw, 76px); overflow-y: auto; visibility: hidden; clip-path: inset(0 0 100% 0); transition: clip-path .8s cubic-bezier(.76,0,.24,1), visibility 0s .8s; z-index: 32; animation: none; }
.js .hero__nav::before { content: ''; position: absolute; top: 0; right: 0; bottom: 0; width: 43%; background: linear-gradient(90deg, #0a1a2e, rgb(10 26 46 / .2)), url('assets/passage-960.webp') center / cover; pointer-events: none; }
.js .hero__nav.is-open { visibility: visible; clip-path: inset(0); transition-delay: 0s; }
.js .hero__nav a { font-family: 'Bodoni Moda', serif; font-weight: 400; line-height: 1.1; min-height: 56px; border: 0; position: relative; transform: translateY(35px); opacity: 0; transition: transform .6s ease, opacity .5s ease; }
.js .hero__nav.is-open a { transform: translateY(0); opacity: 1; transition-delay: .2s; }
.js .hero__nav.is-open a:nth-of-type(2) { transition-delay: .27s; }
.js .hero__nav.is-open a:nth-of-type(3) { transition-delay: .34s; }
.js .hero__nav.is-open a:nth-of-type(4) { transition-delay: .41s; }
.js .hero__nav.is-open a:nth-of-type(5) { transition-delay: .48s; }
.js .hero__nav a::after { bottom: 2px; width: 100%; }
.menu-kicker, .menu-footnote { position: relative; font: 400 11px/1.8 Montserrat, sans-serif; letter-spacing: .12em; text-transform: uppercase; color: var(--gold); max-width: 400px; margin: 0 0 24px; }
.menu-footnote { text-transform: none; letter-spacing: .03em; margin: 28px 0 0; }
.experience-cursor { position: fixed; left: 0; top: 0; width: 0; height: 0; z-index: 80; pointer-events: none; display: none; }
.experience-cursor::before { content: ''; position: absolute; left: -14px; top: -14px; width: 28px; height: 28px; border: 1px solid var(--gold); border-radius: 50%; background: rgb(10 26 46 / .14); transition: width .25s, height .25s, left .25s, top .25s, background .25s; }
.experience-cursor span { display: none; position: absolute; transform: translate(-50%,-50%); font-size: 9px; color: var(--ivory); }
.experience-cursor.is-link::before { left: -28px; top: -28px; width: 56px; height: 56px; background: rgb(10 26 46 / .8); }
.experience-cursor.is-link span { display: block; }
.experience-cursor.is-input { visibility: hidden; }
@media (min-width: 901px) and (pointer: fine) and (hover: hover) {
  .has-cursor .experience-cursor { display: block; }
  .has-cursor, .has-cursor a, .has-cursor button, .has-cursor summary { cursor: none; }
}
html:not(.js) .menu-toggle { display: none; }
.contact__details { font-style: normal; margin-top: 28px; }
.contact__details a { display: flex; align-items: center; width: fit-content; min-height: 44px; font-size: 15px; line-height: 1.6; overflow-wrap: anywhere; border-bottom: 1px solid rgb(201 173 122 / .35); transition: color .3s ease; }
.contact__details a:hover { color: var(--gold); }
.contact__details p { margin: 24px 0 0; max-width: 42ch; font-size: 14px; line-height: 1.9; color: #c3b69e; }
@media (max-width: 700px) {
  .cinematic .story { height: 240svh; }
  .story__copy h2 { font-size: clamp(44px, 10vw, 68px); }
  .story__copy > p:last-child { font-size: 14px; max-width: 30ch; }
  .story__scene { padding: 110px 7% 150px; }
  .story__scene img { object-position: 62% center; }
  .story__rail { left: 7%; right: 7%; bottom: 72px; }
  .story__rail > span:first-child { display: none; }
  .story__rail i { width: 40px; }
  .scroll-invitation { bottom: 28px; }
  .js .hero__nav, .js .hero__nav.is-open { padding: 96px 8% 24px; font-size: clamp(32px, 8vw, 48px); gap: 6px; }
  .js .hero__nav::before { width: 100%; opacity: .18; }
  .menu-kicker { font-size: 10px; max-width: 26ch; margin-bottom: 18px; }
  .menu-footnote { margin-top: 18px; }
}
@media (max-height: 550px) { .js .hero__nav, .js .hero__nav.is-open { justify-content: flex-start; font-size: 28px; padding-top: 90px; } .menu-kicker, .menu-footnote { display: none; } }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .story__scene { min-height: 80svh; }
  .story__rail { display: none; }
  .experience-cursor { display: none !important; }
  .motion-pending, .word { opacity: 1 !important; transform: none !important; }
}

/* Scroll choreography: photography and copy travel at different depths. */
.cinematic .hero__copy { transform: translateY(var(--hero-copy-y, 0px)); opacity: var(--hero-copy-opacity, 1); }
.cinematic .scroll-title .word {
  --word-reveal: clamp(0, calc(var(--title-progress, 1) * 1.6 - var(--word-step, 0)), 1);
  animation: none;
  transform: translateY(calc((1 - var(--word-reveal)) * 112%)) rotate(calc((1 - var(--word-reveal)) * 3deg));
}
.cinematic .motion-block.motion-pending:not(.animated-title) { opacity: 0; transform: translateY(48px); }
.cinematic .motion-block.motion-visible:not(.animated-title) { transition-delay: var(--block-delay, 0ms); transition-duration: 1.2s; }
.cinematic .craft__image { clip-path: inset(0 var(--atelier-inset, 0%)); }
.cinematic .craft__image img { transform: translateY(var(--atelier-y, 0%)) scale(var(--atelier-scale, 1.08)); }
.cinematic .story__scene img { transform: translateX(var(--scene-x, 0%)) scale(var(--scene-scale, 1.14)); }
.story__rail i { position: relative; height: 2px; overflow: hidden; }
.story__rail i::after { content: ''; position: absolute; inset: 0; background: var(--gold); transform: scaleX(var(--rail-progress, 0)); transform-origin: left; }
.story__rail i.is-active { background: rgb(240 223 192 / .3); }
@media (max-width: 700px) {
  .cinematic .motion-block.motion-pending:not(.animated-title) { transform: translateY(28px); }
}

/* Clear inquiry routes and editorial program examples. */
.header-actions { display: flex; align-items: center; gap: 20px; }
.header-inquiry { position: relative; z-index: 34; min-height: 44px; min-width: 44px; display: inline-flex; align-items: center; justify-content: center; font-size: 12px; border-bottom: 1px solid rgb(240 223 192 / .55); }
.header-inquiry span + span { display: none; }
.hero__actions { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }
.hero__cta { font-size: clamp(13px, 1.15vw, 16px); background: rgb(8 21 35 / .5); text-shadow: 0 1px 6px rgb(0 0 0 / .3); }
.hero__travel { margin-top: 1.55vw; min-height: 44px; display: inline-flex; align-items: center; gap: 16px; font-size: 13px; border-bottom: 1px solid rgb(240 223 192 / .65); text-shadow: 0 1px 8px #081523; }
.hero__travel span { transition: transform .3s ease; }
.hero__travel:hover span { transform: translate(2px, -2px); }
.hero__subtitle { text-shadow: 0 1px 8px rgb(8 21 35 / .7); }
.scroll-invitation { background: rgb(8 21 35 / .45); border: 1px solid rgb(240 223 192 / .22); border-radius: 100px; padding: 10px 16px; }
.story__link { margin-top: 22px; color: var(--ivory); }
.story__copy > p:not(.eyebrow) { font-size: 16px; line-height: 1.8; max-width: 40ch; }
.cinematic .story__scene.is-active { pointer-events: auto; }
.program-editorial { display: grid; grid-template-columns: 5fr 6fr; gap: 8.3%; align-items: center; margin-top: 80px; padding-top: 64px; border-top: 1px solid rgb(201 173 122 / .25); }
.program-editorial__visual img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; object-position: 38% center; }
.program-editorial__visual figcaption { padding-top: 14px; font-size: 11px; line-height: 1.7; color: #c3b69e; }
.program-editorial__copy h3 { font-size: clamp(30px, 3vw, 46px); margin-bottom: 24px; }
.program-editorial__copy > .body-copy { margin-bottom: 28px; }
.program-disclosure { border-top: 1px solid rgb(201 173 122 / .3); }
.program-disclosure summary, .practical summary, .inquiry__details summary { list-style: none; cursor: pointer; position: relative; padding: 20px 28px 20px 0; font-size: 14px; line-height: 1.6; }
.program-disclosure summary::-webkit-details-marker, .practical summary::-webkit-details-marker, .inquiry__details summary::-webkit-details-marker { display: none; }
.program-disclosure summary::after, .practical summary::after, .inquiry__details summary::after { content: '+'; position: absolute; right: 0; top: 20px; color: var(--gold); }
.program-disclosure[open] summary::after, .practical details[open] summary::after, .inquiry__details[open] summary::after { content: '−'; }
.program-timeline { list-style: none; margin: 0; padding: 0; }
.program-timeline li { display: grid; grid-template-columns: 70px 1fr; gap: 20px; padding: 15px 0; border-top: 1px solid rgb(201 173 122 / .2); font-size: 14px; line-height: 1.6; }
.program-timeline time { font: 400 22px/1.4 'Bodoni Moda', serif; color: var(--gold); }
.program-timeline small { display: block; font-size: 13px; margin-top: 5px; }
.program-disclosure .program-timeline { margin-bottom: 24px; }
.program-note { font-size: 12px; line-height: 1.8; margin: 22px 0; color: #c3b69e; max-width: 65ch; }
.delivery-scope { margin-top: 56px; }
.delivery-scope ul { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px 32px; padding: 0; margin: 0; list-style: none; }
.delivery-scope li { border-bottom: 1px solid rgb(201 173 122 / .2); padding-bottom: 14px; font-size: 14px; line-height: 1.7; }
.delivery-scope > p:last-child { font-size: 12px; line-height: 1.8; color: #c3b69e; margin-top: 22px; }
.excursion-program { margin: 64px 0; padding: 56px 0; display: grid; grid-template-columns: 1fr 1fr; gap: 8.3%; border-block: 1px solid rgb(18 43 71 / .22); }
.excursion-program h3 { margin-bottom: 24px; }
.journeys .program-note { color: #394958; }
.journeys .program-timeline li { border-color: rgb(18 43 71 / .22); }
.journeys .program-timeline time { color: #745f3e; }
.practical { display: grid; grid-template-columns: 5fr 6fr; gap: 8.3%; }
.practical > div > .body-copy { margin-top: 28px; }
.practical__brochure { margin-top: 24px; }
.practical__answers details { border-top: 1px solid rgb(201 173 122 / .3); }
.practical__answers p { font-size: 15px; line-height: 1.8; color: #e0d6c6; margin: 0 0 24px; }
.inquiry__details { border-block: 1px solid rgb(201 173 122 / .25); }
html:not(.js) .inquiry { display: none; }
.inquiry__details summary span { font-size: 11px; color: #c3b69e; }
.inquiry__details > .form-grid { padding: 8px 0 24px; }
.form-grid textarea { min-height: 112px; }
.brief-actions { display: flex; gap: 16px 24px; flex-wrap: wrap; align-items: center; }
.copy-brief { background: none; border: 0; border-bottom: 1px solid currentColor; padding: 0; cursor: pointer; font: 400 13px Montserrat, sans-serif; }
.footer__info { display: flex; flex-direction: column; gap: 14px; max-width: 48ch; font-size: 12px; line-height: 1.7; color: #c3b69e; }
.footer__info > a { overflow-wrap: anywhere; }
.footer__privacy summary { cursor: pointer; padding: 8px 0; }
.footer__privacy p { margin: 12px 0; font-size: 12px; line-height: 1.9; }
.hero__nav a:hover, .header-inquiry:hover { color: #fff3dc; }
@media (max-width: 900px) {
  .header-actions { gap: 14px; }
  .header-inquiry span:first-child { display: none; }
  .header-inquiry span + span { display: inline; }
}
@media (max-width: 700px) {
  .hero__actions { gap: 0 18px; align-items: flex-start; }
  .hero__travel { margin-top: 14px; font-size: 13px; }
  .hero__cta { background: rgb(8 21 35 / .55); }
  .hero__header { padding-inline: 20px; }
  .header-actions { gap: 12px; }
  .hero__header .brand { width: 132px; }
  .menu-toggle { padding-inline: 12px; gap: 10px; }
  .story__copy > p:not(.eyebrow) { font-size: 14px; max-width: 30ch; }
  .story__link { margin-top: 12px; font-size: 12px; }
  .program-editorial, .excursion-program, .practical { grid-template-columns: 1fr; gap: 32px; }
  .program-editorial { margin-top: 48px; padding-top: 40px; }
  .program-editorial__visual img { aspect-ratio: 3 / 2; object-position: center; }
  .delivery-scope ul { grid-template-columns: 1fr 1fr; gap: 16px; }
  .excursion-program { margin: 40px 0; padding: 40px 0; }
  .practical__answers { margin-top: 8px; }
  .footer { align-items: flex-start; }
  .footer__info { max-width: 100%; }
}
@media (max-width: 359px) { .hero__header .brand { width: 110px; } }

/* Real archive references: editorial scale, original production credits. */
.references { background: #0a1a2e; }
.references__archive-label { margin: 20px 0 0; color: var(--gold); font-size: 11px; line-height: 1.8; letter-spacing: .06em; }
.references__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 56px 32px; }
.reference-card { grid-column: span 3; min-width: 0; }
.reference-card--lead { grid-column: span 6; }
.reference-card__open { display: block; }
.reference-card__image { position: relative; overflow: hidden; aspect-ratio: 4 / 3; background: #122b47; }
.reference-card--lead .reference-card__image { aspect-ratio: 3 / 2; }
.reference-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2,.65,.3,1); }
.reference-card__open:hover img, .reference-card__open:focus-visible img { transform: scale(1.025); }
.reference-card__view { position: absolute; bottom: 14px; right: 14px; padding: 10px 14px; background: rgb(10 26 46 / .86); border: 1px solid rgb(240 223 192 / .35); border-radius: 100px; font-size: 11px; line-height: 1.5; }
.reference-card__view span { margin-left: 12px; }
.reference-card__heading { display: flex; justify-content: space-between; gap: 12px; align-items: end; padding-top: 22px; }
.reference-card .eyebrow { font-size: 9px; line-height: 1.8; margin: 0 0 10px; }
.reference-card h3 { margin: 0; font: 400 clamp(25px, 2.2vw, 35px)/1.18 'Bodoni Moda', serif; }
.reference-card--lead h3 { font-size: clamp(32px, 3.2vw, 48px); }
.reference-card__number { color: var(--gold); font: 400 22px/1 'Bodoni Moda', serif; }
.reference-card__meta { margin: 16px 0 12px; font-size: 12px; line-height: 1.9; color: #e0d6c6; }
.reference-card__credit, .reference-source { font-size: 11px; line-height: 1.9; color: #bdb2a1; margin: 0; }
.services__references { margin-top: 20px; }
body.reference-open { overflow: hidden; }
.reference-dialog { width: min(940px, calc(100% - 48px)); max-height: calc(100svh - 48px); padding: 0; border: 1px solid rgb(201 173 122 / .35); background: #0a1a2e; color: var(--ivory); overscroll-behavior: contain; }
.reference-dialog::backdrop { background: rgb(4 12 21 / .88); }
.reference-dialog[open] { animation: reference-arrival .35s ease both; }
.reference-dialog__bar { position: sticky; top: 0; z-index: 1; display: flex; align-items: center; justify-content: space-between; padding: 16px 32px; background: #0a1a2e; border-bottom: 1px solid rgb(201 173 122 / .25); font-size: 11px; letter-spacing: .06em; }
.reference-dialog__close { display: flex; align-items: center; gap: 16px; min-height: 44px; padding: 10px 14px; background: transparent; border: 1px solid rgb(201 173 122 / .35); border-radius: 100px; cursor: pointer; font-size: 12px; }
.reference-dialog__close span { font-size: 22px; line-height: 1; }
.reference-dialog__body { padding: 36px 40px 48px; }
.reference-dialog h3 { font: 400 clamp(34px, 5vw, 56px)/1.1 'Bodoni Moda', serif; margin: 0 0 24px; }
.reference-facts { margin: 28px 0 36px; display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.reference-facts > div:last-child { grid-column: 1 / -1; }
.reference-facts dt { font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: var(--gold); margin-bottom: 10px; }
.reference-facts dd { margin: 0; font-size: 14px; line-height: 1.8; }
.reference-gallery { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; align-items: start; }
.reference-gallery figure { margin: 0; min-width: 0; }
.reference-gallery img { width: 100%; height: auto; display: block; }
.reference-gallery figcaption { display: block; margin-top: 12px; font-size: 11px; line-height: 1.8; color: #bdb2a1; }
.reference-dialog .reference-source { margin: 28px 0; }
.js .hero__nav.is-open a:nth-of-type(6) { transition-delay: .55s; }
html:not(.js) .reference-dialog { display: block; position: static; margin: 40px 0; width: 100%; max-height: none; }
html:not(.js) .reference-dialog__close { display: none; }
@keyframes reference-arrival { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
@media (max-width: 1000px) { .reference-card { grid-column: span 6; } }
@media (max-width: 700px) {
  .references__grid { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .reference-card, .reference-card--lead { grid-column: auto; }
  .reference-card__image, .reference-card--lead .reference-card__image { aspect-ratio: 4 / 3; }
  .reference-card h3, .reference-card--lead h3 { font-size: 32px; }
  .reference-dialog { width: calc(100% - 20px); max-height: calc(100svh - 20px); }
  .reference-dialog__bar { padding: 12px 18px; }
  .reference-dialog__body { padding: 28px 20px 32px; }
  .reference-facts, .reference-gallery { grid-template-columns: 1fr; gap: 24px; }
  .reference-dialog .outline-button { max-width: 100%; white-space: normal; text-align: left; }
}
@media (max-height: 700px) { .js .hero__nav, .js .hero__nav.is-open { justify-content: flex-start; font-size: 32px; } .menu-footnote { display: none; } }
@media (prefers-reduced-motion: reduce) { .reference-dialog[open] { animation: none; } .reference-card__image img { transition: none; } .reference-card__open:hover img, .reference-card__open:focus-visible img { transform: none; } }

/* Four team profiles; real portraits and unconfirmed roles remain pending. */
.references__attribution { max-width: 80ch; border-top: 1px solid rgb(201 173 122 / .25); padding-top: 24px; margin: 48px 0 0; font-size: 12px; line-height: 1.9; color: #bdb2a1; }
.team { background: #e8dcc8; color: #122b47; }
.team .eyebrow, .team__role { color: #665640; }
.team .section-intro { color: #394958; }
.team .text-link { margin-top: 22px; }
.team__members { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px; }
.team__member { min-width: 0; }
.team__portrait { margin: 0 0 24px; position: relative; overflow: hidden; }
.team__portrait img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; }
.team__portrait figcaption { position: absolute; bottom: 14px; left: 14px; right: 14px; display: block; font-size: 10px; line-height: 1.6; letter-spacing: .06em; color: #f0dfc0; }
.team__member h3 { font: 400 clamp(25px, 2.3vw, 36px)/1.2 'Bodoni Moda', serif; margin: 0; }
.team__role { font-size: 12px; line-height: 1.8; margin: 12px 0 0; }
.team__member .text-link { font-size: 11px; }
.team__placeholder-note { margin: 40px 0 0; padding-top: 22px; border-top: 1px solid rgb(18 43 71 / .2); font-size: 11px; line-height: 1.9; color: #665640; }
.team a:focus-visible { outline-color: #122b47; }
.js .hero__nav.is-open a:nth-of-type(7) { transition-delay: .62s; }
@media (max-width: 900px) { .team__members { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 24px; } }
@media (max-width: 480px) { .team__members { grid-template-columns: minmax(0, 1fr); gap: 40px; } .team__member h3 { font-size: 32px; } }
.reference-dialog .reference-inquiry { margin-top: 28px; }
.inquiry__trap { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); } .inquiry__alternative { margin-top: 18px; font-size: 11px; } .inquiry button:disabled { opacity: .6; cursor: wait; } .form-status[data-state="success"] { color: #d7e8c2; } .form-status[data-state="error"] { color: #f1c6a3; }
