/* ════════════════════════════════════════════════════════════════════
   THE FIVE D'S — Framework Number Wall
   BEM block: .five-ds
   Pencil source: AFoLk (1440), Dt4TL (768), j4Jkq (390)

   Velvet ink ground · "The Five D's." display moment · 5 ember-numbered
   rows with Playfair italic verb commitments · editorial divider rule.

   Token discipline: --primary-*, --secondary, --cloud-linen,
                     --space-*, --text-*, --heading-*, --line-*,
                     --tracking-*, --leading-*.
   ════════════════════════════════════════════════════════════════════ */

@layer components {

  /* .section primitive owns padding-inline (--gutter). */
  .five-ds {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding-block: var(--space-xxl);

    background-color: var(--primary-ultra-dark);
    background-image:
      radial-gradient(
        ellipse 80% 60% at 18% 8%,
        var(--primary-semi-dark) 0%,
        transparent 60%
      ),
      radial-gradient(
        ellipse 70% 50% at 85% 92%,
        color-mix(in oklch, var(--primary) 40%, transparent) 0%,
        transparent 70%
      );
  }

  .five-ds__container {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    gap: var(--space-l);
  }


  /* ── Header ───────────────────────────────────────────────────── */

  .five-ds__head {
    display: flex;
    flex-direction: column;
    gap: var(--space-s);
    max-inline-size: var(--text-width-m);
  }

  /* Eyebrow uses canonical brand-eyebrow component (--soft variant). */

  /* "The Five D's." display moment.
     Mobile default: smaller, allows wrap. Desktop: full display + nowrap. */
  .five-ds__display {
    margin: 0;
    font-family: var(--font-heading);
    font-weight: var(--weight-extrabold);
    font-size: var(--heading-xl);
    letter-spacing: var(--tracking-tight);
    line-height: var(--leading-crushed);
    color: var(--cloud-linen);
    text-wrap: balance;
  }

  .five-ds__lede {
    margin: 0;
    font-family: var(--font-italic-display);
    font-style: italic;
    font-weight: var(--weight-regular);
    font-size: var(--text-m);
    letter-spacing: var(--tracking-tight);
    line-height: var(--leading-snug);
    color: color-mix(in oklch, var(--cloud-linen) 80%, transparent);
    font-optical-sizing: auto;
  }


  /* ── Editorial divider rule — ember at low opacity ──────────── */

  .five-ds__rule {
    inline-size: 100%;
    block-size: var(--line-thin);
    background: color-mix(in oklch, var(--secondary) 50%, transparent);
  }


  /* ── Stage rows ───────────────────────────────────────────────── */

  .five-ds__rows {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
  }

  /* Mobile default: compact stage rows. */
  .five-ds__row {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: start;
    gap: var(--space-s);
    padding-block: var(--space-m);
    border-block-end: var(--line-thin) solid color-mix(in oklch, var(--cloud-linen) 12%, transparent);
  }

  .five-ds__row:last-child { border-block-end: 0; }

  .five-ds__num {
    font-family: var(--font-heading);
    font-weight: var(--weight-extrabold);
    font-size: var(--heading-l);
    letter-spacing: var(--tracking-tight);
    line-height: var(--leading-crushed);
    color: var(--secondary);
    align-self: start;
  }

  .five-ds__content {
    padding-block-start: var(--space-3xs);
    display: flex;
    flex-direction: column;
    gap: var(--space-2xs);
  }

  .five-ds__name {
    margin: 0;
    font-family: var(--font-heading);
    font-weight: var(--weight-extrabold);
    font-size: var(--heading-m);
    letter-spacing: var(--tracking-tight);
    line-height: var(--leading-none);
    color: var(--cloud-linen);
  }

  .five-ds__verb {
    margin: 0;
    font-family: var(--font-italic-display);
    font-style: italic;
    font-weight: var(--weight-regular);
    font-size: var(--text-m);
    letter-spacing: var(--tracking-tight);
    line-height: var(--leading-snug);
    color: color-mix(in oklch, var(--cloud-linen) 85%, transparent);
    max-inline-size: var(--text-width-m);
    font-optical-sizing: auto;
  }


  /* ── Tablet (≥ 48em) — bigger heading, more breathing room ──── */

  @media (min-width: 48em) {
    .five-ds__display {
      font-size: var(--heading-2xl);
    }
    .five-ds__lede { font-size: var(--text-l); }
    .five-ds__num  { font-size: var(--heading-xl); }
    .five-ds__name { font-size: var(--heading-l); }
    .five-ds__verb { font-size: var(--text-l); }

    .five-ds__row {
      gap: var(--space-l);
      padding-block: var(--space-l);
    }

    .five-ds__content {
      padding-block-start: var(--space-2xs);
      gap: var(--space-s);
    }
  }


  /* ── Desktop (≥ 64em) — full display moment ─────────────────── */

  @media (min-width: 64em) {
    .five-ds__display {
      font-size: var(--heading-display);
      white-space: nowrap;
    }
    .five-ds__lede { font-size: var(--text-xl); }
    .five-ds__num  { font-size: var(--heading-2xl); }
    .five-ds__name { font-size: var(--heading-xl); }
    .five-ds__verb { font-size: var(--text-xl); }

    .five-ds__row {
      grid-template-columns: minmax(var(--space-xl), 11rem) minmax(0, 1fr);
    }
  }

}
