/** Standalone A4 CV. The only deliberate visual variation from SWD2026 is Kumbh Sans. */
@page { size: A4 portrait; margin: 0; }

:root {
    color-scheme: light;
    --cv-page-width: 210mm;
    --cv-page-height: 297mm;
    --cv-page-bg: #f6f0e6;
    --cv-text: #0f1115;
    --cv-muted: #2d3036;
    --cv-line: rgb(15 17 21 / 16%);
    --cv-accent: #f2b705;
    --cv-photo-width: 74mm;
    --cv-lower-width: calc((var(--cv-page-width) * 0.65) - 12mm);
}

html,
body.cv-document {
    width: var(--cv-page-width);
    min-width: var(--cv-page-width);
    min-height: var(--cv-page-height);
    margin: 0 auto;
    padding: 0;
    overflow: auto;
    background: var(--cv-page-bg);
    color: var(--cv-text);
    font-family: "Kumbh Sans", sans-serif;
}

.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 { position: absolute; z-index: 0; inset: 0; background: linear-gradient(90deg, transparent, rgb(15 17 21 / 2.5%)); content: ""; 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; z-index: 1; right: 0; bottom: 0; display: flex; width: var(--cv-photo-width); height: var(--cv-page-height); align-items: flex-end; justify-content: flex-end; overflow: hidden; pointer-events: none; }
.cv-print-photo { display: block; width: 100%; height: 100%; object-fit: contain; object-position: right bottom; }
.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; font-size: 7pt; font-weight: 700; letter-spacing: 0.18em; line-height: 1.1; text-transform: uppercase; }
.cv-print-name { max-width: 142mm; margin: 0; color: var(--cv-accent); font-size: 28pt; font-weight: 700; 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.7mm 0.8mm 1.2mm rgb(15 17 21 / 32%); }
.cv-print-role { max-width: 150mm; margin: 0; color: var(--cv-muted); font-size: 11pt; font-weight: 700; 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; align-items: start; justify-self: center; text-align: left; }
.cv-print-contact div,
.cv-print-data-grid div { display: grid; min-width: 0; gap: 0.6mm; }
.cv-print-contact dt,
.cv-print-data-grid dt { margin: 0; font-size: 6.4pt; font-weight: 700; 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: 600; line-height: 1.24; overflow-wrap: anywhere; }
.cv-print-contact a,
.cv-print-item a { position: relative; z-index: 4; color: var(--cv-text); 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: 700; letter-spacing: 0.14em; line-height: 1.12; text-transform: uppercase; }
.cv-print-section__title::after { display: block; height: 0.25mm; flex: 1 1 auto; background: var(--cv-line); content: ""; }
.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-section--identity { gap: 3mm; }

.cv-print-list,
.cv-print-skills,
.cv-print-items { display: grid; gap: 1.25mm; margin: 0; padding: 0; list-style: none; }
.cv-print-list { margin-top: 1.2mm; }
.cv-print-list li { display: flex; min-width: 0; justify-content: space-between; gap: 2mm; padding-bottom: 0.9mm; border-bottom: 0.15mm solid rgb(15 17 21 / 8%); color: var(--cv-muted); font-size: 7.3pt; line-height: 1.32; }
.cv-print-list strong,
.cv-print-skill-value { color: var(--cv-accent); font-weight: 700; white-space: nowrap; }
.cv-print-language { display: grid !important; grid-template-columns: max-content minmax(16mm, 1fr) auto; align-items: center; gap: 0.75mm 10px !important; }

.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; min-width: 0; gap: 0.75mm 10px; padding-bottom: 0.95mm; border-bottom: 0.15mm solid rgb(15 17 21 / 8%); 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: 700; overflow-wrap: anywhere; }
.cv-print-skill small { grid-column: 1 / -1; color: var(--cv-muted); font-size: 6.6pt; font-weight: 700; }
.cv-print-meter { position: relative; display: block; width: 100%; height: 1.2mm; align-self: center; overflow: hidden; border-radius: 999mm; background: rgb(15 17 21 / 12%); }
.cv-print-meter span { position: absolute; inset: 0 auto 0 0; display: block; width: 0; border-radius: inherit; background: var(--cv-skill-color); }
.cv-meter--p25 { --cv-skill-color: #f28c28; }
.cv-meter--p25 span { width: 25%; }
.cv-meter--p70,
.cv-meter--p75,
.cv-meter--p80 { --cv-skill-color: #94b83d; }
.cv-meter--p70 span { width: 70%; }
.cv-meter--p75 span { width: 75%; }
.cv-meter--p80 span { width: 80%; }
.cv-meter--p85,
.cv-meter--p88,
.cv-meter--p90,
.cv-meter--p95,
.cv-meter--p100 { --cv-skill-color: #179c6b; }
.cv-meter--p85 span { width: 85%; }
.cv-meter--p88 span { width: 88%; }
.cv-meter--p90 span { width: 90%; }
.cv-meter--p95 span { width: 95%; }
.cv-meter--p100 span { width: 100%; }

.cv-print-section__description { margin: 0 0 1.4mm; color: var(--cv-muted); font-size: 7.4pt; font-weight: 500; line-height: 1.38; }
.cv-print-items { gap: 2mm; }
.cv-print-item { display: grid; min-width: 0; gap: 0.75mm; padding-bottom: 1.7mm; border-bottom: 0.15mm solid rgb(15 17 21 / 10%); }
.cv-print-item h3 { margin: 0; color: var(--cv-text); font-size: 7.8pt; font-weight: 700; 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 !important; font-weight: 700; }

.cv-print-actions { position: fixed; z-index: 20; right: 16px; bottom: 16px; display: flex; flex-wrap: wrap; gap: 10px; }
.cv-print-action { --swd-push-bg: var(--cv-text); --swd-push-border: var(--cv-text); --swd-push-color: #fff; --swd-push-min-height: 42px; --swd-push-padding: 10px 16px; --swd-push-radius: 999px; min-height: var(--swd-push-min-height); border-radius: var(--swd-push-radius); font: inherit; font-size: 14px; font-weight: 700; line-height: 1.1; }
.cv-print-action--secondary { --swd-push-bg: var(--cv-accent); --swd-push-border: var(--cv-accent); --swd-push-color: var(--cv-text); }

@media print {
    html,
    body.cv-document,
    .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; }
}
