*, *::after, *::before { box-sizing: border-box; } :root { font-size: 16px; } html, body { height: 100vh; width: 100%; overflow: hidden; } body { margin: 0; --color-text: #fff; --color-bg: #000000; --color-link: #eb3b78; --color-link-hover: #fff; --color-heading: #eb3b78; color: var(--color-text); background-color: var(--color-bg); font-family: normalidad-wide, sans-serif; font-weight: 300; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; --font-size-typo: 1.777rem; --margin-strip: 2vh; --color-bg-frame: #000; } /* Page Loader */ .js .loading::before, .js .loading::after { content: ''; position: fixed; z-index: 1000; } .js .loading::before { top: 0; left: 0; width: 100%; height: 100%; background: var(--color-bg); } .js .loading::after { top: 50%; left: 50%; width: 60px; height: 60px; margin: -30px 0 0 -30px; border-radius: 50%; opacity: 0.4; background: var(--color-link); animation: loaderAnim 0.7s linear infinite alternate forwards; } @keyframes loaderAnim { to { opacity: 1; transform: scale3d(0.5,0.5,1); } } a { text-decoration: none; color: var(--color-link); outline: none; } a:hover { color: var(--color-link-hover); outline: none; } /* Better focus styles from https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible */ a:focus { /* Provide a fallback style for browsers that don't support :focus-visible */ outline: none; background: lightgrey; } a:focus:not(:focus-visible) { /* Remove the focus indicator on mouse-focus for browsers that do support :focus-visible */ background: transparent; } a:focus-visible { /* Draw a very noticeable focus style for keyboard-focus on browsers that do support :focus-visible */ outline: 2px solid red; background: transparent; } .unbutton { background: none; border: 0; padding: 0; margin: 0; font: inherit; } .unbutton:focus { outline: none; } .frame { width: 100%; text-transform: uppercase; } .frame__title { font-size: inherit; margin: 0 0 0.5rem; font-weight: 500; } .frame__links { display: inline; } .frame__links a:not(:last-child) { margin-right: 0.5rem; } .intro { display: grid; width: 100%; height: 100%; position: fixed; top: 0; left: 0; align-content: space-between; justify-items: center; overflow: hidden; pointer-events: none; grid-template-rows: repeat(5, min-content); grid-template-areas: 'top' 'mid-top' 'center' 'mid-bottom' 'bottom'; } .intro__title-row { display: grid; width: 100vw; overflow: hidden; grid-auto-flow: column; grid-auto-columns: min-content; } .intro__title-row .intro__title { opacity: 0; } .intro__title { text-transform: uppercase; font-weight: 400; margin: 0 0.5rem; overflow: hidden; position: relative; font-size: var(--font-size-typo); white-space: nowrap; will-change: transform; } .intro__title--large { transform: scale(2.3685); } .intro__top { grid-area: top; align-self: start; } .intro__mid-top { grid-area: mid-top; } .intro__center { grid-area: center; } .intro__mid-bottom { grid-area: mid-bottom; } .intro__mid-top, .intro__mid-bottom { overflow: visible; } .intro__bottom { grid-area: bottom; align-self: end; } .char { will-change: transform; } .duplicator { display: grid; } .duplicator__inner { grid-area: 1 / 1 / 2 / 2; } .content { display: grid; grid-template-rows: repeat(5, calc(25vh - 0.635rem)); } .content__section { overflow: hidden; height: 100%; } .content__heading-wrap { display: flex; flex-direction: row-reverse; padding: 0.45rem 0.5rem; align-items: center; opacity: 0; pointer-events: none; } .content__heading { margin: 0; font-weight: 400; text-transform: uppercase; font-size: var(--font-size-typo); color: var(--color-heading); position: relative; line-height: 1; will-change: transform, opacity; } .content__heading::before { content: ''; display: inline-block; width: 10vw; height: 0.65rem; margin: 0 1.777rem; box-shadow: 0 -1px 0 0 currentColor; } .content__heading-link { color: var(--color-heading); will-change: transform, opacity; } .strip { display: flex; align-items: flex-start; padding-left: 4rem; margin: var(--margin-strip) 0; } .strip__img { flex: none; width: calc(18vh - 2.5rem); height: calc(18vh - 2.5rem); border-radius: 8px; background-size: cover; background-position: 50% 15%; margin-right: 2rem; will-change: transform, opacity; } .strip__img--style-1 { border-radius: 50%; } .strip__img--style-2 { border-radius: 8px; width: 20vh; } .strip__img--style-3 { border-radius: 20vh; width: 20vh; background-position: 50% 20%; } .strip__img--info { width: 300px; background: var(--color-bg-frame); color: #fff; padding: 1rem; font-size: 0.7rem; line-height: 1; border: 1px solid #888; }