  :root {
      --bg: #161616;
      --text: #fff;
      --dim: #6f6f6f;
      --accent: #d9261c;
      --gold: #e8b923;
      --ease: cubic-bezier(.22, .8, .24, 1);
      --slide: .65s;
      --clr-orange: #f27533;
      --clr-orange-dark: #f0442e;
      --clr-navy-dark: #080d12;
      --clr-navy-mid: #121a26;
      --clr-white: #ffffff;
      --clr-gray-light: #cfd3d8;
      --clr-gray-mid: #9aa1ab;

      --font-display: "Space Grotesk", sans-serif;
      --font-accent: "Playfair Display", Georgia, serif;
      --font-body: "DM Sans", sans-serif;

      --header-height: 74px;

      --site-content-width: 84%;
      --site-content-max-width: 1600px;
      --site-content-edge: max(calc((100vw - var(--site-content-max-width)) / 2),
              8vw);
  }

  .bike-showcase {
      background: var(--bg);
      color: var(--text);
      min-height: 100%;
  }

  button {
      font: inherit;
      color: inherit;
      background: none;
      border: 0;
      cursor: pointer;
  }

  :focus-visible {
      outline: 2px solid var(--gold);
      outline-offset: 3px;
  }

  .page {
      max-width: var(--site-content-max-width);
      margin: 0 auto;
      padding: 32px 24px 64px;
  }

  .page>h1 {
      font-size: 40px;
      font-weight: 600;
      letter-spacing: -.5px;
  }

  /* ---------- rows ---------- */
  .selector {
      position: relative;
      margin-top: 24px;
  }

  .row {
      position: relative;
      margin: 0 auto;
  }

  .row-viewport {
      position: relative;
      overflow: hidden;
      touch-action: pan-y;
      user-select: none;
      cursor: grab;
      -webkit-mask-image: linear-gradient(90deg, transparent, #000 14%, #000 86%, transparent);
      mask-image: linear-gradient(90deg, transparent, #000 14%, #000 86%, transparent);
  }

  .row-viewport.grabbing {
      cursor: grabbing;
  }

  .track {
      display: flex;
      width: max-content;
      will-change: transform, opacity;
      transition: transform var(--slide) var(--ease), opacity .4s ease;
  }

  .track.dragging {
      transition: none;
  }

  .item {
      flex: none;
      white-space: nowrap;
      color: var(--dim);
      transform: scale(.82);
      transform-origin: center;
      transition: color .4s ease, transform var(--slide) var(--ease);
  }

  .item:hover {
      color: #aaa;
  }

  .item.active {
      color: var(--text);
      transform: scale(1);
  }

  .track {
      position: relative;
  }

  .row-cat {
      max-width: 1060px;
      border-bottom: 1px solid #262626;
  }

  .row-cat .item {
      padding: 18px 64px 22px;
      font-size: 24px;
      letter-spacing: .5px;
      text-transform: uppercase;
  }

  .ind {
      /* marker under the active category; slides with the selection */
      position: absolute;
      bottom: 0;
      /* height: 3px;
      background: #ffffff;
      clip-path: polygon(0 0,
              42% 0,
              50% 45%,
              58% 0,
              100% 0,
              86% 100%,
              14% 100%); */
      height: 4px;
      border-radius: 8px 8px 0 0;
      background: #5a5a5a;
      transition: left var(--slide) var(--ease), width var(--slide) var(--ease);
  }

  .row-sub {
      max-width: 1060px;
      margin-top: 14px;
  }

  .row-sub .item {
      padding: 10px 44px;
      font-size: 30px;
  }

  .row-model {
      max-width: 1060px;
      margin-top: 4px;
  }

  .row-model .item {
      padding: 8px 40px;
      font-size: 22px;
      text-transform: capitalize;
  }

  .nav-arrow {
      position: absolute;
      top: 50%;
      translate: 0 -50%;
      width: 44px;
      height: 44px;
      border-radius: 50%;
      border: 1.5px solid #8a8a8a;
      display: grid;
      place-items: center;
      transition: background .25s, border-color .25s;
  }

  .nav-arrow:hover {
      background: #2a2a2a;
      border-color: #fff;
  }

  .nav-arrow svg {
      width: 16px;
      height: 16px;
      fill: none;
      stroke: #fff;
      stroke-width: 2.5;
      stroke-linecap: round;
      stroke-linejoin: round;
  }

  .arrows {
      position: absolute;
      left: 0;
      right: 0;
      top: calc(100% + 110px);
      height: 0;
      z-index: 10;
      pointer-events: none;
  }

  .nav-arrow {
      pointer-events: auto;
  }

  .nav-arrow.prev {
      left: 0;
  }

  .nav-arrow.next {
      right: 0;
  }

  /* ---------- stage ---------- */
  .stage {
      display: flex;
      flex-direction: column;
      align-items: center;
      margin-top: 12px;
      text-align: center;
  }

  .figure {
      position: relative;
      width: min(560px, 90vw);
      aspect-ratio: 16 / 10;
      display: grid;
      place-items: center;
  }

  .figure::before {
      /* turntable shadow */
      content: "";
      position: absolute;
      left: 6%;
      right: 6%;
      bottom: 4%;
      height: 22%;
      border-radius: 50%;
      background: radial-gradient(ellipse at center, #2b2b2b, #1a1a1a 70%);
  }

  .figure img {
      position: relative;
      max-width: 100%;
      max-height: 100%;
      object-fit: contain;
  }

  .figure.noimg img {
      display: none;
  }

  .figure .ph {
      display: none;
      position: relative;
      width: 70%;
      height: 55%;
      border: 1.5px dashed #444;
      border-radius: 12px;
      place-items: center;
      color: #555;
      font-size: 20px;
  }

  .figure.noimg .ph {
      display: grid;
  }

  .info {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 6px;
  }

  .tagline {
      color: var(--dim);
      font-size: 20px;
  }

  .price {
      font-size: 30px;
      font-weight: 600;
  }

  .specs {
      display: flex;
      gap: 28px;
      margin-top: 6px;
      color: #b5b5b5;
      font-size: 18px;
  }

  .specs b {
      display: block;
      color: var(--text);
      font-weight: 600;
      font-size: 22px;
  }

  .know {
      margin-top: 14px;
      color: var(--accent);
      font-family: 'Montserrat', sans-serif;
      font-weight: 600;
      font-size: 14px;
      text-decoration: none;
  }

  .know:hover {
      text-decoration: underline;
  }

  .actions {
      display: flex;
      gap: 22px;
      margin-top: 18px;
      flex-wrap: wrap;
      justify-content: center;
  }


  .error {
      padding: 40px;
      color: #f77;
  }

  @media (max-width: 720px) {
      .page>h1 {
          font-size: 30px;
      }

      .row-cat .item {
          padding: 14px 32px;
          font-size: 20px;
      }

      .row-sub .item {
          font-size: 24px;
          padding: 8px 28px;
      }

      .row-model .item {
          font-size: 19px;
          padding: 8px 26px;
      }

      .arrow {
          width: 36px;
          height: 36px;
      }

      .view-all {
          min-width: 200px;
      }

      .figure {
          width: min(560px, 72vw);
      }
  }

  @media (prefers-reduced-motion: reduce) {

      .track,
      .item {
          transition-duration: .01s !important;
      }
  }