@layer base {
  .lede {
    font-size: var(--step-1);
    color: var(--muted);
    max-inline-size: var(--width-text);
    font-weight: 400;
  }

  .prose > * + * {
    margin-block-start: var(--space-s);
  }

  .prose p,
  .prose li {
    color: var(--muted);
    max-inline-size: var(--width-text);
  }

  .prose h2 {
    margin-block-start: var(--space-l);
  }

  .prose h3 {
    margin-block-start: var(--space-m);
    color: var(--text);
  }

  .prose ul.bullets {
    display: grid;
    gap: var(--space-2xs);
    margin-inline-start: 0;
  }

  .prose ul.bullets li {
    position: relative;
    padding-inline-start: 1.4rem;
  }

  .prose ul.bullets li::before {
    content: "";
    position: absolute;
    inset-inline-start: 0;
    inset-block-start: 0.6em;
    inline-size: 0.5rem;
    block-size: 0.5rem;
    background: var(--lime);
    transform: rotate(45deg);
  }

  .prose a {
    color: var(--cyan);
    text-decoration: underline;
    text-underline-offset: 3px;
  }

  .prose a:hover {
    color: var(--lime);
  }
}

@layer utilities {
  .label {
    font-family: var(--font-mono);
    font-size: var(--step--1);
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: var(--cyan);
    display: inline-flex;
    align-items: center;
    gap: 0.6ch;
  }

  .label::before {
    content: "";
    inline-size: 1.6rem;
    block-size: 1px;
    background: var(--cyan);
  }

  .tag {
    font-family: var(--font-mono);
    font-size: var(--step--1);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--muted);
    border: 1px solid var(--line);
    padding: 0.15rem 0.55rem;
    border-radius: 999px;
  }

  .accent-lime {
    color: var(--lime);
  }
  .accent-cyan {
    color: var(--cyan);
  }
  .accent-amber {
    color: var(--amber);
  }

  .muted {
    color: var(--muted);
  }

  .mono {
    font-family: var(--font-mono);
  }

  .sr-only {
    position: absolute;
    inline-size: 1px;
    block-size: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }

  .center-text {
    text-align: center;
    margin-inline: auto;
  }

  .mt-l {
    margin-block-start: var(--space-l);
  }

  .mt-m {
    margin-block-start: var(--space-m);
  }

  .visually-hidden-focusable:not(:focus):not(:focus-within) {
    position: absolute;
    inline-size: 1px;
    block-size: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
  }

  [hidden] {
    display: none !important;
  }

  .reveal {
    opacity: 0;
    transform: translateY(18px);
    transition: opacity var(--motion), transform var(--motion);
  }

  .reveal[data-state="shown"] {
    opacity: 1;
    transform: none;
  }

  @media (prefers-reduced-motion: reduce) {
    .reveal {
      opacity: 1;
      transform: none;
    }
  }
}
