:root {
  /* Brand palette taken from the Sullivan logo and flyers */
  --red: #d0121f;
  --red-600: #b50d19;
  --red-700: #8f0a14;
  --red-100: #f4cfd2;
  --red-50: #fdf3f3;
  --black: #0b0b0f;
  --charcoal: #17171d;
  --ink: #0d1038;
  --muted: #4d5166;
  --white: #fff;

  --line: #efdcde;
  --radius: 1.25rem;
  --shadow: 0 14px 34px -16px rgb(143 10 20 / 0.35);
  --gradient-red: linear-gradient(180deg, #dc2430 0%, #a50d1a 100%);
  --header-h: 4.5rem;

  --font-display: "Oswald", "Arial Narrow", Impact, sans-serif;
  --font-head: "Montserrat", system-ui, sans-serif;
  --font-body: "Roboto", system-ui, -apple-system, "Segoe UI", sans-serif;
}

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

html {
  scroll-behavior: smooth;
  scroll-padding-top: var(--header-h);
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}

body {
  margin: 0;
  font-family: var(--font-body);
  color: var(--ink);
  background: var(--white);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

main {
  display: block;
}

/* Custom elements are unknown inline elements until upgraded; avoid layout shift. */
:not(:defined) {
  display: block;
}

.noscript {
  padding: 1rem;
  text-align: center;
  background: var(--red-50);
}
