@charset "UTF-8";
* {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  padding: 0;
  background: #d9f5ff;
  font-family: "FZZhunYuan-M02S", "FZ Zhun Yuan", "方正准圆简体", "Microsoft YaHei", "PingFang SC", "Hiragino Sans GB", sans-serif;
  color: #2f6175;
  overflow-x: hidden;
  scrollbar-width: thin;
  scrollbar-color: #4aa8df #cfefff;
}

html {
  scroll-behavior: smooth;
  scrollbar-gutter: stable;
}

#app {
  width: 100%;
  overflow: hidden;
}

html::-webkit-scrollbar,
body::-webkit-scrollbar {
  width: 12px;
  height: 12px;
}

html::-webkit-scrollbar-track,
body::-webkit-scrollbar-track {
  background: #cfefff;
}

html::-webkit-scrollbar-thumb,
body::-webkit-scrollbar-thumb {
  border-radius: 999px;
  border: 2px solid #cfefff;
  background: linear-gradient(180deg, #8fd9ff 0%, #4aa8df 48%, #2f7fb8 100%);
  box-shadow: inset 0 0 6px rgba(255, 255, 255, 0.4);
}

html::-webkit-scrollbar-thumb:hover,
body::-webkit-scrollbar-thumb:hover {
  background: linear-gradient(180deg, #a4e3ff 0%, #5fb8ea 48%, #2e8bc9 100%);
}

a {
  color: inherit;
  text-decoration: none;
}

@font-face {
  font-family: "DFLiJinHeiW8-Subset";
  src: url("https://static.web.sdo.com/dnr/2026/202604yuyue/DFLiJinHeiW8-subset.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

.scroll-reveal {
  opacity: 0;
  transition-property: opacity, transform, filter;
  transition-duration: 0.9s;
  transition-timing-function: cubic-bezier(0.18, 0.82, 0.22, 1);
  transition-delay: var(--reveal-delay, 0s);
  will-change: opacity, transform, filter;
}

.scroll-reveal.reveal-up {
  transform: translate3d(0, 42px, 0);
}

.scroll-reveal.reveal-down {
  transform: translate3d(0, -28px, 0);
}

.scroll-reveal.reveal-left {
  transform: translate3d(-42px, 0, 0);
}

.scroll-reveal.reveal-right {
  transform: translate3d(42px, 0, 0);
}

.scroll-reveal.reveal-zoom {
  transform: scale(0.94);
  filter: blur(3px);
}

.scroll-reveal.reveal-fade {
  filter: brightness(0.96);
}

.scroll-reveal.reward-card.reveal-roll {
  transform: none;
  filter: none;
  transition-duration: 1.05s;
}

.scroll-reveal.reward-card.reveal-roll .reward-card-enter {
  opacity: 0;
  transform: translate3d(-280px, 36px, 0) scale(0.76);
  filter: brightness(0.92) drop-shadow(-22px 12px 14px rgba(42, 153, 185, 0.12));
  transition: opacity 1.05s cubic-bezier(0.15, 0.86, 0.2, 1), transform 1.05s cubic-bezier(0.15, 0.86, 0.2, 1), filter 1.05s cubic-bezier(0.15, 0.86, 0.2, 1);
  transition-delay: var(--reveal-delay, 0s);
  will-change: opacity, transform, filter;
}

.scroll-reveal.reward-card.reveal-roll.is-revealed .reward-card-enter {
  opacity: 1;
  transform: none;
  filter: none;
}

.scroll-reveal.is-revealed {
  opacity: 1;
  transform: none;
  filter: none;
}

.reveal-delay-1 {
  --reveal-delay: 0.12s;
}

.reveal-delay-2 {
  --reveal-delay: 0.24s;
}

.reveal-delay-3 {
  --reveal-delay: 0.36s;
}

.reveal-delay-4 {
  --reveal-delay: 0.48s;
}

.reveal-delay-5 {
  --reveal-delay: 0.6s;
}

@media (prefers-reduced-motion: reduce) {
  .scroll-reveal {
    opacity: 1;
    transform: none;
    filter: none;
    transition: none;
  }
}

button {
  padding: 0;
  border: 0;
  background: transparent;
  font: inherit;
}

.page-loader {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 22px;
  background: #000;
  color: #e4c874;
  letter-spacing: 4px;
  text-shadow: 0 0 12px rgba(213, 169, 62, 0.58);
}

.page-loader .loader-logo {
  position: relative;
  margin-left: 17px;
  width: 150px;
  height: 83px;
  margin-bottom: 30px;
  background: url("https://static.web.sdo.com/dnr/2026/202604yuyue/17255930613244.png") center/100% 100% no-repeat;
  filter: brightness(0.96) drop-shadow(0 0 20px rgba(213, 169, 62, 0.38));
  animation: loader-logo-breathe 2.4s ease-in-out infinite;
}

.page-loader .loader-progress {
  position: relative;
  width: 200px;
  height: 3px;
  margin-top: -8px;
  border: 1px solid rgba(217, 180, 92, 0.86);
  border-radius: 999px;
  background: #0b0804;
  box-shadow: inset 0 0 8px rgba(0, 0, 0, 0.86), 0 0 18px rgba(180, 134, 46, 0.28);
}

.page-loader .loader-progress span {
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #5b3b10 0%, #f7df8b 44%, #b88425 100%);
  box-shadow: 0 0 14px rgba(223, 179, 74, 0.72);
  transition: width 0.24s ease;
  font-size: 20px;
}

.page-loader .loader-percent {
  min-width: 72px;
  font-size: 18px;
  text-align: center;
  color: #f1d982;
}

.page-loader p {
  margin: -10px 0 0;
  font-size: 24px;
}

.activity-page {
  position: relative;
  width: 1920px;
  margin: 0 auto;
  overflow: hidden;
  opacity: 0;
  transition: opacity 0.5s ease;
}

.activity-page.is-page-ready {
  opacity: 1;
}

.activity-page .page-section {
  position: relative;
  width: 1920px;
}

.activity-page .page-section::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.activity-page .section-inner {
  position: relative;
  width: 1920px;
  height: 100%;
}

.section-hero {
  height: 879px;
  background: url("https://static.web.sdo.com/dnr/2026/202604yuyue/section-hero-bg.jpg") center top no-repeat;
}

.section-hero::before {
  background: radial-gradient(circle at 50% 24%, rgba(130, 228, 255, 0.28), transparent 28%), radial-gradient(circle at 23% 64%, rgba(255, 255, 255, 0.22), transparent 22%), radial-gradient(circle at 84% 54%, rgba(129, 219, 255, 0.18), transparent 18%);
  animation: hero-light-shift 9s ease-in-out infinite alternate;
}

.section-hero .hero-video-bg-wrap {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}

.section-hero .hero-video-bg-wrap::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(6, 18, 42, 0.18) 0%, rgba(14, 34, 72, 0.04) 24%, rgba(235, 248, 255, 0) 66%), linear-gradient(180deg, rgba(225, 246, 255, 0) 56%, rgba(239, 249, 255, 0.62) 84%, rgba(238, 248, 255, 0.94) 100%);
  z-index: 2;
}

.section-hero .hero-video-bg-wrap::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 50% 36%, rgba(151, 241, 255, 0.26), transparent 24%), radial-gradient(circle at 14% 28%, rgba(255, 255, 255, 0.08), transparent 18%), radial-gradient(circle at 86% 28%, rgba(255, 255, 255, 0.08), transparent 18%);
  mix-blend-mode: screen;
  opacity: 0.9;
  z-index: 3;
}

.section-hero .hero-video-bg-wrap .hero-video-bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  filter: saturate(1.06) brightness(0.92) contrast(1.04);
}

.section-hero .hero-mist {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 4;
  opacity: 0.8;
}

.section-hero .hero-mist::before, .section-hero .hero-mist::after {
  content: "";
  position: absolute;
  left: -4%;
  right: -4%;
  height: 180px;
  background: radial-gradient(circle at 20% 50%, rgba(255, 255, 255, 0.6), transparent 16%), radial-gradient(circle at 45% 52%, rgba(227, 249, 255, 0.66), transparent 18%), radial-gradient(circle at 73% 54%, rgba(255, 255, 255, 0.55), transparent 14%);
  filter: blur(26px);
}

.section-hero .hero-mist::before {
  bottom: 110px;
  animation: mist-drift 16s linear infinite;
}

.section-hero .hero-mist::after {
  bottom: 36px;
  opacity: 0.86;
  animation: mist-drift-reverse 20s linear infinite;
}

.section-hero .server-tag,
.section-hero .login-tag {
  position: absolute;
  top: 0;
  height: 56px;
  display: flex;
  width: 600px;
  padding-left: 30px;
  font-size: 28px;
  display: flex;
  font-weight: 400;
  letter-spacing: 1px;
  color: #fff;
  text-shadow: 0 2px 8px rgba(0, 34, 71, 0.6);
  z-index: 5;
  align-items: center;
}

.section-hero .server-tag {
  left: 0;
  background: linear-gradient(to right, #000 0%, #000 80%, transparent 100%);
}

.section-hero .login-tag {
  right: 0;
  background: linear-gradient(to left, #000 0%, #000 80%, transparent 100%);
}

.section-hero .top-login {
  position: absolute;
  top: 0px;
  right: 60px;
  width: 216px;
  height: 60px;
  overflow: hidden;
  background: url("https://static.web.sdo.com/dnr/2026/202604yuyue/btn-login.png") center/100% 100% no-repeat;
  line-height: 58px;
  text-align: center;
  font-size: 26px;
  font-weight: 400;
  color: #a14e11;
  transition: transform 0.25s ease, filter 0.25s ease;
  animation: cta-breathe 3.8s ease-in-out infinite;
  z-index: 5;
}

.section-hero .top-login:hover {
  transform: translateY(-3px) scale(1.02);
  filter: brightness(1.04) drop-shadow(0 8px 18px rgba(66, 46, 4, 0.28));
}

.section-hero .user-welcome {
  position: absolute;
  top: 0;
  right: 58px;
  height: 56px;
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 28px;
  font-weight: 400;
  letter-spacing: 1px;
  color: #fff;
  text-shadow: 0 2px 8px rgba(0, 34, 71, 0.6);
  white-space: nowrap;
}

.section-hero .user-welcome a {
  color: #fff;
}

.section-hero .user-welcome a:hover {
  color: #ffe173;
}

.section-hero .hero-coins {
  position: absolute;
  inset: 0 0 auto;
  height: 880px;
  background: url("https://static.web.sdo.com/dnr/2026/202604yuyue/hero-gold-coin-burst.png") center top no-repeat;
  pointer-events: none;
  z-index: 5;
}

.section-hero .hero-title-image {
  position: absolute;
  top: 450px;
  left: 551px;
  width: 1045px;
  height: 366px;
  background: url("https://static.web.sdo.com/dnr/2026/202604yuyue/hero-main-title.png") center/100% 100% no-repeat;
  filter: drop-shadow(0 0 24px rgba(125, 220, 255, 0.28));
  animation: title-glow 5s ease-in-out infinite;
  z-index: 6;
}

.section-hero .hero-video {
  position: absolute;
  top: 477px;
  right: 325px;
  width: 288px;
  height: 288px;
  cursor: pointer;
  transition: transform 0.28s ease, filter 0.28s ease;
  animation: video-hover-idle 4.6s ease-in-out infinite;
  z-index: 6;
}

.section-hero .hero-video .hero-video-glow,
.section-hero .hero-video .hero-video-ring {
  position: absolute;
  inset: 0;
  transform-origin: center;
  background-position: center;
  background-repeat: no-repeat;
  background-size: 100% 100%;
}

.section-hero .hero-video .hero-video-icon {
  position: absolute;
  top: 107px;
  left: 121px;
  width: 60px;
  height: 67px;
  filter: drop-shadow(0 0 10px rgba(255, 255, 255, 0.9));
  background: url("https://static.web.sdo.com/dnr/2026/202604yuyue/hero-video-button-icon.png") center/100% 100% no-repeat;
}

.section-hero .hero-video .hero-video-glow {
  width: 288px;
  height: 288px;
  background-image: url("https://static.web.sdo.com/dnr/2026/202604yuyue/hero-video-button-glow.png");
  animation: spin-clockwise 12s linear infinite;
}

.section-hero .hero-video .hero-video-ring {
  width: 172px;
  height: 172px;
  right: 0;
  top: 0;
  bottom: 0;
  left: 0;
  margin: auto;
  background-image: url("https://static.web.sdo.com/dnr/2026/202604yuyue/hero-video-button-ring.png");
  animation: spin-counter-clockwise 18s linear infinite;
}

.section-hero .hero-video:hover {
  transform: translateY(-6px) scale(1.03);
  filter: drop-shadow(0 0 28px rgba(120, 232, 255, 0.55));
}

.section-hero .hero-video:hover .hero-video-glow {
  animation-duration: 8s;
}

.section-hero .hero-video:hover .hero-video-ring {
  animation-duration: 12s;
}

.section-hero .hero-copy {
  position: absolute;
  top: 724px;
  left: 0;
  width: 100%;
  text-align: center;
  color: #fff;
  text-shadow: 0 0 14px rgba(0, 0, 0, 0.82), 1px 4px 4px rgba(0, 0, 0, 0.1);
  animation: soft-float 5.2s ease-in-out infinite;
  z-index: 6;
}

.section-hero .hero-copy p {
  margin: 0;
}

.section-hero .hero-copy p:first-child {
  font-size: 26px;
  letter-spacing: 1px;
}

.section-hero .hero-copy p:last-child {
  margin-top: 10px;
  font-size: 38px;
  color: #fff;
}

.section-hero .hero-copy .gold-shine {
  position: relative;
  display: inline-block;
  color: #ffe173;
  animation: gold-text-shine 2.8s ease-in-out infinite;
}

.section-hero .hero-nav-wrap {
  position: absolute;
  left: 0;
  top: 842px;
  width: 1920px;
  height: 88px;
  z-index: 6;
}

.section-hero .hero-nav-wrap .hero-nav-line {
  position: absolute;
  left: 31px;
  top: 23px;
  width: 1858px;
  height: 34px;
  pointer-events: none;
}

.section-hero .hero-nav-wrap .hero-nav-line .hero-nav-arrow {
  position: absolute;
  top: 0;
  width: 213px;
  height: 34px;
  background-image: url("https://static.web.sdo.com/dnr/2026/202604yuyue/nav-tab-connector-line.png");
  background-repeat: no-repeat;
  background-size: 1858px 34px;
}

.section-hero .hero-nav-wrap .hero-nav-line .hero-nav-arrow.left {
  left: 0;
  background-position: left center;
}

.section-hero .hero-nav-wrap .hero-nav-line .hero-nav-arrow.right {
  right: 0;
  background-position: right center;
}

.section-hero .hero-nav-wrap .hero-nav-line .hero-nav-dots {
  position: absolute;
  left: 50%;
  top: 0;
  width: 1469px;
  height: 34px;
  transform: translateX(-50%);
}

.section-hero .hero-nav-wrap .hero-nav {
  position: absolute;
  inset: 0;
  display: flex;
  justify-content: center;
  gap: 92px;
}

.section-hero .hero-nav-wrap .hero-nav .hero-nav-item {
  position: relative;
  width: 280px;
  height: 88px;
  background: url("https://static.web.sdo.com/dnr/2026/202604yuyue/nav-tab-bg.png") center/100% 100% no-repeat;
  transition: transform 0.22s ease, filter 0.22s ease;
}

.section-hero .hero-nav-wrap .hero-nav .hero-nav-item span {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 36px;
  font-weight: 400;
  color: #286eb5;
  letter-spacing: 1px;
  transition: color 0.22s ease, text-shadow 0.22s ease;
}

.section-hero .hero-nav-wrap .hero-nav .hero-nav-item:hover {
  transform: translateY(-6px);
  filter: drop-shadow(0 8px 18px rgba(90, 208, 255, 0.32));
}

.section-hero .hero-nav-wrap .hero-nav .hero-nav-item:hover span {
  color: #315f8f;
  text-shadow: 0 0 12px rgba(255, 255, 255, 0.72);
}

.section-hero-bridge {
  background: url(https://static.web.sdo.com/dnr/2026/202604yuyue/section-hero-bg.jpg) center bottom no-repeat;
  height: 101px;
}

.section-hero-bridge::before {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.28) 0%, rgba(255, 255, 255, 0.08) 100%);
  opacity: 0.62;
}

.section-hero-bridge .section-hero-bridge-bg,
.section-hero-bridge .section-hero-bridge-fade {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.section-hero-bridge .section-hero-bridge-bg {
  background: url("https://static.web.sdo.com/dnr/2026/202604yuyue/section-hero-bg.jpg") center bottom/1920px auto no-repeat;
  opacity: 0.96;
  filter: saturate(1.02) brightness(1.02);
}

.section-hero-bridge .section-hero-bridge-fade {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.92) 46%, rgba(255, 255, 255, 0.22) 72%, rgba(255, 255, 255, 0) 100%);
  mix-blend-mode: screen;
}

.section-milestone {
  height: 1039px;
  background: url("https://static.web.sdo.com/dnr/2026/202604yuyue/section-milestone-bg.jpg") center top no-repeat;
}

.section-milestone .section-heading.milestone-heading {
  top: 36px;
}

.section-milestone .milestone-title {
  width: 684px;
  height: 86px;
  background: url("https://static.web.sdo.com/dnr/2026/202604yuyue/section-milestone-title.png") center/100% 100% no-repeat;
}

.section-milestone .milestone-rules {
  position: absolute;
  top: 174px;
  left: 0;
  width: 100%;
  text-align: center;
  font-size: 24px;
  line-height: 1.55;
  font-weight: 400;
  color: #3e7181;
}

.section-milestone .milestone-rules p {
  margin: 0;
}

.section-milestone .milestone-rules .hot {
  color: #ff5b8d;
}

.section-milestone .milestone-rules .server {
  color: #4062d7;
}

.section-milestone .milestone-rules .rule-link {
  display: inline-block;
  margin-top: 22px;
  font-size: 24px;
  color: #ff5c99;
  text-decoration: underline;
  transition: transform 0.22s ease, text-shadow 0.22s ease;
}

.section-milestone .milestone-rules .rule-link:hover {
  transform: translateY(-2px);
  text-shadow: 0 0 12px rgba(255, 111, 173, 0.45);
}

.section-milestone .reward-nodes {
  position: absolute;
  display: flex;
  inset: 0;
  align-items: center;
  justify-content: space-evenly;
  height: 400px;
  top: 359px;
  overflow: hidden;
}

.section-milestone .reward-nodes .reward-atmosphere-canvas {
  position: absolute;
  inset: 20px 0;
  width: 100%;
  pointer-events: none;
  z-index: 0;
}

.section-milestone .reward-nodes .reward-card {
  cursor: pointer;
  position: relative;
  width: 254px;
  height: 284px;
  flex: 0 0 254px;
  z-index: 1;
}

.section-milestone .reward-nodes .reward-card .reward-card-enter {
  position: absolute;
  inset: 0;
}

.section-milestone .reward-nodes .reward-card .reward-card-float {
  position: absolute;
  inset: 0;
  transition: transform 0.25s ease, filter 0.25s ease;
  animation: reward-idle 4.8s ease-in-out infinite;
  animation-delay: var(--reward-idle-delay, 0s);
}

.section-milestone .reward-nodes .reward-card .reward-count {
  position: absolute;
  top: -35px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
  font-size: 30px;
  line-height: 1;
  font-weight: 400;
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.95);
}

.section-milestone .reward-nodes .reward-card.available:hover .reward-card-bg {
  background-image: url("https://static.web.sdo.com/dnr/2026/202604yuyue/reward-card-unavailable.png");
}

.section-milestone .reward-nodes .reward-card.available:hover .reward-card-bg .reward-name {
  color: #4cecff;
}

.section-milestone .reward-nodes .reward-card.available:hover .reward-item-slot {
  border-color: #56d8ff;
}

.section-milestone .reward-nodes .reward-card.available:hover:after {
  content: "";
  width: 136px;
  height: 108px;
  background-image: url("https://static.web.sdo.com/dnr/2026/202604yuyue/reward-badge.png");
  background-position: center;
  background-repeat: no-repeat;
  background-size: 100% 100%;
  position: absolute;
  left: 0;
  right: 0;
  top: 40px;
  margin: 0 auto;
}

.section-milestone .reward-nodes .reward-card.available .reward-count {
  color: #ff3c88;
}

.section-milestone .reward-nodes .reward-card.available .reward-name {
  color: #fff;
}

.section-milestone .reward-nodes .reward-card.unavailable .reward-count {
  color: #2b8b9f;
}

.section-milestone .reward-nodes .reward-card.unavailable .reward-name {
  color: #4cecff;
}

.section-milestone .reward-nodes .reward-card.claimed .reward-count {
  color: #496c79;
}

.section-milestone .reward-nodes .reward-card.claimed .reward-name {
  color: #bff4ff;
}

.section-milestone .reward-nodes .reward-card .reward-card-bg {
  position: absolute;
  inset: 0;
  width: 254px;
  height: 284px;
  z-index: 1;
  background-position: center;
  background-repeat: no-repeat;
  background-size: 100% 100%;
  filter: brightness(1.04);
  transition: filter 0.25s ease;
}

.section-milestone .reward-nodes .reward-card .reward-card-bg.available {
  background-image: url("https://static.web.sdo.com/dnr/2026/202604yuyue/reward-card-available.png");
}

.section-milestone .reward-nodes .reward-card .reward-card-bg.unavailable {
  background-image: url("https://static.web.sdo.com/dnr/2026/202604yuyue/reward-card-unavailable.png");
}

.section-milestone .reward-nodes .reward-card .reward-card-bg.unavailable .reward-name {
  color: #4cecff;
}

.section-milestone .reward-nodes .reward-card .reward-card-bg.claimed {
  background-image: url("https://static.web.sdo.com/dnr/2026/202604yuyue/reward-card-claimed.png");
}

.section-milestone .reward-nodes .reward-card .reward-item-slot {
  position: absolute;
  left: 50%;
  top: 58px;
  width: 86px;
  height: 86px;
  transform: translateX(-50%);
  z-index: 2;
  border-radius: 8px;
  border: 3px solid #ff5b36;
  background-color: #050708;
  background-position: center;
  background-repeat: no-repeat;
  background-size: 84px 84px;
  transition: transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
}

.section-milestone .reward-nodes .reward-card.claimed .reward-item-slot {
  border-color: #56d8ff;
  box-shadow: inset 0 0 0 2px rgba(157, 244, 255, 0.5), 0 0 0 1px rgba(5, 33, 45, 0.9), 0 0 16px rgba(77, 210, 255, 0.68), 0 0 30px rgba(88, 231, 255, 0.38);
}

.section-milestone .reward-nodes .reward-card.unavailable .reward-item-slot {
  border-color: #56d8ff;
  box-shadow: inset 0 0 0 2px rgba(157, 244, 255, 0.5), 0 0 0 1px rgba(5, 33, 45, 0.9), 0 0 16px rgba(77, 210, 255, 0.68), 0 0 30px rgba(88, 231, 255, 0.38);
}

.section-milestone .reward-nodes .reward-card .reward-name {
  position: absolute;
  left: 50%;
  bottom: 16px;
  width: 100%;
  transform: translateX(-50%);
  z-index: 2;
  text-align: center;
  font-size: 20px;
  line-height: 1.18;
  font-weight: 400;
}

.section-milestone .reward-nodes .reward-card:hover .reward-card-float {
  transform: translateY(-6px) scale(1.01);
  filter: drop-shadow(0 14px 26px rgba(80, 198, 232, 0.24));
}

.section-milestone .reward-nodes .reward-card:hover .reward-card-bg {
  filter: brightness(1.08);
}

.section-milestone .reward-nodes .reward-card:hover .reward-item-slot {
  transform: translateX(-50%) scale(1.04);
}

.section-milestone .reward-nodes .reward-card.claimed .reward-item-slot {
  box-shadow: inset 0 0 0 2px rgba(185, 250, 255, 0.58), 0 0 0 1px rgba(5, 33, 45, 0.9), 0 0 20px rgba(77, 210, 255, 0.78), 0 0 36px rgba(88, 231, 255, 0.46);
}

.section-milestone .reward-nodes .reward-node-1w,
.section-milestone .reward-nodes .reward-node-8w {
  margin-bottom: -111px;
}

.section-milestone .booking-total {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 216px;
  text-align: center;
  font-size: 28px;
  font-weight: 400;
  color: #46a3b9;
}

.section-milestone .main-cta {
  position: absolute;
  left: 50%;
  bottom: 86px;
  width: 454px;
  height: 127px;
  transform: translateX(-50%);
  background: url("https://static.web.sdo.com/dnr/2026/202604yuyue/cta-booking-login-button.png") center/100% 100% no-repeat;
  transition: transform 0.24s ease, filter 0.24s ease;
  animation: cta-breathe 3.4s ease-in-out infinite;
}

.section-milestone .main-cta span {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 34px;
  font-weight: 400;
  color: #a14e11;
  letter-spacing: 1px;
}

.section-milestone .main-cta:hover {
  transform: translateX(-50%) translateY(-5px) scale(1.02);
  filter: drop-shadow(0 10px 20px rgba(210, 170, 60, 0.35));
}

.section-story-follow {
  height: 1544px;
  background: url("https://static.web.sdo.com/dnr/2026/202604yuyue/section-story-follow-bg.jpg") center top no-repeat;
}

.section-story-follow::before {
  background: radial-gradient(circle at 50% 24%, rgba(255, 255, 255, 0.14), transparent 20%), radial-gradient(circle at 78% 38%, rgba(146, 225, 255, 0.1), transparent 15%);
  animation: ambient-glow 14s ease-in-out infinite reverse;
}

.section-story-follow .story-heading {
  top: 0px;
}

.section-story-follow .story-title {
  width: 652px;
  height: 87px;
  background: url("https://static.web.sdo.com/dnr/2026/202604yuyue/section-story-title.png") center/100% 100% no-repeat;
}

.section-story-follow .story-copy {
  position: absolute;
  top: 146px;
  left: 0;
  width: 100%;
  text-align: center;
  font-size: 25px;
  line-height: 1.62;
  font-weight: 400;
  color: #346d79;
}

.section-story-follow .story-copy p {
  margin: 0;
}

.section-story-follow .story-copy .pink {
  color: #ff4d9b;
}

.section-story-follow .follow-block {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 420px;
}

.section-story-follow .follow-block .follow-heading {
  top: 0;
}

.section-story-follow .follow-block .follow-title {
  width: 611px;
  height: 86px;
  background: url("https://static.web.sdo.com/dnr/2026/202604yuyue/section-follow-title.png") center/100% 100% no-repeat;
}

.section-story-follow .follow-block .social-grid {
  position: absolute;
  left: 330px;
  top: 185px;
  display: grid;
  grid-template-columns: repeat(6, 160px);
  gap: 60px;
}

.section-story-follow .follow-block .social-grid .social-card {
  position: relative;
  overflow: hidden;
  width: 160px;
  height: 200px;
  background-position: center;
  background-repeat: no-repeat;
  background-size: 100% 100%;
  transition: transform 0.24s ease, filter 0.24s ease;
}

.section-story-follow .follow-block .social-grid .social-card .social-card-qr {
  position: absolute;
  left: 50%;
  top: 18px;
  width: 128px;
  height: 128px;
  transform: translateX(-50%) translateY(12px) scale(0.9);
  opacity: 0;
  z-index: 2;
  border: 2px solid rgba(255, 255, 255, 0.18);
  background-color: rgba(4, 24, 39, 0.94);
  background-position: center;
  background-repeat: no-repeat;
  background-size: 100% 100%;
  box-shadow: 0 16px 28px rgba(0, 20, 31, 0.46), inset 0 0 22px rgba(114, 221, 255, 0.18);
  transition: opacity 0.22s ease, transform 0.22s ease;
  pointer-events: none;
}

.section-story-follow .follow-block .social-grid .social-card::after {
  content: "";
  position: absolute;
  top: -42%;
  left: -88%;
  width: 48%;
  height: 190%;
  pointer-events: none;
  background: linear-gradient(110deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0) 30%, rgba(255, 255, 255, 0.78) 48%, rgba(255, 244, 179, 0.5) 58%, rgba(255, 255, 255, 0) 74%, rgba(255, 255, 255, 0) 100%);
  transform: skewX(-18deg);
  opacity: 0;
}

.section-story-follow .follow-block .social-grid .social-card[data-index="0"] {
  animation-delay: 0s;
}

.section-story-follow .follow-block .social-grid .social-card[data-index="1"] {
  animation-delay: 0.35s;
}

.section-story-follow .follow-block .social-grid .social-card[data-index="2"] {
  animation-delay: 0.7s;
}

.section-story-follow .follow-block .social-grid .social-card[data-index="3"] {
  animation-delay: 1.05s;
}

.section-story-follow .follow-block .social-grid .social-card[data-index="4"] {
  animation-delay: 1.4s;
}

.section-story-follow .follow-block .social-grid .social-card[data-index="5"] {
  animation-delay: 1.75s;
}

.section-story-follow .follow-block .social-grid .social-card:hover {
  transform: translateY(-10px) scale(1.04);
  filter: drop-shadow(0 10px 20px rgba(63, 161, 194, 0.25)) brightness(1.1);
}

.section-story-follow .follow-block .social-grid .social-card:hover.has-qr .social-card-qr {
  opacity: 1;
  transform: translateX(-50%) translateY(0) scale(1);
}

.section-story-follow .follow-block .social-grid .social-card:hover.has-qr::after {
  animation: none;
}

.section-story-follow .follow-block .social-grid .social-card:hover::after {
  animation: social-card-shine 0.78s ease-out;
}

.section-heading {
  position: absolute;
  left: 0;
  width: 100%;
  text-align: center;
}

.section-heading .section-title-image {
  position: relative;
  margin: 0 auto;
  animation: section-title-float 5.6s ease-in-out infinite;
}

.section-heading .section-divider {
  position: relative;
  width: 1854px;
  height: 25px;
  margin: 22px auto 0;
  background: url("https://static.web.sdo.com/dnr/2026/202604yuyue/section-divider-line.png") center/100% 100% no-repeat;
}

.common-modal {
  position: fixed;
  inset: 0;
}

.common-modal .common-modal-mask {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.9);
}

.common-modal .common-modal-panel {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 692px;
  height: 414px;
  transform: translate3d(-50%, -50%, 0);
  will-change: transform, opacity;
  backface-visibility: hidden;
  animation: modal-pop 0.34s cubic-bezier(0.2, 0.8, 0.2, 1) both;
}

.common-modal .common-modal-panel .common-modal-frame {
  position: relative;
  width: 100%;
  height: 100%;
  background: url("https://static.web.sdo.com/dnr/2026/202604yuyue/modal-bg.png") center/100% 100% no-repeat;
}

.common-modal .common-modal-video-panel {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 1294px;
  height: 766px;
  background: url("https://static.web.sdo.com/dnr/2026/202604yuyue/modal-v-bg.png") center/100% 100% no-repeat;
  transform: translate3d(-50%, -50%, 0);
  will-change: transform, opacity;
  backface-visibility: hidden;
  animation: modal-pop 0.34s cubic-bezier(0.2, 0.8, 0.2, 1) both;
}

.common-modal .common-modal-video-stage {
  position: absolute;
  left: 22px;
  top: 36px;
  width: 1250px;
  height: 694px;
  overflow: hidden;
  background: #143a52;
}

.common-modal .common-modal-video-stage::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 50% 50%, rgba(90, 217, 255, 0.18), transparent 28%), rgba(3, 23, 34, 0.1);
  pointer-events: none;
  opacity: 1;
  transition: opacity 0.25s ease;
}

.common-modal .common-modal-video-stage.is-playing::after {
  opacity: 0;
}

.common-modal .common-modal-video-player {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  background: #061721;
}

.common-modal .common-modal-video-play {
  position: absolute;
  left: 0%;
  top: 0;
  bottom: 0;
  right: 0;
  margin: auto;
  width: 288px;
  height: 288px;
  cursor: pointer;
  transform-origin: center;
  transition: transform 0.28s ease, filter 0.28s ease;
  animation: video-hover-idle 4.6s ease-in-out infinite;
  z-index: 3;
}

.common-modal .common-modal-video-play .hero-video-glow,
.common-modal .common-modal-video-play .hero-video-ring {
  position: absolute;
  inset: 0;
  transform-origin: center;
  background-position: center;
  background-repeat: no-repeat;
  background-size: 100% 100%;
}

.common-modal .common-modal-video-play .hero-video-icon {
  position: absolute;
  top: 107px;
  left: 121px;
  width: 60px;
  height: 67px;
  filter: drop-shadow(0 0 10px rgba(255, 255, 255, 0.9));
  background: url("https://static.web.sdo.com/dnr/2026/202604yuyue/hero-video-button-icon.png") center/100% 100% no-repeat;
}

.common-modal .common-modal-video-play .hero-video-glow {
  width: 288px;
  height: 288px;
  background-image: url("https://static.web.sdo.com/dnr/2026/202604yuyue/hero-video-button-glow.png");
  animation: spin-clockwise 12s linear infinite;
}

.common-modal .common-modal-video-play .hero-video-ring {
  width: 172px;
  height: 172px;
  right: 0;
  top: 0;
  bottom: 0;
  left: 0;
  margin: auto;
  background-image: url("https://static.web.sdo.com/dnr/2026/202604yuyue/hero-video-button-ring.png");
  animation: spin-counter-clockwise 18s linear infinite;
}

.common-modal .common-modal-video-play:hover {
  transform: translate(-50%, calc(-50% - 6px)) scale(0.75);
  filter: drop-shadow(0 0 28px rgba(120, 232, 255, 0.55));
}

.common-modal .common-modal-video-play:hover .hero-video-glow {
  animation-duration: 8s;
}

.common-modal .common-modal-video-play:hover .hero-video-ring {
  animation-duration: 12s;
}

.common-modal .common-modal-video-close {
  position: absolute;
  top: -27px;
  right: -25px;
  width: 85px;
  height: 85px;
  background: url("https://static.web.sdo.com/dnr/2026/202604yuyue/modal-v-close.png") center/100% 100% no-repeat;
  cursor: pointer;
  transition: transform 0.24s ease, filter 0.24s ease;
}

.common-modal .common-modal-video-close:hover {
  transform: rotate(12deg) scale(1.06);
  filter: drop-shadow(0 0 14px rgba(120, 232, 255, 0.62));
}

.common-modal .common-modal-close {
  position: absolute;
  top: -26px;
  right: -26px;
  width: 85px;
  height: 85px;
  background: url("https://static.web.sdo.com/dnr/2026/202604yuyue/modal-v-close.png") center/100% 100% no-repeat;
  cursor: pointer;
  z-index: 2;
  transition: transform 0.24s ease, filter 0.24s ease;
}

.common-modal .common-modal-close:hover {
  transform: rotate(12deg) scale(1.06);
  filter: drop-shadow(0 0 14px rgba(120, 232, 255, 0.62));
}

.common-modal .common-modal-header {
  position: absolute;
  top: 43px;
  left: 0;
  width: 100%;
  height: 44px;
  text-align: center;
}

.common-modal .common-modal-header .common-modal-title {
  font-size: 31px;
  line-height: 44px;
  width: 159px;
  margin: 0 auto;
  font-weight: 400;
  font-family: "DFLiJinHeiW8-Subset", "DFLiJinHeiW8-GB", "华康俪金黑W8", serif;
  background: linear-gradient(180deg, #7290d1 0%, #2b7990 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  white-space: nowrap;
  letter-spacing: 3px;
  text-align: center;
}

.common-modal .common-modal-body {
  position: absolute;
  left: 36px;
  top: 97px;
  width: 620px;
  height: 200px;
  box-sizing: border-box;
  padding: 0 24px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-content: center;
  align-items: center;
  justify-content: center;
}

.common-modal .common-modal-body.is-rules {
  padding: 10px;
  text-align: left;
}

.common-modal .common-modal-body.is-form {
  padding: 20px 20px 12px 0;
}

.common-modal .common-modal-body .common-modal-line {
  margin: 0;
  font-size: 22px;
  line-height: 1.85;
  font-weight: 600;
  color: #28778e;
}

.common-modal .common-modal-body .common-modal-line .hot {
  color: #ff5799;
}

.common-modal .common-modal-body .common-modal-qr {
  width: 100px;
  margin: 6px 0 10px;
  object-fit: cover;
  image-rendering: -webkit-optimize-contrast;
}

.common-modal .common-modal-body .common-modal-note {
  margin: 0;
  font-size: 18px;
  line-height: 1.4;
  color: #28778e;
  font-family: "微软雅黑";
}

.common-modal .common-modal-rules {
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: modal-rule;
}

.common-modal .common-modal-rules li {
  position: relative;
  margin: 0;
  padding-left: 38px;
  font-size: 22px;
  line-height: 1.36;
  font-weight: 400;
  color: #28778e;
}

.common-modal .common-modal-rules li::before {
  counter-increment: modal-rule;
  content: counter(modal-rule) "，";
  position: absolute;
  left: 0;
  top: 0;
}

.common-modal .common-modal-form {
  width: 540px;
  margin: 0 auto;
}

.common-modal .common-modal-field {
  position: relative;
  display: grid;
  grid-template-columns: 110px 1fr;
  align-items: center;
  gap: 10px;
  margin-bottom: 18px;
}

.common-modal .common-modal-field.has-action {
  grid-template-columns: 110px 1fr 145px;
}

.common-modal .common-modal-field-label {
  font-size: 24px;
  line-height: 1;
  color: #28778e;
  text-align: right;
}

.common-modal .common-modal-input {
  width: 100%;
  height: 42px;
  box-sizing: border-box;
  border: 0;
  border-radius: 6px;
  background: #fff;
  padding: 0 18px;
  font: inherit;
  font-size: 22px;
  color: #28778e;
  outline: none;
}

.common-modal .common-modal-input:focus {
  box-shadow: 0 0 0 3px rgba(255, 87, 153, 0.18), 0 0 18px rgba(255, 255, 255, 0.7);
}

.common-modal .common-modal-field-action {
  border: 0;
  background: transparent;
  font-size: 24px;
  line-height: 1;
  color: #ff5799;
  text-decoration: underline;
  cursor: pointer;
  white-space: nowrap;
  transition: color 0.22s ease, transform 0.22s ease;
}

.common-modal .common-modal-field-action:hover {
  color: #ff2f84;
  transform: translateY(-2px);
}

.common-modal .common-modal-field-action:disabled {
  cursor: wait;
  opacity: 0.72;
  transform: none;
  filter: saturate(0.9);
}

.common-modal .common-modal-tip {
  margin: 24px 0 0;
  font-size: 20px;
  line-height: 1.2;
  color: #28778e;
  text-align: center;
}

.common-modal .common-modal-actions {
  position: absolute;
  left: 0;
  bottom: 40px;
  width: 100%;
  display: flex;
  justify-content: center;
  gap: 18px;
}

.common-modal .common-modal-actions .common-modal-cancel,
.common-modal .common-modal-actions .common-modal-confirm {
  width: 222px;
  height: 62px;
  background: url("https://static.web.sdo.com/dnr/2026/202604yuyue/cta-booking-login-button.png") center/100% 100% no-repeat;
  font-size: 24px;
  font-weight: 400;
  color: #a34f13;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.22s ease, filter 0.22s ease;
  padding-bottom: 2px;
}

.common-modal .common-modal-actions .common-modal-cancel:hover,
.common-modal .common-modal-actions .common-modal-confirm:hover {
  transform: translateY(-3px) scale(1.02);
}

.common-modal .common-modal-actions .common-modal-cancel:disabled,
.common-modal .common-modal-actions .common-modal-confirm:disabled {
  cursor: wait;
  transform: none;
  filter: grayscale(0.15) brightness(0.94);
  opacity: 0.82;
}

.common-modal .common-modal-actions .common-modal-cancel {
  filter: grayscale(1);
}

.reward-name-highlight {
  color: white !important;
}

@keyframes spin-clockwise {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

@keyframes hero-light-shift {
  0% {
    opacity: 0.72;
    transform: translate3d(-10px, 0, 0) scale(1);
  }
  100% {
    opacity: 1;
    transform: translate3d(12px, -8px, 0) scale(1.03);
  }
}

@keyframes ambient-glow {
  0%,
  100% {
    opacity: 0.72;
  }
  50% {
    opacity: 1;
  }
}

@keyframes mist-drift {
  0% {
    transform: translate3d(-1%, 0, 0);
  }
  50% {
    transform: translate3d(2%, -6px, 0);
  }
  100% {
    transform: translate3d(5%, 0, 0);
  }
}

@keyframes mist-drift-reverse {
  0% {
    transform: translate3d(3%, 0, 0);
  }
  50% {
    transform: translate3d(0, 6px, 0);
  }
  100% {
    transform: translate3d(-4%, 0, 0);
  }
}

@keyframes soft-float {
  0%,
  100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-4px);
  }
}

@keyframes title-glow {
  0%,
  100% {
    filter: drop-shadow(0 0 20px rgba(125, 220, 255, 0.2));
  }
  50% {
    filter: drop-shadow(0 0 34px rgba(125, 220, 255, 0.42));
  }
}

@keyframes gold-text-shine {
  0%,
  100% {
    filter: brightness(1);
    transform: scale(1);
  }
  50% {
    filter: brightness(1.28);
    transform: scale(1.045);
  }
}

@keyframes video-hover-idle {
  0%,
  100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-5px);
  }
}

@keyframes section-title-float {
  0%,
  100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-3px);
  }
}

@keyframes reward-idle {
  0%,
  100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-6px);
  }
}

@keyframes cta-breathe {
  0%,
  100% {
    filter: brightness(1) drop-shadow(0 0 0 rgba(255, 229, 138, 0));
  }
  50% {
    filter: brightness(1.05) drop-shadow(0 0 16px rgba(255, 229, 138, 0.36));
  }
}

@keyframes loader-logo-breathe {
  0%,
  100% {
    filter: brightness(0.9) drop-shadow(0 0 14px rgba(213, 169, 62, 0.24));
  }
  50% {
    filter: brightness(1.18) drop-shadow(0 0 26px rgba(229, 189, 83, 0.62));
  }
}

@keyframes social-float {
  0%,
  100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-7px);
  }
}

@keyframes social-card-shine {
  0% {
    left: -88%;
    opacity: 0;
  }
  18% {
    opacity: 0.92;
  }
  100% {
    left: 138%;
    opacity: 0;
  }
}

@keyframes modal-pop {
  0% {
    opacity: 0;
    transform: translate(-50%, -46%) scale(0.94);
  }
  100% {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
  }
}

@keyframes spin-counter-clockwise {
  from {
    transform: rotate(360deg);
  }
  to {
    transform: rotate(0deg);
  }
}
