:root {
  font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif;
  line-height: 1.5;
  font-weight: 400;

  font-synthesis: none;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  
  transition: .3s color, .3s background-color;

  --title-color: #020202;
  --title-color-secondary: #555555;

  --text-color: #020202;
  --text-color-secondary: #555555;

  --background-color: #ffffff;
  --background-color-secondary: #eeeeee;

  --border-color: #555555;
}

.dark-theme {
  --title-color: #ffffff;
  /* The light theme's #555555 secondary is only ~2.8:1 against this
     background. #999999 lifts it to ~7.3:1 while staying clearly grey next to
     the #ffffff primary. */
  --title-color-secondary: #999999;

  --text-color: #ffffff;
  --text-color-secondary: #999999;

  --background-color: #020202;
  --background-color-secondary: #111111;

  --border-color: #555555;
}

body {
  margin: 0;
  padding: 0;
  min-height: 100vh;
  background-color: var(--background-color, #ffffff);
  transition: .5s background-color;
}

h1, h2, h3, h4, h5, h6 {
  font-weight: 400;
  color: var(--title-color, #020202);
  transition: .5s color;
}

h1 {
  font-size: 4rem;
}

h2 {
  font-size: 2rem;
}

h3 {
  font-size: 1.5rem;
}

h4 {
  font-size: 1.25rem;
}

h5 {
  font-size: 1rem;
}

h6 {
  font-size: 0.875rem;
}

p {
  font-size: 1rem;
  color: var(--text-color, #020202);
  transition: .5s color;
}

a {
  color: var(--text-color, #020202);
  text-decoration: none;
  transition: .5s color;
}

a:hover {
  color: var(--text-color-secondary, #555555);
  transition: .5s color;
}

@media screen and (max-width: 768px) {
  h1 {
    font-size: 3rem;
  }
}

/* Iubenda's "US Privacy" widget renders in a fixed white bar and manages its
   own contrast. Our global `a` color rule above leaks into its link and, in
   dark theme, turns it white-on-white. Keep it pinned to a dark, readable
   color regardless of site theme. */
.iub__us-widget a {
  color: rgba(0, 0, 0, 0.65) !important;
}

.iub__us-widget {
  margin-bottom: 16px;
}