#primary article.case-study {
    --case-shape-start: #ffffff;
    --case-shape-stop: transparent;
    --case-zone-shape-design-width: 1440;
    --case-zone-shape-min: 0.35;
    --case-zone-shape-scale: clamp(
        var(--case-zone-shape-min),
        calc(100vw / (var(--case-zone-shape-design-width) * 1px)),
        1
    );
}

.case-study__zone--showcase,
.case-study__zone--key-features {
    position: relative;
    overflow: hidden;
}

.case-study__zone-shapes {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
}

.case-study__zone-shapes__container {
    position: relative;
    height: 100%;
    pointer-events: none;
}

.case-study__zone > section {
    position: relative;
    z-index: 1;
}

.case-study__zone-shape {
    position: absolute;
    pointer-events: none;
}

.case-study__zone-shape svg {
    display: block;
    width: 100%;
    height: 100%;
}

/*
 * Full · showcase
 * Base values = Figma at 1440px container width.
 */

.case-study--full .case-study__zone--showcase .case-study__zone-shape--1 {
    top: calc(-280px * var(--case-zone-shape-scale));
    left: 50%;
    transform: translateX(-50%);
    width: calc(2056px * var(--case-zone-shape-scale));
    height: calc(2056px * var(--case-zone-shape-scale));
}

.case-study--full .case-study__zone--showcase .case-study__zone-shape--2 {
    bottom: 10%;
    left: calc(-1456px * var(--case-zone-shape-scale));
    width: calc(2056px * var(--case-zone-shape-scale));
    height: calc(2056px * var(--case-zone-shape-scale));
}

.case-study--full .case-study__zone--showcase .case-study__zone-shape--3 {
    right: calc(-1040px * var(--case-zone-shape-scale));
    bottom: calc(-1040px * var(--case-zone-shape-scale));
    width: calc(2056px * var(--case-zone-shape-scale));
    height: calc(2056px * var(--case-zone-shape-scale));
}

/*
 * Full · key-features
 */

.case-study--full .case-study__zone--key-features .case-study__zone-shape--1 {
    top: calc(-370px * var(--case-zone-shape-scale));
    right: calc(-500px * var(--case-zone-shape-scale));
    width: calc(2059px * var(--case-zone-shape-scale));
    height: calc(2059px * var(--case-zone-shape-scale));
}

.case-study--full .case-study__zone--key-features .case-study__zone-shape--2 {
    top: calc(1512px * var(--case-zone-shape-scale));
    left: calc(-555px * var(--case-zone-shape-scale));
    width: calc(2218px * var(--case-zone-shape-scale));
    height: calc(2218px * var(--case-zone-shape-scale));
}

.case-study--full .case-study__zone--key-features .case-study__zone-shape--3 {
    left: calc(-500px * var(--case-zone-shape-scale));
    bottom: calc(562px * var(--case-zone-shape-scale));
    width: calc(2470px * var(--case-zone-shape-scale));
    height: calc(2470px * var(--case-zone-shape-scale));
}

.case-study--full .case-study__zone--key-features .case-study__zone-shape--4 {
    left: calc(-400px * var(--case-zone-shape-scale));
    bottom: calc(-280px * var(--case-zone-shape-scale));
    width: calc(1520px * var(--case-zone-shape-scale));
    height: calc(1520px * var(--case-zone-shape-scale));
}

/*
 * NDA · showcase — tune from Figma @ 1440px.
 */

.case-study--nda .case-study__zone--showcase .case-study__zone-shape--1 {
    top: calc(-280px * var(--case-zone-shape-scale));
    left: 50%;
    transform: translateX(-50%);
    width: calc(1866px * var(--case-zone-shape-scale));
    height: calc(1866px * var(--case-zone-shape-scale));
}

.case-study--nda .case-study__zone--showcase .case-study__zone-shape--2 {
    bottom: 27%;
    left: calc(-935px * var(--case-zone-shape-scale));
    width: calc(1498px * var(--case-zone-shape-scale));
    height: calc(1498px * var(--case-zone-shape-scale));
}

.case-study--nda .case-study__zone--showcase .case-study__zone-shape--3 {
    right: calc(-550px * var(--case-zone-shape-scale));
    bottom: calc(-500px * var(--case-zone-shape-scale));
    width: calc(1602px * var(--case-zone-shape-scale));
    height: calc(1602px * var(--case-zone-shape-scale));
}

/*
 * NDA · key-features — 2 shapes: --1 cards, --2 results.
 */

.case-study--nda .case-study__zone--key-features .case-study__zone-shape--1 {
    top: calc(-1000px * var(--case-zone-shape-scale));
    right: calc(-720px * var(--case-zone-shape-scale));
    width: calc(1602px * var(--case-zone-shape-scale));
    height: calc(1602px * var(--case-zone-shape-scale));
}

.case-study--nda .case-study__zone--key-features .case-study__zone-shape--2 {
    top: calc(-550px * var(--case-zone-shape-scale));
    left: calc(-920px * var(--case-zone-shape-scale));
    width: calc(1602px * var(--case-zone-shape-scale));
    height: calc(1602px * var(--case-zone-shape-scale));
}

/*
 * Mobile — fixed px only (no --case-zone-shape-scale).
 */

@media screen and (max-width: 768px) {
    .case-study--full .case-study__zone--showcase .case-study__zone-shape--1 {
        top: -120px;
        left: 50%;
        transform: translateX(-50%);
        width: 720px;
        height: 720px;
    }

    .case-study--full .case-study__zone--showcase .case-study__zone-shape--2 {
        bottom: 50%;
        left: -420px;
        width: 720px;
        height: 720px;
    }

    .case-study--full .case-study__zone--showcase .case-study__zone-shape--3 {
        right: -360px;
        bottom: -360px;
        width: 720px;
        height: 720px;
    }

    .case-study--full .case-study__zone--key-features .case-study__zone-shape--1 {
        top: -480px;
        right: -280px;
        width: 720px;
        height: 720px;
    }

    .case-study--full .case-study__zone--key-features .case-study__zone-shape--2 {
        top: 520px;
        left: -220px;
        width: 780px;
        height: 780px;
    }

    .case-study--full .case-study__zone--key-features .case-study__zone-shape--3 {
        left: -220px;
        bottom: 240px;
        width: 820px;
        height: 820px;
    }

    .case-study--full .case-study__zone--key-features .case-study__zone-shape--4 {
        left: -180px;
        bottom: 80px;
        width: 700px;
        height: 700px;
    }

    .case-study--nda .case-study__zone--showcase .case-study__zone-shape--1 {
        top: -100px;
        left: 50%;
        transform: translateX(-50%);
        width: 680px;
        height: 680px;
    }

    .case-study--nda .case-study__zone--showcase .case-study__zone-shape--2 {
        bottom: 56%;
        left: -380px;
        width: 680px;
        height: 680px;
    }

    .case-study--nda .case-study__zone--showcase .case-study__zone-shape--3 {
        right: -320px;
        bottom: -280px;
        width: 680px;
        height: 680px;
    }

    .case-study--nda .case-study__zone--key-features .case-study__zone-shape--1 {
        top: -420px;
        right: -240px;
        width: 680px;
        height: 680px;
    }

    .case-study--nda .case-study__zone--key-features .case-study__zone-shape--2 {
        top: auto;
        left: -360px;
        bottom: -60px;
        width: 660px;
        height: 660px;
    }
}
