/* =========================================
ROOT
========================================= */

:root {

    /* COLORS */

    --cream: #fff8e6;
    --cream-dark: #f4e8cf;
    --cream-deep: #e8d7b9;

    --brown: #8a6245;
    --brown-light: #b38a69;
    --brown-dark: #4d3225;
    --brown-deep: #2f1c15;


    /* FONTS */

    --body-font:
        "Poppins",
        sans-serif;

    --heading-font:
        "Fredoka",
        serif;


    /* SHADOWS */

    --shadow-soft:
        0 10px 30px
        rgba(77, 50, 37, .08);

}


/* =========================================
RESET
========================================= */

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}


html {
    scroll-behavior: smooth;
}


body {
    min-height: 100vh;

    background:
        radial-gradient(
            circle at top left,
            rgba(255, 255, 255, .55),
            transparent 35%
        ),
        radial-gradient(
            circle at bottom right,
            rgba(232, 215, 185, .55),
            transparent 40%
        ),
        var(--cream);

    color: var(--brown-dark);

    font-family: var(--body-font);
    line-height: 1.6;
}


/* =========================================
GLOBAL ELEMENTS
========================================= */

img {
    display: block;
    max-width: 100%;
}


button,
input,
textarea,
select {
    font: inherit;
}


button {
    cursor: pointer;
}


/* =========================================
LAYOUT
========================================= */

#layout {
    display: grid;

    grid-template-columns:
        260px
        minmax(0, 1fr);

    gap: 35px;

    width: 100%;
    max-width: 1500px;

    min-height: 100vh;

    margin: 0 auto;

    padding: 50px;
}



/* =========================================
   SIDEBAR
========================================= */

.sidebar {
    width: 260px;

    display: flex;
    flex-direction: column;
    align-items: center;

    gap: 24px;

    position: sticky;
    top: 20px;

    align-self: flex-start;
}




/* =========================================
PROFILE
========================================= */

.profile {
    width: 100%;

    position: relative;

    text-align: center;
}


.profile img {
    width: 100%;
    max-width: 240px;
    height: 200px;

    margin: 0 auto;

    object-fit: cover;

    border-radius: 10%;

    transition:
        transform .3s ease;
}


.profile:hover img {
    transform: scale(1.04);
}


.profile h2 {
    margin-top: 12px;

    color: var(--brown-dark);

    font-family: var(--heading-font);
    font-size: 1.6rem;
    font-weight: 700;

    line-height: 1.1;
}


.profile p {
    margin-top: 4px;

    color: var(--brown);

    font-size: .95rem;
}


.dot {
    display: inline-block;

    margin: 0 4px;
}


/* =========================================
DIVIDERS
========================================= */

.divider {
    width: 100%;
    max-width: 180px;

    margin: 0 auto;

    filter:
        brightness(.9)
        contrast(1);

    user-select: none;
    pointer-events: none;
}


.divider-nav {
    width: 100%;
    max-width: 200px;

    margin: 10px auto;

    filter:
        brightness(.9)
        contrast(1);

    user-select: none;
    pointer-events: none;
}


/* =========================================
SIDEBAR CONTENT
========================================= */

.sidebar-content {
    width: 100%;

    display: flex;
    flex: 1;
    flex-direction: column;

    min-height: 0;
}


/* =========================================
NAVIGATION
========================================= */

.sidebar nav {
    width: 100%;

    display: flex;
    flex-direction: column;

    gap: 2px;
}


.sidebar nav a {
    display: flex;
    align-items: center;

    gap: 14px;

    padding: 9px 16px;

    color: var(--brown-dark);

    text-decoration: none;

    border-radius: 14px;

    background: transparent;

    transition:
        background-color .25s ease,
        color .25s ease,
        transform .25s ease;
}


.sidebar nav a:hover {
    background:
        rgba(255, 248, 230, .78);

    transform:
        translateX(3px);
}


.sidebar nav a img {
    width: 34px;
    height: 34px;

    object-fit: contain;
}


.sidebar nav a span {
    font-weight: 700;
}


.sidebar nav a.active {
    background:
        rgba(255, 248, 230, .85);

    color: var(--brown-dark);
}


/* =========================================
SIDEBAR FOOTER
========================================= */

.sidebar-footer {
    width: 100%;

    min-height: 130px;

    margin-top: 40px;

    padding: 24px;

    background:
        var(--brown-dark);

    border-radius: 14px;

    box-shadow:
        var(--shadow-soft);
}


/* =========================================
COPYRIGHT
========================================= */

.footer-copyright {
    margin-bottom: 22px;
}


.footer-copyright p {
    color: var(--cream);

    font-size: .82rem;
    font-weight: 600;
}


.footer-copyright span {
    display: block;

    margin-top: 2px;

    color:
        rgba(255, 248, 230, .55);

    font-size: .72rem;
}


/* =========================================
CREDITS
========================================= */

.credits-link {
    display: inline-block;

    color:
        rgba(255, 248, 230, .6);

    font-family: var(--heading-font);

    font-size: .75rem;
    font-weight: 600;

    letter-spacing: .06em;

    text-transform: uppercase;
    text-decoration: none;

    transition:
        color .2s ease,
        transform .2s ease;
}


.credits-link:hover {
    color: var(--cream);

    transform:
        translateX(4px);
}


/* =========================================
MOBILE TOGGLE
========================================= */

.mobile-toggle {
    display: none;
}


/* =========================================
TABLET / MOBILE DRAWER
========================================= */

@media (max-width: 1165px) {

    /* MAIN LAYOUT */

    #layout {
        display: block;

        padding:
            30px 24px;
    }


    /* SIDEBAR */

    .sidebar {
        position: fixed;

        top: 0;
        left: 0;

        width: 300px;
        height: 100vh;

        padding:
            90px 20px 25px;

        background:
            var(--cream);

        overflow-y: auto;

        transform:
            translateX(-110%);

        transition:
            transform .35s ease;

        z-index: 10000;

        box-shadow:
            10px 0 30px
            rgba(77, 50, 37, .12);
    }


    .sidebar.open {
        transform:
            translateX(0);
    }


    /* MOBILE TOGGLE */

    .mobile-toggle {
        display: flex;

        align-items: center;
        justify-content: center;

        position: fixed;

        top: 20px;

        width: 48px;
        height: 48px;

        padding: 8px;

        border:
            2px solid
            var(--brown-dark);

        border-radius: 14px;

        background:
            var(--cream);

        appearance: none;
        -webkit-appearance: none;

        z-index: 10001;
    }


    .mobile-toggle img {
        width: 26px;
        height: 26px;

        object-fit: contain;
    }


    .sidebar-toggle {
        left: 20px;
    }

}


/* =========================================
MOBILE
========================================= */

@media (max-width: 750px) {

    #layout {
        padding:
            24px 18px;
    }

}


@media (max-width: 450px) {

    .sidebar {
        width:
            min(300px, 88vw);
    }


    .mobile-toggle {
        top: 14px;

        width: 44px;
        height: 44px;
    }


    .sidebar-toggle {
        left: 14px;
    }

}

