/* ═══════════════════════════════════════════════════════════════════
     CALM ENTRANCE
     A single pace for pages that had no entrance of their own: the
     same curve and duration as the home page, staggered per group so
     a section arrives in reading order rather than all at once.
     ═══════════════════════════════════════════════════════════════ */
  .cm {
    opacity: 0;
    transform: translate3d(0, var(--cm-y, 18px), 0) scale(var(--cm-s, 0.99));
    transition:
      opacity 2s cubic-bezier(.16,1,.3,1),
      transform 2.2s cubic-bezier(.16,1,.3,1),
      filter 2s cubic-bezier(.16,1,.3,1);
    transition-delay: calc(var(--i, 0) * 195ms);
    will-change: opacity, transform;
  }
  .cm.in { opacity: 1; transform: translate3d(0, 0, 0) scale(1); }
  .cm-head { filter: blur(7px); --cm-y: 12px; --cm-s: 0.995; }
  .cm-head.in { filter: blur(0); }

  /* editorial rows arrive with weight rather than a polite nudge */
  .cm-weight { --cm-y: 46px; --cm-s: 0.962; }
  .cm-weight { transition-duration: 2.3s, 2.5s, 2s; }

  @media (prefers-reduced-motion: reduce) {
    .cm, .cm-head {
      opacity: 1 !important; transform: none !important;
      filter: none !important; transition: none !important;
    }
  }
