* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body { background: #0e1530; font-family: 'Manrope', system-ui, -apple-system, sans-serif; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; color: #fff; }
*::-webkit-scrollbar { height: 7px; width: 7px; }
*::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.2); border-radius: 99px; }
*::-webkit-scrollbar-track { background: transparent; }
input::placeholder { color: rgba(255,255,255,0.6); }
input { caret-color: #fff; }
[data-hover]:hover { filter: brightness(1.12); }

@keyframes scfall { from { transform: translateY(0); } to { transform: translateY(118vh); } }
@keyframes scsnow { from { transform: translateY(0) translateX(0); } to { transform: translateY(112vh) translateX(26px); } }
@keyframes sctwinkle { 0%,100% { opacity: 0.15; } 50% { opacity: 1; } }
@keyframes scflash { 0%,89% { opacity: 0; } 91% { opacity: 0.65; } 93% { opacity: 0; } 95% { opacity: 0.4; } 97%,100% { opacity: 0; } }
@keyframes scspin { to { transform: rotate(360deg); } }
@keyframes scdrift { from { transform: translateX(-36vw); } to { transform: translateX(136vw); } }
@keyframes scglow { 0%,100% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } }
@keyframes scpulse { 0%,100% { transform: scale(1); opacity: 0.92; } 50% { transform: scale(1.015); opacity: 1; } }
@keyframes scup { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: none; } }
@keyframes scfade { from { opacity: 0; } to { opacity: 1; } }
@keyframes scsheet { from { opacity: 0; transform: translateY(46px) scale(0.985); } to { opacity: 1; transform: none; } }
@keyframes scfloat { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }
@keyframes scpop { from { opacity: 0; transform: scale(0.55) translateY(6px); } to { opacity: 1; transform: scale(1) translateY(0); } }

.no-anim, .no-anim * { animation: none !important; }
#modalMount.anim .dc-overlay { animation: scfade .28s ease both; }
#modalMount.anim .dc-card { animation: scsheet .42s cubic-bezier(.2,.8,.25,1) both; }

/* ---------- Responsive / mobile ---------- */
/* Sur téléphone : une seule colonne pleine largeur (cartes riches = pas de tassement) */
@media (max-width: 600px) {
  .cards { grid-template-columns: 1fr !important; gap: 12px !important; }
  .wrap { padding-left: 14px !important; padding-right: 14px !important; padding-top: 16px !important; }
  .drow { grid-template-columns: minmax(70px, 1fr) 24px 32px 1.6fr 32px 14px !important; gap: 9px !important; padding: 11px 4px !important; }
}

@media (prefers-reduced-motion: reduce) {
  * { animation-duration: 0.001s !important; animation-iteration-count: 1 !important; }
}
