:root {
    --cv-bg: #1f2229;
    --cv-bg-soft: #262a33;
    --cv-surface: #f2f3f7;
    --cv-card: #ffffff;
    --cv-text: #30333a;
    --cv-muted: #6f7380;
    --cv-line: #d7dae3;
    --cv-accent: #3e9d78;
    --cv-accent-soft: #67b695;
    --cv-accent-deep: #2a6f55;
    --cv-white: #ffffff;
}

html,
body {
    margin: 0;
    padding: 0;
    background: #e7e9ee;
    color: var(--cv-text);
    font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

body,
p,
li {
    font-size: 10px;
    line-height: 1.36;
}

h1,
h2,
h3,
h4,
h5,
h6,
p {
    margin: 0;
}

a {
    color: inherit;
    text-decoration: none;
}

.cv-page {
    width: 210mm;
    min-height: 297mm;
    box-sizing: border-box;
    margin: 12px auto;
    padding: 8mm;
    background:
        radial-gradient(circle at top left, rgba(62, 157, 120, 0.05), transparent 16%),
        linear-gradient(180deg, #282c34 0%, #20242b 100%);
    color: var(--cv-white);
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.14);
}

.cv-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) 58mm;
    gap: 7mm;
    align-items: center;
    margin-bottom: 6mm;
}

.cv-kicker {
    color: rgba(255, 255, 255, 0.72);
    font-size: 8px;
    font-weight: 600;
    letter-spacing: 0.08em;
}

.cv-name {
    margin-top: 1mm;
    font-family: "Manrope", "Inter", sans-serif;
    font-size: 24px;
    font-weight: 800;
    line-height: 0.96;
    letter-spacing: -0.03em;
    text-transform: uppercase;
}

.cv-title {
    margin-top: 2.2mm;
    font-family: "Manrope", "Inter", sans-serif;
    font-size: 10.6px;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.86);
}

.cv-summary {
    max-width: 112mm;
    margin-top: 2.4mm;
    color: rgba(255, 255, 255, 0.82);
}

.cv-summary p {
    margin: 0;
}

.cv-summary p + p {
    margin-top: 1.8mm;
}

.cv-hero-visual {
    position: relative;
    height: 46mm;
    display: flex;
    align-items: center;
    justify-content: center;
}

.cv-photo-accent {
    position: absolute;
    width: 38mm;
    height: 38mm;
    border-radius: 50%;
    background: radial-gradient(circle, var(--cv-accent) 0%, var(--cv-accent-deep) 100%);
}

.cv-photo {
    position: relative;
    z-index: 1;
    width: 32mm;
    height: 38mm;
    object-fit: cover;
    object-position: center top;
    border-radius: 14px;
}

.cv-focus-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 4mm;
    margin-bottom: 5mm;
}

.cv-focus-card {
    padding: 2.8mm;
    border-radius: 9px;
    border: 1px solid rgba(255, 255, 255, 0.06);
    background: var(--cv-card);
    color: var(--cv-text);
}

.cv-card-tag {
    display: inline-flex;
    margin-bottom: 1.2mm;
    padding: 0.5mm 1.1mm;
    border-radius: 999px;
    background: rgba(62, 157, 120, 0.08);
    color: var(--cv-accent-deep);
    font-size: 6.4px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.cv-focus-card h2 {
    margin-bottom: 1mm;
    font-family: "Manrope", "Inter", sans-serif;
    font-size: 8.8px;
    font-weight: 800;
    text-transform: uppercase;
}

.cv-focus-card p {
    color: var(--cv-muted);
}

.cv-accent-band {
    display: grid;
    grid-template-columns: 1.1fr 1fr 0.9fr;
    gap: 4mm;
    margin-bottom: 5mm;
    padding: 2.6mm 3.2mm;
    border-radius: 9px;
    border: 1px solid rgba(103, 182, 149, 0.28);
    background: rgba(62, 157, 120, 0.08);
}

.cv-band-block h2 {
    margin-bottom: 1.1mm;
    font-family: "Manrope", "Inter", sans-serif;
    font-size: 7.4px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.9);
}

.cv-band-block p {
    margin-bottom: 0.6mm;
    color: rgba(255, 255, 255, 0.8);
}

.cv-band-block p:last-child {
    margin-bottom: 0;
}

.cv-link-row {
    display: flex;
    align-items: center;
    gap: 1.8mm;
    margin: 0.4mm 0 0.8mm;
}

.cv-link-row p {
    margin: 0;
}

.cv-qr-link {
    display: inline-flex;
    margin: 0;
    opacity: 0.88;
    flex-shrink: 0;
}

.cv-qr-code {
    width: 14mm;
    height: 14mm;
    border-radius: 3px;
    background: rgba(255, 255, 255, 0.94);
    padding: 0.7mm;
}

.cv-main-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) 56mm;
    gap: 5mm;
}

.cv-main-column,
.cv-side-column {
    min-width: 0;
}

.cv-section,
.cv-side-panel {
    padding: 3.4mm;
    border-radius: 10px;
    background: var(--cv-card);
    color: var(--cv-text);
}

.cv-side-column {
    display: flex;
    flex-direction: column;
    gap: 4mm;
}

.cv-section-heading {
    margin-bottom: 2.4mm;
    font-family: "Manrope", "Inter", sans-serif;
    font-size: 8px;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--cv-accent-deep);
}

.cv-experience {
    padding-top: 2.4mm;
    margin-top: 2.4mm;
    border-top: 1px solid var(--cv-line);
}

.cv-experience:first-of-type {
    margin-top: 0;
    padding-top: 0;
    border-top: 0;
}

.cv-experience.featured {
    margin-top: 0;
    padding: 3.2mm;
    border-top: 0;
    border-left: 4px solid var(--cv-accent);
    border-radius: 8px;
    background: linear-gradient(180deg, rgba(62, 157, 120, 0.08) 0%, rgba(62, 157, 120, 0.03) 100%);
}

.cv-experience h3 {
    font-family: "Manrope", "Inter", sans-serif;
    font-size: 9.6px;
    font-weight: 800;
    text-transform: uppercase;
}

.cv-meta {
    margin-top: 1mm;
    margin-bottom: 1.4mm;
    color: var(--cv-muted);
    font-size: 7.9px;
    font-weight: 600;
}

.cv-highlight-line {
    margin-bottom: 1.6mm;
    color: var(--cv-accent-deep);
    font-size: 7.3px;
    font-weight: 700;
    letter-spacing: 0.04em;
}

.cv-content-list,
.cv-side-list {
    margin: 0;
    padding-left: 0;
    list-style: none;
    color: var(--cv-text);
}

.cv-content-list li,
.cv-side-list li {
    position: relative;
    padding-left: 5.2mm;
    margin-bottom: 1.15mm;
}

.cv-content-list li::before,
.cv-side-list li::before {
    content: "";
    position: absolute;
    left: 1mm;
    top: 0.72em;
    width: 1.55mm;
    height: 1.55mm;
    border-radius: 0.35mm;
    transform: translateY(-50%);
    background: var(--cv-accent-deep);
    box-shadow: 0 0 0 0.4mm rgba(62, 157, 120, 0.08);
}

.cv-content-list li::after,
.cv-side-list li::after {
    content: "";
    position: absolute;
    left: 1.75mm;
    top: calc(0.72em + 1.35mm);
    bottom: -1.25mm;
    width: 1px;
    background: linear-gradient(180deg, rgba(62, 157, 120, 0.24) 0%, rgba(62, 157, 120, 0.06) 100%);
}

.cv-side-list li::before {
    width: 1.3mm;
    height: 1.3mm;
    left: 1.1mm;
    border-radius: 0.3mm;
    box-shadow: 0 0 0 0.3mm rgba(62, 157, 120, 0.06);
}

.cv-side-list li::after {
    left: 1.75mm;
    top: calc(0.72em + 1.15mm);
    bottom: -1.1mm;
}

.cv-content-list li:last-child,
.cv-side-list li:last-child {
    margin-bottom: 0;
}

.cv-content-list li:last-child::after,
.cv-side-list li:last-child::after {
    display: none;
}

.cv-project {
    background: linear-gradient(180deg, rgba(62, 157, 120, 0.05) 0%, rgba(62, 157, 120, 0.015) 100%);
    border-radius: 8px;
    padding: 2.4mm;
    margin-top: 3mm;
    border-top: 0;
}

@media screen and (max-width: 900px) {
    .cv-page {
        width: auto;
        min-height: auto;
        margin: 0;
        padding: 18px;
        box-shadow: none;
    }

    .cv-hero,
    .cv-focus-grid,
    .cv-accent-band,
    .cv-main-grid {
        grid-template-columns: 1fr;
    }

    .cv-summary {
        max-width: none;
    }
}

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

@media print {
    html,
    body {
        width: 210mm;
        min-height: 297mm;
        margin: 0;
        padding: 0;
        background: #ffffff;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    body,
    p,
    li {
        font-size: 10px;
        line-height: 1.36;
    }

    .cv-page {
        width: 210mm;
        min-height: 297mm;
        margin: 0;
        padding: 8mm;
        box-shadow: none;
        background: linear-gradient(180deg, #2a2d36 0%, #1f2229 100%);
        overflow: hidden;
    }

    .cv-page,
    .cv-focus-card,
    .cv-accent-band,
    .cv-section,
    .cv-side-panel,
    .cv-experience {
        break-inside: avoid;
        page-break-inside: avoid;
    }
}
