/* ============================================================
   CV TEMPLATES - SHARED BASE
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;0,900;1,400&family=Source+Serif+4:wght@300;400;600&display=swap');
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@300;400;500;600;700&family=DM+Serif+Display:ital@0;1&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Barlow:ital,wght@0,300;0,400;0,600;0,800;1,400&family=Barlow+Condensed:wght@500;700;800&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;0,700;1,300;1,400;1,500&family=Jost:wght@200;300;400;500;600&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Libre+Baskerville:ital,wght@0,400;0,700;1,400&family=Outfit:wght@200;300;400;500;600;700;800&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Syne:wght@400;500;600;700;800&family=Syne+Mono&family=Inter:wght@300;400;500&display=swap');

.cv-page {
    padding: 40px;
    box-sizing: border-box;
    line-height: 1.5;
    font-size: 11pt;
}

.cv-page h1 {
    margin: 0 0 4px 0;
}

.cv-page h2 {
    margin: 18px 0 8px 0;
    font-size: 13pt;
}

.cv-page h3 {
    margin: 0 0 2px 0;
    font-size: 11pt;
}

.cv-page p, .cv-page li {
    margin: 0;
    font-size: 10pt;
}

.cv-page ul {
    margin: 4px 0;
    padding-left: 18px;
}

.cv-page .cv-photo {
    width: 90px;
    height: 90px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
}

.cv-page .section-entries {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.cv-page .entry-dates {
    color: #6b7280;
    font-size: 9pt;
}

.cv-page .skill-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.cv-page .skill-chip {
    display: block;
    padding: 6px 14px;
    border-radius: 9999px;
    font-size: 9pt;
    font-weight: 600;
    line-height: 1.4;
    white-space: nowrap;
}

.cv-page .contact-info {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    font-size: 9pt;
    color: #6b7280;
}

/* ============================================================
   TEMPLATE 1: MODERN
   Single column, indigo accent, clean and minimal
   ============================================================ */
.cv-modern {
    font-family: 'Inter', sans-serif;
}

.cv-modern h1 {
    font-size: 22pt;
    font-weight: 800;
    color: #312e81;
    letter-spacing: -0.02em;
}

.cv-modern .cv-subtitle {
    color: #6366f1;
    font-size: 11pt;
    font-weight: 600;
    margin-bottom: 8px;
}

.cv-modern h2 {
    color: #312e81;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-size: 10pt;
    font-weight: 800;
    border-bottom: 2px solid #6366f1;
    padding-bottom: 4px;
}

.cv-modern h3 {
    font-weight: 700;
    color: #1e1b4b;
}

.cv-modern .skill-chip {
    background: #eef2ff;
    color: #4338ca;
}

.cv-modern .cv-header {
    display: flex;
    align-items: center;
    gap: 20px;
    margin-bottom: 16px;
    padding-bottom: 16px;
    border-bottom: 1px solid #e5e7eb;
}

.cv-modern .cv-photo {
    border: 3px solid #6366f1;
}

/* ============================================================
   TEMPLATE 2: CLASSIC
   Two column with dark sidebar, traditional look
   ============================================================ */
.cv-classic {
    font-family: 'Inter', serif;
    padding: 0 !important;
    display: flex;
    min-height: 297mm;
}

.cv-classic .cv-sidebar {
    width: 35%;
    background: #1e293b;
    color: #e2e8f0;
    padding: 32px 24px;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.cv-classic .cv-main {
    width: 65%;
    padding: 32px 28px;
}

.cv-classic .cv-sidebar h1 {
    font-size: 18pt;
    font-weight: 800;
    color: #ffffff;
    line-height: 1.2;
}

.cv-classic .cv-sidebar .cv-subtitle {
    color: #94a3b8;
    font-size: 10pt;
    font-weight: 500;
    margin-bottom: 4px;
}

.cv-classic .cv-sidebar .contact-info {
    flex-direction: column;
    gap: 6px;
    color: #cbd5e1;
    font-size: 9pt;
}

.cv-classic .cv-sidebar h2 {
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-size: 9pt;
    font-weight: 700;
    border-bottom: 1px solid rgba(148, 163, 184, 0.3);
    padding-bottom: 4px;
    margin-top: 8px;
}

.cv-classic .cv-sidebar .skill-chip {
    background: rgba(255, 255, 255, 0.1);
    color: #e2e8f0;
}

.cv-classic .cv-sidebar .cv-photo {
    width: 100px;
    height: 100px;
    border: 3px solid rgba(255, 255, 255, 0.2);
    margin: 0 auto;
}

.cv-classic .cv-main h2 {
    color: #1e293b;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: 11pt;
    font-weight: 800;
    border-bottom: 2px solid #1e293b;
    padding-bottom: 4px;
}

.cv-classic .cv-main h3 {
    color: #1e293b;
    font-weight: 700;
}

.cv-classic .cv-main .skill-chip {
    background: #f1f5f9;
    color: #334155;
}

/* ============================================================
   TEMPLATE 3: MINIMAL
   Ultra clean, single column, thin lines, elegant
   ============================================================ */
.cv-minimal {
    font-family: 'Inter', sans-serif;
}

.cv-minimal h1 {
    font-size: 20pt;
    font-weight: 300;
    color: #111827;
    letter-spacing: 0.15em;
    text-transform: uppercase;
}

.cv-minimal .cv-subtitle {
    color: #6b7280;
    font-size: 10pt;
    font-weight: 400;
    letter-spacing: 0.05em;
    margin-bottom: 8px;
}

.cv-minimal .cv-header {
    text-align: center;
    margin-bottom: 20px;
    padding-bottom: 16px;
    border-bottom: 1px solid #d1d5db;
}

.cv-minimal .cv-photo {
    margin: 0 auto 12px;
    border: 2px solid #d1d5db;
}

.cv-minimal .contact-info {
    justify-content: center;
}

.cv-minimal h2 {
    color: #374151;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    font-size: 9pt;
    font-weight: 600;
    border-bottom: 1px solid #d1d5db;
    padding-bottom: 4px;
}

.cv-minimal h3 {
    font-weight: 600;
    color: #111827;
}

.cv-minimal .skill-chip {
    background: transparent;
    border: 1px solid #d1d5db;
    color: #374151;
}

/* ============================================================
   TEMPLATE 4: EXECUTIVE
   Professional, structured 2-column, serif headers
   ============================================================ */
.cv-executive {
    font-family: 'Inter', sans-serif;
    padding: 0 !important;
    display: flex;
    flex-direction: column;
    min-height: 297mm;
}

.cv-executive .cv-header {
    background: #0f172a;
    color: white;
    padding: 40px;
    display: flex;
    align-items: center;
    gap: 30px;
}

.cv-executive .cv-header h1 {
    font-family: 'Inter', serif;
    font-size: 26pt;
    font-weight: 700;
    margin: 0;
    letter-spacing: 0.02em;
}

.cv-executive .cv-subtitle {
    color: #fbbf24; /* Professional gold accent */
    font-size: 12pt;
    font-weight: 600;
    margin-top: 4px;
    margin-bottom: 12px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.cv-executive .contact-info {
    color: #cbd5e1;
    font-size: 9.5pt;
}

.cv-executive .cv-photo {
    width: 110px;
    height: 110px;
    border: 4px solid #334155;
}

.cv-executive .cv-body {
    display: flex;
    flex: 1;
}

.cv-executive .cv-main {
    width: 65%;
    padding: 30px 40px;
    background: white;
}

.cv-executive .cv-sidebar {
    width: 35%;
    padding: 30px 30px;
    background: #f8fafc;
    border-left: 1px solid #e2e8f0;
}

.cv-executive h2 {
    font-family: 'Inter', serif;
    color: #0f172a;
    font-size: 14pt;
    border-bottom: 2px solid #cbd5e1;
    padding-bottom: 6px;
    margin-bottom: 14px;
    margin-top: 0;
}

.cv-executive .cv-main h2 {
    margin-top: 24px;
}

.cv-executive .cv-main h2:first-child {
    margin-top: 0;
}

.cv-executive h3 {
    color: #1e293b;
    font-weight: 700;
    font-size: 11pt;
}

.cv-executive .entry-dates {
    color: #64748b;
    font-family: 'Inter', sans-serif;
}

.cv-executive .skill-chip {
    background: transparent;
    border: 1px solid #94a3b8;
    color: #334155;
    border-radius: 4px; /* Squarer tags */
}

/* ============================================================
   TEMPLATE 5: CREATIVE
   Bold headers, pink gradient accents, masonry-style feel
   ============================================================ */
.cv-creative {
    font-family: 'Inter', sans-serif;
    color: #1f2937;
}

.cv-creative .cv-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    border-bottom: 4px solid #ec4899;
    padding-bottom: 24px;
    margin-bottom: 24px;
}

.cv-creative h1 {
    font-size: 28pt;
    font-weight: 900;
    color: #111827;
    margin: 0 0 8px 0;
    letter-spacing: -0.03em;
    line-height: 1;
}

.cv-creative .cv-subtitle {
    display: inline-block;
    background: #ec4899;
    color: white;
    padding: 4px 12px;
    border-radius: 999px;
    font-size: 10pt;
    font-weight: 700;
    margin-bottom: 16px;
}

.cv-creative .cv-photo {
    width: 120px;
    height: 120px;
    border-radius: 24px; /* Squircle */
    border: none;
    box-shadow: 4px 4px 0px #ec4899;
}

.cv-creative .contact-info {
    color: #4b5563;
    font-weight: 500;
}

.cv-creative h2 {
    font-size: 14pt;
    font-weight: 800;
    color: #be185d;
    text-transform: uppercase;
    margin-top: 24px;
    margin-bottom: 12px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.cv-creative h2::before {
    content: '';
    display: block;
    width: 12px;
    height: 12px;
    background: linear-gradient(135deg, #f472b6, #db2777);
    border-radius: 3px;
}

.cv-creative h3 {
    font-size: 12pt;
    font-weight: 800;
    color: #111827;
}

.cv-creative .entry-dates {
    color: #db2777;
    font-weight: 600;
    font-size: 8.5pt;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 4px;
}

.cv-creative .skill-chips {
    gap: 8px;
}

.cv-creative .skill-chip {
    background: #fdf2f8;
    color: #be185d;
    border: 1px solid #fbcfe8;
    border-radius: 8px;
}

/* ============================================================
   TEMPLATE 6: DEVELOPER
   Terminal/Code Editor theme, monospace accents, dark mode look
   ============================================================ */
.cv-developer {
    font-family: 'Inter', sans-serif;
    background-color: #0f172a; /* Slate 900 */
    color: #cbd5e1; /* Slate 300 */
}

.cv-developer h1 {
    font-family: monospace;
    font-size: 24pt;
    font-weight: 700;
    color: #10b981; /* Emerald 500 */
    letter-spacing: -0.02em;
    display: flex;
    align-items: center;
    gap: 4px;
}

.cv-developer .prompt-symbol {
    color: #059669; /* Emerald 600 */
    margin-right: 4px;
}

.cv-developer .cursor-blink {
    background-color: #10b981;
    width: 12px;
    height: 1em;
    display: inline-block;
    vertical-align: text-bottom;
    animation: blink 1s step-end infinite;
}

@keyframes blink {
    0%, 100% { opacity: 1; }
    50% { opacity: 0; }
}

.cv-developer .cv-subtitle {
    font-family: monospace;
    color: #6ee7b7; /* Emerald 300 */
    font-size: 11pt;
    margin-bottom: 8px;
    margin-left: 20px; /* Align with text after prompt */
}

.cv-developer .contact-info {
    color: #64748b; /* Slate 500 */
    font-family: monospace;
    margin-left: 20px;
}

.cv-developer .cv-header {
    display: flex;
    align-items: center;
    gap: 24px;
    padding-bottom: 20px;
    margin-bottom: 20px;
    border-bottom: 1px dashed #334155; /* Slate 700 */
}

.cv-developer .cv-photo {
    border: 2px solid #10b981;
    border-radius: 8px; /* Slightly squared */
}

.cv-developer h2 {
    font-family: monospace;
    color: #38bdf8; /* Sky 400 */
    font-size: 11pt;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    margin-top: 24px;
    margin-bottom: 12px;
}

.cv-developer h2::before {
    content: "/* ";
    color: #475569;
}
.cv-developer h2::after {
    content: " */";
    color: #475569;
}

.cv-developer h3 {
    color: #f8fafc; /* Slate 50 */
    font-weight: 600;
}

.cv-developer .entry-dates {
    color: #94a3b8; /* Slate 400 */
    font-family: monospace;
    font-size: 8.5pt;
    margin-bottom: 4px;
}

.cv-developer p {
    color: #94a3b8;
}

.cv-developer .skill-chip {
    background: #022c22; /* Emerald 950 */
    color: #34d399; /* Emerald 400 */
    border: 1px solid #065f46; /* Emerald 800 */
    border-radius: 4px;
    font-family: monospace;
}

/* ============================================================
   TEMPLATE 7: ELEGANT
   High-end, sophisticated serif typography, gold accents
   ============================================================ */
.cv-elegant {
    font-family: 'Inter', sans-serif;
    color: #1f2937;
}

.cv-elegant .cv-header {
    text-align: center;
    margin-bottom: 24px;
    padding-bottom: 24px;
    border-bottom: 1px solid #d4af37; /* Metallic Gold */
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
}

.cv-elegant .cv-photo {
    width: 100px;
    height: 100px;
    border: 1px solid #d4af37;
    padding: 3px;
    border-radius: 50%;
}

.cv-elegant h1 {
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 26pt;
    font-weight: normal;
    color: #111827;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    margin: 0;
}

.cv-elegant .cv-subtitle {
    color: #4b5563;
    font-size: 10pt;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    margin-top: 6px;
    margin-bottom: 12px;
}

.cv-elegant .contact-wrapper {
    display: flex;
    justify-content: center;
}

.cv-elegant .contact-info {
    color: #6b7280;
    font-size: 8.5pt;
}

.cv-elegant .cv-body-grid {
    display: flex;
    gap: 40px;
}

.cv-elegant .cv-col-left {
    width: 60%;
}

.cv-elegant .cv-col-right {
    width: 40%;
}

.cv-elegant h2 {
    font-family: Georgia, 'Times New Roman', serif;
    color: #d4af37;
    font-size: 11pt;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    border-bottom: 1px solid #e5e7eb;
    padding-bottom: 6px;
    margin-top: 0;
    margin-bottom: 16px;
    font-weight: normal;
}

.cv-elegant .cv-col-left h2:not(:first-child),
.cv-elegant .cv-col-right h2:not(:first-child) {
    margin-top: 24px;
}

.cv-elegant h3 {
    font-weight: 700;
    color: #111827;
    font-size: 10.5pt;
}

.cv-elegant .entry-dates {
    color: #6b7280;
    font-style: italic;
    font-family: Georgia, 'Times New Roman', serif;
    margin-bottom: 4px;
}

.cv-elegant p {
    color: #374151;
    line-height: 1.6;
}

.cv-elegant .skill-chips {
    gap: 8px;
}

.cv-elegant .skill-chip {
    background: transparent;
    color: #111827;
    border: 1px solid #d1d5db;
    border-radius: 0;
    font-weight: 500;
    text-transform: uppercase;
    font-size: 8pt;
    letter-spacing: 0.05em;
    padding: 4px 10px;
}

/* ============================================================
   TEMPLATE 8: TIMELINE
   Modern layout with a prominent left border simulating a timeline
   ============================================================ */
.cv-timeline {
    font-family: 'Inter', sans-serif;
    color: #1e293b;
}

.cv-timeline .cv-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    border-bottom: 3px solid #2563eb;
    padding-bottom: 20px;
    margin-bottom: 24px;
}

.cv-timeline .cv-photo {
    width: 100px;
    height: 100px;
    border-radius: 8px;
    border: 2px solid #2563eb;
    box-shadow: 4px 4px 0px #bfdbfe;
}

.cv-timeline h1 {
    font-size: 26pt;
    font-weight: 800;
    color: #1e293b;
    margin: 0 0 4px 0;
}

.cv-timeline .cv-subtitle {
    color: #2563eb;
    font-weight: 700;
    font-size: 11pt;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 12px;
}

.cv-timeline .contact-info {
    color: #64748b;
}

.cv-timeline .cv-body-wrapper {
    display: flex;
    gap: 36px;
}

.cv-timeline .cv-timeline-left {
    width: 30%;
}

.cv-timeline .cv-timeline-right {
    width: 70%;
    border-left: 3px solid #e2e8f0;
    padding-left: 28px;
}

.cv-timeline h2 {
    color: #1e293b;
    font-size: 12pt;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-top: 24px;
    margin-bottom: 16px;
}

.cv-timeline .cv-timeline-left h2 {
    color: #2563eb;
    border-bottom: 2px solid #e2e8f0;
    padding-bottom: 6px;
}

.cv-timeline .cv-timeline-right h2 {
    position: relative;
    color: #2563eb;
}

.cv-timeline .cv-timeline-right h2::before {
    content: '';
    position: absolute;
    left: -37.5px; /* 28px padding + 1.5px border half + 8px dot half */
    top: 50%;
    transform: translateY(-50%);
    width: 16px;
    height: 16px;
    background: #2563eb;
    border-radius: 50%;
    border: 4px solid white;
}

.cv-timeline h3 {
    font-size: 11pt;
    font-weight: 700;
}

.cv-timeline .entry-dates {
    color: #64748b;
    font-weight: 500;
    margin-bottom: 4px;
}

.cv-timeline .skill-chip {
    background: #eff6ff;
    color: #1d4ed8;
    border: 1px solid #bfdbfe;
}


/* ============================================================
   TEMPLATE 9: BOLD
   Striking high-contrast header, split body layout
   ============================================================ */
.cv-bold {
    font-family: 'Inter', sans-serif;
    padding: 0 !important;
    display: flex;
    flex-direction: column;
    min-height: 297mm;
}

.cv-bold .cv-header {
    background: #111827;
    color: white;
    padding: 40px;
}

.cv-bold .header-inner {
    display: flex;
    align-items: center;
    gap: 28px;
    margin-bottom: 20px;
}

.cv-bold .cv-photo {
    width: 120px;
    height: 120px;
    border-radius: 50%;
    border: 4px solid #f97316;
}

.cv-bold h1 {
    color: white;
    font-size: 32pt;
    font-weight: 900;
    letter-spacing: -0.03em;
    line-height: 1.1;
    margin: 0 0 6px 0;
}

.cv-bold .cv-subtitle {
    color: #f97316;
    font-size: 12pt;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    margin-bottom: 12px;
}

.cv-bold .contact-info {
    color: #9ca3af;
    font-size: 9.5pt;
}

.cv-bold .header-summary {
    border-top: 1px solid #374151;
    padding-top: 20px;
    color: #d1d5db;
    font-size: 10pt;
    line-height: 1.6;
}

.cv-bold .header-summary h2 {
    display: none; /* Hide 'Summary' heading in the dark block */
}

.cv-bold .cv-body-grid {
    display: flex;
    flex: 1;
}

.cv-bold .cv-col-narrow {
    width: 35%;
    background: #f3f4f6;
    padding: 32px;
}

.cv-bold .cv-col-wide {
    width: 65%;
    padding: 32px;
    background: white;
}

.cv-bold h2 {
    color: #111827;
    font-size: 13pt;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-top: 28px;
    margin-bottom: 16px;
    border-bottom: 2px solid #e5e7eb;
    padding-bottom: 6px;
}

.cv-bold .cv-col-narrow h2 {
    color: #374151;
    border-bottom-color: #d1d5db;
}

.cv-bold .cv-col-wide h2:first-child,
.cv-bold .cv-col-narrow h2:first-child {
    margin-top: 0;
}

.cv-bold h3 {
    font-size: 11pt;
    font-weight: 800;
    color: #111827;
}

.cv-bold .entry-dates {
    color: #f97316;
    font-weight: 600;
    font-size: 8.5pt;
    text-transform: uppercase;
}

.cv-bold .skill-chip {
    background: white;
    color: #111827;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    box-shadow: 2px 2px 0px #d1d5db;
}

/* ============================================================
   TEMPLATE 10: PROFESSIONAL
   Classic, super clean corporate layout, muted blues
   ============================================================ */
.cv-professional {
    font-family: 'Inter', sans-serif;
    color: #334155;
}

.cv-professional .cv-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 4px solid #1e293b;
    padding-bottom: 20px;
    margin-bottom: 16px;
}

.cv-professional .cv-photo {
    width: 100px;
    height: 100px;
    border-radius: 8px;
    border: 1px solid #cbd5e1;
}

.cv-professional h1 {
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 28pt;
    font-weight: bold;
    color: #0f172a;
    margin: 0;
    letter-spacing: -0.01em;
}

.cv-professional .cv-subtitle {
    color: #475569;
    font-weight: 600;
    font-size: 12pt;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    margin-top: 4px;
}

.cv-professional .contact-bar {
    background: #f8fafc;
    padding: 10px 16px;
    border: 1px solid #e2e8f0;
    border-left: 4px solid #3b82f6;
    margin-bottom: 28px;
    display: flex;
    justify-content: center;
}

.cv-professional .contact-info {
    color: #475569;
    font-size: 9pt;
    font-weight: 500;
}

.cv-professional .contact-info span {
    display: flex;
    align-items: center;
}

.cv-professional .cv-body-grid {
    display: flex;
    gap: 40px;
}

.cv-professional .cv-col-left {
    width: 65%;
}

.cv-professional .cv-col-right {
    width: 35%;
}

.cv-professional h2 {
    color: #1e293b;
    font-size: 11pt;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    border-bottom: 2px solid #e2e8f0;
    padding-bottom: 6px;
    margin-top: 24px;
    margin-bottom: 16px;
}

.cv-professional .cv-col-left h2:first-child,
.cv-professional .cv-col-right h2:first-child {
    margin-top: 0;
}

.cv-professional h3 {
    font-size: 11pt;
    color: #0f172a;
    font-weight: 700;
}

.cv-professional .entry-dates {
    color: #64748b;
    font-weight: 500;
    margin-bottom: 6px;
}

.cv-professional p {
    color: #475569;
}

.cv-professional .skill-chip {
    background: #f1f5f9;
    color: #334155;
    border: 1px solid #cbd5e1;
    border-radius: 4px;
}

/* ============================================================
   TEMPLATE 11: COMPACT
   Modern, space-efficient 2-column layout with teal accents
   ============================================================ */
.cv-compact {
    font-family: 'Inter', sans-serif;
    color: #334155;
    padding: 0 !important;
    display: flex;
    flex-direction: column;
    min-height: 297mm;
    background-color: #f8fafc;
}

.cv-compact .cv-header {
    background: #0d9488;
    color: white;
    padding: 30px 40px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 30px;
}

.cv-compact .header-content {
    flex: 1;
}

.cv-compact h1 {
    font-size: 26pt;
    font-weight: 800;
    margin: 0;
    letter-spacing: -0.02em;
    color: white;
}

.cv-compact .cv-subtitle {
    font-size: 11pt;
    font-weight: 600;
    color: #ccfbf1;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-top: 4px;
    margin-bottom: 12px;
}

.cv-compact .contact-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 10px;
}

.cv-compact .contact-pill {
    background: rgba(255, 255, 255, 0.15);
    padding: 4px 10px;
    border-radius: 4px;
    font-size: 8.5pt;
    font-weight: 500;
    color: #f0fdfa;
    border: 1px solid rgba(255, 255, 255, 0.2);
}

.cv-compact .header-photo {
    flex-shrink: 0;
}

.cv-compact .cv-photo {
    width: 100px;
    height: 100px;
    border-radius: 50%;
    border: 3px solid #5eead4;
    object-fit: cover;
}

.cv-compact .cv-body-grid {
    display: flex;
    flex: 1;
}

.cv-compact .cv-col-sidebar {
    width: 33%;
    background: #f0fdfa;
    padding: 24px 30px;
    border-right: 1px solid #ccfbf1;
}

.cv-compact .cv-col-main {
    width: 67%;
    background: white;
    padding: 24px 30px;
}

.cv-compact h2 {
    color: #0f766e;
    font-size: 11pt;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-bottom: 2px solid #5eead4;
    padding-bottom: 4px;
    margin-top: 20px;
    margin-bottom: 12px;
}

.cv-compact .cv-col-main h2 {
    border-bottom-color: #99f6e4;
}

.cv-compact .cv-col-main h2:first-child,
.cv-compact .cv-col-sidebar h2:first-child {
    margin-top: 0;
}

.cv-compact h3 {
    font-size: 10.5pt;
    font-weight: 700;
    color: #1e293b;
    margin-bottom: 2px;
}

.cv-compact .entry-dates {
    color: #0d9488;
    font-size: 8.5pt;
    font-weight: 600;
    margin-bottom: 4px;
}

.cv-compact p {
    color: #475569;
    font-size: 9.5pt;
    line-height: 1.5;
}

.cv-compact .skill-chips {
    gap: 6px;
}

.cv-compact .skill-chip {
    background: white;
    color: #0d9488;
    border: 1px solid #5eead4;
    border-radius: 4px;
    font-size: 8.5pt;
    padding: 4px 8px;
}

.cv-compact .section-entries > div {
    margin-bottom: 12px;
}

/* ============================================================
   TEMPLATE: NOIR
   Editorial newspaper-inspired, rotated sidebar label,
   strong serif typography, black & white with ink accents
   ============================================================ */
.cv-noir {
    font-family: 'Source Serif 4', Georgia, serif;
    background: #fff;
    color: #111;
    padding: 0 !important;
    display: flex;
    min-height: 297mm;
}

.cv-noir .cv-left-strip {
    width: 48px;
    background: #111;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 32px 0;
    flex-shrink: 0;
}

.cv-noir .cv-strip-label {
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    font-family: 'Playfair Display', serif;
    color: #fff;
    font-size: 8pt;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    opacity: 0.7;
}

.cv-noir .cv-strip-dots {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-top: auto;
    padding-bottom: 16px;
}

.cv-noir .cv-strip-dot {
    width: 6px;
    height: 6px;
    background: #fff;
    border-radius: 50%;
    opacity: 0.4;
}

.cv-noir .cv-content {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.cv-noir .cv-header {
    padding: 40px 40px 28px 32px;
    border-bottom: 3px solid #111;
    position: relative;
}

.cv-noir .cv-header-top {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 16px;
}

.cv-noir .cv-header-left {
    flex: 1;
}

.cv-noir h1 {
    font-family: 'Playfair Display', serif;
    font-size: 38pt;
    font-weight: 900;
    color: #000;
    line-height: 0.95;
    letter-spacing: -0.03em;
    margin: 0 0 10px 0;
}

.cv-noir .cv-subtitle {
    font-family: 'Source Serif 4', serif;
    font-size: 11pt;
    font-weight: 300;
    color: #555;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    margin-bottom: 12px;
    border-left: 3px solid #111;
    padding-left: 10px;
}

.cv-noir .cv-photo {
    width: 100px;
    height: 100px;
    border-radius: 0;
    border: 2px solid #111;
    object-fit: cover;
    flex-shrink: 0;
    filter: grayscale(40%);
    margin-left: 24px;
}

.cv-noir .contact-info {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 16px;
    font-size: 8.5pt;
    color: #444;
    font-family: 'Source Serif 4', serif;
    font-weight: 300;
}

.cv-noir .cv-divider-rule {
    height: 1px;
    background: #ccc;
    margin: 0;
}

.cv-noir .cv-body {
    display: flex;
    flex: 1;
    padding: 0;
}

.cv-noir .cv-main {
    flex: 1;
    padding: 28px 32px;
    border-right: 1px solid #ddd;
}

.cv-noir .cv-aside {
    width: 230px;
    padding: 28px 28px;
    background: #fafafa;
}

.cv-noir h2 {
    font-family: 'Playfair Display', serif;
    font-size: 10pt;
    font-weight: 700;
    color: #000;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    border-top: 2px solid #111;
    border-bottom: 1px solid #ccc;
    padding: 5px 0;
    margin: 22px 0 12px 0;
}

.cv-noir h2:first-child {
    margin-top: 0;
}

.cv-noir h3 {
    font-family: 'Playfair Display', serif;
    font-weight: 700;
    font-size: 11pt;
    color: #111;
    margin: 0 0 2px 0;
}

.cv-noir .entry-dates {
    color: #666;
    font-size: 8.5pt;
    font-style: italic;
    margin-bottom: 4px;
    font-family: 'Playfair Display', serif;
}

.cv-noir p, .cv-noir li {
    font-size: 9.5pt;
    color: #333;
    line-height: 1.6;
}

.cv-noir .skill-chip {
    background: #111;
    color: #fff;
    border-radius: 0;
    font-size: 8pt;
    letter-spacing: 0.05em;
    padding: 4px 10px;
}

.cv-noir .skill-chips {
    gap: 5px;
}

/* ============================================================
   TEMPLATE: AURORA
   Gradient left accent bar, clean white layout, modern and airy
   ============================================================ */
.cv-aurora {
    font-family: 'DM Sans', sans-serif;
    background: #fff;
    color: #1a1a2e;
    padding: 0 !important;
    display: flex;
    min-height: 297mm;
}

.cv-aurora .cv-aurora-bar {
    width: 8px;
    background: linear-gradient(180deg, #6c63ff 0%, #48cfad 40%, #f7797d 80%, #fbd786 100%);
    flex-shrink: 0;
}

.cv-aurora .cv-aurora-wrapper {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.cv-aurora .cv-header {
    padding: 44px 44px 32px 36px;
    background: #f7f7ff;
    border-bottom: 1px solid #e8e8f5;
    display: flex;
    align-items: flex-start;
    gap: 24px;
}

.cv-aurora .cv-header-text {
    flex: 1;
}

.cv-aurora h1 {
    font-family: 'DM Serif Display', serif;
    font-size: 30pt;
    font-weight: 400;
    color: #1a1a2e;
    line-height: 1.05;
    letter-spacing: -0.01em;
    margin: 0 0 8px 0;
}

.cv-aurora .cv-subtitle {
    font-size: 11pt;
    font-weight: 500;
    color: #6c63ff;
    margin-bottom: 14px;
    letter-spacing: 0.02em;
}

.cv-aurora .cv-photo {
    width: 96px;
    height: 96px;
    border-radius: 50%;
    border: none;
    box-shadow: 0 0 0 3px #fff, 0 0 0 5px #6c63ff;
    flex-shrink: 0;
    object-fit: cover;
}

.cv-aurora .contact-info {
    font-size: 8.5pt;
    color: #5a5a7a;
    gap: 8px 14px;
    font-weight: 400;
}

.cv-aurora .cv-body {
    display: flex;
    flex: 1;
    padding: 32px 44px 32px 36px;
    gap: 36px;
}

.cv-aurora .cv-main {
    flex: 1;
}

.cv-aurora .cv-aside {
    width: 200px;
    flex-shrink: 0;
}

.cv-aurora h2 {
    font-family: 'DM Serif Display', serif;
    font-size: 13pt;
    font-weight: 400;
    color: #1a1a2e;
    margin: 20px 0 10px 0;
    padding-bottom: 6px;
    border-bottom: 2px solid #6c63ff;
    letter-spacing: 0.01em;
}

.cv-aurora h2:first-child {
    margin-top: 0;
}

.cv-aurora h3 {
    font-size: 10.5pt;
    font-weight: 600;
    color: #1a1a2e;
    margin: 0 0 1px 0;
}

.cv-aurora .entry-dates {
    font-size: 8.5pt;
    color: #6c63ff;
    font-weight: 500;
    margin-bottom: 4px;
}

.cv-aurora p, .cv-aurora li {
    font-size: 9.5pt;
    color: #3a3a5c;
    line-height: 1.6;
    font-weight: 300;
}

.cv-aurora .skill-chip {
    background: #f0eeff;
    color: #5248c7;
    border-radius: 6px;
    font-size: 8.5pt;
    font-weight: 500;
    padding: 5px 12px;
}

.cv-aurora .skill-chips {
    gap: 6px;
}

/* ============================================================
   TEMPLATE: SWISS
   Swiss/International style: strong grid, bold red + black,
   sans-serif brutalism, structured columns
   ============================================================ */
.cv-swiss {
    font-family: 'Barlow', sans-serif;
    background: #fff;
    color: #111;
    padding: 0 !important;
    display: flex;
    flex-direction: column;
    min-height: 297mm;
}

.cv-swiss .cv-header {
    padding: 0;
    display: flex;
    border-bottom: 5px solid #111;
}

.cv-swiss .cv-header-name-block {
    flex: 1;
    background: #e63329;
    padding: 36px 36px 30px 40px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
}

.cv-swiss h1 {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 40pt;
    font-weight: 800;
    color: #fff;
    line-height: 0.9;
    letter-spacing: -0.01em;
    text-transform: uppercase;
    margin: 0 0 8px 0;
}

.cv-swiss .cv-subtitle {
    font-family: 'Barlow', sans-serif;
    font-size: 10pt;
    font-weight: 300;
    color: rgba(255,255,255,0.85);
    letter-spacing: 0.12em;
    text-transform: uppercase;
    margin-bottom: 0;
}

.cv-swiss .cv-header-contact-block {
    width: 220px;
    background: #111;
    padding: 36px 28px 30px 28px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.cv-swiss .cv-photo {
    width: 80px;
    height: 80px;
    border-radius: 0;
    border: 2px solid #e63329;
    margin-bottom: 16px;
    object-fit: cover;
    filter: grayscale(20%);
}

.cv-swiss .cv-header-contact-block .contact-info {
    flex-direction: column;
    gap: 5px;
    color: #aaa;
    font-size: 8.5pt;
    font-weight: 300;
    letter-spacing: 0.02em;
}

.cv-swiss .cv-body {
    display: flex;
    flex: 1;
}

.cv-swiss .cv-main {
    flex: 1;
    padding: 32px 36px 36px 40px;
    border-right: 1px solid #e0e0e0;
}

.cv-swiss .cv-aside {
    width: 220px;
    padding: 32px 28px 36px 28px;
}

.cv-swiss h2 {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 11pt;
    font-weight: 700;
    color: #e63329;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    margin: 26px 0 10px 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

.cv-swiss h2::before {
    content: '';
    display: block;
    width: 20px;
    height: 3px;
    background: #e63329;
    flex-shrink: 0;
}

.cv-swiss h2:first-child {
    margin-top: 0;
}

.cv-swiss h3 {
    font-family: 'Barlow', sans-serif;
    font-size: 10.5pt;
    font-weight: 600;
    color: #111;
    margin: 0 0 2px 0;
}

.cv-swiss .entry-dates {
    font-size: 8.5pt;
    color: #888;
    font-weight: 400;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    margin-bottom: 3px;
}

.cv-swiss p, .cv-swiss li {
    font-size: 9.5pt;
    color: #333;
    line-height: 1.55;
    font-weight: 300;
}

.cv-swiss .skill-chip {
    background: transparent;
    border: 1.5px solid #111;
    color: #111;
    border-radius: 0;
    font-size: 8pt;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 4px 10px;
}

.cv-swiss .skill-chips {
    gap: 6px;
}

.cv-swiss .cv-grid-accent {
    position: absolute;
    bottom: 0;
    right: 0;
    width: 40px;
    height: 40px;
    background: #e63329;
    opacity: 0.15;
}
/* ============================================================
   TEMPLATE: ONYX
   Luxury dark-panel layout. Wide right sidebar in near-black,
   left main area in pure white. Gold as the only accent color.
   Inspired by high-end hotel key cards and luxury brand identity.
   ============================================================ */

.cv-onyx {
    font-family: 'Outfit', sans-serif;
    background: #fff;
    color: #1a1a1a;
    padding: 0 !important;
    display: flex;
    min-height: 297mm;
}

/* ── LEFT: white main content area ── */
.cv-onyx .cv-onyx-main {
    flex: 1;
    display: flex;
    flex-direction: column;
    padding: 48px 40px 48px 44px;
    border-right: 1px solid #e8e8e8;
}

.cv-onyx .cv-onyx-name-block {
    margin-bottom: 32px;
    padding-bottom: 28px;
    border-bottom: 1px solid #e0e0e0;
    position: relative;
}

/* Thin gold bar left of name */
.cv-onyx .cv-onyx-name-block::before {
    content: '';
    position: absolute;
    left: -44px;
    top: 8px;
    width: 3px;
    height: 44px;
    background: #C9A84C;
}

.cv-onyx h1 {
    font-family: 'Outfit', sans-serif;
    font-size: 28pt;
    font-weight: 700;
    color: #0d0d0d;
    letter-spacing: -0.02em;
    line-height: 1;
    margin: 0 0 6px 0;
}

.cv-onyx .cv-subtitle {
    font-family: 'Outfit', sans-serif;
    font-size: 9.5pt;
    font-weight: 300;
    color: #C9A84C;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    margin: 0;
}

/* Section headings in main */
.cv-onyx .cv-onyx-main h2 {
    font-family: 'Outfit', sans-serif;
    font-size: 7.5pt;
    font-weight: 600;
    color: #999;
    text-transform: uppercase;
    letter-spacing: 0.3em;
    margin: 28px 0 12px 0;
    padding-bottom: 0;
    border-bottom: none;
    display: flex;
    align-items: center;
    gap: 10px;
}

.cv-onyx .cv-onyx-main h2::after {
    content: '';
    flex: 1;
    height: 1px;
    background: #e8e8e8;
}

.cv-onyx .cv-onyx-main h2:first-of-type {
    margin-top: 0;
}

.cv-onyx .cv-onyx-main h3 {
    font-family: 'Outfit', sans-serif;
    font-size: 10.5pt;
    font-weight: 600;
    color: #111;
    margin: 0 0 1px 0;
}

.cv-onyx .cv-onyx-main .entry-dates {
    font-size: 8pt;
    color: #C9A84C;
    font-weight: 400;
    letter-spacing: 0.05em;
    margin-bottom: 4px;
}

.cv-onyx .cv-onyx-main p,
.cv-onyx .cv-onyx-main li {
    font-size: 9.5pt;
    color: #444;
    line-height: 1.65;
    font-weight: 300;
}

.cv-onyx .cv-onyx-main .section-entries {
    gap: 14px;
}


/* ── RIGHT: dark luxury sidebar ── */
.cv-onyx .cv-onyx-sidebar {
    width: 220px;
    flex-shrink: 0;
    background: #141414;
    display: flex;
    flex-direction: column;
    padding: 48px 28px 48px 28px;
    gap: 0;
}

/* Gold rule at top of sidebar */
.cv-onyx .cv-onyx-sidebar::before {
    content: '';
    display: block;
    width: 32px;
    height: 2px;
    background: #C9A84C;
    margin-bottom: 28px;
    flex-shrink: 0;
}

/* Photo in sidebar */
.cv-onyx .cv-onyx-sidebar .cv-photo {
    width: 80px;
    height: 80px;
    border-radius: 0;
    border: 1px solid #C9A84C;
    object-fit: cover;
    margin-bottom: 24px;
    flex-shrink: 0;
}

/* Contact items in sidebar */
.cv-onyx .cv-onyx-sidebar .cv-onyx-contact {
    display: flex;
    flex-direction: column;
    gap: 7px;
    margin-bottom: 32px;
}

.cv-onyx .cv-onyx-sidebar .cv-onyx-contact span {
    font-size: 7.5pt;
    color: #888;
    font-weight: 300;
    letter-spacing: 0.03em;
    word-break: break-all;
    line-height: 1.4;
}

/* Sidebar section headings */
.cv-onyx .cv-onyx-sidebar h2 {
    font-family: 'Outfit', sans-serif;
    font-size: 6.5pt;
    font-weight: 600;
    color: #C9A84C;
    text-transform: uppercase;
    letter-spacing: 0.3em;
    margin: 24px 0 10px 0;
    padding: 0;
    border: none;
}

.cv-onyx .cv-onyx-sidebar h2:first-of-type {
    margin-top: 0;
}

.cv-onyx .cv-onyx-sidebar h3 {
    font-size: 9pt;
    font-weight: 500;
    color: #ddd;
    margin: 0 0 1px 0;
}

.cv-onyx .cv-onyx-sidebar .entry-dates {
    font-size: 7.5pt;
    color: #666;
    margin-bottom: 4px;
}

.cv-onyx .cv-onyx-sidebar p,
.cv-onyx .cv-onyx-sidebar li {
    font-size: 8.5pt;
    color: #aaa;
    line-height: 1.5;
    font-weight: 300;
}

.cv-onyx .cv-onyx-sidebar .section-entries {
    gap: 10px;
}

/* Language rows */
.cv-onyx .cv-onyx-sidebar .cv-lang-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 4px 0;
    border-bottom: 1px solid #222;
}

.cv-onyx .cv-onyx-sidebar .cv-lang-row span:first-child {
    font-size: 8.5pt;
    color: #ccc;
    font-weight: 400;
}

.cv-onyx .cv-onyx-sidebar .cv-lang-row span:last-child {
    font-size: 7pt;
    color: #C9A84C;
    font-weight: 300;
    letter-spacing: 0.05em;
    text-transform: capitalize;
}

/* Skill chips in sidebar */
.cv-onyx .cv-onyx-sidebar .skill-chips {
    gap: 5px;
}

.cv-onyx .cv-onyx-sidebar .skill-chip {
    background: #1e1e1e;
    color: #bbb;
    border: 1px solid #2e2e2e;
    border-radius: 0;
    font-size: 7.5pt;
    font-weight: 400;
    letter-spacing: 0.04em;
    padding: 4px 10px;
    white-space: nowrap;
}


/* ============================================================
   TEMPLATE: MANUSCRIPT
   Literary elegance meets modern structure. Single-column,
   breathable layout. Header has a full-width double-rule stripe.
   Cormorant Garamond for display, Jost for body text.
   Inspired by academic journals and literary magazines.
   ============================================================ */

.cv-manuscript {
    font-family: 'Jost', sans-serif;
    background: #FDFCF8;
    color: #1c1c1c;
    padding: 0 !important;
    display: flex;
    flex-direction: column;
    min-height: 297mm;
}

/* ── TOP HEADER BAND ── */
.cv-manuscript .cv-ms-header {
    padding: 0;
    position: relative;
}

/* Double top rule */
.cv-manuscript .cv-ms-top-rules {
    height: 5px;
    background: #1c1c1c;
    border-bottom: 1px solid #1c1c1c;
    /* Trick: use box-shadow for the double-line effect */
    box-shadow: 0 3px 0 0 #FDFCF8, 0 5px 0 0 #1c1c1c;
    margin-bottom: 5px;
}

/* The actual name + title area */
.cv-manuscript .cv-ms-name-area {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    padding: 24px 48px 20px 48px;
    border-bottom: 2px solid #1c1c1c;
    gap: 24px;
}

.cv-manuscript .cv-ms-name-left {
    display: flex;
    align-items: center;
    gap: 22px;
}

.cv-manuscript h1 {
    font-family: 'Cormorant Garamond', serif;
    font-size: 34pt;
    font-weight: 600;
    color: #0e0e0e;
    letter-spacing: 0.01em;
    line-height: 1;
    margin: 0;
}

.cv-manuscript .cv-subtitle {
    font-family: 'Jost', sans-serif;
    font-size: 8.5pt;
    font-weight: 300;
    color: #777;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    margin-top: 7px;
}

.cv-manuscript .cv-photo {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    border: 1.5px solid #ccc;
    object-fit: cover;
    flex-shrink: 0;
}

/* Contact row under name */
.cv-manuscript .cv-ms-contact-row {
    padding: 10px 48px;
    border-bottom: 1px solid #ddd;
    background: #F5F3EE;
}

.cv-manuscript .cv-ms-contact-row .contact-info {
    font-size: 8pt;
    color: #666;
    font-weight: 300;
    letter-spacing: 0.04em;
    gap: 6px 18px;
    justify-content: flex-start;
}

/* ── BODY: two columns ── */
.cv-manuscript .cv-ms-body {
    display: flex;
    flex: 1;
    padding: 0;
}

.cv-manuscript .cv-ms-main {
    flex: 1;
    padding: 32px 36px 40px 48px;
    border-right: 1px solid #e0ddd6;
}

.cv-manuscript .cv-ms-sidebar {
    width: 210px;
    flex-shrink: 0;
    padding: 32px 36px 40px 32px;
    background: #F9F7F2;
}

/* Section headings */
.cv-manuscript .cv-ms-main h2,
.cv-manuscript .cv-ms-sidebar h2 {
    font-family: 'Cormorant Garamond', serif;
    font-size: 14pt;
    font-weight: 500;
    font-style: italic;
    color: #1c1c1c;
    letter-spacing: 0.02em;
    margin: 26px 0 12px 0;
    padding-bottom: 5px;
    border-bottom: 1px solid #c8c3b8;
    line-height: 1;
    position: relative;
}

/* Small decorative mark before heading */
.cv-manuscript .cv-ms-main h2::before,
.cv-manuscript .cv-ms-sidebar h2::before {
    content: '§';
    font-style: normal;
    font-size: 9pt;
    color: #bbb;
    margin-right: 7px;
    vertical-align: middle;
}

.cv-manuscript .cv-ms-main h2:first-of-type,
.cv-manuscript .cv-ms-sidebar h2:first-of-type {
    margin-top: 0;
}

/* Entry titles */
.cv-manuscript .cv-ms-main h3 {
    font-family: 'Jost', sans-serif;
    font-size: 10.5pt;
    font-weight: 500;
    color: #111;
    margin: 0 0 2px 0;
}

.cv-manuscript .cv-ms-sidebar h3 {
    font-family: 'Jost', sans-serif;
    font-size: 9.5pt;
    font-weight: 500;
    color: #111;
    margin: 0 0 1px 0;
}

/* Dates: small caps style */
.cv-manuscript .entry-dates {
    font-family: 'Jost', sans-serif;
    font-size: 7.5pt;
    color: #999;
    font-weight: 400;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    margin-bottom: 5px;
}

/* Body text */
.cv-manuscript .cv-ms-main p,
.cv-manuscript .cv-ms-main li {
    font-family: 'Jost', sans-serif;
    font-size: 9.5pt;
    color: #3a3a3a;
    line-height: 1.7;
    font-weight: 300;
}

.cv-manuscript .cv-ms-sidebar p,
.cv-manuscript .cv-ms-sidebar li {
    font-size: 9pt;
    color: #444;
    line-height: 1.6;
    font-weight: 300;
}

.cv-manuscript .section-entries {
    gap: 14px;
}

/* Skill chips: outlined, literary */
.cv-manuscript .skill-chip {
    background: transparent;
    border: 1px solid #c8c3b8;
    color: #444;
    border-radius: 2px;
    font-size: 8pt;
    font-weight: 400;
    letter-spacing: 0.06em;
    padding: 4px 10px;
}

.cv-manuscript .skill-chips {
    gap: 5px;
}

/* Language row in sidebar */
.cv-manuscript .cv-ms-lang-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 5px 0;
    border-bottom: 1px dashed #ddd;
}

.cv-manuscript .cv-ms-lang-row span:first-child {
    font-size: 9pt;
    color: #222;
    font-weight: 400;
}

.cv-manuscript .cv-ms-lang-row span:last-child {
    font-size: 7.5pt;
    color: #999;
    font-weight: 300;
    text-transform: capitalize;
    letter-spacing: 0.04em;
}
/* ============================================================
   TEMPLATE: VANTA
   Full black canvas. A bold diagonal gradient slash cuts across
   the header — violet to amber. Name sits huge and white inside
   the slash. Right side: dark panel with glowing skill chips.
   Left body: dark gray with luminous section markers.
   Nothing like this exists in any CV builder.
   ============================================================ */

.cv-vanta {
    font-family: 'Inter', sans-serif;
    background: #0a0a0a;
    color: #e8e8e8;
    padding: 0 !important;
    display: flex;
    flex-direction: column;
    min-height: 297mm;
    position: relative;
}

/* ── HEADER: the diagonal slash ── */
.cv-vanta .cv-vanta-header {
    position: relative;
    height: 200px;
    background: #0a0a0a;
    overflow: hidden;
    flex-shrink: 0;
}

/* The diagonal gradient slab */
.cv-vanta .cv-vanta-slash {
    position: absolute;
    top: -40px;
    left: -60px;
    width: 75%;
    height: 280px;
    background: linear-gradient(112deg, #7c3aed 0%, #a855f7 35%, #f97316 75%, #fbbf24 100%);
    clip-path: polygon(0 0, 100% 0, 80% 100%, 0 100%);
    z-index: 1;
}

/* Subtle noise/grain overlay on slash */
.cv-vanta .cv-vanta-slash::after {
    content: '';
    position: absolute;
    inset: 0;
    background: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.08'/%3E%3C/svg%3E");
    opacity: 0.15;
    mix-blend-mode: overlay;
}

/* Name block positioned inside slash */
.cv-vanta .cv-vanta-name-block {
    position: absolute;
    top: 0;
    left: 0;
    width: 70%;
    height: 100%;
    z-index: 2;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 0 0 0 40px;
}

.cv-vanta h1 {
    font-family: 'Syne', sans-serif;
    font-size: 36pt;
    font-weight: 800;
    color: #ffffff;
    line-height: 0.92;
    letter-spacing: -0.03em;
    margin: 0 0 10px 0;
    text-shadow: 0 2px 24px rgba(0,0,0,0.25);
}

.cv-vanta .cv-subtitle {
    font-family: 'Syne', sans-serif;
    font-size: 8.5pt;
    font-weight: 500;
    color: rgba(255,255,255,0.85);
    letter-spacing: 0.28em;
    text-transform: uppercase;
    margin: 0;
}

/* Photo — circular, floats in the dark right area of header */
.cv-vanta .cv-vanta-header .cv-photo {
    position: absolute;
    right: 44px;
    top: 50%;
    transform: translateY(-50%);
    width: 100px;
    height: 100px;
    border-radius: 50%;
    border: 2px solid #7c3aed;
    box-shadow: 0 0 0 4px #0a0a0a, 0 0 32px rgba(124,58,237,0.4);
    object-fit: cover;
    z-index: 3;
}

/* Contact bar below header */
.cv-vanta .cv-vanta-contact-bar {
    background: #111111;
    border-top: 1px solid #1e1e1e;
    border-bottom: 1px solid #1e1e1e;
    padding: 10px 40px;
    display: flex;
    flex-wrap: wrap;
    gap: 6px 20px;
    flex-shrink: 0;
}

.cv-vanta .cv-vanta-contact-bar span {
    font-size: 7.5pt;
    color: #666;
    font-weight: 300;
    letter-spacing: 0.04em;
    font-family: 'Syne Mono', monospace;
}

.cv-vanta .cv-vanta-contact-bar span.cv-vanta-sep {
    color: #2a2a2a;
}

/* ── BODY ── */
.cv-vanta .cv-vanta-body {
    display: flex;
    flex: 1;
}

/* Left: main content */
.cv-vanta .cv-vanta-main {
    flex: 1;
    padding: 36px 36px 40px 40px;
    border-right: 1px solid #1a1a1a;
}

/* Right: sidebar */
.cv-vanta .cv-vanta-sidebar {
    width: 210px;
    flex-shrink: 0;
    padding: 36px 28px 40px 28px;
    background: #0d0d0d;
    display: flex;
    flex-direction: column;
}

/* ── SECTION HEADINGS: main ── */
.cv-vanta .cv-vanta-main h2 {
    font-family: 'Syne', sans-serif;
    font-size: 7pt;
    font-weight: 700;
    color: transparent;
    background: linear-gradient(90deg, #a855f7, #f97316);
    -webkit-background-clip: text;
    background-clip: text;
    text-transform: uppercase;
    letter-spacing: 0.35em;
    margin: 28px 0 14px 0;
    padding: 0;
    border: none;
    display: flex;
    align-items: center;
    gap: 10px;
}

/* Gradient line after heading */
.cv-vanta .cv-vanta-main h2::after {
    content: '';
    flex: 1;
    height: 1px;
    background: linear-gradient(90deg, #3a1a5e, #1a1a1a);
}

.cv-vanta .cv-vanta-main h2:first-of-type {
    margin-top: 0;
}

/* ── ENTRY STYLES: main ── */
.cv-vanta .cv-vanta-main h3 {
    font-family: 'Syne', sans-serif;
    font-size: 10.5pt;
    font-weight: 600;
    color: #f0f0f0;
    margin: 0 0 2px 0;
    letter-spacing: -0.01em;
}

.cv-vanta .cv-vanta-main .entry-dates {
    font-family: 'Syne Mono', monospace;
    font-size: 7.5pt;
    color: #a855f7;
    letter-spacing: 0.06em;
    margin-bottom: 5px;
}

.cv-vanta .cv-vanta-main p,
.cv-vanta .cv-vanta-main li {
    font-size: 9pt;
    color: #888;
    line-height: 1.7;
    font-weight: 300;
}

.cv-vanta .cv-vanta-main .section-entries {
    gap: 16px;
}

/* ── SIDEBAR HEADINGS ── */
.cv-vanta .cv-vanta-sidebar h2 {
    font-family: 'Syne', sans-serif;
    font-size: 6.5pt;
    font-weight: 700;
    color: #444;
    text-transform: uppercase;
    letter-spacing: 0.3em;
    margin: 24px 0 10px 0;
    padding: 0;
    border: none;
}

.cv-vanta .cv-vanta-sidebar h2:first-of-type {
    margin-top: 0;
}

.cv-vanta .cv-vanta-sidebar h3 {
    font-family: 'Syne', sans-serif;
    font-size: 9.5pt;
    font-weight: 600;
    color: #ccc;
    margin: 0 0 1px 0;
}

.cv-vanta .cv-vanta-sidebar .entry-dates {
    font-family: 'Syne Mono', monospace;
    font-size: 7pt;
    color: #555;
    margin-bottom: 3px;
    letter-spacing: 0.04em;
}

.cv-vanta .cv-vanta-sidebar p,
.cv-vanta .cv-vanta-sidebar li {
    font-size: 8.5pt;
    color: #666;
    line-height: 1.55;
    font-weight: 300;
}

.cv-vanta .cv-vanta-sidebar .section-entries {
    gap: 10px;
}

/* ── SKILL CHIPS: glowing ── */
.cv-vanta .skill-chips {
    gap: 6px;
}

.cv-vanta .skill-chip {
    background: #111;
    color: #c084fc;
    border: 1px solid #3b1f5e;
    border-radius: 3px;
    font-family: 'Syne Mono', monospace;
    font-size: 7.5pt;
    font-weight: 400;
    letter-spacing: 0.04em;
    padding: 4px 10px;
    white-space: nowrap;
    box-shadow: 0 0 8px rgba(168, 85, 247, 0.12);
}

/* Language rows in sidebar */
.cv-vanta .cv-vanta-lang-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 5px 0;
    border-bottom: 1px solid #1a1a1a;
}

.cv-vanta .cv-vanta-lang-row span:first-child {
    font-size: 9pt;
    color: #bbb;
    font-weight: 400;
}

.cv-vanta .cv-vanta-lang-row span:last-child {
    font-family: 'Syne Mono', monospace;
    font-size: 7pt;
    color: #f97316;
    letter-spacing: 0.06em;
    text-transform: capitalize;
}