        body {
            font-family: 'Inter', sans-serif;
            transition: background-color 0.5s ease, color 0.5s ease;
            overscroll-behavior: none;
        }
        .section {
            min-height: 100vh;
            display: flex;
            flex-direction: column;
            justify-content: center;
            padding-top: 6rem; /* Padding to account for fixed header */
            padding-bottom: 4rem;
        }
        .section-compact {
            min-height: auto;
        }
        footer.section {
            min-height: auto;
            padding-top: 4rem;
        }
        .bg-light {
            background-color: #F3F0E9;
            color: #1a1a1a;
            background-image: radial-gradient(circle, rgba(0,0,0,0.05) 0%, rgba(0,0,0,0) 60%);
        }
        .bg-dark {
            background-color: #121212;
            color: #F3F0E9;
            position: relative;
            overflow: hidden;
        }
        
        .bg-dark::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background: 
                radial-gradient(circle at 20% 80%, rgba(120, 119, 198, 0.1) 0%, transparent 50%),
                radial-gradient(circle at 80% 20%, rgba(255, 119, 198, 0.1) 0%, transparent 50%),
                radial-gradient(circle at 40% 40%, rgba(120, 219, 255, 0.1) 0%, transparent 50%);
            animation: backgroundFloat 20s ease-in-out infinite;
            pointer-events: none;
            z-index: 0;
        }
        
        .bg-dark::after {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background-image: 
                radial-gradient(2px 2px at 20% 30%, rgba(255, 255, 255, 0.1) 0%, transparent 50%),
                radial-gradient(1px 1px at 40% 70%, rgba(255, 255, 255, 0.05) 0%, transparent 50%),
                radial-gradient(1px 1px at 90% 40%, rgba(255, 255, 255, 0.08) 0%, transparent 50%),
                radial-gradient(2px 2px at 60% 90%, rgba(255, 255, 255, 0.07) 0%, transparent 50%);
            background-size: 200px 200px, 150px 150px, 180px 180px, 220px 220px;
            animation: particleMove 30s linear infinite;
            pointer-events: none;
            z-index: 0;
        }
        
        .bg-dark > * {
            position: relative;
            z-index: 1;
        }
        
        @keyframes backgroundFloat {
            0%, 100% {
                transform: translate(0, 0) scale(1);
                opacity: 0.7;
            }
            33% {
                transform: translate(30px, -30px) scale(1.1);
                opacity: 0.5;
            }
            66% {
                transform: translate(-20px, 20px) scale(0.9);
                opacity: 0.8;
            }
        }
        
        @keyframes particleMove {
            0% {
                background-position: 0% 0%, 0% 0%, 0% 0%, 0% 0%;
            }
            100% {
                background-position: 100% 100%, -100% 100%, 100% -100%, -100% -100%;
            }
        }
        .huge-text {
            font-size: clamp(2.5rem, 12vw, 12rem);
            font-weight: 900;
            line-height: 1;
            letter-spacing: -0.05em;
        }
        
        .skills-grid {
            position: relative;
            perspective: 1000px;
        }
        #skills-grid-glow {
            position: absolute;
            top: 0;
            left: 0;
            width: 200px;
            height: 200px;
            background: radial-gradient(circle, rgba(52, 211, 153, 0.15) 0%, rgba(52, 211, 153, 0) 70%);
            border-radius: 9999px;
            pointer-events: none;
            transition: opacity 0.3s ease;
            opacity: 0;
            z-index: 0;
        }
        .skills-grid:hover #skills-grid-glow {
            opacity: 1;
        }
        .skill-card {
            background-color: rgba(255, 255, 255, 0.05);
            border: 1px solid rgba(255, 255, 255, 0.1);
            transition: transform 0.4s ease-out, box-shadow 0.3s ease, border-color 0.3s ease;
            transform-style: preserve-3d;
            z-index: 1;
            padding: 0.75rem;
            border-radius: 0.75rem;
        }
        @media (min-width: 640px) {
            .skill-card {
                padding: 1rem;
            }
        }
        @media (min-width: 1024px) {
            .skill-card {
                padding: 1.25rem;
            }
        }
        .skill-card:hover {
            box-shadow: 0 10px 30px rgba(0,0,0,0.3);
            border-color: rgba(52, 211, 153, 0.4);
            transform: translateY(-2px);
        }
        .project-card {
            background-color: rgba(255, 255, 255, 0.05);
            border: 1px solid rgba(255, 255, 255, 0.1);
            transition: transform 0.4s ease-out, box-shadow 0.3s ease;
            transform-style: preserve-3d;
        }
        @media (min-width: 640px) {
            .project-card:hover {
                transform: translateY(-5px);
                box-shadow: 0 15px 40px rgba(0,0,0,0.3);
            }
        }
        .project-card:hover {
            box-shadow: 0 10px 30px rgba(0,0,0,0.3);
        }
        .project-card img {
            transition: transform 0.4s ease-out;
        }
        .github-activity {
            background-color: rgba(255, 255, 255, 0.05);
            padding: 1rem;
            border-radius: 0.5rem;
        }
        .timeline-item {
            position: relative;
        }
        .timeline-item::before {
            content: '';
            position: absolute;
            left: -2rem;
            top: 0.5rem;
            width: 12px;
            height: 12px;
            border-radius: 50%;
            background-color: #4CAF50;
            border: 2px solid #121212;
            z-index: 1;
        }
        .timeline-item::after {
            content: '';
            position: absolute;
            left: calc(-2rem + 5px); /* Center of the dot */
            top: 0.5rem;
            width: 2px;
            background-color: #333;
            height: 100%;
        }
        .space-y-16 > .grid:not(:last-child) .timeline-item::after {
            height: calc(100% + 4rem); /* 4rem is space-y-16 */
        }
        .grid:last-child .timeline-item::after {
            display: none;
        }

        .key-achievement-item {
            position: relative;
            padding-left: 20px;
        }
        .key-achievement-item::before {
            content: '';
            position: absolute;
            left: 0;
            top: 10px;
            width: 6px;
            height: 6px;
            border-radius: 50%;
            background-color: #4CAF50;
        }
        
        /* Hero parallax spacer — 100vh on mobile (no parallax), 200vh on md+ (enables parallax) */
        .hero-parallax-spacer {
            height: 100vh;
        }
        @media (min-width: 768px) {
            .hero-parallax-spacer {
                height: 200vh;
            }
        }

        /* Custom Cursor */
        #cursor {
            position: fixed;
            width: 32px;
            height: 32px;
            border: 1px solid #333;
            border-radius: 50%;
            left: 0;
            top: 0;
            pointer-events: none;
            transform: translate(-50%, -50%);
            transition: width 0.3s ease, height 0.3s ease, background-color 0.3s ease, border-color 0.5s ease;
            z-index: 9999;
        }
        /* Hide custom cursor on touch devices */
        @media (hover: none) and (pointer: coarse) {
            #cursor { display: none; }
        }
        #cursor.grow {
            width: 64px;
            height: 64px;
            background-color: rgba(200, 200, 200, 0.2);
        }
        .dark #cursor {
            border-color: #eee;
        }
        .dark #cursor.grow {
            background-color: rgba(255, 255, 255, 0.1);
        }

        /* Overlay Menu */
        #overlay-menu {
            position: fixed;
            top: 0;
            right: 0;
            bottom: 0;
            width: 100%;
            max-width: 480px;
            background-color: #1a1a1a;
            color: #F3F0E9;
            z-index: 100;
            transform: translateX(100%);
            transition: transform 0.5s cubic-bezier(0.7, 0, 0.3, 1);
            display: flex;
            flex-direction: column;
            justify-content: space-between;
            padding: 2rem;
            overflow: hidden;
        }
        #overlay-menu.open {
            transform: translateX(0);
        }

        /* Reveal animation */
        .reveal {
            opacity: 0;
            transform: translateY(30px);
            transition: opacity 0.8s cubic-bezier(0.6, 0.2, 0.4, 1), transform 0.8s cubic-bezier(0.6, 0.2, 0.4, 1);
        }

        .reveal.visible {
            opacity: 1;
            transform: translateY(0);
        }
        
        #menu-btn {
            transition: all 0.3s ease-in-out;
        }
        #menu-btn.ball-style {
            background-color: rgba(255, 255, 255, 0.08);
            border: 1px solid rgba(255, 255, 255, 0.1);
            border-radius: 9999px;
            width: 40px;
            height: 40px;
        }
        #menu-btn.ball-style:hover {
            transform: scale(1.1);
            background-color: rgba(255, 255, 255, 0.15);
            box-shadow: 0 0 10px rgba(255, 255, 255, 0.1);
        }

        /* Preloader Styles */
        #preloader {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-color: #121212;
            z-index: 10000;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            color: #F3F0E9;
            transition: opacity 1s cubic-bezier(0.7, 0, 0.3, 1);
            opacity: 1;
        }
        .preloader-text-container {
            position: relative;
            font-size: clamp(1.5rem, 5vw, 3rem);
            font-weight: 600;
            letter-spacing: 0.05em;
            text-align: center;
        }
        .preloader-text {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            width: 100%;
        }
        .glitch-layer {
            opacity: 0;
            animation: glitch 2.5s steps(1, end) infinite;
        }
        .glitch-layer:nth-child(1) { color: #00ffff; animation-duration: 2s; }
        .glitch-layer:nth-child(2) { color: #ff00ff; animation-duration: 1.5s; }
        .glitch-layer:nth-child(3) { color: #ffff00; animation-duration: 2.2s; }
        
        .final-text {
            opacity: 0;
            transition: opacity 0.5s ease;
        }

        @keyframes glitch {
            0% {
                transform: translate(-50%, -50%) translate(0, 0);
                clip-path: inset(50% 0 30% 0);
                opacity: 0.8;
            }
            10% {
                transform: translate(-50%, -50%) translate(-5px, 5px);
                clip-path: inset(20% 0 65% 0);
            }
            20% {
                transform: translate(-50%, -50%) translate(5px, -5px);
                clip-path: inset(70% 0 10% 0);
            }
            30%, 100% {
                transform: translate(-50%, -50%) translate(0, 0);
                clip-path: none;
                opacity: 0;
            }
        }


        .preloader-bottom-bar {
            position: absolute;
            bottom: 2rem;
            left: 2rem;
            right: 2rem;
            display: flex;
            justify-content: space-between;
            font-size: 0.8rem;
            color: #a0a0a0;
        }
        .loading-bar {
            width: 100px;
            height: 2px;
            background-color: #444;
            overflow: hidden;
        }
        .loading-bar-inner {
            width: 0;
            height: 100%;
            background-color: #F3F0E9;
            animation: fill-bar 2.5s ease-out forwards;
        }
        @keyframes fill-bar {
            from { width: 0; }
            to { width: 100%; }
        }
        .preloader-transition-shape {
            position: absolute;
            bottom: 0;
            left: 0;
            width: 100%;
            height: 0;
            background-color: #F3F0E9;
            border-radius: 50% 50% 0 0 / 100% 100% 0 0;
            transform: scaleX(1.5);
            transition: height 1s cubic-bezier(0.7, 0, 0.3, 1);
        }
        
        .rotating-star:hover {
            animation: spin 2s linear infinite;
        }
        @keyframes spin {
            from { transform: rotate(0deg); }
            to { transform: rotate(360deg); }
        }

        .blinking-cursor {
            font-weight: 300;
            animation: blink 1s step-end infinite;
        }
        @keyframes blink {
            from, to { color: transparent; }
            50% { color: #3b82f6; }
        }
        .dark .blinking-cursor {
            animation: blink-dark 1s step-end infinite;
        }
        @keyframes blink-dark {
            from, to { color: transparent; }
            50% { color: #F3F0E9; }
        }

        .marquee {
            overflow: hidden;
            white-space: nowrap;
            width: 100%;
        }
        .marquee-content {
            display: inline-block;
            animation: marquee 30s linear infinite;
        }
        @keyframes marquee {
            0% { transform: translateX(0); }
            100% { transform: translateX(-50%); }
        }
        
        /* Navigation contrast fix */
        .text-gray-900 #main-nav a {
            color: #111827 !important;
        }
        .text-white #main-nav a {
            color: #ffffff !important;
        }
        #main-nav a {
            transition: color 0.3s ease;
        }
        #main-nav a:hover {
            opacity: 0.7;
        }
