/* Custom styles for editorial look */
html {
    scroll-behavior: smooth;
}

body {
    /* Prevent horizontal scroll from negative margins if any */
    overflow-x: hidden;
}

/* Custom selection color */
::selection {
    background: #800020;
    color: #fff;
}

/* Subtle grain texture overlay for editorial feel */
body::before {
    content: "";
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 9999;
    opacity: 0.03;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");
}

/* Hero text animation on load */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

header h1, header p, header a {
    animation: fadeInUp 0.8s ease-out forwards;
}

header p { animation-delay: 0.2s; opacity: 0; }
header a { animation-delay: 0.4s; opacity: 0; }

/* Smooth image loading */
img {
    transition: opacity 0.3s ease-in-out;
}

img[loading="lazy"] {
    opacity: 0;
}

img.loaded {
    opacity: 1;
}
