/* 1. DESIGN TOKENS & GLOBAL STYLES */
        :root {
            --gradient-start: #1c92d2;
            --gradient-mid: #f2fcfe;
            --gradient-end: #c9e8f5;
            --primary-accent: #0077B6;
            --primary-accent-light: #48b5e2;
            --text-dark: #2D3748;
            --text-light: #4A5568;
            --card-background: rgba(255, 255, 255, 0.4);
            --card-border: rgba(255, 255, 255, 0.6);
            --font-primary: 'Poppins', sans-serif;
            --border-radius-md: 16px;
            --shadow-light: 0 8px 32px 0 rgba(31, 38, 135, 0.1);
            --shadow-strong: 0 12px 40px 0 rgba(31, 38, 135, 0.15);
        }

        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        html {
            scroll-behavior: smooth;
        }

        body {
            font-family: var(--font-primary);
            color: var(--text-light);
            line-height: 1.6;
            background: linear-gradient(135deg, var(--gradient-start), var(--gradient-mid), var(--gradient-end));
            background-size: 400% 400%;
            animation: gradientAnimation 15s ease infinite;
            overflow-x: hidden;
            
        }

        #bg-canvas {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100vh;
            z-index: -1;
        }
        
        /* NEW: Scroll Progress Bar */
        .scroll-progress-bar {
            position: fixed;
            top: 0;
            left: 0;
            height: 4px;
            background: var(--primary-accent);
            width: 0%;
            z-index: 9999;
            transition: width 0.1s ease-out;
        }

        @keyframes gradientAnimation {
            0% { background-position: 0% 50%; }
            50% { background-position: 100% 50%; }
            100% { background-position: 0% 50%; }
        }

        .section {
            padding: 5rem 2rem;
            max-width: 1200px;
            margin: 0 auto;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            position: relative;
            z-index: 1;
        }

        .section-title {
            font-size: 2.5rem;
            font-weight: 600;
            color: var(--text-dark);
            margin-bottom: 1rem;
            text-align: center;
        }

        .section-title::after {
            content: '';
            display: block;
            width: 60px;
            height: 4px;
            background: var(--primary-accent);
            margin: 0.5rem auto 0;
            border-radius: 2px;
        }

        /* 2. HEADER & NAVIGATION */
        /* FIXED typo: removed 'st' after .header */
        .header {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            padding: 1.5rem 5%;
            display: flex;
            justify-content: space-between;
            align-items: center;
            z-index: 1000;
            background: rgba(255, 255, 255, 0.1);
            backdrop-filter: blur(10px);
            border-bottom: 1px solid rgba(255, 255, 255, 0.2);
            transition: background 0.3s ease;
        }

        .logo {
            font-size: 1.5rem;
            font-weight: 700;
            color: var(--primary-accent);
            text-decoration: none;
            transition: opacity 0.4s ease;
            cursor: pointer; /* ADDED */
        }

        .logo.hidden {
            opacity: 0;
            pointer-events: none;
        }

        .navbar ul {
            list-style: none;
            display: flex;
            gap: 2rem;
        }

        .nav-link {
            text-decoration: none;
            color: var(--text-dark);
            font-weight: 500;
            position: relative;
            padding-bottom: 0.5rem;
            transition: color 0.3s ease;
            cursor: pointer; /* ADDED */
        }

        .nav-link::after {
            content: '';
            position: absolute;
            bottom: 0;
            left: 0;
            width: 100%;
            height: 2px;
            background: var(--primary-accent);
            transform: scaleX(0);
            transform-origin: bottom right;
            transition: transform 0.25s ease-out;
        }

        .nav-link:hover,
        .nav-link:hover::after,
        .nav-link.active::after {
            transform: scaleX(1);
            transform-origin: bottom left;
        }

        .nav-link.active {
            color: var(--primary-accent);
        }

        /* 3. CORE COMPONENTS (CARDS, BUTTONS) */
        .card {
            background: var(--card-background);
            border-radius: var(--border-radius-md);
            border: 1px solid var(--card-border);
            box-shadow: var(--shadow-light);
            padding: 2rem;
            width: 100%;
            backdrop-filter: blur(10px);
            transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275), box-shadow 0.4s ease;
            position: relative;
            overflow: hidden;
        }
        
        /* ENHANCED: Card Hover Glow Effect */
        .card::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: radial-gradient(
                circle 600px at var(--mouse-x) var(--mouse-y),
                hsla(197, 98%, 45%, 0.3),  /* Bright Blue */
                transparent 40%
            );
            opacity: 0;
            transition: opacity 0.5s;
            mix-blend-mode: overlay; /* Blends colors nicely */
        }

        .card:hover::before {
            opacity: 1;
        }
        
        .card:hover {
            box-shadow: var(--shadow-strong);
            transform: translateY(-5px) scale(1.02);
        }

        @supports not (backdrop-filter: blur(10px)) {
        .card, .header {
                background: rgba(255, 255, 255, 0.9);
            }
        }

        .btn {
            display: inline-block;
            padding: 0.75rem 1.5rem;
            background: var(--primary-accent);
            color: #fff;
            border: none;
            border-radius: 50px;
            text-decoration: none;
            font-weight: 600;
            cursor: pointer;
            transition: transform 0.2s ease, box-shadow 0.2s ease;
        }

        .btn:hover {
            transform: translateY(-3px);
            box-shadow: 0 4px 15px rgba(0, 119, 182, 0.4);
        }

        /* RE-ADDED for custom cursor */
        a, button {
            
        }

        .btn-primary {
            padding: 1rem 2.5rem;
            font-size: 1.1rem;
            background-image: linear-gradient(45deg, var(--primary-accent) 0%, var(--primary-accent-light) 100%);
            border: none;
            box-shadow: 0 4px 20px rgba(0, 149, 199, 0.4);
            transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
        }

        .btn-primary:hover {
            transform: translateY(-5px) scale(1.05);
            box-shadow: 0 8px 25px rgba(0, 149, 199, 0.5);
        }

        .btn-primary i {
            margin-left: 0.5rem;
            transition: transform 0.3s ease;
        }

        .btn-primary:hover i {
            transform: translateX(5px);
        }
        
        .btn-secondary {
            padding: 0.75rem 1.5rem;
            font-size: 1rem;
            background: transparent;
            color: var(--primary-accent);
            border: 2px solid var(--primary-accent);
            box-shadow: none;
            transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
        }

        .btn-secondary:hover {
            background: var(--primary-accent);
            color: #fff;
            transform: translateY(-3px) scale(1.05);
            box-shadow: 0 6px 20px rgba(0, 149, 199, 0.4);
        }

        .btn-secondary i {
            margin-left: 0.5rem;
        }

        /* NEW STYLE FOR FAKE PROJECT BUTTON */
        .project-fake-btn {
            display: inline-block;
            padding: 0.75rem 1.5rem;
            font-size: 1rem;
            font-weight: 600;
            background: rgba(201, 232, 245, 0.7); /* Light grey/blue from skill tags */
            color: var(--text-dark);
            border: none; /* No outline */
            border-radius: 50px; /* From .btn */
            box-shadow: none;
            transition: background-color 0.3s ease;
        }

        .project-fake-btn i { /* Style the icon inside */
             margin-left: 0.5rem;
        }

        /* 4. SECTION-SPECIFIC STYLES */
        #home { 
            min-height: 100vh;
            text-align: center; 
        }
        
        .hero-avatar {
            width: 190px;
            height: 190px;
            border-radius: 50%;
            margin: 0 auto 1.5rem;
            position: relative;
            z-index: 1;
            box-shadow: 0 0 20px rgba(0, 119, 182, 0.3);
        }
        
        .hero-avatar::before,
        .hero-avatar::after {
            content: '';
            position: absolute;
            border-radius: 50%;
        }
        
        .hero-avatar::before {
            top: -6px; left: -6px; right: -6px; bottom: -6px;
            background: conic-gradient(from 0deg, var(--primary-accent), var(--gradient-end), var(--primary-accent));
            z-index: 1;
            animation: spin 3s linear infinite;
        }
        
        .hero-avatar::after {
            top: 0; left: 0; right: 0; bottom: 0;
            background-image: url('avatar_photo.jpg');
            background-size: cover;
            background-position: center;
            z-index: 2;
        }
        
        @keyframes spin {
            100% { transform: rotate(360deg); }
        }

        @keyframes pulse {
            0% { box-shadow: 0 0 20px rgba(0, 119, 182, 0.3); }
            50% { box-shadow: 0 0 30px rgba(0, 119, 182, 0.6); }
            100% { box-shadow: 0 0 20px rgba(0, 119, 182, 0.3); }
        }

        .hero-title { 
            font-size: 3.5rem; 
            color: var(--text-dark); 
        }

        .hero-subtitle { 
            font-size: 1.5rem; 
            margin-bottom: 2rem; 
            font-weight: 400;
            /* ADDED: Set height to prevent layout jump */
            height: 2.4rem; /* 1.5rem * 1.6 line-height (approx) */
        }
        
        .hero-buttons {
            display: flex;
            justify-content: center;
            gap: 1.5rem;
            margin-top: 2rem;
            flex-wrap: wrap;
        }

        /* ADDED: Styles for the typing effect cursor */
        #typing-effect {
            border-right: 2px solid var(--text-light);
            animation: blinkCursor 0.7s infinite;
            display: inline;
        }

        @keyframes blinkCursor {
            from, to { border-color: transparent; }
            50% { border-color: var(--text-light); }
        }
        
        .about-container { max-width: 900px; }
        .about-header { display: flex; align-items: center; margin-bottom: 2rem; }
        .about-intro h3 { font-size: 1.5rem; color: var(--text-dark); }
        .about-details { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
        .about-card { background: rgba(255, 255, 255, 0.3); padding: 1.5rem; border-radius: 12px; }
        .about-card h4 { color: var(--text-dark); margin-bottom: 0.5rem; }

        .skills-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 2rem; width: 100%; }
        .skills-card h4 { color: var(--text-dark); margin-bottom: 1rem; }
        .skills-tags { display: flex; flex-wrap: wrap; gap: 0.75rem; }
        .skill-tag { background: rgba(201, 232, 245, 0.7); padding: 0.5rem 1rem; border-radius: 50px; font-size: 0.9rem; transition: transform 0.2s ease, background-color 0.2s ease; cursor: pointer; /* ADDED */ }
        .skill-tag:hover { transform: scale(1.1); background-color: var(--primary-accent-light); color: white; }

        .expertise-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 2rem; width: 100%; max-width: 1100px; }
        .expertise-card { text-align: center; padding: 2.5rem 1.5rem; }
        .expertise-icon { font-size: 3rem; color: var(--primary-accent); margin-bottom: 1rem; transition: transform 0.3s ease; }
        .expertise-card:hover .expertise-icon { transform: scale(1.2) rotate(15deg); }
        .expertise-card h4 { color: var(--text-dark); margin-bottom: 0.75rem; font-size: 1.25rem; }

        .projects-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(350px, 1fr)); gap: 2rem; width: 100%; }
        
        /* UPDATED: project-card is now a link, so we remove default link styles */
        .project-card, .project-card:hover, .project-card:visited, .project-card:active {
            text-decoration: none;
            color: inherit;
            display: flex; /* Kept display flex from original .project-card */
            flex-direction: column; /* Kept flex-direction from original .project-card */
        }
        
        .project-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1rem; }
        .project-header h3 { color: var(--text-dark); }
        .featured-badge { color: var(--primary-accent); font-size: 0.9rem; font-weight: 500; }
        .project-card p { flex-grow: 1; margin-bottom: 1rem; }
        .project-tags { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 1rem; }
        .project-tag { background: rgba(0, 119, 182, 0.1); color: var(--primary-accent); padding: 0.25rem 0.75rem; border-radius: 4px; font-size: 0.8rem; }
        
        /* RE-ADDED project-footer */
        .project-footer { 
            display: flex; 
            gap: 1rem; 
            margin-top: auto; 
        }

        /* NEW: Certifications Section */
        .certifications-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
            gap: 2rem;
            width: 100%;
        }
        .certification-card {
            display: flex;
            flex-direction: column;
            text-align: center;
        }
        .certification-header {
            margin-bottom: 1rem;
        }
        .certification-icon {
            font-size: 3rem;
            color: var(--primary-accent);
            margin-bottom: 1rem;
        }
        .certification-card h4 {
            color: var(--text-dark);
            font-size: 1.25rem;
        }
        .certification-card p {
            flex-grow: 1;
            margin-bottom: 1.5rem;
        }
        .certification-footer {
            margin-top: auto;
        }
        
        .contact-subtitle { text-align: center; max-width: 600px; margin-bottom: 2rem; }
        .contact-links { display: flex; justify-content: center; flex-wrap: wrap; gap: 1rem; width: 100%; max-width: 900px; }
        .contact-link-item { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.75rem; text-decoration: none; color: var(--text-light); width: 160px; height: 140px; cursor: pointer; /* ADDED */ }
        .contact-link-item i { font-size: 2.5rem; color: var(--primary-accent); transition: color 0.3s ease, transform 0.3s ease; }
        .contact-link-item:hover { color: var(--primary-accent); }
        .contact-link-item:hover i { color: inherit; transform: translateY(-5px); }

        .why-choose-me-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 2rem; width: 100%; max-width: 1200px; margin-top: 2rem; }
        .why-choose-me-card { text-align: center; padding: 2.5rem 1.5rem; }
        .why-choose-me-icon { display: inline-flex; align-items: center; justify-content: center; width: 70px; height: 70px; border-radius: 50%; background-image: linear-gradient(45deg, var(--primary-accent) 0%, #0096C7 100%); color: #fff; font-size: 2.5rem; margin-bottom: 1.5rem; box-shadow: 0 4px 15px rgba(0, 119, 182, 0.4); transition: transform 0.3s ease-in-out; }
        .why-choose-me-card:hover .why-choose-me-icon { transform: rotateY(180deg); }
        .why-choose-me-card h4 { color: var(--text-dark); margin-bottom: 1rem; font-size: 1.25rem; }

        /* 5. ENTRANCE ANIMATIONS */
        .animated-element {
            opacity: 0;
            transform: translateY(40px);
            transition: opacity 0.8s cubic-bezier(0.165, 0.84, 0.44, 1), transform 0.8s cubic-bezier(0.165, 0.84, 0.44, 1);
        }
        
        .is-visible {
            opacity: 1;
            transform: translateY(0);
        }

        /* 6. CURSOR */
        body {
            cursor: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20"><circle cx="10" cy="10" r="5" fill="%230077B6" /></svg>') 10 10, auto;
        }
        a, button, .skill-tag, .contact-link-item, .logo {
            cursor: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10" fill="none" stroke="%230077B6" stroke-width="2" /></svg>') 12 12, pointer !important;
        }
        
        /* 7. FOOTER */
        .footer { padding: 3rem 2rem; text-align: center; position: relative; z-index: 1; }
        .footer-email-link { display: inline-block; background: none; border: 1px solid var(--text-light); color: var(--text-light); padding: 0.75rem 2rem; border-radius: 50px; text-decoration: none; margin-bottom: 3.5rem; transition: background-color 0.3s ease, color 0.3s ease, transform 0.3s ease; cursor: pointer; /* ADDED */ }
        .footer-email-link:hover { background-color: var(--primary-accent); border-color: var(--primary-accent); color: #fff; transform: scale(1.05); }
        .footer-copyright { font-size: 0.9rem; }

        /* 8. RESPONSIVE DESIGN */
        @media (max-width: 992px) {
            .section { padding: 4rem 1.5rem; }
            .hero-title { font-size: 3rem; }
        }
        @media (max-width: 768px) {
            .header { padding: 1rem 5%; flex-direction: column; gap: 1rem; background: rgba(255, 255, 255, 0.5); }
            .navbar ul { gap: 1.5rem; flex-wrap: wrap; justify-content: center; }
            .nav-link { font-size: 0.9rem; padding-bottom: 0.25rem; }
            .section { min-height: auto; }
            .hero-title { font-size: 2.5rem; }
            .about-header { flex-direction: column; text-align: center; }
            .about-details { grid-template-columns: 1fr; }
        }