@layer components {
  /* Floating back-to-top control on every page; shown only after scroll. */
  .to-top {
    position: fixed;
    z-index: 4;
    inset-block-end: calc(var(--space-m) + env(safe-area-inset-bottom));
    inset-inline-end: var(--space-s);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    inline-size: var(--touch);
    block-size: var(--touch);
    padding: 0;
    border: thin solid color-mix(in oklch, var(--ink) 18%, var(--mist));
    border-radius: 50%;
    background: color-mix(in oklch, var(--cream) 72%, transparent);
    color: var(--ink);
    cursor: pointer;
    opacity: 0;
    visibility: hidden;
    translate: 0 var(--space-xs);
    transition: opacity 160ms ease, translate 160ms ease, visibility 160ms;

    .glyph { inline-size: 1.15em; block-size: 1.15em; }

    &.is-on {
      opacity: 0.68;
      visibility: visible;
      translate: 0 0;
    }

    &:hover,
    &:focus-visible {
      opacity: 1;
      background: var(--cream);
    }
  }

  @media (prefers-reduced-motion: reduce) {
    .to-top {
      transition: none;
      translate: 0 0;
    }
  }
}
