/* Preload Inter; keep the fallback for this visit if the font arrives too late. */
@font-face {
  font-family: InterVariable;
  font-style: normal;
  font-weight: 100 900;
  font-display: optional;
  src: url("/fonts/InterVariable.woff2") format("woff2");
}

@font-face {
  font-family: InterVariable;
  font-style: italic;
  font-weight: 100 900;
  font-display: optional;
  src: url("/fonts/InterVariable-Italic.woff2") format("woff2");
}

:root {
  --background: oklch(0.141 0.005 285.823);
  --text: oklch(0.92 0.004 286.32);
  --bright-text: oklch(0.985 0 0);
  --accent: oklch(0.855 0.138 181.071);
  font-family: InterVariable, sans-serif;
  line-height: 1.5;
  -webkit-text-size-adjust: 100%;
  -webkit-tap-highlight-color: transparent;
}

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

body,
h1,
p {
  margin: 0;
}

.page {
  display: flex;
  min-height: 100vh;
  background-color: var(--background);
}

.page-content {
  width: 100%;
  margin: auto;
}

.intro {
  max-width: 80rem;
  margin-inline: auto;
  padding: 6rem 1.5rem;
}

.identity {
  display: flex;
}

.keyboard {
  display: block;
  width: 3rem;
  height: 3rem;
  fill: var(--accent);
}

h1 {
  max-width: 42rem;
  margin-left: 1.25rem;
  color: var(--bright-text);
  font-size: 3rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0;
}

.bio {
  max-width: 42rem;
  margin-top: 1.5rem;
  color: var(--text);
  text-wrap: pretty;
}

.tagline {
  font-style: italic;
}

.description {
  margin-top: 1.5rem;
  font-size: 1.125rem;
  line-height: 2rem;
}

a {
  color: var(--bright-text);
  font-weight: 700;
  text-decoration: none;
  transition-property: color, outline-color;
  transition-duration: 400ms;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}

/* Preserve Firefox's native keyboard focus outline. */
:-moz-focusring {
  outline: auto;
}

@media (hover: hover) {
  a:hover {
    color: var(--accent);
  }
}

@media (prefers-reduced-motion: reduce) {
  a {
    transition: none;
  }
}

@media (width >= 40rem) {
  .intro {
    padding-block: 8rem;
  }
}

@media (width >= 64rem) {
  .intro {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-inline: 2rem;
  }
}
