:root {
    --bg-color: #084C61;
    --text-primary: #d0edf9;
    --text-secondary: #FFC857;
    --card-bg: #ffffff08;
    --card-border: #ffffff1a;
    --accent: #63d4f0;
}

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

body {
    background-color: var(--bg-color);
    color: var(--text-primary);
    font-family: 'Inter', sans-serif;
    line-height: 1.6;
    display: flex;
    flex-direction: column;
    align-items: center;
}


/* Navigation */
nav {
    width: 100%;
    padding: 20px 0;
    position: relative;
    top: 0;
    background: var(--bg-color);
    backdrop-filter: blur(10px);
    z-index: 100;
    text-align: center;
}

.nav-links a {
    color: var(--text-primary);
    text-decoration: none;
    margin: 0 15px;
    font-size: 0.9rem;
    transition: color 0.3s;
}

.nav-links a:hover {
    color: var(--accent);
}

/* Sections */
.section {
    width: 100%;
    max-width: 800px;
    padding: 60px 20px;
    text-align: left;
}

/* Normal weight for subheadings */
h2, h3, h4 {
    font-weight: 400;
    margin-bottom: 15px;
}

/* Bold weight for your main title */
h1 {
    font-weight: 600; 
    margin-bottom: 15px;
    color: var(--text-secondary);

}

h2 {
    font-size: 1.2rem;
    color: var(--text-secondary);
    text-transform: uppercase;
    letter-spacing: 2px;
    margin-bottom: 30px;
    border-bottom: 1px solid var(--card-border);
    padding-bottom: 10px;
}



/* About Header */
#about {
    text-align: center;
    margin-top: 20px;
}

.profile-pic {
    width: 250px;
    height: 250px;
    border-radius: 50%;
    object-fit: cover;
    margin-bottom: 20px;
    border: 1px solid var(--card-border);
}

.subtitle {
    color: var(--primary);
    font-weight: 600; 
    margin-bottom: 20px;
    font-size: 1.2rem;
}

.bio {
    max-width: 600px;
    margin: 0 auto;
    color: var(--text-primary);
}

/* Cards Grid */
.grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

@media (max-width: 600px) {
    .grid {
        grid-template-columns: 1fr;
    }
}

.card {
    background: var(--card-bg);
    border: 1px solid var(--card-border);
    border-radius: 12px;
    padding: 20px;
    cursor: pointer;
    transition: transform 0.2s, background 0.3s;
    display: flex;
    flex-direction: column;
}

.card:hover {
    transform: translateY(-3px);
    background: rgba(255, 255, 255, 0.06);
}

.card-img {
    width: 100%;
    height: 160px;
    object-fit: cover;
    border-radius: 8px; /* Matches the card's rounded aesthetic */
    margin-bottom: 15px;
}

.card h3 {
    margin-bottom: 10px;
    font-size: 1.1rem;
    color: var(--accent)
}


.tech-stack {
    font-size: 0.8rem;
    color: var(--text-primary);
    margin-top: auto; /* Pushes tech stack to the bottom */
}

/* Resume Timeline */
.download-btn {
    display: inline-block;
    padding: 10px 20px;
    border: 1px solid var(--card-border);
    border-radius: 20px;
    color: var(--text-primary);
    text-decoration: none;
    margin-bottom: 30px;
    transition: background 0.3s;
}

.download-btn:hover {
    background: var(--card-bg);
}

.timeline {
    border-left: 2px solid var(--card-border);
    padding-left: 20px;
}

.timeline-item {
    margin-bottom: 25px;
    position: relative;
}

.timeline-item:last-child {
    margin-bottom: 0; 
}

.timeline-item::before {
    content: '';
    position: absolute;
    left: -25px;
    top: 6px;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--accent);
}

.timeline-item h4 {
    margin-bottom: 5px;
    font-size: 1.1rem;
    color: var(--accent);
}

.meta-info {
    font-size: 0.85rem;
    color: var(--text-primary);
    margin-bottom: 15px;
}

.meta-info span {
    margin-right: 5px;
}

.timeline-item ul {
    padding-left: 18px;
    color: var(--text-primary);
    font-size: 0.85rem;
}

.timeline-item li {
    margin-bottom: 3px;
}


/* Contact Info */
.contact-info a {
    color: var(--text-primary);
    text-decoration: none;
}

/* Styles the icons with your theme color and sets a uniform size */
.contact-icon {
    color: var(--accent);
    font-size: 1.2rem;
    width: 30px; /* Ensures all icons take up the same width so text aligns neatly */
    text-align: center;
    margin-right: 15px;
}

/* Uses flexbox to perfectly vertically center the icon with the text */
.contact-info p {
    display: flex;
    align-items: center;
    margin-bottom: 12px;
}

/* Modal (Popup for projects) */
.modal {
    display: none; 
    position: fixed; 
    z-index: 200; 
    left: 0;
    top: 0;
    width: 100%; 
    height: 100%; 
    background-color: rgba(0,0,0,0.8); 
    align-items: center;
    justify-content: center;
    overflow-y: auto; /* Allows scrolling if content is too tall */
}

.modal-content {
    background-color: var(--bg-color);
    padding: 40px;
    border: 1px solid var(--card-border);
    border-radius: 12px;
    width: 80%;
    max-width: 600px;
    position: relative;
    max-height: 90vh; /* Keeps it contained within the screen */
    overflow-y: auto;
}

.close {
    color: var(--text-secondary);
    position: absolute;
    right: 25px;
    top: 25px;
    font-size: 28px;
    font-weight: bold;
    cursor: pointer;
}

.close:hover {
    color: var(--accent);
}

.modal-img {
    width: 100%;
    height: auto;
    max-height: 400px; /* Increased slightly to give taller images more room */
    object-fit: contain; /* Prevents cropping and respects aspect ratio */
    border-radius: 8px;
    
    /* These three lines ensure the image stays centered if it's narrower than the modal */
    display: block; 
    margin: 20px auto; 
}

.modal-section {
    margin-bottom: 25px;
}

.modal-section h3 {
    font-weight: 600;
    color: var(--accent);
    margin-bottom: 8px;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-size: 1rem;
}

.modal-section p, .modal-section ul {
    color: var(--text-primary);
    font-size: 0.95rem;
}

.modal-section ul {
    padding-left: 18px;
}

.modal-section li {
    margin-bottom: 5px;
}

/* Side-by-side image container */
.image-row {
    display: flex;
    gap: 20px; /* The space between the two images */
    margin: 20px 0;
}

/* Individual image wrappers */
.image-row figure {
    margin: 0;
    flex: 1; /* This forces both figures to take up exactly half the space */
    display: flex;
    flex-direction: column;
}

/* Adjust the image to fill its half-width box perfectly */
.image-row .modal-img {
    margin: 0; /* Removes the auto-centering margin we added earlier */
    width: 100%;
}

/* Caption text styling */
figcaption {
    color: var(--text-secondary);
    font-size: 0.85rem;
    text-align: center;
    margin-top: 10px;
    font-style: italic;
}

/* Remove bottom margin from images inside figures to pull the caption closer */
figure .modal-img {
    margin-bottom: 0;
}

/* Make them stack vertically on small phone screens so they aren't too squished */
@media (max-width: 600px) {
    .image-row {
        flex-direction: column;
    }
}