/**
 * Bengal SSG Default Theme
 * Resume Layout Styles
 *
 * Professional resume/CV layout with timeline, skills, and experience sections.
 * Uses semantic design tokens for consistent theming and dark mode support.
 */

/* ============================================
   RESUME CONTAINER
   ============================================ */

.resume {
    max-width: 850px;
    margin: 0 auto;
    padding: var(--space-8) var(--space-6);
    font-family: var(--font-sans);
    line-height: var(--leading-relaxed);
    color: var(--color-text-primary);
}

/* ============================================
   HEADER SECTION
   ============================================ */

.resume-header {
    text-align: center;
    padding-bottom: var(--space-8);
    border-block-end: 2px solid var(--color-border-light);
    margin-bottom: var(--space-8);
}

.resume-name {
    font-size: var(--text-4xl);
    font-weight: var(--weight-bold);
    margin: 0 0 var(--space-2) 0;
    color: var(--color-text-primary);
}

.resume-headline {
    font-size: var(--text-xl);
    color: var(--color-text-secondary);
    margin: 0 0 var(--space-4) 0;
}

.resume-contact {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--space-4);
    margin-top: var(--space-4);
    font-size: var(--text-sm);
}

.contact-item {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    color: var(--color-text-secondary);
    text-decoration: none;
    transition: color var(--transition-smooth) var(--ease-smooth),
                transform var(--transition-fast) var(--ease-out);
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
}

.contact-item:hover {
    color: var(--color-primary);
    transform: translate3d(0, -1px, 0);
}

@supports (color: color-mix(in srgb, white, black)) {
    .contact-item:hover {
        color: color-mix(in srgb, var(--color-primary) 90%, black);
    }
}

.contact-icon {
    font-size: var(--text-base);
}

/* ============================================
   SUMMARY SECTION
   ============================================ */

.resume-summary {
    background: var(--color-bg-secondary);
    padding: var(--space-6);
    border-radius: var(--radius-xl); /* Increased from --radius-lg (8px → 12px) */
    border-inline-start: 4px solid var(--color-primary); /* Changed from border-left */
    transition: transform var(--transition-smooth) var(--ease-smooth),
                box-shadow var(--transition-smooth) var(--ease-smooth);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    will-change: transform, box-shadow;
    /* Neumorphic shadow - refined depth */
    box-shadow:
        inset 0.5px 0.5px 1px rgba(255, 255, 255, 0.3),
        inset -0.5px -0.5px 1px rgba(0, 0, 0, 0.1),
        1px 1px 2px rgba(0, 0, 0, 0.08),
        -0.5px -0.5px 1px rgba(255, 255, 255, 0.2);
}

.resume-summary:hover {
    transform: translate3d(0, -2px, 0);
    /* Neumorphic hover - refined raised effect */
    box-shadow:
        inset 0.5px 0.5px 1.5px rgba(255, 255, 255, 0.4),
        inset -0.5px -0.5px 1.5px rgba(0, 0, 0, 0.12),
        2px 2px 6px rgba(0, 0, 0, 0.1),
        -1px -1px 3px rgba(255, 255, 255, 0.3);
}

@supports (color: color-mix(in srgb, white, black)) {
    .resume-summary:hover {
        border-inline-start-color: color-mix(in srgb, var(--color-primary) 90%, black);
    }
}

.summary-text {
    font-size: var(--text-lg);
    line-height: var(--leading-relaxed);
    margin: 0;
    color: var(--color-text-secondary);
}

.summary-content {
    margin-top: var(--space-4);
}

/* ============================================
   SECTION STYLES
   ============================================ */

.resume-section {
    margin: var(--space-10) 0;

}

.resume-section .section-title {
    font-size: var(--text-2xl);
    font-weight: var(--weight-bold);
    color: var(--color-text-primary);
    margin: 0 0 var(--space-6) 0;
    padding-bottom: var(--space-2);
    border-block-end: 2px solid var(--color-border-light); /* Changed from border-bottom */
    transition: border-color var(--transition-fast) var(--ease-out);
}

.resume-section .section-title:hover {
    border-block-end-color: var(--color-primary); /* Changed from border-bottom-color */
}

/* ============================================
   TIMELINE STYLES
   ============================================ */

.timeline {
    position: relative;
}

.timeline-item {
    margin-bottom: var(--space-8);
    padding: var(--space-5) var(--space-6);
    padding-inline-start: var(--space-6); /* Changed from padding-left */
    border-inline-start: 2px solid var(--color-border-light); /* Changed from border-left */
    border-radius: var(--radius-lg);
    background: var(--color-bg-secondary);
    position: relative;
    transition: transform var(--transition-fast) var(--ease-out),
                border-color var(--transition-fast) var(--ease-out),
                box-shadow var(--transition-fast) var(--ease-out);
    /* Subtle neumorphic shadow */
    box-shadow:
        inset 0.5px 0.5px 1px rgba(255, 255, 255, 0.2),
        inset -0.5px -0.5px 1px rgba(0, 0, 0, 0.08),
        1px 1px 2px rgba(0, 0, 0, 0.05);
}

.timeline-item:hover {
    border-inline-start-color: var(--color-primary); /* Changed from border-left-color */
    transform: translate3d(4px, 0, 0);
    /* Enhanced neumorphic shadow on hover */
    box-shadow:
        inset 0.5px 0.5px 1px rgba(255, 255, 255, 0.3),
        inset -0.5px -0.5px 1px rgba(0, 0, 0, 0.1),
        2px 2px 4px rgba(0, 0, 0, 0.08),
        -0.5px -0.5px 1px rgba(255, 255, 255, 0.2);
}

.timeline-item::before {
    content: '';
    position: absolute;
    inset-inline-start: -6px; /* Changed from left */
    inset-block-start: 4px; /* Changed from top */
    width: 10px;
    height: 10px;
    border-radius: var(--radius-full);
    background: var(--color-primary);
    border: 2px solid var(--color-bg-primary);
    box-shadow: 0 0 0 2px var(--color-primary);
    transition: transform var(--transition-smooth) var(--ease-smooth),
                background var(--transition-fast) var(--ease-out);
    will-change: transform;
}

.timeline-item:hover::before {
    transform: translate3d(0, 0, 0) scale(1.2);
}

@supports (color: color-mix(in srgb, white, black)) {
    .timeline-item:hover::before {
        background: color-mix(in srgb, var(--color-primary) 90%, black);
    }
}

.timeline-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: var(--space-4);
    margin-bottom: var(--space-3);
}

.timeline-title-group {
    flex: 1;
}

.timeline-title {
    font-size: var(--text-lg);
    font-weight: var(--weight-semibold);
    margin: 0 0 var(--space-1) 0;
    color: var(--color-text-primary);
}

.timeline-title a {
    color: var(--color-text-primary);
    text-decoration: none;
    transition: color var(--transition-smooth) var(--ease-smooth);
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
}

.timeline-title a:hover {
    color: var(--color-primary);
    text-decoration: underline;
}

@supports (color: color-mix(in srgb, white, black)) {
    .timeline-title a:hover {
        color: color-mix(in srgb, var(--color-primary) 90%, black);
    }
}

.timeline-company {
    font-size: var(--text-base);
    color: var(--color-text-tertiary);
    margin: 0;
    font-weight: var(--weight-medium);
}

.timeline-meta {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: var(--space-1);
    font-size: var(--text-sm);
    color: var(--color-text-tertiary);
    flex-shrink: 0;
}

.timeline-date {
    font-weight: var(--weight-medium);
    color: var(--color-text-secondary);
}

.timeline-location {
    color: var(--color-text-tertiary);
}

.timeline-description {
    margin: 0 0 var(--space-3) 0;
    color: var(--color-text-secondary);
    line-height: var(--leading-relaxed);
}

.timeline-highlights {
    margin: var(--space-3) 0;
    padding-inline-start: var(--space-5);
}

.timeline-highlights li {
    margin-bottom: var(--space-2);
    color: var(--color-text-secondary);
    line-height: var(--leading-relaxed);
}

.timeline-technologies {
    margin-top: var(--space-3);
    font-size: var(--text-sm);
}

.timeline-technologies--coursework {
    margin-top: calc(-1 * var(--space-4));
    padding-inline-start: var(--space-4);
}

.timeline-technologies strong {
    color: var(--color-text-secondary);
    margin-inline-end: var(--space-2);
}

.tech-tag {
    display: inline-block;
    padding: var(--space-1) var(--space-2);
    margin: var(--space-1) var(--space-1) var(--space-1) 0;
    background: var(--color-bg-code);
    color: var(--color-primary);
    border-radius: var(--radius-md); /* Increased from --radius-sm (2px → 4px) */
    font-size: var(--text-xs);
    font-weight: var(--weight-medium);
    border: 1px solid var(--color-border-light);
    transition: transform var(--transition-fast) var(--ease-out),
                box-shadow var(--transition-fast) var(--ease-out);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}

.tech-tag:hover {
    transform: translate3d(0, -1px, 0);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

/* ============================================
   SKILLS SECTION
   ============================================ */

.skills-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: var(--space-6);
}

.skill-group {
    background: var(--color-bg-secondary);
    padding: var(--space-5);
    border-radius: var(--radius-xl); /* Increased from --radius-lg (8px → 12px) */
    border: 1px solid var(--color-border-light);
    transition: transform var(--transition-smooth) var(--ease-smooth),
                box-shadow var(--transition-smooth) var(--ease-smooth);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    will-change: transform, box-shadow;
    /* Neumorphic shadow */
    box-shadow:
        inset 0.5px 0.5px 1px rgba(255, 255, 255, 0.3),
        inset -0.5px -0.5px 1px rgba(0, 0, 0, 0.1),
        1px 1px 2px rgba(0, 0, 0, 0.08),
        -0.5px -0.5px 1px rgba(255, 255, 255, 0.2);
}

.skill-group:hover {
    transform: translate3d(0, -2px, 0);
    /* Neumorphic hover - refined raised effect */
    box-shadow:
        inset 0.5px 0.5px 1.5px rgba(255, 255, 255, 0.4),
        inset -0.5px -0.5px 1.5px rgba(0, 0, 0, 0.12),
        2px 2px 6px rgba(0, 0, 0, 0.1),
        -1px -1px 3px rgba(255, 255, 255, 0.3);
}

@supports (color: color-mix(in srgb, white, black)) {
    .skill-card:hover {
        background: color-mix(in srgb, var(--color-bg-secondary) 98%, var(--color-primary));
    }
}

.skill-category {
    font-size: var(--text-base);
    font-weight: var(--weight-semibold);
    color: var(--color-text-primary);
    margin: 0 0 var(--space-3) 0;
}

.skill-tags {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.skill-tag {
    display: inline-block;
    padding: var(--space-1) var(--space-3);
    background: var(--color-bg-primary);
    color: var(--color-text-secondary);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    font-weight: var(--weight-medium);
    transition: transform var(--transition-fast) var(--ease-out),
                background var(--transition-fast) var(--ease-out),
                border-color var(--transition-fast) var(--ease-out),
                box-shadow var(--transition-fast) var(--ease-out);
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
    /* Subtle shadow for depth */
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}

.skill-tag:hover {
    transform: translate3d(0, -1px, 0);
    background: var(--color-bg-secondary);
    border-color: var(--color-primary);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

@supports (color: color-mix(in srgb, white, black)) {
    .skill-tag:hover {
        border-color: color-mix(in srgb, var(--color-primary) 90%, black);
    }
}

/* ============================================
   PROJECTS SECTION
   ============================================ */

.project-links {
    margin-top: var(--space-3);
    display: flex;
    gap: var(--space-4);
}

.project-link {
    display: inline-block;
    padding: var(--space-1) var(--space-3);
    background: var(--color-primary);
    color: var(--color-text-inverse);
    text-decoration: none;
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    font-weight: var(--weight-medium);
    transition: background var(--transition-smooth) var(--ease-smooth),
                transform var(--transition-smooth) var(--ease-smooth),
                box-shadow var(--transition-smooth) var(--ease-smooth);
    touch-action: manipulation;
    user-select: none;
    -webkit-tap-highlight-color: transparent;
    will-change: transform, background;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.08);
}

.project-link:hover {
    background: var(--color-primary-hover);
    transform: translate3d(0, -1px, 0);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15), 0 2px 4px rgba(0, 0, 0, 0.1);
}

@supports (color: color-mix(in srgb, white, black)) {
    .project-link:hover {
        background: color-mix(in srgb, var(--color-primary) 90%, black);
    }
}

.project-link:active {
    transform: translate3d(0, 0, 0);
}

/* ============================================
   CERTIFICATIONS SECTION
   ============================================ */

.certifications-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: var(--space-6);
}

.certification-item {
    background: var(--color-bg-secondary);
    padding: var(--space-5);
    border-radius: var(--radius-xl); /* Increased from --radius-lg (8px → 12px) */
    border: 1px solid var(--color-border-light);
    transition: transform var(--transition-smooth) var(--ease-smooth),
                box-shadow var(--transition-smooth) var(--ease-smooth);
    /* Neumorphic shadow */
    box-shadow:
        inset 0.5px 0.5px 1px rgba(255, 255, 255, 0.3),
        inset -0.5px -0.5px 1px rgba(0, 0, 0, 0.1),
        1px 1px 2px rgba(0, 0, 0, 0.08),
        -0.5px -0.5px 1px rgba(255, 255, 255, 0.2);
}

.certification-item:hover {
    transform: translate3d(0, -2px, 0);
    /* Neumorphic hover */
    box-shadow:
        inset 0.5px 0.5px 1.5px rgba(255, 255, 255, 0.4),
        inset -0.5px -0.5px 1.5px rgba(0, 0, 0, 0.12),
        2px 2px 6px rgba(0, 0, 0, 0.1),
        -1px -1px 3px rgba(255, 255, 255, 0.3);
}

.certification-name {
    font-size: var(--text-base);
    font-weight: var(--weight-semibold);
    margin: 0 0 var(--space-2) 0;
    color: var(--color-text-primary);
}

.certification-issuer {
    font-size: var(--text-sm);
    color: var(--color-text-tertiary);
    margin: 0 0 var(--space-1) 0;
}

.certification-date {
    font-size: var(--text-sm);
    color: var(--color-text-muted);
    margin: 0 0 var(--space-3) 0;
}

.certification-link {
    display: inline-block;
    color: var(--color-primary);
    text-decoration: none;
    font-size: var(--text-sm);
    font-weight: var(--weight-medium);
    transition: color var(--transition-smooth) var(--ease-smooth),
                transform var(--transition-fast) var(--ease-out);
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
}

.certification-link:hover {
    color: var(--color-primary-hover);
    text-decoration: underline;
    transform: translate3d(2px, 0, 0);
}

@supports (color: color-mix(in srgb, white, black)) {
    .certification-link:hover {
        color: color-mix(in srgb, var(--color-primary) 90%, black);
    }
}

/* ============================================
   AWARDS SECTION
   ============================================ */

.awards-list {
    display: grid;
    gap: var(--space-5);
}

.award-item {
    background: var(--color-warning-bg);
    padding: var(--space-5);
    border-radius: var(--radius-xl); /* Increased from --radius-lg (8px → 12px) */
    border-inline-start: 4px solid var(--color-warning); /* Changed from border-left */
    transition: transform var(--transition-smooth) var(--ease-smooth),
                box-shadow var(--transition-smooth) var(--ease-smooth);
    will-change: transform, box-shadow;
    /* Neumorphic shadow */
    box-shadow:
        inset 0.5px 0.5px 1px rgba(255, 255, 255, 0.3),
        inset -0.5px -0.5px 1px rgba(0, 0, 0, 0.1),
        1px 1px 2px rgba(0, 0, 0, 0.08),
        -0.5px -0.5px 1px rgba(255, 255, 255, 0.2);
}

.award-item:hover {
    transform: translate3d(0, -2px, 0);
    /* Neumorphic hover */
    box-shadow:
        inset 0.5px 0.5px 1.5px rgba(255, 255, 255, 0.4),
        inset -0.5px -0.5px 1.5px rgba(0, 0, 0, 0.12),
        2px 2px 6px rgba(0, 0, 0, 0.1),
        -1px -1px 3px rgba(255, 255, 255, 0.3);
}

@supports (color: color-mix(in srgb, white, black)) {
    .award-item:hover {
        border-inline-start-color: color-mix(in srgb, var(--color-warning) 90%, black);
    }
}

.award-name {
    font-size: var(--text-base);
    font-weight: var(--weight-semibold);
    margin: 0 0 var(--space-2) 0;
    color: var(--color-text-primary);
}

.award-issuer {
    font-size: var(--text-sm);
    color: var(--color-text-tertiary);
    margin: 0 0 var(--space-1) 0;
}

.award-date {
    font-size: var(--text-sm);
    color: var(--color-text-muted);
    margin: 0 0 var(--space-2) 0;
}

.award-description {
    margin: var(--space-2) 0 0 0;
    color: var(--color-text-secondary);
    font-size: var(--text-sm);
}

/* ============================================
   LANGUAGES SECTION
   ============================================ */

.languages-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: var(--space-4);
}

.language-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--space-3) var(--space-4);
    background: var(--color-bg-secondary);
    border-radius: var(--radius-xl); /* Increased from --radius-lg (8px → 12px) */
    border: 1px solid var(--color-border-light);
    transition: transform var(--transition-fast) var(--ease-out),
                box-shadow var(--transition-fast) var(--ease-out);
    /* Subtle shadow */
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}

.language-item:hover {
    transform: translate3d(0, -1px, 0);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.language-name {
    font-weight: var(--weight-semibold);
    color: var(--color-text-primary);
}

.language-level {
    font-size: var(--text-sm);
    color: var(--color-text-tertiary);
}

/* ============================================
   RESPONSIVE DESIGN
   ============================================ */

@media (max-width: 768px) {
    .resume {
        padding: var(--space-4);
    }

    .resume-name {
        font-size: var(--text-3xl);
    }

    .resume-headline {
        font-size: var(--text-lg);
    }

    .resume-contact {
        flex-direction: column;
        align-items: center;
        gap: var(--space-2);
    }

    .timeline-header {
        flex-direction: column;
        gap: var(--space-2);
    }

    .timeline-meta {
        align-items: flex-start;
    }

    .skills-grid,
    .certifications-list,
    .languages-list {
        grid-template-columns: 1fr;
    }
}

/* ============================================
   PRINT STYLES
   ============================================ */

@media print {
    .resume {
        max-width: 100%;
        padding: 0;
        font-size: var(--text-body);
    }

    .resume-section {
        page-break-inside: avoid;
    }

    .timeline-item {
        page-break-inside: avoid;
    }

    .tech-tag,
    .skill-tag {
        border: 1px solid var(--color-border);
        print-color-adjust: exact;
        -webkit-print-color-adjust: exact;
    }

    .project-link,
    .certification-link {
        color: var(--color-text-primary) !important;
        background: transparent !important;
        border: 1px solid var(--color-border);
    }
}

/* ============================================
   DARK MODE
   ============================================ */

/* Manual theme toggle support */
[data-theme="dark"] .timeline-item::before {
    border-color: var(--color-bg-primary);
    box-shadow: 0 0 0 2px var(--color-primary);
}

/* System preference support */
@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) .timeline-item::before {
        border-color: var(--color-bg-primary);
        box-shadow: 0 0 0 2px var(--color-primary);
    }
}
