/* Brush font override (fallback just in case) */ .brush-font { font-family: 'Permanent Marker', cursive !important; } /* Page Background and Layout variables matching Django */ .hero-bg { background: linear-gradient(105deg, #fff9e6 40%, #fffcf0 40.1%); } [data-bs-theme='dark'] .hero-bg { background: linear-gradient(105deg, #0f0f1a 40%, #1a1a2e 40.1%); } /* Character Card Floating Animation */ @keyframes float { 0% { transform: translateY(0px); } 50% { transform: translateY(-10px); } 100% { transform: translateY(0px); } } .animate-float { animation: float 6s ease-in-out infinite; } /* Custom cubic-bezier transition scaling for Manga cards */ .char-card-bg { transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1); transform-origin: bottom center; } .char-card-group:hover .char-card-bg { transform: scale(1.05); } .char-card-render { transform-origin: bottom center; transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1); } .char-card-group:hover .char-card-render { transform: scale(1.15); } .char-card-text { transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1); } .char-card-group:hover .char-card-text { transform: scale(1.1); } /* Hero drop shadow */ .hero-img { filter: drop-shadow(0 20px 30px rgba(0, 0, 0, 0.15)); transition: transform 0.5s ease; } .hero-img:hover { transform: rotate(3deg) scale(1.02); } /* Dynamic auras and premium components styling */ .collection-card { background: linear-gradient(to right, #ffd166, #fdb913); } /* Body fallback in case global CSS is overriden */ .bg-manga-overlay::before { content: ''; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: inherit; filter: blur(8px); z-index: -1; opacity: 0.08; pointer-events: none; } [data-bs-theme='dark'] .bg-manga-overlay::before { opacity: 0.05; } /* Rotation du héro d'accueil : fondu doux à chaque changement d'image (rejoué via le remontage key={src}). Respecte prefers-reduced-motion. */ @keyframes hero-swap { from { opacity: 0; transform: scale(0.98); } to { opacity: 1; transform: none; } } .hero-swap { animation: hero-swap 0.8s ease; } @media (prefers-reduced-motion: reduce) { .hero-swap { animation: none; } }