/* Explore wake reveal: a brief, branded handoff into the real map. */
html body .app-shell .map-wake-overlay {
  z-index: 72;
  padding: clamp(20px, 5vw, 42px);
  background:
    radial-gradient(circle at 50% 44%, rgba(19, 158, 139, 0.13), transparent 36%),
    linear-gradient(180deg, rgba(4, 21, 35, 0.48), rgba(5, 25, 32, 0.28));
  -webkit-backdrop-filter: blur(5px) saturate(0.9);
  backdrop-filter: blur(5px) saturate(0.9);
  transition: opacity 300ms ease, backdrop-filter 300ms ease;
}

html body .app-shell .map-wake-overlay.is-leaving {
  -webkit-backdrop-filter: blur(0) saturate(1);
  backdrop-filter: blur(0) saturate(1);
}

html body .app-shell .map-wake-card {
  width: min(378px, calc(100vw - 36px));
  padding: 26px 28px 24px;
  border: 1px solid rgba(188, 240, 226, 0.24);
  border-radius: 24px;
  color: #f7fffc;
  background:
    radial-gradient(circle at 50% 0%, rgba(52, 188, 155, 0.16), transparent 44%),
    linear-gradient(145deg, rgba(5, 47, 60, 0.92), rgba(7, 78, 69, 0.88));
  box-shadow: 0 22px 60px rgba(2, 24, 34, 0.28), inset 0 1px rgba(255, 255, 255, 0.08);
  transform: translate3d(0, 12px, 0) scale(0.985);
  transition: transform 380ms cubic-bezier(0.2, 0.75, 0.2, 1), opacity 300ms ease;
}

html body .app-shell .map-wake-overlay.is-visible .map-wake-card {
  transform: translate3d(0, 0, 0) scale(1);
}

html body .app-shell .map-wake-mappi-shell {
  position: relative;
  display: grid;
  width: 88px;
  height: 88px;
  margin: 0 auto 13px;
  place-items: center;
}

html body .app-shell .map-wake-pulse {
  position: absolute;
  inset: 4px;
  border: 1px solid rgba(86, 226, 192, 0.42);
  border-radius: 50%;
  opacity: 0;
  animation: exploreWakePulse 1.9s ease-out infinite;
}

html body .app-shell .map-wake-mappi {
  width: 74px;
  height: 74px;
  margin: 0;
  overflow: hidden;
  border: 1px solid rgba(220, 255, 246, 0.34);
  border-radius: 50%;
  background: linear-gradient(145deg, #0e8e7a, #0b5268);
  box-shadow: 0 10px 26px rgba(0, 25, 36, 0.28);
  animation: exploreWakeFloat 2.8s ease-in-out infinite;
}

html body .app-shell .map-wake-mappi::before,
html body .app-shell .map-wake-mappi::after {
  content: none;
}

html body .app-shell .map-wake-mappi img {
  width: 100%;
  height: 100%;
  border: 0;
  border-radius: 0;
  background: transparent;
  object-fit: contain;
  object-position: center;
  transform: scale(0.9);
}

html body .app-shell .map-wake-brand {
  margin: 0 0 7px;
  color: #8fe8cf;
  font-size: 0.73rem;
  font-weight: 850;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

html body .app-shell .map-wake-card h2 {
  margin: 0;
  color: #fff;
  font-size: clamp(1.18rem, 4.6vw, 1.48rem);
  font-weight: 850;
  line-height: 1.14;
}

html body .app-shell .map-wake-subtitle {
  max-width: 290px;
  margin: 9px auto 0;
  color: rgba(235, 252, 248, 0.72);
  font-size: 0.86rem;
  font-weight: 650;
  line-height: 1.45;
}

html body .app-shell .map-wake-line {
  height: 3px;
  margin: 19px auto 17px;
  background: rgba(224, 255, 248, 0.12);
}

html body .app-shell .map-wake-line::before {
  width: 64%;
  background: linear-gradient(90deg, #36c8ad, #58bce3, #36c8ad);
  animation: exploreWakeProgress 1.35s cubic-bezier(0.25, 0.7, 0.3, 1) both;
}

html body .app-shell .map-wake-overlay.is-ready .map-wake-line::before {
  transform: translateX(58%);
}

html body .app-shell .map-wake-status-row {
  display: flex;
  min-height: 22px;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

html body .app-shell .map-wake-status-row strong {
  color: #effffb;
  font-size: 0.88rem;
  font-weight: 800;
}

html body .app-shell .map-wake-status-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #5be0bd;
  box-shadow: 0 0 0 4px rgba(91, 224, 189, 0.12);
}

html body .app-shell .map-wake-card .map-wake-count,
html body .app-shell .map-wake-card .map-wake-location {
  margin: 7px 0 0;
  color: rgba(222, 247, 241, 0.68);
  font-size: 0.78rem;
  font-weight: 700;
  line-height: 1.3;
}

html body .app-shell .map-wake-card .map-wake-location {
  margin-top: 3px;
  color: rgba(197, 228, 222, 0.54);
}

@keyframes exploreWakeProgress {
  from { transform: translateX(-108%); }
  to { transform: translateX(58%); }
}

@keyframes exploreWakePulse {
  0% { opacity: 0.48; transform: scale(0.82); }
  72%, 100% { opacity: 0; transform: scale(1.28); }
}

@keyframes exploreWakeFloat {
  0%, 100% { transform: translate3d(0, 0, 0); }
  50% { transform: translate3d(0, -3px, 0); }
}

@media (max-width: 620px) {
  html body .app-shell .map-wake-overlay {
    padding: 18px 18px calc(112px + env(safe-area-inset-bottom));
  }

  html body .app-shell .map-wake-card {
    width: min(350px, calc(100vw - 32px));
    padding: 23px 22px 21px;
    border-radius: 22px;
  }

  html body .app-shell .map-wake-mappi-shell {
    width: 78px;
    height: 78px;
    margin-bottom: 11px;
  }

  html body .app-shell .map-wake-mappi {
    width: 66px;
    height: 66px;
  }
}

@media (prefers-reduced-motion: reduce) {
  html body .app-shell .map-wake-card,
  html body .app-shell .map-wake-overlay,
  html body .app-shell .map-wake-mappi,
  html body .app-shell .map-wake-pulse,
  html body .app-shell .map-wake-line::before {
    animation: none !important;
    transition-duration: 1ms !important;
  }

  html body .app-shell .map-wake-pulse {
    display: none;
  }

  html body .app-shell .map-wake-line::before {
    transform: translateX(58%);
  }
}
