/* ==========================================================================
   FEATURES — sticky stacked cards (features-stack.js, desktop only)
   ========================================================================== */
.fs { position: relative; height: calc(var(--n) * 70vh + 40vh); margin-top: 24px; }
.fs-sticky {
  position: sticky; top: 72px; height: calc(100vh - 72px); min-height: 520px;
  display: grid; grid-template-columns: minmax(280px, 380px) 1fr; gap: clamp(28px, 4vw, 64px); align-items: center;
}

/* left: one feature's text at a time */
.fs-info { position: relative; height: 100%; }
.fs-item {
  position: absolute; left: 0; right: 0; top: 50%;
  opacity: 0; transform: translateY(calc(-50% + 24px)); pointer-events: none;
  transition: opacity .35s ease, transform .45s cubic-bezier(.2,.9,.3,1);
}
.fs-item.on { opacity: 1; transform: translateY(-50%); pointer-events: auto; }

/* right: cards stack upward */
.fs-stage { position: relative; display: flex; align-items: center; gap: 18px; }
.fs-cards { position: relative; flex: 1; aspect-ratio: 16 / 9; overflow: hidden; border-radius: 18px; padding-top: 14px; margin-top: -14px; }
.fs-card {
  position: absolute; inset: 14px 0 0 0; transform-origin: 50% 0;
  border-radius: 16px; overflow: hidden; background: #0c0c0c;
  box-shadow: 0 -6px 24px -10px rgba(0,0,0,.35), 0 24px 50px -24px rgba(0,0,0,.45);
  will-change: transform;
}
.fs-card .fd-live { height: 100%; border-radius: 16px; opacity: 0; transition: opacity .35s ease; }
.fs-card .fd-live.fs-live.fs-ready { opacity: 1; }
/* title card behind the demo, seen while the card slides in and until the demo has loaded */
.fs-ph {
  position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px;
  background: radial-gradient(120% 90% at 50% 0%, #26262c 0%, #111114 70%); color: #fff; text-align: center;
}
.fs-ph-num { font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #a1a1aa; }
.fs-ph-title { font-size: clamp(22px, 2.6vw, 34px); font-weight: 600; letter-spacing: -.02em; }

/* progress dots */
.fs-dots { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.fs-dots button { display: block; width: 8px; height: 8px; border-radius: 50%; border: 0; padding: 0; background: var(--clay-hair, #e5e0d0); cursor: pointer; transition: height .25s, background .25s; }
.fs-dots li.on button { height: 26px; border-radius: 4px; background: var(--clay-ink, #0a0a0a); }

@media (max-width: 1100px) {
  .fs-sticky { grid-template-columns: minmax(240px, 320px) 1fr; }
}
