@keyframes slide-in { from { right: -100vw; } to { right: 0; } } .hamburger { background-color: transparent; border: none; cursor: pointer; justify-self: flex-start; padding: 19px 8px 18px; user-select: none; } .bar, .bar::after, .bar::before { background: var(--Base-Text-High-contrast); border-radius: 2.3px; display: block; height: 3px; position: relative; transition: all 0.3s; width: 32px; } .bar::after, .bar::before { content: ""; left: 0; position: absolute; transform-origin: 2.286px center; } .bar::after { top: -8px; } .bar::before { top: 8px; } .isExpanded .bar { background: transparent; } .isExpanded .bar::after, .isExpanded .bar::before { top: 0; transform-origin: 50% 50%; width: 32px; } .isExpanded .bar::after { transform: rotate(-45deg); } .isExpanded .bar::before { transform: rotate(45deg); } .modal { position: fixed; top: calc(var(--main-menu-mobile-height) + var(--alert-and-banner-height)); right: auto; bottom: 0; width: 100%; background-color: var(--Base-Surface-Primary-light-Normal); transition: right 0.3s; z-index: var(--menu-overlay-z-index); } .modal[data-entering] { animation: slide-in 0.3s; } .modal[data-exiting] { animation: slide-in 0.3s reverse; } .dialog { height: 100%; overflow-y: auto; display: grid; align-content: space-between; } .footer { background-color: var(--Base-Surface-Subtle-Normal); padding: var(--Space-x4) var(--Space-x2); display: grid; gap: var(--Space-x2); } @media screen and (min-width: 768px) { .hamburger, .modal { display: none; } }