/* ODI TV VOTE split-flap countdown */
.hero {
  row-gap: 42px;
  padding-top: 46px;
}

.midterm-countdown {
  max-width: 980px;
  margin: 0 auto;
}

.midterm-countdown h2 {
  color: #f7fbff;
  margin: 0;
  font-size: 72px;
  font-weight: 900;
  line-height: 1.02;
  letter-spacing: -.045em;
  text-shadow: 0 0 34px #087cff2e;
}

.midterm-countdown__clock {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  gap: 18px;
  margin-top: 30px;
  color: var(--cyan);
  text-shadow: none;
}

.midterm-countdown__unit {
  position: relative;
  display: grid;
  flex: 0 1 190px;
  grid-template-rows: 150px auto;
  gap: 13px;
  align-items: start;
  min-width: 0;
}

.midterm-countdown__unit::before,
.midterm-countdown__unit::after {
  content: "";
  position: absolute;
  z-index: 4;
  top: 63px;
  width: 10px;
  height: 24px;
  border: 1px solid #4daeff5c;
  background: linear-gradient(180deg, #253f57, #03070b 50%, #20384d);
  box-shadow: 0 4px 12px #000c, 0 0 12px #087cff29;
}

.midterm-countdown__unit::before {
  left: -5px;
  border-radius: 4px 0 0 4px;
}

.midterm-countdown__unit::after {
  right: -5px;
  border-radius: 0 4px 4px 0;
}

.midterm-countdown__unit > strong {
  position: relative;
  isolation: isolate;
  display: grid;
  place-items: center;
  width: 100%;
  min-width: 0;
  height: 150px;
  overflow: hidden;
  color: #25c9ff;
  background:
    linear-gradient(180deg, #0d263d 0%, #091a2b 49.2%, #02070c 49.2%, #02070c 50.8%, #071522 50.8%, #040b12 100%);
  border: 2px solid #159fff;
  border-radius: 11px;
  font-family: Roboto, Arial, sans-serif;
  font-size: clamp(74px, 6.2vw, 98px);
  font-weight: 900;
  font-variant-numeric: tabular-nums;
  line-height: 1;
  letter-spacing: -.055em;
  text-indent: -.055em;
  text-shadow: 0 0 18px #11d7ff45;
  transform: perspective(720px) rotateX(0deg);
  transform-origin: 50% 50%;
  transform-style: preserve-3d;
  backface-visibility: hidden;
  will-change: transform, filter;
  box-shadow:
    0 22px 42px #000a,
    0 0 24px #087cff2e,
    inset 0 1px #ffffff15,
    inset 0 -1px #000;
}

.midterm-countdown__unit > strong::before {
  content: "";
  position: absolute;
  z-index: 3;
  top: 50%;
  right: 0;
  left: 0;
  height: 2px;
  background: #010408;
  box-shadow: 0 -1px #5d8db82e, 0 2px 4px #000d;
}

.midterm-countdown__unit > strong::after {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  background:
    radial-gradient(circle at 50% 5%, #11d7ff17, transparent 42%),
    linear-gradient(90deg, #ffffff05, transparent 18%, transparent 82%, #0005);
  pointer-events: none;
}

.midterm-countdown__unit > strong.is-flipping {
  animation: split-flap-flip .6s cubic-bezier(.36, .04, .2, 1);
}

.midterm-countdown__unit small {
  color: #48d5ff;
  margin: 0;
  font-size: 15px;
  font-weight: 900;
  line-height: 1;
  letter-spacing: .18em;
  text-shadow: 0 0 14px #11d7ff57;
}

.midterm-countdown__separator {
  display: none;
}

.midterm-countdown.is-complete .midterm-countdown__unit > strong {
  color: #f7fbff;
  border-color: var(--cyan);
  box-shadow: 0 0 32px #11d7ff45;
}

@keyframes split-flap-flip {
  0% {
    transform: perspective(720px) rotateX(0deg);
    filter: brightness(1);
  }
  44% {
    transform: perspective(720px) rotateX(-88deg);
    filter: brightness(.68);
  }
  50% {
    transform: perspective(720px) rotateX(-90deg);
    filter: brightness(.58);
  }
  51% {
    transform: perspective(720px) rotateX(90deg);
    filter: brightness(.58);
  }
  58% {
    transform: perspective(720px) rotateX(76deg);
    filter: brightness(.72);
  }
  100% {
    transform: perspective(720px) rotateX(0deg);
    filter: brightness(1);
  }
}

@media (width <= 1050px) {
  .midterm-countdown h2 {
    font-size: 62px;
  }

  .midterm-countdown__unit {
    flex-basis: 170px;
    grid-template-rows: 132px auto;
  }

  .midterm-countdown__unit > strong {
    height: 132px;
    font-size: 82px;
  }

  .midterm-countdown__unit::before,
  .midterm-countdown__unit::after {
    top: 55px;
    height: 22px;
  }
}

@media (width <= 760px) {
  .hero {
    row-gap: 34px;
    padding-top: 38px;
  }

  .midterm-countdown {
    max-width: 560px;
  }

  .midterm-countdown h2 {
    font-size: 50px;
    line-height: 1.06;
  }

  .midterm-countdown__clock {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px 16px;
    margin-top: 25px;
  }

  .midterm-countdown__unit {
    grid-template-rows: 112px auto;
    gap: 11px;
  }

  .midterm-countdown__unit > strong {
    height: 112px;
    font-size: 68px;
  }

  .midterm-countdown__unit::before,
  .midterm-countdown__unit::after {
    top: 46px;
    height: 20px;
  }
}

@media (width <= 520px) {
  .midterm-countdown h2 {
    font-size: 40px;
  }

  .midterm-countdown__clock {
    gap: 18px 12px;
  }

  .midterm-countdown__unit {
    grid-template-rows: 92px auto;
  }

  .midterm-countdown__unit > strong {
    height: 92px;
    font-size: 56px;
    border-radius: 9px;
  }

  .midterm-countdown__unit::before,
  .midterm-countdown__unit::after {
    top: 37px;
    height: 18px;
  }

  .midterm-countdown__unit small {
    font-size: 11px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .midterm-countdown__unit > strong.is-flipping {
    animation: none;
  }
}
