        :root {
            --ease-out-expo: cubic-bezier(0.19, 1, 0.22, 1);
        }

        body {
            font-family: "Judson", serif;
            background-color: #ff5555;
            color: #1a1a1a;
            overflow-x: hidden;
        }

        /* --- ANIMATIONS --- */
        .reveal { opacity: 0; transform: translateY(30px); transition: all 1s var(--ease-out-expo); }
        .reveal.active { opacity: 1; transform: translateY(0); }

        .line-draw { width: 0; height: 2px; background: #FFFD8F; transition: width 1.5s var(--ease-out-expo); }
        .active .line-draw { width: 100%; }

        .image-zoom { overflow: hidden; }
        .image-zoom img { transition: transform 2s var(--ease-out-expo); transform: scale(1.1); }
        .active.image-zoom img { transform: scale(1); }

        /* Grain Overlay Effect */
        .grain-overlay {
            position: relative;
        }
        .grain-overlay::after {
            content: "";
            position: absolute;
            inset: 0;
            background-image: url('https://www.transparenttextures.com/patterns/wood-pattern.png');
            opacity: 0.05;
            pointer-events: none;
        }

        /* Timeline Blueprint */
        .timeline-step::before {
            content: '';
            position: absolute;
            left: -20px;
            top: 10px;
            width: 10px;
            height: 10px;
            border: 1px solid #FFFD8F;
            border-radius: 50%;
        }

        /* Nav Hover */
        .nav-item { position: relative; }
        .nav-item::after {
            content: '';
            position: absolute;
            bottom: -4px;
            left: 0;
            width: 0;
            height: 1px;
            background: currentColor;
            transition: width 0.3s ease;
        }
        .nav-item:hover::after { width: 100%; }

        /* Custom Scroll */
        ::-webkit-scrollbar { width: 6px; }
        ::-webkit-scrollbar-track { background: #f1f1f1; }
        ::-webkit-scrollbar-thumb { background: #05339C; }

        /* Mobile Menu */
        #mobile-nav {
            clip-path: polygon(0 0, 100% 0, 100% 0, 0 0);
            transition: clip-path 0.6s var(--ease-out-expo);
        }
        #mobile-nav.open { clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); }

        .category-card:hover .overlay-grain { opacity: 0.15; }
