/* Apple-like system font stack */
body {
    font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Display', 'SF Pro Text', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* Smooth transitions for weather state changes */
.weather-card {
    transition: all 0.6s cubic-bezier(0.4, 0, 0.2, 1);
    backdrop-filter: blur(20px);
}

/* Loading animation */
.loading-spinner {
    animation: spin 1s linear infinite;
}

@keyframes spin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

/* Fade in animation */
.fade-in {
    animation: fadeIn 0.8s ease-out;
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Icon pulse for rain */
.icon-pulse {
    animation: pulse 2s ease-in-out infinite;
}

@keyframes pulse {
    0%, 100% {
        transform: scale(1);
        opacity: 0.9;
    }
    50% {
        transform: scale(1.05);
        opacity: 1;
    }
}

/* Hover effect for button */
.btn-apple {
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.btn-apple:hover {
    transform: translateY(-1px);
    box-shadow: 0 10px 25px rgba(0, 122, 255, 0.3);
}

.btn-apple:active {
    transform: translateY(0);
    box-shadow: 0 5px 15px rgba(0, 122, 255, 0.2);
}

/* Subtle glow for rainy state */
.rainy-glow {
    box-shadow: 0 0 40px rgba(59, 130, 246, 0.2);
}

.sunny-glow {
    box-shadow: 0 0 40px rgba(245, 158, 11, 0.2);
}

/* Responsive adjustments */
@media (max-width: 640px) {
    .weather-card {
        padding: 2rem 1.5rem;
    }
}