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; margin: 0; font-size: 16px; letter-spacing: 0.5px; line-height: 1.4; z-index: 2; color: #fd5f00; text-shadow: -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000, 0 0 8px rgba(0,0,0,0.5); mix-blend-mode: screen; opacity: 1; } .description-outline { display: none; } .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: #cccccc; mix-blend-mode: color-dodge; font-size: 28px; pointer-events: auto; opacity: 0.7; transition: opacity 0.3s ease; padding: 5px; } .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; }