* {
  box-sizing: border-box;
}

html {
  color-scheme: light dark;
  background: var(--surface-base);
}

body {
  min-height: 100vh;
  margin: 0;
  color: var(--ink);
  background:
    radial-gradient(circle at 92% 8%, var(--accent-soft) 0, transparent 32%),
    var(--surface-base);
  font-family: var(--font-sans);
}

a {
  color: var(--brand);
  text-underline-offset: var(--space-1);
}

a:focus-visible {
  outline: calc(var(--space-1) / 2) solid var(--focus-ring);
  outline-offset: calc(var(--space-1) / 2);
}

.site-header,
main {
  width: min(calc(100% - (var(--space-6) * 2)), calc(var(--space-12) * 24));
  margin-inline: auto;
}

.site-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-block: var(--space-6);
}

.brand,
.language-switch {
  display: inline-flex;
  align-items: center;
  min-height: var(--size-tap);
}

.brand {
  color: var(--brand);
}

.logo {
  width: 210px;
  height: auto;
}

.language-switch {
  padding-inline: var(--space-4);
  border: calc(var(--space-1) / 4) solid var(--line-strong);
  border-radius: var(--radius-pill);
  text-decoration: none;
}

.hero {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(calc(var(--space-12) * 5), 5fr);
  align-items: center;
  gap: var(--space-12);
  min-height: calc(100vh - (var(--space-12) * 4));
  padding-block: var(--space-12);
}

.hero-copy {
  max-width: calc(var(--space-12) * 13);
}

.eyebrow {
  margin: 0 0 var(--space-4);
  color: var(--ink-muted);
}

h1 {
  margin: 0;
  text-wrap: balance;
}

.intro {
  max-width: calc(var(--space-12) * 11);
  margin: var(--space-6) 0 0;
  color: var(--ink-muted);
}

.status {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  margin: var(--space-8) 0 0;
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius-pill);
  color: var(--on-accent);
  background: var(--accent);
}

.status span {
  width: var(--space-2);
  height: var(--space-2);
  border-radius: var(--radius-pill);
  background: currentColor;
}

.compass-art {
  position: relative;
  display: grid;
  width: min(34vw, calc(var(--space-12) * 8));
  aspect-ratio: 1;
  place-items: center;
  justify-self: center;
  color: var(--brand);
}

.hero-mark {
  z-index: 1;
  width: 42%;
  transform: scale(2.5);
}

.orbit {
  position: absolute;
  border: calc(var(--space-1) / 4) solid var(--line);
  border-radius: var(--radius-pill);
}

.orbit-outer {
  inset: 0;
}

.orbit-inner {
  inset: var(--space-12);
  border-color: var(--accent);
  transform: rotate(35deg);
}

.compass-art::before,
.compass-art::after {
  position: absolute;
  width: var(--space-3);
  height: var(--space-3);
  border-radius: var(--radius-pill);
  background: var(--accent);
  content: "";
}

.compass-art::before {
  top: var(--space-6);
  right: var(--space-12);
}

.compass-art::after {
  bottom: var(--space-8);
  left: var(--space-8);
}

.contact {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  margin-bottom: var(--space-8);
  padding: var(--space-5) var(--space-6);
  border: calc(var(--space-1) / 4) solid var(--line);
  border-radius: var(--radius-lg);
  background: var(--surface-raised);
}

.contact p {
  margin: 0;
}

.contact a {
  display: inline-flex;
  min-width: var(--size-tap);
  min-height: var(--size-tap);
  align-items: center;
}

.language-page {
  display: grid;
  place-items: center;
}

.language-page main {
  display: grid;
  min-height: 100vh;
  place-items: center;
}

.language-card {
  display: grid;
  gap: var(--space-6);
  max-width: calc(var(--space-12) * 10);
  padding: var(--space-8);
  border: calc(var(--space-1) / 4) solid var(--line);
  border-radius: var(--radius-lg);
  background: var(--surface-raised);
}

.language-card nav {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
}

.language-option {
  min-width: calc(var(--space-12) * 3);
  min-height: var(--size-tap);
  padding: var(--space-3) var(--space-4);
  border-radius: var(--radius-md);
  color: var(--on-brand);
  background: var(--brand);
  text-align: center;
  text-decoration: none;
}

@media (max-width: 720px) {
  .site-header,
  main {
    width: min(calc(100% - (var(--space-4) * 2)), calc(var(--space-12) * 24));
  }

  .site-header {
    align-items: flex-start;
    flex-direction: column;
    gap: var(--space-3);
  }

  .hero {
    grid-template-columns: 1fr;
    gap: var(--space-8);
    min-height: auto;
  }

  .compass-art {
    width: min(78vw, calc(var(--space-12) * 6));
    grid-row: 1;
  }

  .contact {
    align-items: flex-start;
    flex-direction: column;
  }
}
