body {
    font-family: 'Poppins', sans-serif;
    background: #FFF0F5;
}

.playfair {
    font-family: 'Playfair Display', serif;
}

.pacifico {
    font-family: 'Pacifico', cursive;
}

.hero-pattern {
    background-image: 
        radial-gradient(circle at 20px 20px, rgba(255, 105, 180, 0.05) 2px, transparent 0),
        radial-gradient(circle at 60px 60px, rgba(255, 105, 180, 0.05) 2px, transparent 0);
    background-size: 80px 80px;
}

.wavy-divider {
    position: relative;
    width: 100%;
    overflow: hidden;
    line-height: 0;
}

.wavy-divider svg {
    position: relative;
    display: block;
    width: calc(100% + 1.3px);
    height: 60px;
}

@keyframes float {
    0%, 100% { transform: translateY(0px); }
    50% { transform: translateY(-20px); }
}

@keyframes sparkle {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.5; transform: scale(1.2); }
}

.float-animation {
    animation: float 3s ease-in-out infinite;
}

.sparkle-animation {
    animation: sparkle 2s ease-in-out infinite;
}

.card-hover {
    transition: all 0.3s ease;
}

.card-hover:hover {
    transform: translateY(-10px);
    box-shadow: 0 20px 40px rgba(255, 105, 180, 0.3);
}

.mobile-menu {
    transform: translateX(100%);
    transition: transform 0.3s ease;
}

.mobile-menu.active {
    transform: translateX(0);
}

@media (min-width: 768px) {
    .masonry-grid {
        column-count: 3;
        column-gap: 1.5rem;
    }
    
    .masonry-item {
        break-inside: avoid;
        margin-bottom: 1.5rem;
    }
}

.timeline-line {
    position: absolute;
    left: 30px;
    top: 0;
    bottom: 0;
    width: 2px;
    background: linear-gradient(to bottom, #FF69B4, #FFB6C1);
}

.gradient-text {
    background: linear-gradient(135deg, #FF69B4 0%, #FFD700 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.hello-kitty-watermark {
    opacity: 0.1;
    width: 100px;
    height: 100px;
}
