/* Reference-faithful 3D landscape. Copy and targets are live HTML, never a screenshot UI. */
.asa-features--map { background: #fff; padding-block: clamp(28px, 3.25vw, 54px) 30px; }
.asa-features--map > .asa-container { max-width: 1740px; padding-inline: clamp(18px, 1.2vw, 20px); }
.asa-features.asa-features--map .section-head { max-width: 1450px; margin-bottom: 0; }
.asa-features--map .section-head.reveal { opacity: 1; transform: none; }
.asa-features--map .section-eyebrow { display: inline-flex; align-items: center; gap: 12px; padding: 0; border-radius: 0; background: none; font-size: clamp(.82rem, 1.12vw, 1.15rem); font-weight: 500; line-height: 1.5; margin-bottom: 16px; color: #5c8dcc; }
.asa-features--map .section-eyebrow::before, .asa-features--map .section-eyebrow::after { content: ''; width: 35px; height: 1.5px; background: #8bb5ee; flex-shrink: 0; }
.asa-features--map a.section-eyebrow:hover { background: none; color: #0d67bd; transform: none; }
.asa-features--map .section-title { color: #092658; font-size: clamp(1.75rem, 3vw, 3.2rem); font-weight: 850; line-height: 1.2; margin: 0 auto 14px; width: fit-content; }
.asa-features--map .section-sub { color: #102d60; font-size: clamp(1rem, 1.7vw, 1.65rem); line-height: 1.4; width: fit-content; max-width: 1200px; margin-inline: auto; }

.asa-live-map { --map-accent: var(--primary); --map-cycle: 7s; position: relative; min-width: 0; isolation: isolate; color: #092658; }
.asa-map-toolbar { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 40px; margin-top: 8px; z-index: 3; }
.asa-map-hint { margin: 0; max-width: 70%; color: var(--body); font-size: .76rem; line-height: 1.9; overflow-wrap: anywhere; }
.asa-map-toolbar:not(.has-map-hint) { position: absolute; left: 0; bottom: 8px; min-height: 0; margin: 0; }
.asa-map-toolbar.has-map-hint + .asa-live-map-stage { margin-top: clamp(36px, 3vw, 54px); }
.asa-map-motion { display: inline-flex; flex-shrink: 0; align-items: center; gap: 7px; min-height: 40px; padding: 8px 12px; border: 1px solid #d7e6f6; border-radius: 99px; background: #ffffffd9; color: #375e8b; font: inherit; font-size: .73rem; cursor: pointer; }
.asa-map-motion:hover { color: #0b4c8c; border-color: #85b8ef; }
.asa-map-motion[hidden], .asa-live-map-panel[hidden] { display: none !important; }
.asa-map-play-icon { display: none; }.asa-map-motion[aria-pressed="true"] .asa-map-play-icon { display: block; }.asa-map-motion[aria-pressed="true"] .asa-map-pause-icon { display: none; }
.asa-live-map-stage { position: relative; margin-inline: auto; width: 100%; max-width: 1672px; }
.asa-map-world { width: 100%; height: auto; display: block; overflow: hidden; aspect-ratio: 1672 / 751; }
.asa-map-scene-image { pointer-events: none; }
.asa-map-stations { position: absolute; inset: 0; pointer-events: none; }
.asa-map-station { position: absolute; display: flex; flex-direction: row-reverse; align-items: center; gap: clamp(10px, 1vw, 17px); width: max-content; max-width: 28%; min-height: 48px; padding: 5px 4px; border-radius: 10px; color: #08275b; font-size: clamp(.88rem, 1.38vw, 1.5rem); font-weight: 750; line-height: 1.6; text-decoration: none; pointer-events: auto; transition: color .2s; }
.asa-map-station-text { min-width: 0; overflow-wrap: anywhere; }
.asa-map-station-icon { display: inline-flex; flex: 0 0 auto; color: #0754aa; }
.asa-map-station-icon svg { width: clamp(26px, 2.18vw, 38px); height: auto; stroke-width: 1.75; }
.asa-map-station-dot { display: none; }
.asa-map-station[data-map-slot="0"] { left: 46%; top: 6.6%; }
.asa-map-station[data-map-slot="1"] { left: 74.5%; top: 6.4%; }
.asa-map-station[data-map-slot="2"] { left: 86%; top: -4.4%; }
.asa-map-station[data-map-slot="3"] { left: 3.6%; top: 1.5%; }
.asa-map-station[data-map-slot="4"] { left: 5.8%; top: 72.4%; }
.asa-map-station[data-map-slot="5"] { left: 3.8%; top: 37.4%; }
.asa-map-station:hover, .asa-map-station[aria-selected="true"] { color: #0969c7; }
.asa-map-station[aria-selected="true"] .asa-map-station-text { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 10px; }
.asa-map-station[aria-selected="true"] .asa-map-station-icon { color: #0969c7; }
.asa-map-station[data-map-accent^="#"]:is(:hover,[aria-selected="true"]), .asa-map-station[data-map-accent^="#"][aria-selected="true"] .asa-map-station-icon { color: var(--station-accent); }
.asa-map-station:focus:not(:focus-visible) { outline: none; }
.asa-map-station:focus-visible, .asa-map-motion:focus-visible { outline: 3px solid var(--primary); outline-offset: 4px; }
.asa-live-map-panels { margin-top: 12px; }
.asa-live-map-panel { min-width: 0; scroll-margin-top: 130px; margin: 28px 0 42px; }
.asa-live-map-panel .asa-benefit-content { position: relative; padding: 0; }
.asa-live-map-panel:focus-visible { outline: 2px solid var(--primary); outline-offset: 8px; }
.asa-live-map-panel .asa-benefit-label { background: none; padding: 0; color: #5e83af; margin-bottom: 6px; font-size: .73rem; font-weight: 500; }
.asa-live-map-panel .asa-benefit-title { color: #092658; font-size: clamp(1.24rem, 1.85vw, 2rem); font-weight: 800; line-height: 1.65; margin-bottom: 6px; }
.asa-live-map-panel .asa-benefit-text { color: #102d60; max-width: 960px; font-size: clamp(.94rem, 1.27vw, 1.28rem); line-height: 1.85; }
.asa-live-map-panel .asa-benefit-points { display: flex; flex-wrap: wrap; gap: 12px 30px; margin-top: 20px; }
.asa-live-map-panel .asa-benefit-points li { flex: 1 1 230px; min-width: 0; }
.asa-live-map-panel .asa-benefit-points li::before { width: 5px; height: 5px; border-radius: 50%; box-shadow: none; top: .8em; }
.asa-live-map-panel .asa-benefit-related { margin-top: 20px; padding-top: 0; }
.asa-live-map-panel .asa-benefit-related ul { gap: 8px clamp(18px, 2vw, 36px); }
.asa-live-map-panel .asa-benefit-related a { flex-direction: row-reverse; min-height: 44px; padding: 5px 0; border: 0; border-bottom: 2px solid #61c7bb; border-radius: 0; background: none; color: #0b2c64; font-size: clamp(.78rem, 1.08vw, 1.08rem); gap: 14px; }
.asa-live-map-panel .asa-benefit-related li:nth-child(3n+2) a { border-bottom-color: #f8b93c; }.asa-live-map-panel .asa-benefit-related li:nth-child(3n) a { border-bottom-color: #a26ee6; }
.asa-live-map-panel .asa-benefit-related a span { color: #0649a0; transform: scaleX(-1); }
.asa-live-map-panel .asa-benefit-related a:hover { background: none; color: #0969c7; border-color: #0969c7; }
.asa-live-map-panel .asa-benefit-action { border-radius: 99px; padding: 12px 23px; }
.asa-map-custom-image { display: block; width: min(100%, 440px); height: auto; max-height: 350px; object-fit: contain; margin: 0 auto 26px; }
.asa-live-map.is-map-enhanced .asa-live-map-panel { margin: 0; }
.asa-live-map.is-map-enhanced .asa-live-map-panel .asa-benefit-content { padding-inline-start: 14px; border-inline-start: 2px solid #6f9fde; }
.asa-live-map.is-map-switching .asa-live-map-panel:not([hidden]) { animation: asaMapCopyIn .3s ease-out both; }
.asa-live-map.is-map-switching .asa-map-station[aria-selected="true"] .asa-map-station-icon { animation: asaMapSelect .45s ease-out both; }
@media (min-width: 981px) {
  .asa-live-map.is-map-enhanced:not(.asa-live-map--expanded):not(.asa-live-map--no-art):not(.asa-live-map--asset-error):not([data-map-topic="image"]) .asa-live-map-panels { position: absolute; width: 45%; right: 0; bottom: 8px; z-index: 2; margin: 0; }
  .asa-live-map.is-map-enhanced:not(.asa-live-map--expanded) .asa-live-map-panel .asa-benefit-title, .asa-live-map.is-map-enhanced:not(.asa-live-map--expanded) .asa-live-map-panel .asa-benefit-text { max-width: 67%; margin-inline-end: 0; }
  .asa-live-map.is-map-enhanced:not(.asa-live-map--expanded) .asa-live-map-panel .asa-benefit-related ul { justify-content: space-between; gap: 8px 16px; }
  .asa-live-map.is-map-enhanced:not(.asa-live-map--expanded) .asa-live-map-panel .asa-benefit-related { margin-top: 15px; }
  .asa-live-map.is-map-enhanced:not(.asa-live-map--expanded) .asa-live-map-panel .asa-benefit-content { border: 0; padding: 0; }
  .asa-live-map.is-map-enhanced:not(.asa-live-map--expanded) .asa-live-map-panel .asa-benefit-content::before { content: ''; position: absolute; inset-inline-start: 0; top: 0; width: 2px; height: calc(100% - 64px); background: #6f9fde; }
  .asa-live-map.is-map-enhanced:not(.asa-live-map--expanded) .asa-live-map-panel :is(.asa-benefit-label,.asa-benefit-title,.asa-benefit-text) { padding-inline-start: 14px; }
}
/* Bigger collections/labels become a scrollable rail. Nothing is clipped to preserve the composition. */
.asa-live-map--rail .asa-map-stations, .asa-live-map--no-art .asa-map-stations, .asa-live-map--asset-error .asa-map-stations, .asa-live-map[data-map-topic="image"] .asa-map-stations { position: relative; inset: auto; display: flex; gap: 12px 24px; padding: 10px 6px 16px; overflow-x: auto; overflow-y: hidden; overscroll-behavior-inline: contain; scroll-snap-type: inline proximity; scrollbar-width: thin; pointer-events: auto; }
.asa-live-map--rail .asa-map-station, .asa-live-map--no-art .asa-map-station, .asa-live-map--asset-error .asa-map-station, .asa-live-map[data-map-topic="image"] .asa-map-station { position: relative; left: auto; top: auto; transform: none; max-width: min(370px, 75vw); flex: 0 0 auto; scroll-snap-align: start; }
.asa-live-map--rail .asa-map-leaders { display: none; }
.asa-live-map--rail .asa-live-map-stage { display: flex; flex-direction: column; }.asa-live-map--rail .asa-map-stations { order: -1; }
.asa-live-map[data-map-topic="image"] .asa-map-world, .asa-live-map--asset-error .asa-map-world { display: none; }
.asa-live-map--rail .asa-map-world { margin-bottom: 12px; }
.asa-map-stations.is-map-dragging, .asa-map-stations.is-map-dragging * { cursor: grabbing; user-select: none; }
.asa-live-map--no-art .asa-live-map-panels, .asa-live-map--asset-error .asa-live-map-panels { margin-top: 25px; }

/* Real motion overlays. Luminous blue tracks, glass highlights and document verification. */
.asa-map-track-light { fill: none; stroke: #42a8ff; stroke-width: 2; stroke-linecap: round; opacity: .2; }
.asa-map-track-flow { fill: none; stroke: #d9f8ff; stroke-width: 2; stroke-linecap: round; stroke-dasharray: 4 38; opacity: .8; animation: asaMapFlow var(--map-cycle) linear infinite; }
.asa-map-packet { fill: #fff; stroke: #7ed2ff; stroke-width: 1.5; offset-rotate: 0deg; animation: asaMapPacket var(--map-cycle) linear infinite; animation-delay: var(--packet-delay); }
.asa-map-leaders path { fill: none; stroke: var(--leader-accent); stroke-width: 1; opacity: .9; }.asa-map-leaders circle { fill: var(--leader-accent); }
.asa-map-svg-label { fill: #0d2b60; font-family: inherit; font-size: 16px; font-weight: 700; direction: rtl; unicode-bidi: plaintext; }
.asa-map-svg-label--reports { font-size: 19px; }.asa-map-svg-label--inventory, .asa-map-svg-label--hub { font-size: 14px; }
.asa-map-svg-label--verified { fill: #279f92; font-size: 17px; font-weight: 500; }
.asa-map-screen-label { font-size: 14px; font-weight: 500; fill: #185fbe; }.asa-map-source-heading { font-size: 11px; }
.asa-map-source-label { font-size: 11.5px; font-weight: 500; }.asa-map-source-code { font-size: 11px; font-weight: 400; direction: ltr; unicode-bidi: embed; }
.asa-map-cube-glint, .asa-map-report-glint { stroke-dasharray: 75 550; animation: asaMapGlass var(--map-cycle) ease-in-out infinite; }
.asa-map-report-glint { animation-delay: -2s; }
.asa-map-scan { stroke: #55cfc4; stroke-width: 1.5; opacity: 0; animation: asaMapScan var(--map-cycle) ease-in-out infinite; }
.asa-map-story { opacity: 0; transition: opacity .25s; pointer-events: none; color: var(--map-accent); }
.asa-map-story-outline { fill: #fffffff2; stroke: var(--map-accent); stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.asa-map-story-mark { fill: none; stroke: var(--map-accent); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.asa-map-story-ring { fill: none; stroke: #53bfc3; stroke-width: 1.7; transform-box: fill-box; transform-origin: center; animation: asaMapRing var(--map-cycle) ease-in-out infinite; }
.asa-live-map[data-map-topic="shield"] .asa-map-story--shield, .asa-live-map[data-map-topic="bolt"] .asa-map-story--bolt, .asa-live-map[data-map-topic="check"] .asa-map-story--check, .asa-live-map[data-map-topic="support"] .asa-map-story--support { opacity: 1; }
.asa-live-map.is-map-paused .asa-map-world *, .asa-live-map--static .asa-map-world * { animation-play-state: paused !important; }
.asa-live-map--static .asa-map-world *, body.asa-motion-disabled .asa-live-map *, .asa-live-map[data-map-reduced="1"] * { animation: none !important; transition: none !important; }
@keyframes asaMapFlow { to { stroke-dashoffset: -168; } }
@keyframes asaMapPacket { 0% { offset-distance: 0%; opacity: 0; } 8%,90% { opacity: 1; } 100% { offset-distance: 100%; opacity: 0; } }
@keyframes asaMapGlass { 0%,100% { stroke-dashoffset: 0; opacity: .2; } 50% { stroke-dashoffset: -350; opacity: .9; } }
@keyframes asaMapRing { 0%,100% { transform: scale(1); opacity: .35; } 50% { transform: scale(1.12); opacity: .9; } }
@keyframes asaMapScan { 0%,15% { opacity: 0; transform: translateY(-38px); } 24%,65% { opacity: .65; } 85%,100% { opacity: 0; transform: translateY(38px); } }
@keyframes asaMapCopyIn { from { opacity: .45; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }
@keyframes asaMapSelect { 0% { transform: scale(1); } 45% { transform: scale(1.12); } 100% { transform: scale(1); } }

@media (max-width: 980px) {
  .asa-live-map-panels { margin-top: 20px; }.asa-live-map-panel .asa-benefit-points { gap: 10px 24px; }.asa-live-map-panel .asa-benefit-points li { flex-basis: 100%; }
  .asa-live-map-panel .asa-benefit-related ul { gap: 8px 24px; }
}
/* A tablet-sized scene cannot safely float all six labels. Reserve its rail at first paint. */
@media (max-width: 1240px) {
  .asa-live-map-stage { display: flex; flex-direction: column; }
  .asa-map-stations { position: relative; inset: auto; order: -1; display: flex; gap: 12px 24px; padding: 10px 6px 16px; overflow-x: auto; overflow-y: hidden; overscroll-behavior-inline: contain; scroll-snap-type: inline proximity; scrollbar-width: thin; pointer-events: auto; }
  .asa-map-station { position: relative !important; left: auto !important; top: auto !important; transform: none !important; max-width: min(370px, 75vw); flex: 0 0 auto; scroll-snap-align: start; }
  .asa-map-leaders { display: none; }
  .asa-map-world { margin-bottom: 12px; }
}
@media (max-width: 780px) {
  .asa-features--map { padding-top: 26px; }.asa-features.asa-features--map .section-head { margin-bottom: 14px; }.asa-features--map .section-eyebrow { margin-bottom: 9px; }
  .asa-features--map .section-title { font-size: clamp(1.48rem, 5.5vw, 2.1rem); }.asa-features--map .section-sub { font-size: .96rem; }
  .asa-map-toolbar { margin-top: 0; gap: 10px; }.asa-map-hint { font-size: .73rem; }
  .asa-map-toolbar:not(.has-map-hint) { position: relative; left: auto; bottom: auto; justify-content: flex-end; margin: 6px 0; }
  .asa-live-map-stage { display: flex; flex-direction: column; }.asa-map-world { overflow: hidden; }
  .asa-map-stations { position: relative; inset: auto; order: -1; display: flex; gap: 12px 20px; padding: 8px 6px 16px; margin: 0 -6px 8px; overflow-x: auto; overflow-y: hidden; overscroll-behavior-inline: contain; scroll-snap-type: inline proximity; scrollbar-width: thin; pointer-events: auto; }
  .asa-map-station { position: relative !important; left: auto !important; top: auto !important; transform: none !important; flex: 0 0 auto; max-width: min(300px, 78vw); min-height: 48px; padding: 7px 4px; font-size: .88rem; scroll-snap-align: start; }.asa-map-station-icon svg { width: 27px; }
  .asa-map-leaders { display: none; }.asa-live-map-panel .asa-benefit-text { font-size: .94rem; }.asa-live-map-panel .asa-benefit-title { font-size: 1.25rem; }
  /* Reserve the mobile focus frame before enhancement, rather than growing it after JS loads. */
  .asa-live-map[data-map-topic="sync"] .asa-map-world { aspect-ratio: 1410 / 595; }
  .asa-live-map[data-map-topic="chart"] .asa-map-world, .asa-live-map[data-map-topic="shield"] .asa-map-world { aspect-ratio: 490 / 450; }
  .asa-live-map[data-map-topic="bolt"] .asa-map-world { aspect-ratio: 520 / 290; }
  .asa-live-map[data-map-topic="check"] .asa-map-world { aspect-ratio: 475 / 290; }
  .asa-live-map[data-map-topic="support"] .asa-map-world { aspect-ratio: 550 / 310; }
}
@media (max-width: 410px) { .asa-map-toolbar { flex-wrap: wrap; }.asa-map-motion { margin-inline-start: auto; } }
@media (prefers-reduced-motion: reduce) { .asa-live-map * { animation: none !important; transition: none !important; } }
@media (forced-colors: active) {
  .asa-map-station, .asa-map-motion { color: CanvasText; }.asa-map-station[aria-selected="true"] { color: Highlight; }.asa-map-station:focus-visible, .asa-map-motion:focus-visible { outline-color: Highlight; }
  .asa-map-scene-image { opacity: .25; }.asa-map-world :is(path,circle) { forced-color-adjust: auto; fill: none; stroke: CanvasText; }
  .asa-live-map-panel .asa-benefit-content { border-color: Highlight !important; }.asa-live-map-panel .asa-benefit-related a { color: LinkText; border-color: LinkText; }
}
@media print {
  .asa-map-toolbar, .asa-map-stations { display: none !important; }.asa-map-world { max-width: 700px; margin-inline: auto; }.asa-live-map-panels { position: static !important; width: auto !important; }
  .asa-live-map-panel[hidden] { display: block !important; }.asa-live-map-panel { break-inside: avoid; margin: 25px 0 !important; }.asa-live-map-panel .asa-benefit-content { border: 0 !important; }.asa-live-map-panel .asa-benefit-content::before { display: none !important; }
  .asa-live-map * { animation: none !important; transition: none !important; }
}
