.academy-flow{
    position:relative;
    overflow:hidden;
    padding:155px 0 120px;
    background:#FDF3F2;
}

.academy-flow__wave{
    position:absolute;
    z-index:0;
    top:-1px;
    left:0;
    width:100%;
    height:105px;
    pointer-events:none;
}

.academy-flow__wave svg{
    display:block;
    width:100%;
    height:100%;
}

.academy-flow__wave path{
    fill:#FFFDFB;
}

.academy-flow__container{
    position:relative;
    z-index:2;
}

.academy-flow__intro{
    position:relative;
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(190px,220px) minmax(0,.9fr);
    align-items:center;
    gap:34px;
    margin-bottom:72px;
}

.academy-flow__intro-left{
    max-width:620px;
}

.academy-flow__kicker{
    display:block;
    margin:0 0 17px;
    color:#c88796;
    font-family:var(--script);
    font-size:clamp(29px,2.5vw,38px);
    line-height:1;
}

.academy-flow__intro-left h2{
    margin:0;
    color:#4d4346;
    font-family:var(--serif);
    font-size:clamp(45px,4.4vw,66px);
    line-height:.93;
    letter-spacing:-.045em;
    font-weight:500;
}

.academy-flow__intro-left h2 strong{
    display:block;
    color:#4d4346;
    font-weight:500;
}

.academy-flow__intro-center{
    width:100%;
    height:112px;
    display:grid;
    place-items:center;
}

.academy-flow__journey{
    width:220px;
    height:112px;
    transform:none;
    transform-origin:center;
}

.academy-flow__journey svg{
    display:block;
    width:100%;
    height:100%;
    overflow:visible;
}

.academy-flow__journey-mask-path{
    fill:none;
    stroke:#fff;
    stroke-width:16;
    stroke-linecap:round;
    stroke-linejoin:round;
    stroke-dasharray:1 1;
    stroke-dashoffset:1;
}

.academy-flow__journey-path{
    fill:none;
    stroke:#cf8393;
    stroke-width:2.15;
    stroke-linecap:round;
    stroke-dasharray:.015 .045;
    vector-effect:non-scaling-stroke;
}

.academy-flow__journey-leaf{
    opacity:0;
    transform-box:fill-box;
    transform-origin:center;
}

.academy-flow__journey-leaf path:first-child{
    fill:transparent;
    stroke:#c86f82;
    stroke-width:1.25;
    stroke-linejoin:round;
    stroke-dasharray:1 1;
    stroke-dashoffset:1;
    vector-effect:non-scaling-stroke;
}

.academy-flow__journey-leaf path:last-child{
    fill:none;
    stroke:#c86f82;
    stroke-width:1;
    stroke-linecap:round;
    stroke-dasharray:1 1;
    stroke-dashoffset:1;
    vector-effect:non-scaling-stroke;
}

.academy-flow__intro-right{
    max-width:560px;
    justify-self:end;
}

.academy-flow__intro-right h3{
    margin:0;
    color:#c86f82;
    font-family:var(--script);
    font-size:clamp(46px,4.5vw,68px);
    line-height:.82;
    letter-spacing:0;
    font-weight:400;
}

.academy-flow__intro-right h3 span{
    display:block;
    margin-top:9px;
}

.academy-flow__intro-right p{
    max-width:520px;
    margin:28px 0 0;
    color:#67585c;
    font-size:14px;
    line-height:1.8;
}

.academy-flow__grid{
    display:grid;
    grid-template-columns:repeat(12,minmax(0,1fr));
    grid-template-rows:430px 430px;
    gap:22px;
}

.academy-flow__card{
    position:relative;
    min-width:0;
    height:100%;
    overflow:hidden;
    isolation:isolate;
    background:#c7b2b6;
    border-radius:46px 0 46px 0;
    transform:translateZ(0);
}

.academy-flow__card--one{
    grid-column:span 4;
}

.academy-flow__card--two{
    grid-column:span 5;
}

.academy-flow__card--three{
    grid-column:span 3;
}

.academy-flow__card--four{
    grid-column:span 3;
}

.academy-flow__card--five{
    grid-column:span 5;
}

.academy-flow__card--six{
    grid-column:span 4;
}

.academy-flow__card>img{
    position:absolute;
    z-index:0;
    inset:0;
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    transform:scale(1.001);
    transition:
        transform 1.05s cubic-bezier(.22,1,.36,1),
        filter .7s ease;
}

.academy-flow__card--one>img{
    object-position:center 44%;
}

.academy-flow__card--two>img{
    object-position:center 48%;
}

.academy-flow__card--three>img{
    object-position:56% center;
}

.academy-flow__card--four>img{
    object-position:56% center;
}

.academy-flow__card--five>img{
    object-position:center 28%;
}

.academy-flow__card--six>img{
    object-position:center 80%;
}

.academy-flow__shade{
    position:absolute;
    z-index:1;
    inset:0;
    background:
        linear-gradient(
            180deg,
            rgba(30,22,25,.03) 0%,
            rgba(30,22,25,.04) 29%,
            rgba(30,22,25,.18) 57%,
            rgba(27,19,22,.82) 100%
        );
    transition:background .65s ease;
    pointer-events:none;
}

.academy-flow__wash{
    position:absolute;
    z-index:2;
    left:0;
    right:0;
    bottom:0;
    height:76%;
    background:
        linear-gradient(
            180deg,
            rgba(68,45,51,0) 0%,
            rgba(68,45,51,.08) 15%,
            rgba(72,42,51,.62) 59%,
            rgba(55,32,39,.95) 100%
        );
    transform:translateY(0);
    opacity:1;
    pointer-events:none;
}

.academy-flow__icon{
    position:absolute;
    z-index:4;
    top:20px;
    right:20px;
    width:50px;
    height:50px;
    display:grid;
    place-items:center;
    border-radius:54% 46% 57% 43% / 45% 57% 43% 55%;
    background:#edb7bd;
    color:#6b2437;
    font-size:16px;
    transition:
        transform .55s cubic-bezier(.22,1,.36,1),
        background-color .4s ease,
        color .4s ease;
}

.academy-flow__card:nth-child(2) .academy-flow__icon{
    border-radius:45% 55% 43% 57% / 57% 44% 56% 43%;
}

.academy-flow__card:nth-child(3) .academy-flow__icon{
    border-radius:58% 42% 54% 46% / 43% 57% 43% 57%;
}

.academy-flow__card:nth-child(4) .academy-flow__icon{
    border-radius:44% 56% 59% 41% / 56% 43% 57% 44%;
}

.academy-flow__card:nth-child(5) .academy-flow__icon{
    border-radius:57% 43% 45% 55% / 44% 58% 42% 56%;
}

.academy-flow__card:nth-child(6) .academy-flow__icon{
    border-radius:43% 57% 57% 43% / 58% 42% 55% 45%;
}

.academy-flow__content{
    position:absolute;
    z-index:4;
    left:27px;
    right:27px;
    bottom:25px;
}

.academy-flow__title-row{
    display:flex;
    align-items:flex-start;
    justify-content:flex-start;
    gap:0;
}

.academy-flow__title-row h3{
    max-width:410px;
    margin:0;
    color:#fff;
    font-family:var(--serif);
    font-size:clamp(25px,2vw,32px);
    line-height:1.02;
    letter-spacing:-.025em;
    font-weight:600;
}

.academy-flow__details{
    max-height:180px;
    overflow:visible;
    opacity:1;
    transform:none;
}

.academy-flow__divider{
    display:block;
    width:100%;
    height:1px;
    margin:19px 0 15px;
    background:rgba(255,255,255,.42);
}

.academy-flow__details p{
    max-width:440px;
    margin:0;
    color:rgba(255,255,255,.93);
    font-size:13px;
    line-height:1.62;
}

.academy-flow__card--three .academy-flow__content,
.academy-flow__card--four .academy-flow__content{
    left:21px;
    right:21px;
    bottom:22px;
}

.academy-flow__card--three .academy-flow__title-row,
.academy-flow__card--four .academy-flow__title-row{
    gap:11px;
}

.academy-flow__card--three .academy-flow__title-row h3,
.academy-flow__card--four .academy-flow__title-row h3{
    font-size:26px;
}

.academy-flow__card--three .academy-flow__details p,
.academy-flow__card--four .academy-flow__details p{
    font-size:12px;
}


[data-flow-left]{
    opacity:1;
    --pmf-reveal-from:translateX(-70px);transform:none;
    transition:
        opacity .9s ease,
        transform 1s cubic-bezier(.22,1,.36,1);
}

[data-flow-right]{
    opacity:1;
    --pmf-reveal-from:translateX(70px);transform:none;
    transition:
        opacity .9s ease .08s,
        transform 1s cubic-bezier(.22,1,.36,1) .08s;
}

[data-flow-left].is-visible,
[data-flow-right].is-visible{
    opacity:1;
    transform:translateX(0);
}

.academy-flow__intro.is-visible .academy-flow__journey-mask-path{
    animation:
        academyFlowJourneyDraw
        1.4s
        cubic-bezier(.22,.61,.36,1)
        forwards;
}

.academy-flow__intro.is-visible .academy-flow__journey-leaf--one{
    animation:
        academyFlowJourneyLeafAppear
        .24s
        ease
        .58s
        forwards;
}

.academy-flow__intro.is-visible .academy-flow__journey-leaf--two{
    animation:
        academyFlowJourneyLeafAppear
        .24s
        ease
        .96s
        forwards;
}

.academy-flow__intro.is-visible .academy-flow__journey-leaf--one path:first-child{
    animation:
        academyFlowJourneyLeafDraw
        .7s
        cubic-bezier(.22,.61,.36,1)
        .58s
        forwards;
}

.academy-flow__intro.is-visible .academy-flow__journey-leaf--one path:last-child{
    animation:
        academyFlowJourneyStemDraw
        .52s
        cubic-bezier(.22,.61,.36,1)
        .83s
        forwards;
}

.academy-flow__intro.is-visible .academy-flow__journey-leaf--two path:first-child{
    animation:
        academyFlowJourneyLeafDraw
        .7s
        cubic-bezier(.22,.61,.36,1)
        .96s
        forwards;
}

.academy-flow__intro.is-visible .academy-flow__journey-leaf--two path:last-child{
    animation:
        academyFlowJourneyStemDraw
        .52s
        cubic-bezier(.22,.61,.36,1)
        1.18s
        forwards;
}

[data-flow-card]{
    opacity:1;
    --pmf-reveal-from:translateY(28px);transform:none;
    transition:
        opacity .7s ease,
        transform .75s cubic-bezier(.22,1,.36,1);
}

[data-flow-card].is-visible{
    opacity:1;
    transform:translateY(0);
}


@media(max-width:1080px){
    .academy-flow__intro{
        grid-template-columns:minmax(0,1fr) 175px minmax(0,.9fr);
        gap:24px;
    }

    .academy-flow__intro-center{
        height:90px;
    }

    .academy-flow__journey{
        width:175px;
        height:90px;
        transform:none;
    }

    .academy-flow__grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
        grid-template-rows:none;
    }

    .academy-flow__card--one,
    .academy-flow__card--two,
    .academy-flow__card--three,
    .academy-flow__card--four,
    .academy-flow__card--five,
    .academy-flow__card--six{
        grid-column:auto;
        height:430px;
        border-radius:42px 0 42px 0;
    }

    .academy-flow__card--three .academy-flow__content,
    .academy-flow__card--four .academy-flow__content{
        left:27px;
        right:27px;
        bottom:25px;
    }

    .academy-flow__card--three .academy-flow__title-row h3,
    .academy-flow__card--four .academy-flow__title-row h3{
        font-size:30px;
    }

    .academy-flow__card--three .academy-flow__details p,
    .academy-flow__card--four .academy-flow__details p{
        font-size:13px;
    }
}

@media(max-width:780px){
    .academy-flow{
        padding:115px 0 85px;
    }

    .academy-flow__wave{
        height:68px;
    }

    .academy-flow__intro{
        display:block;
        margin-bottom:48px;
    }

    .academy-flow__intro-left{
        max-width:620px;
    }

    .academy-flow__intro-left h2{
        font-size:clamp(40px,10.5vw,53px);
    }

    .academy-flow__intro-center{
        display:none;
    }

    .academy-flow__intro-right{
        max-width:620px;
        justify-self:auto;
    }

    .academy-flow__intro-right h3{
        font-size:clamp(45px,12vw,60px);
    }

    .academy-flow__intro-right p{
        margin-top:22px;
        font-size:13px;
        line-height:1.75;
    }

    [data-flow-left]{
        transform:translateX(-45px);
    }

    [data-flow-right]{
        transform:translateX(45px);
    }

    .academy-flow__grid{
        display:flex;
        width:100%;
        gap:14px;
        overflow-x:auto;
        overflow-y:hidden;
        padding:2px 34px 10px 0;
        scroll-snap-type:x mandatory;
        scroll-padding-left:0;
        scroll-behavior:smooth;
        overscroll-behavior-x:contain;
        touch-action:pan-x;
        -webkit-overflow-scrolling:touch;
        scrollbar-width:none;
    }

    .academy-flow__grid::-webkit-scrollbar{
        display:none;
    }

    .academy-flow__card--one,
    .academy-flow__card--two,
    .academy-flow__card--three,
    .academy-flow__card--four,
    .academy-flow__card--five,
    .academy-flow__card--six{
        flex:0 0 calc(100% - 34px);
        width:calc(100% - 34px);
        height:410px;
        border-radius:36px 0 36px 0;
        scroll-snap-align:start;
        scroll-snap-stop:always;
    }

    .academy-flow__card>img{
        transform:scale(1.03);
    }

    .academy-flow__wash{
        height:78%;
        transform:translateY(0);
        opacity:1;
    }

    .academy-flow__shade{
        background:
            linear-gradient(
                180deg,
                rgba(30,22,25,.03) 0%,
                rgba(30,22,25,.04) 25%,
                rgba(30,22,25,.2) 51%,
                rgba(27,19,22,.86) 100%
            );
    }

    .academy-flow__icon{
        top:16px;
        right:16px;
    }

    .academy-flow__content,
    .academy-flow__card--three .academy-flow__content,
    .academy-flow__card--four .academy-flow__content{
        left:21px;
        right:21px;
        bottom:22px;
    }

    .academy-flow__title-row h3,
    .academy-flow__card--three .academy-flow__title-row h3,
    .academy-flow__card--four .academy-flow__title-row h3{
        font-size:28px;
    }

    .academy-flow__details p,
    .academy-flow__card--three .academy-flow__details p,
    .academy-flow__card--four .academy-flow__details p{
        max-width:470px;
        font-size:13px;
    }

}

@media(max-width:430px){
    .academy-flow__kicker{
        font-size:27px;
    }

    .academy-flow__intro-left h2{
        font-size:clamp(38px,11vw,48px);
    }

        .academy-flow__intro-right h3{
        font-size:clamp(43px,12.5vw,54px);
    }

    .academy-flow__card--one,
    .academy-flow__card--two,
    .academy-flow__card--three,
    .academy-flow__card--four,
    .academy-flow__card--five,
    .academy-flow__card--six{
        flex-basis:calc(100% - 28px);
        width:calc(100% - 28px);
        height:385px;
        border-radius:31px 0 31px 0;
    }

    .academy-flow__icon{
        width:45px;
        height:45px;
        font-size:14px;
    }

    .academy-flow__title-row h3,
    .academy-flow__card--three .academy-flow__title-row h3,
    .academy-flow__card--four .academy-flow__title-row h3{
        font-size:25px;
    }

    .academy-flow__details p,
    .academy-flow__card--three .academy-flow__details p,
    .academy-flow__card--four .academy-flow__details p{
        font-size:12.5px;
    }
}

@media(prefers-reduced-motion:reduce){
    [data-flow-left],
    [data-flow-right],
    [data-flow-card]{
        opacity:1;
        transform:none;
        transition:none;
    }

    .academy-flow__journey-mask-path{
        stroke-dashoffset:0;
    }

    .academy-flow__journey-leaf{
        opacity:1;
        transform:none;
    }

    .academy-flow__journey-leaf path:first-child{
        stroke-dashoffset:0;
        fill:#edb7bd;
    }

    .academy-flow__journey-leaf path:last-child{
        stroke-dashoffset:0;
    }

    .academy-flow__card>img,
    .academy-flow__icon{
        transition:none;
    }
}

@keyframes academyFlowJourneyDraw{
    from{
        stroke-dashoffset:1;
    }

    to{
        stroke-dashoffset:0;
    }
}

@keyframes academyFlowJourneyLeafAppear{
    from{
        opacity:0;
        transform:scale(.9);
    }

    to{
        opacity:1;
        transform:scale(1);
    }
}

@keyframes academyFlowJourneyLeafDraw{
    0%{
        stroke-dashoffset:1;
        fill:transparent;
    }

    72%{
        stroke-dashoffset:0;
        fill:transparent;
    }

    100%{
        stroke-dashoffset:0;
        fill:#edb7bd;
    }
}

@keyframes academyFlowJourneyStemDraw{
    from{
        stroke-dashoffset:1;
    }

    to{
        stroke-dashoffset:0;
    }
}
