body {
    margin: 0;
    min-height: 100vh;
    background: #333;
    display: grid;
    place-items: center;
    font-size: 12px;
    --red: #DE3831;
    --green: #007A4D;
    --blue: #002395;
    --gold: #FFB612;
}

.flag {
    position: relative;
    width: 30em;
    height: 20em;
    background: #fff;
}

.top {
    background: var(--red);
    height: calc(100% / 3);
}

.mid {
    border-top: calc(20em / 15) solid #fff;
    border-bottom: calc(20em / 15) solid #fff;
    background: var(--green);
    height: calc(100% / 3);
    box-sizing: border-box;
}

.bottom {
    background: var(--blue);
    height: calc(100% / 3);
}

.left {
    position: absolute;
    width: 50%;
    height: 100%;
    left: 0;
    top: 0;
    overflow: hidden;
}

.leftTop,
.leftBottom {
    position: relative;
    height: 50%;
    display: grid;
    place-items: center;
    overflow: hidden;
}

.leftTop::before,
.leftBottom::before {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #000;
    transform-origin: 0 100%;
}

.leftTop::before {
    transform: skewY(33.7deg);
}

.leftBottom::before {
    transform: skewY(-33.7deg);
}

.diagonal {
    position: absolute;
    width: 60em;
}

.whiteLine {
    height: calc(20em / 18);
    background: #fff;
}

.greenLine {
    height: calc(20em / 6);
    background: var(--green);
}

.goldLine {
    height: calc(20em / 18);
    background: var(--gold);
}

.leftTop .diagonal {
    transform: rotate(33.7deg);
}

.leftBottom .diagonal {
    transform: rotate(-33.7deg);
}