.cv{& .hero{padding:var(--spacing-xl) 0 var(--spacing-md)}& .hero-content{gap:var(--spacing-sm);flex-direction:column;display:flex}& .main-content{padding:0 0 var(--spacing-xl);background:var(--color-background)}& .cv-header{margin-bottom:var(--spacing-lg)}& .header-row{justify-content:space-between;align-items:flex-start;gap:var(--spacing-md);display:flex}& .header-text h1{color:var(--color-text);margin:0}& .role{font-size:var(--font-size-xl);color:var(--color-text-secondary);margin:0}& .header-actions{align-items:flex-start;display:flex}& .download-link{align-items:center;gap:var(--spacing-xs);color:var(--color-secondary);font-weight:500;font-size:var(--font-size-sm);text-decoration:none;transition:transform .2s;display:flex}& .download-link:hover{transform:translateY(-1px)}& .download-link svg{flex-shrink:0;width:16px;height:16px}& .bio-section{margin:0}& .portrait-container{float:right;margin:var(--spacing-xs) 0 var(--spacing-md) var(--spacing-lg)}& .portrait{border-radius:var(--border-radius);width:clamp(120px,25vw,200px);height:auto;box-shadow:var(--shadow-sm)}& .bio-content,& .bio-content p{text-align:justify;text-align-last:left;hyphens:auto;flex:1}& .bio-content p{color:var(--color-text-secondary);margin-bottom:var(--spacing-md);line-height:1.7}& .bio-content strong{color:var(--color-text);font-weight:600}& .languages-section,& .soft-skills-section,& .certificates-section,& .skills-section,& .experience-section{margin:var(--spacing-2xl) 0;& h2{color:var(--color-text);margin-bottom:var(--spacing-lg);font-size:var(--font-size-2xl);font-weight:600}}& .languages-grid{gap:var(--spacing-md);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));display:grid}& .soft-skills-list{gap:var(--spacing-sm);grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin:0;padding:0;list-style:none;display:grid}& .soft-skills-list li{padding:var(--spacing-sm) var(--spacing-md);background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--border-radius);color:var(--color-text);font-size:var(--font-size-sm);font-weight:600;transition:border-color .2s}& .soft-skills-list li:hover{border-color:var(--color-border-hover)}& .skill-grid{gap:var(--spacing-lg);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));display:grid}& .projects-grid{gap:var(--spacing-xl);margin-top:var(--spacing-lg);grid-template-columns:repeat(auto-fit,minmax(400px,1fr));display:grid}& .experience-grid{gap:var(--spacing-lg);flex-direction:column;display:flex}}@media (width<=640px){.cv{& .header-row{text-align:center;align-items:center;gap:var(--spacing-sm);flex-direction:column}& .header-actions{justify-content:center}& .portrait-container{float:right;margin-left:var(--spacing-md);margin-bottom:var(--spacing-md);margin-right:0}& .portrait{width:clamp(100px,30vw,140px)}& .languages-grid,& .soft-skills-list,& .skill-grid,& .projects-grid{grid-template-columns:1fr}}}@media print{@page{margin:20mm;size:A4}.cv{& .hero{margin-bottom:15pt;padding:0}& .main-content{padding:0}& .cv-header{border-bottom:1pt solid var(--color-print-text);margin-bottom:12pt;padding-bottom:8pt;display:block!important}& .header-row{text-align:left;display:block}& .header-text{display:block!important}& .header-text h1{margin:0 0 2pt;font-size:18pt;font-weight:700;display:block!important}& .role{margin:0 0 8pt;font-size:12pt;font-style:italic;display:block!important}& .portrait-container{float:right;margin:0 0 8pt 12pt}& .portrait{object-fit:cover;object-position:center top;border:1pt solid var(--color-border-light);width:80pt;height:80pt}& .bio-content{text-align:justify;margin-bottom:15pt}& .bio-content p{text-align:justify;margin:0 0 8pt;font-size:11pt;line-height:1.4}& .bio-content strong,& .bio-content em,& .bio-content b{font-weight:700}& .languages-section,& .soft-skills-section,& .certificates-section{margin:18pt 0}& .certificates-section{break-inside:avoid}& .skills-section{margin:12pt 0}& .skills-section h2,& .languages-section h2,& .soft-skills-section h2,& .certificates-section h2,& .experience-section h2{border-bottom:.5pt solid var(--color-print-text);page-break-after:avoid;margin:0 0 8pt;padding-bottom:2pt;font-size:14pt;font-weight:700}& .languages-grid{grid-template-columns:1fr 1fr 1fr;gap:8pt;margin-bottom:12pt;display:grid}& .soft-skills-list{margin:0!important;padding-left:20pt!important;list-style:outside!important;display:block!important}& .soft-skills-list li{background:0 0!important;border:none!important;margin:0 0 3pt!important;padding:0!important;font-size:11pt!important;font-weight:400!important;display:list-item!important}& .skill-grid{grid-template-columns:1fr 1fr;gap:12pt 20pt;display:grid}& .experience-section{margin-top:18pt!important;display:block!important}& .experience-grid{display:block}& .certificates-section .certificate-cards{display:block!important}& .certificates-section .certificate-card{page-break-inside:avoid;background:0 0!important;border:none!important;margin-bottom:6pt!important;padding:0!important;display:block!important}& .certificates-section .certificate-title{margin:0!important;font-size:11pt!important;font-weight:700!important}& .certificates-section .certificate-issuer{margin:0!important;font-size:10pt!important;font-style:italic!important}& .certificates-section .certificate-date{margin:0!important;font-size:10pt!important}& .download-link,& .header-actions{display:none!important}}}.skill-rating[data-astro-cid-i5kdibz4]{color:var(--color-primary);letter-spacing:2px}.skill-card[data-astro-cid-bt2kxyrj]{transition:border-color .2s}.skill-card[data-astro-cid-bt2kxyrj]:hover{border-color:var(--color-border-hover)}.skill-card-title[data-astro-cid-bt2kxyrj]{font-size:var(--font-size-xl);color:var(--color-text);margin:0 0 var(--spacing-md) 0;font-weight:600}.skill-list[data-astro-cid-bt2kxyrj]{gap:var(--spacing-sm);flex-direction:column;display:flex}.skill-item[data-astro-cid-bt2kxyrj]{justify-content:space-between;align-items:center;display:flex}.skill-name[data-astro-cid-bt2kxyrj]{color:var(--color-text-secondary)}@media print{.skill-card[data-astro-cid-bt2kxyrj]{margin-bottom:6pt}.skill-card-title[data-astro-cid-bt2kxyrj]{margin:0 0 4pt;font-size:12pt;font-weight:700}.skill-list[data-astro-cid-bt2kxyrj]{gap:2pt}.skill-item[data-astro-cid-bt2kxyrj]{margin-bottom:2pt;font-size:10pt}}.project-card[data-astro-cid-y2vllrex]{transition:border-color .2s,box-shadow .2s}.project-card[data-astro-cid-y2vllrex]:hover{border-color:var(--color-border-hover);box-shadow:var(--shadow-md)}.project-title[data-astro-cid-y2vllrex]{color:var(--color-text);margin:0 0 var(--spacing-sm) 0;font-size:1.125rem;font-weight:600}.project-meta[data-astro-cid-y2vllrex]{color:var(--color-text-secondary);margin-bottom:var(--spacing-sm);justify-content:space-between;align-items:center;display:flex}.period[data-astro-cid-y2vllrex]{font-size:var(--font-size-sm)}.project-description[data-astro-cid-y2vllrex]{color:var(--color-text-secondary);margin-bottom:var(--spacing-md)}.description-list[data-astro-cid-y2vllrex]{padding-left:var(--spacing-lg);margin:0;list-style:outside}.description-list[data-astro-cid-y2vllrex] li[data-astro-cid-y2vllrex]{margin-bottom:var(--spacing-xs)}.technologies[data-astro-cid-y2vllrex]{gap:var(--spacing-xs);margin-top:var(--spacing-md);flex-wrap:wrap;display:flex}.tech-tag[data-astro-cid-y2vllrex]{background:var(--color-surface);color:var(--color-text-secondary);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--border-radius);font-size:var(--font-size-sm);border:1px solid var(--color-border)}@media print{.project-card[data-astro-cid-y2vllrex]{border-bottom:.75pt solid var(--color-print-border);margin-bottom:20pt;padding:0 0 15pt}.project-title[data-astro-cid-y2vllrex]{margin:0 0 6pt;font-size:12pt;font-weight:700}.project-meta[data-astro-cid-y2vllrex]{margin-bottom:6pt}.role[data-astro-cid-y2vllrex]{font-size:11pt;font-style:italic}.period[data-astro-cid-y2vllrex]{font-size:10pt}.project-description[data-astro-cid-y2vllrex]{text-align:justify;margin-bottom:6pt;font-size:11pt}.description-list[data-astro-cid-y2vllrex]{margin:0;padding-left:20pt}.description-list[data-astro-cid-y2vllrex] li[data-astro-cid-y2vllrex]{margin-bottom:2pt}.technologies[data-astro-cid-y2vllrex]{margin-top:4pt;font-size:10pt;font-style:italic}.tech-tag[data-astro-cid-y2vllrex]{background:0 0;border:none;margin:0;padding:0 10pt 0 0;font-style:italic;display:inline}}.language-card[data-astro-cid-avvfbqne]{padding:var(--spacing-lg);transition:border-color .2s}.language-card[data-astro-cid-avvfbqne]:hover{border-color:var(--color-border-hover)}.language-title[data-astro-cid-avvfbqne]{color:var(--color-text);margin:0 0 var(--spacing-sm) 0;font-weight:600}.language-skills[data-astro-cid-avvfbqne]{gap:var(--spacing-sm);flex-direction:column;display:flex}.language-skill[data-astro-cid-avvfbqne]{justify-content:space-between;align-items:center;display:flex}.skill-label[data-astro-cid-avvfbqne]{color:var(--color-text-secondary)}@media print{.language-card[data-astro-cid-avvfbqne]{margin-bottom:6pt}.language-title[data-astro-cid-avvfbqne]{margin:0 0 4pt;font-size:11pt;font-weight:700}.language-skills[data-astro-cid-avvfbqne]{gap:2pt}.language-skill[data-astro-cid-avvfbqne]{font-size:10pt}}.certificates-grid[data-astro-cid-t356dked]{gap:var(--spacing-md);grid-template-columns:repeat(auto-fit,minmax(250px,1fr));display:grid}.certificate-card[data-astro-cid-t356dked]{gap:var(--spacing-xs);padding:var(--spacing-md);border-radius:var(--border-radius);border:1px solid var(--color-border);transition:border-color .2s;display:grid}.certificate-card[data-astro-cid-t356dked]:hover{border-color:var(--color-border-hover)}.certificate-meta[data-astro-cid-t356dked]{color:var(--color-text-secondary);font-size:.75rem}.certificate-title[data-astro-cid-t356dked]{color:var(--color-text);font-size:.875rem;font-weight:600}@media (width>=640px){.certificates-grid[data-astro-cid-t356dked]{grid-template-columns:repeat(2,1fr)}}@media print{.certificates-grid[data-astro-cid-t356dked]{gap:var(--spacing-sm);break-inside:avoid;grid-template-columns:repeat(2,1fr)}.certificate-card[data-astro-cid-t356dked]{break-inside:avoid;margin-bottom:4pt}.certificate-meta[data-astro-cid-t356dked]{color:var(--color-print-border)}}
