/* Shared Platform 9¾ doorway + the Room 1 point-and-click orb trail. */

.platform-934-orb {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  width: 14px;
  min-height: 34px;
  margin: 0 -3px;
  padding: 0 2px;
  position: relative;
  z-index: 5;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: width .35s cubic-bezier(.2, .8, .3, 1);
}

.platform-934-orb > i,
.platform-934-return > i {
  display: block;
  width: 6px;
  height: 6px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #fff7cb, rgba(255, 213, 122, .72) 32%, rgba(255, 159, 67, .12));
  box-shadow: 0 0 5px rgba(255, 213, 122, .42);
  animation: platform-934-idle 3.2s ease-in-out infinite;
}

.platform-934-orb > .platform-934-label {
  color: #fff0af;
  font: 800 10px/1 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  letter-spacing: .04em;
  text-shadow: 0 0 10px rgba(255, 213, 122, .7);
  white-space: nowrap;
}

.platform-934-orb:focus-visible,
.platform-934-mote:focus-visible,
.platform-934-return:focus-visible {
  outline: 1px dashed rgba(255, 213, 122, .9);
  outline-offset: 4px;
}

.platform-934-orb[data-charge="1"] > i { width: 7px; height: 7px; box-shadow: 0 0 8px rgba(255,213,122,.55); }
.platform-934-orb[data-charge="2"] > i { width: 8px; height: 8px; box-shadow: 0 0 12px rgba(255,213,122,.66); }
.platform-934-orb[data-charge="3"] > i { width: 9px; height: 9px; box-shadow: 0 0 17px rgba(255,213,122,.78); }
.platform-934-orb[data-charge="4"] > i { width: 10px; height: 10px; box-shadow: 0 0 22px rgba(255,213,122,.9); }

.platform-934-orb[data-charge="5"] > i {
  width: 14px;
  height: 14px;
  background: radial-gradient(circle, #fff7cb, #ffd57a 45%, #ff9f43);
  box-shadow: 0 0 24px rgba(255,213,122,1), 0 0 52px rgba(255,159,67,.62);
  animation: platform-934-unlock .72s ease-out;
}

.platform-934-orb[data-open="true"] {
  width: auto;
  margin: 0 1px;
}

.platform-934-orb[data-open="true"] > i {
  width: 8px;
  height: 8px;
  box-shadow: 0 0 14px rgba(255,213,122,.85);
  animation: platform-934-lit 2.4s ease-in-out infinite;
}

.platform-934-trail {
  position: fixed;
  inset: 0;
  z-index: 90;
  pointer-events: none;
  overflow: hidden;
}

.platform-934-mote {
  position: absolute;
  width: 30px;
  height: 30px;
  margin: -15px 0 0 -15px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  color: #fff5bf;
  background: transparent;
  pointer-events: none;
  opacity: .26;
  transform: scale(.62);
  transition: opacity .28s ease, transform .28s ease;
}

.platform-934-mote[data-position="1"] { left: clamp(26px, 82vw, calc(100vw - 42px)); top: clamp(88px, 23vh, calc(100vh - 44px)); }
.platform-934-mote[data-position="2"] { left: clamp(26px, 64vw, calc(100vw - 42px)); top: clamp(88px, 39vh, calc(100vh - 44px)); }
.platform-934-mote[data-position="3"] { left: clamp(26px, 36vw, calc(100vw - 42px)); top: clamp(88px, 57vh, calc(100vh - 44px)); }
.platform-934-mote[data-position="4"] { left: clamp(26px, 70vw, calc(100vw - 42px)); top: clamp(88px, 74vh, calc(100vh - 44px)); }

.platform-934-mote[data-active="true"] {
  pointer-events: auto;
  cursor: pointer;
  opacity: 1;
  transform: scale(1);
  animation: platform-934-mote-arrive .46s cubic-bezier(.18,.82,.22,1.25) both;
}

.platform-934-mote > i {
  position: absolute;
  inset: 8px;
  border-radius: 50%;
  background: radial-gradient(circle at 34% 30%, #ffffff, #fff0af 25%, #ffd57a 52%, #ff9f43);
  box-shadow:
    0 0 9px rgba(255, 240, 175, .95),
    0 0 26px rgba(255, 159, 67, .72),
    0 0 50px rgba(115, 226, 167, .22);
}

.platform-934-mote > b {
  position: absolute;
  left: 21px;
  top: -4px;
  color: rgba(255, 240, 175, .82);
  font: 900 10px/1 serif;
  animation: platform-934-spark 1.1s ease-in-out infinite;
}

.platform-934-trail[data-open="true"] .platform-934-mote {
  opacity: 1;
  transform: scale(1.45);
  filter: brightness(1.35);
}

.platform-934-return {
  position: relative;
  isolation: isolate;
}

.platform-934-return > i {
  position: absolute;
  left: 50%;
  top: -3px;
  width: 5px;
  height: 5px;
  transform: translateX(-50%);
  box-shadow: 0 0 10px rgba(255,213,122,.9);
}

.platform-934-return > span { color: #fff0af; }
.platform-934-return > small { color: rgba(255,213,122,.72); }

@keyframes platform-934-idle {
  0%, 100% { opacity: .42; transform: scale(.88); }
  50% { opacity: .86; transform: scale(1.14); }
}

@keyframes platform-934-lit {
  0%, 100% { opacity: .76; }
  50% { opacity: 1; }
}

@keyframes platform-934-unlock {
  0% { transform: scale(1); }
  45% { transform: scale(3.3); }
  100% { transform: scale(1); }
}

@keyframes platform-934-mote-arrive {
  0% { opacity: 0; transform: translate3d(-18px, 14px, 0) scale(.2) rotate(-35deg); }
  70% { opacity: 1; transform: translate3d(0, 0, 0) scale(1.2) rotate(4deg); }
  100% { transform: translate3d(0, 0, 0) scale(1) rotate(0); }
}

@keyframes platform-934-spark {
  0%, 100% { opacity: .22; transform: translate(0, 4px) rotate(0); }
  50% { opacity: 1; transform: translate(4px, -2px) rotate(36deg); }
}

@media (max-width: 640px) {
  .platform-934-mote[data-position="1"] { left: 80vw; top: 24vh; }
  .platform-934-mote[data-position="2"] { left: 58vw; top: 42vh; }
  .platform-934-mote[data-position="3"] { left: 24vw; top: 60vh; }
  .platform-934-mote[data-position="4"] { left: 70vw; top: 76vh; }
}

@media (prefers-reduced-motion: reduce) {
  .platform-934-orb > i,
  .platform-934-return > i,
  .platform-934-mote,
  .platform-934-mote > b {
    animation: none !important;
  }
}
