:root{--color-bg:#f7f8fb;--color-surface:#fff;--color-text:#1a1f2e;--color-text-muted:#5c6578;--color-accent:#1e4fd6;--color-accent-soft:#e8efff;--color-border:#dde3ef;--color-highlight:#fff8e6;--color-highlight-border:#f0d58a;--color-badge-active:#0f7a4a;--color-badge-active-bg:#e6f6ee;--color-badge-done:#5c6578;--color-badge-done-bg:#eef1f6;--shadow-sm:0 1px 2px rgb(20 32 60/6%);--shadow-md:0 8px 24px rgb(20 32 60/8%);--radius:0.875rem;--content-width:52rem;--section-gap:2.5rem}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:radial-gradient(circle at top right,rgb(30 79 214/6%),transparent 28rem),var(--color-bg);color:var(--color-text);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:1rem;line-height:1.65}a{color:var(--color-accent);text-decoration-thickness:1px;text-underline-offset:.15em}a:hover{text-decoration-thickness:2px}.page{margin:0 auto;padding:2rem 0 4rem;width:min(calc(100% - 2rem),var(--content-width))}.hero{align-items:start;display:grid;gap:1.5rem 2rem;grid-template-columns:minmax(0,1fr) auto;margin-bottom:var(--section-gap)}.hero__photo{flex-shrink:0;justify-self:end;margin:0}.hero__title{font-size:clamp(2rem,5vw,3.25rem);letter-spacing:-.02em;line-height:1.1}.hero__subtitle{color:var(--color-text-muted);font-size:1.125rem;margin-top:.75rem;max-width:36rem}.hero__summary{color:var(--color-text);font-size:1rem;margin-top:1rem;max-width:38rem}.hero__summary code{font-size:.9em}.hero__age{background:var(--color-accent-soft);border-radius:999px;color:var(--color-accent);display:inline-block;font-size:1rem;font-weight:600;margin-top:.75rem;padding:.25rem .75rem}.photo{aspect-ratio:1;border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-md);display:block;height:auto;max-width:100%;object-fit:cover;object-position:center top;width:11.5rem}.section{margin-bottom:var(--section-gap)}.section__title{border-bottom:2px solid var(--color-text);font-size:1.125rem;font-weight:700;letter-spacing:.08em;margin-bottom:1rem;padding-bottom:.5rem;text-transform:uppercase}.section__lead{color:var(--color-text-muted);margin-bottom:1rem}.employment{background:var(--color-highlight);border:1px solid var(--color-highlight-border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:1.25rem 1.5rem}.employment__company{font-size:1.25rem;font-weight:700}.employment__period{font-size:.9375rem}.employment__period,.employment__role{color:var(--color-text-muted);margin-top:.35rem}.employment__note{margin-top:.75rem}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:1.25rem 1.5rem}.card+.card{margin-top:1rem}.card__header{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem .75rem;margin-bottom:.75rem}.card__title{font-size:1.2rem;font-weight:700}.badge{align-items:center;border-radius:999px;display:inline-flex;font-size:.8125rem;font-weight:600;padding:.15rem .55rem;white-space:nowrap}.badge--active{background:var(--color-badge-active-bg);color:var(--color-badge-active)}.badge--done{background:var(--color-badge-done-bg);color:var(--color-badge-done)}.card__meta{display:flex;flex-wrap:wrap;font-size:.9375rem;gap:.5rem 1rem;margin-bottom:.75rem}.card__meta a{font-weight:500}.card__text+.card__text{margin-top:.75rem}.card__title+.card__title{margin-top:1.25rem}.card__list{margin:.75rem 0 0 1.25rem}.card__list li+li{margin-top:.35rem}.tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.85rem}.tag{background:#f3f6fb;border:1px solid var(--color-border);border-radius:999px;color:var(--color-text-muted);font-size:.8125rem;padding:.2rem .55rem}.contacts{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr))}.contact{align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:calc(var(--radius) - .125rem);display:flex;gap:.65rem;padding:.75rem .9rem}.contact__icon{flex-shrink:0;height:1.25rem;opacity:.85;width:1.25rem}.contact__label{color:var(--color-text-muted);display:block;font-size:.75rem;letter-spacing:.04em;text-transform:uppercase}.contact__value{font-weight:600;word-break:break-word}.skills-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr))}.skill-group{background:var(--color-surface);border:1px solid var(--color-border);border-radius:calc(var(--radius) - .125rem);padding:1rem 1.1rem}.skill-group h3{font-size:.95rem;margin-bottom:.65rem}.skill-group ul{margin-left:1.1rem}.skill-group li+li{margin-top:.25rem}.skill-group em{font-style:normal;font-weight:600}.skill-level{margin-bottom:1rem}.footer,.skill-level{color:var(--color-text-muted);font-size:.9375rem}.footer{border-top:1px solid var(--color-border);margin-top:3rem;padding-top:1rem}@media (max-width:720px){.page{padding-top:1.25rem;width:min(calc(100% - 1.25rem),var(--content-width))}.hero{gap:1.25rem;grid-template-columns:1fr;justify-items:center;text-align:center}.hero__photo{justify-self:center;order:-1}.hero__subtitle,.hero__summary{max-width:none}.photo{max-width:42vw;width:8.75rem}.contacts{grid-template-columns:1fr}}@media print{:root{--color-bg:#fff;--section-gap:1.5rem;--shadow-sm:none;--shadow-md:none}body{background:#fff;font-size:.9375rem;line-height:1.5}.page{padding:0;width:100%}.hero{align-items:flex-start;break-inside:avoid;display:flex;flex-direction:row;gap:1.25rem;margin-bottom:1.25rem;page-break-inside:avoid;text-align:left}.hero__photo{margin:0;order:0}.photo{aspect-ratio:1;border:1px solid #bbb;box-shadow:none;height:auto;max-width:6.5rem;object-fit:cover;width:6.5rem}.section{margin-bottom:1.25rem}.card,.employment,.hero,.section{break-inside:avoid;page-break-inside:avoid}.card{padding:.9rem 1rem}.card+.card{margin-top:.75rem}a{color:inherit;text-decoration:none}.footer,.not-printable{display:none}}