/* CV landing page: hero and first resume section. */
.cv-site-header {
    background: var(--color-darkblue-800);
    border-bottom: 1px solid var(--color-darkblue-600);
}

.cv-site-header .top-nav {
    height: 86px;
    padding: var(--spacing-xl) 0;
    background: var(--color-darkblue-800);
}

.cv-site-header .top-nav > .container {
    width: min(100%, var(--container-width));
    max-width: var(--container-width);
}

.cv-site-header .top-nav .row {
    align-items: center;
    flex-wrap: nowrap;
    gap: var(--spacing-4xl);
    margin: 0;
}

.cv-site-header .top-nav .row > * {
    width: auto;
    padding: 0;
    margin: 0;
}

.cv-site-header .top-nav__logo {
    flex: 0 0 auto;
}

.cv-site-header .cv-links {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-xs);
    flex: 0 0 auto;
    height: 28px;
    padding: var(--spacing-xs) var(--spacing-md);
    border-radius: var(--radius-sm);
    background: var(--color-darkblue-700);
}

.cv-site-header .cv-link {
    color: var(--color-blue-100);
    font: var(--font-text-md-regular);
    text-decoration: none;
}

.cv-site-header .top-nav .col.d-none {
    display: block !important;
    flex: 1 1 auto;
}

.cv-site-header .top-nav .menu {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: var(--spacing-4xl);
    margin: 0;
    padding: 0;
    list-style: none;
}

.cv-site-header .top-nav .menu > li {
    margin: 0;
    padding: 0;
}

.cv-site-header .top-nav .menu > li > a {
    color: var(--color-blue-100);
    font: var(--font-text-xl-regular);
    text-decoration: none;
}

.cv-site-header .top-nav .menu > li:first-child > a {
    padding: var(--spacing-xs) var(--spacing-md);
    border-radius: var(--radius-sm);
    background: color-mix(in srgb, var(--color-blue-25) 5%, transparent);
}

.cv-site-header .top-nav .col-auto:has(.top-nav__toggle-search) {
    display: none;
}

.cv-site-header .top-nav__toggle-search,
.cv-site-header .top-nav .toggle-menu-mobile {
    display: none;
    background: color-mix(in srgb, var(--color-blue-25) 90%, transparent);
}

.cv-page {
    background: var(--color-base-white);
}

.cv-page__body {
    width: min(100%, var(--container-width));
    max-width: var(--container-width);
    margin: 0 auto;
    padding-right: var(--container-offset);
    padding-left: var(--container-offset);
    box-sizing: border-box;
}

.cv-page__body > * {
    width: 100%;
    max-width: none;
    margin-right: auto;
    margin-left: auto;
}

.cv-page__body > h2,
.cv-page__body > .wp-block-heading,
.cv-page__body > .wp-block-paragraph {
    box-sizing: border-box;
    padding: 0 !important;
    margin-top: 0;
    margin-bottom: var(--surface-padding-md);
    color: var(--color-darkblue-950);
    font: var(--font-display-md-medium);
    letter-spacing: var(--tracking-display-md);
}

.cv-page__body > h2,
.cv-page__body > .wp-block-heading,
.cv-page__body > .wp-block-paragraph {
    font: var(--font-display-md-medium) !important;
    font-weight: var(--font-weight-medium) !important;
}

@media (min-width: 768px) {
    .cv-page__body > h2,
    .cv-page__body > .wp-block-heading,
    .cv-page__body > .wp-block-paragraph {
        margin-bottom: calc(var(--surface-padding-md) * 2 + var(--control-padding-inline-md));
        font: var(--font-display-xl-semibold) !important;
        font-weight: var(--font-weight-semibold) !important;
    }
}

.cv-page__body > .cv-resume,
.cv-page__body > .cv-spoilers {
    box-sizing: border-box;
}

.cv-page__body > .cv-projects + .wp-block-paragraph {
    margin-bottom: var(--spacing-none);
    padding-top: calc(var(--surface-padding-md) * 2 + var(--control-padding-inline-md)) !important;
    padding-bottom: calc(var(--surface-padding-md) * 2) !important;
    color: var(--color-darkblue-200);
}

.cv-page__body > .cv-work-list + .wp-block-heading {
    margin-bottom: var(--spacing-none);
    padding-top: calc(var(--surface-padding-md) * 2 + var(--control-padding-inline-md)) !important;
    padding-bottom: calc(var(--surface-padding-md) * 2) !important;
    color: var(--color-darkblue-200);
}

@media (max-width: 767px) {
    .cv-page__body > .cv-projects + .wp-block-paragraph {
        padding-top: var(--spacing-3xl) !important;
        padding-bottom: var(--spacing-3xl) !important;
    }
}

.cv-work-list {
    display: grid;
    gap: var(--spacing-xl);
    width: 100%;
    margin: 0;
}

.cv-work-list__appender {
    grid-column: 1 / -1;
    width: 100%;
}

.cv-work-list__appender .components-button {
    display: flex;
    justify-content: center;
    width: 100%;
}

.editor-styles-wrapper .cv-work-list > .block-editor-inner-blocks,
.editor-styles-wrapper .cv-work-list .block-editor-block-list__layout {
    width: 100%;
}

.editor-styles-wrapper .cv-work-list .block-editor-block-list__layout {
    display: grid;
    gap: var(--spacing-xl);
}

.cv-work {
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    min-width: 0;
    overflow: hidden;
    padding: 0 0 var(--spacing-xl);
    border: var(--border-width-hairline) solid var(--color-transparent);
    border-radius: var(--radius-lg);
    background: var(--color-white);
    box-shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .1);
}

.cv-work[open] {
    box-sizing: border-box;
    padding-bottom: var(--spacing-4xl);
}

.cv-work--editor-expanded {
    box-sizing: border-box;
    padding-bottom: var(--spacing-4xl);
}

.cv-work__summary {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-lg);
    width: 100%;
    cursor: pointer;
    list-style: none;
}

.cv-work__summary::-webkit-details-marker {
    display: none;
}

.cv-work--closed.cv-work--without-company:not(.cv-work--editor-expanded):not([open]) {
    box-sizing: border-box;
    display: flex;
    flex-direction: row;
    align-items: center;
    height: 80px;
    padding: 0;
}

.cv-work--closed:not(.cv-work--without-company):not(.cv-work--editor-expanded):not([open]) {
    padding-bottom: 0;
}

.cv-work--closed.cv-work--without-company:not(.cv-work--editor-expanded):not([open]) .cv-work__summary {
    display: flex;
    flex: 1 1 auto;
    flex-direction: row;
    align-items: center;
    gap: 0;
    width: 100%;
}

.cv-work--closed.cv-work--without-company:not(.cv-work--editor-expanded):not([open]) .cv-work__exp {
    padding: var(--spacing-3xl);
}

.cv-work--closed:not(.cv-work--editor-expanded):not([open]),
.cv-work--closed.cv-work--without-company:not(.cv-work--editor-expanded):not([open]) {
    height: 80px;
    padding: 0;
    border-color: var(--color-blue-25);
    border-radius: var(--radius-xl);
    box-shadow: 0 4px 8px -2px rgba(16, 24, 40, .1), 0 2px 4px -2px rgba(16, 24, 40, .06);
}

.cv-work--closed:not(.cv-work--editor-expanded):not([open]) .cv-work__exp,
.cv-work--closed.cv-work--without-company:not(.cv-work--editor-expanded):not([open]) .cv-work__exp {
    min-height: 32px;
    padding: 0;
}

.cv-work--closed:not(.cv-work--editor-expanded):not([open]) .cv-work__action {
    color: var(--color-darkblue-300);
}

.cv-work--closed:not(.cv-work--editor-expanded):not([open]) .cv-work__summary {
    box-sizing: border-box;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    height: 80px;
    padding: 0 var(--spacing-3xl);
    gap: var(--spacing-4xl);
}

.cv-work--closed:not(.cv-work--editor-expanded):not([open]) {
    transition: border-color 360ms cubic-bezier(0.2, 0.8, 0.2, 1), box-shadow 360ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.cv-work--closed:not(.cv-work--editor-expanded):not([open]):hover {
    border-color: var(--color-blue-50);
    box-shadow: 0 var(--spacing-md) var(--spacing-xl) calc(var(--spacing-xs) * -1) color-mix(in srgb, var(--color-darkblue-950) 8%, transparent), 0 var(--spacing-xs) var(--spacing-md) calc(var(--spacing-xs) * -1) color-mix(in srgb, var(--color-darkblue-950) 3%, transparent);
}

.cv-work--closed:not(.cv-work--editor-expanded):not([open]):hover .cv-work__role,
.cv-work--closed:not(.cv-work--editor-expanded):not([open]):hover .cv-work__action {
    color: var(--color-cyan-800);
}

.editor-styles-wrapper .cv-work--editor-expanded.cv-work--without-company {
    height: auto;
    padding-top: 0;
    padding-bottom: var(--spacing-4xl);
}

.cv-work--without-company .cv-work__summary {
    gap: var(--spacing-lg);
}

.cv-work--without-company.cv-work--expanded .cv-work__summary,
.cv-work--without-company.cv-work--full .cv-work__summary,
.cv-work--editor-expanded .cv-work__summary {
    box-sizing: border-box;
    padding-top: 14px;
}

.cv-work--without-company.cv-work--expanded .cv-work__details,
.cv-work--without-company.cv-work--full .cv-work__details,
.cv-work--editor-expanded .cv-work__details {
    box-sizing: border-box;
    width: 100%;
    gap: var(--spacing-lg);
    padding: var(--spacing-4xl) var(--spacing-3xl) 0;
}

.cv-work__cover {
    display: block;
    box-sizing: border-box;
    width: 100%;
    padding: 0;
}

.cv-work--with-cover {
    padding-bottom: 0;
    box-shadow: none;
}

.cv-work--with-cover .cv-work__content {
    box-sizing: border-box;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 24px;
    width: 100%;
    padding: 24px 24px 32px;
    border: 1px solid var(--color-blue-25);
    border-top: 0;
    border-radius: 0 0 var(--radius-lg) var(--radius-lg);
    box-shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .1);
}

.cv-work__main,
.cv-work__aside {
    display: flex;
    flex-direction: column;
    gap: 24px;
    min-width: 0;
}

.cv-work__cover img,
.cv-work__cover-button img {
    display: block;
    width: 100%;
    height: auto;
    max-height: none;
    object-fit: contain;
    border-radius: 0;
}

.cv-work__cover-button {
    display: block;
    width: 100%;
    min-height: 180px;
    padding: 0;
    overflow: hidden;
    border: 1px dashed var(--color-blue-300);
    border-radius: 0;
    background: var(--color-darkblue-25);
    color: var(--color-blue-700);
    font: var(--font-text-lg-medium);
    cursor: pointer;
}

.cv-work__company {
    box-sizing: border-box;
    display: flex;
    align-items: flex-start;
    gap: 12px;
    width: 100%;
    min-height: 92px;
    padding: var(--spacing-xl) var(--spacing-lg);
    border-width: 1px 0;
    border-style: solid;
    border-color: var(--color-darkblue-50);
}

.cv-work--with-cover .cv-work__company,
.cv-work--with-cover .cv-work__highlights {
    min-height: 0;
    padding: 16px;
    border: 0;
    border-radius: 24px;
    background: var(--color-darkblue-25);
}

.cv-work__logo {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 60px;
    width: 60px;
    height: 60px;
    border: 0;
    border-radius: var(--radius-md);
    background: var(--color-white);
    color: var(--color-darkblue-400);
    font: var(--font-text-sm-medium);
}

.cv-work__logo img {
    display: block;
    width: 60px;
    height: 60px;
    object-fit: contain;
}

.cv-work--with-cover .cv-work__logo {
    background: transparent;
    position: relative;
    overflow: hidden;
}

.cv-work--with-cover .cv-work__logo-mark {
    position: absolute;
    inset: 24% 27.85% 26% 26%;
    width: auto;
    height: auto;
    transform: rotate(90deg);
}

.cv-work__company-copy {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: 0;
    min-width: 0;
    padding: 4px 0;
}

.cv-work__company-name {
    color: var(--color-darkblue-950);
    font: var(--font-text-lg-semibold);
}

.cv-work__description {
    color: var(--color-darkblue-400);
    font: var(--font-text-md-regular);
}

.cv-work__exp {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-4xl);
    width: 100%;
    min-height: 80px;
    padding: var(--spacing-3xl);
    box-sizing: border-box;
}

.cv-work__exp-copy {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    min-width: 0;
}

.cv-work__period,
.cv-work__role {
    font: var(--font-display-xs-semibold);
}

.cv-work__period {
    color: var(--color-darkblue-300);
}

.cv-work__role {
    color: var(--color-darkblue-950);
    min-width: 0;
    overflow-wrap: anywhere;
}

.cv-fact strong {
    max-width: 100%;
    overflow-wrap: anywhere;
}

.cv-work__action {
    flex: 0 0 auto;
    color: var(--color-blue-700);
    cursor: default;
    font: var(--font-text-lg-medium);
}

.cv-work__details {
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-lg);
    width: 100%;
    margin: 0;
    padding: var(--spacing-4xl) var(--spacing-3xl) 0;
    cursor: default;
}

.cv-work__highlights {
    box-sizing: border-box;
    width: 100%;
}

.cv-work__highlights-list {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-sm);
    width: 100%;
}

.cv-work__highlight {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-xs);
    max-width: 100%;
    padding: var(--spacing-xs) var(--spacing-md);
    border: var(--border-width-hairline) solid var(--color-cyan-200);
    border-radius: var(--radius-xs);
    background: var(--color-cyan-50);
    color: var(--color-cyan-900);
    font: var(--font-text-md-regular);
}

.cv-work__highlight-title {
    color: var(--color-cyan-900);
    font: var(--font-text-md-medium);
}

.cv-work__highlight-detail {
    color: var(--color-cyan-900);
    font: var(--font-text-md-regular);
    overflow-wrap: anywhere;
}

.cv-work__highlight-control + .cv-work__highlight-control {
    margin-top: var(--spacing-lg);
}

.cv-work--with-cover .cv-work__exp {
    align-items: flex-start;
    min-height: 0;
    padding: 0;
}

.cv-work--with-cover .cv-work__exp-copy {
    align-items: flex-start;
    flex-direction: column;
    gap: 8px;
    width: 100%;
}

.cv-work--with-cover .cv-work__details {
    gap: 20px;
    padding: 0;
}

.cv-work--with-cover .cv-work__achievement {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-height: 0;
}

.cv-work--with-cover .cv-work__achievement::before {
    display: none;
}

.cv-work__achievement-title {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    color: var(--color-darkblue-950);
    font: var(--font-text-md-medium);
}

.cv-work__achievement-title > span:last-child {
    min-width: 0;
    overflow-wrap: anywhere;
}

.cv-work__achievement-icon {
    flex: 0 0 24px;
    width: 24px;
    height: 24px;
    color: var(--color-darkblue-300);
    font-size: var(--spacing-xl);
    line-height: 24px;
    text-align: center;
}

.cv-work__achievement-detail {
    padding-left: 36px;
    color: var(--color-darkblue-600);
    font: var(--font-text-md-regular);
    overflow-wrap: anywhere;
}

.cv-work__tags {
    display: flex;
    flex-wrap: wrap;
    align-content: flex-start;
    gap: 8px;
    width: 100%;
}

.cv-work__tag {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    max-width: 100%;
    padding: 6px 12px 8px;
    border-radius: 24px;
    background: var(--color-white);
    color: var(--color-darkblue-600);
    font: var(--font-text-md-regular);
}

.cv-work__tag--with-icon {
    gap: 6px;
}

.cv-work__tag > span:last-child {
    overflow-wrap: anywhere;
}

.cv-work__tag-icon {
    display: block;
    flex: 0 0 20px;
    width: 20px;
    height: 20px;
    object-fit: contain;
}

.cv-work--with-cover .cv-work__highlights {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.cv-work--with-cover .cv-work__highlights-list {
    align-items: flex-start;
    flex-direction: column;
    gap: 6px;
}

.cv-work--with-cover .cv-work__highlight {
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    width: fit-content;
    max-width: 100%;
    padding: 6px 12px 8px;
    border: var(--border-width-hairline) solid var(--color-cyan-200);
    border-radius: 6px;
    background: var(--color-cyan-50);
    color: var(--color-cyan-900);
    line-height: 24px;
}

.cv-work--with-cover .cv-work__highlight:nth-child(1),
.cv-work--with-cover .cv-work__highlight:nth-child(2) {
    white-space: normal;
}

.cv-work--with-cover .cv-work__highlight:nth-child(1) {
    align-items: flex-start;
    justify-content: flex-start;
}

.cv-work--with-cover .cv-work__highlight:nth-child(3),
.cv-work--with-cover .cv-work__highlight:nth-child(4) {
    flex-direction: row;
    white-space: normal;
}

.cv-work__team {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 0 12px 12px;
    color: var(--color-darkblue-600);
    font: var(--font-text-md-regular);
}

.cv-work__team > strong {
    color: var(--color-darkblue-300);
    font: var(--font-text-md-semibold);
}

.cv-work__team > span,
.cv-work__team > .cv-work__team-text {
    color: var(--color-darkblue-600);
    font: var(--font-text-md-regular);
    white-space: pre-line;
}

.cv-work__team > span strong,
.cv-work__team > .cv-work__team-text strong {
    color: var(--color-darkblue-600);
    font: var(--font-text-md-medium);
}

.cv-work__team-text p {
    margin: 0;
}

.cv-work__cta {
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    width: 100%;
    padding: 16px 64px;
    border-radius: 12px;
    background: var(--color-orange-dark-50);
    color: var(--color-orange-dark-400);
    font: var(--font-text-lg-medium);
    text-align: center;
    text-decoration: none;
}

.cv-work--with-cover .cv-work__company + .cv-work__highlights {
    margin-top: -24px;
}

.cv-work__cta:hover,
.cv-work__cta:focus-visible {
    background: var(--color-orange-dark-100);
    color: var(--color-orange-dark-500);
}

.cv-work__add-achievement {
    align-self: flex-start;
    border: 0;
    background: transparent;
    color: var(--color-blue-700);
    font: var(--font-text-sm-medium);
    cursor: pointer;
}

.cv-work--with-cover .cv-work__cover img,
.cv-work--with-cover .cv-work__cover-button img {
    height: 310px;
    min-height: 310px;
    object-fit: cover;
    object-position: top;
}

.cv-work:not(.cv-work--without-company):not(.cv-work--with-cover) .cv-work__details {
    margin-top: var(--spacing-lg);
    padding-top: var(--spacing-xl);
}

.cv-work__achievement {
    box-sizing: border-box;
    min-height: 24px;
    margin: 0;
    color: var(--color-darkblue-950);
    font: var(--font-text-md-medium);
    line-height: 24px;
}

.editor-styles-wrapper .cv-work__details .cv-work__achievement,
.editor-styles-wrapper .cv-work__details .cv-work__achievement p {
    margin: 0;
    padding: 0;
}

.cv-work__achievement::before {
    display: none;
}

.cv-work-list--full .cv-work {
    padding-bottom: var(--spacing-4xl);
}

.cv-work-list--full .cv-work__details {
    padding-bottom: var(--spacing-md);
}

@media (max-width: 767px) {
    .cv-work--closed:not(.cv-work--editor-expanded):not([open]),
    .cv-work--closed.cv-work--without-company:not(.cv-work--editor-expanded):not([open]) {
        height: auto;
        min-height: 0;
    }

    .cv-work--closed:not(.cv-work--editor-expanded):not([open]) .cv-work__summary,
    .cv-work--closed.cv-work--without-company:not(.cv-work--editor-expanded):not([open]) .cv-work__summary {
        height: auto;
        min-height: 0;
        padding: var(--spacing-lg) var(--spacing-3xl);
    }

    .cv-work--with-cover .cv-work__content {
        grid-template-columns: 1fr;
    }

    .cv-work--with-cover .cv-work__cover img,
    .cv-work--with-cover .cv-work__cover-button img {
        height: auto;
        min-height: 0;
        object-fit: contain;
        object-position: center;
    }

    .cv-work--with-cover .cv-work__highlight {
        align-items: flex-start;
        flex-direction: column;
        gap: 0;
        width: 100%;
        white-space: normal;
    }

    .cv-work--with-cover .cv-work__highlight-title {
        white-space: normal;
    }

    .cv-work--with-cover .cv-work__highlight:nth-child(3),
    .cv-work--with-cover .cv-work__highlight:nth-child(4) {
        flex-direction: column;
        white-space: normal;
    }

    .cv-work--with-cover .cv-work__highlight:nth-child(2) {
        width: 100%;
    }

    .cv-work--with-cover .cv-work__highlight:nth-child(1) {
        white-space: normal;
    }

    .cv-work__exp {
        align-items: flex-start;
        flex-direction: column;
        gap: var(--spacing-xs);
    }

    .cv-work__exp-copy {
        align-items: flex-start;
        flex-direction: column;
        gap: var(--spacing-xs);
        width: 100%;
    }

    .cv-work__period,
    .cv-work__role {
        font: var(--font-text-lg-semibold);
    }
}

.cv-page__body > .cv-spoilers {
    padding-top: calc(var(--spacing-7xl) + (var(--spacing-xs) * 2));
    margin-bottom: var(--spacing-7xl);
}

.cv-hero__mobile-visual {
    display: none;
}

.cv-hero {
    overflow: hidden;
    margin-bottom: 0;
    background: var(--color-darkblue-800);
}

.cv-hero__inner {
    position: relative;
    display: block;
    width: min(100%, var(--container-width));
    max-width: var(--container-width);
    margin: 0 auto;
    padding-right: var(--container-offset);
    padding-left: var(--container-offset);
    box-sizing: border-box;
}

.cv-hero__copy {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--spacing-4xl);
    width: 100%;
    padding: var(--spacing-6xl) 0;
}

.cv-hero__heading {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-lg);
}

.cv-hero__intro {
    color: var(--color-darkblue-300);
    font: var(--font-text-lg-regular);
}

.cv-hero__title {
    margin: 0;
    color: var(--color-sand-600);
    font: var(--font-display-md-medium);
    letter-spacing: var(--tracking-display-lg);
}

.cv-hero__tags,
.cv-hero__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--spacing-lg);
}

.cv-hero__tags span {
    padding: var(--spacing-sm) var(--spacing-lg);
    border-radius: var(--radius-sm);
    background: color-mix(in srgb, var(--color-blue-25) 5%, transparent);
    color: var(--color-blue-200);
    font: var(--font-text-md-medium);
}

.cv-hero__actions {
    width: 100%;
    gap: var(--spacing-xl);
    margin-top: var(--spacing-none);
}

.cv-button {
    position: relative;
    isolation: isolate;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    --cv-button-depth: calc(var(--spacing-sm) / 2);
    --cv-button-edge: color-mix(in srgb, var(--color-base-white) 70%, transparent);
    --cv-button-highlight: var(--color-base-white);
    flex: 1 1 100%;
    gap: var(--spacing-lg);
    padding: var(--spacing-xl) var(--spacing-4xl) calc(var(--spacing-xl) + var(--spacing-xxs));
    border-radius: var(--radius-2xl);
    background: var(--cv-button-background-color) var(--cv-button-background-image) center / cover;
    box-shadow: 0 var(--cv-button-depth) 0 var(--cv-button-edge), 0 var(--spacing-sm) 0 color-mix(in srgb, var(--color-base-black) 10%, transparent), 0 calc(-1 * var(--spacing-xxs)) 0 var(--cv-button-highlight);
    font: var(--font-text-lg-medium);
    text-decoration: none;
    transition: color 0.2s ease-in, background-color 0.2s ease-in, transform 0.2s ease-in, box-shadow 0.2s ease-in, filter 0.2s ease-in;
}

.cv-button__surface {
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background: var(--cv-button-background-color) var(--cv-button-background-image) center / cover;
    transition: background-color 0.2s ease-in;
}

.cv-button--continuous {
    background: none;
    box-shadow: none;
    /* Keep shadows outside CornerKit's clipped surface. */
    filter: drop-shadow(0 var(--cv-button-depth) 0 var(--cv-button-edge))
        drop-shadow(0 var(--cv-button-depth) 0 color-mix(in srgb, var(--color-base-black) 10%, transparent))
        drop-shadow(0 calc(-1 * var(--spacing-xxs)) 0 var(--cv-button-highlight));
}

.cv-button__icon {
    display: block;
    flex: 0 0 auto;
}

.cv-button--telegram .cv-button__icon {
    width: var(--icon-size-md);
    height: var(--icon-size-md);
    object-fit: contain;
}

.cv-hero a:not(.cv-button):focus-visible {
    /* The legacy global stylesheet resets link outlines with !important. */
    outline: var(--cv-button-depth) solid var(--color-blue-200) !important;
    outline-offset: var(--spacing-xs);
}

.cv-button:focus {
    outline: none !important;
}

.cv-button .cv-button__label {
    text-decoration: none;
}

.cv-button--telegram {
    --cv-button-edge: color-mix(in srgb, var(--color-brand-telegram) 62%, var(--color-base-black));
    --cv-button-highlight: color-mix(in srgb, var(--color-brand-telegram) 86%, var(--color-base-white));
    --cv-button-background-color: var(--color-brand-telegram);
    --cv-button-background-image: url("../../../images/cv-telegram-button.png");
    color: var(--color-base-white);
}

.cv-button--resume {
    --cv-button-background-color: var(--color-base-white);
    --cv-button-background-image: url("../../../images/cv-resume-button.png");
    color: var(--color-darkblue-800);
}

.cv-button--resume:hover,
.cv-button--resume:focus-visible {
    color: var(--color-darkblue-600);
}

.cv-button--telegram:hover,
.cv-button--telegram:focus-visible {
    --cv-button-background-color: color-mix(in srgb, var(--color-brand-telegram) 90%, var(--color-base-black));
    color: var(--color-base-white);
}

.cv-button:active {
    box-shadow: none;
    filter: none;
    transform: translateY(var(--cv-button-depth));
}

.cv-hero__visual {
    position: relative;
    display: block;
    width: calc(100% + var(--container-offset) * 2);
    height: min(75vw, calc(var(--spacing-11xl) * 2));
    margin-inline: calc(-1 * var(--container-offset));
    overflow: hidden;
    pointer-events: none;
}

.cv-hero__visual img {
    position: relative;
    display: block;
    left: 50%;
    width: auto;
    height: 100%;
    max-width: none;
    transform: translateX(-50%);
}

@media (min-width: 768px) {
    .cv-hero__copy {
        width: min(100%, calc(var(--layout-content-width) + var(--spacing-7xl) + var(--spacing-md)));
    }

    .cv-hero__title {
        font: var(--font-display-lg-medium);
    }

    .cv-hero__actions {
        margin-top: var(--spacing-4xl);
    }

    .cv-button {
        flex: 0 1 auto;
        font: var(--font-display-xs-medium);
    }

    .cv-button--telegram {
        padding-left: var(--spacing-3xl);
    }
}

@media (min-width: 1200px) {
    .cv-page .cv-projects {
        --cv-content-width: calc(var(--container-width) - var(--container-offset) * 2);
    }

    .cv-site-header .top-nav .row {
        gap: var(--control-padding-block);
    }

    .cv-hero__visual {
        position: absolute;
        /* The 1485px source has 500px of glow to the right of the portrait. */
        left: auto;
        right: calc(var(--container-offset) - (var(--layout-page-width) - var(--control-radius-sm)) * 500 / 1485);
        bottom: 0;
        width: calc(var(--layout-page-width) - var(--control-radius-sm));
        height: 425px;
        margin: 0;
    }

    .cv-hero__visual img {
        position: static;
        width: 100%;
        height: 100%;
        transform: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .cv-button {
        transition: none;
    }
}

.cv-resume {
    margin: 0;
    padding: var(--spacing-5xl) 0 0;
}

.cv-content-shell {
    width: 100%;
    max-width: none;
    margin: 0 auto;
}

.cv-resume .resume-info__row {
    display: block;
}

.cv-resume .resume-info__content {
    width: 100%;
}

.cv-facts {
    display: grid;
    grid-template-columns: 1.7fr 1fr;
    gap: var(--spacing-lg);
    margin-bottom: 0;
}

.cv-fact {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    min-height: 186px;
    padding: var(--spacing-3xl);
    border-radius: var(--radius-xl);
    background: var(--color-darkblue-50);
}

.cv-fact h2 {
    margin: 0 0 var(--spacing-md);
    color: var(--color-darkblue-400);
    font: var(--font-text-md-semibold);
}

.cv-fact strong {
    display: block;
    color: var(--color-darkblue-950);
    font: var(--font-display-xl-medium);
    letter-spacing: var(--tracking-display-xl);
}

.cv-fact p {
    margin: auto 0 0;
    color: var(--color-darkblue-400);
    font: var(--font-text-md-regular);
}

.cv-fact--focus {
    min-height: 204px;
}

.cv-fact--focus strong {
    font: var(--font-text-xl-semibold);
    line-height: 1.5;
    letter-spacing: 0;
}

.cv-fact--mission {
    box-sizing: border-box;
    height: auto;
    min-height: 0;
    gap: calc(var(--spacing-md) + var(--spacing-xxs));
    padding: var(--spacing-3xl);
    background: var(--color-orange-dark-25);
}

.cv-fact--mission h2,
.cv-fact--mission p {
    color: var(--color-orange-dark-800);
}

.cv-fact--mission h2 {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: calc(var(--spacing-md) + var(--spacing-xxs));
    width: 100%;
    margin: 0;
    font: var(--font-text-xl-semibold);
}

.cv-fact--mission p {
    margin: 0;
}

.cv-fact__emoji-wrap {
    position: relative;
    display: inline-flex;
    width: 32px;
    height: 32px;
    flex: 0 0 32px;
}

.cv-fact__emoji {
    position: absolute;
    inset: 0;
    width: 32px;
    height: 32px;
    object-fit: contain;
    transition: opacity 180ms ease;
}

.cv-fact__emoji--hover {
    opacity: 0;
    inset: 50% auto auto 50%;
    width: 39px;
    height: 39px;
    max-width: none;
    max-height: none;
    transform: translate(-50%, -50%);
}

.cv-fact--mission:hover .cv-fact__emoji--static,
.cv-fact--mission:focus-within .cv-fact__emoji--static {
    opacity: 0;
}

.cv-fact--mission:hover .cv-fact__emoji--hover,
.cv-fact--mission:focus-within .cv-fact__emoji--hover {
    opacity: 1;
}

.cv-resume .resume-info__sidebar {
    display: none;
}

.cv-resume .lazyblock-faq-block {
    display: none;
}

.cv-spoilers {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-lg);
    margin-right: auto;
    margin-left: auto;
}

.cv-spoiler {
    overflow: hidden;
    border: 1px solid var(--color-blue-25);
    border-radius: var(--radius-4xl);
    background: var(--color-base-white);
    box-shadow: 0 4px 8px -2px color-mix(in srgb, var(--color-darkblue-950) 10%, transparent), 0 2px 4px -2px color-mix(in srgb, var(--color-darkblue-950) 6%, transparent);
    transition: background-color 360ms cubic-bezier(0.2, 0.8, 0.2, 1), border-color 360ms cubic-bezier(0.2, 0.8, 0.2, 1), box-shadow 360ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.cv-spoiler summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-4xl);
    height: 96px;
    min-height: 96px;
    padding: var(--spacing-4xl);
    margin: 0;
    box-sizing: border-box;
    cursor: pointer;
    list-style: none;
    user-select: none;
    -webkit-tap-highlight-color: transparent;
}

.cv-spoiler summary::-webkit-details-marker {
    display: none;
}

.cv-spoiler summary:focus-visible {
    outline: 3px solid var(--color-blue-300);
    outline-offset: calc(var(--spacing-xs) * -1);
}

.cv-spoiler__title {
    display: flex;
    align-items: center;
    gap: var(--spacing-xl);
    color: var(--color-blue-700);
    font: var(--font-display-xs-semibold);
    transition: color 360ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.cv-spoiler:not([open]):hover {
    border-color: var(--color-blue-50);
    box-shadow: 0 var(--spacing-md) var(--spacing-xl) calc(var(--spacing-xs) * -1) color-mix(in srgb, var(--color-darkblue-950) 8%, transparent), 0 var(--spacing-xs) var(--spacing-md) calc(var(--spacing-xs) * -1) color-mix(in srgb, var(--color-darkblue-950) 3%, transparent);
}

.cv-spoiler:not([open]):hover .cv-spoiler__title {
    color: var(--color-cyan-800);
}

.cv-spoiler:not([open]):hover .cv-spoiler__action {
    color: var(--color-cyan-800);
}

.cv-spoiler__icon-wrap {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    flex: 0 0 32px;
}

.cv-spoiler__icon {
    position: absolute;
    inset: 0;
    display: block;
    width: 32px;
    height: 32px;
    object-fit: contain;
    transition: opacity 180ms ease;
}

.cv-spoiler__icon--hover {
    opacity: 0;
}

.cv-spoiler--animated summary:is(:hover, :focus-visible) .cv-spoiler__icon--static {
    opacity: 0;
}

.cv-spoiler--animated summary:is(:hover, :focus-visible) .cv-spoiler__icon--hover {
    opacity: 1;
}

.cv-spoiler__action {
    position: relative;
    flex: 0 0 auto;
    color: var(--color-darkblue-300);
    font: var(--font-text-lg-medium);
    transition: color 360ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.cv-spoiler[open] .cv-spoiler__action {
    color: var(--color-base-transparent);
}

.cv-spoiler[open] .cv-spoiler__action::before {
    content: attr(data-open-label);
    position: absolute;
    top: 0;
    right: 0;
    white-space: nowrap;
    color: var(--color-blue-700);
    font: var(--font-text-lg-medium);
}

.cv-spoiler[open] {
    border-color: var(--color-base-transparent);
    background: var(--color-orange-dark-25);
    box-shadow: none;
}

.cv-spoiler[open][data-closing] {
    border-color: var(--color-blue-25);
    background: var(--color-base-white);
    box-shadow: 0 4px 8px -2px color-mix(in srgb, var(--color-darkblue-950) 10%, transparent), 0 2px 4px -2px color-mix(in srgb, var(--color-darkblue-950) 6%, transparent);
}

.cv-spoiler[open][data-closing] .cv-spoiler__title {
    color: var(--color-blue-700);
}

.cv-spoiler[open][data-closing] .cv-spoiler__action {
    color: var(--color-darkblue-300);
}

.cv-spoiler[open][data-closing] .cv-spoiler__action::before {
    content: none;
}

.cv-spoiler[open] .cv-spoiler__title {
    color: var(--color-darkblue-950);
}

.cv-spoiler__body {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-3xl);
    padding: 0 var(--spacing-4xl) var(--spacing-5xl);
    margin-top: 0;
    overflow: hidden;
    color: var(--color-darkblue-600);
    font: var(--font-text-lg-regular);
}

@media (prefers-reduced-motion: reduce) {
    .cv-spoiler,
    .cv-spoiler summary,
    .cv-spoiler__title,
    .cv-spoiler__action {
        transition: none;
    }
}

.cv-spoiler__item {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-lg);
}

.cv-spoiler__item h3 {
    margin: 0;
    color: var(--color-darkblue-950);
    font: var(--font-text-lg-medium);
}

.cv-spoiler__item p,
.cv-spoiler__body > p {
    max-width: none;
    margin: 0;
    color: var(--color-darkblue-600);
    font: var(--font-text-md-regular);
}

@media (max-width: 767px) {
    .cv-site-header {
        border-bottom: 0;
    }

    .cv-site-header .top-nav {
        height: 72px;
        box-sizing: border-box;
        padding-bottom: calc(var(--spacing-xl) - var(--border-width-hairline));
        border-bottom: var(--border-width-hairline) solid var(--color-darkblue-600);
    }

    .cv-site-header .top-nav > .container {
        width: min(100%, var(--container-width));
        padding-inline: var(--surface-padding-md);
    }

    .cv-site-header .top-nav {
        padding-block: var(--surface-padding-sm);
    }

    .cv-site-header .top-nav__logo-link {
        transform: none;
    }

    .cv-site-header .top-nav__logo-image {
        content: url("../../../images/cv-mobile-logo.svg");
        filter: none;
    }

    .cv-site-header .cv-links,
    .cv-site-header .top-nav .col.d-none {
        display: none !important;
    }

    .cv-site-header .top-nav .row {
        justify-content: space-between;
        padding-block: 0;
    }

    .cv-site-header .top-nav .col-auto.d-lg-none {
        display: block;
    }

    .cv-site-header .top-nav .toggle-menu-mobile {
        display: flex;
        width: calc(var(--control-size-sm) + var(--control-gap-md));
        height: calc(var(--control-size-sm) + var(--control-gap-md));
        background: url("../../../images/cv-mobile-menu.svg") center no-repeat;
    }

    .cv-site-header .top-nav .toggle-menu-mobile span {
        visibility: hidden;
    }

    .cv-site-header .toggle-menu-mobile span,
    .cv-site-header .toggle-menu-mobile span::before,
    .cv-site-header .toggle-menu-mobile span::after {
        background-color: var(--color-darkblue-300);
    }

    .cv-site-header .toggle-menu-mobile.on > span:first-child {
        background-color: transparent;
    }

    .cv-hero__inner,
    .cv-content-shell {
        width: 100%;
    }

    .cv-hero__inner {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: var(--control-gap-md);
        padding: var(--surface-padding-md) var(--surface-padding-md) 0;
    }

    .cv-hero__copy {
        gap: var(--control-size-sm);
        padding: 0 0 var(--control-gap-sm);
    }

    .cv-hero__heading {
        gap: var(--control-gap-sm);
    }

    .cv-hero__intro {
        font: var(--font-text-sm-regular);
        color: var(--color-darkblue-300);
    }

    .cv-hero__title {
        font: var(--font-display-xs-medium);
        letter-spacing: var(--tracking-text-sm);
    }

    .cv-hero__title br {
        display: none;
    }

    .cv-hero__tags {
        gap: var(--control-gap-md);
        margin-top: calc(var(--surface-padding-md) - var(--control-size-sm));
    }

    .cv-hero__tags span {
        padding: var(--control-gap-sm) var(--control-padding-block);
        font: var(--font-text-sm-medium);
        border-radius: calc(var(--control-radius-md) / 2);
    }

    .cv-hero__actions {
        gap: var(--control-padding-block);
    }

    .cv-button {
        --cv-button-depth: calc(var(--control-gap-sm) / 2);
        padding: var(--control-padding-block) calc(var(--control-size-sm) + var(--control-gap-md)) calc(var(--control-padding-block) + var(--control-gap-md) / 4) var(--control-padding-inline-md);
        border-radius: var(--radius-2xl);
        font: var(--font-text-lg-medium);
        gap: 0;
        justify-content: space-between;
    }

    .cv-button__label {
        flex: 1;
        min-width: 0;
        text-align: center;
    }

    .cv-button--resume {
        --cv-button-background-image: url("../../../images/cv-mobile-resume-button.png");
    }

    .cv-button--telegram {
        --cv-button-background-image: url("../../../images/cv-mobile-telegram-button.png");
        padding-left: var(--control-padding-inline-md);
    }

    .cv-hero__visual {
        display: none;
    }

    .cv-hero__mobile-visual {
        display: block;
        flex: none;
        width: 437px;
        max-width: none;
        /* Include the parent gap: the image overlaps the copy by 35px. */
        margin-top: calc(-1 * (var(--control-size-sm) + var(--control-gap-sm) / 2 + var(--control-gap-md)));
        align-self: center;
    }

    .cv-hero__mobile-visual img {
        display: block;
        width: 100%;
        height: auto;
    }

    .cv-facts {
        grid-template-columns: 1fr;
        margin-bottom: 0;
    }

    .cv-spoiler summary {
        align-items: flex-start;
        height: auto;
        min-height: 0;
        gap: var(--spacing-xl);
        padding: var(--spacing-xl);
    }

    .cv-spoiler__title {
        align-items: flex-start;
        font: var(--font-text-xl-semibold);
    }

    .cv-spoiler__action {
        display: none;
    }

    .cv-spoiler__body {
        padding: 0 var(--spacing-xl) var(--spacing-xl);
    }

    .cv-spoiler__body {
        gap: var(--spacing-xl);
        margin-top: var(--spacing-xl);
    }

    .cv-fact:not(.cv-fact--focus) strong {
        font: var(--font-display-lg-medium);
    }

    .cv-fact--focus strong {
        font: var(--font-text-xl-semibold);
        line-height: 1.4;
        letter-spacing: 0;
    }

    .cv-fact {
        min-height: 0;
    }

    .cv-fact--mission {
        height: auto;
        min-height: 0;
        gap: var(--spacing-lg);
        padding: var(--spacing-2xl);
    }

    .cv-fact--mission p {
        margin: 0;
    }

    .cv-work--with-cover {
        width: calc(100% + var(--spacing-lg));
        margin-inline: calc(var(--spacing-lg) / -2);
    }

    .cv-work--with-cover .cv-work__cover img {
        aspect-ratio: 10 / 3;
        object-fit: fill;
    }

    .cv-work--with-cover .cv-work__content {
        display: flex;
        flex-direction: column;
        gap: 0;
        padding: 0 0 var(--spacing-xl);
        border: 0;
        box-shadow: none;
    }

    .cv-work--with-cover .cv-work__main,
    .cv-work--with-cover .cv-work__aside {
        display: contents;
    }

    .cv-work--with-cover .cv-work__company {
        order: 0;
        flex-direction: row-reverse;
        gap: var(--spacing-lg);
        padding: var(--spacing-xl) var(--spacing-xl) var(--spacing-xl) var(--spacing-3xl);
        border-radius: 0;
    }

    .cv-work--with-cover .cv-work__company-copy {
        padding: 0;
    }

    .cv-work--with-cover .cv-work__exp {
        order: 1;
        padding: var(--spacing-md) var(--spacing-xl) var(--spacing-xl) var(--spacing-3xl);
        border-radius: 0 0 var(--radius-4xl) var(--radius-4xl);
        background: var(--color-darkblue-25);
    }

    .cv-work--with-cover .cv-work__exp-copy {
        flex-direction: column-reverse;
        gap: var(--spacing-sm);
    }

    .cv-work--with-cover .cv-work__role,
    .cv-work--with-cover .cv-work__period {
        font: var(--font-text-lg-semibold);
    }

    .cv-work--with-cover .cv-work__highlights {
        order: 2;
        display: block;
        margin: 0;
        padding: var(--spacing-lg) 0 0;
        border-radius: 0;
        background: transparent;
        overflow-x: auto;
        scrollbar-width: none;
    }

    .cv-work--with-cover .cv-work__company + .cv-work__highlights {
        margin-top: 0;
    }

    .cv-work--with-cover .cv-work__highlights::-webkit-scrollbar {
        display: none;
    }

    .cv-work--with-cover .cv-work__tags {
        flex-wrap: nowrap;
        width: max-content;
        padding-inline: var(--spacing-xl);
    }

    .cv-work--with-cover .cv-work__tag {
        flex: 0 0 auto;
        background: var(--color-darkblue-25);
        white-space: nowrap;
    }

    .cv-work--with-cover .cv-work__highlights-list,
    .cv-work--with-cover .cv-work__team {
        display: none;
    }

    .cv-work--with-cover .cv-work__details {
        order: 3;
        padding: calc(var(--spacing-xl) + var(--spacing-lg)) var(--spacing-xl) 0;
    }

    .cv-work--with-cover .cv-work__cta {
        order: 4;
        width: calc(100% - var(--spacing-2xl) - var(--spacing-lg));
        min-height: 60px;
        margin: var(--spacing-3xl) auto 0;
        padding: var(--spacing-xl);
    }

}
