:root {
  --navy: #0A1F44;
  --white: #FFFFFF;
  --green: #00FF88;
  --logo-x: clamp(40px, 6vw, 120px);
  --logo-y: clamp(35px, 8vh, 100px);
  --headline-x: clamp(40px, 5.5vw, 110px);
  --headline-y: clamp(80px, 11vh, 130px);
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body {
  min-height: 100%;
  margin: 0;
  background: var(--navy);
  overflow: hidden;
}

body {
  width: 100%;
  min-height: 100svh;
  color: var(--white);
  font-family: "Montserrat", "Avenir Next", "Helvetica Neue", Arial, sans-serif;
  font-synthesis-weight: none;
}

.splash {
  position: relative;
  width: 100%;
  min-height: 100svh;
  overflow: hidden;
  background: var(--navy);
}

.logo {
  position: absolute;
  top: var(--logo-y);
  left: var(--logo-x);
  display: block;
  width: clamp(285px, 16vw, 340px);
  height: auto;
}

.headline {
  position: absolute;
  left: var(--headline-x);
  bottom: var(--headline-y);
  max-width: 12em;
  margin: 0;
  color: var(--white);
  font-size: clamp(52px, 4vw, 76px);
  font-weight: 600;
  line-height: 1.18;
  letter-spacing: -0.02em;
}

.headline-line {
  display: block;
  white-space: nowrap;
}

.accent {
  color: var(--green);
}

@media (max-width: 760px) {
  :root {
    --logo-x: 24px;
    --logo-y: clamp(30px, 6svh, 54px);
    --headline-x: 24px;
    --headline-y: clamp(48px, 10svh, 76px);
  }

  .logo {
    width: clamp(210px, 62vw, 250px);
  }

  .headline {
    max-width: calc(100vw - 48px);
    font-size: min(clamp(36px, 9vw, 44px), calc((100vw - 48px) / 10.35));
    line-height: 1.12;
    letter-spacing: -0.02em;
  }
}

@media (max-width: 340px) {
  .headline {
    font-size: 26px;
  }
}
