:root{
    font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    color:#24143D;
    background:#F1EBFF;
    font-synthesis:none;
}

*{
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    margin:0;
}

a{
    color:inherit;
}

a:focus-visible{
    outline:3px solid #6240B8;
    outline-offset:5px;
    border-radius:4px;
}

.wrap{
    max-width:1180px;
    margin:auto;
    padding:0 32px;
}

.top{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
    padding-top:26px;
    padding-bottom:26px;
    border-bottom:1px solid #d9cdf2;
}

.brand{
    font-size:1.06rem;
    font-weight:750;
    letter-spacing:-.035em;
    text-decoration:none
}

.nav{
    display:flex;
    gap:32px;
    align-items:center;
}

.nav a{
    text-decoration:none;
    font-size:.92rem;
    font-weight:600;
}

.nav a:hover,.text-link:hover{
    color:#6240B8;
}

.nav .contact{
    background:#6240B8;
    color:white;
    padding:12px 19px;
    border-radius:100px;
}

.nav .contact:hover{
    background:#4B2E96;
    color:white;
}

main{
    overflow:hidden;
}

.hero{
    display:grid;
    grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);
    align-items:center;
    gap:6vw;padding-top:78px;
    padding-bottom:95px;
    min-height:610px;
}

.eyebrow{
    font-size:.83rem;
    font-weight:750;
    letter-spacing:.16em;
    text-transform:uppercase;
    color:#6240B8;
    margin:0 0 27px;
}

.hero h1{
    font-size:clamp(3.3rem,6vw,6.5rem);
    line-height:1.01;
    letter-spacing:-.075em;
    margin:0 0 30px;
    font-weight:790;
    max-width:900px;
}

.hero h1 em{
    font-style:normal;
    color:#6240B8;
}

.intro{
    font-size:clamp(1.13rem,1.8vw,1.38rem);
    line-height:1.6;
    max-width:650px;
    margin:0;
    color:#453357;
}

.hero-side{
    margin-top:27px;
}

.hero-side p{
    font-size:1rem;
    line-height:1.65;
    color:#665B75;
    margin:0 0 18px;
}

.text-link{
    font-size:.95rem;
    font-weight:750;
    text-decoration:none;
    border-bottom:1px solid currentColor;
    padding-bottom:4px;
}

.arrow{
    margin-left:8px;
}

.portrait{
    margin:0;
    align-self:stretch;
    max-height:560px;
    min-height:430px;
    overflow:hidden;
    border-radius:28px;
    background:#DCCCF9;
    box-shadow:18px 18px 0 #DCCCF9;
}

.portrait img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:50% 42%;
}

.section{
    padding-top:88px;
    padding-bottom:96px;
}

.section-head{
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    gap:20px;
    margin-bottom:38px;
}

.section h2{
    font-size:clamp(2.2rem,4.2vw,4.3rem);
    line-height:1.08;
    letter-spacing:-.06em;
    margin:0;
}

.section-label{
    color:#6240B8;
    font-size:.78rem;
    font-weight:750;
    letter-spacing:.15em;
    text-transform:uppercase;
    white-space:nowrap;
}

.focus{
    background:#FCFAFF;
    border-top:1px solid #e6ddf5;
    border-bottom:1px solid #e6ddf5;
}

.cards{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:16px;
}

.card{
    background:#F1EBFF;
    border:1px solid #e0d3f6;
    border-radius:20px;
    min-height:260px;
    padding:30px;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
}

.number{
    color:#8666C5;
    font-weight:800;
    font-size:.9rem;
}

.card h3{
    font-size:1.5rem;
    letter-spacing:-.04em;
    margin:0 0 11px;
}

.card p{
    margin:0;
    color:#665B75;
    line-height:1.6;
    font-size:1rem;
}

.story{
    display:grid;
    grid-template-columns:.7fr 1.3fr;
    gap:9vw;
}

.story p{
    font-size:1.25rem;
    line-height:1.7;
    margin:0 0 22px;
}

.story .muted{
    color:#665B75;
}

.proof{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:22px;
    border-top:1px solid #DCCCF9;
    margin-top:55px;
    padding-top:30px;
}

.proof h3{
    font-size:1.15rem;
    margin:0 0 8px;
    letter-spacing:-.02em;
}

.proof p{
    font-size:1rem;
    line-height:1.6;
    color:#665B75;
    margin:0;
}

.closing{
    background:#3C206A;
    color:#FCFAFF;
    padding:94px 0;
}

.closing .inner{
    display:flex;
    align-items:end;
    justify-content:space-between;
    gap:40px;
}

.closing h2{
    font-size:clamp(2.6rem,5vw,5.4rem);
    line-height:1.05;
    letter-spacing:-.065em;
    max-width:780px;
    margin:0;
}

.closing p{
    max-width:430px;
    line-height:1.6;
    color:#DED2F3;
    margin:0 0 10px;
}

.closing .eyebrow{
    color:#DCCCF9;
}

.closing-note{
    font-size:.9rem;
    color:#DED2F3;
    max-width:320px;
}

.footer{
    display:flex;
    justify-content:space-between;
    gap:20px;
    padding-top:25px;
    padding-bottom:30px;
    color:#665B75;
    font-size:.88rem;
}

.contact-links{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:12px;
    margin-top:26px;
}

.contact-links a{
    color:#3C206A;
    background:#FCFAFF;
    text-decoration:none;
    font-weight:750;
    padding:13px 20px;
    border-radius:100px;
}

.contact-links a:hover{
    background:#DCCCF9;
}

.contact-links a.secondary{
    background:transparent;
    color:#FCFAFF;
    border:1px solid #A88DCE;
}

.contact-links a.secondary:hover{
    background:#553580;
}

@media(max-width:800px){

    .hero{
        grid-template-columns:1fr;
        min-height:0;
        gap:36px;
        padding-top:76px;
        padding-bottom:80px;
    }

    .hero-side{
        max-width:500px;
    }

    .portrait{
        min-height:0;
        max-height:none;
        height:440px;
        max-width:440px;
        box-shadow:12px 12px 0 #DCCCF9;
    }

    .story{
        grid-template-columns:1fr;
        gap:22px;
    }

    .proof{
        grid-template-columns:1fr;
        gap:25px;
    }

    .closing .inner{
        display:block;
    }

    .closing-note{
        margin-top:32px;
    }

    .section{
        padding-top:70px;
        padding-bottom:75px;
    }

}

@media(max-width:560px){

    .wrap{
        padding-left:22px;
        padding-right:22px;
    }

    .top{
        align-items:flex-start;
    }
    .nav{
        gap:15px;
        flex-wrap:wrap;
        justify-content:flex-end;
    }

    .nav a{
        font-size:.82re;
    }

    .nav .contact{
        padding:8px 12px;
    }

    .nav a:first-child{
        display:none;
    }

    .hero h1{
        font-size:clamp(3.25rem,14vw,5rem);
    }

    .section-head{
        display:block;
    }

    .section-label{
        display:block;
        margin-bottom:14px;
    }

    .closing{
        padding:75px 0;
    }

    .footer{
        display:block;
    }

    .footer span{
        display:block;margin-bottom:8px;
    }

}

@media(prefers-reduced-motion:reduce){

    html{
        scroll-behavior:auto
    }

}
