/* Element defaults, focus, shared buttons and utilities. */
@layer base {
  * {
    box-sizing: border-box;
  }
  body {
    margin: 0;
    background: var(--bg);
    color: var(--ink);
    font-family: var(--body);
    font-size: 16px;
    line-height: 1.5;
  }
  button,
  input,
  select {
    font: inherit;
  }
  button,
  a,
  input,
  select,
  summary {
    -webkit-tap-highlight-color: transparent;
  }
  button {
    border: 0;
    cursor: pointer;
    color: inherit;
    touch-action: manipulation;
  }
  button:disabled {
    cursor: default;
    opacity: 0.35;
  }
  a {
    color: inherit;
  }
  img {
    display: block;
    max-width: 100%;
  }
  /* Two-tone ring (paper gap + dark orange outline): ≥ 3:1 on paper, on the accent and on dark buttons. */
  :focus-visible {
    outline: 3px solid var(--focus);
    outline-offset: 3px;
    box-shadow: 0 0 0 3px var(--paper);
  }
  kbd {
    font: 11px var(--body);
    border: 1px solid var(--line);
    padding: 0 5px;
    border-radius: 3px;
  }

  /*
   * The hidden attribute always hides, whatever display a component sets. Leaves and blank leaves of the
   * book are the exception: js/boot.js and print.css show them while their attribute is still set.
   */
  [hidden]:not(.magazine-page, .book-placeholder) {
    display: none !important;
  }
  .visually-hidden {
    position: absolute !important;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
  }
  .skip-link {
    position: fixed;
    top: -70px;
    left: 20px;
    z-index: 100;
    background: var(--lime);
    color: var(--green);
    padding: 15px;
    font-weight: 700;
  }
  .skip-link:focus {
    top: 8px;
  }

  .eyebrow {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    display: block;
  }
  .muted {
    font-size: 13px;
    color: var(--muted);
    line-height: 1.6;
  }

  .button {
    display: inline-flex;
    justify-content: center;
    gap: 18px;
    align-items: center;
    min-height: 48px;
    padding: 13px 20px;
    font-size: 14px;
    font-weight: 700;
    border-radius: 5px;
    text-decoration: none;
    border: 1px solid transparent;
    line-height: 1.4;
  }
  .button-dark {
    background: var(--green);
    color: white;
  }
  .button-dark span {
    font-size: 24px;
    line-height: 1;
    color: var(--lime);
  }
  .button-light {
    background: var(--paper);
    border-color: var(--line);
  }
  @media (hover: hover) {
    .button-dark:hover {
      background: color-mix(in srgb, var(--green) 82%, white);
    }
  }

  @media (prefers-reduced-motion: reduce) {
    * {
      scroll-behavior: auto !important;
      transition: none !important;
    }
  }
}
