:root {
  --blue: #1966ff;
  --ink: #252931;
  --viewport-height: 100vh;
}

@supports (height: 100dvh) {
  :root {
    --viewport-height: 100dvh;
  }
}

* {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  padding: 0;
}

body {
  font-family: "PingFang SC", "Alibaba PuHuiTi", "Noto Sans SC", "Microsoft YaHei", sans-serif;
  background: #000;
  color: var(--ink);
}

.native-main {
  width: 100%;
  overflow-x: hidden;
}

.canvas-wrap {
  --canvas-width: 1920;
  --focus-width: var(--canvas-width);
  --canvas-shift: 0;
  --responsive-canvas-height: var(--canvas-height);
  --viewport-gutter: 0px;
  --viewport-width: calc(100vw - (var(--viewport-gutter) * 2));
  --scale-w: calc(var(--viewport-width) / (var(--focus-width) * 1px));
  --scale: min(1, var(--scale-w));
  --type-comp-max: 1.5;
  --type-comp: min(calc(1 / max(var(--scale), 0.01)), var(--type-comp-max));
  content-visibility: auto;
  contain-intrinsic-size: 1400px;
  position: relative;
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  width: 100%;
  height: calc(var(--responsive-canvas-height) * 1px * var(--scale) + 2px);
  overflow: hidden;
  background: #fff;
}

.dark-wrap {
  background: #000;
}

.canvas {
  position: relative;
  width: 1920px;
  height: calc(var(--responsive-canvas-height) * 1px);
  flex: 0 0 auto;
  transform-origin: top left;
  transform: translateX(calc(var(--canvas-shift) * var(--scale) * 1px)) scale(var(--scale));
  isolation: isolate;
}

.light-canvas {
  background: #ffffff;
  box-shadow: 0 -15px 50px rgba(0, 2, 57, 0.05);
}

.dark-canvas {
  background: #000000;
}

.abs {
  position: absolute;
  white-space: nowrap;
}

.bg-abs {
  position: absolute;
  z-index: 0;
  pointer-events: none;
}

.canvas > :not(.bg-abs) {
  z-index: 1;
}

.case-topbar {
  position: fixed;
  top: 20px;
  left: 20px;
  z-index: 120;
  pointer-events: none;
}

.case-back-home {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  padding: 0 14px;
  border-radius: 14px;
  border: 1px solid rgba(0, 0, 0, 0.08);
  background: rgba(255, 255, 255, 0.82);
  color: #111;
  font-family: "Inter", "Noto Sans SC", sans-serif;
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
  box-shadow: 0 12px 26px rgba(0, 0, 0, 0.12);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  pointer-events: auto;
  transition:
    transform 180ms ease,
    box-shadow 180ms ease,
    background-color 180ms ease;
}

.case-back-home:hover {
  transform: translateY(-1px);
  box-shadow: 0 16px 32px rgba(0, 0, 0, 0.16);
  background: rgba(255, 255, 255, 0.92);
}

.case-back-home svg {
  width: 16px;
  height: 16px;
}

.logo-row {
  display: flex;
  align-items: center;
  gap: 24px;
}

.hero-wordmark {
  margin: 12px 0 0;
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 40px;
  line-height: 56px;
  font-weight: 600;
}

.hero-wordmark .ink {
  color: #252931;
}

.title-gradient {
  color: transparent;
  background: linear-gradient(90deg, #1966ff 0%, #61b0ff 100%);
  background-clip: text;
  -webkit-background-clip: text;
}

.hero-shadow-text {
  margin: 0;
  position: absolute;
  left: 0;
  top: 73px;
  font-size: 40px;
  line-height: 54px;
  font-weight: 600;
  color: #252931;
  opacity: 0.04;
  transform: skewX(-15.16deg) scaleY(0.97);
  white-space: nowrap;
}

.sec-no {
  margin: 0;
  color: #bcbdc0;
  font-family: "DIN Alternate", "Inter", sans-serif;
  font-size: 32px;
  line-height: 1;
  font-weight: 700;
  opacity: 0.3;
}

.sec-no.dark {
  color: #ffffff;
}

.sec-en {
  margin: 0;
  color: rgba(188, 189, 192, 0.6);
  font-size: 24px;
  line-height: 34px;
  font-weight: 600;
  opacity: 0.3;
}

.sec-en.dark {
  color: rgba(255, 255, 255, 0.6);
}

.sec-title {
  margin: 0;
  color: #000;
  font-size: 24px;
  line-height: 36px;
  font-weight: 600;
}

.sec-title span {
  color: var(--blue);
}

.dark-title {
  color: #fff;
  line-height: 1.5;
}

.time-label {
  margin: 0;
  font-family: "Alibaba PuHuiTi", "PingFang SC", sans-serif;
  font-size: 18px;
  line-height: 25px;
  font-weight: 700;
  color: #000;
}

.blue-title {
  margin: 0;
  color: var(--blue);
  font-size: 24px;
  line-height: 34px;
  font-weight: 600;
}

.body-16 {
  margin: 0;
  color: #000;
  font-size: 16px;
  line-height: 24px;
}

.bullet-list {
  display: grid;
  gap: 8px;
}

.bullet-row {
  display: grid;
  grid-template-columns: 8px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
}

.bullet-row img {
  width: 8px;
  height: 28px;
}

.bullet-row p {
  margin: 0;
  color: #000;
  font-size: 16px;
  line-height: 22px;
  white-space: normal;
}

.hero-showcase {
  position: relative;
  border-radius: 32px;
  overflow: hidden;
  background: #040404;
}

.hero-showcase video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hero-showcase-controls {
  position: absolute;
  left: 20px;
  right: 20px;
  bottom: 18px;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.42);
  backdrop-filter: blur(4px);
}

.hero-showcase-toggle {
  width: 32px;
  height: 32px;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.94);
  color: #111;
  display: grid;
  place-items: center;
  padding: 0;
  cursor: pointer;
}

.hero-showcase-toggle-icon {
  position: relative;
  width: 10px;
  height: 10px;
}

.hero-showcase-toggle[data-state="playing"] .hero-showcase-toggle-icon::before,
.hero-showcase-toggle[data-state="playing"] .hero-showcase-toggle-icon::after {
  content: "";
  position: absolute;
  top: 0;
  width: 3px;
  height: 10px;
  border-radius: 1px;
  background: currentColor;
}

.hero-showcase-toggle[data-state="playing"] .hero-showcase-toggle-icon::before {
  left: 1px;
}

.hero-showcase-toggle[data-state="playing"] .hero-showcase-toggle-icon::after {
  right: 1px;
}

.hero-showcase-toggle[data-state="paused"] .hero-showcase-toggle-icon::before {
  content: "";
  position: absolute;
  top: 0;
  left: 2px;
  width: 0;
  height: 0;
  border-top: 5px solid transparent;
  border-bottom: 5px solid transparent;
  border-left: 8px solid currentColor;
}

.hero-showcase-progress {
  --progress: 0%;
  width: 100%;
  height: 22px;
  margin: 0;
  border: 0;
  border-radius: 999px;
  background:
    linear-gradient(rgba(255, 255, 255, 0.95), rgba(255, 255, 255, 0.95)) 0 50% /
      var(--progress) 4px no-repeat,
    linear-gradient(rgba(255, 255, 255, 0.35), rgba(255, 255, 255, 0.35)) 0 50% / 100% 4px no-repeat;
  -webkit-appearance: none;
  appearance: none;
  cursor: pointer;
  touch-action: none;
}

.hero-showcase-progress::-webkit-slider-runnable-track {
  height: 4px;
  border-radius: 999px;
  background: transparent;
}

.hero-showcase-progress::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 12px;
  height: 12px;
  margin-top: -4px;
  border-radius: 50%;
  border: 0;
  background: #ffffff;
  box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.12);
}

.hero-showcase-progress::-moz-range-track {
  height: 4px;
  border: 0;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.35);
}

.hero-showcase-progress::-moz-range-progress {
  height: 4px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.95);
}

.hero-showcase-progress::-moz-range-thumb {
  width: 12px;
  height: 12px;
  border: 0;
  border-radius: 50%;
  background: #ffffff;
  box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.12);
}

.hero-showcase-progress:focus-visible {
  outline: 2px solid rgba(255, 255, 255, 0.72);
  outline-offset: 3px;
}

.hero-showcase-hold {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  pointer-events: none;
  transition: opacity 180ms ease;
}

.hero-showcase-hold.is-visible {
  opacity: 1;
}

.value-cards {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
  align-items: stretch;
}

.bridge-copy {
  margin: 0;
  color: #30354b;
  font-size: 24px;
  line-height: 1.58;
  font-weight: 600;
  letter-spacing: 0.01em;
}

.bridge-copy-highlight {
  margin-top: 20px;
  color: #1966ff;
}

.value-card {
  width: 515px;
  min-height: 276px;
  flex: 1 1 515px;
  min-width: 0;
  border-radius: 24px;
  padding: 32px;
  display: grid;
  align-content: flex-start;
  gap: 32px;
}

.value-card img {
  width: 15px;
  height: 11px;
}

.value-card h3 {
  margin: 0;
  font-size: 32px;
  line-height: 38px;
  font-family: "Smiley Sans", "Kaiti SC", "PingFang SC", sans-serif;
  font-weight: 400;
}

.value-card p {
  margin: 0;
  font-family: "Alibaba PuHuiTi", "PingFang SC", sans-serif;
  font-size: 24px;
  line-height: 33px;
  overflow-wrap: anywhere;
}

.value-card.light {
  background: #f6f6f6;
  color: #000;
}

.value-card.dark {
  background: #000;
  color: #fff;
}

.dark-main-headline {
  margin: 0;
  color: #fff;
  font-size: calc(28px * var(--type-comp));
  line-height: 42px;
  font-weight: 600;
  white-space: normal;
  overflow-wrap: anywhere;
}

.dark-main-sub {
  margin: 0;
  color: rgba(255, 255, 255, 0.6);
  font-size: calc(18px * var(--type-comp));
  line-height: 27px;
  font-weight: 400;
  white-space: normal;
  overflow-wrap: anywhere;
}

.top-feature {
  display: grid;
  gap: 12px;
}

.top-feature h3 {
  margin: 0;
  color: #fff;
  font-size: calc(24px * var(--type-comp));
  line-height: 36px;
  font-weight: 600;
  white-space: normal;
  overflow-wrap: anywhere;
}

.top-feature p {
  margin: 0;
  width: min(420px, 100%);
  color: rgba(255, 255, 255, 0.6);
  font-size: calc(16px * var(--type-comp));
  line-height: 24px;
  white-space: normal;
  overflow-wrap: anywhere;
}

.top-feature video {
  display: block;
  width: min(440px, 100%);
  border-radius: 12px;
  object-fit: cover;
  background: #000;
}

.stage-card {
  border-radius: 32px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.06);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  padding: 32px;
  display: grid;
  gap: 32px;
  color: #fff;
}

.step-dot {
  width: 48px;
  height: 48px;
  border-radius: 100px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255, 255, 255, 0.4);
  font-family: "DIN Alternate", "Inter", sans-serif;
  font-size: 28px;
  line-height: 1;
  font-weight: 700;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.08) 100%);
}

.stage-card h4 {
  margin: 0;
  color: #fff;
  font-size: calc(20px * var(--type-comp));
  line-height: 27px;
  font-weight: 500;
}

.stage-card p {
  margin: 0;
  color: rgba(255, 255, 255, 0.5);
  font-size: calc(16px * var(--type-comp));
  line-height: 24px;
  white-space: normal;
  overflow-wrap: anywhere;
}

.stage-card .multi-line + .multi-line {
  margin-top: -16px;
}

.stage-card img {
  display: block;
  object-fit: cover;
}

.stage-card img.is-rounded {
  width: 800px;
  height: 449px;
  border-radius: 18px;
}

.stage-card img.upload-flow-gif {
  object-fit: contain;
  background: rgba(0, 0, 0, 0.35);
}

.body-16,
.dark-main-sub,
.multi-line,
.value-card p {
  white-space: normal;
  overflow-wrap: anywhere;
}

.time-label {
  font-size: calc(18px * var(--type-comp));
}

.sec-no {
  font-size: calc(32px * var(--type-comp));
}

.sec-en {
  font-size: calc(24px * var(--type-comp));
}

.sec-title,
.blue-title {
  font-size: calc(24px * var(--type-comp));
}

.body-16,
.bullet-row p {
  font-size: calc(16px * var(--type-comp));
}

@media (max-width: 1680px) {
  .native-main .canvas-wrap {
    --focus-width: 1760;
    --canvas-shift: -80;
    --type-comp-max: 1.15;
  }
}

@media (max-width: 1440px) {
  .native-main .canvas-wrap {
    --focus-width: 1600;
    --canvas-shift: -120;
    --type-comp-max: 1.28;
  }
}

@media (max-width: 1280px) {
  .native-main .canvas-wrap {
    --focus-width: 1520;
    --canvas-shift: -160;
    --type-comp-max: 1.45;
  }

  .case-topbar {
    top: 14px;
    left: 14px;
  }

  .case-back-home {
    min-height: 40px;
    padding: 0 12px;
    font-size: 13px;
  }
}

@media (max-width: 1024px) {
  .native-main .canvas-wrap {
    --focus-width: 1360;
    --canvas-shift: -280;
    --type-comp-max: 1.62;
  }
}

@media (max-width: 768px) {
  .native-main .canvas-wrap {
    --type-comp-max: 1.82;
  }

  .native-main > .canvas-wrap:first-of-type {
    --responsive-canvas-height: 2860;
  }

  .value-cards {
    width: 1040px;
    flex-direction: column;
  }

  .value-card {
    width: 100%;
    min-height: 0;
    padding: 28px;
    gap: 24px;
  }
}

@media (max-width: 720px) {
  .native-main .canvas-wrap {
    --type-comp-max: 1.9;
    --viewport-gutter: 6px;
  }

  .native-main > .canvas-wrap:first-of-type {
    --responsive-canvas-height: 3000;
  }
}
