@layer components {
  .hero {
    margin-block-end: var(--block-space-triple);
  }

  .hero__title {
    margin-block-end: var(--block-space-half);
  }

  .hero__lead {
    font-size: var(--text-lg);
    margin-block-end: var(--block-space-double);
  }

  .page-header {
    margin-block-end: var(--block-space-double);
  }

  .section-header {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-block-end: var(--block-space);
  }

  .content-list {
    list-style: none;
    padding: 0;
    display: grid;
    gap: var(--block-space-double);
  }

  .content-list__meta {
    display: block;
    font-size: var(--text-sm);
    color: var(--color-ink-light);
    margin-block-end: 0.25rem;
  }

  .content-list__title {
    margin-block-end: 0.5rem;
  }

  .content-list__title a {
    text-decoration: none;
    color: var(--color-ink);
  }

  .content-list__title a:hover {
    color: var(--color-link);
    text-decoration: underline;
  }

  .content-list__eyebrow {
    color: var(--color-ink-medium);
    font-size: var(--text-sm);
    margin-block-end: 0.5rem;
  }

  .content-list__cover {
    margin-block-start: var(--block-space);
    border-radius: var(--radius-md);
    overflow: hidden;
  }

  .content-list__cover a {
    display: block;
    line-height: 0;
  }

  .content-list__cover img {
    inline-size: 100%;
    max-inline-size: 100%;
    block-size: auto;
    border-radius: var(--radius-md);
    transition: transform 0.2s ease;
  }

  .content-list__cover a:hover img {
    transform: scale(1.02);
  }

  .sheet-score-container {
    border: var(--border);
    border-radius: var(--radius-lg);
    background: var(--color-white);
    padding: clamp(1rem, 3vw, 2.5rem);
    overflow-x: auto;
  }

  .sheet-score-container svg {
    display: block;
    inline-size: 100%;
    height: auto;
    min-inline-size: min(100%, 45rem);
  }

  @media (prefers-color-scheme: dark) {
    .sheet-score-container {
      background: #fafafa;
    }
  }

  .sheet-downloads>p {
    margin-block: 0.5rem 0;
    color: var(--color-ink-medium);
  }

  .sheet-audio {
    margin-block: var(--block-space-double);
  }

  .sheet-audio-player {
    inline-size: min(100%, 36rem);
    margin-block-start: var(--block-space);
  }

  .sheet-download-links {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1.25rem;
    margin-block-start: 1rem;
  }

  .sheet-download-link {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
  }
}
