@page {
    size: A4 portrait;
    margin: 0;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

:root {
    --cv-page-width: 210mm;
    --cv-page-height: 297mm;
    --cv-page-bg: #f6f0e6;
    --cv-text: var(--color-black, #0f1115);
    --cv-muted: var(--color-gray-700, #2d3036);
    --cv-line: rgba(15, 17, 21, 0.16);
    --cv-accent: var(--color-accent, #8b6f22);
    --cv-photo-width: 74mm;
    --cv-lower-width: calc((var(--cv-page-width) * 0.65) - 12mm);
}

html,
body {
    width: var(--cv-page-width);
    min-height: var(--cv-page-height);
    margin: 0;
    padding: 0;
    background: var(--cv-page-bg);
    color: var(--cv-text);
    font-family: var(--font-main);
}

body {
    overflow: auto;
}

.site--cv-print,
.site--cv-print .site-main,
.site--cv-print .site-main--cv-print,
.site-main--cv-print {
    width: var(--cv-page-width);
    min-height: var(--cv-page-height);
    margin: 0 auto;
    padding: 0;
    background: var(--cv-page-bg);
}

.cv-print-page,
.cv-print-sheet {
    width: var(--cv-page-width);
    min-height: var(--cv-page-height);
    margin: 0;
    padding: 0;
    background: var(--cv-page-bg);
}

.cv-print-sheet {
    position: relative;
    isolation: isolate;
    overflow: hidden;
}

.cv-print-sheet::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    background: linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, rgba(15, 17, 21, 0.025) 100%);
    pointer-events: none;
}

.cv-print-content {
    position: relative;
    z-index: 2;
    display: grid;
    align-content: start;
    gap: 3.6mm;
    min-width: 0;
    padding: 11mm 8mm 10mm 12mm;
}

.cv-print-photo-panel {
    position: absolute;
    right: 0;
    bottom: 0;
    z-index: 1;
    display: flex;
    align-items: flex-end;
    justify-content: flex-end;
    width: var(--cv-photo-width);
    height: var(--cv-page-height);
    overflow: hidden;
    background: transparent;
    pointer-events: none;
}

.cv-print-photo {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: right bottom;
    background: transparent;
}

.cv-print-header,
.cv-print-section {
    break-inside: avoid;
    page-break-inside: avoid;
}

.cv-print-header,
.cv-print-section--wide {
    width: 100%;
    max-width: none;
}

.cv-print-section--lower {
    width: 100%;
    max-width: var(--cv-lower-width);
}

.cv-print-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1.8mm;
    padding: 4.5mm 32mm 4.5mm 0;
}
.cv-print-eyebrow {
    width: fit-content;
    margin: 0;
    padding: 0.8mm 1.4mm;
    border: 0.2mm solid var(--cv-text);
    border-radius: 999mm;
    color: var(--cv-text);
    font-size: 7pt;
    font-weight: 900;
    letter-spacing: 0.18em;
    line-height: 1.1;
    text-transform: uppercase;
}

.cv-print-name {
    max-width: 132mm;
    margin: 0;
    color: var(--cv-accent);
    font-size: 30pt;
    font-weight: 950;
    line-height: 0.92;
    letter-spacing: -0.055em;
    text-transform: uppercase;

    -webkit-text-stroke: 0.375mm #000;

    text-shadow:
        0.15mm 0 #000,
        -0.15mm 0 #000,
        0 0.15mm #000,
        0 -0.15mm #000,
        0.11mm 0.11mm #000,
        -0.11mm 0.11mm #000,
        0.11mm -0.11mm #000,
        -0.11mm -0.11mm #000,
        0.7mm 0.8mm 1.2mm rgba(15, 17, 21, 0.32);
}
.cv-print-role {
    max-width: 150mm;
    margin: 0;
    color: var(--cv-muted);
    font-size: 11pt;
    font-weight: 800;
    line-height: 1.2;
}

.cv-print-contact,
.cv-print-data-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 2.2mm 3mm;
    margin: 1.4mm 0 0;
}

.cv-print-header .cv-print-contact {
    width: min(100%, 138mm);
    margin: 1.8mm auto 0;
    justify-self: center;
    align-items: start;
    justify-items: stretch;
    text-align: left;
}

.cv-print-header .cv-print-contact__item {
    justify-items: start;
    text-align: left;
}

.cv-print-contact__item,
.cv-print-data-grid div {
    min-width: 0;
    display: grid;
    gap: 0.6mm;
}

.cv-print-contact dt,
.cv-print-data-grid dt {
    margin: 0;
    color: var(--cv-text);
    font-size: 6.4pt;
    font-weight: 900;
    letter-spacing: 0.12em;
    line-height: 1.12;
    text-transform: uppercase;
}

.cv-print-contact dd,
.cv-print-data-grid dd {
    margin: 0;
    color: var(--cv-muted);
    font-size: 7.3pt;
    font-weight: 650;
    line-height: 1.24;
    overflow-wrap: anywhere;
}

.cv-print-contact a,
.cv-print-data-grid a,
.cv-print-list a,
.cv-print-item a,
.cv-print-item__link {
    position: relative;
    z-index: 4;
    color: var(--cv-text);
    text-decoration: underline;
    text-decoration-color: var(--cv-accent);
    text-decoration-thickness: 0.25mm;
    text-underline-offset: 0.55mm;
    overflow-wrap: anywhere;
}

.cv-print-section {
    display: grid;
    gap: 1.8mm;
    padding-bottom: 2.7mm;
    border-bottom: 0.2mm solid var(--cv-line);
}

.cv-print-section:last-of-type {
    border-bottom: 0;
}

.cv-print-section__title {
    display: flex;
    align-items: center;
    gap: 2mm;
    margin: 0;
    color: var(--cv-text);
    font-size: 8pt;
    font-weight: 950;
    line-height: 1.12;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.cv-print-section__title::after {
    content: "";
    display: block;
    flex: 1 1 auto;
    height: 0.25mm;
    background: var(--cv-line);
}

.cv-print-text {
    margin: 0;
    color: var(--cv-muted);
    font-size: 8pt;
    line-height: 1.42;
}

.cv-print-section--split {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4.2mm;
}

.cv-print-list,
.cv-print-skills,
.cv-print-items {
    display: grid;
    gap: 1.25mm;
    margin: 0;
    padding: 0;
    list-style: none;
}

.cv-print-list li {
    display: flex;
    justify-content: space-between;
    gap: 2mm;
    min-width: 0;
    padding-bottom: 0.9mm;
    border-bottom: 0.15mm solid rgba(15, 17, 21, 0.08);
    color: var(--cv-muted);
    font-size: 7.3pt;
    line-height: 1.32;
}

.cv-print-list span {
    min-width: 0;
    overflow-wrap: anywhere;
}

.cv-print-list strong,
.cv-print-skills span,
.cv-print-skills small {
    color: var(--cv-accent);
    font-weight: 900;
    white-space: nowrap;
}

.cv-print-list .cv-print-language {
    display: grid;
    grid-template-columns: max-content minmax(16mm, 1fr) auto;
    align-items: center;
    gap: 0.75mm 10px;
}

.cv-print-language__name {
    color: var(--cv-muted);
}

.cv-print-language__meter {
    align-self: center;
}

.cv-print-language__level {
    color: var(--cv-accent);
    font-weight: 900;
    text-align: right;
    white-space: nowrap;
}

.cv-print-language.is-range-orange {
    --cv-skill-color: #f28c28;
}

.cv-print-language.is-range-yellow {
    --cv-skill-color: #d6b21e;
}

.cv-print-language.is-range-yellow-green {
    --cv-skill-color: #94b83d;
}

.cv-print-language.is-range-green {
    --cv-skill-color: #179c6b;
}

.cv-print-language.is-range-red {
    --cv-skill-color: #d73a31;
}

.cv-print-skills {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.45mm 3mm;
}

.cv-print-skill {
    display: grid;
    grid-template-columns: max-content minmax(14mm, 1fr) auto;
    gap: 0.75mm 10px;
    min-width: 0;
    padding-bottom: 0.95mm;
    border-bottom: 0.15mm solid rgba(15, 17, 21, 0.08);
    color: var(--cv-muted);
    font-size: 7.2pt;
    line-height: 1.3;
}

.cv-print-skill strong {
    min-width: 0;
    max-width: 26mm;
    color: var(--cv-text);
    font-weight: 900;
    overflow-wrap: anywhere;
}

.cv-print-skill-value {
    color: var(--cv-accent);
    font-weight: 900;
    text-align: right;
    white-space: nowrap;
}

.cv-print-skill-meter {
    position: relative;
    align-self: center;
    display: block;
    width: 100%;
    height: 1.2mm;
    overflow: hidden;
    border-radius: 999mm;
    background: rgba(15, 17, 21, 0.12);
}

.cv-print-skill-meter span {
    position: absolute;
    inset: 0 auto 0 0;
    display: block;
    width: 0;
    border-radius: inherit;
    background: var(--cv-skill-color);
}

.cv-print-skill.is-low,
.cv-print-skill.is-range-red {
    --cv-skill-color: #d73a31;
}

.cv-print-skill.is-mid-low,
.cv-print-skill.is-range-orange {
    --cv-skill-color: #f28c28;
}

.cv-print-skill.is-range-yellow {
    --cv-skill-color: #d6b21e;
}

.cv-print-skill.is-mid-high,
.cv-print-skill.is-range-yellow-green {
    --cv-skill-color: #94b83d;
}

.cv-print-skill.is-high,
.cv-print-skill.is-range-green {
    --cv-skill-color: #179c6b;
}

.cv-print-skill small {
    grid-column: 1 / -1;
    color: var(--cv-muted);
    font-size: 6.6pt;
    font-weight: 800;
    white-space: normal;
}

.cv-print-items {
    gap: 2mm;
}

.cv-print-item {
    display: grid;
    gap: 0.75mm;
    min-width: 0;
    padding-bottom: 1.7mm;
    border-bottom: 0.15mm solid rgba(15, 17, 21, 0.1);
}

.cv-print-item:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}

.cv-print-item h3 {
    margin: 0;
    color: var(--cv-text);
    font-size: 7.8pt;
    font-weight: 950;
    line-height: 1.18;
}

.cv-print-item p {
    margin: 0;
    color: var(--cv-muted);
    font-size: 7.15pt;
    line-height: 1.32;
}

.cv-print-item__link {
    color: var(--cv-accent) !important;
    font-size: 6.9pt;
    font-weight: 850;
}

.cv-print-actions {
    position: fixed;
    right: 16px;
    bottom: 16px;
    z-index: 20;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.cv-print-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 10px 16px;
    border: 1px solid var(--cv-text);
    border-radius: 999px;
    background: var(--cv-text);
    color: #ffffff;
    font: inherit;
    font-size: 14px;
    font-weight: 900;
    line-height: 1.1;
    text-decoration: none;
    cursor: pointer;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.18);
}

.cv-print-action--secondary {
    border-color: var(--cv-accent);
    background: var(--cv-accent);
    color: #ffffff;
}

@media print {
    html,
    body,
    .site--cv-print,
    .site--cv-print .site-main,
    .site--cv-print .site-main--cv-print,
    .site-main--cv-print,
    .cv-print-page,
    .cv-print-sheet {
        width: var(--cv-page-width);
        height: var(--cv-page-height);
        min-height: var(--cv-page-height);
        margin: 0;
        padding: 0;
        overflow: hidden;
        background: var(--cv-page-bg);
        print-color-adjust: exact;
        -webkit-print-color-adjust: exact;
    }

    .cv-print-actions {
        display: none;
    }
}

/* ==========================================================================
   CV PRINT · SKILL METER PERCENTAGES
   ========================================================================== */

.cv-print-skill-meter--p0 span {
    width: 0%;
}

.cv-print-skill-meter--p1 span {
    width: 1%;
}

.cv-print-skill-meter--p2 span {
    width: 2%;
}

.cv-print-skill-meter--p3 span {
    width: 3%;
}

.cv-print-skill-meter--p4 span {
    width: 4%;
}

.cv-print-skill-meter--p5 span {
    width: 5%;
}

.cv-print-skill-meter--p6 span {
    width: 6%;
}

.cv-print-skill-meter--p7 span {
    width: 7%;
}

.cv-print-skill-meter--p8 span {
    width: 8%;
}

.cv-print-skill-meter--p9 span {
    width: 9%;
}

.cv-print-skill-meter--p10 span {
    width: 10%;
}

.cv-print-skill-meter--p11 span {
    width: 11%;
}

.cv-print-skill-meter--p12 span {
    width: 12%;
}

.cv-print-skill-meter--p13 span {
    width: 13%;
}

.cv-print-skill-meter--p14 span {
    width: 14%;
}

.cv-print-skill-meter--p15 span {
    width: 15%;
}

.cv-print-skill-meter--p16 span {
    width: 16%;
}

.cv-print-skill-meter--p17 span {
    width: 17%;
}

.cv-print-skill-meter--p18 span {
    width: 18%;
}

.cv-print-skill-meter--p19 span {
    width: 19%;
}

.cv-print-skill-meter--p20 span {
    width: 20%;
}

.cv-print-skill-meter--p21 span {
    width: 21%;
}

.cv-print-skill-meter--p22 span {
    width: 22%;
}

.cv-print-skill-meter--p23 span {
    width: 23%;
}

.cv-print-skill-meter--p24 span {
    width: 24%;
}

.cv-print-skill-meter--p25 span {
    width: 25%;
}

.cv-print-skill-meter--p26 span {
    width: 26%;
}

.cv-print-skill-meter--p27 span {
    width: 27%;
}

.cv-print-skill-meter--p28 span {
    width: 28%;
}

.cv-print-skill-meter--p29 span {
    width: 29%;
}

.cv-print-skill-meter--p30 span {
    width: 30%;
}

.cv-print-skill-meter--p31 span {
    width: 31%;
}

.cv-print-skill-meter--p32 span {
    width: 32%;
}

.cv-print-skill-meter--p33 span {
    width: 33%;
}

.cv-print-skill-meter--p34 span {
    width: 34%;
}

.cv-print-skill-meter--p35 span {
    width: 35%;
}

.cv-print-skill-meter--p36 span {
    width: 36%;
}

.cv-print-skill-meter--p37 span {
    width: 37%;
}

.cv-print-skill-meter--p38 span {
    width: 38%;
}

.cv-print-skill-meter--p39 span {
    width: 39%;
}

.cv-print-skill-meter--p40 span {
    width: 40%;
}

.cv-print-skill-meter--p41 span {
    width: 41%;
}

.cv-print-skill-meter--p42 span {
    width: 42%;
}

.cv-print-skill-meter--p43 span {
    width: 43%;
}

.cv-print-skill-meter--p44 span {
    width: 44%;
}

.cv-print-skill-meter--p45 span {
    width: 45%;
}

.cv-print-skill-meter--p46 span {
    width: 46%;
}

.cv-print-skill-meter--p47 span {
    width: 47%;
}

.cv-print-skill-meter--p48 span {
    width: 48%;
}

.cv-print-skill-meter--p49 span {
    width: 49%;
}

.cv-print-skill-meter--p50 span {
    width: 50%;
}

.cv-print-skill-meter--p51 span {
    width: 51%;
}

.cv-print-skill-meter--p52 span {
    width: 52%;
}

.cv-print-skill-meter--p53 span {
    width: 53%;
}

.cv-print-skill-meter--p54 span {
    width: 54%;
}

.cv-print-skill-meter--p55 span {
    width: 55%;
}

.cv-print-skill-meter--p56 span {
    width: 56%;
}

.cv-print-skill-meter--p57 span {
    width: 57%;
}

.cv-print-skill-meter--p58 span {
    width: 58%;
}

.cv-print-skill-meter--p59 span {
    width: 59%;
}

.cv-print-skill-meter--p60 span {
    width: 60%;
}

.cv-print-skill-meter--p61 span {
    width: 61%;
}

.cv-print-skill-meter--p62 span {
    width: 62%;
}

.cv-print-skill-meter--p63 span {
    width: 63%;
}

.cv-print-skill-meter--p64 span {
    width: 64%;
}

.cv-print-skill-meter--p65 span {
    width: 65%;
}

.cv-print-skill-meter--p66 span {
    width: 66%;
}

.cv-print-skill-meter--p67 span {
    width: 67%;
}

.cv-print-skill-meter--p68 span {
    width: 68%;
}

.cv-print-skill-meter--p69 span {
    width: 69%;
}

.cv-print-skill-meter--p70 span {
    width: 70%;
}

.cv-print-skill-meter--p71 span {
    width: 71%;
}

.cv-print-skill-meter--p72 span {
    width: 72%;
}

.cv-print-skill-meter--p73 span {
    width: 73%;
}

.cv-print-skill-meter--p74 span {
    width: 74%;
}

.cv-print-skill-meter--p75 span {
    width: 75%;
}

.cv-print-skill-meter--p76 span {
    width: 76%;
}

.cv-print-skill-meter--p77 span {
    width: 77%;
}

.cv-print-skill-meter--p78 span {
    width: 78%;
}

.cv-print-skill-meter--p79 span {
    width: 79%;
}

.cv-print-skill-meter--p80 span {
    width: 80%;
}

.cv-print-skill-meter--p81 span {
    width: 81%;
}

.cv-print-skill-meter--p82 span {
    width: 82%;
}

.cv-print-skill-meter--p83 span {
    width: 83%;
}

.cv-print-skill-meter--p84 span {
    width: 84%;
}

.cv-print-skill-meter--p85 span {
    width: 85%;
}

.cv-print-skill-meter--p86 span {
    width: 86%;
}

.cv-print-skill-meter--p87 span {
    width: 87%;
}

.cv-print-skill-meter--p88 span {
    width: 88%;
}

.cv-print-skill-meter--p89 span {
    width: 89%;
}

.cv-print-skill-meter--p90 span {
    width: 90%;
}

.cv-print-skill-meter--p91 span {
    width: 91%;
}

.cv-print-skill-meter--p92 span {
    width: 92%;
}

.cv-print-skill-meter--p93 span {
    width: 93%;
}

.cv-print-skill-meter--p94 span {
    width: 94%;
}

.cv-print-skill-meter--p95 span {
    width: 95%;
}

.cv-print-skill-meter--p96 span {
    width: 96%;
}

.cv-print-skill-meter--p97 span {
    width: 97%;
}

.cv-print-skill-meter--p98 span {
    width: 98%;
}

.cv-print-skill-meter--p99 span {
    width: 99%;
}

.cv-print-skill-meter--p100 span {
    width: 100%;
}

/* ==========================================================================
   CV PRINT · FINAL SECTION SPACING
   ========================================================================== */

.cv-print-section--identity {
    gap: 3mm;
}

.cv-print-section--identity .cv-print-list {
    margin-top: 1.2mm;
}

.cv-print-section__description {
    margin: 0 0 1.4mm;
    color: var(--cv-muted);
    font-size: 7.4pt;
    font-weight: 550;
    line-height: 1.38;
}

