/* Offline decoration shares the login palette; the form never depends on this scene. */
.access-map-scene { position: relative; pointer-events: auto; }
.access-map-canvas { width: 100%; min-height: 280px; }
.access-map-canvas svg { display: block; width: 100%; height: auto; overflow: visible; }
.access-map-fallback { display: grid; place-items: center; min-height: 320px; font-size: 24px; letter-spacing: .12em; color: var(--gd-ink-soft); }
.access-map-land { fill: #dfe8dc; stroke: #c5d4c0; stroke-width: .8; }
.access-map-language { fill: #3b5a46; }
.access-map-language text { font-weight: 550; paint-order: stroke; stroke: var(--gd-paper); stroke-width: 4px; stroke-linejoin: round; }
.access-map-language text[direction='rtl'] { font-family: 'Geeza Pro', 'Noto Naskh Arabic', 'Segoe UI', sans-serif; }
.access-map-language text[lang='hi'] { font-family: 'Kohinoor Devanagari', 'Nirmala UI', sans-serif; }
.access-map-leader { stroke: #a5b99e; stroke-width: .7; fill: none; opacity: .6; }
.access-map-line, .access-map-stream { fill: none; stroke-linecap: round; }
.access-map-line { stroke: #b4c9ad; stroke-width: 1; opacity: .24; }
.access-map-stream { stroke: #698c62; stroke-width: 2.3; stroke-dasharray: 75 925; stroke-dashoffset: 1000; opacity: 0; animation: access-map-flow 12s linear infinite; animation-delay: var(--map-delay, 0s); animation-play-state: paused; }
.access-map-scene[data-motion='running'] .access-map-stream { animation-play-state: running; }
.access-map-scene[data-motion='paused'] .access-map-stream { opacity: 0; }
.access-map-scene[data-reduced='true'] .access-map-stream { display: none; }
.access-map-hub { fill: #285b40; }
.access-map-hub-ring { fill: var(--gd-paper); stroke: #547f55; stroke-width: 1.5; }
.access-map-hub text { font-size: 21px; font-weight: 650; paint-order: stroke; stroke: var(--gd-paper); stroke-width: 5px; stroke-linejoin: round; }
.access-map-caption { margin: 24px 52px 0; text-align: center; color: var(--gd-ink-soft); font-size: 18px; line-height: 1.6; }
.access-map-motion { position: absolute; inset-inline-end: 0; bottom: -6px; display: grid; place-items: center; width: 44px; height: 44px; padding: 10px; border: 1px solid transparent; border-radius: 50%; background: transparent; color: var(--gd-note); }
.access-map-motion svg { width: 20px; height: 20px; fill: currentColor; }
.access-map-motion:hover { border-color: var(--gd-rule); background: var(--gd-card); }
.access-map-motion:focus-visible { outline: 2px solid var(--gd-focus); outline-offset: 3px; }
@keyframes access-map-flow { 0%, 10% { opacity: 0; stroke-dashoffset: 1000; } 20% { opacity: .65; } 75% { opacity: .65; } 88%, 100% { opacity: 0; stroke-dashoffset: -75; } }
@media (min-width: 900px) {
  body[data-mode='login'] .access-page { width: min(1560px, 100%); grid-template-columns: minmax(0, 1fr) minmax(320px, 380px); column-gap: clamp(40px, 5vw, 80px); row-gap: 24px; padding: 48px clamp(32px, 4vw, 72px); }
  body[data-mode='login'] .access-map-scene { max-width: none; height: auto; margin: 0; }
  body[data-mode='login'] .access-brand-block,
  body[data-mode='login'] .access-card { width: 100%; max-width: 380px; justify-self: stretch; }
  body[data-mode='login'] .access-card { border: 0; box-shadow: none; padding: 0; background: transparent; }
  body[data-mode='login'] .access-brand { min-height: 48px; }
  body[data-mode='login'] .card-heading { margin-bottom: 24px; }
}
@media (prefers-reduced-motion: reduce) {
  .access-map-stream { display: none; animation: none; }
  .access-map-line { opacity: .3; }
}
