/* ═══════════════════════════════════════════════
   PENSÉES TCG — card.css
   Animations · Card DOM elements
   ═══════════════════════════════════════════════ */

@keyframes borderFlow {
  0%   { background-position: 0% 50%; }
  50%  { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}
@keyframes holoSweep {
  0%   { left: -80%; }
  100% { left: 180%; }
}
@keyframes legendAura {
  0%, 100% { opacity: .35; transform: scale(1); }
  50%       { opacity: .72; transform: scale(1.025); }
}
@keyframes twinkle {
  0%, 100% { opacity: .15; transform: scale(.7); }
  50%       { opacity: .92; transform: scale(1.2); }
}
@keyframes floatCard {
  0%, 100% { transform: translateY(0px) rotate(-.5deg); }
  50%       { transform: translateY(-10px) rotate(.5deg); }
}
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes shimBar {
  0%   { background-position: 200% center; }
  100% { background-position: -200% center; }
}
@keyframes savedPulse {
  0%   { transform: scale(1); }
  50%  { transform: scale(1.03); }
  100% { transform: scale(1); }
}

/* ── CARD DOM ── */
.card-root     { position: relative; flex-shrink: 0; }
.card-aura     { position: absolute; border-radius: 18px; animation: legendAura 3s ease-in-out infinite; }
.card-shell    { position: absolute; inset: 0; border-radius: inherit; padding: 2.5px; }
.card-face     { width: 100%; height: 100%; border-radius: inherit; position: relative; overflow: hidden; }
.card-holo     { position: absolute; inset: 0; overflow: hidden; border-radius: inherit; pointer-events: none; z-index: 20; }
.card-holo-sweep {
  position: absolute; width: 55%; height: 220%; top: -60%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.07), rgba(255,255,255,.13), rgba(255,255,255,.07), transparent);
  animation: holoSweep 5s ease-in-out infinite;
  animation-delay: 1.2s;
}
.card-particles { position: absolute; inset: 0; pointer-events: none; z-index: 15; }
.card-particle  { position: absolute; border-radius: 50%; }
.card-art-frame { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }

/* ── MOTION ── */
.card-float { animation: floatCard 7s ease-in-out infinite; }
.fade-up    { animation: fadeUp .35s ease forwards; }

/* ── STARS ── */
.stars { display: flex; gap: 3px; align-items: center; }

/* ── PRINT ── */
@media print {
  body { background: white !important; }
  #topbar, #sidebar-left, #sidebar-right, #bottom-strip, .preview-meta, .toast { display: none !important; }
  #center { padding: 0 !important; background: white !important; }
  #center .grid-bg { display: none !important; }
  .card-root { animation: none !important; }
  .card-aura, .card-holo, .card-particles { display: none !important; }
}
