/* Define the new, softer color palette using CSS variables */
:root {
    --color-dark-charcoal: #1E1E1E; /* Very dark gray, almost black for primary background */
    --color-deep-plum: #4A0E4E;    /* Deep, rich purple for main accents */
    --color-soft-violet: #8B5CF6;  /* A softer, more friendly violet */
    --color-light-lavender: #DBCDDD; /* A very light, elegant lavender for highlights */
    --color-blush-pink: #F8BBD0; /* A subtle, delicate pink for gentle accents */
    --color-medium-gray-bg: #2D2D2D; /* Slightly lighter gray for section backgrounds */
    --color-light-text-gray: #E0E0E0; /* Lighter gray for general text */
    --color-subtle-gray: #A0A0A0; /* For secondary text or subtle borders */
    --color-white: #FFFFFF;
}

/* Base body styles using the new palette */
body {
    font-family: 'Inter', sans-serif;
    line-height: 1.7;
    color: var(--color-light-text-gray); /* Default text color */
    background-color: var(--color-dark-charcoal); /* Overall dark background */
    scroll-behavior: smooth; /* Smooth scrolling for anchor links */
}

/* Custom utility classes based on new palette */
.bg-dark-charcoal { background-color: var(--color-dark-charcoal); }
.text-dark-charcoal { color: var(--color-dark-charcoal); }
.bg-deep-plum { background-color: var(--color-deep-plum); }
.text-deep-plum { color: var(--color-deep-plum); }
.bg-soft-violet { background-color: var(--color-soft-violet); }
.text-soft-violet { color: var(--color-soft-violet); }
.bg-light-lavender { background-color: var(--color-light-lavender); }
.text-light-lavender { color: var(--color-light-lavender); }
.bg-blush-pink { background-color: var(--color-blush-pink); }
.text-blush-pink { color: var(--color-blush-pink); }
.bg-medium-gray-bg { background-color: var(--color-medium-gray-bg); }
.text-light-text-gray { color: var(--color-light-text-gray); }
.text-subtle-gray { color: var(--color-subtle-gray); }
.text-white { color: var(--color-white); }

/* General Hover Effects - adjusted for new palette */
.hover\:bg-soft-violet:hover { background-color: var(--color-soft-violet); }
.hover\:text-soft-violet:hover { color: var(--color-soft-violet); }
.hover\:bg-deep-plum:hover { background-color: var(--color-deep-plum); }
.hover\:text-deep-plum:hover { color: var(--color-deep-plum); }
.hover\:text-white:hover { color: var(--color-white); } /* For dark backgrounds */

/* Project Card specific styles and animations - softened corners and shadows */
.project-card {
    transition: transform 0.3s ease-in-out, box-shadow 0.3s ease-in-out, background-color 0.3s ease-in-out;
    border-radius: 1.5rem; /* More rounded corners for a friendly feel */
    overflow: hidden;
    background-color: var(--color-medium-gray-bg); /* Card background */
    box-shadow: 0 6px 12px -2px rgba(0, 0, 0, 0.15), 0 3px 6px -2px rgba(0, 0, 0, 0.1); /* Softer shadows */
    position: relative; /* Needed for loading overlay */
}
.project-card:hover {
    transform: translateY(-10px); /* Slightly more pronounced lift */
    box-shadow: 0 20px 30px -8px rgba(0, 0, 0, 0.3), 0 10px 15px -8px rgba(0, 0, 0, 0.2); /* Deeper, softer shadow on hover */
    background-color: var(--color-deep-plum); /* Darker on hover */
}
.project-card h3 {
    color: var(--color-light-lavender); /* Project title color */
}
.project-card p {
    color: var(--color-light-text-gray); /* Project description color */
}
.project-card a {
    color: var(--color-blush-pink); /* Link color - using pink accent */
}
.project-card a:hover {
    color: var(--color-light-lavender); /* Link hover color */
}

/* Hero section text animation */
.typing-effect::after {
    content: '|';
    animation: blink-caret 0.75s step-end infinite;
}

/* Keyframes for typing effect cursor */
@keyframes blink-caret {
    from, to { border-color: transparent }
    50% { border-color: var(--color-blush-pink); } /* Pink cursor */
}

/* Scroll reveal animation */
.scroll-hidden {
    opacity: 0;
    transform: translateY(30px); /* Slightly more pronounced initial translateY */
    transition: opacity 0.8s ease-out, transform 0.8s ease-out; /* Slower, smoother transition */
}
.scroll-visible {
    opacity: 1;
    transform: translateY(0);
}

/* Navigation bar styling */
.navbar {
    background-color: var(--color-dark-charcoal); /* Dark background for nav */
    border-bottom: 1px solid var(--color-medium-gray-bg); /* Subtle separator */
    border-radius: 0 0 1.5rem 1.5rem; /* Rounded bottom corners for nav */
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
}
.navbar a {
    color: var(--color-light-text-gray); /* Nav links default */
    transition: color 0.3s ease-in-out;
}
.navbar a:hover {
    color: var(--color-soft-violet); /* Nav links hover */
}
.navbar .logo {
    color: var(--color-blush-pink); /* Logo color - using pink accent */
    font-family: 'Montserrat', sans-serif;
    font-weight: 800; /* Make logo bolder */
}

/* Header section styling */
.header-section {
    background: linear-gradient(135deg, var(--color-deep-plum) 0%, var(--color-soft-violet) 100%); /* Softer gradient */
    padding-top: 10rem; /* More padding */
    padding-bottom: 10rem;
    box-shadow: inset 0 -15px 30px rgba(0, 0, 0, 0.3); /* Deeper shadow */
    border-radius: 0 0 3rem 3rem; /* Very rounded bottom corners */
}
.header-section h1 {
    font-family: 'Montserrat', sans-serif;
    color: var(--color-white);
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3); /* Subtle text shadow */
}
.header-section p {
    color: var(--color-light-lavender);
}
.header-section .btn-primary {
    background-color: var(--color-blush-pink); /* Pink button */
    color: var(--color-dark-charcoal);
    font-weight: 700;
    padding: 0.85rem 2.5rem; /* Larger padding */
    border-radius: 9999px; /* rounded-full */
    transition: background-color 0.3s ease-in-out, color 0.3s ease-in-out, transform 0.2s ease;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
}
.header-section .btn-primary:hover {
    background-color: var(--color-light-lavender); /* Lavender on hover */
    color: var(--color-deep-plum);
    transform: translateY(-5px); /* More lift */
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3);
}

/* About section styling */
.about-section {
    background-color: var(--color-medium-gray-bg); /* Slightly lighter gray */
    color: var(--color-light-text-gray);
    border-radius: 2rem; /* Rounded section */
    margin: 2rem auto; /* Add margin for separation */
    padding: 4rem;
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);
}
.about-section h2 {
    color: var(--color-soft-violet);
    font-family: 'Montserrat', sans-serif;
}
.about-section img {
    border: 5px solid var(--color-blush-pink); /* Pink border around image */
    box-shadow: 0 0 25px rgba(248, 187, 208, 0.6); /* Glowing effect with pink */
}
.about-section p {
    color: var(--color-light-text-gray);
}

/* Projects section styling */
.projects-section {
    background-color: var(--color-dark-charcoal); /* Dark background */
}
.projects-section h2 {
    color: var(--color-soft-violet);
    font-family: 'Montserrat', sans-serif;
}

/* Contact section styling */
.contact-section {
    background-color: var(--color-medium-gray-bg); /* Slightly lighter gray */
    color: var(--color-light-text-gray);
    border-radius: 2rem; /* Rounded section */
    margin: 2rem auto; /* Add margin for separation */
    padding: 4rem;
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);
}
.contact-section h2 {
    color: var(--color-soft-violet);
    font-family: 'Montserrat', sans-serif;
}
.contact-section .btn-secondary {
    background-color: var(--color-soft-violet); /* Violet button */
    color: var(--color-white);
    font-weight: 700;
    padding: 0.85rem 2.5rem;
    border-radius: 9999px; /* rounded-full */
    transition: background-color 0.3s ease-in-out, transform 0.2s ease;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
}
.contact-section .btn-secondary:hover {
    background-color: var(--color-deep-plum); /* Deeper plum on hover */
    transform: translateY(-5px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3);
}
.contact-section a {
    color: var(--color-blush-pink); /* Pink links */
    transition: color 0.3s ease-in-out;
}
.contact-section a:hover {
    color: var(--color-light-lavender); /* Lavender on hover */
}

/* Footer styling */
.footer-section {
    background-color: var(--color-deep-plum); /* Deep plum */
    color: var(--color-light-lavender);
    border-top: 1px solid var(--color-soft-violet);
    border-radius: 3rem 3rem 0 0; /* Rounded top corners */
    padding-top: 2.5rem;
    padding-bottom: 2.5rem;
}

/* Skills section specific styles */
.skills-section h2 {
    color: var(--color-soft-violet);
    font-family: 'Montserrat', sans-serif;
}
.skills-section .skill-category {
    background-color: var(--color-medium-gray-bg);
    border-left: 5px solid var(--color-blush-pink); /* Pink border */
    border-radius: 1.5rem; /* More rounded */
    box-shadow: 0 6px 12px -2px rgba(0, 0, 0, 0.15);
}
.skills-section .skill-category .skill-item {
    background-color: var(--color-deep-plum); /* Deep plum for tags */
    color: var(--color-light-lavender);
    border-radius: 9999px; /* Fully rounded pills */
    padding: 0.5rem 1rem;
    transition: background-color 0.2s ease-in-out, transform 0.1s ease-in-out;
}
.skills-section .skill-category .skill-item:hover {
    background-color: var(--color-soft-violet);
    transform: translateY(-2px);
}

/* Experience section specific styles */
.experience-section h2 {
    color: var(--color-soft-violet);
    font-family: 'Montserrat', sans-serif;
}
.experience-card {
    background-color: var(--color-medium-gray-bg);
    border-left: 5px solid var(--color-blush-pink); /* Pink border */
    border-radius: 1.5rem; /* More rounded */
    box-shadow: 0 6px 12px -2px rgba(0, 0, 0, 0.15);
    padding: 2.5rem;
}
.experience-card h3 {
    color: var(--color-light-lavender);
}
.experience-card .date {
    color: var(--color-subtle-gray);
    font-style: italic;
}
.experience-card ul li {
    color: var(--color-light-text-gray);
    margin-bottom: 0.5rem;
}
.experience-card ul li:last-child {
    margin-bottom: 0;
}

/* Loading Spinner */
.spinner {
    border: 4px solid rgba(255, 255, 255, 0.3);
    border-top: 4px solid var(--color-blush-pink);
    border-radius: 50%;
    width: 40px;
    height: 40px;
    animation: spin 1s linear infinite;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 10;
}

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

.image-container {
    position: relative;
    width: 100%;
    height: 48; /* h-48 from tailwind */
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: var(--color-dark-charcoal); /* Placeholder background */
}

.image-container img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}