.cv-page.cvt-portfolia{--pf-tint:color-mix(in srgb,var(--cv-primary) 3%,color-mix(in srgb,var(--cv-text) 3%,var(--cv-bg)));--pf-chip:color-mix(in srgb,var(--cv-primary) 12%,var(--cv-bg));--pf-disc:color-mix(in srgb,var(--cv-text) 9%,var(--cv-bg));--pf-radius:4pt;--pf-rail-dot:1.8em;--pf-rail-gap:1.5em;--cv-heading-gap:calc(var(--cv-gap-y) * 1.5)}.cvt-portfolia :is(.cv-link,.cv-rich a){color:var(--cv-primary)}.cvt-portfolia .cv-sidebar{background:var(--pf-tint)}.cvt-portfolia .pf-side-header{display:flex;flex-direction:column;gap:calc(var(--cv-gap-y) * 1.6)}.cvt-portfolia .pf-identity{display:flex;flex-direction:column;align-items:flex-start}.cvt-portfolia .pf-photo{margin-bottom:.9em}.cvt-portfolia .pf-name{font-size:calc(var(--cv-size-heading) * 1.35);line-height:1.25;letter-spacing:-.02em;color:var(--cv-text)}.cvt-portfolia .pf-headline,.cvt-portfolia .pf-name{font-family:var(--cv-font-heading);font-weight:var(--cv-weight-heading);text-wrap:balance}.cvt-portfolia .pf-headline{padding-top:.25em;font-size:calc(var(--cv-size-heading) * .95);line-height:1.35;letter-spacing:.01em;color:var(--cv-primary)}.cvt-portfolia .cv-sidebar .cv-section{position:relative}.cvt-portfolia .cv-sidebar>*+.cv-section:before{content:"";position:absolute;top:calc(var(--cv-section-gap) * -.5);right:0;left:0;border-top:1px solid var(--cv-divider);pointer-events:none}.cvt-portfolia .pf-side-heading{font-family:var(--cv-font-body);font-size:.82em;font-weight:var(--cv-weight-body);letter-spacing:.04em;color:var(--cv-subtle)}.cvt-portfolia .pf-rows{display:flex;flex-direction:column;gap:calc(var(--cv-gap-y) * .9)}.cvt-portfolia .pf-row{display:flex;align-items:center;gap:.75em;min-width:0}.cvt-portfolia .pf-row__icon{display:inline-flex;flex:none;align-items:center;justify-content:center;width:2em;height:2em;border-radius:50%;background:var(--pf-disc);color:var(--cv-muted)}.cvt-portfolia .pf-row__icon .cv-icon{width:1.05em;height:1.05em}.cvt-portfolia .pf-row__icon--chip{background:var(--pf-chip);color:var(--cv-primary)}.cvt-portfolia .pf-row__text{display:flex;flex-direction:column;gap:.1em;min-width:0}.cvt-portfolia .pf-row__label{font-size:.82em;line-height:1.3;letter-spacing:.01em;color:var(--cv-subtle)}.cvt-portfolia .pf-row__value{font-weight:var(--cv-weight-strong);line-height:1.3;color:var(--cv-muted);overflow-wrap:anywhere}.cvt-portfolia .pf-language{display:flex;flex-direction:column;align-items:flex-start;gap:.1em}.cvt-portfolia .pf-language__words{font-size:.82em;line-height:1.3;color:var(--cv-subtle)}.cvt-portfolia .pf-language__level{padding-top:.2em}.cvt-portfolia .pf-profile{display:block}.cvt-portfolia .cv-sidebar :is(.cv-section--languages,.cv-section--profiles,.cv-section--skills,.cv-section--tools){--cv-row-gap:calc(var(--cv-gap-y) * 0.9)}.cvt-portfolia .cv-main{--cv-section-gap:calc(var(--cv-gap-y) * 2.2);padding-left:calc(var(--cv-margin-x) * .75)}.cvt-portfolia .cv-main .cv-section{position:relative;padding-left:calc(var(--pf-rail-dot) + var(--pf-rail-gap))}.cvt-portfolia .cv-main .cv-section:before{content:"";position:absolute;top:0;bottom:calc(var(--cv-section-gap) * -1);left:calc(var(--pf-rail-dot) / 2);border-left:1px solid var(--cv-divider);pointer-events:none}.cvt-portfolia .cv-main .cv-section:last-child:before{display:none}.cvt-portfolia .pf-heading{position:relative;gap:0;letter-spacing:.01em;color:var(--cv-text)}.cvt-portfolia .pf-heading__dot{position:absolute;top:50%;left:calc(-1 * (var(--pf-rail-dot) + var(--pf-rail-gap)));display:flex;align-items:center;justify-content:center;width:var(--pf-rail-dot);height:var(--pf-rail-dot);border-radius:50%;background:var(--cv-bg);box-shadow:0 1px 3px color-mix(in srgb,var(--cv-text) 10%,transparent),0 0 0 1px color-mix(in srgb,var(--cv-text) 5%,transparent);transform:translateY(-50%)}.cvt-portfolia .pf-heading__dot:after{content:"";width:.42em;height:.42em;border-radius:50%;background:var(--cv-text)}.cvt-portfolia .cv-main :is(.cv-section--experience,.cv-section--volunteer,.cv-section--references){--cv-row-gap:calc(var(--cv-gap-y) * 1.4)}.cvt-portfolia .pf-entry{position:relative;grid-template-columns:minmax(0,34%) minmax(0,1fr);grid-template-areas:none;-moz-column-gap:1.2em;column-gap:1.2em;align-items:start;padding-left:1.3em}.cvt-portfolia .pf-entry:before{content:"";position:absolute;top:.4em;left:0;width:.5em;height:.5em;border-radius:50%;background:var(--cv-subtle)}.cvt-portfolia .pf-entry__meta{display:flex;flex-direction:column;gap:.15em;min-width:0}.cvt-portfolia .pf-when{display:flex;flex-wrap:wrap;align-items:center;-moz-column-gap:.6em;column-gap:.6em;padding-bottom:.25em;font-size:.82em;line-height:1.35;color:var(--cv-muted)}.cvt-portfolia .pf-when__place{display:inline-flex;align-items:center;gap:.25em;color:var(--cv-subtle)}.cvt-portfolia .pf-when__place .cv-icon{width:.9em;height:.9em}.cvt-portfolia .pf-entry__title{font-size:1.05em;font-weight:var(--cv-weight-strong);line-height:1.3}.cvt-portfolia .pf-entry__subtitle,.cvt-portfolia .pf-entry__tag{color:var(--cv-muted)}.cvt-portfolia .pf-entry__tag{font-size:.82em;letter-spacing:.02em;text-transform:uppercase;color:var(--cv-subtle)}.cvt-portfolia .pf-entry__extra{display:flex;flex-direction:column;font-size:.9em;color:var(--cv-muted);overflow-wrap:anywhere}.cvt-portfolia .pf-entry__link{padding-top:.1em;font-size:.9em}.cvt-portfolia .pf-entry__body{min-width:0;font-size:.92em;color:var(--cv-muted)}.cvt-portfolia .pf-entry__body .cv-rich li::marker{color:var(--cv-primary)}.cvt-portfolia .cv-row--items[style*="--cv-row-columns: 2"] .pf-entry,.cvt-portfolia .cv-row--items[style*="--cv-row-columns: 3"] .pf-entry,.cvt-portfolia .cv-sidebar .pf-entry{grid-template-columns:minmax(0,1fr)}.cvt-portfolia .cv-row--items[style*="--cv-row-columns: 2"] .pf-entry__body,.cvt-portfolia .cv-row--items[style*="--cv-row-columns: 3"] .pf-entry__body,.cvt-portfolia .cv-sidebar .pf-entry__body{padding-top:.35em}.cvt-portfolia .pf-card{display:flex;flex-direction:column;gap:.15em;min-width:0;height:100%;padding:.9em 1.1em;border-radius:var(--pf-radius);background:var(--pf-tint)}.cvt-portfolia .cv-sidebar .pf-card{background:var(--cv-bg)}.cvt-portfolia :is(.cv-section--education,.cv-section--projects,.cv-section--certifications,.cv-section--awards,.cv-section--publications,.cv-section--tools)>.cv-row--items{-moz-column-gap:.5em;column-gap:.5em;align-items:stretch}.cvt-portfolia :is(.cv-section--education,.cv-section--projects,.cv-section--certifications,.cv-section--awards,.cv-section--publications,.cv-section--tools){--cv-row-gap:0.5em}.cvt-portfolia .pf-card__subtitle{font-size:.82em;color:var(--cv-muted)}.cvt-portfolia .pf-card__subtitle,.cvt-portfolia .pf-card__title{font-weight:var(--cv-weight-strong);line-height:1.3}.cvt-portfolia .pf-card__when{font-size:.82em;line-height:1.35;color:var(--cv-subtle)}.cvt-portfolia .pf-card__extra{display:flex;flex-wrap:wrap;-moz-column-gap:.8em;column-gap:.8em;font-size:.9em;color:var(--cv-muted);overflow-wrap:anywhere}.cvt-portfolia .pf-card__body{padding-top:.25em;font-size:.92em;color:var(--cv-muted)}.cvt-portfolia .pf-card__link{display:flex;align-items:center;gap:.5em;min-width:0;margin-top:auto;padding-top:.6em;font-size:.92em;font-weight:var(--cv-weight-strong)}.cvt-portfolia .pf-card__link .pf-row__icon{width:1.6em;height:1.6em}.cvt-portfolia .pf-card__link .pf-row__icon .cv-icon{width:.9em;height:.9em}.cvt-portfolia .pf-skill{display:grid;grid-template-columns:minmax(0,8em) minmax(0,1fr);grid-template-areas:none;-moz-column-gap:1em;column-gap:1em;align-items:center}.cvt-portfolia .cv-row--items[style*="--cv-row-columns: 2"] .pf-skill,.cvt-portfolia .cv-row--items[style*="--cv-row-columns: 3"] .pf-skill,.cvt-portfolia .cv-sidebar .pf-skill{grid-template-columns:minmax(0,1fr);row-gap:.35em}.cvt-portfolia .pf-skill__head{display:flex;flex-wrap:wrap;align-items:center;gap:.3em .6em;min-width:0}.cvt-portfolia .pf-skill__head .pf-row__icon{width:1.7em;height:1.7em}.cvt-portfolia .pf-skill__head .pf-row__icon .cv-icon{width:.95em;height:.95em}.cvt-portfolia .pf-skill .cv-skill__name{font-weight:var(--cv-weight-strong)}.cvt-portfolia .pf-skill__words{font-size:.82em;color:var(--cv-subtle)}.cvt-portfolia .pf-skill__level{display:inline-flex;flex-basis:100%}.cvt-portfolia .pf-skill__list{font-size:.92em;color:var(--cv-muted)}.cvt-portfolia .pf-chips{display:flex;flex-wrap:wrap;gap:.35em}.cvt-portfolia .cv-inline--interests .cv-inline__item,.cvt-portfolia .pf-chip{display:inline-flex;align-items:center;gap:.35em;padding:.3em .65em;border-radius:var(--pf-radius);background:var(--pf-chip);font-size:.9em;font-weight:var(--cv-weight-strong);line-height:1.3;color:var(--cv-primary)}.cvt-portfolia .pf-tool{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2em;padding:.9em .6em;text-align:center}.cvt-portfolia .pf-tool__icon{display:inline-flex;margin-bottom:.3em;color:var(--cv-primary)}.cvt-portfolia .pf-tool__icon .cv-icon{width:2.25em;height:2.25em}.cvt-portfolia .pf-tool__name{justify-content:center;font-weight:var(--cv-weight-strong);line-height:1.3}.cvt-portfolia .pf-tool__sub{font-size:.82em;line-height:1.3;color:var(--cv-subtle)}.cvt-portfolia .pf-tool__level{padding-top:.3em}.cvt-portfolia .cv-inline--tools{display:flex;flex-wrap:wrap;gap:.4em}.cvt-portfolia .cv-inline--tools .cv-inline__item{display:inline-flex;align-items:center;gap:.45em;padding:.4em .7em;border-radius:var(--pf-radius);background:var(--pf-tint);font-weight:var(--cv-weight-strong);line-height:1.3}.cvt-portfolia .cv-sidebar .cv-inline--tools .cv-inline__item{background:var(--cv-bg)}.cvt-portfolia .cv-inline--tools .cv-inline__item .cv-icon{width:1.25em;height:1.25em;margin-right:0;vertical-align:middle}.cvt-portfolia .cv-inline--interests{display:flex;flex-wrap:wrap;gap:.35em}.cvt-portfolia .cv-inline :is(.cv-inline__item+.cv-inline__item):before{content:none}.cvt-portfolia .cv-sidebar .cv-row--text{color:var(--cv-muted)}.cvt-portfolia .cv-jobsearch__grid{gap:.5em}.cvt-portfolia .cv-jobsearch__item{display:flex;flex-direction:column;gap:.1em;min-width:0;padding:.7em .9em;border-radius:var(--pf-radius);background:var(--pf-tint)}.cvt-portfolia .cv-sidebar .cv-jobsearch__item{background:var(--cv-bg)}.cvt-portfolia .cv-jobsearch__label{font-size:.82em;letter-spacing:.01em;text-transform:none}.cvt-portfolia .cv-jobsearch__value{line-height:1.3}.cvt-portfolia .cv-sidebar .cv-section--tools>.cv-row--items{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:.5em}.cv-page.cvt-bloomline{--bl-label:30%;--bl-hairline:color-mix(in srgb,var(--cv-text) 8%,var(--cv-bg));--bl-chip:color-mix(in srgb,var(--cv-text) 7%,var(--cv-bg));--bl-green:var(--cv-secondary);--bl-coral:color-mix(in srgb,var(--cv-secondary) 60%,var(--cv-primary));--bl-blue:color-mix(in srgb,var(--cv-secondary) 40%,var(--cv-text));--cv-section-gap:calc(var(--cv-gap-y) * 3);--cv-row-gap:calc(var(--cv-gap-y) * 2.1);--cv-heading-gap:0px}@supports (color:oklch(from red l c calc(h + 120))){.cv-page.cvt-bloomline{--bl-coral:oklch(from var(--cv-secondary) l c calc(h - 120));--bl-blue:oklch(from var(--cv-secondary) l c calc(h + 120))}}.cvt-bloomline .bl-header{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center}.cvt-bloomline .bl-header__photo{margin-bottom:1.1em}.cvt-bloomline .bl-header__name{font-family:var(--cv-font-heading);font-size:calc(var(--cv-size-heading) * 1.25);font-weight:var(--cv-weight-heading);line-height:1.2;color:var(--cv-primary);text-wrap:balance}.cvt-bloomline .bl-header__headline{padding-top:.25em;font-size:1.1em;letter-spacing:.02em;line-height:1.35;color:var(--cv-muted)}.cvt-bloomline .bl-header__contacts{justify-content:space-evenly;align-self:stretch;gap:.6em 2.5em;padding-top:2.6em;font-size:1.1em;letter-spacing:.01em;color:var(--cv-muted)}.cvt-bloomline .bl-header__contacts .cv-contacts__item{gap:.6em}.cvt-bloomline .bl-header__contacts .cv-contacts__icon{width:.9em;height:.9em;color:var(--cv-primary)}.cvt-bloomline .bl-header__details{justify-content:center;gap:.3em 1.6em;padding-top:.6em;color:var(--cv-subtle)}.cvt-bloomline .bl-header__rule{display:block;align-self:stretch;height:1px;margin-top:2.6em;background:var(--bl-hairline)}.cv-page.cvt-bloomline .cv-section{display:grid;grid-template-columns:calc(var(--bl-label) - var(--cv-gap-x)) minmax(0,1fr);-moz-column-gap:var(--cv-gap-x);column-gap:var(--cv-gap-x);align-items:start}.cv-page.cvt-bloomline .cv-section>.cv-section__heading{grid-row:1;grid-column:1;align-self:start;margin-bottom:0;padding-bottom:0}.cv-page.cvt-bloomline .cv-section>.cv-row{grid-column:2}.cvt-bloomline .bl-heading{gap:.4em;letter-spacing:.02em;text-transform:uppercase;overflow-wrap:anywhere}.cv-page.cvt-bloomline .cv-section--summary{row-gap:.45em}.cvt-bloomline .cv-row--text{color:var(--cv-muted)}.cvt-bloomline .bl-entry{display:flex;flex-direction:column;align-items:stretch;min-width:0}.cvt-bloomline .bl-entry__lead{font-size:1.1em;font-weight:var(--cv-weight-strong);letter-spacing:.02em;line-height:1.3}.cvt-bloomline .bl-entry__role{padding-top:.3em;letter-spacing:.01em;line-height:1.4}.cvt-bloomline .bl-entry__meta,.cvt-bloomline .bl-entry__role--muted{color:var(--cv-muted)}.cvt-bloomline .bl-entry__meta{padding-top:.25em;letter-spacing:.01em;line-height:1.4}.cvt-bloomline .bl-entry__extra{display:flex;flex-wrap:wrap;-moz-column-gap:.9em;column-gap:.9em;padding-top:.25em;color:var(--cv-muted)}.cvt-bloomline .bl-entry__link{min-width:0;padding-top:.25em}.cvt-bloomline .bl-entry__body{padding-top:.7em;color:var(--cv-muted)}.cvt-bloomline .cv-rich ol,.cvt-bloomline .cv-rich ul{padding-left:1.35em}.cvt-bloomline .cv-rich li::marker{color:var(--cv-text)}.cvt-bloomline .cv-role__position{color:var(--cv-text)}.cvt-bloomline :is(.cv-inline--skills,.cv-inline--tools,.cv-inline--interests){display:flex;flex-wrap:wrap;gap:.9em}.cvt-bloomline :is(.cv-inline--skills,.cv-inline--tools,.cv-inline--interests) .cv-inline__item{display:inline-flex;align-items:center;padding:.45em .9em;border-radius:999px;background:var(--bl-chip);line-height:1.2}.cvt-bloomline :is(.cv-inline--skills,.cv-inline--tools,.cv-inline--interests) .cv-inline__item+.cv-inline__item:before{content:none}.cvt-bloomline :is(.cv-inline--languages,.cv-inline--profiles){line-height:1.7;color:var(--cv-muted)}.cvt-bloomline .cv-inline--profiles{font-size:1.1em}.cvt-bloomline .cv-inline--profiles .cv-icon{color:var(--cv-primary)}.cvt-bloomline .bl-jobsearch__part,.cvt-bloomline :is(.cv-inline--languages,.cv-inline--profiles) .cv-inline__item{display:inline-block;white-space:nowrap}.cvt-bloomline :is(.cv-inline--languages,.cv-inline--profiles) .cv-inline__item+.cv-inline__item:before{content:none}.cvt-bloomline .bl-jobsearch__part:not(:last-child):after,.cvt-bloomline :is(.cv-inline--languages,.cv-inline--profiles) .cv-inline__item:not(:last-child):after{content:"|";padding:0 1em;color:var(--cv-subtle)}.cvt-bloomline .bl-jobsearch__line{line-height:1.7;color:var(--cv-muted)}.cvt-bloomline .bl-jobsearch__note{padding-top:.45em;color:var(--cv-muted)}.cvt-bloomline .bl-confetti{position:absolute;top:0;left:0;width:100%;height:auto;pointer-events:none}.cvt-bloomline .bl-confetti__ring{fill:none;stroke:color-mix(in srgb,var(--bl-coral) 28%,transparent);stroke-width:2}.cvt-bloomline .bl-confetti__triangle{fill:color-mix(in srgb,var(--bl-blue) 50%,transparent)}.cvt-bloomline .bl-confetti__dash{stroke:color-mix(in srgb,var(--bl-green) 67%,transparent);stroke-width:2}