/* ---- page styles ---- */
.page-hero[data-astro-cid-75ysl5lo] {
        padding-block: clamp(4rem, 3rem + 5vw, 7.5rem) clamp(3.5rem, 2.5rem + 4vw, 6rem);
        overflow: hidden;
      }
      .inner[data-astro-cid-75ysl5lo] {
        align-items: end;
        gap: 2rem;
        display: grid;
      }
      @media (width>=900px) {
        .inner[data-astro-cid-75ysl5lo] {
          grid-template-columns: 1fr auto;
        }
      }
      .copy[data-astro-cid-75ysl5lo] {
        gap: 1.1rem;
        max-width: 760px;
        display: grid;
      }
      .copy[data-astro-cid-75ysl5lo] .lead[data-astro-cid-75ysl5lo] {
        color: var(--mist-300);
      }
      .actions[data-astro-cid-75ysl5lo]:empty {
        display: none;
      }
      .actions[data-astro-cid-75ysl5lo] {
        flex-wrap: wrap;
        gap: 0.75rem;
        margin-top: 0.5rem;
        display: flex;
      }
      .note[data-astro-cid-75ysl5lo] {
        font-size: var(--fs-sm);
        color: var(--mist-300);
        border-left: 2px solid var(--blue-500);
        max-width: 24ch;
        padding-left: 0.9rem;
        line-height: 1.5;
      }
      .vid[data-astro-cid-mx53csqf] {
        aspect-ratio: 16/9;
        border-radius: var(--radius);
        background: var(--navy-900);
        box-shadow: var(--glow);
        border: 1px solid #6fd3ff4d;
        display: block;
        position: relative;
        overflow: hidden;
      }
      .vid[data-astro-cid-mx53csqf] img[data-astro-cid-mx53csqf] {
        object-fit: cover;
        opacity: 0.85;
        width: 100%;
        height: 100%;
        transition:
          opacity var(--dur),
          transform 0.6s var(--ease-out);
        position: absolute;
        inset: 0;
      }
      .vid[data-astro-cid-mx53csqf]:hover img[data-astro-cid-mx53csqf] {
        opacity: 1;
        transform: scale(1.02);
      }
      .vid-play[data-astro-cid-mx53csqf] {
        color: #fff;
        cursor: pointer;
        background: linear-gradient(#0308161a, #030816a6);
        border: 0;
        align-content: center;
        place-items: center;
        gap: 0.9rem;
        padding: 1rem;
        display: grid;
        position: absolute;
        inset: 0;
      }
      .vid-btn[data-astro-cid-mx53csqf] {
        background: var(--blue-600);
        width: 68px;
        height: 68px;
        transition:
          transform var(--dur) var(--ease-out),
          box-shadow var(--dur);
        border-radius: 50%;
        place-items: center;
        display: grid;
        box-shadow: 0 0 0 8px #2f7bff40;
      }
      .vid-play[data-astro-cid-mx53csqf]:hover .vid-btn[data-astro-cid-mx53csqf] {
        transform: scale(1.06);
        box-shadow: 0 0 0 12px #2f7bff38;
      }
      .vid-title[data-astro-cid-mx53csqf] {
        font-weight: 650;
        font-size: var(--fs-sm);
        text-align: center;
        text-shadow: 0 1px 8px #0009;
      }
      .vid[data-astro-cid-mx53csqf] iframe[data-astro-cid-mx53csqf] {
        border: 0;
        width: 100%;
        height: 100%;
        position: absolute;
        inset: 0;
      }
      .cta[data-astro-cid-hwvj6ntz] {
        overflow: hidden;
      }
      .cta-grid[data-astro-cid-hwvj6ntz] {
        text-align: center;
        place-items: center;
        gap: 2.5rem;
        display: grid;
      }
      .cta-copy[data-astro-cid-hwvj6ntz] {
        justify-items: center;
        gap: 1.1rem;
        max-width: 760px;
        display: grid;
      }
      .cta-copy[data-astro-cid-hwvj6ntz] .lead[data-astro-cid-hwvj6ntz] {
        color: var(--mist-300);
      }
      .has-video[data-astro-cid-hwvj6ntz] {
        text-align: left;
        justify-items: stretch;
      }
      .has-video[data-astro-cid-hwvj6ntz] .cta-copy[data-astro-cid-hwvj6ntz] {
        justify-items: start;
      }
      @media (width>=900px) {
        .has-video[data-astro-cid-hwvj6ntz] {
          grid-template-columns: 1fr 1fr;
        }
        .video-first[data-astro-cid-hwvj6ntz] .cta-copy[data-astro-cid-hwvj6ntz] {
          order: 2;
        }
      }

/* ---- index.DEAB2FUf.css ---- */
.pnav[data-astro-cid-ek7ewg67] {
  top: var(--header-h);
  z-index: 40;
  -webkit-backdrop-filter: saturate(160%) blur(14px);
  background: #061027f2;
  border-bottom: 1px solid #8fa2cb29;
  position: sticky;
}
.pnav-list[data-astro-cid-ek7ewg67] {
  scrollbar-width: none;
  overscroll-behavior-x: contain;
  gap: 0.35rem;
  margin: 0;
  padding: 0.55rem 0;
  list-style: none;
  display: flex;
  overflow-x: auto;
  mask-image: linear-gradient(90deg, #000 calc(100% - 2rem), #0000);
}
.pnav-list[data-astro-cid-ek7ewg67]::-webkit-scrollbar {
  display: none;
}
.pnav-list[data-astro-cid-ek7ewg67] a[data-astro-cid-ek7ewg67] {
  white-space: nowrap;
  min-height: 40px;
  font-size: var(--fs-xs);
  color: var(--mist-300);
  transition:
    color var(--dur-fast),
    background var(--dur-fast),
    border-color var(--dur-fast);
  border: 1px solid #0000;
  border-radius: 999px;
  align-items: center;
  gap: 0.5rem;
  padding: 0 0.85rem 0 0.6rem;
  font-weight: 600;
  text-decoration: none;
  display: inline-flex;
}
.pnav-list[data-astro-cid-ek7ewg67] a[data-astro-cid-ek7ewg67] img {
  object-fit: contain;
  background: #fff;
  border-radius: 5px;
  width: 20px;
  height: 20px;
  padding: 2px;
}
.pnav-list[data-astro-cid-ek7ewg67] a[data-astro-cid-ek7ewg67]:hover {
  color: #fff;
  background: #ffffff0f;
}
.pnav-list[data-astro-cid-ek7ewg67] a[data-astro-cid-ek7ewg67][aria-current="true"] {
  color: #fff;
  background: #1463ff38;
  border-color: #6fd3ff66;
}
@media (width>=1100px) {
  .pnav-list[data-astro-cid-ek7ewg67] {
    justify-content: center;
    mask-image: none;
  }
}
.prod--brief[data-astro-cid-2r57j3p2] {
  scroll-margin-top: 1.5rem;
}
.pgrid[data-astro-cid-2r57j3p2] {
  gap: 1.5rem;
  display: grid;
}
.p-copy[data-astro-cid-2r57j3p2] {
  display: contents;
}
.p-head[data-astro-cid-2r57j3p2] {
  order: 1;
  gap: 0.9rem;
  display: grid;
}
.p-visual[data-astro-cid-2r57j3p2] {
  order: 2;
  min-width: 0;
}
.p-body[data-astro-cid-2r57j3p2] {
  order: 3;
  justify-items: start;
  gap: 1.15rem;
  display: grid;
}
@media (width>=960px) {
  .pgrid[data-astro-cid-2r57j3p2] {
    grid-template-columns: 1.12fr 0.88fr;
    align-items: center;
    gap: clamp(2.5rem, 1rem + 4vw, 4.5rem);
  }
  .pgrid[data-astro-cid-2r57j3p2].flip {
    grid-template-columns: 0.88fr 1.12fr;
  }
  .p-copy[data-astro-cid-2r57j3p2] {
    order: 2;
    gap: 1.25rem;
    display: grid;
  }
  .p-visual[data-astro-cid-2r57j3p2],
  .flip[data-astro-cid-2r57j3p2] .p-copy[data-astro-cid-2r57j3p2] {
    order: 1;
  }
  .flip[data-astro-cid-2r57j3p2] .p-visual[data-astro-cid-2r57j3p2] {
    order: 2;
  }
}
.p-title[data-astro-cid-2r57j3p2] {
  align-items: center;
  gap: 1rem;
  display: flex;
}
.p-icon[data-astro-cid-2r57j3p2] {
  border: 1px solid var(--ice-200);
  width: 64px;
  height: 64px;
  box-shadow: var(--shadow-card);
  background: #fff;
  border-radius: 16px;
  flex: none;
  place-items: center;
  display: grid;
}
.p-icon[data-astro-cid-2r57j3p2] img {
  object-fit: contain;
  width: 44px;
  height: 44px;
}
h2[data-astro-cid-2r57j3p2] {
  font-size: var(--fs-xl);
  letter-spacing: -0.02em;
  font-weight: 800;
}
.ver[data-astro-cid-2r57j3p2] {
  color: var(--primary);
}
.p-tag[data-astro-cid-2r57j3p2] {
  color: var(--primary);
  font-weight: 650;
  font-size: var(--fs-sm);
  margin-top: 0.2rem;
}
.p-sum[data-astro-cid-2r57j3p2] {
  color: var(--ink-700);
  font-size: var(--fs-md);
  max-width: 56ch;
  line-height: 1.6;
}
.p-specs[data-astro-cid-2r57j3p2] {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 190px), 1fr));
  gap: 0.6rem;
  width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
}
.spec[data-astro-cid-2r57j3p2] {
  border: 1px solid var(--ice-200);
  font-size: var(--fs-sm);
  color: var(--ink-700);
  background: #fff;
  border-radius: 12px;
  align-items: center;
  gap: 0.7rem;
  padding: 0.8rem 0.95rem;
  font-weight: 600;
  line-height: 1.35;
  display: flex;
  box-shadow: 0 1px 2px #0a16330a;
}
.spec[data-astro-cid-2r57j3p2] svg {
  color: var(--primary);
  flex: none;
}
.light--lines[data-astro-cid-2r57j3p2] .spec[data-astro-cid-2r57j3p2],
.light[data-astro-cid-2r57j3p2] .spec[data-astro-cid-2r57j3p2] {
  background: #ffffffe6;
}
.p-out[data-astro-cid-2r57j3p2] {
  font-size: var(--fs-sm);
  color: var(--ink-700);
  background: #1f9d6312;
  border: 1px solid #1f9d6333;
  border-radius: 12px;
  align-items: flex-start;
  gap: 0.65rem;
  width: 100%;
  padding: 0.8rem 1rem;
  font-weight: 600;
  display: flex;
}
.p-out[data-astro-cid-2r57j3p2] svg {
  color: var(--success);
  flex: none;
  margin-top: 1px;
}
.p-video[data-astro-cid-2r57j3p2] {
  gap: 0.5rem;
}
.brief[data-astro-cid-2r57j3p2] {
  align-items: center;
  gap: 1.25rem;
  padding: clamp(1.5rem, 1rem + 2vw, 2.25rem);
  display: grid;
}
.p-icon--lg[data-astro-cid-2r57j3p2] {
  border-radius: 20px;
  width: 88px;
  height: 88px;
}
.p-icon--lg[data-astro-cid-2r57j3p2] img {
  width: 60px;
  height: 60px;
}
.brief-copy[data-astro-cid-2r57j3p2] {
  gap: 0.35rem;
  display: grid;
}
.brief-copy[data-astro-cid-2r57j3p2] .eyebrow[data-astro-cid-2r57j3p2] {
  margin-bottom: 0.25rem;
}
.brief[data-astro-cid-2r57j3p2] .p-sum[data-astro-cid-2r57j3p2] {
  font-size: var(--fs-base);
  margin-top: 0.35rem;
}
@media (width>=860px) {
  .brief[data-astro-cid-2r57j3p2] {
    grid-template-columns: auto 1fr auto;
    gap: 2rem;
  }
}
.slim[data-astro-cid-g7zvwdwa] {
  isolation: isolate;
  border-block: 1px solid #6fd3ff24;
  padding-block: clamp(2.25rem, 1.8rem + 2vw, 3.25rem);
  position: relative;
  overflow: hidden;
}
.slim-inner[data-astro-cid-g7zvwdwa] {
  align-items: center;
  gap: 1.25rem;
  display: grid;
}
.slim-copy[data-astro-cid-g7zvwdwa] {
  gap: 0.35rem;
  display: grid;
}
.slim-title[data-astro-cid-g7zvwdwa] {
  font-size: var(--fs-lg);
  letter-spacing: -0.015em;
  color: #fff;
  text-wrap: balance;
  font-weight: 750;
  line-height: 1.25;
}
.slim-text[data-astro-cid-g7zvwdwa] {
  color: var(--mist-300);
  font-size: var(--fs-sm);
}
@media (width>=860px) {
  .slim-inner[data-astro-cid-g7zvwdwa] {
    grid-template-columns: 1fr auto;
    gap: 2.5rem;
  }
}
.intro-points[data-astro-cid-6v3mdio7] {
  gap: 1.1rem;
  margin: 0.75rem 0 0;
  padding: 0;
  list-style: none;
  display: grid;
}
.intro-visual[data-astro-cid-6v3mdio7] {
  gap: 0.25rem;
  min-width: 0;
  margin: 0;
  display: grid;
}
.intro-visual[data-astro-cid-6v3mdio7] .caption[data-astro-cid-6v3mdio7] {
  text-align: center;
}
#catalogue[data-astro-cid-6v3mdio7] {
  overflow: hidden;
}

/* ---- ProductMap.BARw57Zw.css ---- */
.pv[data-astro-cid-vbhy64zx] {
  gap: 1rem;
  min-width: 0;
  display: grid;
}
.pv--large[data-astro-cid-vbhy64zx] {
  width: 100%;
  max-width: 1040px;
  margin-inline: auto;
}
.pv-caps[data-astro-cid-vbhy64zx] {
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem 1.5rem;
  display: grid;
}
.pv-caps[data-astro-cid-vbhy64zx] p[data-astro-cid-vbhy64zx] {
  font-size: var(--fs-xs);
  color: var(--text-muted);
  align-items: baseline;
  gap: 0.6rem;
  line-height: 1.45;
  display: flex;
}
.pv-k[data-astro-cid-vbhy64zx] {
  letter-spacing: 0.1em;
  text-transform: uppercase;
  background: var(--ice-100);
  color: var(--ink-500);
  border-radius: 5px;
  flex: none;
  padding: 0.2rem 0.45rem;
  font-size: 10px;
  font-weight: 600;
}
.pv-k--after[data-astro-cid-vbhy64zx] {
  color: var(--blue-700);
  background: #1463ff1f;
}
@media (width>=560px) {
  .pv--compare[data-astro-cid-vbhy64zx]
    .pv-caps[data-astro-cid-vbhy64zx]
    p[data-astro-cid-vbhy64zx]:last-child {
    text-align: right;
    justify-content: flex-end;
  }
  .pv--compare[data-astro-cid-vbhy64zx]
    .pv-caps[data-astro-cid-vbhy64zx]
    p[data-astro-cid-vbhy64zx]:last-child
    .pv-k[data-astro-cid-vbhy64zx] {
    order: 2;
  }
}
@media (width<=559px) {
  .pv-caps[data-astro-cid-vbhy64zx] {
    grid-template-columns: 1fr;
  }
}
.pframe[data-astro-cid-vbhy64zx] {
  border-radius: var(--radius);
  border: 1px solid var(--border);
  background: var(--navy-900);
  box-shadow: var(--shadow-card);
  position: relative;
  overflow: hidden;
}
.pframe[data-astro-cid-vbhy64zx] img {
  object-fit: cover;
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;
}
.ptag[data-astro-cid-vbhy64zx] {
  letter-spacing: 0.1em;
  color: #fff;
  background: #030816c7;
  border-radius: 5px;
  padding: 0.2rem 0.45rem;
  font-size: 10px;
  font-weight: 600;
  position: absolute;
  top: 0.6rem;
  left: 0.6rem;
}
.ptag--after[data-astro-cid-vbhy64zx] {
  background: var(--blue-600);
}
.seam[data-astro-cid-vbhy64zx] {
  width: 40px;
  height: 40px;
  color: var(--blue-600);
  border: 1px solid var(--ice-200);
  background: #fff;
  border-radius: 50%;
  place-items: center;
  display: grid;
  box-shadow: 0 4px 14px #0308164d;
}
.pair[data-astro-cid-vbhy64zx] {
  gap: 1.25rem;
  width: 100%;
  margin-inline: auto;
  display: grid;
  position: relative;
}
.pair[data-astro-cid-vbhy64zx] .seam[data-astro-cid-vbhy64zx] {
  display: none;
}
@media (width>=560px) {
  .pair[data-astro-cid-vbhy64zx] {
    grid-template-columns: var(--cols);
  }
  .pair[data-astro-cid-vbhy64zx] .seam[data-astro-cid-vbhy64zx] {
    top: 0;
    left: calc((100% - 1.25rem) * var(--seam) + 0.625rem - 20px);
    margin-top: calc((100% - 1.25rem) / var(--sum) / 2 - 20px);
    display: grid;
    position: absolute;
  }
}
.collage[data-astro-cid-vbhy64zx] {
  gap: 1rem;
  display: grid;
  position: relative;
}
.collage[data-astro-cid-vbhy64zx] .seam[data-astro-cid-vbhy64zx] {
  display: none;
}
@media (width>=560px) {
  .collage[data-astro-cid-vbhy64zx] {
    grid-template-columns: repeat(20, 1fr);
    gap: 0;
    padding-bottom: 0.25rem;
  }
  .collage[data-astro-cid-vbhy64zx]:before {
    content: "";
    border-radius: var(--radius-lg);
    z-index: -1;
    background: radial-gradient(closest-side, #2f7bff2e, #0000 75%);
    position: absolute;
    inset: 12% 6% 4% 8%;
  }
  .c1[data-astro-cid-vbhy64zx] {
    grid-area: 1/1 / auto/span 12;
    align-self: start;
  }
  .c2[data-astro-cid-vbhy64zx] {
    z-index: 1;
    margin-top: calc(100% / var(--ra) * 0.68);
    outline: 4px solid #fff;
    grid-area: 1/9 / auto/span 12;
    align-self: start;
    overflow: visible;
    box-shadow:
      0 2px 4px #0a163314,
      0 24px 48px -16px #0a163373;
  }
  .c2[data-astro-cid-vbhy64zx] img {
    border-radius: calc(var(--radius) - 1px);
  }
  .c2[data-astro-cid-vbhy64zx] .seam[data-astro-cid-vbhy64zx] {
    z-index: 2;
    display: grid;
    position: absolute;
    top: -20px;
    left: -20px;
  }
  .c2[data-astro-cid-vbhy64zx] .ptag[data-astro-cid-vbhy64zx] {
    left: auto;
    right: 0.6rem;
  }
}
.pmap[data-astro-cid-ut3hujlk] {
  gap: 1.25rem;
  display: grid;
}
.engine[data-astro-cid-ut3hujlk] {
  border-radius: var(--radius);
  color: inherit;
  border: 1px solid var(--border);
  background: var(--surface);
  transition:
    border-color var(--dur),
    box-shadow var(--dur),
    transform var(--dur) var(--ease-out);
  align-items: center;
  gap: 0.9rem;
  padding: 0.85rem 1.1rem;
  text-decoration: none;
  display: flex;
}
.engine[data-astro-cid-ut3hujlk] img {
  flex: none;
  width: 40px;
  height: auto;
}
.engine-txt[data-astro-cid-ut3hujlk] {
  gap: 0.1rem;
  min-width: 0;
  display: grid;
}
.engine-txt[data-astro-cid-ut3hujlk] strong[data-astro-cid-ut3hujlk] {
  font-size: var(--fs-sm);
  color: var(--text);
  font-weight: 700;
}
.engine-txt[data-astro-cid-ut3hujlk] span[data-astro-cid-ut3hujlk] {
  font: 500 var(--fs-xs)/1.35 var(--font-mono);
  letter-spacing: 0.04em;
  color: var(--text-muted);
}
.engine[data-astro-cid-ut3hujlk] .engine-chev {
  color: var(--dime-orange);
  transition: transform var(--dur) var(--ease-out);
  flex: none;
  margin-left: auto;
}
.engine[data-astro-cid-ut3hujlk]:hover {
  border-color: #f28c2899;
}
.engine[data-astro-cid-ut3hujlk]:hover .engine-chev {
  transform: translate(3px);
}
.stages[data-astro-cid-ut3hujlk] {
  gap: 1.5rem;
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
}
.stage[data-astro-cid-ut3hujlk] {
  align-content: start;
  gap: 0.75rem;
  min-width: 0;
  display: grid;
}
.stage-head[data-astro-cid-ut3hujlk] {
  align-items: center;
  gap: 0.7rem;
  display: flex;
}
.num[data-astro-cid-ut3hujlk] {
  font-size: var(--fs-xs);
  letter-spacing: 0.1em;
  color: var(--primary);
  font-weight: 600;
}
.stage-head[data-astro-cid-ut3hujlk] h3[data-astro-cid-ut3hujlk] {
  font: 600 var(--fs-xs)/1.3 var(--font-sans);
  letter-spacing: 0.01em;
  text-transform: none;
}
.stage-blurb[data-astro-cid-ut3hujlk] {
  font-size: var(--fs-sm);
  color: var(--text-muted);
}
.tiles[data-astro-cid-ut3hujlk] {
  gap: 0.6rem;
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
}
.tile[data-astro-cid-ut3hujlk] {
  min-height: 48px;
  color: inherit;
  border: 1px solid var(--border);
  background: var(--surface);
  transition:
    border-color var(--dur),
    box-shadow var(--dur),
    transform var(--dur) var(--ease-out),
    background var(--dur);
  border-radius: 12px;
  align-items: center;
  gap: 0.85rem;
  padding: 0.7rem 0.85rem;
  text-decoration: none;
  display: flex;
}
.t-icon[data-astro-cid-ut3hujlk] {
  border: 1px solid var(--ice-200);
  background: #fff;
  border-radius: 10px;
  flex: none;
  place-items: center;
  display: grid;
}
.t-icon[data-astro-cid-ut3hujlk] img {
  object-fit: contain;
  width: 72%;
  height: 72%;
}
.t-txt[data-astro-cid-ut3hujlk] {
  gap: 0.1rem;
  min-width: 0;
  display: grid;
}
.t-txt[data-astro-cid-ut3hujlk] strong[data-astro-cid-ut3hujlk] {
  color: var(--text);
  font-weight: 700;
  line-height: 1.25;
}
.t-txt[data-astro-cid-ut3hujlk] span[data-astro-cid-ut3hujlk] {
  font-size: var(--fs-xs);
  color: var(--text-muted);
  line-height: 1.35;
}
.tile[data-astro-cid-ut3hujlk] .t-go {
  opacity: 0.55;
  transition:
    transform var(--dur) var(--ease-out),
    opacity var(--dur);
  flex: none;
  margin-left: auto;
}
.tile[data-astro-cid-ut3hujlk]:hover {
  border-color: #2f7bff8c;
  transform: translateY(-2px);
}
.tile[data-astro-cid-ut3hujlk]:hover .t-go {
  opacity: 1;
  transform: translateY(2px);
}
.tile--ghost[data-astro-cid-ut3hujlk] {
  background: 0 0;
  border-style: dashed;
}
.tile--ghost[data-astro-cid-ut3hujlk]:hover .t-go {
  transform: translate(3px);
}
.t-icon--ghost[data-astro-cid-ut3hujlk] {
  width: 50px;
  height: 50px;
  color: var(--cyan-300);
  background: #2f7bff1f;
  border-color: #6fd3ff4d;
}
/* Full product map (products page): DIME card, curved rail, three stage columns */
.pmap--full[data-astro-cid-ut3hujlk] .engine[data-astro-cid-ut3hujlk] {
  background: linear-gradient(135deg, #f28c281f, #0b1d43cc 60%);
  border-color: #f28c28b3;
  box-shadow:
    0 0 0 1px #f28c2833,
    0 0 36px -6px #f28c2866;
  gap: 1.1rem;
  width: 100%;
  max-width: 500px;
  margin-inline: auto;
  padding: 1.1rem 1.4rem;
}
.pmap--full[data-astro-cid-ut3hujlk] .engine[data-astro-cid-ut3hujlk]:hover {
  border-color: var(--dime-orange);
  box-shadow:
    0 0 0 1px #f28c2859,
    0 0 44px -4px #f28c2880;
}
.pmap--full[data-astro-cid-ut3hujlk] .engine[data-astro-cid-ut3hujlk] img {
  width: 60px;
}
.pmap--full[data-astro-cid-ut3hujlk]
  .engine-txt[data-astro-cid-ut3hujlk]
  strong[data-astro-cid-ut3hujlk] {
  font-size: var(--fs-lg);
  line-height: 1.25;
}
.pmap--full[data-astro-cid-ut3hujlk]
  .engine-txt[data-astro-cid-ut3hujlk]
  span[data-astro-cid-ut3hujlk] {
  font: 400 var(--fs-sm)/1.4 var(--font-sans);
  letter-spacing: 0;
  color: var(--mist-300);
}
.engine-sep[data-astro-cid-ut3hujlk] {
  background: #f28c2859;
  flex: none;
  align-self: stretch;
  width: 1px;
  margin-left: auto;
}
.pmap--full[data-astro-cid-ut3hujlk] .engine[data-astro-cid-ut3hujlk] .engine-chev {
  border: 1.5px solid var(--dime-orange);
  border-radius: 50%;
  width: 38px;
  height: 38px;
  margin-left: 0;
  padding: 8px;
}
.pmap--full[data-astro-cid-ut3hujlk] .stage[data-astro-cid-ut3hujlk] {
  gap: 1.4rem;
}
/* Stage header: number badge, line icon, then title and blurb stacked */
.pmap--full[data-astro-cid-ut3hujlk] .stage-head[data-astro-cid-ut3hujlk] {
  grid-template-columns: auto auto 1fr;
  align-items: start;
  gap: 0.9rem;
  display: grid;
}
.pmap--full[data-astro-cid-ut3hujlk] .num[data-astro-cid-ut3hujlk] {
  background: #1463ff1f;
  border: 1.5px solid #2f7bff99;
  border-radius: 10px;
  place-items: center;
  width: 44px;
  height: 44px;
  font-size: var(--fs-md);
  letter-spacing: 0;
  color: var(--blue-400);
  font-weight: 700;
  display: grid;
}
.pmap--full[data-astro-cid-ut3hujlk] .stage-icon {
  color: var(--blue-400);
  margin-top: 7px;
}
.stage-txt[data-astro-cid-ut3hujlk] {
  gap: 0.45rem;
  min-width: 0;
  padding-top: 0.55rem;
  display: grid;
}
.pmap--full[data-astro-cid-ut3hujlk]
  .stage-head[data-astro-cid-ut3hujlk]
  h3[data-astro-cid-ut3hujlk] {
  font: 700 var(--fs-md)/1.3 var(--font-sans);
  color: var(--mist-50);
}
.pmap--full[data-astro-cid-ut3hujlk] .stage-blurb[data-astro-cid-ut3hujlk] {
  color: var(--mist-300);
  font-size: 0.9375rem;
  line-height: 1.5;
}
/* Product tiles */
.pmap--full[data-astro-cid-ut3hujlk] .tiles[data-astro-cid-ut3hujlk] {
  align-content: start;
  gap: 0.75rem;
}
.pmap--full[data-astro-cid-ut3hujlk] .tile[data-astro-cid-ut3hujlk] {
  background: #0b1d43b3;
  border-color: #8fa2cb2e;
  border-radius: 14px;
  gap: 1.1rem;
  min-height: 84px;
  padding: 1rem 1.1rem 1rem 1.25rem;
}
.pmap--full[data-astro-cid-ut3hujlk] .tile[data-astro-cid-ut3hujlk]:hover {
  background: #12295cb3;
  border-color: #5a9bffa6;
  box-shadow: var(--glow);
}
.pmap--full[data-astro-cid-ut3hujlk] .t-icon[data-astro-cid-ut3hujlk] {
  border: 0;
  border-radius: 12px;
  width: 56px;
  height: 56px;
}
.pmap--full[data-astro-cid-ut3hujlk]
  .t-txt[data-astro-cid-ut3hujlk]
  strong[data-astro-cid-ut3hujlk] {
  font-size: var(--fs-md);
}
.pmap--full[data-astro-cid-ut3hujlk]
  .t-txt[data-astro-cid-ut3hujlk]
  span[data-astro-cid-ut3hujlk] {
  color: var(--mist-300);
  font-size: 0.9375rem;
}
/* Arrow in a circle */
.pmap--full[data-astro-cid-ut3hujlk] .tile[data-astro-cid-ut3hujlk] .t-go {
  opacity: 1;
  color: var(--mist-50);
  border: 1.5px solid #8fa2cb66;
  border-radius: 50%;
  width: 34px;
  height: 34px;
  padding: 7px;
  transition:
    transform var(--dur) var(--ease-out),
    border-color var(--dur),
    color var(--dur);
}
.pmap--full[data-astro-cid-ut3hujlk] .tile[data-astro-cid-ut3hujlk]:hover .t-go {
  color: var(--cyan-300);
  border-color: var(--cyan-300);
  transform: translate(3px);
}
.pmap--full[data-astro-cid-ut3hujlk] .tile--ghost[data-astro-cid-ut3hujlk] {
  background: #1463ff0d;
  border: 1.5px dashed #5a9bff8c;
}
.pmap--full[data-astro-cid-ut3hujlk] .t-icon--ghost[data-astro-cid-ut3hujlk] {
  background: #1463ff26;
  border: 1.5px solid #5a9bffb3;
  color: var(--blue-400);
}
/* Rail: curved connectors from the DIME card down to a glowing dot above each column */
.rail[data-astro-cid-ut3hujlk] {
  display: none;
}
@media (width>=980px) {
  .pmap--full[data-astro-cid-ut3hujlk] {
    gap: 0;
  }
  .pmap--full[data-astro-cid-ut3hujlk] .stages[data-astro-cid-ut3hujlk] {
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: auto auto;
    gap: 0 2.5rem;
    margin-top: 0.6rem;
  }
  /* Subgrid lines up the first tile of every column, whatever the blurb length */
  .pmap--full[data-astro-cid-ut3hujlk] .stage[data-astro-cid-ut3hujlk] {
    grid-row: span 2;
    grid-template-rows: subgrid;
  }
  .rail[data-astro-cid-ut3hujlk] {
    --rail-line: 1.5px solid #5a9bffb3;
    filter: drop-shadow(0 0 4px #2f7bff80);
    height: 3.75rem;
    margin-inline: calc(16.6667% - 0.833333rem);
    display: block;
    position: relative;
  }
  .rail[data-astro-cid-ut3hujlk] i[data-astro-cid-ut3hujlk] {
    position: absolute;
    top: 0;
    bottom: 0;
  }
  .rail[data-astro-cid-ut3hujlk] i[data-astro-cid-ut3hujlk]:before,
  .rail[data-astro-cid-ut3hujlk] i[data-astro-cid-ut3hujlk]:after {
    content: "";
    position: absolute;
  }
  /* Each side branch leaves the card 32px in from its edge (card is 500px wide) */
  .rail[data-astro-cid-ut3hujlk] i[data-astro-cid-ut3hujlk]:first-child {
    left: 0;
    right: calc(50% + 218px);
  }
  .rail[data-astro-cid-ut3hujlk] i[data-astro-cid-ut3hujlk]:first-child:before {
    border-right: var(--rail-line);
    border-bottom: var(--rail-line);
    border-bottom-right-radius: 14px;
    top: 0;
    height: 50%;
    left: 14px;
    right: 0;
  }
  .rail[data-astro-cid-ut3hujlk] i[data-astro-cid-ut3hujlk]:first-child:after {
    border-left: var(--rail-line);
    border-top: var(--rail-line);
    border-top-left-radius: 14px;
    top: calc(50% - 1.5px);
    bottom: 10px;
    left: -0.75px;
    width: 16px;
  }
  .rail[data-astro-cid-ut3hujlk] i[data-astro-cid-ut3hujlk]:nth-child(2) {
    left: 50%;
  }
  .rail[data-astro-cid-ut3hujlk] i[data-astro-cid-ut3hujlk]:nth-child(2):before {
    border-left: var(--rail-line);
    top: 0;
    bottom: 10px;
    left: -0.75px;
  }
  .rail[data-astro-cid-ut3hujlk] i[data-astro-cid-ut3hujlk]:nth-child(3) {
    left: calc(50% + 218px);
    right: 0;
  }
  .rail[data-astro-cid-ut3hujlk] i[data-astro-cid-ut3hujlk]:nth-child(3):before {
    border-left: var(--rail-line);
    border-bottom: var(--rail-line);
    border-bottom-left-radius: 14px;
    top: 0;
    height: 50%;
    left: 0;
    right: 14px;
  }
  .rail[data-astro-cid-ut3hujlk] i[data-astro-cid-ut3hujlk]:nth-child(3):after {
    border-right: var(--rail-line);
    border-top: var(--rail-line);
    border-top-right-radius: 14px;
    top: calc(50% - 1.5px);
    bottom: 10px;
    right: -0.75px;
    width: 16px;
  }
  .rail[data-astro-cid-ut3hujlk] b[data-astro-cid-ut3hujlk] {
    background: var(--cyan-300);
    border-radius: 50%;
    width: 10px;
    height: 10px;
    box-shadow:
      0 0 0 3px #6fd3ff26,
      0 0 12px var(--cyan-300);
    position: absolute;
    bottom: 0;
    left: -5px;
  }
  .rail[data-astro-cid-ut3hujlk] i[data-astro-cid-ut3hujlk]:nth-child(3) b[data-astro-cid-ut3hujlk] {
    left: auto;
    right: -5px;
  }
}
@media (width<=979px) {
  .pmap--full[data-astro-cid-ut3hujlk] .stages[data-astro-cid-ut3hujlk] {
    gap: 2.25rem;
    margin-top: 1.25rem;
  }
}
@media (width>=640px) and (width<=979px) {
  .pmap--full[data-astro-cid-ut3hujlk] .tiles[data-astro-cid-ut3hujlk] {
    grid-template-columns: 1fr 1fr;
  }
}
/* Catalogue heading: pill eyebrow with a short line each side, larger title */
.eyebrow--pill {
  justify-content: center;
  align-items: center;
  gap: 1rem;
  display: flex;
}
.eyebrow--pill:before,
.eyebrow--pill:after {
  content: "";
  background: currentColor;
  opacity: 0.5;
  width: 28px;
  height: 1px;
}
.eyebrow--pill span {
  background: #1463ff14;
  border: 1px solid #5a9bff66;
  border-radius: 999px;
  padding: 0.4rem 1.25rem;
}
#catalogue > .container {
  max-width: 1360px;
}
#catalogue .section-head {
  max-width: 1100px;
}
#catalogue .section-head .lead {
  max-width: 680px;
}
#catalogue-title {
  font-size: var(--fs-3xl);
  letter-spacing: -0.02em;
  margin-top: 1rem;
}
#catalogue-title .text-gradient {
  white-space: nowrap;
}
.pmap--compact[data-astro-cid-ut3hujlk] {
  gap: 1rem;
}
.pmap--compact[data-astro-cid-ut3hujlk] .engine[data-astro-cid-ut3hujlk] {
  box-shadow: var(--shadow-card);
  background: #fff;
}
.pmap--compact[data-astro-cid-ut3hujlk] .stages[data-astro-cid-ut3hujlk] {
  gap: 0;
  padding-left: 1.4rem;
  position: relative;
}
.pmap--compact[data-astro-cid-ut3hujlk] .stages[data-astro-cid-ut3hujlk]:before {
  content: "";
  background: linear-gradient(180deg, var(--dime-orange), var(--blue-500) 30%, var(--cyan-300));
  opacity: 0.55;
  border-radius: 2px;
  width: 2px;
  position: absolute;
  top: 0.2rem;
  bottom: 1.2rem;
  left: 0.45rem;
}
.pmap--compact[data-astro-cid-ut3hujlk] .stage[data-astro-cid-ut3hujlk] {
  gap: 0.6rem;
  padding-bottom: 1.25rem;
  position: relative;
}
.pmap--compact[data-astro-cid-ut3hujlk] .stage[data-astro-cid-ut3hujlk]:before {
  content: "";
  border: 2px solid var(--blue-500);
  background: #fff;
  border-radius: 50%;
  width: 10px;
  height: 10px;
  position: absolute;
  top: 0.3rem;
  left: -1.25rem;
}
.pmap--compact[data-astro-cid-ut3hujlk]
  .stage-head[data-astro-cid-ut3hujlk]
  h3[data-astro-cid-ut3hujlk] {
  color: var(--ink-700);
}
.pmap--compact[data-astro-cid-ut3hujlk] .tiles[data-astro-cid-ut3hujlk] {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 150px), 1fr));
  gap: 0.5rem;
}
.pmap--compact[data-astro-cid-ut3hujlk] .tile[data-astro-cid-ut3hujlk] {
  background: #fff;
  gap: 0.6rem;
  min-height: 46px;
  padding: 0.5rem 0.65rem;
}
.pmap--compact[data-astro-cid-ut3hujlk] .t-icon[data-astro-cid-ut3hujlk] {
  border-radius: 8px;
  width: 34px;
  height: 34px;
}
.pmap--compact[data-astro-cid-ut3hujlk]
  .t-txt[data-astro-cid-ut3hujlk]
  strong[data-astro-cid-ut3hujlk] {
  font-size: var(--fs-sm);
  font-weight: 650;
}
.pmap--compact[data-astro-cid-ut3hujlk] .tile[data-astro-cid-ut3hujlk]:hover {
  box-shadow: var(--shadow-lift);
}
.pmap--compact[data-astro-cid-ut3hujlk] .tile[data-astro-cid-ut3hujlk].is-current {
  background: linear-gradient(135deg, var(--blue-600), var(--blue-500));
  border-color: var(--blue-600);
  box-shadow: 0 10px 24px -12px #1463ffcc;
}
.pmap--compact[data-astro-cid-ut3hujlk]
  .tile[data-astro-cid-ut3hujlk].is-current
  .t-txt[data-astro-cid-ut3hujlk]
  strong[data-astro-cid-ut3hujlk] {
  color: #fff;
}
.pmap--compact[data-astro-cid-ut3hujlk]
  .tile[data-astro-cid-ut3hujlk].is-current
  .t-icon[data-astro-cid-ut3hujlk] {
  border-color: #0000;
}

/* ---- page styles ---- */
.cmp[data-astro-cid-d4nisn5p] {
        width: 100%;
        max-width: 100%;
        display: block;
        position: relative;
      }
      .cmp-stage[data-astro-cid-d4nisn5p] {
        position: absolute;
        inset: 0;
        overflow: hidden;
      }
      .cmp--frame[data-astro-cid-d4nisn5p] .cmp-stage[data-astro-cid-d4nisn5p] {
        border-radius: var(--radius);
        border: 1px solid var(--border);
        background: var(--navy-900);
        box-shadow: var(--shadow-card);
      }
      .cmp[data-astro-cid-d4nisn5p] .cmp-img {
        object-fit: cover;
        user-select: none;
        -webkit-user-drag: none;
        width: 100%;
        height: 100%;
        position: absolute;
        inset: 0;
      }
      .cmp--bare[data-astro-cid-d4nisn5p] .cmp-img {
        object-fit: contain;
      }
      .cmp-top[data-astro-cid-d4nisn5p] {
        clip-path: inset(0 calc(100% - var(--x)) 0 0);
        position: absolute;
        inset: 0;
      }
      .cmp-beam[data-astro-cid-d4nisn5p] {
        top: 0;
        bottom: 0;
        left: var(--x);
        pointer-events: none;
        background: #fff;
        width: 2px;
        margin-left: -1px;
        position: absolute;
        box-shadow:
          0 0 0 1px #03081640,
          0 0 18px 2px #6fd3ffa6;
      }
      .cmp--bare[data-astro-cid-d4nisn5p] .cmp-beam[data-astro-cid-d4nisn5p] {
        background: linear-gradient(
          180deg,
          transparent,
          var(--cyan-300) 18%,
          #fff 50%,
          var(--cyan-300) 82%,
          transparent
        );
        box-shadow: 0 0 24px 4px #6fd3ff8c;
      }
      .cmp-knob[data-astro-cid-d4nisn5p] {
        width: 40px;
        height: 40px;
        color: var(--blue-600);
        transition: transform var(--dur-fast) var(--ease-out);
        background: #fff;
        border-radius: 50%;
        place-items: center;
        margin: -20px 0 0 -20px;
        display: grid;
        position: absolute;
        top: 50%;
        left: 50%;
        box-shadow: 0 4px 14px #03081659;
      }
      .cmp-stage[data-astro-cid-d4nisn5p]:hover .cmp-knob[data-astro-cid-d4nisn5p],
      .cmp-range[data-astro-cid-d4nisn5p]:focus-visible
        ~ .cmp-beam[data-astro-cid-d4nisn5p]
        .cmp-knob[data-astro-cid-d4nisn5p] {
        transform: scale(1.08);
      }
      .cmp-tag[data-astro-cid-d4nisn5p] {
        color: #fff;
        max-width: calc(50% - 1.5rem);
        font: 600 12.5px/1.3 var(--font-sans);
        letter-spacing: 0.01em;
        text-transform: none;
        pointer-events: none;
        background: #030816cc;
        border-radius: 6px;
        padding: 0.35rem 0.6rem;
        position: absolute;
        bottom: 0.75rem;
      }
      .cmp-tag--l[data-astro-cid-d4nisn5p] {
        left: 0.75rem;
      }
      .cmp-tag--r[data-astro-cid-d4nisn5p] {
        text-align: right;
        right: 0.75rem;
      }
      .cmp--bare[data-astro-cid-d4nisn5p] .cmp-tag[data-astro-cid-d4nisn5p] {
        background: #061027b3;
        border: 1px solid #6fd3ff59;
        top: 0.25rem;
        bottom: auto;
      }
      .cmp-hint[data-astro-cid-d4nisn5p] {
        top: calc(50% + 30px);
        left: var(--x);
        background: var(--blue-600);
        color: #fff;
        font: 600 12.5px/1.2 var(--font-sans);
        white-space: nowrap;
        pointer-events: none;
        transition: opacity var(--dur);
        border-radius: 6px;
        padding: 0.3rem 0.65rem;
        position: absolute;
        transform: translate(-50%);
        box-shadow: 0 6px 16px -6px #03081699;
      }
      .cmp[data-astro-cid-d4nisn5p].is-used .cmp-hint[data-astro-cid-d4nisn5p] {
        opacity: 0;
      }
      .cmp-range[data-astro-cid-d4nisn5p] {
        opacity: 0;
        cursor: ew-resize;
        touch-action: pan-y;
        -webkit-appearance: none;
        appearance: none;
        width: 100%;
        height: 100%;
        margin: 0;
        position: absolute;
        inset: 0;
      }
      .cmp[data-astro-cid-d4nisn5p]:has(.cmp-range:focus-visible)
        .cmp-stage[data-astro-cid-d4nisn5p] {
        outline: 2px solid var(--ring);
        outline-offset: 4px;
      }

/* SAQI gathers comparison (v3, Nov 2026): label-free images + one external angle key.
   Images are 2035 x 1205 px: ten strips on a white mat. Strip 1's outline spans image x 25-208
   (1.2285 % to 10.2211 %); each strip is one angle gather, angle 0 to 45 degrees from its left edge to its
   right edge. The frame (.cmp--frame .cmp-stage) has a 1 px border, so image fraction f sits at
   1px + (100% - 2px) * f of the figure width. The key above the frame marks strip 1 once. */
.pv.saqi-gathers {
  --sg-x: calc(1px + (100% - 2px) * 0.012285); /* strip 1 left edge */
  --sg-w: calc((100% - 2px) * 0.089926); /* strip 1 width (183 / 2035) */
  max-width: 920px;
  margin: 1.75rem auto 0;
  row-gap: 0;
}
.saqi-gathers .pv-caps {
  margin-top: 1rem;
}
/* white placeholder (the images sit on a white mat), instead of the shared navy one */
.pv.saqi-gathers .cmp--frame .cmp-stage {
  background: #fff;
}
.saqi-key {
  --line-y: 21px; /* dimension line (centre of the text line too) */
  --ext-y: 16px; /* top of the extension lines */
  position: relative;
  z-index: 0; /* painted before the frame, which covers the 4 px the extension lines run under it */
  display: grid;
  grid-template-columns: var(--sg-x) var(--sg-w) minmax(0, 1fr);
  align-items: start;
  font: 400 var(--fs-xs) / 1.4 var(--font-sans);
  color: var(--ink-500);
}
/* the glyph: a dimension line over strip 1 with an arrowhead toward 45 degrees, and two extension lines
   that drop to the frame at the strip's outer edges. Borders + an SVG tip (not gradients), so the
   glyph survives forced-colors mode and printing. */
.saqi-key__axis {
  grid-column: 2;
  align-self: stretch;
  position: relative;
  min-height: 34px;
  color: var(--blue-600);
}
.saqi-key__axis::before,
.saqi-key__axis::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
}
.saqi-key__axis::before {
  top: var(--ext-y);
  bottom: -4px; /* runs under the frame's top edge, so it meets the rounded corner too */
  border-inline: 1px solid currentColor;
}
.saqi-key__axis::after {
  top: var(--line-y);
  border-top: 1.5px solid currentColor;
}
.saqi-key__tip {
  position: absolute;
  top: calc(var(--line-y) + 0.75px - 4px);
  right: 0;
}
.saqi-key__lo,
.saqi-key__hi {
  position: absolute;
  top: 0;
  font: 600 12px / 14px var(--font-sans);
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.01em;
  color: var(--ink-700);
  white-space: nowrap;
  transform: translateX(-50%);
}
.saqi-key__lo {
  left: 0;
}
.saqi-key__hi {
  left: 100%;
}
.saqi-key__text {
  grid-column: 3;
  margin-top: max(0px, calc(var(--line-y) + 0.75px - 0.7em));
  padding-left: 1.5rem;
}
.saqi-key__lead {
  color: var(--ink-700);
  font-weight: 600;
}
/* narrow figures: strip 1 is slimmer, so the end labels shrink a step but stay centred on the lines */
@media (width < 640px) {
  .saqi-key {
    --line-y: 19px;
    --ext-y: 15px;
  }
  .saqi-key__axis {
    min-height: 30px;
  }
  .saqi-key__lo,
  .saqi-key__hi {
    font-size: 11px;
    line-height: 13px;
  }
  .saqi-key__text {
    padding-left: 1.1rem;
  }
}

/* ==========================================================================================================
   Strat.AI crossline sweep: "collage with motion" (products.html, #strat-ai only)
   - The sweep video is the large front frame: a 4:3 crop of the 738 x 720 clip (5:4 on phones). The crop takes
     the burned-in "xline k" label off the top; the readout .ss-xl, kept in step by strat-sweep.js, replaces it.
   - The horizon-cube still sits behind it at the top left, with its caption in the free strip below it.
   - Frame chrome reuses the page's collage (.pframe, .seam, the white outline and glow of the Prolytix collage).
   - Phones (< 560px): the video first, then the cube still beside its caption; no seam badge.
   Controller: assets/js/strat-sweep.js (in-view playback, Pause/Play, crossline readout, progress).
   ========================================================================================================== */
#strat-ai .ss-collage {
  position: relative;
  display: grid;
  gap: 1.5rem;
}
#strat-ai .ss-fig {
  min-width: 0;
  margin: 0;
  display: grid;
  align-content: start;
  gap: 0.75rem;
}
#strat-ai .ss-cap {
  font-size: var(--fs-xs);
  line-height: 1.45;
  color: var(--text-muted);
  text-wrap: pretty;
}
#strat-ai .ss-cap strong {
  color: var(--ink-900);
  font-weight: 650;
}
#strat-ai .ss-frame--cube {
  aspect-ratio: 2406 / 1420;
}
#strat-ai .ss-frame--sweep {
  aspect-ratio: 5 / 4;
  overflow: visible; /* the seam badge sits on the corner; .ss-media clips the picture */
  background: #1b1f27;
}
#strat-ai .ss-media {
  position: absolute;
  inset: 0;
  overflow: hidden;
  border-radius: calc(var(--radius) - 1px);
}
#strat-ai .ss-poster,
#strat-ai .ss-video {
  position: absolute;
  inset: -1px;
  width: calc(100% + 2px);
  height: calc(100% + 2px);
  max-width: none;
  object-fit: cover;
  object-position: 50% 45%; /* crops the top of the clip, so the burned-in label goes */
}
/* the still shows until the video has its first picture at the start frame; strat-sweep.js sets .is-live */
#strat-ai .ss-video {
  opacity: 0;
  pointer-events: none;
}
#strat-ai .is-live .ss-video {
  opacity: 1;
}

/* Readout and Pause/Play along the bottom edge, in the style of the slider tags (.cmp-tag) */
#strat-ai .ss-bar {
  position: absolute;
  left: 0.75rem;
  right: 0.75rem;
  bottom: 0.75rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  pointer-events: none;
}
#strat-ai .ss-xl {
  padding: 0.35rem 0.6rem;
  border-radius: 6px;
  background: #030816cc;
  color: #fff;
  font: 600 12.5px / 1.3 var(--font-sans);
  letter-spacing: 0.01em;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
#strat-ai .ss-xl-n {
  display: inline-block;
  min-width: 3ch; /* 0 to 127 without the tag changing width */
}
#strat-ai .ss-play {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  min-height: 2.25rem;
  padding: 0 0.85rem 0 0.7rem;
  border: 1px solid #ffffff4d;
  border-radius: 999px;
  background: #030816d9;
  color: #fff;
  font: 650 var(--fs-xs) / 1 var(--font-sans);
  cursor: pointer;
  pointer-events: auto;
  transition:
    background var(--dur-fast),
    border-color var(--dur-fast);
}
#strat-ai .ss-play:hover {
  background: var(--navy-900);
  border-color: #ffffffa6;
}
#strat-ai .ss-play:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
  border-radius: 999px;
  box-shadow: 0 0 0 6px #030816b3;
}
#strat-ai .ss-play svg {
  width: 1rem;
  height: 1rem;
  flex: none;
}
#strat-ai .ss-i-pause,
#strat-ai .is-playing .ss-i-play {
  display: none;
}
#strat-ai .is-playing .ss-i-pause {
  display: block;
}
@media (pointer: coarse) {
  #strat-ai .ss-play {
    min-height: 2.75rem;
  }
}
/* Sweep progress: crossline k of 0-127 */
#strat-ai .ss-progress {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 4px;
  background: #0308168c;
  pointer-events: none;
}
#strat-ai .ss-progress > span {
  display: block;
  height: 100%;
  background: linear-gradient(90deg, var(--blue-500), var(--cyan-300));
  transform-origin: left center;
  transform: scaleX(var(--p, 0.0078));
}
#strat-ai .ss-frame .seam {
  display: none;
}

/* Collage: 20 columns. Still: columns 1-10, top. Sweep: columns 5-20, in front, top at 58 % of the still. */
@media (width >= 560px) {
  #strat-ai .ss-collage {
    grid-template-columns: repeat(20, minmax(0, 1fr));
    gap: 0;
    padding-bottom: 0.25rem;
  }
  #strat-ai .ss-collage::before {
    content: "";
    position: absolute;
    inset: 12% 6% 4% 8%;
    z-index: -1;
    border-radius: var(--radius-lg);
    background: radial-gradient(closest-side, #2f7bff2e, #0000 75%);
  }
  #strat-ai .ss-fig--cube {
    grid-area: 1 / 1 / 2 / 11;
  }
  /* the still's caption stays in the strip left of the sweep: 4 of its 10 columns, less a gutter */
  #strat-ai .ss-fig--cube .ss-cap {
    max-width: calc(100% * 4 / 10 - 1rem);
  }
  #strat-ai .ss-fig--sweep {
    grid-area: 1 / 5 / 2 / 21;
    z-index: 1;
    /* % of this figure's width (16 columns): the still is 10 columns wide at 2406:1420 */
    margin-top: calc(100% * 10 / 16 / 1.6944 * 0.58);
  }
  #strat-ai .ss-frame--sweep {
    aspect-ratio: 4 / 3;
    outline: 4px solid #fff;
    box-shadow:
      0 2px 4px #0a163314,
      0 24px 48px -16px #0a163373;
  }
  #strat-ai .ss-frame--sweep .seam {
    display: grid;
    position: absolute;
    top: -20px;
    left: -20px;
    z-index: 2;
  }
}
@media (width < 560px) {
  #strat-ai .ss-fig--cube {
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
    align-items: center;
    column-gap: 1rem;
  }
}
/* ======================================== end Strat.AI crossline sweep ================================= */

/* Prolytix collage captions: each sits under its own image.
   Wide: caption 1 goes in columns 1-8 (left of the overlapping second image), pushed down by the first image's
   height (its grid area is 8 of 20 columns and the image spans 12, so 150% / --ra of the area's width);
   caption 2 goes in the row under the second image. Phones: image, caption, image, caption. */
.collage .ccap {
  margin: -0.4rem 0 0;
  font-size: var(--fs-xs);
  color: var(--text-muted);
  line-height: 1.45;
}
@media (width >= 560px) {
  .collage .ccap1 {
    grid-area: 1 / 1 / auto / span 8;
    align-self: start;
    margin: calc(150% / var(--ra) + 0.6rem) 0 0;
  }
  .collage .ccap2 {
    grid-area: 2 / 9 / auto / span 12;
    margin: 0.6rem 0 0;
  }
}
