:root {
    --body-bg: #123;
    --nav-bg: rgb(69, 92, 115);
}

*{
    box-sizing: border-box;
}

html{
    font-family: system-ui;
}

body{
    min-height: 100vh;  /* can be change for pages | here is 1 page demo*/
    margin: 0;
    font-size: 1.25rem;
    background: var(--body-bg);
    color: white;
    display: grid;
    grid-template-columns: 15rem 1fr;
    gap: 4rem;
}

nav{
    position: sticky;
    top: 0;
    max-height: 100svh;  /* for mobile */
    background-color: var(--nav-bg);
}

.nav-list{
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 2rem;
    padding-block: 2rem;

    font-size: 1rem;
}

.nav-list li{
    padding: 1rem 2rem;
    margin-left: 2rem;
    border-radius: 100vw 0 0 100vw;
}

.nav-list li.active{
    background: var(--body-bg);
    position: relative;
}

.nav-list li.active::before,
.nav-list li.active::after{
    --border-radius: 2rem;

    content: '';
    position: absolute;
    width: var(--border-radius);
    height: var(--border-radius);
    right: 0;
    background: var(--nav-bg);
}

.nav-list li.active::before{
    top: calc(var(--border-radius) * -1);
    border-radius: 0 0 100vw 0;
    box-shadow: 6px 6px 0 6px var(--body-bg);
}

.nav-list li.active::after{
    bottom: calc(var(--border-radius) * -1);
    border-radius: 0 100vw 0 0;
    box-shadow: 6px -6px 0 6px var(--body-bg);
}

.nav-list a{
    color: white;
    text-decoration: none;
}