@font-face {
  font-family: "PP Mori";
  src: url("../fonts/PPMori-Variable.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
}

:root {
  --primary-color: #a74021;
  --secondary-color: #e28a39;
  --bg-color: hsl(from var(--primary-color) h s 90%);
  --frame-margin-x: 2rem;
  --frame-margin-y: 4rem;
  --aspect-ratio: 3 / 2;
}

.landing-img {
  display: block;
  width: 95%;
  height: 95%;
  transform: translate(2%, 2%);
  object-fit: cover;
  filter: brightness(1.5) contrast(1.2);
  mix-blend-mode: luminosity;
}

.frame {
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  background-color: var(--primary-color);
  box-sizing: border-box;
  aspect-ratio: var(--aspect-ratio);
  width: 100%;
  max-width: 45rem;
  justify-self: center;
  height: auto;
  -webkit-mask-box-image-source: url("../img/frame.svg");
  -webkit-mask-box-image-slice: 200 fill;
  -webkit-mask-box-image-width: 3rem;
  -webkit-mask-box-image-repeat: round;
  mask-border-source: url("../img/frame.svg");
  mask-border-slice: 200 fill;
  mask-border-width: 3rem;
  mask-border-repeat: round;
}

body {
  overflow-x: hidden;
  min-height: 100dvh;
  margin: 0;
  background: var(--bg-color);
  font-family: "PP Mori", sans;
  display: grid;
  place-items: center;
}

.landing-grid {
  display: grid;
  grid-template-columns: minmax(22rem, 1fr) 2fr;
  align-items: center;
  gap: 1rem;
  width: min(100vw - (var(--frame-margin-x) * 2), 80rem);
  padding: var(--frame-margin-y) var(--frame-margin-x);
}

@media (max-width: 1024px) {
  .landing-grid {
    grid-template-columns: 1fr;
    text-align: center;
    gap: 3rem;
    padding-top: 1rem;
    padding-bottom: 1rem;
  }

  .frame {
    -webkit-mask-box-image-width: 2rem;
    mask-border-width: 2rem;
    max-width: 35rem;
    max-height: 40vh;
    width: auto;
    max-width: 100%;
  }
}

* {
  box-sizing: border-box;
}

.svg-container {
  width: 100vw;
  height: 480px;
}

.landing-content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  color: black;
  text-wrap: pretty;
}

.landing-content h1 {
  font-size: clamp(2.2rem, 8vw, 3rem);
  font-weight: 700;
  margin: 0 0 1rem 0;
  letter-spacing: -0.02em;
  color: var(--primary-color);
  white-space: nowrap;
}

.landing-content p {
  max-width: 60ch;
  font-size: 1.125rem;
  line-height: 1.5;
  margin-bottom: 1rem;
  color: var(--primary-color);
}

.button {
  display: inline-block;
  margin-top: 1rem;
  padding: 1rem 2rem;
  font-size: 1.25rem;
  background: var(--primary-color);
  color: white;
  text-decoration: none;
  font-weight: 700;
  border-radius: 9999px;
  transition: opacity 0.2s;
}

.button:hover {
  opacity: 0.8;
}

@media (max-width: 1024px) {
  .landing-content {
    align-items: center;
  }

  .landing-content p {
    max-width: 40ch;
  }
}
