/*
 * This is a manifest file that'll be compiled into application.css.
 *
 * With Propshaft, assets are served efficiently without preprocessing steps. You can still include
 * application-wide styles in this file, but keep in mind that CSS precedence will follow the standard
 * cascading order, meaning styles declared later in the document or manifest will override earlier ones,
 * depending on specificity.
 *
 * Consider organizing styles into separate files for maintainability.
 */

body {
  font-family: "Mulish", sans-serif;
  font-optical-sizing: auto;
  font-size: 100%;
  font-weight: 400;
  line-height: 1.5;
  margin: 0;
  padding: 0;
  background-color: var(--bg-color);
  color: var(--fg-color);

  /* Kills double-tap-to-zoom without taking pinch-zoom away. */
  touch-action: manipulation;
}

/* Safety net: every stylesheet here styles :hover, none styled focus.
   --link-color rather than the bare accent: it is the per-theme contrast-safe
   variant, which keeps the ring above 3:1 on all nine accents. */
:focus-visible {
  outline: 0.125rem solid var(--link-color);
  outline-offset: 0.125rem;
}

/* For headings that name the page for a screen reader where the design
   already says it visually — breadcrumbs, a search box, a card. */
.visually-hidden {
  position: absolute;
  width: 0.0625rem;
  height: 0.0625rem;
  margin: -0.0625rem;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* Direct child only: the link rows are <article>s too, and inherit none of
   this page-wrapper chrome. */
body > article {
  margin: 1em;
  padding-bottom: 3em;

  h1 {
    font-size: 2.5em;
    font-weight: 900;
    text-align: center;

    margin: 1rem 0;
  }

  main {
    width: 100%;
    max-width: 48em;
    margin: 1.5em auto;
  }
}

#empty {
  text-align: center;
}

a {
  color: var(--link-color);
  text-decoration: none;
  &:hover {
    color: var(--link-hover-color);
    text-decoration: underline;
  }
}

@media screen and (min-width: 36em) {
  body > article {
    /* padding-top: 3em; */
    padding-bottom: 0;
  }
}
