/* Coverage: countries orbit one phone; their payments fly in and land as one picture. */
.orbit {
  position: relative;
  overflow: hidden;
  padding: var(--section-y, 140px) 0 calc(var(--section-y, 140px) * .7);
  background: var(--surface-page, #1f1f1f);
  text-align: center;
  scroll-margin-top: 80px;
}
.orbit__head { position: relative; z-index: 5; padding: 0 var(--gutter, 24px); }
.orbit h2 {
  max-width: 900px;
  margin: 0 auto;
  font-size: var(--type-h2, 64px);
  font-weight: var(--type-h2-weight, 550);
  line-height: var(--type-h2-leading, 1.04);
  letter-spacing: var(--type-h2-track, -.045em);
  text-wrap: balance;
}
.orbit h2 em { display: block; font-style: normal; font-weight: inherit; color: var(--accent, #d6ff63); }
.orbit__intro { max-width: 34ch; margin: 22px auto 0; color: var(--ink-2, #bdbdbd); font-size: var(--type-lede, 17px); line-height: 1.55; text-wrap: balance; }

/* the two ways a payment reaches Monetor */
.orbit__sources { display: inline-flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin: 32px 0 0; padding: 0; list-style: none; }
.orbit__sources li {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 10px 20px 10px 10px;
  border-radius: 20px;
  background: var(--surface-raised, #262626);
  box-shadow: inset 0 0 0 1px var(--hairline, #ffffff17);
  text-align: left;
}
.orbit__source-icon { display: grid; place-items: center; flex: none; width: 44px; height: 44px; border-radius: 13px; }
.orbit__source-icon--pay { background: #fff; color: #000; }
.orbit__source-icon--bank { background: rgba(214,255,99,.14); color: var(--accent, #d6ff63); }
.orbit__sources strong { display: block; color: var(--ink-1, #fff); font-size: 15px; font-weight: 500; letter-spacing: -.01em; }
.orbit__sources small { display: block; margin-top: 2px; color: var(--ink-3, #8c8c8c); font-size: 13px; }

/* the orbit */
.orbit__stage {
  --r1: 230px;
  --r2: 350px;
  --r3: 470px;
  position: relative;
  height: 680px;
  margin-top: 28px;
  -webkit-mask-image: radial-gradient(ellipse 60% 58% at 50% 50%, #000 58%, transparent 100%);
  mask-image: radial-gradient(ellipse 60% 58% at 50% 50%, #000 58%, transparent 100%);
}
.orbit__ring {
  --r: var(--r1);
  --dur: 110s;
  position: absolute;
  left: 50%;
  top: 50%;
  width: calc(var(--r) * 2);
  height: calc(var(--r) * 2);
  margin: calc(var(--r) * -1) 0 0 calc(var(--r) * -1);
  padding: 0;
  border-radius: 50%;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.07);
  list-style: none;
  animation: orbit-spin var(--dur) linear infinite;
}
.orbit__ring--2 { --r: var(--r2); --dur: 150s; animation-direction: reverse; box-shadow: inset 0 0 0 1px rgba(255,255,255,.055); }
.orbit__ring--3 { --r: var(--r3); --dur: 190s; box-shadow: inset 0 0 0 1px rgba(255,255,255,.04); }
.orbit__ring li { position: absolute; left: 50%; top: 50%; transform: rotate(var(--a)) translateX(var(--r)) rotate(calc(var(--a) * -1)) translate(-50%, -50%); }
.orbit__chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 12px 6px 6px;
  border-radius: 999px;
  background: rgba(38,38,38,.94);
  box-shadow: inset 0 0 0 1px var(--hairline, #ffffff17);
  color: var(--ink-2, #bdbdbd);
  font-size: 13px;
  line-height: 1;
  white-space: nowrap;
  animation: orbit-spin var(--dur) linear infinite reverse;
  transition: box-shadow 300ms ease, color 300ms ease;
}
.orbit__ring--2 .orbit__chip { animation-direction: normal; }
.orbit__chip img { width: 20px; height: 20px; border-radius: 50%; object-fit: cover; }
.orbit__chip b { color: var(--ink-3, #8c8c8c); font-size: 11px; font-weight: 500; }
.orbit__chip.is-sending { color: var(--ink-1, #fff); box-shadow: inset 0 0 0 1px rgba(214,255,99,.7), 0 0 0 5px rgba(214,255,99,.08); }

/* a quiet clearing around the phone, so passing chips dissolve instead of clipping */
.orbit__stage::after {
  content: '';
  position: absolute;
  z-index: 2;
  left: 50%;
  top: 50%;
  width: 660px;
  height: 820px;
  transform: translate(-50%, -50%);
  background: radial-gradient(closest-side, var(--surface-page, #1f1f1f) 52%, transparent 100%);
  pointer-events: none;
}
/* the phone, where everything lands */
.orbit__phone { position: absolute; z-index: 3; left: 50%; top: 50%; width: 290px; margin: 0; transform: translate(-50%, -50%); }
.orbit__phone > img { display: block; width: 100%; height: auto; filter: drop-shadow(0 30px 50px rgba(0,0,0,.55)); }
.orbit__toast {
  position: absolute;
  top: 9.5%;
  left: 11%;
  right: 11%;
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 9px 10px;
  border-radius: 16px;
  background: rgba(40,40,40,.9);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  box-shadow: 0 10px 24px rgba(0,0,0,.45), inset 0 0 0 1px rgba(255,255,255,.08);
  text-align: left;
  opacity: 0;
  transform: translateY(-10px) scale(.96);
  transition: opacity 260ms ease, transform 360ms cubic-bezier(.2,.7,.2,1);
}
.orbit__toast.is-shown { opacity: 1; transform: none; }
.orbit__toast img { width: 28px; height: 28px; border-radius: 7px; }
.orbit__toast span { flex: 1; min-width: 0; }
.orbit__toast strong { display: block; color: #fff; font-size: 13px; font-weight: 600; font-variant-numeric: tabular-nums; }
.orbit__toast small { display: block; overflow: hidden; color: #bdbdbd; font-size: 10.5px; text-overflow: ellipsis; white-space: nowrap; }
.orbit__toast time { align-self: flex-start; color: #8c8c8c; font-size: 10px; }

/* a payment in flight */
.orbit__flight {
  position: absolute;
  z-index: 4;
  left: 0;
  top: 0;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 13px 6px 6px;
  border-radius: 999px;
  background: var(--accent, #d6ff63);
  color: #141414;
  font-size: 13px;
  font-weight: 500;
  line-height: 1;
  white-space: nowrap;
  box-shadow: 0 8px 24px rgba(214,255,99,.25);
  pointer-events: none;
}
.orbit__flight img { width: 20px; height: 20px; border-radius: 50%; object-fit: cover; }

.orbit__sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.orbit__cta { position: relative; z-index: 5; margin-top: 4px; }
.orbit__cta svg { transition: transform 220ms var(--ease); }
.orbit__cta:hover svg { transform: translateX(3px); }

@keyframes orbit-spin { to { transform: rotate(360deg); } }

@media (max-width: 900px) {
  .orbit__stage { --r1: 180px; --r2: 270px; --r3: 360px; height: 580px; }
  .orbit__phone { width: 250px; }
  .orbit__stage::after { width: 540px; height: 680px; }
}
@media (max-width: 600px) {
  .orbit__sources { display: grid; width: 100%; max-width: 360px; }
  .orbit__sources li { padding-right: 14px; }
  .orbit__stage { --r1: 140px; --r2: 205px; --r3: 270px; height: 500px; margin-top: 12px; -webkit-mask-image: radial-gradient(ellipse 72% 56% at 50% 50%, #000 60%, transparent 100%); mask-image: radial-gradient(ellipse 72% 56% at 50% 50%, #000 60%, transparent 100%); }
  .orbit__phone { width: 210px; }
  .orbit__stage::after { width: 400px; height: 560px; }
  .orbit__chip { gap: 6px; padding: 5px 10px 5px 5px; font-size: 12px; }
  .orbit__chip img, .orbit__flight img { width: 18px; height: 18px; }
  .orbit__flight { font-size: 12px; }
  .orbit__toast { gap: 7px; padding: 7px 8px; }
  .orbit__toast small { font-size: 9.5px; }
}

@media (prefers-reduced-motion: reduce) {
  .orbit__ring, .orbit__chip { animation: none; }
  .orbit__toast { transition: none; }
}
