.reveal { opacity: 0; transform: translateY(40px); transition: all 0.8s ease-out; }
.reveal.active { opacity: 1; transform: translateY(0); }

.drop-cap::first-letter { float: left; font-size: 3.5rem; line-height: 1; font-weight: bold; color: #b30000; margin-right: 0.5rem; margin-top: 0.2rem; font-family: 'Merriweather', serif; }
@media (min-width: 768px) { .drop-cap::first-letter { font-size: 4rem; margin-right: 0.6rem; } }

.bg-parallax { background-attachment: scroll; background-position: center; background-repeat: no-repeat; background-size: cover; }
@media (min-width: 768px) { .bg-parallax { background-attachment: fixed; } }

.modal-backdrop { backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }

@media (hover: hover) and (pointer: fine) {
    .click-card { transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); }
    .click-card:hover { transform: translateY(-8px); box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.5), 0 10px 10px -5px rgba(0, 0, 0, 0.3); border-color: #b30000; }
}

.tooltip-content ul { margin-top: 0.5rem; }
.tooltip-content li { margin-bottom: 0.5rem; display: flex; align-items: flex-start; }
.tooltip-content li i { margin-top: 0.25rem; margin-right: 0.5rem; }

@keyframes fade-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
.animate-fade-in { animation: fade-in 0.5s ease-out forwards; }

@keyframes fadeInMap { from { opacity: 0; transform: translate(-50%, -50%) scale(0.5); } to { opacity: 1; transform: translate(-50%, -50%) scale(1); } }

@media (max-width: 767px) {
    #hover-tooltip {
        position: fixed !important; bottom: 0 !important; top: auto !important; left: 0 !important; width: 100% !important;
        max-height: 85vh; padding-bottom: max(1.5rem, env(safe-area-inset-bottom));
        overflow-y: auto; z-index: 1000; border-bottom-left-radius: 0; border-bottom-right-radius: 0; border-bottom: none;
        box-shadow: 0 -15px 40px rgba(0,0,0,0.9); transform: translateY(100%); transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.2s;
    }
    #hover-tooltip.mobile-open { transform: translateY(0); opacity: 1 !important; }
}