* { box-sizing: border-box; margin: 0; padding: 0; }
html, body, .page { width: 100%; min-height: 100%; }
body {
  margin: 0;
  background: #4b2318;
  color: #fff;
  font-family: PingFang SC, Hiragino Sans GB, Microsoft YaHei, sans-serif;
  -webkit-tap-highlight-color: transparent;
}
.page {
  min-height: 100vh;
  display: flex;
  justify-content: center;
  align-items: flex-start;
}
.hero-shell {
  --top-bar-height: 15.73333vw;
  --slogan-bottom: 29.33333vw;
  --layer-title-top: 22.4vw;
  --layer-model-top: 36vw;
  position: relative;
  width: 100%;
  margin: 0 auto;
  aspect-ratio: 750 / 1334;
  height: auto;
  background: #4b2318;
  overflow: hidden;
}
.visual-stage {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.layer {
  position: absolute;
  display: block;
  z-index: 1;
  max-width: none;
  pointer-events: none;
  user-select: none;
}
.layer-title {
  width: 90%;
  left: 50%;
  transform: translate(-50%);
  top: var(--layer-title-top);
  z-index: 3;
}
.layer-model {
  width: 100%;
  height: 64%;
  left: 0;
  top: var(--layer-model-top);
  object-fit: cover;
  object-position: center 18%;
  z-index: 1;
}
.layer-slogan {
  z-index: 4;
  width: 88%;
  left: 50%;
  transform: translate(-50%);
  bottom: var(--slogan-bottom);
}
.top-bar {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: var(--top-bar-height);
  padding: 1.33333vw 2.13333vw;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  z-index: 5;
}
.brand-bar {
  position: relative;
  width: 40vw;
  height: 11.73333vw;
  z-index: 6;
}
.top-download-btn {
  position: relative;
  width: 21.86667vw;
  height: 8.26667vw;
  padding: 0;
  border: none;
  background: none;
  cursor: pointer;
  z-index: 6;
  top: 50%;
  transform: translateY(-50%);
}
.top-download-btn .btn-img {
  box-shadow: 0 0.99893vw 0.99893vw #00000040;
}
.bottom-cta {
  position: absolute;
  left: 50%;
  top: 86%;
  transform: translate(-50%);
  width: min(84%, 82.66667vw);
  z-index: 4;
  text-align: center;
}
.install-tip {
  margin-top: 0.8vw;
  color: #fff;
  font-size: 2.13333vw;
  font-weight: 500;
  line-height: 1.2;
}
.main-download-btn {
  position: relative;
  width: 29.33333vw;
  height: 9.33333vw;
  padding: 0;
  border: none;
  background: none;
  cursor: pointer;
  overflow: visible;
}
.btn-img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.main-download-pulse {
  display: inline-block;
  margin-bottom: 2.66667vw;
  animation: ctaPulseZoom 1.3s ease-in-out infinite;
  transform-origin: center;
}
.boot, .miss {
  margin: auto;
  padding: 40px 24px;
  text-align: center;
  font-size: 20px;
}
.miss { color: #ffd0d0; }

@keyframes ctaPulseZoom {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.08); }
}

