.worlds {
  isolation: isolate;
  padding: clamp(5rem, 3rem + 6vw, 9rem) var(--gutter) clamp(4rem, 3rem + 4vw, 7rem);
  overflow: hidden;
}
/* Blurred bokeh behind the cloud: desaturated into the palette and faded in from the top,
   so there is no edge between the hero and this section. */
.worlds-bg {
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    radial-gradient(70% 60% at 50% 55%, transparent 0%, var(--page-deep) 100%),
    url("../assets/bg-bokeh.jpg") center / cover no-repeat;
  filter: saturate(0.45);
  opacity: 0.85;
  -webkit-mask-image: linear-gradient(to bottom, transparent 0%, #000 35%, #000 80%, transparent 100%);
          mask-image: linear-gradient(to bottom, transparent 0%, #000 35%, #000 80%, transparent 100%);
}
.worlds-head { text-align: center; max-width: 52rem; margin: 0 auto; position: relative; z-index: 2; }
.worlds-head h2 {
  margin: 0;
  font-size: clamp(2rem, 1rem + 2.6vw, 4.4rem);
  font-weight: 800;
  letter-spacing: -0.045em;
  line-height: 0.98;
  color: var(--glow);
  text-wrap: balance;
}
.cloud {
  position: relative;
  height: clamp(400px, 40vw, 820px);
  max-width: 1280px;
  margin: 0 auto;
}
.cloud canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.cloud-label {
  position: absolute;
  left: 0;
  top: 0;
  z-index: 3;
  pointer-events: none;
  white-space: nowrap;
  padding: 0.35rem 0.8rem;
  border-radius: 999px;
  background: rgba(23, 22, 27, 0.82);
  border: 1px solid rgba(236, 229, 216, 0.2);
  font-size: 0.85rem;
  color: var(--glow);
  translate: -50% 0;
  opacity: 0;
  transition: opacity 180ms;
}
.cloud-label.on { opacity: 1; }
.cloud-label small { margin-left: 0.4rem; color: var(--ash); font-size: 0.78rem; }

.worlds-note {
  position: relative;
  z-index: 2;
  max-width: 34rem;
  margin: clamp(0.5rem, 0.2rem + 1vw, 1.5rem) auto 0;
  text-align: center;
  font-size: clamp(1rem, 0.92rem + 0.35vw, 1.2rem);
  color: rgba(236, 229, 216, 0.7);
  text-wrap: balance;
}
