:root {
  --pad: 50px;
  --text-size: 25px;
  --logo-width: calc(100vw - 100px);
}

* {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  padding: 0;
  width: 100%;
  height: 100%;
  background: #000;
}

body {
  overflow: hidden;
  background: #000;
  color: #fff;
  font-family: articulat-cf, sans-serif;
  font-style: normal;
  font-weight: 500;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: geometricPrecision;
}

.coming-soon {
  position: relative;
  width: 100vw;
  height: 100vh;
  height: 100dvh;
  background: #000;
  overflow: hidden;
}

/* TEXT */
.intro {
  position: absolute;
  top: var(--pad);
  left: var(--pad);
  width: 475px;
  max-width: calc(100vw - (var(--pad) * 2));
}

.intro p,
.contact {
  margin: 0;
}

.heading,
.contact strong {
  display: block;
  font-family: articulat-cf, sans-serif;
  font-style: normal;
  font-weight: 700;
  font-size: var(--text-size);
  line-height: 120%;
  letter-spacing: -0.02em;
}

.description,
.contact a {
  font-family: articulat-cf, sans-serif;
  font-style: normal;
  font-weight: 500;
  font-size: var(--text-size);
  line-height: 120%;
  letter-spacing: 0.01em;
}

.description {
  margin-bottom: 30px !important;
}

.contact {
  font-style: normal;
}

.contact a {
  display: block;
  width: fit-content;
  color: #fff;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}

/* Hidden font loader helper for Safari */
.font-check {
  position: absolute;
  opacity: 0;
  pointer-events: none;
  font-family: articulat-cf, sans-serif;
  font-weight: 700;
}

/* LOGO */
.logo {
  position: absolute;
  left: var(--pad);
  bottom: var(--pad);
  display: block;
  width: var(--logo-width);
  height: auto;
  max-height: 38vh;
  object-fit: contain;
  object-position: left bottom;
}

/* iPhone / small mobile */
@media (max-width: 600px) {
  :root {
    --pad: 30px;
    --text-size: 18px;
    --logo-width: calc(100vw - 60px);
  }

  .intro {
    width: 475px;
    max-width: calc(100vw - 60px);
  }

  .description {
    margin-bottom: 22px !important;
  }

  .logo {
    max-height: 18vh;
  }
}

/* iPad: keep 50px padding */
@media (min-width: 601px) and (max-width: 1100px) {
  :root {
    --pad: 50px;
    --text-size: 25px;
    --logo-width: calc(100vw - 100px);
  }

  .intro {
    width: 475px;
  }

  .logo {
    max-height: 22vh;
  }
}

/* Laptop: keep 50px padding */
@media (min-width: 1101px) and (max-width: 1599px) {
  :root {
    --pad: 50px;
    --text-size: 25px;
    --logo-width: calc(100vw - 100px);
  }

  .logo {
    max-height: 30vh;
  }
}

/* HDMI / large screen: keep 50px padding */
@media (min-width: 1600px) {
  :root {
    --pad: 50px;
    --text-size: 25px;
    --logo-width: calc(100vw - 100px);
  }

  .logo {
    max-height: 30vh;
  }
}
