/* =========================================================================
   NAAM JAP · MANTRA LIBRARY  (filters, cards, detail view)
   Reuses tokens + components. Loaded with css/components.css.
   ========================================================================= */

.mantra-filters { display: flex; flex-wrap: wrap; gap: var(--space-2); justify-content: center; }
.mantra-filters .chip { min-width: 88px; justify-content: center; }

.mantra-grid { display: grid; gap: var(--card-gap); grid-template-columns: 1fr; }
@media (min-width: 640px) { .mantra-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1020px) { .mantra-grid { grid-template-columns: repeat(3, 1fr); } }

.mantra-card {
  display: flex; flex-direction: column; gap: var(--space-4); padding: var(--space-6);
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg);
  box-shadow: var(--shadow-xs); text-align: left; cursor: pointer;
  transition: transform var(--dur) var(--ease-out), box-shadow var(--dur) var(--ease-out), border-color var(--dur);
  width: 100%; font: inherit;
}
.mantra-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); border-color: var(--line-strong); }
.mantra-card__top { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); }
.mantra-card__glyph { font-family: var(--font-dev); font-size: 1.9rem; line-height: 1; color: var(--accent-strong); }
.mantra-card__cat { font-size: var(--text-xs); color: var(--ink-faint); letter-spacing: 0.08em; text-transform: uppercase; }
.mantra-card h3 { font-family: var(--font-display); font-size: var(--text-lg); font-weight: var(--display-weight); }
.mantra-card__text { font-family: var(--font-dev); font-size: clamp(1.2rem, 3.4vw, 1.65rem); line-height: 1.75; color: var(--primary); }
.mantra-card__tr { font-style: italic; color: var(--ink-muted); font-size: var(--text-sm); }
.mantra-card__view { margin-top: auto; font-size: var(--text-xs); color: var(--accent-strong); font-weight: var(--label-weight); letter-spacing: 0.04em; }

/* ---- Modal detail ---------------------------------------------------------- */
.mantra-detail__glyph { font-family: var(--font-dev); font-size: clamp(1.9rem, 6vw, 2.6rem); line-height: 1.75; color: var(--primary); text-align: center; }
.mantra-detail__tr { text-align: center; font-style: italic; color: var(--ink-muted); margin-top: var(--space-3); }
.mantra-detail__mean { margin-top: var(--space-5); padding-top: var(--space-5); border-top: 1px solid var(--line); }
.mantra-detail__mean b { display: block; font-size: var(--text-xs); letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink-faint); margin-bottom: var(--space-2); }
.mantra-detail__note { margin-top: var(--space-4); font-size: var(--text-sm); color: var(--ink-muted); padding: var(--space-4); background: var(--accent-soft); border-radius: var(--radius-md); }