.marquee-buttons { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--xl); font-size: var(--lg); font-weight: 600; margin-inline: var(--sm); } .marquee-button { all: unset; position: relative; color: hsl(var(--accent-400)); &::before { content: ""; position: absolute; bottom: 3px; left: 2px; right: 2px; height: 3px; background-color: hsla(var(--accent-400) / 0.3); z-index: -1; } } .marquee { position: relative; display: flex; width: 100%; margin-block: var(--xl); justify-content: flex-start; align-items: flex-start; overflow: hidden; opacity: 0; transition: opacity 0.6s ease; min-height: 200px; /* placeholder height */ &.initialized { opacity: 1; } } .marquee-content { height: 100%; display: flex; flex-direction: row; flex-wrap: nowrap; margin: 0; padding: 0; will-change: transform; transform: translateX(0); visibility: hidden; .initialized & { visibility: visible; } } .marquee-item { position: relative; display: flex; flex-direction: column; align-items: center; gap: var(--md); padding-inline: 0.5rem; box-sizing: border-box; will-change: opacity; & > * { z-index: 11; } & video { position: relative; max-width: 75rem; box-shadow: var(--shadow-md); } } .marquee-item-spacing { width: 100%; } .marquee-item-content { border-radius: var(--radius-sm); will-change: transform; } .marquee-scroll { position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 100%; max-width: 85rem; height: 100%; display: flex; justify-content: space-between; align-items: stretch; transition: background-color var(--theme-transition), opacity var(--theme-transition); z-index: 20; user-select: none; pointer-events: none; } .marquee-scroll-arrow { width: 8rem; font-size: 2rem; pointer-events: all; display: flex; flex-direction: column; justify-content: center; align-items: center; height: 100%; & > div { width: 2.5rem; aspect-ratio: 1 / 1; display: flex; align-items: center; justify-content: center; opacity: 0.5; transition: opacity 0.3s ease; backdrop-filter: blur(var(--2xs)); } &:hover { cursor: pointer; & > div { opacity: 0.9; } } } .marquee-arrow-spacing { justify-content: space-between; align-items: center; height: 100%; } @media not (min-width: 40rem) { .marquee-item-spacing { width: 100%; align-items: center; } .marquee-scroll-arrow { height: unset; } } /* nasty mismatch w/ not but matches main-page.css */ @media (min-width: 63rem) { .marquee-item { padding-inline: 1.5rem; } } @media not (min-width: 83rem) { .marquee-scroll-arrow { height: unset; & > div { background-color: #55555580; border-radius: var(--radius-xs); } } }