/* One country projection rises directly from the map; the passport carries the flag. */
.continent-map { position: relative; }
.continent-map .map-pin:not(.is-active) text,
.continent-map .map-pin:not(.is-active) .map-label-leader {
  opacity: .23;
  transition: opacity .3s;
}
.continent-map .map-pin:hover text,
.continent-map .map-pin:focus-visible text { opacity: 1; }
.continent-map .map-pin.is-active text,
.continent-map .map-focus-label { display: none; }
.continent-map .map-land.is-active {
  fill: #72eaff30;
  stroke: #d4fbff;
  stroke-width: 2;
  filter: drop-shadow(0 0 5px #6eeeff80);
}
.continent-map .map-pin.is-active .map-pin-dot { fill: #efffff; stroke: #9df8ff; }
.continent-map .map-pin.is-active .map-pin-halo { fill: #8ffaff22; stroke: #9df8ff; }
.country-beam-projection { pointer-events: none; }
.country-beam-volume { stroke: none; }
.country-beam-rays {
  fill: none;
  stroke: #8cf5ff;
  stroke-width: 1.3;
  opacity: .43;
}
.country-beam-source { fill: #9cfaff33; stroke: #c8ffff; stroke-width: 1.6; }
.country-beam-source-dot { fill: white; filter: drop-shadow(0 0 7px #b1ffff); }
.country-beam-float {
  animation: country-beam-appear .65s ease-out both, country-beam-drift 5s .65s ease-in-out infinite;
}
.country-beam-outline {
  fill: #71edff62;
  stroke: #d8fdff;
  stroke-width: 1.7;
  stroke-linejoin: round;
  filter: drop-shadow(0 0 5px #73f3ffb0) drop-shadow(0 0 17px #30b6ff66);
}
.country-beam-depth { fill: #1593b24d; stroke: #50d8ef77; stroke-width: 1; }
.country-beam-platform { fill: #7ceaff0a; stroke: #b8fcff9c; stroke-width: 1; }
.country-beam-name {
  font-family: var(--display);
  font-weight: 600;
  fill: #f2ffff;
  stroke: #08233be6;
  stroke-linejoin: round;
  paint-order: stroke;
  filter: drop-shadow(0 0 5px #a1f9ff55);
}
.continent-map .country-beam-location { overflow: hidden; }
.country-beam-context { fill: #56ddff40; stroke: #a6f5ff; stroke-width: .6; }
.country-beam-location-ring { fill: #9affff26; stroke: #dcffff; stroke-width: .9; }
.is-paused .country-beam-float { animation: none; }
@keyframes country-beam-appear {
  from { opacity: 0; transform: translateY(16px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes country-beam-drift {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
}
@media (prefers-reduced-motion: reduce) {
  .country-beam-float { animation: none; }
}
@media (max-width: 380px) {
  .continent-book .continent-stamp strong { font-size: 20px; }
}
