/* Professional Digital Resume + Portfolio Styles */



/* Reset and Base Styles */

* {

    margin: 0;

    padding: 0;

    box-sizing: border-box;

}



:root {

    /* Brand Colors - Cool Neutrals with Electric Accents */

    --primary-slate: #1e293b;

    --secondary-slate: #475569;

    --light-slate: #94a3b8;

    --bg-white: #ffffff;

    --bg-gray: #f8fafc;

    --bg-dark: #0f172a;

    

    /* Electric Accents */

    --electric-blue: #3b82f6;

    --electric-violet: #8b5cf6;

    --accent-gradient: linear-gradient(135deg, #3b82f6 0%, #8b5cf6 100%);

    --accent-gradient-hover: linear-gradient(135deg, #2563eb 0%, #7c3aed 100%);

    

    /* Status Colors */

    --success: #10b981;

    --warning: #f59e0b;

    --error: #ef4444;

    

    /* Typography */

    --font-primary: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

    --font-weight-light: 300;

    --font-weight-normal: 400;

    --font-weight-medium: 500;

    --font-weight-semibold: 600;

    --font-weight-bold: 700;

    --font-weight-extrabold: 800;

    

    /* Spacing */

    --section-padding: 120px 0;

    --container-max-width: 1200px;

    --container-padding: 0 24px;

    

    /* Shadows */

    --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);

    --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);

    --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);

    --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);

    

    /* Border Radius */

    --radius-sm: 6px;

    --radius-md: 12px;

    --radius-lg: 16px;

    --radius-xl: 24px;

    

    /* Transitions */

    --transition-fast: 0.2s ease;

    --transition-normal: 0.3s ease;

    --transition-slow: 0.5s ease;

}



body {

    font-family: var(--font-primary);

    line-height: 1.6;

    color: var(--primary-slate);

    background: var(--bg-white);

    font-size: 16px;

    overflow-x: hidden;

}



.container {

    max-width: var(--container-max-width);

    margin: 0 auto;

    padding: var(--container-padding);

}



/* Navigation */

.navbar {

    position: fixed;

    top: 0;

    left: 0;

    right: 0;

    background: rgba(255, 255, 255, 0.95);

    backdrop-filter: blur(10px);

    z-index: 1000;

    padding: 1rem 0;

    transition: all var(--transition-normal);

    border-bottom: 1px solid rgba(148, 163, 184, 0.1);

}



.nav-container {

    max-width: var(--container-max-width);

    margin: 0 auto;

    padding: 0 24px;

    display: flex;

    justify-content: space-between;

    align-items: center;

}



.nav-logo {

    font-size: 1.5rem;

    font-weight: var(--font-weight-extrabold);

}



.logo-text {

    background: var(--accent-gradient);

    -webkit-background-clip: text;

    -webkit-text-fill-color: transparent;

    background-clip: text;

}



.nav-menu {

    display: flex;

    gap: 2rem;

}



.nav-link {

    text-decoration: none;

    color: var(--primary-slate);

    font-weight: var(--font-weight-medium);

    transition: color var(--transition-fast);

    position: relative;

}



.nav-link:hover {

    color: var(--electric-blue);

}



.nav-link::after {

    content: '';

    position: absolute;

    bottom: -5px;

    left: 0;

    width: 0;

    height: 2px;

    background: var(--accent-gradient);

    transition: width var(--transition-normal);

}



.nav-link:hover::after {

    width: 100%;

}



.hamburger {

    display: none;

    flex-direction: column;

    cursor: pointer;

    gap: 4px;

}



.bar {

    width: 25px;

    height: 3px;

    background: var(--primary-slate);

    transition: all var(--transition-normal);

    border-radius: 2px;

}



/* Hero Section */

.hero {

    min-height: 100vh;

    display: flex;

    align-items: center;

    position: relative;

    background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%);

    overflow: hidden;

    padding: 2rem 0;

    padding-top: 6rem;

}



.hero-background {

    position: absolute;

    top: 0;

    left: 0;

    right: 0;

    bottom: 0;

    z-index: 1;

}



.ai-particles {

    position: absolute;

    top: 0;

    left: 0;

    right: 0;

    bottom: 0;

    background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><defs><pattern id="ai-grid" width="20" height="20" patternUnits="userSpaceOnUse"><path d="M 20 0 L 0 0 0 20" fill="none" stroke="rgba(59,130,246,0.1)" stroke-width="0.5"/></pattern></defs><rect width="100" height="100" fill="url(%23ai-grid)"/></svg>');

    opacity: 0.3;

}



.hero-content {

    position: relative;

    z-index: 2;

    display: grid;

    grid-template-columns: 1fr 1fr;

    gap: 4rem;

    align-items: center;

    margin-bottom: 2rem;

}



.hero-kicker {

    font-size: 0.9rem;

    font-weight: var(--font-weight-medium);

    color: var(--electric-blue);

    text-transform: uppercase;

    letter-spacing: 0.05em;

    margin-bottom: 1rem;

}



.hero-title {

    font-size: clamp(2.5rem, 4.5vw, 3.2rem);

    font-weight: var(--font-weight-extrabold);

    line-height: 1.1;

    color: var(--primary-slate);

    margin-bottom: 0.75rem;

    display: flex;

    align-items: center;

    justify-content: flex-start;

    flex-wrap: wrap;

}



.typewriter-container {

    position: relative;

    display: inline-block;

    min-width: 200px;

    text-align: left;

    /* Ensure consistent text rendering across devices */

    -webkit-font-smoothing: antialiased;

    -moz-osx-font-smoothing: grayscale;

    text-rendering: optimizeLegibility;

    /* Ensure proper positioning within flex containers */

    align-self: flex-start;

}



/* Mobile-specific cursor positioning using CSS */

@media (max-width: 768px) {

    .typewriter-container {

        display: flex;

        align-items: baseline;

        justify-content: center;

        text-align: center;

        width: 100%;

        margin: 0 auto;

    }

    

    .typewriter-text {

        display: inline-block;

    }

    

    .typewriter-cursor {

        position: static !important;

        left: auto !important;

        right: auto !important;

        transform: none !important;

        display: inline-block !important;

        visibility: visible !important;

        margin-left: 2px;

    }

}



.typewriter-text {

    background: var(--accent-gradient);

    -webkit-background-clip: text;

    -webkit-text-fill-color: transparent;

    background-clip: text;

    height: 1.2em;

    min-height: 1.2em;

    display: inline-block;

    vertical-align: top;

}



.typewriter-cursor {

    position: absolute;

    top: 0;

    left: 0;

    color: var(--electric-blue);

    font-weight: var(--font-weight-normal);

    animation: blink 1s infinite;

    pointer-events: none;

    white-space: nowrap;

    will-change: transform;

    backface-visibility: hidden;

    transform-origin: left center;

    /* Ensure cursor is visible and properly positioned */

    display: inline-block;

    line-height: 1;

    vertical-align: top;

    /* Ensure cursor positioning is not affected by parent flex layout */

    z-index: 1;

}



.static-text {

    color: var(--primary-slate);

}



@keyframes blink {

    0%, 50% {

        opacity: 1;

    }

    51%, 100% {

        opacity: 0;

    }

}



.hero-subtitle {

    font-size: 1.25rem;

    line-height: 1.6;

    color: var(--secondary-slate);

    margin-bottom: 2rem;

    max-width: 500px;

}



.hero-ctas {

    display: flex;

    gap: 1rem;

    flex-wrap: wrap;

}



.btn {

    display: inline-flex;

    align-items: center;

    padding: 1rem 2rem;

    border-radius: var(--radius-lg);

    text-decoration: none;

    font-weight: var(--font-weight-semibold);

    transition: all var(--transition-normal);

    border: 2px solid transparent;

    cursor: pointer;

    font-size: 1rem;

}



.btn-primary {

    background: var(--accent-gradient);

    color: var(--bg-white);

    box-shadow: var(--shadow-md);

}



.btn-primary:hover {

    transform: translateY(-2px);

    box-shadow: var(--shadow-lg);

    background: var(--accent-gradient-hover);

}



.btn-outline {

    background: transparent;

    color: var(--primary-slate);

    border-color: var(--primary-slate);

}



.btn-outline:hover {

    background: var(--primary-slate);

    color: var(--bg-white);

    transform: translateY(-2px);

}



.hero-image {

    display: flex;

    flex-direction: column;

    justify-content: center;

    align-items: center;

}



.headshot-carousel {

    position: relative;

    width: 300px;

    height: 300px;

    border-radius: 50%;

    overflow: hidden;

    margin: 0 auto;

}



.headshot-placeholder {

    width: 100%;

    height: 100%;

    background: var(--bg-gray);

    border: 3px dashed var(--light-slate);

    border-radius: 50%;

    display: flex;

    flex-direction: column;

    align-items: center;

    justify-content: center;

    color: var(--light-slate);

    transition: all var(--transition-normal);

    position: absolute;

    top: 0;

    left: 0;

}



.image-credit {

    margin-top: 1rem;

    text-align: center;

    width: 100%;

    display: flex;

    justify-content: center;

}



.credit-text {

    font-size: 0.75rem;

    color: var(--light-slate);

    font-style: italic;

    opacity: 0.6;

}



.headshot-placeholder:hover {

    border-color: var(--electric-blue);

    color: var(--electric-blue);

}



.headshot-placeholder i {

    font-size: 4rem;

    margin-bottom: 1rem;

}



.placeholder-text {

    font-size: 0.9rem;

    font-weight: var(--font-weight-medium);

}



.headshot-photo {

    width: 100%;

    height: 100%;

    object-fit: cover;

    border-radius: 50%;

    position: absolute;

    top: 0;

    left: 0;

    opacity: 0;

    transition: opacity 1s ease-in-out;

    display: block;

}



.headshot-photo.active {

    opacity: 1;

}



.headshot-photo.fade-in {

    animation: fadeInPhoto 1s ease-in-out;

}



.headshot-photo.fade-out {

    animation: fadeOutPhoto 1s ease-in-out;

}



/* Image Overlay Styles */

.headshot-photo-wrapper {

    width: 100%;

    height: 100%;

    position: absolute;

    top: 0;

    left: 0;

    border-radius: 50%;

    overflow: hidden;

    opacity: 0;

    transition: opacity 1s ease-in-out;

    display: none;

}



.image-overlay {

    position: absolute;

    top: 0;

    left: 0;

    right: 0;

    bottom: 0;

    background: rgba(30, 41, 59, 0.9);

    color: var(--bg-white);

    display: flex;

    flex-direction: column;

    justify-content: center;

    align-items: center;

    text-align: center;

    padding: 1rem;

    border-radius: 50%;

    opacity: 0;

    transition: opacity 0.3s ease;

    z-index: 10;

}



.headshot-photo-wrapper:hover .image-overlay {

    opacity: 1;

}



.headshot-photo-wrapper.active {

    opacity: 1;

}



.headshot-photo-wrapper.fade-in {

    animation: fadeInPhoto 1s ease-in-out;

}



.headshot-photo-wrapper.fade-out {

    animation: fadeOutPhoto 1s ease-in-out;

}



.overlay-title {

    font-size: 1.1rem;

    font-weight: var(--font-weight-semibold);

    margin-bottom: 0.5rem;

    color: var(--bg-white);

}



.overlay-description {

    font-size: 0.9rem;

    line-height: 1.4;

    color: rgba(255, 255, 255, 0.9);

    max-width: 200px;

}



@keyframes fadeInPhoto {

    from {

        opacity: 0;

        transform: scale(1.1);

    }

    to {

        opacity: 1;

        transform: scale(1);

    }

}



@keyframes fadeOutPhoto {

    from {

        opacity: 1;

        transform: scale(1);

    }

    to {

        opacity: 0;

        transform: scale(0.9);

    }

}



/* Metric Chips */

.metric-chips {

    position: relative;

    z-index: 2;

    display: grid;

    grid-template-columns: repeat(5, 1fr);

    gap: 1.5rem;

    background: var(--bg-white);

    padding: 2rem;

    border-radius: var(--radius-xl);

    box-shadow: var(--shadow-lg);

    border: 1px solid rgba(148, 163, 184, 0.1);

}



.metric-chip {

    text-align: center;

    padding: 1rem;

    background: var(--bg-gray);

    border-radius: var(--radius-md);

    transition: transform var(--transition-normal);

}



.metric-chip:hover {

    transform: translateY(-2px);

}



.metric-number {

    display: block;

    font-size: 2rem;

    font-weight: var(--font-weight-extrabold);

    color: var(--electric-blue);

    margin-bottom: 0.5rem;

}



.metric-label {

    font-size: 0.9rem;

    color: var(--secondary-slate);

    font-weight: var(--font-weight-medium);

}



/* Section Styles */

section {

    padding: var(--section-padding);

}



.section-title {

    font-size: 2.5rem;

    font-weight: var(--font-weight-bold);

    color: var(--primary-slate);

    text-align: center;

    margin-bottom: 3rem;

    position: relative;

}



.section-title::after {

    content: '';

    position: absolute;

    bottom: -10px;

    left: 50%;

    transform: translateX(-50%);

    width: 60px;

    height: 4px;

    background: var(--accent-gradient);

    border-radius: 2px;

}



/* About Section */

.about {

    background: var(--bg-gray);

}



.about-content {

    display: grid;

    grid-template-columns: 2fr 1fr;

    gap: 4rem;

    align-items: start;

}



.about-narrative {

    font-size: 1.1rem;

    line-height: 1.7;

    color: var(--secondary-slate);

    margin-bottom: 1.5rem;

}



.about-social {

    display: flex;

    gap: 1rem;

    margin-top: 2rem;

}



.about-social .social-icon {

    display: flex;

    align-items: center;

    justify-content: center;

    width: 40px;

    height: 40px;

    background: var(--accent-gradient);

    color: var(--bg-white);

    border-radius: 50%;

    text-decoration: none;

    transition: all var(--transition-normal);

    font-size: 1.2rem;

}



.about-social .social-icon:hover {

    transform: translateY(-2px);

    box-shadow: var(--shadow-md);

    background: var(--accent-gradient-hover);

}



.exploration-panel {

    background: var(--bg-white);

    padding: 2rem;

    border-radius: var(--radius-lg);

    box-shadow: var(--shadow-md);

    border: 1px solid rgba(148, 163, 184, 0.1);

}



.exploration-panel h3 {

    font-size: 1.2rem;

    font-weight: var(--font-weight-semibold);

    color: var(--primary-slate);

    margin-bottom: 1.5rem;

}



.exploration-items {

    display: grid;

    gap: 1rem;

}



.exploration-item {

    display: flex;

    align-items: center;

    gap: 0.75rem;

    padding: 0.75rem;

    background: var(--bg-gray);

    border-radius: var(--radius-sm);

    transition: all var(--transition-normal);

}



.exploration-item:hover {

    background: var(--accent-gradient);

    color: var(--bg-white);

    transform: translateX(5px);

}



.exploration-item i {

    color: var(--electric-blue);

    font-size: 1.1rem;

}



.exploration-item:hover i {

    color: var(--bg-white);

}



/* Impact Metrics Section */

.metrics-grid {

    display: grid;

    grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));

    gap: 2rem;

}



.metric-card {

    background: var(--bg-white);

    padding: 2rem;

    border-radius: var(--radius-lg);

    box-shadow: var(--shadow-md);

    border: 1px solid rgba(148, 163, 184, 0.1);

    display: flex;

    align-items: flex-start;

    gap: 1.5rem;

    transition: all var(--transition-normal);

}



.metric-card:hover {

    transform: translateY(-5px);

    box-shadow: var(--shadow-lg);

}



.metric-icon {

    width: 60px;

    height: 60px;

    background: var(--accent-gradient);

    border-radius: 50%;

    display: flex;

    align-items: center;

    justify-content: center;

    flex-shrink: 0;

}



.metric-icon i {

    font-size: 1.5rem;

    color: var(--bg-white);

}



.metric-content {

    flex: 1;

}



.metric-value {

    display: block;

    font-size: 2rem;

    font-weight: var(--font-weight-extrabold);

    color: var(--electric-blue);

    margin-bottom: 0.5rem;

}



.metric-description {

    font-size: 0.95rem;

    color: var(--secondary-slate);

    line-height: 1.5;

}



/* Projects Section */

.projects {

    background: var(--bg-gray);

}



.projects-grid {

    display: grid;

    gap: 3rem;

    max-width: 1000px;

    margin: 0 auto;

}



.project-card {

    background: var(--bg-white);

    border-radius: var(--radius-lg);

    box-shadow: var(--shadow-md);

    border: 1px solid rgba(148, 163, 184, 0.1);

    overflow: hidden;

    transition: all var(--transition-normal);

}



.project-card:hover {

    transform: translateY(-5px);

    box-shadow: var(--shadow-xl);

}



.project-header {

    padding: 2rem 2rem 1rem;

    border-bottom: 1px solid rgba(148, 163, 184, 0.1);

    display: flex;

    justify-content: space-between;

    align-items: center;

}



.project-header h3 {

    font-size: 1.5rem;

    font-weight: var(--font-weight-bold);

    color: var(--primary-slate);

}



.project-type {

    background: var(--accent-gradient);

    color: var(--bg-white);

    padding: 0.5rem 1rem;

    border-radius: var(--radius-sm);

    font-size: 0.85rem;

    font-weight: var(--font-weight-medium);

}



.project-content {

    padding: 2rem;

    display: flex;

    flex-direction: column;

}



.project-description {

    color: var(--secondary-slate);

    line-height: 1.6;

    margin-bottom: 1.5rem;

    font-size: 1rem;

}



.project-problem,

.project-approach,

.project-outcome,

.project-context,

.project-contribution,

.project-impact {

    margin-bottom: 1.5rem;

}



.project-problem h4,

.project-approach h4,

.project-outcome h4,

.project-context h4,

.project-contribution h4,

.project-impact h4 {

    font-size: 1rem;

    font-weight: var(--font-weight-semibold);

    color: var(--primary-slate);

    margin-bottom: 0.5rem;

}



.project-problem p,

.project-approach p,

.project-outcome p,

.project-context p,

.project-impact p {

    color: var(--secondary-slate);

    line-height: 1.6;

}



.contribution-list {

    color: var(--secondary-slate);

    line-height: 1.6;

    margin-left: 1.5rem;

    margin-top: 0.5rem;

    padding-left: 0;

}



.contribution-list li {

    margin-bottom: 0.75rem;

    color: var(--secondary-slate);

}



.project-stack {

    display: flex;

    flex-wrap: wrap;

    gap: 0.5rem;

    margin-bottom: 1.5rem;

}



.stack-badge {

    background: var(--bg-gray);

    color: var(--primary-slate);

    padding: 0.4rem 0.8rem;

    border-radius: var(--radius-sm);

    font-size: 0.85rem;

    font-weight: var(--font-weight-medium);

    border: 1px solid rgba(148, 163, 184, 0.2);

}



.project-footer {

    margin-top: auto;

    display: flex;

    justify-content: flex-end;

    padding-top: 1.5rem;

}



.project-link {

    font-size: 0.9rem;

    padding: 0.75rem 1.5rem;

}



.build-log h4 {

    font-size: 1rem;

    font-weight: var(--font-weight-semibold);

    color: var(--primary-slate);

    margin-bottom: 1rem;

}



.timeline-item {

    display: flex;

    justify-content: space-between;

    align-items: center;

    padding: 0.5rem 0;

    border-bottom: 1px solid rgba(148, 163, 184, 0.1);

}



.timeline-item:last-child {

    border-bottom: none;

}



.date {

    font-size: 0.85rem;

    color: var(--light-slate);

    font-weight: var(--font-weight-medium);

}



.milestone {

    font-size: 0.9rem;

    color: var(--secondary-slate);

}



.projects-footer {

    text-align: center;

    margin-top: 2rem;

}



.empty-state {

    color: var(--light-slate);

    font-style: italic;

}



/* Experience Timeline */

.experience-timeline {

    position: relative;

    max-width: 800px;

    margin: 0 auto;

}



.experience-timeline::before {

    content: '';

    position: absolute;

    left: 30px;

    top: 0;

    bottom: 0;

    width: 2px;

    background: var(--accent-gradient);

}



.timeline-item {

    position: relative;

    margin-bottom: 3rem;

    padding-left: 80px;

}



.timeline-marker {

    position: absolute;

    left: 20px;

    top: 0;

    width: 20px;

    height: 20px;

    background: var(--accent-gradient);

    border-radius: 50%;

    border: 4px solid var(--bg-white);

    box-shadow: var(--shadow-md);

}



.timeline-content {

    background: var(--bg-white);

    padding: 2rem;

    border-radius: var(--radius-lg);

    box-shadow: var(--shadow-md);

    border: 1px solid rgba(148, 163, 184, 0.1);

    transition: all var(--transition-normal);

}



.timeline-content:hover {

    transform: translateX(10px);

    box-shadow: var(--shadow-lg);

}



.timeline-header {

    display: flex;

    justify-content: space-between;

    align-items: flex-start;

    margin-bottom: 1rem;

    flex-wrap: wrap;

    gap: 1rem;

}



.timeline-header h3 {

    font-size: 1.3rem;

    font-weight: var(--font-weight-semibold);

    color: var(--primary-slate);

}



.company {

    color: var(--electric-blue);

    font-weight: var(--font-weight-medium);

}



.duration {

    background: var(--accent-gradient);

    color: var(--bg-white);

    padding: 0.25rem 0.75rem;

    border-radius: var(--radius-sm);

    font-size: 0.85rem;

    font-weight: var(--font-weight-medium);

}



.timeline-bullets {

    list-style: none;

}



.timeline-bullets li {

    position: relative;

    padding-left: 1.5rem;

    margin-bottom: 0.75rem;

    color: var(--secondary-slate);

    line-height: 1.6;

}



.timeline-bullets li::before {

    content: '▶';

    position: absolute;

    left: 0;

    color: var(--electric-blue);

    font-size: 0.8rem;

}



/* Skills Section */

.skills {

    background: var(--bg-gray);

}



.skills-grid {

    display: grid;

    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));

    gap: 2rem;

}



.skill-category {

    background: var(--bg-white);

    padding: 2rem;

    border-radius: var(--radius-lg);

    box-shadow: var(--shadow-md);

    border: 1px solid rgba(148, 163, 184, 0.1);

}



.skill-category h3 {

    font-size: 1.2rem;

    font-weight: var(--font-weight-semibold);

    color: var(--primary-slate);

    margin-bottom: 1.5rem;

}



.skill-badges {

    display: flex;

    flex-wrap: wrap;

    gap: 0.5rem;

}



.skill-badge {

    background: var(--bg-gray);

    color: var(--primary-slate);

    padding: 0.5rem 1rem;

    border-radius: var(--radius-sm);

    font-size: 0.85rem;

    font-weight: var(--font-weight-medium);

    border: 1px solid rgba(148, 163, 184, 0.2);

    transition: all var(--transition-normal);

    cursor: pointer;

    position: relative;

}



.skill-badge:hover {

    background: var(--accent-gradient);

    color: var(--bg-white);

    transform: translateY(-2px);

}



/* Tooltip */

.skill-badge[data-tooltip]:hover::after {

    content: attr(data-tooltip);

    position: absolute;

    bottom: 100%;

    left: 50%;

    transform: translateX(-50%);

    background: var(--primary-slate);

    color: var(--bg-white);

    padding: 0.5rem 0.75rem;

    border-radius: var(--radius-sm);

    font-size: 0.8rem;

    white-space: nowrap;

    z-index: 1000;

    margin-bottom: 5px;

}



/* Education Section */

.education-content {

    display: grid;

    gap: 3rem;

}



.education-main {

    display: flex;

    justify-content: center;

}



.education-item {

    background: var(--bg-white);

    padding: 2rem;

    border-radius: var(--radius-lg);

    box-shadow: var(--shadow-md);

    display: flex;

    align-items: center;

    gap: 2rem;

    max-width: 500px;

    width: 100%;

    border: 1px solid rgba(148, 163, 184, 0.1);

}



.education-item i {

    font-size: 2rem;

    color: var(--electric-blue);

}



.education-details h3 {

    font-size: 1.2rem;

    font-weight: var(--font-weight-semibold);

    color: var(--primary-slate);

    margin-bottom: 0.5rem;

}



.education-details p {

    color: var(--secondary-slate);

    margin-bottom: 0.25rem;

}



.year {

    background: var(--accent-gradient);

    color: var(--bg-white);

    padding: 0.2rem 0.6rem;

    border-radius: var(--radius-sm);

    font-size: 0.8rem;

    font-weight: var(--font-weight-medium);

}



.certifications {

    display: grid;

    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));

    gap: 1rem;

}



.cert-item {

    background: var(--bg-white);

    padding: 1rem;

    border-radius: var(--radius-md);

    box-shadow: var(--shadow-sm);

    display: flex;

    align-items: center;

    gap: 1rem;

    border: 1px solid rgba(148, 163, 184, 0.1);

    transition: all var(--transition-normal);

}



.cert-item:hover {

    transform: translateX(5px);

    box-shadow: var(--shadow-md);

}



.cert-item i {

    color: var(--electric-blue);

    font-size: 1.2rem;

}



.cert-details {

    display: flex;

    flex-direction: column;

    gap: 0.25rem;

    flex: 1;

}



.cert-name {

    font-size: 0.9rem;

    color: var(--secondary-slate);

    font-weight: var(--font-weight-medium);

}



.cert-year {

    font-size: 0.75rem;

    color: var(--primary-purple);

    font-weight: var(--font-weight-semibold);

    background: rgba(139, 69, 255, 0.1);

    padding: 0.25rem 0.5rem;

    border-radius: var(--radius-sm);

    align-self: flex-start;

}



/* Contact Section */

.contact-content {

    display: grid;

    grid-template-columns: 1fr 1fr;

    gap: 4rem;

    max-width: 1000px;

    margin: 0 auto;

}



.contact-info {

    display: flex;

    flex-direction: column;

    gap: 2rem;

}



.contact-item {

    display: flex;

    align-items: center;

    gap: 1rem;

    padding: 1.5rem;

    background: var(--bg-gray);

    border-radius: var(--radius-md);

    transition: all var(--transition-normal);

}



.contact-item:hover {

    transform: translateX(5px);

    background: var(--accent-gradient);

    color: var(--bg-white);

}



.contact-item i {

    font-size: 1.5rem;

    color: var(--electric-blue);

}



.contact-item:hover i {

    color: var(--bg-white);

}



.contact-item a {

    color: var(--primary-slate);

    text-decoration: none;

    font-weight: var(--font-weight-medium);

}



.contact-item:hover a {

    color: var(--bg-white);

}



.contact-form {

    background: var(--bg-gray);

    padding: 2rem;

    border-radius: var(--radius-lg);

}



.form-group {

    margin-bottom: 1.5rem;

}



.form-group input,

.form-group textarea {

    width: 100%;

    padding: 1rem;

    border: 1px solid rgba(148, 163, 184, 0.3);

    border-radius: var(--radius-md);

    font-family: inherit;

    font-size: 1rem;

    transition: border-color var(--transition-normal);

    background: var(--bg-white);

}



.form-group input:focus,

.form-group textarea:focus {

    outline: none;

    border-color: var(--electric-blue);

}



.form-group textarea {

    resize: vertical;

    min-height: 120px;

}



.privacy-note {

    font-size: 0.85rem;

    color: var(--light-slate);

    margin-top: 1rem;

    text-align: center;

}



/* Footer */

.footer {

    background: var(--primary-slate);

    color: var(--bg-white);

    padding: 2rem 0;

}



.footer-content {

    display: flex;

    justify-content: space-between;

    align-items: center;

    flex-wrap: wrap;

    gap: 1rem;

}



.footer-social {

    display: flex;

    gap: 1rem;

}



.social-link {

    display: flex;

    align-items: center;

    justify-content: center;

    width: 40px;

    height: 40px;

    background: var(--accent-gradient);

    color: var(--bg-white);

    border-radius: 50%;

    text-decoration: none;

    transition: all var(--transition-normal);

}



.social-link:hover {

    transform: translateY(-2px);

    box-shadow: var(--shadow-md);

}



.footer-text p {

    color: var(--light-slate);

    font-size: 0.9rem;

}



/* Responsive Design */

@media (max-width: 1024px) {

    .hero {

        padding: 1rem 0;

        padding-top: 5rem;

        min-height: auto;

    }

    

    .hero-content {

        gap: 2rem;

        margin-bottom: 1.5rem;

    }

    

    .metric-chips {

        grid-template-columns: repeat(4, 1fr);

    }

}



@media (max-width: 768px) {

    .hamburger {

        display: flex;

    }

    

    .nav-menu {

        position: fixed;

        left: -100%;

        top: 70px;

        flex-direction: column;

        background: var(--bg-white);

        width: 100%;

        text-align: center;

        transition: left var(--transition-normal);

        box-shadow: var(--shadow-lg);

        padding: 2rem 0;

        gap: 1rem;

    }

    

    .nav-menu.active {

        left: 0;

    }

    

    .hamburger.active .bar:nth-child(2) {

        opacity: 0;

    }

    

    .hamburger.active .bar:nth-child(1) {

        transform: translateY(7px) rotate(45deg);

    }

    

    .hamburger.active .bar:nth-child(3) {

        transform: translateY(-7px) rotate(-45deg);

    }

    

    .hero {

        padding: 1rem 0;

        padding-top: 5rem;

        min-height: auto;

    }

    

    .hero-content {

        grid-template-columns: 1fr;

        text-align: center;

        gap: 0.5rem;

        margin-bottom: 0.75rem;

    }

    

    .hero-image {

        margin: 2rem 0;

        padding: 0 2rem;

    }

    

    .headshot-carousel {

        width: 250px;

        height: 250px;

    }

    

    .image-credit {

        margin-top: 0.875rem;

    }

    

    .credit-text {

        font-size: 0.6875rem;

    }

    

    .hero-title {

        font-size: clamp(1.8rem, 6vw, 2.2rem);

        flex-direction: column;

        align-items: center;

        justify-content: center;

        margin-bottom: 0.25rem;

        line-height: 1;

    }

    

    .hero-title .typewriter-container {

        display: flex;

        justify-content: center;

        align-items: baseline;

        width: 100%;

    }

    

    .typewriter-container {

        min-width: 150px;

        /* Improve text measurement accuracy on mobile */

        -webkit-text-size-adjust: 100%;

        text-size-adjust: 100%;

    }

    

    .typewriter-text {

        height: 1em;

        min-height: 1em;

        margin-bottom: 0;

        vertical-align: top;

        /* Ensure consistent text rendering */

        -webkit-font-smoothing: antialiased;

        -moz-osx-font-smoothing: grayscale;

    }

    

    .typewriter-cursor {

        /* Improve cursor positioning on mobile */

        transform-origin: left center;

        will-change: transform;

        /* Ensure cursor is visible on mobile */

        display: inline-block !important;

        visibility: visible !important;

        opacity: 1 !important;

    }

    

    .static-text {

        margin-top: 0;

    }

    

    .hero-subtitle {

        font-size: 1rem;

        margin-bottom: 1.5rem;

    }

    

    .metric-chips {

        grid-template-columns: repeat(3, 1fr);

        padding: 1.5rem;

        gap: 1rem;

        margin-bottom: 2rem;

    }

    

    .about-content {

        grid-template-columns: 1fr;

        gap: 2rem;

    }

    

    .contact-content {

        grid-template-columns: 1fr;

        gap: 2rem;

    }

    

    .timeline-header {

        flex-direction: column;

        align-items: flex-start;

    }

    

    .experience-timeline::before {

        left: 15px;

    }

    

    .timeline-item {

        padding-left: 50px;

    }

    

    .timeline-marker {

        left: 5px;

    }

}



@media (max-width: 480px) {

    .hero {

        padding: 0.5rem 0;

        padding-top: 4.5rem;

    }

    

    .hero-content {

        gap: 0.25rem;

        margin-bottom: 0.5rem;

    }

    

    .hero-image {

        margin: 1.5rem 0;

        padding: 0 1.5rem;

    }

    

    .headshot-carousel {

        width: 200px;

        height: 200px;

    }

    

    .image-credit {

        margin-top: 0.75rem;

    }

    

    .credit-text {

        font-size: 0.625rem;

    }

    

    .hero-title {

        font-size: clamp(1.5rem, 7vw, 1.8rem);

        justify-content: center;

        margin-bottom: 0.25rem;

        line-height: 1;

    }

    

    .typewriter-container {

        min-width: 120px;

        /* Improve text measurement accuracy on small mobile */

        -webkit-text-size-adjust: 100%;

        text-size-adjust: 100%;

    }

    

    .typewriter-text {

        height: 1em;

        min-height: 1em;

        margin-bottom: 0;

        vertical-align: top;

        /* Ensure consistent text rendering */

        -webkit-font-smoothing: antialiased;

        -moz-osx-font-smoothing: grayscale;

    }

    

    .typewriter-cursor {

        /* Improve cursor positioning on small mobile */

        transform-origin: left center;

        will-change: transform;

        /* Ensure cursor is visible on small mobile */

        display: inline-block !important;

        visibility: visible !important;

        opacity: 1 !important;

    }

    

    .static-text {

        margin-top: 0;

    }

    

    .hero-subtitle {

        font-size: 0.9rem;

        margin-bottom: 1rem;

    }

    

    .metric-chips {

        grid-template-columns: repeat(2, 1fr);

        padding: 1rem;

        gap: 0.75rem;

        margin-bottom: 1.5rem;

    }

    

    .section-title {

        font-size: 2rem;

    }

    

    .btn {

        padding: 0.75rem 1.5rem;

        font-size: 0.9rem;

    }

    

    .hero-ctas {

        flex-direction: column;

        align-items: center;

        gap: 0.75rem;

    }

}



/* Animation Classes */

@keyframes fadeInUp {

    from {

        opacity: 0;

        transform: translateY(30px);

    }

    to {

        opacity: 1;

        transform: translateY(0);

    }

}



@keyframes fadeInLeft {

    from {

        opacity: 0;

        transform: translateX(-30px);

    }

    to {

        opacity: 1;

        transform: translateX(0);

    }

}



@keyframes fadeInRight {

    from {

        opacity: 0;

        transform: translateX(30px);

    }

    to {

        opacity: 1;

        transform: translateX(0);

    }

}



.fade-in-up {

    animation: fadeInUp 0.6s ease-out;

}



.fade-in-left {

    animation: fadeInLeft 0.6s ease-out;

}



.fade-in-right {

    animation: fadeInRight 0.6s ease-out;

}



/* Smooth scrolling */

html {

    scroll-behavior: smooth;

}



/* Loading animation */

.loading {

    opacity: 0;

    transform: translateY(30px);

    transition: all 0.6s ease;

}



.loading.loaded {

    opacity: 1;

    transform: translateY(0);

}



/* Print styles */

@media print {

    .navbar,

    .hero-ctas,

    .contact-form,

    .footer {

        display: none;

    }

    

    .hero {

        background: var(--bg-white) !important;

        -webkit-print-color-adjust: exact;

        print-color-adjust: exact;

    }

    

    section {

        break-inside: avoid;

        box-shadow: none;

        border: 1px solid #ccc;

    }

}