.map-background::after { content: ""; position: absolute; inset: 0; background: #020919a6; }
.map-main { flex: 1; width: 100%; padding: 24px max(16px,env(safe-area-inset-right)) 30px max(16px,env(safe-area-inset-left)); }
.map-heading { text-align: center; margin: 0 auto 24px; }
.map-heading h1 { font-size: clamp(1.2rem,4.8vw,2.2rem); font-weight: 400; line-height: 1.5; letter-spacing: .16em; margin: 0; }
.map-heading p { margin: 12px 0 0; letter-spacing: .1em; }
.map-experience { width: min(100%,1600px); margin: auto; }
.map-experience > .map-surface { margin-inline: auto; }
.map-bubble { position: absolute; z-index: 5; padding: 8px 38px 8px 10px; box-sizing: border-box; border: 1px solid #6f9abc; border-radius: 8px; color: #f5f6ff; background: #071329; font-size: .9375rem; line-height: 1.5; box-shadow: 0 4px 18px #0008; }
.map-bubble[hidden],.map-discover[hidden],.map-surface[hidden] { display: none; }
.map-bubble a { display: flex; align-items: center; min-height: 44px; text-decoration: none; overflow-wrap: anywhere; }
.map-bubble a + a { border-top: 1px solid #3c638e; }
.map-bubble-close { position: absolute; top: 0; right: 0; width: 36px; min-height: 44px; color: inherit; background: transparent; border: 0; font-size: 1.4rem; cursor: pointer; }
.helllo-marker.is-suite > span { width: 16px; height: 16px; background: #ef827e; border: 3px double #ffdad7; box-shadow: 0 0 7px 3px #bd585866; }
.helllo-marker.is-read > span { width: 10px; height: 10px; background: #485c75; border: 2px solid #b4c4da; box-shadow: none; }
.helllo-marker:not(.is-read) > span { animation: map-unread 2800ms ease-in-out infinite; }
.helllo-marker.is-new:not(.is-read) > span { animation: map-reveal 950ms ease-in-out 2, map-unread 2800ms ease-in-out 1900ms infinite; }
@keyframes map-unread { 0%,100% { opacity: 1; filter: brightness(1); } 50% { opacity: .65; filter: brightness(.85); } }
@keyframes map-reveal { 50% { box-shadow: 0 0 12px 5px #fff3; } }
.map-instruction,.map-promise,.map-news,.map-storage-note { text-align: center; }
.map-instruction { letter-spacing: .1em; font-size: .9rem; margin: 22px 0 10px; }
.map-promise { font-size: .9375rem; letter-spacing: .07em; margin: 0; }
.map-news:empty,.map-storage-note:empty { display: none; }
.map-news { margin: 16px 0 0; }
.map-storage-note { color: #c3cce2; font-size: .9375rem; }
.map-discover { display: block; margin: 10px auto; min-height: 44px; padding: 8px 16px; background: #071329; color: inherit; border: 1px solid #6387ae; border-radius: 6px; cursor: pointer; }
.map-list { width: min(100%,760px); margin: 20px auto 0; }
.map-list summary { width: fit-content; margin: auto; cursor: pointer; min-height: 44px; padding: 10px; text-decoration: underline; text-underline-offset: .25em; }
.map-list ul { padding: 0; margin-top: 12px; list-style: none; background: #020919e8; border-radius: 6px; }
.map-list li { padding: 10px; }
.map-list li + li { border-top: 1px solid #304665; }
.map-list p { margin: 4px 0; }
.map-list a { display: inline-flex; align-items: center; min-height: 44px; }
.map-item-status { color: #cad6e9; font-size: .9375rem; }
@media (min-width:64rem) { .map-main { padding-inline: 40px; } }
@media (prefers-reduced-motion:reduce) { .helllo-marker:not(.is-read) > span, .helllo-marker.is-new:not(.is-read) > span { animation: none; } }

/* La liste reste lisible par les aides techniques et se révèle au focus clavier. */
.map-ready .map-list:not(:focus-within) { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
