:root {
  --overlay-offset: 2.84vw;
}

.chrStack {
  position: relative;
  display: block;
  width: 100%;
  max-width: 100%;
  margin: 0 auto;
}

.chrStack .base {
  display: block;
  width: 100%;
}

.chrStack .overlay {
  position: absolute;
  z-index: 1;
  left: 50%;
  transform: translateX(-50%);
  top: var(--overlay-offset);
  max-width: 100%;
}

.chrStack.chrWin {
  --overlay-offset: 2.08vw;
}

.chrStack.chr09 {
  --overlay-offset: 0.52vw;
}

.chrStack .overlay-layer {
  position: absolute;
  z-index: 1;
  left: 50%;
  transform: translateX(-50%);
  top: var(--overlay-offset);
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.chrStack .overlay-layer .overlay {
  position: static;
  left: auto;
  transform: none;
  top: auto;
  width: 37.44vw;
  max-width: 100%;
}

.chrStack img.overlay[src$="chr_02.webp"] {
  width: 52.53vw;
}

.chrStack img.overlay[src$="chr_09.webp"] {
  width: 38.12vw;
}

.chrStack img.overlay[src$="chr_18.webp"] {
  width: 39.68vw;
  top: 9.5vw;
}

.chrPrize {
  display: flex;
  justify-content: center;
  gap: 1.17vw;
  width: 100%;
  margin: 1.48vw auto 0 auto;
}

.chrPrize img {
  display: block;
  width: 14.76vw;
}

.chrMoments {
  position: relative;
  background-color: #ffffff;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2.34vw;
  padding: 4.68vw 6.77vw 2.94vw 7.03vw;
  border-radius: 5px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.12);
}

.chrMoments.momentsNoGrid {
  display: block;
}

.chrMoments .moments-title {
  font-family: RobotoCondensedMedium;
  color: #e53926;
  font-size: 2.84vw;
  line-height: 2.65vw;
  font-weight: bold;
}

.chrMoments .moments-subtitle {
  font-family: RobotoCondensedMedium;
  color: #1a1a1a;
  font-size: 1.09vw;
  line-height: 1.82vw;
  margin: 1.22vw 0 3.7vw 0;
}

.chrMoments.momentsNoGrid .moments-subtitle {
  margin: 1.19vw 0 2.52vw 0;
}

.chrMoments .moments-heading {
  font-family: RobotoCondensedBold;
  color: #1a1a1a;
  font-size: 1.56vw;
  line-height: 1.56vw;
  margin-bottom: 1.17vw;
}

.chrMoments .moments-steps {
  list-style: decimal;
  margin: 0;
  padding-left: 0;
  list-style-position: inside;
}

.chrMoments .moments-steps li {
  font-family: RobotoCondensedRegular;
  color: #4d4d4d;
  font-size: 1.04vw;
  line-height: 1.45vw;
}

.chrMoments .momentsImg1[src$="chr_11.webp"] {
  position: absolute;
  top: -0.8vw;
  width: 4.6vw;
}

.chrMoments .momentsImg1 {
  display: block;
  max-width: 100%;
}

.chrMoments .momentsImg2 {
  position: absolute;
  top: 6.17vw;
  left: -7.23vw;
  width: 12.39vw;
  animation: chrBounceY 1.8s ease-in-out infinite;
  will-change: transform;
}

.chrMoments .momentsImg3 {
  position: absolute;
  top: -0.88vw;
  right: -0.8vw;
  width: 26.04vw;
}
.chrMoments .momentsImg9 {
  position: absolute;
  bottom: 0.42vw;
  right: -5.1vw;
  width: 10.28vw;
}

@keyframes chrBounceY {
  0% { transform: translateY(-0.6vw); }
  50% { transform: translateY(0.6vw); }
  100% { transform: translateY(-0.6vw); }
}

.chrStack .overlay-layer .moments-overlay {
  margin-top: 1.79vw;
  width: 62.13vw;
}

.chrMoments .momentsImg5 {
  position: absolute;
  top: -1.01vw;
  left: 3.25vw;
  width: 9.79vw;
}

.chrMoments .momentsImg4 {
  position: absolute;
  top: -0.8vw;
  right: 6.82vw;
  width: 5.1vw;
}

.chrMoments .momentsImg7 {
  position: absolute;
  bottom: -5.34vw;
  left: 32.47vw;
  width: 10.73vw;
}

.chrMoments .momentsImg6 {
  position: absolute;
  bottom: -0.15vw;
  left: 0;
  width: 22.34vw;
}

.chrMoments .momentsBtn {
  font-family: RobotoCondensedMedium;
  font-size: 1.04vw;
  display: inline-flex;
  align-items: center;
  gap: 0.62vw;
  background-color: #000;
  color: #fff;
  padding: 0.36vw 0.88vw;
  margin: 2.73vw 0 2.47vw 0;
  text-decoration: none !important;
}

.chrMoments .momentsBtn .arrow {
  width: 0;
  height: 0;
  border-top: 0.42vw solid transparent;
  border-bottom: 0.42vw solid transparent;
  border-left: 0.70vw solid #fff;
}

.chrMoments .momentsBtn:hover {
  background-color: #e53926;
}

.chrMoments .email-input {
  display: flex;
  align-items: stretch;
  flex-wrap: nowrap;
}

.chrMoments .email-input input {
  flex: 1 1 auto;
  min-width: 0;
}

.chrMoments #sendCodeBtn {
  flex: 0 0 auto;
  align-self: stretch;
  border-radius: 0;
  background-color: #f4f4f4;
  color: #4d4d4d;
  font-family: RobotoCondensedRegular;
  font-weight: normal;
  font-size: 0.83vw;
  padding: 0 0.88vw;
}

.chrMoments #submitBtn {
  display: block;
  width: 100%;
  background-color: #000;
  color: #fff;
  font-family: RobotoCondensedRegular;
  font-size: 0.83vw;
  padding: 0.52vw 0;
  text-align: center;
  border: 0;
  border-radius: 2px;
}

.chrMoments #submitBtn:hover {
  background-color: #e53926;
}
.chrMoments #submitBtn.is-loading {
  position: relative;
  pointer-events: none;
  opacity: 0.88;
}
.chrMoments #submitBtn.is-loading::after {
  content: '';
  position: absolute;
  right: 1.2em;
  top: 50%;
  width: 1em;
  height: 1em;
  margin-top: -0.5em;
  border: 2px solid rgba(255,255,255,0.6);
  border-top-color: #fff;
  border-radius: 50%;
  animation: chrSpin 0.7s linear infinite;
}
@keyframes chrSpin {
  to { transform: rotate(360deg); }
}

.chrMoments .file-label {
  color: #4d4d4d;
  font-family: RobotoCondensedRegular;
  font-size: 0.83vw;
  margin-bottom: 0.52vw;
}

.chrMoments .file-box {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 4.16vw;
  height: 4.16vw;
  background-color: #f4f4f4;
  border: 1px dashed #ccc;
  cursor: pointer;
  position: relative;
}

.chrMoments .file-box::before {
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  width: 1.82vw;
  height: 0.05vw;
  background-color: #ccc;
  transform: translate(-50%, -50%);
}
.chrMoments .file-box::after {
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  width: 0.05vw;
  height: 1.82vw;
  background-color: #ccc;
  transform: translate(-50%, -50%);
}

.chrMoments .file-box.has-files::before,
.chrMoments .file-box.has-files::after {
  display: none;
}

.chrMoments .file-box.has-files {
  background-color: #fff;
  color: #4d4d4d;
  font-family: RobotoCondensedRegular;
  font-size: 0.83vw;
  padding: 0 0.66vw;
  border: 1px solid #ccc;
}

.chrMoments #chrFile {
  display: none;
}

.chrMoments #chrState {
  display: block;
  width: 100%;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='8' viewBox='0 0 14 8'%3E%3Cpolygon points='0,0 14,0 7,8' fill='%23000000'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.7vw center;
  background-size: 0.88vw 0.5vw;
  padding-right: 2vw;
}

.chrMoments input[list] {
  -webkit-appearance: none;
  appearance: none;
}

.chrMoments input[list]::-webkit-calendar-picker-indicator {
  display: none !important;
  opacity: 0 !important;
}

.chrMoments .chrForm .field {
  margin-bottom: 0.91vw;
}

.chrMoments .chrForm input[type="text"],
.chrMoments .chrForm input[type="email"],
.chrMoments .chrForm input[list] {
  border: 1px solid #ccc;
  border-radius: 2px;
  padding: 0.3vw 0.66vw;
}

.chrMoments .momentsImg8 {
  position: absolute;
  bottom: -1.82vw;
  right: -3.38vw;
  width: 10.15vw;
  animation: chrBounceY 1.8s ease-in-out infinite;
  will-change: transform;
}

.chrMarquee {
  width: 100%;
  overflow: hidden;
  margin: 0 auto;
}

.chrMarquee .marquee-track {
  display: flex;
  gap: 1.43vw;
  will-change: transform;
  width: max-content;
  animation: chrMarqueeLeft 28s linear infinite;
}

.chrMarquee:hover .marquee-track {
  animation-play-state: paused;
}

.chrMarquee img {
  display: block;
  flex: 0 0 auto;
  cursor: pointer;
  width: 16.06vw;
}


@keyframes chrMarqueeLeft {
  from { transform: translate3d(0, 0, 0); }
  to { transform: translate3d(-50%, 0, 0); }
}

.chrMsgContainer {
  position: fixed;
  top: 1.79vw;
  right: 1.79vw;
  z-index: 9999;
  display: flex;
  flex-direction: column;
  gap: 0.62vw;
}

.chrMsg {
  color: #fff;
  font-family: RobotoCondensedMedium;
  font-size: 1.04vw;
  padding: 0.32vw 0.84vw;
  border-radius: 4px;
  box-shadow: 0 6px 20px rgba(0,0,0,0.12);
  opacity: 0;
  animation: chrToastIn .2s ease-out forwards;
}

.chrMsg.hide {
  animation: chrToastOut .18s ease-in forwards;
}

.chrMsg-error { background-color: #e53926; }
.chrMsg-success { background-color: #1a1a1a; }

@keyframes chrToastIn {
  from { opacity: 0; transform: translateY(-0.52vw); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes chrToastOut {
  from { opacity: 1; transform: translateY(0); }
  to { opacity: 0; transform: translateY(-0.52vw); }
}

.chrDivider {
  width: 62.13vw;
  left: 50%;
  transform: translateX(-50%);
  bottom: 5.77vw;
  position: absolute;
}

.chrDivider hr {
  display: block;
  width: 100%;
  margin: 0;
  border: 0;
  height: 1px;
  background-color: #fff !important;
}

.chrDivider ul {
  font-family: RobotoCondensedRegular;
  color: #fff;
  font-size: 1.04vw;
  line-height: 1.82vw;
  margin: 1.56vw 0 0 0;
  padding-left: 0;
  list-style-position: inside;
}

.chrStack .marquee-overlay {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 23vw;
  width: 100%;
}

.chrMoments .moments-steps .copyable {
  font-weight: bold;
  position: relative;
  display: inline-block;
  text-decoration: underline;
  text-decoration-skip-ink: none;
  text-underline-offset: 0.18em;
  text-decoration-thickness: 0.06em;
}

.chrMoments .moments-steps .copyable:hover {
  color: #e53926;
  cursor: pointer;
}

.chrMoments .moments-steps .copyable.copied::after {
  content: 'Copied';
  position: absolute;
  bottom: calc(100%);
  right: 0;
  color: #e53926;
  font-family: RobotoCondensedMedium;
  font-size: 0.9vw;
  font-weight: normal;
  pointer-events: none;
  white-space: nowrap;
}
@media (max-width: 2500px) {
    :root {
      --overlay-offset: 6.2vw;
    }
    .chrMoments .chrForm .field {
        margin-bottom: 0.55vw;
    }
    .chrMoments .chrForm input[type="text"],
    .chrMoments .chrForm input[type="email"],
    .chrMoments .chrForm input[list] {
        font-size: 0.8vw;
        line-height: 0.8vw;
        height: auto;
    }
}
@media (max-width: 768px) {
  .chrDivider {
    width: 83.33vw;
  }
  .chrDivider ul {
    font-size: 3.11vw;
    line-height: 4.66vw;
  }
  .chrStack img.overlay[src$="chr_02.webp"] {
    width: 69.83vw;
    top: 22vw;
  }
  .chrPrize {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2.08vw 2.91vw;
    width: 83.33vw;
    margin: 2.08vw auto 0 auto;
    justify-items: center;
  }
  .chrMoments .chrForm input[type="text"],
  .chrMoments .chrForm input[type="email"],
  .chrMoments .chrForm input[list] {
    font-size: 2.8vw;
    line-height: 2.8vw;
    height: 6vw;
    }
  .chrPrize img {
    width: 100%;
  }
  .chrStack.chrWin {
    --overlay-offset: 3.75vw;
  }
  .chrStack .overlay-layer .overlay {
    width: 80.91vw;
  }
  .chrStack .overlay-layer .moments-overlay {
    width: 83.33vw;
  }
  .chrStack .overlay-layer .moments-overlay.momentsNoGrid {
    margin-top: 13.5vw;
  }
  .chrMoments {
    grid-template-columns: 1fr;
    gap: 7.91vw;
    padding: 12.91vw 5.66vw 8.91vw 5.66vw;
  }
  .chrMoments .momentsImg3 {
    width: 46.25vw;
  }
  .chrMoments .momentsImg9 {
    width: 19.25vw;
    right: -8.3vw;
    bottom: 19.2vw;
  }
  .chrMoments .momentsImg2 {
    width: 18.83vw;
    top: 3.17vw;
    left: -15.3vw;
  }
  .chrMoments .momentsImg1[src$="chr_11.webp"] {
    top: -2vw;
    width: 10.5vw;
  }
  .chrMoments .momentsImg4 {
    top: -1.7vw;
    width: 10.5vw;
  }
  .chrMoments .momentsImg5 {
    top: -3.01vw;
    width: 23.25vw;
  }
  .chrMoments .momentsImg6 {
    width: 52.83vw;
  }
  .chrMoments .momentsImg7 {
    width: 21.16vw;
  }
  .chrMoments .momentsImg8 {
    bottom: 2.22vw;
    right: -8.28vw;
    width: 21.83vw;
  }
  .chrMoments .moments-title {
    font-size: 6.6vw;
    line-height: 6.6vw;
  }
  .chrMoments .momentsBtn .arrow {
    border-top: 1.42vw solid transparent;
    border-bottom: 1.42vw solid transparent;
    border-left: 1.7vw solid #fff;
  }
  .chrMoments .moments-subtitle {
    font-size: 3.33vw;
    line-height: 5.25vw;
  }
  .chrMoments .moments-heading {
    font-size: 4.66vw;
    line-height: 4.66vw;
  }
  .chrMoments .moments-steps li {
    font-size: 3.11vw;
    line-height: 4.44vw;
  }
  .chrMoments .moments-steps .copyable.copied::after {
    font-size: 2.7vw;
  }
  .chrStack img.overlay[src$="chr_09.webp"] {
    width: 82.25vw;
    margin: 4.16vw 5.83vw;
  }
  .chrMoments .chrForm .field {
    margin-bottom: 3.75vw;
  }
  .chrMoments #sendCodeBtn {
    font-size: 3.11vw;
    line-height: 3.11vw;
  }
  .chrMoments #submitBtn {
    font-size: 3.11vw;
    padding: 1.91vw 0;
  }
  .chrMoments .file-label {
    font-size: 3.11vw;
    line-height: 3.11vw;
    margin-bottom: 1.08vw;
  }
  .chrMoments .momentsBtn {
    font-size: 2.88vw;
    padding: 2.08vw 5.25vw;
    margin: 3.9vw 0 4.08vw 0;
  }
  .chrMoments .file-box {
    width: 15.75vw;
    height: 15.75vw;
  }
  .chrMoments .file-box::before {
    width: 4.82vw;
  }
  .chrMoments .file-box::after {
    height: 4.82vw;
  }
  .chrMoments .file-box.has-files {
    font-size: 3.11vw;
    padding: 1.08vw 2.08vw;
  }
  .chrStack img.overlay[src$="chr_18.webp"] {
    width: 83vw;
    top: 20vw;
  }
  .chrStack .marquee-overlay {
    bottom: 61vw;
  }
  .chrMarquee img {
    width: 36vw;
  }
  .chrDivider {
    bottom: 10.77vw;
  }
  .chrDivider ul {
    margin: 4.56vw 0 0 0;
  }
  .chrMsgContainer {
    top: 5.66vw;
    right: 5.66vw;
    gap: 2.08vw;
  }
  .chrMsg {
    font-size: 3.11vw;
    padding: 2.08vw 4.16vw;
    border-radius: 6px;
  }

  .chr-modal-close {
    width: 8vw;
    height: 8vw;
    font-size: 6vw;
    top: -6vw;
    right: -8vw;
  }
  .chr-modal-content img {
    width: 65vw;
  }
}

.chr-modal {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 10000;
  justify-content: center;
  align-items: center;
}

.chr-modal.active {
  display: flex;
}

.chr-modal-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.7);
}

.chr-modal-content {
  position: relative;
  z-index: 1;
  max-width: 90%;
  max-height: 90%;
}

.chr-modal-content img {
  display: block;
  width: 21.95vw;
  height: auto;
}

.chr-modal-close {
  position: absolute;
  top: -1.5vw;
  right: -1.5vw;
  width: 1vw;
  height: 1vw;
  border-color: #fff;
  color: #fff;
  font-size: 2vw;
  cursor: pointer;
  line-height: 1;
  font-family: sans-serif;
}

body.modal-open {
  overflow: hidden;
}