body, html { margin: 0; padding: 0; } body { background: #000; } /* ------------------------------------------- */ header { z-index: 100; position: fixed; right: 0; top: 20px; left: 0; text-align: center; padding: 15px; } header a { color: blue; } header a:not(:last-child) { margin-right: 15px; } header a.active { color: #000; text-decoration: none; } /* ------------------------------------------- */ @keyframes animateIn { from { transform: translate3d(100vw, 0, 0);; } to { transform: translate3d(0, 0, 0); } } @keyframes animateOut { to { transform: translate3d(-100vw, 0, 0); } } @keyframes fadeIn { to { opacity: 1; } } /* ------------------------------------------- */ #container { display: flex; align-items: center; justify-content: center; width: 100%; height: 100vh; box-shadow: inset 0 0 0 20px; background: #FFF; } #container.page-about { background: tan; } #container.page-contact { background: violet; } #container h1 { font-size: 10vw; text-transform: uppercase; letter-spacing: -1px; } #container[class*="animate-"] { position: fixed; animation: animateIn .75s ease-in-out forwards; transform-origin: center; will-change: transform; } #container.animate-out { animation-name: animateOut; } .loading #container:not(.clone) h1 { opacity: 0; animation: fadeIn 1s .15s ease-in-out forwards; }