*, *::after, *::before { box-sizing: border-box; } :root { font-size: 12px; --color-text: #000; --color-bg: #fff; --color-link: #000; --color-gray: #959595; --color-accent: #000000; --color-link-hover: var(--color-accent); --page-padding: 3vw; --page-padding-vertical: 5vh; } html, body { overflow-x: hidden; overflow-y: auto; } body { margin: 0; color: var(--color-text); background-color: var(--color-bg); font-family: 'Inter', sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } @media (scripting: enabled) { .loading { &::before, &::after { content: ''; position: fixed; z-index: 10000; } &::before { top: 0; left: 0; width: 100%; height: 100%; background: var(--color-bg); } &::after { top: 50%; left: 50%; width: 100px; height: 1px; margin: 0 0 0 -50px; background: var(--color-link); animation: loaderAnim 1.5s ease-in-out infinite alternate forwards; } } } @keyframes loaderAnim { 0% { transform: scaleX(0); transform-origin: 0% 50%; } 50% { transform: scaleX(1); transform-origin: 0% 50%; } 50.1% { transform: scaleX(1); transform-origin: 100% 50%; } 100% { transform: scaleX(0); transform-origin: 100% 50%; } } main { overflow: hidden; } a { text-decoration: none; color: var(--color-link); outline: none; cursor: pointer; &:hover { /* text-decoration: underline; */ color: var(--color-link-hover); } &:focus { outline: none; background: lightgrey; &:not(:focus-visible) { background: transparent; } &:focus-visible { outline: 2px solid red; background: transparent; } } } .frame { position: fixed; top: 0; left: 0; width: 100vw; display: grid; grid-template-columns: 200px 1fr 200px; justify-content: space-between; padding: var(--page-padding-vertical) var(--page-padding); z-index: 10; @media (max-width: 767px) { display: flex; flex-direction: column; position: relative; align-items: center; justify-content: center; gap: 2rem; } .frame__title { font-size: clamp(1.5rem, 2.5vw, 2.5rem); font-weight: 600; text-transform: uppercase; letter-spacing: -0.1rem; margin-bottom: 0.75rem; @media (max-width: 767px) { line-height: 1.15; } } .frame__center { text-align: center; nav { font-size: clamp(1.25rem, 1.75vw, 2rem); color: var(--color-gray); a { color: var(--color-gray); } .active { color: var(--color-accent); } } } .frame__description { color: var(--color-text); font-size: 1rem; margin-top: 1rem; @media (max-width: 767px) { font-size: 12px; margin-top: 20px; } } .frame__sponsors { justify-self: end; } .frame__tags, .frame__sponsors { display: flex; flex-wrap: wrap; gap: 1rem; font-size: 1rem; font-weight: 600; padding-top: 1.2rem; @media (max-width: 767px) { padding-top: 0; } } } body #cdawrap { grid-area: unset; text-align: right; @media (max-width: 767px) { text-align: center; } } .content { width: 100vw; height: 100svh; position: relative; display: flex; align-items: center; overflow: hidden; .content__carousel { position: absolute; bottom: 8rem; width: 100vw; .content__carousel-inner { width: fit-content; display: flex; align-items: flex-end; justify-content: space-between; gap: 3rem; padding-left: 45vw; padding-right: 40vw; img { width: 30rem; @media (max-width: 767px) { width: 28rem; } } } .content__carousel-inner-static { width: 100%; display: grid; grid-template-columns: repeat(4, 1fr); gap: 3rem; padding-left: 3vw; padding-right: 3vw; @media (max-width: 767px) { grid-template-rows: repeat(2, 1fr); grid-template-columns: repeat(2, 1fr); } img { width: 100%; } } img { opacity: 0; margin-bottom: 1rem; cursor: pointer; } span { display: block; } } .content__canvas { position: absolute; top: 0; left: 0; width: 100vw; height: 100svh; z-index: 2; pointer-events: none; } } .floating-bar { position: fixed; bottom: 2rem; left: 50%; transform: translateX(-50%); display: grid; grid-template-columns: repeat(3, 1fr); align-items: center; gap: 5px; background-color: #d9d9d9; border-radius: 8px; padding: 4px; z-index: 10; .floating-bar__link { padding: 7px 14px; border-radius: 8px; text-align: center; font-size: 16px; white-space: nowrap; } .floating-bar__link-back { background-color: #000000; color: #ffffff; } }