.scroll-expand { position: relative; width: 100%; height: 100%; } .scroll-expand--scroller { overflow-y: auto; overflow-x: hidden; scrollbar-width: none; -ms-overflow-style: none; overscroll-behavior: contain; } .scroll-expand--scroller::-webkit-scrollbar { display: none; } .scroll-expand__track { position: relative; width: 100%; } .scroll-expand__stage { position: sticky; top: 0; width: 100%; overflow: hidden; --se-title-size: 4rem; } .scroll-expand__frame { position: absolute; inset: 0; clip-path: inset(21% 29% 21% 29% round 24px); will-change: clip-path; } .scroll-expand__media { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; will-change: transform; transform-origin: center; user-select: none; -webkit-user-drag: none; } .scroll-expand__scrim { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(to top, rgba(0, 0, 0, 0.75), rgba(0, 0, 0, 0.1) 45%, rgba(0, 0, 0, 0.35)); opacity: 0; } .scroll-expand__overlay { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 6%; opacity: 0; will-change: opacity, transform; } .scroll-expand__title { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; margin: 0; padding: 0 6%; text-align: center; font-size: var(--se-title-size); font-weight: 700; letter-spacing: -0.03em; line-height: 1; color: #fff; text-shadow: 0 2px 24px rgba(0, 0, 0, 0.45); pointer-events: none; will-change: opacity, transform; } .scroll-expand__hint { position: absolute; left: 0; right: 0; bottom: 1.25rem; text-align: center; font-size: 0.8125rem; letter-spacing: 0.02em; color: rgba(255, 255, 255, 0.55); pointer-events: none; will-change: opacity, transform; }