@layer projects {
  @scope (.scope.catalog) to (.scope) {
    :scope {
      display: grid;
      justify-items: center;
      padding-block: calc(80 * var(--px-to-rem));
    }

    ._inner {
      inline-size: var(--content-width);
    }

    ._head {
      text-align: center;
    }

    ._slug {
      color: var(--color-accent);
      font-family: var(--font-futura);
      font-size: var(--font-size-300);
      letter-spacing: 0.4em;
      line-height: 1;
      text-align: inherit;
      text-transform: uppercase;
    }

    ._title {
      display: grid;
      font-size: var(--font-size-500);
      font-weight: var(--font-weight-regular);
      gap: calc(24 * var(--px-to-rem));
      letter-spacing: 0.15em;
      line-height: 1.6;
      padding-top: calc(24 * var(--px-to-rem));
    }

    ._title::after {
      background: var(--color-accent);
      content: '';
      height: 1px;
      margin-inline: auto;
      width: calc(120 * var(--px-to-rem));
    }

    ._description {
      font-size: var(--font-size-50);
      line-height: 2;
      padding-top: calc(24 * var(--px-to-rem));
      text-align: inherit;
      word-break: keep-all;
    }

    ._main {
      display: grid;
      gap: calc(32 * var(--px-to-rem));
      grid-template-columns: repeat(3, 1fr);
      padding-top: calc(40 * var(--px-to-rem));
    }

    ._more {
      display: flex;
      justify-content: center;
      padding-top: calc(40 * var(--px-to-rem));
    }

    @media (width <= 767px) {
      :scope {
        padding-block: calc(50 * var(--px-to-rem));
      }

      :scope[data-grid='false'] ._inner {
        inline-size: auto;
      }

      ._slug {
        font-size: var(--font-size-200);
      }

      ._title {
        font-size: calc(22 * var(--px-to-rem));
      }

      :scope[data-grid='false'] ._main {
        --_padding-x: calc(32 * var(--px-to-rem));
        grid-auto-columns: calc(306 * var(--px-to-rem));
        grid-auto-flow: column;
        grid-template-columns: unset;
        overflow-x: scroll;
        padding-inline: var(--_padding-x);
        scroll-padding-inline: var(--_padding-x);
        scroll-snap-type: x mandatory;
        width: 100svw;
      }

      :scope[data-grid='true'] ._main {
        gap: calc(20 * var(--px-to-rem)) calc(12 * var(--px-to-rem));
        grid-template-columns: repeat(2, 1fr);
      }

      ._main::-webkit-scrollbar {
        display: none;
      }

      ._more {
        inline-size: var(--content-width);
        margin-inline: auto;
      }
    }
  }
}
