:root {
    --navy: #334155; 
    --navy-bg: #1e293b; 
    --navy-deep: #111827;
    --forest: #064e3b; 
    --mint: #4ade80; 
    --dark-green: #15803d; 
    --cream: #fdfaf3; 
    --white: #ffffff;
}

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

body { 
    font-family: 'Inter', sans-serif; 
    background: var(--cream); 
    color: var(--navy); 
    line-height: 1.6; 
    overflow-x: hidden; 
}

.content-wrapper { 
    max-width: 1200px; 
    margin: 0 auto; 
    padding: 0 30px; 
    width: 100%; 
    position: relative;
}

/* --- NAVIGATION --- */
.navbar { 
    height: 70px; 
    display: flex; 
    align-items: center; 
    background: var(--cream); 
    border-bottom: 1px solid rgba(0,0,0,0.05); 
    position: sticky; 
    top: 0; 
    z-index: 1000; 
}
.nav-flex { width: 100%; display: flex; justify-content: space-between; align-items: center; }
.nav-logo { font-weight: 800; text-decoration: none; color: var(--navy); font-size: 0.95rem; }
.nav-links { display: flex; list-style: none; gap: 5px; }
.nav-links a { text-decoration: none; color: inherit; font-weight: 600; font-size: 0.85rem; padding: 8px 12px; border-radius: 6px; transition: 0.2s; }
.nav-links a:hover { background-color: rgba(51, 65, 85, 0.08); color: var(--dark-green); }

/* --- HERO SECTION --- */
.hero-gradient { padding: 100px 0; background-color: var(--navy-bg); color: #fff; position: relative; overflow: hidden; }
.hero-relative { position: relative; z-index: 5; }
.hero-gradient::before {
    content: ""; position: absolute; top: -50%; left: -50%; width: 200%; height: 200%;
    background: radial-gradient(at 15% 15%, var(--forest) 0%, transparent 60%), radial-gradient(at 85% 10%, var(--navy) 0%, transparent 60%);
    opacity: 0.8; z-index: 1; animation: liquid 20s ease-in-out infinite alternate;
}
@keyframes liquid { 0% { transform: translate(-5%, -5%) scale(1); } 100% { transform: translate(5%, 5%) scale(1.1); } }

.headline { font-size: clamp(2.5rem, 5vw, 4rem); font-weight: 800; margin-bottom: 10px; letter-spacing: -0.04em; color: #ffffff; }

.hero-bio-block { display: flex; flex-direction: row; align-items: center; gap: 25px; margin-top: 30px; position: relative; z-index: 5; }
.avatar-container { width: 90px; height: 90px; border-radius: 50%; overflow: hidden; border: 2px solid var(--mint); flex-shrink: 0; }
.avatar-container img { width: 100%; height: 100%; object-fit: cover; }
.hero-subtext { border-left: 3px solid var(--mint); padding-left: 20px; max-width: 600px; font-size: 1.2rem; color: #ffffff; }

.hero-control { position: absolute; bottom: 20px; right: 30px; background: rgba(255, 255, 255, 0.1); border: 1px solid rgba(255, 255, 255, 0.2); color: #fff; cursor: pointer; display: flex; padding: 8px; border-radius: 8px; z-index: 100; }

/* --- PORTFOLIO GRID (Restored) --- */
.project-container { 
    display: flex; 
    flex-wrap: wrap; 
    gap: 40px; 
    margin-top: 40px;
}

.project-card { 
    background: #fff; 
    border: 1px solid rgba(0,0,0,0.05); 
    padding: 30px; 
    border-radius: 12px; 
    width: calc(50% - 20px); /* Forces two-column */
    min-width: 320px; 
    display: flex; 
    flex-direction: column; 
    transition: transform 0.3s ease;
    text-decoration: none;
    color: inherit;
}
.project-card:hover { transform: translateY(-5px); }

/* --- CASE STUDY LAYOUT --- */
.content-area { padding: 80px 0; width: 100%; }
.section-title { margin-bottom: 12px; font-size: 2.2rem; font-weight: 800; color: var(--dark-green); }

.resume-flex-layout { display: flex; gap: 60px; align-items: flex-start; width: 100%; }
.resume-main-content { flex: 2; min-width: 0; }
.resume-sidebar-content { flex: 1; min-width: 280px; position: sticky; top: 100px; }

/* CHIPS & PILLS */
.chip-stack { margin-bottom: 20px; display: flex; flex-direction: column; gap: 10px; }
.chip { display: inline-flex; align-items: center; padding: 6px 16px; border-radius: 100px; font-size: 0.8rem; font-weight: 700; color: #fff !important; width: fit-content; text-transform: uppercase; }
.chip-navy { background-color: var(--navy) !important; }
.chip-green { background-color: var(--dark-green) !important; }

/* LISTS */
.resume-list { list-style: none; padding: 0; }
.resume-list li { position: relative; padding-left: 25px; margin-bottom: 12px; }
.resume-list li::before { content: "→"; position: absolute; left: 0; color: var(--dark-green); font-weight: 800; }

.sidebar-block { background: #fff; padding: 25px; border-radius: 12px; border: 1px solid rgba(0,0,0,0.05); margin-bottom: 25px; }
.sidebar-title { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.1em; color: var(--dark-green); margin-bottom: 15px; font-weight: 800; }
.sidebar-list { list-style: none; padding: 0; }
.sidebar-list li { margin-bottom: 8px; font-size: 0.9rem; font-weight: 500; line-height: 1.4; }

/* --- FOOTER --- */
.site-footer { padding: 60px 0; background: var(--navy); color: #fff; }
.footer-flex { display: flex; justify-content: space-between; align-items: center; }
.linkedin-pill { 
    display: flex; 
    align-items: center; 
    gap: 10px; 
    background: rgba(255, 255, 255, 0.1); 
    color: #fff; 
    text-decoration: none; 
    padding: 10px 20px; 
    border-radius: 50px; 
    border: 1px solid rgba(255, 255, 255, 0.2); 
    font-size: 0.85rem; 
    font-weight: 600; 
    transition: 0.3s; 
}

.linkedin-pill:hover { 
    background: var(--mint); 
    color: var(--navy-deep); 
}

/* Fixes the icon size for Safari (collapse) and Chrome (huge size) */
.linkedin-pill svg {
    width: 18px !important;
    height: 18px !important;
    flex-shrink: 0; /* Prevents Safari from squeezing it */
    display: block;
}

/* --- RESPONSIVE --- */
@media (max-width: 900px) {
    .resume-flex-layout { flex-direction: column; gap: 40px; }
    .resume-sidebar-content { width: 100%; position: static; }
    .hero-gradient { padding: 60px 0; }
    .hero-bio-block { flex-direction: column; text-align: center; }
    .hero-subtext { border-left: none; padding-left: 0; }
    .project-card { width: 100%; }
    .footer-flex { flex-direction: column; gap: 24px; text-align: center; }
    .hero-control { bottom: 15px; right: 15px; }
    
    /* This handles the cropping for you in the browser */
.card-image-container {
    width: 100%;
    aspect-ratio: 16 / 9; /* Sets the 16:9 frame */
    overflow: hidden;
    border-radius: 8px;
    margin-top: 20px;
    background: #eee;
}

.card-image-container img {
    width: 100%;
    height: 100%;
    object-fit: cover;      /* Crops the image to fill the box */
    object-position: top;   /* Pins the crop to the top/hero area of your screenshot */
    display: block;
}
#contact-link a {
    color: var(--dark-green) !important;
    text-decoration: none !important;
    font-weight: 600 !important;
}

#contact-link a:visited {
    color: var(--dark-green) !important;
}