/* V19 / L'Atlas des lieux. The menu unfolds a compact, luminous table rather
   than loading a second gallery. Its documents always retain their real size. */
.menu-layer.atlas-menu {
  --atlas-ink: #193c35;
  --atlas-muted: #506b61;
  --atlas-rule: #809b863f;
  --atlas-ease: cubic-bezier(.21,.72,.23,1);
  display: block;
  padding: 0;
  color: var(--atlas-ink);
  background:
    radial-gradient(ellipse at 34% 8%, #fffffff2, #ffffff00 42%),
    linear-gradient(120deg, #f4f2e9 12%, #f2f6ee 52%, #dbe7db 100%);
  backdrop-filter: none;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-color: #849e8b #edf1e7;
  isolation: isolate;
}
.atlas-menu .atlas-shell {
  width: min(1560px, 100%);
  min-height: 100%;
  margin: 0 auto;
  padding: 32px clamp(24px, 4.2vw, 76px) 24px;
  display: flex;
  flex-direction: column;
}
.atlas-menu .menu-close {
  position: fixed;
  top: 20px;
  right: clamp(24px, 4.2vw, 76px);
  z-index: 4;
  min-height: 48px;
  padding: 0 2px 0 13px;
  gap: 20px;
  font: 400 13px/1.2 var(--sans);
  color: var(--atlas-ink);
  background: #f1f5eceb;
  border-radius: 2px;
  backdrop-filter: blur(8px);
}
.atlas-menu .menu-close > span { font-size: 31px; font-weight: 300; }
.atlas-menu .atlas-head {
  display: flex;
  justify-content: space-between;
  gap: 32px;
  padding-right: 160px;
  min-height: 68px;
  flex-shrink: 0;
}
.atlas-menu .atlas-studio { font-size: 14px; letter-spacing: -.035em; line-height: 1.4; }
.atlas-menu .atlas-studio > span { display: block; margin-top: 3px; font-size: 10px; letter-spacing: .025em; color: var(--atlas-muted); }
.atlas-menu .atlas-edition { font-size: 10px; line-height: 1.8; letter-spacing: .025em; color: var(--atlas-muted); padding-top: 2px; }
.atlas-menu .atlas-layout {
  display: grid;
  grid-template-columns: minmax(210px, .77fr) minmax(0, 1.8fr);
  gap: clamp(34px, 6.5vw, 110px);
  align-items: start;
  width: 100%;
  margin-top: 16px;
  margin-bottom: auto;
}
.atlas-menu .atlas-wayfinding { min-width: 0; position: relative; padding-top: 10px; }
.atlas-menu .atlas-kicker { display: block; font-size: 10px; line-height: 1.7; letter-spacing: .08em; color: var(--atlas-muted); }
.atlas-menu .atlas-wayfinding h2 {
  margin-top: 15px;
  font: 400 clamp(55px, 5.8vw, 88px)/.92 var(--serif);
  letter-spacing: -.032em;
}
.atlas-menu .atlas-wayfinding h2 em { color: #467062; }
.atlas-menu .atlas-intro { margin-top: 22px; font-size: 12px; line-height: 1.7; color: var(--atlas-muted); }
/* Specificity deliberately replaces the earlier full-screen serif list. */
.menu-layer.atlas-menu nav.atlas-primary { width: 100%; margin-top: 33px; flex-shrink: 0; }
.menu-layer.atlas-menu nav.atlas-primary > a.atlas-route {
  display: grid;
  grid-template-columns: 26px minmax(0, 1fr) 25px;
  align-items: center;
  justify-content: initial;
  gap: 8px;
  min-height: 65px;
  padding: 11px 0 12px;
  border-bottom: 1px solid var(--atlas-rule);
  font: 400 14px/1.35 var(--sans);
  transition: color 190ms ease;
  position: relative;
}
.menu-layer.atlas-menu nav.atlas-primary > a:first-child { border-top: 1px solid var(--atlas-rule); }
.atlas-menu .atlas-route-number { font-family: var(--mono); font-size: 9px; line-height: 1.4; align-self: start; padding-top: 3px; color: #6e8579; }
.atlas-menu .atlas-route-copy { display: flex; flex-direction: column; gap: 5px; }
.atlas-menu .atlas-route-copy strong { font-size: 19px; line-height: 1.1; letter-spacing: -.035em; font-weight: 400; }
.atlas-menu .atlas-route-copy > span { font-size: 10px; line-height: 1.4; color: var(--atlas-muted); }
.menu-layer.atlas-menu nav.atlas-primary a i { font: 400 21px/1 var(--sans); justify-self: end; transition: transform 240ms var(--atlas-ease); }
.menu-layer.atlas-menu nav.atlas-primary a:hover i { transform: translate(3px,-3px); }
.menu-layer.atlas-menu nav.atlas-primary a:hover, .menu-layer.atlas-menu nav.atlas-primary a[aria-current="page"] { color: #8d4c35; }
.menu-layer.atlas-menu nav.atlas-primary a[aria-current="page"]::before { content: ''; position: absolute; left: -14px; width: 3px; height: 16px; background: #a76950; }
.atlas-menu .atlas-scene { min-width: 0; position: relative; overflow: visible; }
.atlas-menu .atlas-scene-heading { display: flex; gap: 20px; justify-content: space-between; align-items: baseline; position: relative; z-index: 1; padding: 0 0 18px; }
.atlas-menu .atlas-scene-heading h3 { font-size: 12px; font-weight: 400; line-height: 1.5; }
.atlas-menu .atlas-scene-heading > span { font-size: 9px; line-height: 1.5; color: var(--atlas-muted); text-align: right; }
.atlas-menu .atlas-fold { position: absolute; inset: 18px -35px 38px -18px; pointer-events: none; z-index: -1; opacity: .72; }
.atlas-menu .atlas-fold svg { display: block; width: 100%; height: 100%; overflow: visible; }
.atlas-menu .atlas-fold-body { fill: none; stroke: #d9e3d5; stroke-width: 86px; }
.atlas-menu .atlas-fold-edge { fill: none; stroke: #fafcf4; stroke-width: 2px; }
.atlas-menu .atlas-fold-cut { fill: none; stroke: #acbb9f; stroke-width: 15px; }
.atlas-menu .atlas-board {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: clamp(10px, 1.3vw, 21px);
  row-gap: 32px;
  position: relative;
  align-items: start;
  overflow: visible;
}
.atlas-menu .atlas-place { min-width: 0; position: relative; --atlas-photo-x: 5px; --atlas-photo-y: 4px; --atlas-drawing-x: -8px; --atlas-drawing-y: -4px; }
.atlas-menu .atlas-place-1 { grid-column: 1 / 8; grid-row: 1; }
.atlas-menu .atlas-place-2 { grid-column: 9 / 13; grid-row: 1 / 3; margin-top: 38px; --atlas-photo-x: 0px; --atlas-photo-y: 5px; --atlas-drawing-x: -7px; --atlas-drawing-y: -6px; }
.atlas-menu .atlas-place-3 { grid-column: 2 / 8; grid-row: 2; --atlas-photo-x: 4px; --atlas-photo-y: -4px; --atlas-drawing-x: -7px; --atlas-drawing-y: 5px; }
.atlas-menu .atlas-place-heading { display: flex; gap: 13px; align-items: baseline; margin-bottom: 11px; }
.atlas-menu .atlas-place-heading > span:first-child { font-family: var(--mono); font-size: 9px; line-height: 1.3; color: #6d8275; }
.atlas-menu .atlas-place-heading h4 { font: 400 26px/.95 var(--serif); letter-spacing: -.025em; }
.atlas-menu .atlas-place-rule { height: 1px; flex: 1; margin-left: 8px; background: var(--atlas-rule); }
.atlas-menu .atlas-documents { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); gap: 22px; align-items: end; overflow: visible; position: relative; }
.atlas-menu .atlas-place-link { display: block; min-width: 0; position: relative; z-index: 1; min-height: 44px; }
.atlas-menu .atlas-photo {
  width: 100%;
  aspect-ratio: var(--atlas-photo-ratio);
  position: relative;
  overflow: visible;
  transform: translate(0,0);
  box-shadow: 0 13px 22px -12px #3a514157, 0 4px 7px -2px #3a514123, 0 0 0 1px #ffffffb8;
  transition: transform 360ms var(--atlas-ease), box-shadow 360ms var(--atlas-ease);
}
.atlas-menu .atlas-photo > img { display: block; width: 100%; height: 100%; object-fit: cover; filter: none; transform: none; aspect-ratio: var(--atlas-photo-ratio); }
.atlas-menu .atlas-drawing {
  margin: 0;
  min-width: 0;
  position: relative;
  z-index: 1;
  transform: translate(0,0);
  transition: transform 360ms var(--atlas-ease);
}
.atlas-menu .atlas-drawing > img { aspect-ratio: 4 / 3; height: auto; width: 100%; object-fit: contain; background: #f8faf2; box-shadow: 0 8px 16px -11px #3a514140, 0 0 0 1px #617d5a12; transition: box-shadow 360ms var(--atlas-ease); }
.atlas-menu .atlas-drawing figcaption { margin-top: 7px; font-size: 9px; line-height: 1.45; color: var(--atlas-muted); }
.atlas-menu .atlas-document-thread { position: absolute; left: 48%; right: 4%; top: 40%; border-top: 1px solid #ad8d6e4f; pointer-events: none; z-index: 0; transition: border-color 360ms var(--atlas-ease); }
.atlas-menu .atlas-place-1 .atlas-drawing { padding-top: 25px; }
.atlas-menu .atlas-place-2 .atlas-documents { display: block; }
.atlas-menu .atlas-place-2 .atlas-place-link { width: 65%; margin-left: 3%; }
.atlas-menu .atlas-place-2 .atlas-drawing { width: 83%; margin-left: 17%; margin-top: 20px; }
.atlas-menu .atlas-place-2 .atlas-document-thread { left: 33%; right: 36%; top: 43%; height: 29%; border-top: 0; border-right: 1px solid #ad8d6e4f; }
.atlas-menu .atlas-place-3 .atlas-documents { grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); align-items: start; }
.atlas-menu .atlas-place-3 .atlas-drawing { padding-top: 25px; }
.atlas-menu .atlas-place-3 .atlas-document-thread { transform: translateY(7px); }
.atlas-menu .atlas-place-caption { margin-top: 13px; position: relative; z-index: 1; }
.atlas-menu .atlas-place-caption h3 { font: 400 16px/1.3 var(--sans); letter-spacing: -.025em; }
.atlas-menu .atlas-project-link { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; margin-top: -9px; padding: 8px 0; max-width: 100%; }
.atlas-menu .atlas-project-link i { font: 400 18px/1 var(--sans); transition: transform 240ms var(--atlas-ease); flex-shrink: 0; }
.atlas-menu .atlas-project-link:hover i { transform: translate(3px,-3px); }
.atlas-menu .atlas-project-link:hover { color: #8d4c35; }
.atlas-menu .atlas-place-caption > span { display: block; font-size: 10px; line-height: 1.5; color: var(--atlas-muted); margin-top: -2px; }
.atlas-menu .atlas-map-note { margin: 25px 0 0; display: flex; align-items: baseline; gap: 12px; font-size: 10px; line-height: 1.6; color: var(--atlas-muted); }
.atlas-menu .atlas-map-note-rule { display: block; width: 28px; height: 1px; flex-shrink: 0; background: #a77d6070; align-self: center; }
.atlas-menu .atlas-foot { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; column-gap: 24px; row-gap: 12px; border-top: 1px solid var(--atlas-rule); margin-top: 34px; padding-top: 18px; color: var(--atlas-muted); font-size: 10px; line-height: 1.5; }
.atlas-menu .atlas-foot > span:first-child { color: var(--atlas-ink); }
.atlas-menu .atlas-foot-note { display: flex; align-items: center; gap: 18px; }
.atlas-menu .atlas-foot-note i { font-size: 17px; font-style: normal; }
.atlas-menu .atlas-place.is-designated .atlas-photo { transform: translate(var(--atlas-photo-x),var(--atlas-photo-y)); box-shadow: 0 18px 31px -13px #36584161, 0 5px 8px -3px #37573e29, 0 0 0 1px #fffffff2; }
.atlas-menu .atlas-place.is-designated .atlas-drawing { transform: translate(var(--atlas-drawing-x),var(--atlas-drawing-y)); }
.atlas-menu .atlas-place.is-designated .atlas-drawing > img { box-shadow: 0 9px 20px -10px #36584145, 0 0 0 1px #90ac794d; }
.atlas-menu .atlas-place.is-designated .atlas-document-thread { border-color: #a86847a8; }
.atlas-menu .atlas-place.is-adjacent .atlas-drawing > img { box-shadow: 0 8px 16px -11px #3a514140, 0 0 0 1px #a9bb8d35; }
.atlas-menu a:focus-visible, .atlas-menu button:focus-visible { outline: 2px solid #315e4e; outline-offset: 5px; border-radius: 1px; }
.atlas-menu .atlas-place-link:focus-visible { outline-offset: 7px; }
@media (hover:hover) and (pointer:fine) {
  .atlas-menu:not([data-atlas-enhanced="true"]) .atlas-place:has(.atlas-place-link:hover) .atlas-photo,
  .atlas-menu:not([data-atlas-enhanced="true"]) .atlas-place:has(.atlas-project-link:hover) .atlas-photo { transform: translate(var(--atlas-photo-x),var(--atlas-photo-y)); }
  .atlas-menu:not([data-atlas-enhanced="true"]) .atlas-place:has(.atlas-place-link:hover) .atlas-drawing,
  .atlas-menu:not([data-atlas-enhanced="true"]) .atlas-place:has(.atlas-project-link:hover) .atlas-drawing { transform: translate(var(--atlas-drawing-x),var(--atlas-drawing-y)); }
}
.atlas-menu:not([data-atlas-enhanced="true"]) .atlas-place:focus-within .atlas-photo { transform: translate(var(--atlas-photo-x),var(--atlas-photo-y)); }
.atlas-menu:not([data-atlas-enhanced="true"]) .atlas-place:focus-within .atlas-drawing { transform: translate(var(--atlas-drawing-x),var(--atlas-drawing-y)); }
/* Arrival never delays a link and never hides a document. Suspended transitions
   stay intact: the controller pauses their current WAAPI pose before capture. */
.atlas-menu[data-atlas-open="true"] .atlas-wayfinding { animation: atlas-wayfinding-arrive 420ms var(--atlas-ease) both; }
.atlas-menu[data-atlas-open="true"] .atlas-board { animation: atlas-board-arrive 460ms var(--atlas-ease) both; }
.atlas-menu[data-atlas-suspended="true"] * { animation-play-state: paused; }
@keyframes atlas-wayfinding-arrive { from { transform: translateY(9px); } to { transform: translateY(0); } }
@keyframes atlas-board-arrive { from { transform: translate(11px,7px); } to { transform: translate(0,0); } }
@media (min-width: 1600px) { .atlas-menu .menu-close { right: max(76px, calc((100vw - 1408px)/2)); } }
@media (min-width: 781px) and (max-width: 1100px) {
  .atlas-menu .atlas-shell { padding: 28px 30px 22px; }
  .atlas-menu .atlas-layout { grid-template-columns: minmax(205px,.7fr) minmax(0,1.8fr); gap: 36px; }
  .atlas-menu .atlas-wayfinding h2 { font-size: 60px; }
  .atlas-menu .atlas-scene-heading { display: block; }
  .atlas-menu .atlas-scene-heading > span { display: block; margin-top: 6px; text-align: left; }
  .atlas-menu .atlas-documents { gap: 22px; }
  .atlas-menu .atlas-place-caption h3 { font-size: 14px; }
  .atlas-menu .atlas-board { column-gap: 11px; row-gap: 25px; }
  .atlas-menu .atlas-place-2 { margin-top: 32px; }
  .atlas-menu .atlas-place-2 .atlas-place-link { width: 70%; }
  .atlas-menu .atlas-foot { margin-top: 30px; }
}
@media (min-width: 781px) and (max-height: 720px) {
  .atlas-menu .atlas-shell { padding-top: 24px; }
  .atlas-menu .atlas-head { min-height: 51px; }
  .atlas-menu .atlas-layout { margin-top: 6px; }
  .atlas-menu .atlas-wayfinding { padding-top: 0; }
  .atlas-menu .atlas-wayfinding h2 { font-size: clamp(50px,5vw,74px); }
  .atlas-menu .atlas-intro { margin-top: 17px; }
  .menu-layer.atlas-menu nav.atlas-primary { margin-top: 22px; }
  .menu-layer.atlas-menu nav.atlas-primary > a.atlas-route { min-height: 58px; padding-top: 9px; padding-bottom: 9px; }
  .atlas-menu .atlas-foot { margin-top: 25px; }
}
@media (max-width: 780px) {
  .atlas-menu .atlas-shell { padding: 23px 23px 26px; }
  .atlas-menu .menu-close { top: 13px; right: 21px; gap: 16px; min-height: 44px; }
  .atlas-menu .atlas-head { min-height: 64px; padding-right: 120px; gap: 15px; }
  .atlas-menu .atlas-edition { display: none; }
  .atlas-menu .atlas-layout { display: block; margin-top: 0; }
  .atlas-menu .atlas-wayfinding { display: grid; grid-template-columns: 1fr 1fr; column-gap: 25px; padding-top: 0; }
  .atlas-menu .atlas-kicker { grid-column: 1 / -1; }
  .atlas-menu .atlas-wayfinding h2 { font-size: clamp(46px,8.7vw,65px); margin-top: 12px; }
  .atlas-menu .atlas-intro { margin-top: 15px; align-self: end; font-size: 11px; line-height: 1.65; }
  .menu-layer.atlas-menu nav.atlas-primary { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; gap: 0 23px; margin-top: 25px; }
  .menu-layer.atlas-menu nav.atlas-primary > a.atlas-route { min-height: 60px; grid-template-columns: 19px minmax(0,1fr) 16px; gap: 5px; padding: 10px 0; }
  .menu-layer.atlas-menu nav.atlas-primary > a:nth-child(2) { border-top: 1px solid var(--atlas-rule); }
  .atlas-menu .atlas-route-copy strong { font-size: 18px; }
  .atlas-menu .atlas-route-copy > span { font-size: 9px; }
  .menu-layer.atlas-menu nav.atlas-primary a i { font-size: 19px; }
  .menu-layer.atlas-menu nav.atlas-primary a[aria-current="page"]::before { left: -8px; width: 2px; height: 14px; }
  .atlas-menu .atlas-scene { margin-top: 30px; }
  .atlas-menu .atlas-scene-heading { padding-bottom: 18px; gap: 18px; }
  .atlas-menu .atlas-scene-heading > span { font-size: 8px; max-width: 120px; }
  .atlas-menu .atlas-board { display: block; }
  .atlas-menu .atlas-place { margin: 0 0 28px; }
  .atlas-menu .atlas-place-heading h4 { font-size: 25px; }
  .atlas-menu .atlas-place-heading { margin-bottom: 10px; }
  .atlas-menu .atlas-place-1 { width: 95%; }
  .atlas-menu .atlas-place-2 { width: 87%; margin-left: 13%; }
  .atlas-menu .atlas-place-3 { width: 95%; margin-bottom: 0; }
  .atlas-menu .atlas-documents { gap: 22px; grid-template-columns: minmax(0,1.5fr) minmax(0,1fr); }
  .atlas-menu .atlas-place-2 .atlas-documents { display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1.2fr); gap: 22px; align-items: end; }
  .atlas-menu .atlas-place-2 .atlas-place-link { width: 100%; margin: 0; }
  .atlas-menu .atlas-place-2 .atlas-drawing { width: 100%; margin: 0; padding-top: 0; }
  .atlas-menu .atlas-place-2 .atlas-document-thread { left: 35%; right: 16%; top: 41%; height: 0; border-right: 0; border-top: 1px solid #ad8d6e4f; }
  .atlas-menu .atlas-place-3 .atlas-documents { grid-template-columns: minmax(0,1.6fr) minmax(0,1fr); }
  .atlas-menu .atlas-place-caption h3 { font-size: 16px; }
  .atlas-menu .atlas-place-caption { margin-top: 10px; }
  .atlas-menu .atlas-drawing figcaption { font-size: 9px; }
  .atlas-menu .atlas-map-note { margin-top: 26px; font-size: 10px; }
  .atlas-menu .atlas-fold { inset: 25px -6px 15px -15px; opacity: .6; }
  .atlas-menu .atlas-foot { margin-top: 25px; padding-top: 16px; justify-content: initial; }
  .atlas-menu .atlas-foot > span:nth-child(2) { margin-left: auto; }
  .atlas-menu .atlas-foot-note { flex-basis: 100%; }
}
@media (max-width: 360px) {
  .atlas-menu .atlas-shell { padding-left: 18px; padding-right: 18px; }
  .atlas-menu .atlas-wayfinding { column-gap: 17px; }
  .atlas-menu .atlas-wayfinding h2 { font-size: 43px; }
  .atlas-menu .atlas-intro { font-size: 10px; }
  .menu-layer.atlas-menu nav.atlas-primary { column-gap: 17px; }
  .atlas-menu .atlas-documents, .atlas-menu .atlas-place-2 .atlas-documents { gap: 22px; }
  .atlas-menu .atlas-place-caption h3 { font-size: 15px; }
}
@media (prefers-reduced-motion: reduce) {
  .atlas-menu *, .atlas-menu *::before, .atlas-menu *::after { animation: none !important; transition: none !important; }
  .atlas-menu .atlas-photo, .atlas-menu .atlas-drawing, .atlas-menu .atlas-board, .atlas-menu .atlas-wayfinding { transform: none !important; }
}

/* With scripting disabled, keep native destinations beside the fixed header.
   The noscript navigation never participates in the enhanced Atlas. */
.atlas-native-nav { display: none; }
body:has(.atlas-native-nav) .menu-toggle { display: none; }
@media (max-width: 680px) {
  .atlas-native-nav {
    position: fixed;
    z-index: 26;
    top: 78px;
    left: var(--space);
    right: var(--space);
    display: flex;
    justify-content: space-between;
    gap: 8px;
    min-height: 44px;
    background: #f4f6f1;
    color: #193a36;
    border-top: 1px solid #315e4e40;
    border-bottom: 1px solid #315e4e40;
  }
  .atlas-native-nav > a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    min-height: 44px;
    padding: 6px 3px;
    font-size: 12px;
    line-height: 1.5;
  }
  .atlas-native-nav > a[aria-current="page"] { font-weight: 700; }
  .atlas-native-nav > a:focus-visible { outline: 2px solid #315e4e; outline-offset: 3px; }
  body:has(.atlas-native-nav) main { padding-top: 54px; }
  body:has(.atlas-native-nav) main [id] { scroll-margin-top: 146px; }
  body:has(.atlas-native-nav) .project-chapters { top: 134px; }
  body:has(.atlas-native-nav) [data-project-chapter] { scroll-margin-top: 212px; }
  body.bespoke-home:has(.atlas-native-nav) .scene-caption { top: 130px; }
  body.bespoke-home:has(.atlas-native-nav) .journey-chapter .passage-copy .passage-question { top: max(166px, 18%); }
}
