@font-face {
  font-family: 'Inter';
  src: url('./../assets/fonts/inter.woff2') format('woff2');
  font-display: swap;
  font-style: normal;
  font-weight: 100 900;
}

@font-face {
  font-family: 'Lexend Deca';
  src: url('./../assets/fonts/lexend-deca.woff2') format('woff2');
  font-display: swap;
  font-style: normal;
  font-weight: 100 900;
}

/*  */

:root {
  --white: hsl(0, 0%, 100%);
  --navy-950: hsl(233, 47%, 7%);
  --blue-950: hsl(244, 37%, 16%);
  --purple-500: hsl(277, 64%, 61%);
  --ff-base: 'Inter', sans-serif;
  --ff-secondary: 'Lexend Deca', sans-serif;
  --bd-radius: 8px;
}

/*  */

body {
  min-block-size: 100dvh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-family: var(--ff-base);
  font-size: 1rem;
  background-color: var(--navy-950);
  color: var(--white);
}

/*  */

.stats-card {
  margin-top: 5.5rem;
  margin-bottom: calc(5.5rem - 3.625rem);
  inline-size: clamp(20.4375rem, 87.2vw, 1110.4px);
  display: flex;
  flex-direction: column;
  background-color: var(--blue-950);
  border-radius: var(--bd-radius);
  overflow: hidden;
}

.stats-card__media {
  isolation: isolate;
  position: relative;

  img {
    inline-size: 100%;
    block-size: 100%;
    object-fit: cover;
  }

  &::before {
    content: '';
    position: absolute;
    inset: 0;
    background-color: var(--purple-500);
    mix-blend-mode: multiply;
  }
}

.stats-card__content {
  padding: 2.5rem 1.8rem 1.95rem;
  text-align: center;

  h1 {
    font-size: clamp(1.75rem, 1rem + 3.2vw, 2.25rem);
    font-weight: 700;
    letter-spacing: .6px;
    line-height: 1.15;

    span {
      color: var(--purple-500);
    }
  }

  p {
    margin-top: .95rem;
    font-size: .9375rem;
    font-weight: 400;
    letter-spacing: .1px;
    line-height: 1.68;
    opacity: .75;
  }
}

.stats-card__stats {
  margin-top: 2.5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.52rem;
}

.stats-card__stat {
  dt {
    font-size: 1.5rem;
    font-weight: 700;
    letter-spacing: 1px;
    line-height: 1.2;
  }

  dd {
    margin-top: 0.2rem;
    font-family: var(--ff-secondary);
    font-size: .75rem;
    font-weight: 400;
    text-transform: uppercase;
    letter-spacing: 1px;
    line-height: 2;
    opacity: .6;
  }
}

.attribution {
  padding: 1.5rem 0 1rem;
  font-family: var(--ff-secondary);
  font-size: .88rem;
  text-align: center;

  a {
    margin-inline: .25rem;
    position: relative;

    &::after {
      content: '';
      position: absolute;
      bottom: -2px;
      right: 0;
      inline-size: 100%;
      block-size: 2px;
      background-color: currentColor;
      transition: inline-size .25s ease-in-out;
    }

    &:hover::after,
    &:focus-visible::after {
      inline-size: 0;
    }
  }
}


/* */

@media (width >=47.75rem) {
  .stats-card {
    max-inline-size: 35.25rem;
  }

  .stats-card__content {
    padding: 4rem 5.5rem;
    text-align: left;

    p {
      margin-top: 1.5rem;
    }
  }

  .stats-card__stats {
    margin-top: 4.5rem;
    flex-direction: row;
    gap: 4rem;
  }
}

@media (width >=64rem) {
  .stats-card {
    max-inline-size: unset;
    flex-direction: row-reverse;
  }

  .stats-card__media {
    flex-basis: 58.45rem;
  }

  .stats-card__content {
    padding: 4.5rem 4.55rem 0;

    h1 {
      letter-spacing: 1px;
      line-height: 1.2;
    }

    p {
      margin-top: 1.6rem;
      inline-size: 40ch;
    }
  }
}

/*  */
:focus-visible {
  outline: 2px dotted currentColor;
  outline-offset: 3px;
}