.layout__header { --item-size: 2.75rem; position: relative; z-index: 501; display: grid; align-items: center; padding: var(--s-4); background-color: var(--bg); grid-template-columns: 1fr 2fr; } .layout__header__search-container { display: none; } .layout__header__title-container { color: var(--text-lighter); font-size: var(--fonts-sm); font-weight: var(--bold); text-align: center; } .layout__header__right-container { display: flex; gap: var(--s-4); justify-self: flex-end; } .layout__main { max-width: 48rem; margin: 0 auto; padding-block-end: var(--s-32); padding-inline: var(--s-3); } .layout__burger { display: flex; width: var(--item-size); height: var(--item-size); flex-direction: column; align-items: center; justify-content: center; padding: 0.25rem; border: 2px solid; border-color: var(--theme-transparent-vibrant); background-color: transparent; border-radius: 50%; color: inherit; cursor: pointer; gap: 2px; } .layout__burger__top-line { transform: none; transform-origin: 16px 10px; transition-duration: 150ms; transition-property: transform; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); } .layout__burger__top-line.expanded { transform: translateY(7px) rotate(45deg); } .layout__burger__middle-line { opacity: 1; transition-duration: 150ms; transition-property: opacity; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); } .layout__burger__middle-line.expanded { opacity: 0; } .layout__burger__bottom-line { transform: none; transform-origin: 16px 22px; transition-duration: 150ms; transition-property: transform; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); } .layout__burger__bottom-line.expanded { transform: translateY(-5px) rotate(-45deg); } .layout__mobile-nav { position: absolute; z-index: 500; bottom: 100vh; width: 100%; height: 100%; padding-bottom: var(--s-6); background-color: var(--bg-lighter); background-image: url("/svg/background-pattern.svg"); overflow-y: auto; /* TODO: same for Safari */ overscroll-behavior: contain; transition: bottom 0.5s; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); } .layout__mobile-nav.expanded { bottom: 0; } .layout__mobile-nav__top-action { display: grid; padding-top: var(--s-12); padding-bottom: var(--s-8); background-color: var(--bg); gap: var(--s-4); place-items: center; } .layout__mobile-nav__link__icon { width: 2rem; height: 2rem; } .layout__mobile-nav__link__icon.disabled { filter: grayscale(100%); } .layout__mobile-nav__links { display: grid; justify-content: center; grid-auto-columns: 1fr; grid-auto-rows: 4rem; } .layout__mobile-nav__group-title { align-self: flex-end; padding: var(--s-2) var(--s-3); margin-bottom: var(--s-1); background-color: var(--bg); border-radius: var(--rounded); font-weight: var(--bold); justify-self: center; text-transform: uppercase; } .layout__mobile-nav__link { display: flex; align-items: center; padding: 0 var(--s-2); border-top: 3px solid var(--bg-lighter); margin: 0 var(--s-12); background-color: var(--bg); color: var(--text); font-size: var(--fonts-sm); font-weight: var(--bold); gap: var(--s-2); text-decoration: none; text-transform: capitalize; } .layout__mobile-nav__link.first { border-radius: var(--rounded) var(--rounded) 0 0; } .layout__mobile-nav__link.last { border-radius: 0 0 var(--rounded) var(--rounded); } .layout__search-input__container { display: flex; height: 1rem; align-items: center; justify-content: center; padding: var(--s-5) var(--s-4); background-color: var(--bg-lighter); border-radius: var(--rounded); } .layout__search-input__container:focus-within { outline: 2px solid var(--theme); } .layout__search-input { width: 12rem; height: 2rem; flex-grow: 1; border: none; background-color: var(--bg-lighter); color: var(---text); font-size: var(--fonts-sm); outline: none; } .layout__search-input::placeholder { color: var(--text-lighter); font-weight: var(--semi-bold); letter-spacing: 0.5px; } .layout__log-in-button { display: flex; height: var(--item-size); align-items: center; justify-content: center; padding: 0.5rem; border: 2px solid; border-color: var(--bg-lighter); background-color: transparent; border-radius: var(--rounded); color: inherit; cursor: pointer; font-size: var(--fonts-xs); font-weight: var(--bold); gap: var(--s-2); text-decoration: none; } .layout__log-in-button > svg { width: 1rem; } .layout__log-in-button:active { transform: translateY(1px); } .layout__user-popover { display: flex; flex-direction: column; gap: var(--s-2); } @media screen and (min-width: 640px) { .layout__header { grid-template-columns: 1fr 1fr 1fr; } .layout__header__search-container { display: block; max-width: 12rem; } } .menu { --small-icons-height: 1.25rem; position: fixed; z-index: 999; top: 0; right: 0; bottom: 0; left: 0; display: grid; background: radial-gradient( circle, rgb(14 3 40 / 100%) 0%, rgb(28 4 82) 100% ); place-items: center; } @supports ((-webkit-backdrop-filter: none) or (backdrop-filter: none)) { .menu { -webkit-backdrop-filter: blur(15px); backdrop-filter: blur(15px); background: transparent; } } .menu__inner { display: grid; grid-template: ". top-icons ." 1.25rem "img-boy nav-items img-girl" 14rem ". bottom-icons ." 1.25rem / 1.15fr 2fr 1.15fr; place-items: center; } @media screen and (min-width: 1024px) { .menu__inner { grid-template-rows: 1.25rem 18rem 1.25rem; } } .menu__top-extras { display: flex; width: 100%; justify-content: space-between; grid-area: top-icons; } .menu__logo-container { display: flex; height: var(--small-icons-height); align-items: center; color: var(--text); font-size: var(--fonts-xs); font-weight: var(--bold); gap: var(--s-1); } .menu__cross-icon { width: 1.25rem; height: 100%; fill: var(--text); } .menu__nav { display: grid; width: 100%; height: 100%; align-items: center; justify-content: center; padding: var(--s-12); background-color: var(--bg-darker-very-transparent); grid-area: nav-items; grid-template-columns: repeat(3, 8rem); row-gap: var(--s-2); } .menu__nav__link { display: flex; align-items: center; color: var(--text); font-size: var(--fonts-xs); font-weight: var(--bold); gap: var(--s-1); text-decoration: none; text-transform: capitalize; transition: 0.2s transform; } .menu__icons-container { display: flex; width: 100%; height: var(--small-icons-height); justify-content: flex-end; gap: var(--s-1); grid-area: bottom-icons; margin-block-start: 1px; } .menu__icons-container > a { display: flex; height: 100%; justify-content: flex-end; } .menu__icon { width: 1.25rem; padding: 0.1rem; fill: var(--text); } .menu__img-container { position: relative; display: flex; overflow: hidden; width: 100%; height: 100%; justify-content: center; background-color: hsla(237deg 98% 1% / 25%); border-radius: 0 var(--rounded) var(--rounded) 0; grid-area: img-girl; justify-self: flex-start; } .menu__img-container.boy { border-radius: var(--rounded) 0 0 var(--rounded); grid-area: img-boy; justify-self: flex-end; } @keyframes slide-in-from-top { 0% { transform: translateY(-50%); } 100% { transform: translateY(0); } } @keyframes slide-in-from-bottom { 0% { transform: translateY(50%); } 100% { transform: translateY(0); } } .menu__img { overflow: hidden; height: 100%; animation: 0.75s ease-out 0s 1 slide-in-from-bottom; object-fit: cover; } .menu__img-bg { position: absolute; z-index: -1; top: 0; height: 100%; animation: 0.75s ease-out 0s 1 slide-in-from-bottom; object-fit: cover; } .menu__img.boy { animation: 0.75s ease-out 0s 1 slide-in-from-top; } .menu__img-bg.boy { animation: 0.75s ease-out 0s 1 slide-in-from-top; }