:root {
    --drawer-width: 385px
}

.drawer {
    position: absolute;
    z-index: 2;
    height: 100%;
    width: 100%;
    max-width: var(--drawer-width);
    top: 0;
    right: 0;
    visibility: hidden;
    transition: visibility 0s .3s
}

.drawer:focus {
    outline: none
}

.drawer--is-visible {
    visibility: visible;
    transition: none
}

.drawer--open-left {
    right: auto;
    left: 0
}

.drawer__content {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    right: 0;
    transform: translateX(100%);
    transition: transform .3s;
    transition-timing-function: var(--ease-in-out)
}

.drawer--open-left .drawer__content {
    transform: translateX(-100%)
}

.drawer--is-visible .drawer__content {
    transform: translateX(0)
}

.drawer__body {
    height: 100%;
    overflow: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch
}

.drawer__close-btn {
    --size: 32px;
    width: var(--size);
    height: var(--size);
    flex-shrink: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 50%;
    background-color: hsla(var(--color-bg-light-h), var(--color-bg-light-s), var(--color-bg-light-l), 0.95);
    box-shadow: var(--inner-glow), var(--shadow-sm);
    transition: .2s
}

.drawer__close-btn:hover {
    background-color: var(--color-bg-lighter);
    box-shadow: var(--inner-glow), var(--shadow-md)
}

.drawer__close-btn .icon {
    display: block;
    color: var(--color-contrast-high)
}

.drawer--modal {
    max-width: none;
    background-color: hsla(var(--color-black-h), var(--color-black-s), var(--color-black-l), 0);
    /*transition: background-color .3s, visibility 0s .3s*/
}

.drawer--modal.drawer--is-visible {
    background-color: hsla(var(--color-black-h), var(--color-black-s), var(--color-black-l), 0.75);
    transition: background-color .3s
}

.drawer--modal.drawer--open-left .drawer__content {
    right: auto;
    left: 0
}

.drawer--modal .drawer__content {
    max-width: var(--drawer-width)
}