/* ========================================
   EFFECTS — Reveal, Magnetic
======================================== */
        /* ========================================
           SCROLL REVEAL
        ======================================== */
        .reveal {
            opacity: 1; transform: none;
            transition: opacity 0.7s cubic-bezier(0.16,1,0.3,1),
                        transform 0.7s cubic-bezier(0.16,1,0.3,1);
        }
        [data-motion="on"] .reveal:not(.visible) { opacity: 0; transform: translateY(26px); }
        .reveal.visible { opacity: 1; transform: translateY(0); }
        .reveal-d1 { transition-delay: 0.1s; }
        .reveal-d2 { transition-delay: 0.2s; }
        .reveal-d3 { transition-delay: 0.3s; }
        .reveal-d4 { transition-delay: 0.4s; }
        .reveal-d5 { transition-delay: 0.5s; }
        .reveal-d6 { transition-delay: 0.6s; }
        .reveal-d7 { transition-delay: 0.7s; }
        .reveal-d8 { transition-delay: 0.8s; }
        .reveal-d9 { transition-delay: 0.9s; }

        /* ========================================
           MAGNETIC
        ======================================== */
        .magnetic { transition: transform 0.2s ease, translate 0.2s ease; }

        /* Local light follows the pointer; the content stays on a stable plane. */
        .home-page .project-card {
            --light-x: 50%; --light-y: 25%;
            --tilt-x: 0deg; --tilt-y: 0deg;
            transform: perspective(1100px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y));
            transition: transform 0.45s cubic-bezier(0.16,1,0.3,1);
        }
        .home-page .project-card::before {
            background: radial-gradient(360px circle at var(--light-x) var(--light-y), #baffdf, rgba(var(--accent-rgb), 0.4) 32%, transparent 72%);
            animation: none;
            pointer-events: none;
        }
        .home-page .project-card::after {
            content: ''; position: absolute; inset: 0; z-index: 1;
            background: radial-gradient(440px circle at var(--light-x) var(--light-y), rgba(var(--accent-rgb), 0.1), transparent 70%);
            opacity: 0; transition: opacity 0.3s ease;
            pointer-events: none;
        }
        .home-page .project-card:is(:hover, :focus-visible)::after,
        .home-page .project-card:focus-visible::before { opacity: 1; }
        .home-page .project-card:hover .project-card-bg { transform: scale(1.025); }
        .home-page .project-card:focus-visible .project-arrow { background: var(--accent); color: var(--bg); }
        .home-page .blog-item:focus-visible .blog-item-title { color: var(--accent); }
        .home-page .blog-item::before {
            background: linear-gradient(90deg, rgba(var(--accent-rgb), 0.065), transparent 80%);
        }
        .home-page .blog-item:focus-visible::before { opacity: 1; }
        .home-page .cursor, .home-page .cursor-dot { top: 0; left: 0; opacity: 0; }
        .home-page { cursor: auto; }
        .home-page :is(input, textarea, [contenteditable="true"]) { cursor: text; }
        .home-page.custom-cursor-active,
        .home-page.custom-cursor-active :is(a, button, [data-hover], [role="button"]) { cursor: none; }
        .home-page.custom-cursor-active :is(.cursor, .cursor-dot) { opacity: 1; }
        .home-page :focus-visible { outline: 2px solid var(--accent); outline-offset: 5px; }
        .home-page nav:focus-within { transform: none; }
        .home-page :is(section[id], .section-divider) { scroll-margin-top: 85px; }
        .home-page section.motion-outside *, .home-page section.motion-outside *::before,
        .home-page section.motion-outside *::after,
        .page-hidden .home-page *, .page-hidden .home-page *::before,
        .page-hidden .home-page *::after { animation-play-state: paused !important; }

        [data-motion="off"] { scroll-behavior: auto; }
        [data-motion="off"] .home-page *,
        [data-motion="off"] .home-page *::before,
        [data-motion="off"] .home-page *::after {
            animation-duration: 0.01ms !important;
            animation-delay: 0s !important;
            animation-iteration-count: 1 !important;
            transition-duration: 0s !important;
            transition-delay: 0s !important;
        }
        [data-motion="off"] .home-page .reveal { opacity: 1; transform: none; }
        [data-motion="off"] .home-page .marquee-track { animation: none !important; }
        [data-motion="off"] .home-page .typing-cursor { display: none; }

        @media (prefers-reduced-motion: reduce) {
            html { scroll-behavior: auto; }
            .home-page *, .home-page *::before, .home-page *::after {
                animation-duration: 0.01ms !important;
                animation-delay: 0s !important;
                animation-iteration-count: 1 !important;
                transition-duration: 0s !important;
                transition-delay: 0s !important;
            }
            .home-page .reveal { opacity: 1 !important; transform: none !important; }
        }
