/* 全局共享样式:loading 旋转、PCM 缩放容器基础规则、变体根容器布局。 */

html, body { width: 100%; height: 100%; }
body { background: #fff; -webkit-font-smoothing: antialiased; }

/* Loading 旋转,沿用 legacy index.vue 内的 .lds-roller 样式 */
.loading_box {
  position: fixed; inset: 0;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  background: rgba(255, 255, 255, 0.92);
  z-index: 600;
}
.lds-roller { display: inline-block; position: relative; width: 2.133rem; height: 2.133rem; }
.lds-roller div { animation: lds-roller 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite; transform-origin: 1.067rem 1.067rem; }
.lds-roller div:after {
  content: " "; display: block; position: absolute;
  width: 0.187rem; height: 0.187rem; border-radius: 50%;
  background: #555; margin: -0.107rem 0 0 -0.107rem;
}
.lds-roller div:nth-child(1) { animation-delay: -0.036s; }
.lds-roller div:nth-child(1):after { top: 1.68rem; left: 1.68rem; }
.lds-roller div:nth-child(2) { animation-delay: -0.072s; }
.lds-roller div:nth-child(2):after { top: 1.813rem; left: 1.493rem; }
.lds-roller div:nth-child(3) { animation-delay: -0.108s; }
.lds-roller div:nth-child(3):after { top: 1.893rem; left: 1.28rem; }
.lds-roller div:nth-child(4) { animation-delay: -0.144s; }
.lds-roller div:nth-child(4):after { top: 1.92rem; left: 1.067rem; }
.lds-roller div:nth-child(5) { animation-delay: -0.18s; }
.lds-roller div:nth-child(5):after { top: 1.893rem; left: 0.853rem; }
.lds-roller div:nth-child(6) { animation-delay: -0.216s; }
.lds-roller div:nth-child(6):after { top: 1.813rem; left: 0.64rem; }
.lds-roller div:nth-child(7) { animation-delay: -0.252s; }
.lds-roller div:nth-child(7):after { top: 1.68rem; left: 0.453rem; }
.lds-roller div:nth-child(8) { animation-delay: -0.288s; }
.lds-roller div:nth-child(8):after { top: 1.493rem; left: 0.32rem; }
@keyframes lds-roller { 0% { transform: rotate(0); } 100% { transform: rotate(360deg); } }

/* PC 缩放由 core/scale-no.js + px2rem 动态完成。 */
.pcm-wrapper {
  position: relative;
  margin: 0;
}

#app-root { position: relative; min-height: 100vh; }

/* Shared Figma contact and download controls for all A/B/C variants. */
.landing-pc-artwork {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  pointer-events: none;
}
.landing-pc-contacts {
  position: absolute;
  top: 62px;
  right: 59.09px;
  display: flex;
  align-items: center;
  gap: 29px;
  transform: scaleY(var(--landing-contact-scale-y, 1));
  transform-origin: top right;
}
.landing-pc-contact {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
}
.landing-pc-contact img { display: block; }
.landing-pc-contact:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 4px;
}
.landing-download {
  position: absolute;
  left: 0.4266667rem;
  top: 17.4666667rem;
  width: 9.1466667rem;
  height: 1.28rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.08rem;
  padding: 0;
  border: 0;
  border-radius: 0.64rem;
  background: #1d9bf0;
  color: #fff;
  font-family: Inter, sans-serif;
  font-size: 0.4266667rem;
  font-weight: 700;
  line-height: 1.25;
  white-space: nowrap;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.landing-download:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 3px;
}
.landing-download:active { opacity: 0.85; }
.landing-download-icon {
  display: block;
  flex: 0 0 auto;
  width: auto;
  height: 0.5129707rem;
}
.landing-download-icon--ios { height: 0.4266667rem; }
.landing-download-hint {
  position: absolute;
  left: 0.4266667rem;
  right: 0.4266667rem;
  top: 19.4666667rem;
  margin: 0;
  color: #fff;
  font-family: Inter, sans-serif;
  font-size: 0.32rem;
  font-weight: 400;
  line-height: 0.4rem;
  text-align: center;
  white-space: nowrap;
}
