@font-face {
    font-family: Montserrat;
    src: url('fonts/montserrat-regular.ttf') format('truetype');
    font-weight: 400;
    font-display: swap
}

@font-face {
    font-family: Montserrat;
    src: url('fonts/montserrat-semibold.ttf') format('truetype');
    font-weight: 500 700;
    font-display: swap
}

@font-face {
    font-family: Unbounded;
    src: url('fonts/unbounded-bold.ttf') format('truetype');
    font-weight: 700;
    font-display: swap
}

@font-face {
    font-family: Unbounded;
    src: url('fonts/unbounded-extrabold.ttf') format('truetype');
    font-weight: 800;
    font-display: swap
}

.academy-page {
    --lime: #e9fa98;
    --purple: #3b3886;
    --ink: #20201e;
    --gray: #e6e6e6;
    margin: 0;
    background: #fff;
    color: var(--ink);
    font-family: Montserrat, Arial, sans-serif;
    -webkit-font-smoothing: antialiased
}

.academy,
.academy * {
    box-sizing: border-box
}

.academy {
    padding-top: var(--academy-header-height, 135px);
    overflow: clip;
    width: 100%;
    font-size: 24px;
    line-height: 1.12
}

.academy h1,
.academy h2,
.academy h3,
.academy p {
    margin: 0
}

.academy h1,
.academy h2 {
    font-family: Unbounded, Arial, sans-serif;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: -.035em
}

.academy h1 {
    font-size: 72px;
    line-height: .98
}

.academy h2 {
    font-size: 56px;
    line-height: 1.13
}

.academy h3 {
    font-size: 24px;
    font-weight: 600
}

.academy img {
    display: block;
    max-width: 100%
}

.academy a {
    color: inherit
}

.academy button,
.academy input,
.academy textarea {
    font: inherit
}

.academy .wrap {
    width: calc(100% - 180px);
    max-width: 1250px;
    margin-inline: auto
}

.academy .section {
    padding-block: 145px 0;
    background: #fff
}

.academy .lead {
    font-size: 28px;
    font-weight: 600;
    line-height: 1.12;
    color: var(--purple);
    margin-top: 34px
}

.academy .button {
    display: inline-flex;
    margin: 0;
    border-radius: 0;
    align-items: center;
    justify-content: center;
    min-height: 60px;
    padding: 15px 30px;
    text-align: center;
    text-decoration: none;
    font-size: 28px;
    font-weight: 600;
    border: 0;
    cursor: pointer;
    transition: background .22s, transform .22s, box-shadow .22s
}

.academy .button:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 20px #0002
}

.academy .button:active {
    transform: translateY(0)
}

.academy .button-purple {
    background: var(--purple);
    color: #fff
}

.academy .button-dark {
    background: var(--ink);
    color: #fff
}

.academy :focus-visible {
    outline: 3px solid var(--purple);
    outline-offset: 6px
}

.academy .button-purple:focus-visible {
    outline-color: var(--ink)
}

.academy .pill {
    display: inline-flex;
    width: auto;
    justify-content: center;
    align-items: center;
    border: 1px solid var(--ink);
    border-radius: 100px;
    padding: 15px 30px;
    white-space: nowrap;
    font-size: 28px;
    font-weight: 600
}

.academy .pill-dark {
    background: var(--ink);
    color: var(--lime);
    font-family: Unbounded, Arial, sans-serif;
    font-weight: 800;
    min-width: 312px
}

.academy .pill-lime {
    background: var(--lime);
    border: 0;
    padding: 10px 48px
}

.hero {
    position: relative;
    isolation: isolate;
    background: #d9eb8e;
    min-height: 706px
}

.hero-photo {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: -2
}

.hero-photo-mob {
    display: none !important;
}

.hero:has(.hero-photo):after {
    content: '';
    position: absolute;
    inset: 0;
    background: #e9fa989e;
    z-index: -1
}

.hero-inner {
    padding-top: 120px;
    padding-bottom: 86px
}

.hero-meta {
    display: flex;
    justify-content: space-between;
    gap: 24px
}

.hero-content {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    margin-top: 174px;
    gap: 30px
}

.hero-content .lead {
    margin-top: 30px
}

.hero-content .button {
    min-width: 380px;
    min-height: 82px
}

.timeline {
    list-style: none;
    padding: 0;
    position: relative;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    height: 430px;
    margin: 106px 0 0
}

.timeline:before {
    content: '';
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    height: 1px;
    background: #777
}

.timeline-item {
    position: relative;
    min-width: 0
}

.timeline-item:nth-child(odd) {
    padding-top: 255px
}

.timeline-item:nth-child(even) {
    padding-top: 22px
}

.timeline-copy {
    padding-left: 64px;
    width: 430px;
    max-width: 150%
}

.timeline-item:nth-child(even) .timeline-copy {
    padding-left: 34px;
    width: 365px
}

.timeline-item:last-child .timeline-copy {
    width: 100%
}

.timeline-copy p {
    margin-top: 16px;
    font-weight: 400
}

.timeline-number {
    position: absolute;
    left: 0;
    top: 265px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--ink);
    color: var(--lime);
    border-radius: 50%;
    width: 38px;
    height: 38px;
    font-size: 16px;
    font-weight: 600;
    z-index: 1
}

.timeline-item:nth-child(even) .timeline-number {
    top: 28px;
    left: -16px
}

.timeline-item:first-child .timeline-number {
    width: 68px;
    height: 68px;
    top: 181px;
    font-size: 34px
}

.timeline-item:nth-child(odd):not(:first-child):before,
.timeline-item:nth-child(even):before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    height: 70px;
    border-left: 1px solid #777
}

.timeline-item:nth-child(even):before {
    top: 45px;
    height: 170px
}

.timeline-item:after {
    content: '';
    position: absolute;
    top: calc(50% - 4px);
    left: 0;
    width: 8px;
    height: 8px;
    background: var(--ink);
    border-radius: 50%
}

.speakers {
    margin-top: 160px
}

.speaker-main {
    position: relative;
    background: var(--gray);
    min-height: 850px
}

.speaker-intro {
    position: relative;
    z-index: 2;
    padding-top: 66px
}

.speaker-intro h2 {
    margin-top: 36px
}

.speaker-intro .lead {
    max-width: 650px;
    margin-top: 28px
}

.speaker-main picture {
    position: absolute;
    inset: auto 0 0;
    width: 100%;
    pointer-events: none
}

.andrey {
    width: 100%;
    height: auto;
    max-height: 1000px;
    object-fit: contain;
    object-position: bottom
}


/* Speakers cards */
.speaker-cards {
    position: relative;
    z-index: 3;

    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 22px;

    width: auto !important;
    max-width: calc(100% - 180px);

    margin-top: -225px !important;
    margin-left: max(90px, calc((100% - 1250px) / 2)) !important;
    margin-right: auto !important;
}

.speaker-row {
    display: flex;
    align-items: flex-end;
    gap: 16px;
}

.speaker-card {
    position: relative;
    flex: 0 0 auto;
    overflow: visible;
}

/* Ольга */
.speaker-card-olga {
    width: 505px;
    height: 492px;
    background: var(--purple);
}

.speaker-card-olga .speaker-card-photo {
    height: 470px;
    bottom: 70px;
}

/* Анастасия */
.speaker-card-nasty {
    width: 732px;
    height: 492px;
    background: var(--lime);
}

.speaker-card-nasty .speaker-card-photo {
    height: 390px;
    bottom: 145px;
}

/* Вероника */
.speaker-card-veronica {
    width: 732px;
    height: 492px;
    background: var(--ink);
}

.speaker-card-veronica .speaker-card-photo {
    height: 470px;
    bottom: 70px;
    z-index: 2;
}

/* Фотографии */
.speaker-card-photo {
    position: absolute;
    z-index: 1;
    left: 50%;
    bottom: 0;

    width: auto;
    height: 100%;
    max-width: none !important;

    transform: translateX(-50%);
    object-fit: contain;
}

/* Матовый блок с описанием */
.speaker-card-caption {
    position: absolute;
    z-index: 2;

    left: 10px;
    right: 10px;
    bottom: 0;

    min-height: 226px;
    padding: 64px 20px 18px;

    background: rgba(25, 25, 25, .62);

    -webkit-backdrop-filter: blur(18px);
    backdrop-filter: blur(18px);

    border: 1px solid rgba(255, 255, 255, .15);
    box-shadow: inset 0 0 35px rgba(255, 255, 255, .12);

    color: #fff;
}

.speaker-card-olga .speaker-card-caption {
    min-height: 330px;

}

/* Имя */
.speaker-card-caption h3 {
    position: absolute;
    top: 18px;
    left: 18px;

    margin: 0;
    padding: 20px 30px;

    border-radius: 100px;
    background: var(--lime);
    color: var(--ink);

    font-family: Unbounded, Arial, sans-serif;
    font-size: 30px;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
}

.speaker-card-olga .speaker-card-caption h3 {
    color: var(--purple);
    margin-top: 10px;
}

/* Описание */
.speaker-card-caption p {
    margin-top: 27px;
    font-size: 22px;
    font-weight: 600
}

.speaker-card-olga .speaker-card-caption p {
    max-width: 400px;
    margin-top: 70px;
}

/* Анастасия */
.speaker-card-nasty .speaker-card-caption {
    background: rgba(91, 98, 51, .58);
}

.speaker-card-nasty .speaker-card-caption h3 {
    background: var(--purple);
    color: var(--lime);
}

/* Вероника */
.speaker-card-veronica .speaker-card-caption {
    background: rgba(15, 15, 15, .66);
}

/* Секретный спикер */
.secret-card {
    width: 500px;
    height: 490px;


    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    background: #aaa;
    color: var(--lime);
    text-align: center;
}

.secret-card img {
    width: 145px;
    height: auto;
}

.secret-card h3 {
    margin: 25px 0 0;
    color: var(--lime);
    font-family: Unbounded, Arial, sans-serif;
    font-size: 24px;
    line-height: 1;
}

.benefits {
    padding-top: 180px !important
}

.benefit-grid {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: 28px 30px;
    margin-top: 60px
}

.benefit {
    appearance: none;
    position: relative;
    border: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    min-height: 378px;
    text-align: center;
    color: inherit;
    cursor: pointer;
    padding: 60px 32px;
    background: var(--gray);
    grid-column: span 4
}

.benefit-knowledge {
    grid-column: span 5;
    background: var(--lime)
}

.benefit-community {
    grid-column: span 7;
    background: white;
    border: 1px solid #777
}

.benefit-practice {
    background: var(--purple);
    color: white
}

.benefit-certificate {
    background: #000;
    color: var(--lime)
}

.benefit-content {
    position: relative;
    z-index: 4;
    display: block;
    width: 100%
}

.benefit-number {
    position: absolute;
    z-index: 5;
    top: 28px;
    left: 28px;
    border: 1px solid currentColor;
    border-radius: 50%;
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    font-size: 28px;
    font-weight: 400
}

.benefit-title {
    display: block;
    font-size: 44px;
    font-weight: 600;
    transition: transform .3s
}

.benefit-description {
    display: grid;
    grid-template-rows: 0fr;
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    font-size: 26px;
    line-height: 1.12;
    transition: max-height .3s, opacity .3s, margin .3s
}

.benefit:hover .benefit-description,
.benefit[aria-expanded=true] .benefit-description,
.benefit:focus-visible .benefit-description {
    max-height: 180px;
    opacity: 1;
    margin-top: 24px
}

.benefit:hover .benefit-title,
.benefit[aria-expanded=true] .benefit-title {
    transform: translateY(-4px)
}

.benefit-art {
    position: absolute;
    pointer-events: none;
    z-index: 3;
    object-fit: contain;
    filter: drop-shadow(0 6px 4px #0003);
    transition: transform .6s
}

.benefit:hover .benefit-art {
    transform: translateY(-8px) rotate(-4deg)
}

.benefit-knowledge .benefit-art {
    width: 210px;
    right: -10px;
    bottom: -70px
}

.benefit-community .benefit-art {
    width: 150px;
    right: 14px;
    top: -60px
}

.benefit-materials .benefit-art {
    width: 160px;
    left: -86px;
    bottom: -50px
}

.ticket {
    display: grid;
    grid-template-columns: 42% 58%;
    background: var(--lime);
    margin-top: 78px;
    padding: 60px 70px 50px;
    gap: 24px
}

.ticket-summary {
    text-align: center
}

.ticket-price {
    font-family: Unbounded, sans-serif;
    font-weight: 800
}

.ticket-price span {
    display: block;
    border: 1px solid;
    border-radius: 80px;
    padding: 12px 25px;
    width: 355px;
    margin-inline: auto;
    max-width: 100%;
    font-size: 28px
}

.ticket-price strong {
    display: block;
    width: 355px;
    max-width: 100%;
    margin: 40px auto 48px;
    text-align: center;
    font-size: 44px
}

.ticket-summary>p {
    font-size: 24px;
    width: 355px;
    max-width: 100%;
    margin-inline: auto
}

.ticket-details ul {
    columns: 2;
    column-gap: 35px;
    padding-left: 25px;
    margin: 0;
    line-height: 1.7
}

.ticket-details li {
    break-inside: avoid
}

.ticket-details .button {
    width: 100%;
    margin-top: 44px
}

.faq-list {
    margin-top: 35px
}

.faq details {
    border-bottom: 1px solid #777
}

.faq summary {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    font-size: 28px;
    font-weight: 600;
    list-style: none;
    cursor: pointer;
    padding: 28px 0
}

.faq summary::-webkit-details-marker {
    display: none
}

.faq-arrow {
    width: 0;
    height: 0;
    border-left: 10px solid transparent;
    border-right: 10px solid transparent;
    border-top: 16px solid var(--ink);
    margin-top: 8px;
    flex-shrink: 0;
    transition: transform .25s
}

.faq details[open] .faq-arrow {
    transform: rotate(180deg)
}

.faq-answer {
    padding: 10px 0 38px;
    font-size: 28px;
    line-height: 1.15
}

.faq-answer p+p {
    margin-top: 28px
}

.faq-answer ul {
    padding-left: 22px;
    margin: 0
}

.faq details[open] .faq-answer {
    animation: answer-in .3s ease-out
}

.questions {
    padding-bottom: 195px !important
}

.questions-panel {
    background: var(--gray);
    display: grid;
    grid-template-columns: 1.06fr 1fr;
    gap: 50px;
    padding: 40px
}

.questions-intro {
    min-height: 690px;
    background: url('images/questions.png') center/cover;
    display: flex;
    justify-content: flex-end;
    flex-direction: column;
    padding: 42px
}

.questions-intro h2 {
    font-size: 48px
}

.questions-intro .lead {
    font-size: 24px;
    margin-top: 22px
}

.question-form {
    display: flex;
    flex-direction: column;
    gap: 30px;
    padding: 55px 8px 0 0
}

.question-form>label:not(.consent) {
    display: flex;
    flex-direction: column;
    font-size: 24px;
    font-weight: 600;
    gap: 8px
}

.question-form input:not([type=checkbox]) {
    width: 100%;
    border: 0;
    border-bottom: 1px solid #555;
    background: transparent;
    color: var(--ink);
    min-height: 26px;
    padding: 0 0 4px;
    border-radius: 0
}

.question-form textarea {
    width: 100%;
    border: 0;
    background: #fff;
    resize: vertical;
    min-height: 242px;
    padding: 14px;
    color: var(--ink);
    border-radius: 0
}

.question-form .consent {
    display: flex;
    align-items: flex-start;
    gap: 22px;
    margin-top: 20px;
    font-size: 16px;
    line-height: 1.15;
    font-weight: 400
}

.consent input {
    appearance: none;
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    margin: 0;
    border: 1px solid #666;
    border-radius: 50%;
    cursor: pointer
}

.consent input:checked {
    background: var(--purple);
    box-shadow: inset 0 0 0 5px var(--gray)
}

.form-status {
    font-size: 16px;
    line-height: 1.4
}

.academy-skip {
    position: fixed;
    top: 10px;
    left: 10px;
    padding: 15px;
    background: #fff;
    z-index: 10;
    transform: translateY(-200%)
}

.academy-skip:focus {
    transform: translateY(0)
}

.reveal {
    transition: opacity .65s, translate .65s
}

.reveal.is-pending {
    opacity: 0;
    translate: 0 20px
}

@keyframes answer-in {
    from {
        opacity: 0;
        transform: translateY(-6px)
    }

    to {
        opacity: 1;
        transform: translateY(0)
    }
}

@media(min-width:701px) and (max-width:1399px) {
    .academy {
        font-size: clamp(16px, 1.67vw, 24px)
    }

    .academy h1 {
        font-size: 5vw
    }

    .academy h2 {
        font-size: 3.89vw
    }

    .academy h3 {
        font-size: 1.67vw
    }

    .academy .wrap {
        width: 87%
    }

    .academy .lead {
        font-size: 1.95vw
    }

    .academy .section {
        padding-top: 10vw
    }

    .academy .pill {
        font-size: 1.95vw;
        padding: 1vw 2vw
    }

    .academy .pill-dark {
        min-width: 21.7vw
    }

    .hero {
        min-height: 49vw
    }

    .hero-inner {
        padding-top: 8.33vw;
        padding-bottom: 6vw
    }

    .hero-content {
        margin-top: 12vw
    }

    .hero-meta {
        gap: 1.5vw
    }

    .hero-content .button {
        min-width: 26vw;
        min-height: 5.7vw
    }

    .academy .button {
        font-size: 1.95vw
    }

    .timeline {
        height: 30vw;
        margin-top: 7.4vw
    }

    .timeline-item:nth-child(odd) {
        padding-top: 17.7vw
    }

    .timeline-item:nth-child(even) {
        padding-top: 1.5vw
    }

    .timeline-item:nth-child(even):before {
        top: 3.125vw;
        height: 11.8vw
    }

    .timeline-number {
        top: 18.4vw;
        width: 2.64vw;
        height: 2.64vw;
        font-size: 1.11vw
    }

    .timeline-item:nth-child(even) .timeline-number {
        top: 1.95vw;
        left: -1.1vw
    }

    .timeline-item:first-child .timeline-number {
        top: 12.57vw;
        width: 4.72vw;
        height: 4.72vw;
        font-size: 2.36vw
    }

    .timeline-copy {
        padding-left: 4.45vw;
        width: 30vw
    }

    .timeline-item:nth-child(even) .timeline-copy {
        padding-left: 2.36vw;
        width: 25vw
    }

    .timeline-item:last-child .timeline-copy {
        width: 100%
    }

    .speakers {
        margin-top: 11vw
    }

    .speaker-main {
        min-height: 59vw
    }

    .speaker-intro {
        padding-top: 4.6vw
    }

    .speaker-intro .lead {
        max-width: 45vw
    }




    .benefits {
        padding-top: 12.5vw !important
    }

    .benefit-grid {
        gap: 2vw;
        margin-top: 4.2vw
    }

    .benefit {
        min-height: 26.3vw;
        padding: 4.2vw 2vw
    }

    .benefit-title {
        font-size: 3vw
    }

    .benefit-description {
        font-size: 1.8vw
    }

    .benefit-knowledge .benefit-art {
        width: 14.5vw;
        bottom: -4.9vw
    }

    .benefit-community .benefit-art {
        width: 10.5vw;
        top: -4.2vw
    }

    .benefit-materials .benefit-art {
        width: 11.2vw;
        left: -6vw;
        bottom: -3.5vw
    }

    .ticket {
        padding: 4.2vw 4.8vw 3.5vw;
        margin-top: 5.4vw
    }

    .ticket-price span {
        font-size: 1.95vw
    }

    .ticket-price strong {
        font-size: 3vw;
        margin: 2.8vw auto 3.3vw
    }

    .ticket-summary>p {
        font-size: 1.67vw
    }

    .faq summary,
    .faq-answer {
        font-size: 1.95vw
    }

    .questions-panel {
        gap: 3.5vw;
        padding: 2.8vw
    }

    .questions-intro {
        min-height: 48vw;
        padding: 2.9vw
    }

    .questions-intro h2 {
        font-size: 3.3vw
    }

    .questions-intro .lead {
        font-size: 1.67vw
    }

    .question-form {
        padding-top: 3.8vw;
        gap: 2vw
    }

    .question-form>label:not(.consent) {
        font-size: 1.67vw
    }

    .question-form textarea {
        min-height: 16.8vw
    }

    .question-form .consent {
        font-size: 12px
    }

    .questions {
        padding-bottom: 13.5vw !important
    }
}

@media(max-width:700px) {
    .academy {
        font-size: 14px;
        line-height: 1.08
    }

    .academy .wrap {
        width: 83.333%;
        max-width: 500px
    }

    .academy h1 {
        font-size: clamp(27px, 8.6vw, 46px);
        line-height: 1.08
    }

    .academy h2 {
        font-size: clamp(25px, 7.7vw, 38px);
        line-height: 1.08;
        letter-spacing: -.035em
    }

    .academy h3 {
        font-size: 16px
    }

    .academy .lead {
        font-size: 14px;
        line-height: 1.08;
        margin-top: 22px
    }

    .academy .section {
        padding-top: 65px
    }

    .academy .button {
        font-size: 16px;
        min-height: 44px;
        padding: 10px 16px
    }

    .academy .pill {
        font-size: 13px;
        padding: 8px 12px
    }

    .academy .pill-dark {
        min-width: 0
    }

    .hero {
        min-height: 480px
    }

    .hero-inner {
        padding-top: 52px;
        padding-bottom: 34px;
        text-align: center
    }

    .hero-meta {
        display: grid;
        grid-template-columns: 42% 1fr;
        gap: 9px 16px
    }

    .hero-address {
        grid-column: 1/-1;
        grid-row: 2
    }

    .hero-date {
        grid-column: 2;
        grid-row: 1
    }

    .hero-content {
        display: block;
        margin-top: 83px
    }

    .hero-content .lead {
        font-size: 16px;
        margin-top: 16px
    }

    .hero-content .button {
        min-width: 194px;
        min-height: 46px;
        margin-top: 78px
    }

    /* .hero-photo {
        object-position: center
    } */

    .hero-photo {
        display: none !important;
    }

    .hero-photo-mob {
        display: block !important;
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
        z-index: -2;
    }

    .program {
        text-align: center
    }

    .program .lead {
        font-size: 13px
    }

    .desktop-only {
        display: none
    }

    .timeline {
        display: flex;
        flex-direction: column;
        gap: 0;
        height: auto;
        margin: 65px 0 0
    }

    .timeline:before {
        display: none
    }

    .timeline-item:nth-child(n) {
        padding: 0 0 70px
    }

    .timeline-item:nth-child(n):before {
        display: none
    }

    .timeline-item:after {
        display: none
    }

    .timeline-item:nth-child(n) .timeline-number {
        position: relative;
        left: auto;
        top: auto;
        width: 36px;
        height: 36px;
        font-size: 15px;
        margin: 0 auto 33px
    }

    .timeline-item:first-child .timeline-number {
        width: 68px;
        height: 68px;
        font-size: 34px;
        margin-bottom: 20px
    }

    .timeline-item:not(:last-child) .timeline-copy:after {
        content: '';
        position: absolute;
        left: 50%;
        height: 44px;
        bottom: -58px;
        border-left: 1px solid #777
    }

    .timeline-item .timeline-number:after {
        content: '';
        position: absolute;
        left: 50%;
        top: 100%;
        height: 24px;
        border-left: 1px solid #777
    }

    .timeline-item:first-child .timeline-number:after {
        height: 10px
    }

    .timeline-item:nth-child(n) .timeline-copy {
        position: relative;
        padding: 0;
        width: 100%;
        max-width: 100%
    }

    .timeline-copy h3 {
        font-size: 16px
    }

    .timeline-copy h3 br {
        display: none
    }

    .timeline-copy p {
        font-size: 13px;
        margin-top: 12px
    }

    .timeline-item:last-child {
        padding-bottom: 0
    }

    .speakers {
        margin-top: 80px;
        background: var(--gray);
        padding-bottom: 50px
    }

    .speaker-main {
        min-height: 0
    }

    .speaker-intro {
        padding-top: 28px;
        text-align: center
    }

    .academy .pill-lime {
        font-size: 16px;
        padding: 5px 26px
    }

    .speaker-intro h2 {
        margin-top: 20px;
        max-width: 230px;
        margin-inline: auto
    }

    .speaker-intro .lead {
        font-size: 13px;
        margin: 20px auto 0;
        max-width: 310px
    }

    .speaker-main picture {
        position: relative;
        display: block;
        margin-top: 12px
    }

    .andrey {
        width: 100%;
        height: auto;
        max-height: none
    }


    /* Speakers cards */
    .speaker-cards {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 32px;

        width: 100% !important;
        max-width: none;
        margin: 32px 0 0 !important;
    }

    .speaker-row {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 32px;

        width: 100%;
    }

    /* Карточки */
    .speaker-card,
    .speaker-card-olga,
    .speaker-card-nasty,
    .speaker-card-veronica,
    .secret-card {
        position: relative;
        flex: none;

        width: 300px;
        height: 340px;
    }

    /* Фотографии */
    .speaker-card-photo,
    .speaker-card-olga .speaker-card-photo,
    .speaker-card-nasty .speaker-card-photo,
    .speaker-card-veronica .speaker-card-photo {
        position: absolute;
        z-index: 1;

        left: 50%;
        bottom: 0;

        width: 100%;
        height: 97%;
        max-width: none !important;

        transform: translateX(-50%);
        object-fit: contain;
        object-position: center bottom;
    }

    .speaker-card-nasty .speaker-card-photo {
        width: 100%;
        height: 75%;
        bottom: 75px;

    }

    /* Матовый блок */
    .speaker-card-caption,
    .speaker-card-olga .speaker-card-caption {
        position: absolute;
        z-index: 2;

        left: 10px;
        right: 10px;
        bottom: 0;

        width: auto;
        height: 170px;
        min-height: 0;

        padding: 60px 15px 12px;
        border: 1px solid rgba(255, 255, 255, 0.4);
    }

    /* Имя */
    .speaker-card-caption h3 {
        position: absolute;

        top: 15px;
        left: 15px;
        right: 15px;

        margin: 0;
        padding: 10px 8px;

        font-size: 15px;
        line-height: 1;
        text-align: center;
    }

    /* Описание */
    .speaker-card-caption p {
        max-width: none;
        margin: 0;

        font-size: 13px;
        text-align: center;

    }

    .speaker-card-olga .speaker-card-caption p {
        margin: 10px auto 0;
        max-width: 200px;
    }

    /* Секретный спикер */
    .secret-card {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }

    .secret-card img {
        width: 100px;
        height: auto;
    }

    .secret-card h3 {
        margin-top: 18px;
        font-size: 16px;
    }


    .benefits {
        padding-top: 65px !important;
        text-align: center
    }

    .benefits>.lead {
        font-size: 13px
    }

    .benefit-grid {
        grid-template-columns: 1fr;
        gap: 12px;
        width: 80%;
        margin: 52px auto 0
    }

    .benefit {
        grid-column: auto;
        padding: 46px 22px;
        min-height: 0;
        aspect-ratio: 1/1
    }

    .benefit-number {
        top: 16px;
        left: 16px;
        font-size: 22px;
        width: 36px;
        height: 36px
    }

    .benefit-title {
        font-size: 16px
    }

    .benefit-description {
        font-size: 13px;
        line-height: 1.04
    }

    .benefit:hover .benefit-description,
    .benefit[aria-expanded=true] .benefit-description,
    .benefit:focus-visible .benefit-description {
        margin-top: 18px
    }

    .benefit-art {
        display: none !important
    }

    .benefit-certificate {
        background: var(--ink)
    }

    .tickets {
        text-align: center
    }

    .tickets h2 {
        max-width: 290px;
        margin-inline: auto
    }

    .tickets>.lead {
        font-size: 13px;
        max-width: 270px;
        margin-inline: auto
    }

    .ticket {
        display: block;
        width: 80%;
        margin: 42px auto 0;
        padding: 24px 13px 26px
    }

    .ticket-price {
        display: flex;
        align-items: center;
        justify-content: center;
        border: 1px solid;
        border-radius: 100px;
        padding: 6px 5px;
        gap: 8px;
        white-space: nowrap
    }

    .ticket-price span {
        border: 0;
        padding: 0;
        font-size: 13px;
        width: auto;
        margin: 0
    }

    .ticket-price strong {
        width: auto;
        max-width: none;
        margin: 0;
        font-size: 16px;
        border-left: 1px solid;
        padding-left: 8px
    }

    .ticket-summary>p {
        font-size: 13px;
        margin: 24px auto 28px
    }

    .ticket-details ul {
        columns: auto;
        list-style: none;
        margin: 0;
        padding: 0;
        font-size: 13px;
        line-height: 1.12
    }

    .ticket-details li {
        margin: 0
    }

    .ticket-details li+li:before {
        content: '•';
        display: block;
        font-size: 20px;
        line-height: 22px
    }

    .ticket-details .button {
        margin-top: 22px;
        min-height: 34px;
        padding: 6px;
        font-size: 16px
    }

    .faq {
        width: 75% !important;
        padding-top: 55px !important
    }

    .faq h2 {
        text-align: center
    }

    .faq-list {
        margin-top: 28px
    }

    .faq summary {
        padding: 28px 0;
        font-size: 16px;
        line-height: 1.02;
        min-height: 85px;
        gap: 20px
    }

    .faq-arrow {
        border-left-width: 5px;
        border-right-width: 5px;
        border-top-width: 8px;
        margin-top: 2px
    }

    .faq-answer {
        font-size: 13px;
        line-height: 1.07;
        padding: 0 0 24px
    }

    .faq-answer p+p {
        margin-top: 16px
    }

    .faq-answer li+li {
        margin-top: 14px
    }

    .faq-answer ul {
        padding-left: 15px
    }

    .questions {
        padding-top: 62px !important;
        padding-bottom: 65px !important;
        width: 75% !important
    }

    .questions-panel {
        display: block;
        background: none;
        padding: 0
    }

    .questions-intro {
        min-height: 0;
        background: none;
        text-align: center;
        padding: 0
    }

    .questions-intro h2 {
        font-size: clamp(25px, 7.7vw, 38px)
    }

    .questions-intro .lead {
        font-size: 13px;
        margin-top: 20px
    }

    .question-form {
        margin-top: 38px;
        padding: 34px 26px 24px;
        gap: 25px;
        background: var(--gray)
    }

    .question-form>label:not(.consent) {
        font-size: 13px;
        gap: 2px
    }

    .question-form input:not([type=checkbox]) {
        font-size: 16px;
        min-height: 10px
    }

    .question-form textarea {
        min-height: 150px;
        font-size: 16px;
        padding: 10px
    }

    .question-form .consent {
        gap: 10px;
        font-size: 11px;
        margin-top: 5px
    }

    .consent input {
        width: 18px;
        height: 18px
    }

    .consent input:checked {
        box-shadow: inset 0 0 0 3px var(--gray)
    }

    .form-status {
        font-size: 12px
    }
}

.academy h1,
.academy h2 {
    font-weight: 700
}

.ticket {
    grid-template-columns: minmax(0, 42fr) minmax(0, 58fr)
}

.mobile-break {
    display: none
}

@media(max-width:700px) {
    .mobile-break {
        display: inline
    }
}

@media(min-width:701px) {
    .timeline {
        grid-template-columns: 26% 23% 23% 28%
    }

    .timeline:before {
        left: 68px
    }

    .timeline-item:after {
        left: 0;
        top: 50%;
        transform: translate(-50%, -50%)
    }

    .timeline-item:first-child:after {
        display: none
    }

    .timeline-item .timeline-number {
        left: 0;
        transform: translateX(-50%)
    }

    .timeline-item:first-child .timeline-number {
        left: 0;
        transform: none
    }

    .timeline-item:nth-child(odd):not(:first-child):before {
        top: 50%;
        height: 50px
    }

    .timeline-item:nth-child(even):before {
        top: 60px;
        height: calc(50% - 60px)
    }

    .timeline-item:nth-child(even) .timeline-number {
        left: 0
    }

    .timeline-item:nth-child(even) .timeline-copy p {
        font-size: .92em;
        line-height: 1.06
    }

    .timeline-item:last-child .timeline-copy {
        max-width: 100%
    }

    .timeline-item:last-child .timeline-copy p {
        font-size: .9em
    }
}

@media(min-width:701px) {
    .timeline:before {
        left: min(4.72vw, 68px)
    }
}

@media(max-width:700px) {
    .timeline-item:nth-child(n) .timeline-number {
        font-size: 0
    }

    .timeline-number:before {
        content: attr(data-mobile-number);
        font-size: 15px
    }

    .timeline-item:first-child .timeline-number:before {
        font-size: 34px
    }

    .timeline-item:not(:last-child) .timeline-copy:after {
        bottom: -70px;
        height: 55px;
        border-color: var(--ink)
    }

    .timeline-item .timeline-number:after {
        border-color: var(--ink)
    }
}

@media(min-width:701px) {
    .timeline {
        --timeline-axis: 215px
    }

    .timeline:before,
    .timeline-item:after {
        top: var(--timeline-axis)
    }

    .timeline-item:nth-child(odd):not(:first-child):before {
        top: var(--timeline-axis);
        height: 50px
    }

    .timeline-item:nth-child(even):before {
        top: 60px;
        height: calc(var(--timeline-axis) - 60px)
    }
}

@media(min-width:701px) and (max-width:1399px) {
    .timeline {
        --timeline-axis: 15vw
    }

    .timeline-item:nth-child(odd):not(:first-child):before {
        height: 3.4vw
    }

    .timeline-item:nth-child(even):before {
        top: 4.59vw;
        height: calc(var(--timeline-axis) - 4.59vw)
    }
}

@media(prefers-reduced-motion:reduce) {
    .academy * {
        animation: none !important;
        transition: none !important;
        scroll-behavior: auto !important
    }

    .reveal.is-pending {
        opacity: 1;
        translate: none
    }
}

@media(max-width:700px) {
    .benefit-description {
        display: block;
        grid-template-rows: none;
        max-height: none;
        opacity: 1;
        overflow: visible;
        margin-top: 18px
    }

    .question-form>label:not(.consent) {
        gap: 10px
    }

    .question-form input:focus-visible,
    .question-form textarea:focus-visible {
        outline-offset: 1px
    }
}

/* Academy schedule and certificate */
.academy-schedule {
    text-align: center
}

.academy-schedule-list {
    width: min(100%, 980px);
    margin: 70px auto 0
}

.academy-schedule-row {
    display: grid;
    grid-template-columns: 360px 1fr;
    align-items: center;
    gap: 70px;
    margin-top: 12px
}

.academy-schedule-row time {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 58px;
    padding: 10px 30px;
    border-radius: 999px;
    background: var(--lime);
    color: var(--ink);
    font-family: Unbounded, Arial, sans-serif;
    font-size: 24px;
    font-weight: 700;
    white-space: nowrap
}

.academy-schedule-row p {
    text-align: left;
    text-transform: uppercase;
    font-size: 25px;
    font-weight: 600
}

.academy-schedule-row.is-break p {
    font-weight: 400
}

.academy-certificate {
    display: grid;
    grid-template-columns: minmax(280px, .72fr) minmax(0, 1.4fr);
    align-items: center;
    gap: 58px;
    padding-bottom: 145px !important
}

.academy-certificate-copy h2 {
    font-size: 48px
}

.academy-certificate-copy h3 {
    margin-top: 4px;
    font-size: 38px;
    font-weight: 400;
    text-transform: uppercase
}

.academy-certificate-copy p {
    max-width: 390px;
    margin-top: 20px;
    font-size: 25px;
    line-height: 1.15
}

.academy-certificate-card {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    min-height: 470px;
    padding: 48px 52px;
    border-radius: 24px;
    background: var(--lime);
    color: var(--ink);
    text-align: center;
    box-shadow: 0 18px 50px #24205b26
}

.academy-certificate-card:before,
.academy-certificate-card:after {
    content: '';
    position: absolute;
    z-index: -1;
    border: 34px solid #20201e0d;
    border-radius: 50%;
    width: 460px;
    height: 650px;
    transform: rotate(-24deg)
}

.academy-certificate-card:before {
    left: -170px;
    top: -165px
}

.academy-certificate-card:after {
    right: -210px;
    bottom: -410px
}

.academy-certificate-logo {
    font-size: 24px;
    font-weight: 400;
    line-height: .75
}

.academy-certificate-logo small {
    display: block;
    margin-top: 7px;
    font-size: 8px;
    letter-spacing: .08em
}

.academy-certificate-card>strong {
    display: block;
    margin-top: 62px;
    font-family: Unbounded, Arial, sans-serif;
    font-size: 48px;
    line-height: 1
}

.academy-certificate-card>p {
    margin-top: 14px;
    font-size: 14px
}

.academy-certificate-name {
    margin-top: 25px;
    padding: 0 8px 7px;
    border-bottom: 1px solid var(--ink);
    text-align: left;
    font-size: 17px
}

.academy-certificate-meta {
    display: grid;
    grid-template-columns: 1.3fr 1fr .6fr;
    gap: 28px;
    margin-top: 72px;
    text-align: left;
    font-size: 13px;
    line-height: 1.5
}

.academy-certificate-meta span:nth-child(2) {
    border-bottom: 1px solid #20201eb8
}

.academy-certificate-meta span:last-child {
    text-align: right;
    align-self: end
}

@media(min-width:701px) and (max-width:1399px) {
    .academy-schedule-list {
        margin-top: 5vw
    }

    .academy-schedule-row {
        grid-template-columns: 25vw 1fr;
        gap: 5vw;
        margin-top: .85vw
    }

    .academy-schedule-row time {
        min-height: 4vw;
        font-size: 1.67vw
    }

    .academy-schedule-row p {
        font-size: 1.74vw
    }

    .academy-certificate {
        gap: 4vw;
        padding-bottom: 10vw !important
    }

    .academy-certificate-copy h2 {
        font-size: 3.33vw
    }

    .academy-certificate-copy h3 {
        font-size: 2.64vw
    }

    .academy-certificate-copy p {
        font-size: 1.74vw
    }

    .academy-certificate-card {
        min-height: 32.6vw;
        padding: 3.33vw 3.6vw
    }

    .academy-certificate-card>strong {
        margin-top: 4.3vw;
        font-size: 3.33vw
    }

    .academy-certificate-meta {
        margin-top: 5vw
    }
}

@media(max-width:700px) {
    .academy-schedule h2 {
        font-size: clamp(25px, 7.7vw, 38px)
    }

    .academy-schedule-list {
        margin-top: 42px
    }

    .academy-schedule-row {
        grid-template-columns: minmax(0, 44%) minmax(0, 1fr);
        gap: 14px;
        margin-top: 8px
    }

    .academy-schedule-row time {
        min-height: 38px;
        padding: 7px 8px;
        font-size: 12px
    }

    .academy-schedule-row p {
        font-size: 12px;
        line-height: 1.05
    }

    .academy-certificate {
        display: block;
        padding-bottom: 65px !important;
        text-align: center
    }

    .academy-certificate-copy h2 {
        font-size: clamp(25px, 7.7vw, 38px)
    }

    .academy-certificate-copy h3 {
        font-size: 18px
    }

    .academy-certificate-copy p {
        max-width: 290px;
        margin: 16px auto 0;
        font-size: 14px
    }

    .academy-certificate-card {
        min-height: 0;
        margin-top: 35px;
        padding: 24px 20px 22px;
        border-radius: 14px
    }

    .academy-certificate-logo {
        font-size: 15px
    }

    .academy-certificate-logo small {
        font-size: 5px
    }

    .academy-certificate-card>strong {
        margin-top: 34px;
        font-size: 23px
    }

    .academy-certificate-card>p {
        margin-top: 9px;
        font-size: 8px
    }

    .academy-certificate-name {
        margin-top: 18px;
        font-size: 10px
    }

    .academy-certificate-meta {
        gap: 12px;
        margin-top: 38px;
        font-size: 7px
    }
}