body { margin: 0; padding: 0; height: 100vh; background: #000; font-family: "Courier New", Courier, monospace; color: white; display: flex; justify-content: center; align-items: center; overflow: hidden; } .image-container { position: relative; height: 100vh; width: 100vw; display: flex; justify-content: center; align-items: center; } img { max-height: 100vh; max-width: 100vw; width: auto; height: auto; display: block; position: relative; object-fit: contain; } @media (max-aspect-ratio: 1/1) { img { height: auto; width: 100vw; max-height: 100vh; } } .description { position: absolute; bottom: 1em; left: 1em; max-width: 80%; text-align: left; mix-blend-mode: hard-light; color: white; margin: 0; font-size: 16px; letter-spacing: 0.5px; line-height: 1.4; opacity: 0.7; z-index: 2; color: #cccccc; mix-blend-mode: color-dodge; } .navigation { position: fixed; left: 0; right: 0; display: flex; justify-content: space-between; padding: 0 5px; pointer-events: none; } .navigation a { text-decoration: none; color: white; mix-blend-mode: color-dodge; font-size: 24px; pointer-events: auto; opacity: 0.7; transition: opacity 0.3s ease; padding: 20px; } .navigation a:hover { opacity: 1; } .progressive-image-container { width: auto; max-width: 100vw; max-height: 100vh; margin: 0 auto; display: grid; position: relative; } .progressive-image { width: 100%; height: 100%; max-width: 100%; max-height: 100vh; grid-area: 1 / 1; transition: opacity 0.5s ease-in-out; object-fit: contain; } .thumbnail { filter: blur(10px); transform: scale(.95); opacity: 1; } .full-image { opacity: 0; } .full-image.loaded { opacity: 1; }