:root {
  /* Palette from Handmatige uitwerking.odg (sampled swatches) */
  --navy: #020E20;
  --cyan: #00C4DA;
  --slate: #3C4A5E;
  --mist: #EAECF0;
  --black: #000000;
  --white: #FFFFFF;

  /* Logo curve gradient (from mark exports) */
  --cyan-bright: #0BCDED;
  --cyan-deep: #0090E8;

  --ink: var(--mist);
  --ink-soft: #9AA3B2;
  --line: rgba(234, 236, 240, 0.07);
  --font-display: "Space Grotesk", sans-serif;
  --font-body: "Manrope", sans-serif;
  --space: clamp(1.25rem, 4vw, 2.5rem);
}

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

html {
  height: 100%;
}

body {
  min-height: 100%;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  color: var(--ink);
  font-family: var(--font-body);
  font-weight: 400;
  line-height: 1.55;
  background: var(--navy);
  overflow-x: hidden;
  position: relative;
}

/* —— Full-bleed atmosphere (static) —— */
.atmosphere {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
}

.atmosphere__wash {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 70% 55% at 78% 28%, rgba(0, 196, 218, 0.16), transparent 58%),
    radial-gradient(ellipse 55% 50% at 12% 85%, rgba(0, 144, 232, 0.1), transparent 55%),
    linear-gradient(160deg, #031528 0%, var(--navy) 45%, #01080f 100%);
}

.atmosphere__grid {
  position: absolute;
  inset: -15%;
  background-image:
    linear-gradient(var(--line) 1px, transparent 1px),
    linear-gradient(90deg, var(--line) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: radial-gradient(ellipse 80% 70% at 60% 40%, #000 15%, transparent 72%);
  -webkit-mask-image: radial-gradient(ellipse 80% 70% at 60% 40%, #000 15%, transparent 72%);
}

.atmosphere__curve {
  position: absolute;
  width: min(92vw, 920px);
  height: auto;
  right: -6%;
  top: 42%;
  transform: translateY(-50%);
  opacity: 0.28;
}

/* —— Hero —— */
.hero {
  position: relative;
  z-index: 1;
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  max-width: 40rem;
  width: 100%;
  padding: calc(var(--space) * 2.2) var(--space) var(--space);
  margin: 0 auto;
}

.brand {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: clamp(2.1rem, 7.5vw, 3.75rem);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  line-height: 0.95;
  color: var(--mist);
  margin-bottom: clamp(1.25rem, 3.5vw, 1.75rem);
}

.lede {
  font-size: clamp(0.98rem, 2.1vw, 1.1rem);
  color: var(--ink-soft);
  max-width: 32rem;
  margin-bottom: clamp(1.75rem, 4vw, 2.5rem);
}

.cta__mail {
  display: inline-block;
  font-family: var(--font-display);
  font-weight: 600;
  font-size: clamp(1.05rem, 2.4vw, 1.2rem);
  letter-spacing: -0.01em;
  color: var(--cyan);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  padding-bottom: 0.12rem;
  transition: color 0.25s ease, border-color 0.25s ease;
}

.cta__mail:hover,
.cta__mail:focus-visible {
  color: var(--cyan-bright);
  border-bottom-color: var(--cyan-bright);
  outline: none;
}

/* In-flow curve: mobile/stacked layout only */
.hero__curve {
  display: none;
  width: min(100%, 22rem);
  height: auto;
  margin-top: clamp(2rem, 8vw, 3rem);
  opacity: 0.28; /* match .atmosphere__curve desktop fade */
  pointer-events: none;
}

.site-foot {
  position: relative;
  z-index: 1;
  padding: var(--space);
  text-align: center;
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--slate);
}

@media (min-width: 900px) {
  .hero {
    margin-left: max(var(--space), calc((100% - 72rem) / 2 + var(--space)));
    margin-right: auto;
  }

  .atmosphere__curve {
    right: 2%;
    width: min(55vw, 980px);
    opacity: 0.32;
  }
}

@media (max-width: 560px) {
  .hero {
    justify-content: flex-start;
    padding-top: clamp(2rem, 9vw, 3.25rem);
  }

  /* Atmosphere curve off — use in-flow curve under copy instead */
  .atmosphere__curve {
    display: none;
  }

  .hero__curve {
    display: block;
  }
}
