/* Primary page — desktop layout */

.moa-primary--mobile {
    display: none !important;
}

.moa-home .moa-hero-video {
    width: 100%;
    height: calc(100vh - var(--moa-header-height));
    min-height: 640px;
    overflow: hidden;
    background: var(--moa-bg-black);
}

.moa-home .moa-hero-video__player {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* About */
.moa-primary--desktop .moa-home-about__grid {
    display: grid;
    grid-template-columns: minmax(320px, 512px) minmax(16px, 1fr) minmax(320px, 512px);
    align-items: stretch;
    gap: 0;
    margin-top: 120px;
}

.moa-primary--desktop .moa-home-about__text {
    grid-column: 1;
    min-width: 0;
}

.moa-primary--desktop .moa-home-about__image {
    grid-column: 3;
    position: relative;
    margin: 0;
    min-width: 0;
    overflow: hidden;
}

.moa-primary--desktop .moa-home-about__image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    position: absolute;
    inset: 0;
}

.moa-primary--desktop .moa-home-about__marks {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    margin-top: 320px;
}

.moa-primary--desktop .moa-home-about__mark {
    display: block;
    width: auto;
    height: 72px;
    flex-shrink: 0;
    filter: brightness(0) invert(65%);
}

.moa-primary--desktop .moa-stats-grid {
    display: grid;
    grid-template-columns: 132px 2fr 1fr 132px;
    column-gap: 16px;
    row-gap: 72px;
    margin-top: 240px;
}

.moa-primary--desktop .moa-stats-grid__divider {
    grid-column: 2 / 4;
    margin: 0;
    border: 0;
    border-top: 1px solid var(--moa-border);
}

.moa-primary--desktop .moa-stat {
    padding-bottom: 0;
}

.moa-primary--desktop .moa-stat:nth-child(1),
.moa-primary--desktop .moa-stat:nth-child(4) {
    grid-column: 2;
}

.moa-primary--desktop .moa-stat:nth-child(2),
.moa-primary--desktop .moa-stat:nth-child(5) {
    grid-column: 3;
}

.moa-primary--desktop .moa-stat strong {
    display: block;
    font-family: var(--moa-font-family);
    font-weight: var(--text-h1-weight);
    font-size: var(--text-h1-size);
    line-height: var(--text-h1-lh);
    letter-spacing: var(--moa-ls-heading);
    color: var(--moa-text-on-light);
}

.moa-primary--desktop .moa-stat span {
    display: block;
    margin-top: 53px;
    font-family: var(--moa-font-family-book);
    font-size: var(--text-body-sm-size);
    line-height: var(--text-body-sm-lh);
    letter-spacing: var(--moa-ls-body);
    color: var(--moa-text-on-dark-muted);
}

/* Consortium */
.moa-primary--desktop .moa-consortium {
    overflow: hidden;
}

.moa-primary--desktop .moa-partners-marquee {
    overflow: hidden;
}

.moa-primary--desktop .moa-partners-marquee__track {
    display: flex;
    width: max-content;
    animation: moa-partners-marquee 85s linear infinite;
}

.moa-primary--desktop .moa-partners-marquee:hover .moa-partners-marquee__track {
    animation-play-state: paused;
}

.moa-primary--desktop .moa-partners-marquee__group {
    display: flex;
    align-items: center;
    gap: 180px;
    padding-inline-end: 80px;
}

.moa-primary--desktop .moa-partners-marquee img {
    display: block;
    height: 80px;
    width: auto;
    flex-shrink: 0;
}

@keyframes moa-partners-marquee {
    from {
        transform: translateX(0);
    }

    to {
        transform: translateX(-50%);
    }
}

@media (prefers-reduced-motion: reduce) {
    .moa-primary--desktop .moa-partners-marquee__track {
        animation: none;
    }
}

.moa-primary--desktop .moa-consortium__grid {
    display: grid;
    grid-template-columns: 513px minmax(420px, 776px);
    justify-content: space-between;
    gap: 120px;
    align-items: center;
}

.moa-primary--desktop .consortium-diagram img {
    display: block;
    width: 100%;
    height: auto;
    max-width: 776px;
    margin-left: auto;
}

/* Partners */
.moa-primary--desktop .moa-partners__grid {
    display: grid;
    grid-template-columns: 513px minmax(420px, 776px);
    justify-content: space-between;
    gap: 120px;
    align-items: center;
}

.moa-primary--desktop .partners-photo img {
    display: block;
    width: 100%;
    height: auto;
    max-width: 776px;
    margin-left: auto;
}

.moa-primary--desktop .partners-logos {
    margin-top: 120px;
    width: 100%;
}

.moa-primary--desktop .partners-logos img {
    display: block;
    width: 100%;
    height: auto;
}

/* Awards */
.moa-primary--desktop .moa-awards {
    position: relative;
}

.moa-primary--desktop .moa-awards__head {
    display: grid;
    grid-template-columns: 380px 1fr;
    grid-template-rows: auto auto;
    gap: 32px 120px;
    align-items: start;
}

.moa-primary--desktop .moa-awards__title {
    grid-column: 1;
    grid-row: 1;
    margin: 0;
}

.moa-primary--desktop .moa-awards__lead {
    grid-column: 1;
    grid-row: 2;
    margin: 0;
}

.moa-primary--desktop .moa-awards__counter {
    --awards-digit-size: clamp(120px, 36vw, 697px);
    --awards-digit-gap: clamp(10px, 3.24vw, 62px);
    --awards-step: calc(var(--awards-digit-size) + var(--awards-digit-gap));
    --awards-start-index: 1;
    --awards-final-index: 22;
    grid-column: 2;
    grid-row: 1 / 3;
    justify-self: end;
    align-self: end;
    width: max-content;
    max-width: 100%;
    color: var(--moa-text-on-dark);
}

.moa-primary--desktop .moa-awards__counter-viewport {
    height: var(--awards-step);
    overflow: hidden;
    padding: 20px;
}

.moa-primary--desktop .moa-awards__counter-track {
    display: flex;
    flex-direction: column;
    gap: var(--awards-digit-gap);
    transform: translateY(calc(-1 * var(--awards-start-index) * var(--awards-step)));
    will-change: transform;
}

.moa-primary--desktop .moa-awards__counter-track span {
    display: block;
    height: var(--awards-digit-size);
    font-family: var(--moa-font-family);
    font-weight: 500;
    font-size: var(--awards-digit-size);
    line-height: var(--awards-digit-size);
    letter-spacing: -0.03em;
    white-space: nowrap;
    padding-right: 0.04em;
}

.moa-primary--desktop .moa-awards__counter.is-animating .moa-awards__counter-track {
    animation: awards-counter-scroll 2.8s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.moa-primary--desktop .moa-awards__counter.is-complete .moa-awards__counter-track {
    transform: translateY(calc(-1 * var(--awards-final-index) * var(--awards-step)));
}

@keyframes awards-counter-scroll {
    from {
        transform: translateY(calc(-1 * var(--awards-start-index) * var(--awards-step)));
    }
    to {
        transform: translateY(calc(-1 * var(--awards-final-index) * var(--awards-step)));
    }
}

@media (prefers-reduced-motion: reduce) {
    .moa-primary--desktop .moa-awards__counter-track {
        animation: none !important;
        transform: translateY(calc(-1 * var(--awards-final-index) * var(--awards-step))) !important;
    }
}

.moa-primary--desktop .awards-table {
    margin-top: 120px;
}

.moa-primary--desktop .awards-table__section-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}

.moa-primary--desktop .awards-table__title {
    margin: 0;
    color: var(--moa-text-on-dark);
}

.moa-primary--desktop .awards-table__toggle {
    display: grid;
    place-items: center;
    width: 38px;
    height: 20px;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
    line-height: 0;
}

.moa-primary--desktop .awards-table__toggle img {
    display: block;
    width: 38px;
    height: 20px;
    transform: rotate(180deg);
    transition: transform 0.2s ease;
}

.moa-primary--desktop .awards-table.is-collapsed .awards-table__toggle img {
    transform: rotate(0deg);
}

.moa-primary--desktop .awards-table__divider {
    width: 100%;
    height: 0;
    margin: 0;
    border: 0;
    border-top: 1px solid var(--moa-neutral-500);
}

.moa-primary--desktop .awards-table__section-head + .awards-table__divider {
    margin-top: 40px;
}

.moa-primary--desktop .awards-table__body {
    display: flex;
    flex-direction: column;
    gap: 60px;
    margin-top: 60px;
}

.moa-primary--desktop .awards-table.is-collapsed .awards-table__body {
    display: none;
}

.moa-primary--desktop .awards-table__columns,
.moa-primary--desktop .awards-row__content {
    display: grid;
    grid-template-columns: 246px 513px minmax(0, 1fr);
    gap: 16px;
}

.moa-primary--desktop .awards-table__columns {
    font-family: var(--moa-font-family);
    font-weight: 200;
    font-size: var(--text-body-size);
    line-height: var(--text-body-lh);
    letter-spacing: var(--moa-ls-body);
    color: var(--moa-text-on-dark);
}

.moa-primary--desktop .awards-table__list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.moa-primary--desktop .awards-row {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.moa-primary--desktop .awards-table .text-list-competition-year,
.moa-primary--desktop .awards-table .text-list-competition-reward {
    color: var(--moa-neutral-500);
    font-family: var(--moa-font-family-book);
    font-weight: 300;
}

.moa-primary--desktop .awards-table .text-list-competition-project {
    color: var(--moa-text-on-dark);
    font-family: var(--moa-font-family);
    font-weight: 400;
    padding-right: 40px;
}

.moa-primary--desktop .awards-row__link {
    color: inherit;
    text-decoration: none;
    cursor: pointer;
}

.moa-primary--desktop .awards-row__link:hover .text-list-competition-project,
.moa-primary--desktop .awards-row__link:focus-visible .text-list-competition-project {
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Geography */
.moa-primary--desktop .moa-geography__head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 40px;
}

.moa-primary--desktop .moa-geography__title {
    margin-bottom: 0;
}

.moa-primary--desktop .moa-geography__stat-wrap {
    flex-shrink: 0;
    max-width: 286px;
}

.moa-primary--desktop .moa-geography__stat {
    font-family: var(--moa-font-family);
    font-weight: var(--text-h1-weight);
    font-size: var(--text-h1-size);
    line-height: var(--text-h1-lh);
    letter-spacing: var(--moa-ls-heading);
}

.moa-primary--desktop .moa-geography__stat-label {
    margin: 0 0 0 13px;
    font-family: var(--moa-font-family-book);
    font-size: var(--text-body-sm-size);
    line-height: var(--text-body-sm-lh);
    letter-spacing: var(--moa-ls-body);
    color: var(--moa-text-on-dark-muted);
    opacity: 0.6;
}

.moa-primary--desktop .moa-geography__text {
    margin-top: 80px;
    width: 50%;
}

.moa-primary--desktop .moa-geography__cities-title {
    margin: 60px 0 40px;
}

.moa-primary--desktop .moa-map {
    margin-top: 80px;
    overflow: hidden;
}

.moa-primary--desktop .moa-map__inner {
    transform-origin: center center;
}

.moa-primary--desktop .moa-map img {
    display: block;
    width: 100%;
    height: auto;
}

.moa-primary--desktop .cities-list {
    columns: 4;
    column-gap: 60px;
    margin-top: 80px;
    max-width: 1172px;
}

.moa-primary--desktop .cities-list span {
    display: block;
}

@media (max-width: 1280px) and (min-width: 835px) {
    .moa-primary--desktop .moa-pad-x {
        padding-left: clamp(36px, 6vw, 96px);
        padding-right: clamp(36px, 6vw, 96px);
    }

    .moa-primary--desktop .moa-home-about__grid {
        grid-template-columns: minmax(320px, 1fr) minmax(320px, 1fr);
        column-gap: clamp(48px, 8vw, 96px);
        row-gap: 64px;
        margin-top: 80px;
    }

    .moa-primary--desktop .moa-home-about__text,
    .moa-primary--desktop .moa-home-about__image {
        grid-column: auto;
    }

    .moa-primary--desktop .moa-home-about__image {
        height: auto;
    }

    .moa-primary--desktop .moa-stats-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        margin-top: 160px;
    }

    .moa-primary--desktop .moa-stats-grid__divider {
        grid-column: 1 / -1;
    }

    .moa-primary--desktop .moa-stat:nth-child(1),
    .moa-primary--desktop .moa-stat:nth-child(2),
    .moa-primary--desktop .moa-stat:nth-child(4),
    .moa-primary--desktop .moa-stat:nth-child(5) {
        grid-column: auto;
    }

    .moa-primary--desktop .moa-consortium__grid,
    .moa-primary--desktop .moa-partners__grid {
        grid-template-columns: minmax(320px, 1fr) minmax(320px, 1fr);
        gap: clamp(48px, 8vw, 96px);
    }
}

@media (max-width: 980px) and (min-width: 835px) {
    .moa-primary--desktop .moa-home-about__grid,
    .moa-primary--desktop .moa-consortium__grid,
    .moa-primary--desktop .moa-partners__grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .moa-primary--desktop .moa-home-about__image {
        max-width: 512px;
        aspect-ratio: 512 / 703;
    }

    .moa-primary--desktop .moa-home-about__image img {
        position: static;
        height: auto;
    }
}
