/* A continuous white page, with country markers above the softly edged land. */
.rc-contact-world {
  --world-accent: var(--rc-action, #26a5fd);
  --world-draw-duration: 1.6s;
  --world-ease: cubic-bezier(.22, 1, .36, 1);
  --rc-ink: #1d1d1f;
  --rc-action-text: #0077b8;
  position: relative;
  width: calc(100% - 2 * var(--rc-gutter));
  margin: clamp(24px, 3vw, 64px) auto clamp(64px, 7vw, 124px);
  padding: clamp(38px, 4.5vw, 86px) clamp(16px, 3vw, 56px) clamp(28px, 3vw, 56px);
  color: #1d1d1f;
  background: #fff;
  scroll-margin-top: 104px;
}
/* Keep the migrated white map legible inside About's existing smoke-glass page. */
body.rc-site[data-page="about"] .rc-contact-world {
  border-radius: clamp(24px, 2.4vw, 40px);
  box-shadow: 0 20px 70px -45px rgb(0 0 0 / 35%);
}
.rc-world-heading { position: relative; text-align: center; }
.rc-world-heading .rc-world-kicker {
  margin: 0 0 24px; color: var(--rc-action-text, #0077b8);
  font-size: 11px; line-height: 1.5; font-weight: 500; letter-spacing: .17em;
}
.rc-world-heading h2 {
  margin: 0; font-size: clamp(34px, 3.75vw, 76px); line-height: 1.14;
  font-weight: 400; letter-spacing: -.04em; text-wrap: balance;
}
.rc-world-heading h2 > span { display: block; }
.rc-world-heading .rc-world-intro { margin: 22px 0 0; font-size: clamp(14px, 1.1vw, 18px); color: #6e6e73; line-height: 1.65; }
.rc-world-map { position: relative; width: 100%; aspect-ratio: 1200 / 520; margin: clamp(28px, 3vw, 60px) auto 12px; isolation: isolate; }
.rc-world-connections { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.rc-world-connection {
  stroke: var(--world-accent); stroke-width: 1.15px; stroke-linecap: round;
  vector-effect: non-scaling-stroke; opacity: .3;
  transition: opacity 260ms ease, stroke-width 260ms ease;
}
.rc-contact-world.has-world-active .rc-world-connection { opacity: .09; }
.rc-contact-world .rc-world-connection.is-active { opacity: .95; stroke-width: 2px; }
.rc-contact-world.is-enhanced .rc-world-connection { stroke-dasharray: 1; }
.rc-contact-world.is-enhanced:not(.is-visible) .rc-world-connection { stroke-dashoffset: 1; }
.rc-contact-world.is-enhanced.is-visible .rc-world-connection {
  animation: rc-world-connect var(--world-draw-duration) var(--world-ease) var(--connection-delay) both;
  animation-play-state: paused;
}
.rc-contact-world.is-enhanced.is-visible.is-animating .rc-world-connection { animation-play-state: running; }
.rc-world-origin {
  position: absolute; z-index: 2; color: var(--world-accent); pointer-events: none;
  transform: translate(-50%, -50%); width: 12px; height: 12px;
}
.rc-world-origin-dot { display: block; width: 100%; height: 100%; border-radius: 50%; background: currentColor; box-shadow: 0 0 0 3px #fff; }
.rc-world-origin-dot::before, .rc-world-origin-dot::after {
  content: ''; position: absolute; inset: -8px; border: 1px solid currentColor; border-radius: 50%;
  animation: rc-world-radiate 3.6s ease-out infinite; animation-play-state: paused;
}
.rc-world-origin-dot::after { animation-delay: -1.8s; }
.rc-contact-world.is-animating .rc-world-origin-dot::before,
.rc-contact-world.is-animating .rc-world-origin-dot::after { animation-play-state: running; }
.rc-world-origin-label {
  position: absolute; top: 23px; left: 2px; padding: 5px 9px; border-radius: 999px;
  white-space: nowrap; color: #1d1d1f; background: rgb(255 255 255 / 92%);
  font-size: clamp(11px, .85vw, 14px); font-weight: 600; line-height: 1.3;
}
@keyframes rc-world-connect { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
@keyframes rc-world-radiate { from { transform: scale(.55); opacity: .6; } to { transform: scale(2.35); opacity: 0; } }
.rc-world-land {
  display: block; width: 100%; height: 100%; object-fit: contain;
  user-select: none; pointer-events: none;
  /* Only the coastal silhouette fades at the date-line edges. Labels and dots
     remain a separate, fully visible layer. The section itself has no frame. */
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent);
}
.rc-world-marker {
  position: absolute; z-index: 1; display: grid; place-items: center;
  width: 18px; height: 18px; min-width: 0; min-height: 0; padding: 0;
  border: 0; border-radius: 50%; color: var(--world-accent); background: transparent;
  transform: translate(-50%, -50%); cursor: pointer; -webkit-tap-highlight-color: transparent;
}
.rc-world-dot { position: relative; display: block; width: clamp(5px, .48vw, 9px); height: clamp(5px, .48vw, 9px); border-radius: 50%; background: currentColor; box-shadow: 0 0 0 2px #fff; }
.rc-world-dot::before, .rc-world-dot::after { content: ''; position: absolute; inset: -7px; border: 1px solid currentColor; border-radius: inherit; pointer-events: none; }
.rc-world-dot::before { opacity: .23; background: rgb(29 29 31 / 6%); }
.rc-world-dot::after { opacity: 0; animation: rc-world-breathe 4.8s ease-in-out infinite; animation-delay: var(--world-delay); animation-play-state: paused; }
.rc-contact-world.is-animating .rc-world-dot::after { animation-play-state: running; }
.rc-world-marker:is(:hover, :focus-visible, [aria-pressed="true"]) { z-index: 3; outline: none; }
.rc-world-marker:is(:hover, :focus-visible, [aria-pressed="true"]) .rc-world-dot { box-shadow: 0 0 0 3px #fff; }
.rc-world-marker:is(:hover, :focus-visible, [aria-pressed="true"]) .rc-world-dot::before { opacity: .8; background: rgb(29 29 31 / 15%); transform: scale(1.15); }
.rc-world-marker:focus-visible { outline: 1px solid var(--world-accent); outline-offset: 7px; }
.rc-world-tooltip {
  position: absolute; z-index: 4; pointer-events: none;
  max-width: calc(100% - 16px); padding: 11px 18px; color: #071a28; background: var(--world-accent);
  font-size: clamp(12px, .9vw, 16px); line-height: 1.3; text-align: center;
  box-shadow: 0 5px 20px rgb(29 29 31 / 9%); white-space: normal;
}
.rc-world-tooltip::after { content: ''; position: absolute; left: var(--world-arrow-x, 50%); top: 100%; transform: translateX(-50%); border: 5px solid transparent; border-top-color: var(--world-accent); }
.rc-world-tooltip[data-placement="below"]::after { top: auto; bottom: 100%; border-top-color: transparent; border-bottom-color: var(--world-accent); }
.rc-world-tooltip[hidden] { display: none; }
.rc-world-footer { max-width: 1280px; margin: auto; }
.rc-world-instruction { text-align: center; margin: 0 0 22px; color: #6e6e73; font-size: 12px; line-height: 1.6; }
.rc-world-mobile-help { display: none; }
.rc-world-countries { display: flex; justify-content: center; flex-wrap: wrap; column-gap: clamp(14px, 1.8vw, 30px); row-gap: 0; }
.rc-world-choice {
  position: relative; min-height: 36px; padding: 6px 0; border: 0; border-bottom: 1px solid transparent;
  background: transparent; color: #6e6e73; font: inherit; font-size: clamp(12px, .95vw, 15px);
  line-height: 1.5; cursor: pointer; transition: color 180ms ease, border-color 180ms ease;
}
.rc-world-choice:is(:hover, [aria-pressed="true"]) { color: var(--world-accent); border-bottom-color: var(--world-accent); }
.rc-world-choice:focus-visible { outline: 2px solid var(--world-accent); outline-offset: 4px; }
.rc-world-sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
/* Content is visible without JS; enhancement uses only a modest entrance. */
.rc-contact-world.is-enhanced:not(.is-visible) :is(.rc-world-heading, .rc-world-map, .rc-world-footer) { opacity: .2; transform: translateY(18px); }
.rc-contact-world.is-enhanced :is(.rc-world-heading, .rc-world-map, .rc-world-footer) { transition: opacity 900ms ease, transform 1100ms cubic-bezier(.22, 1, .36, 1); }
.rc-contact-world.is-enhanced .rc-world-map { transition-delay: 110ms; }
.rc-contact-world.is-enhanced .rc-world-footer { transition-delay: 170ms; }
.rc-motion-suspended .rc-world-dot::after { animation-play-state: paused !important; }
.rc-motion-disabled .rc-contact-world.is-enhanced :is(.rc-world-heading, .rc-world-map, .rc-world-footer) { opacity: 1; transform: none; transition: none; }
@keyframes rc-world-breathe { 0%, 100% { transform: scale(.7); opacity: .06; } 50% { transform: scale(1.65); opacity: .28; } }
@media (min-width: 1800px) { .rc-world-marker { width: 24px; height: 24px; } .rc-world-dot::before, .rc-world-dot::after { inset: -10px; } }
@media (max-width: 760px) {
  .rc-contact-world { width: calc(100% - 24px); padding: 38px 16px 26px; margin-block: 20px 56px; scroll-margin-top: 86px; }
  .rc-world-heading .rc-world-kicker { font-size: 11px; margin-bottom: 20px; }
  .rc-world-heading h2 { font-size: clamp(27px, 6.9vw, 40px); letter-spacing: -.035em; }
  .rc-world-heading .rc-world-intro { max-width: 25ch; margin: 18px auto 0; font-size: 13px; }
  .rc-world-map { width: calc(100% + 16px); margin: 28px -8px 22px; }
  .rc-world-marker { width: 18px; height: 18px; }
  .rc-world-dot { width: 4px; height: 4px; box-shadow: 0 0 0 1px #fff; }
  .rc-world-dot::before, .rc-world-dot::after { inset: -3px; }
  .rc-world-tooltip { padding: 8px 11px; font-size: 11px; }
  .rc-world-desktop-help { display: none; } .rc-world-mobile-help { display: inline; }
  .rc-world-instruction { margin-bottom: 10px; font-size: 11px; }
  .rc-world-countries { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 20px; }
  .rc-world-choice { min-height: 44px; text-align: left; font-size: 12px; border-bottom-color: rgb(29 29 31 / 10%); }
  .rc-world-origin { width: 8px; height: 8px; }
  .rc-world-origin-label { left: auto; right: -15px; top: 16px; font-size: 10px; }
  .rc-world-origin-dot::before, .rc-world-origin-dot::after { inset: -5px; }
  .rc-world-connection { stroke-width: .85px; opacity: .35; }
}
.rc-contact-world.is-world-settled .rc-world-connection { animation: none !important; stroke-dashoffset: 0 !important; }
.rc-contact-world.is-world-static .rc-world-origin-dot::before,
.rc-contact-world.is-world-static .rc-world-origin-dot::after { animation: none !important; opacity: .18; }
@media (prefers-reduced-motion: reduce) {
  .rc-contact-world.is-enhanced :is(.rc-world-heading, .rc-world-map, .rc-world-footer) { opacity: 1 !important; transform: none !important; transition: none !important; }
  .rc-world-dot::after { animation: none; }
  .rc-world-choice { transition: none; }
  .rc-contact-world.is-enhanced.is-visible .rc-world-connection { animation: none; stroke-dashoffset: 0; }
  .rc-world-origin-dot::before, .rc-world-origin-dot::after { animation: none; opacity: .18; }
}

/* Fit the current About map between the fixed navigation and review bar.
   Keep the map's coordinate plane proportional: shrink its width as well as
   its height, so every marker and connection stays on the same location. */
body.rc-site[data-page="about"] #about-world {
  padding-block: 20px;
  scroll-margin-top: 0;
}
body.rc-site[data-page="about"] #about-world .rc-world-kicker { margin-bottom: 8px; }
body.rc-site[data-page="about"] #about-world h2 {
  font-size: clamp(28px, min(3vw, 4.5svh), 42px);
  line-height: 1.14;
}
body.rc-site[data-page="about"] #about-world .rc-world-intro {
  margin-top: 12px; font-size: 14px; line-height: 1.5;
}
body.rc-site[data-page="about"] #about-world .rc-world-map {
  width: min(100%, calc(clamp(140px, calc(100svh - 450px), 520px) * 2.307692));
  margin: 18px auto 12px;
}
body.rc-site[data-page="about"] #about-world .rc-world-footer { width: 100%; }
body.rc-site[data-page="about"] #about-world .rc-world-instruction { margin-bottom: 8px; }
body.rc-site[data-page="about"] #about-world .rc-world-countries { column-gap: clamp(12px, 1.4vw, 24px); }
body.rc-site[data-page="about"] #about-world .rc-world-choice {
  min-height: 30px; padding-block: 4px; font-size: 13px; line-height: 1.5;
}
@media (max-width: 760px) {
  body.rc-site[data-page="about"] #about-world { padding: 24px 16px 20px; }
  body.rc-site[data-page="about"] #about-world h2 { font-size: clamp(26px, 6.9vw, 34px); line-height: 1.22; }
  body.rc-site[data-page="about"] #about-world .rc-world-kicker { margin-bottom: 12px; }
  body.rc-site[data-page="about"] #about-world .rc-world-intro { font-size: 13px; }
  body.rc-site[data-page="about"] #about-world .rc-world-map { width: calc(100% + 16px); margin: 18px -8px 16px; }
  body.rc-site[data-page="about"] #about-world .rc-world-countries { column-gap: 20px; }
  body.rc-site[data-page="about"] #about-world .rc-world-choice { min-height: 44px; font-size: 12px; }
}
