html, body { margin: 0; height: 100%; } /* ............................................................... */ /* ............................................................... */ /* ............................................................... */ #retrobg { position: relative; overflow: hidden; height: 100%; color: #a3c; background-color: #000; } /* ............................................................... */ #retrobg-sky { position: absolute; display: flex; align-items: flex-end; justify-content: center; top: 0; width: 100%; height: 55%; background: linear-gradient( #214 75%, #249 ); } /* ............................................................... */ #retrobg-sunWrap { position: relative; width: 40%; margin-bottom: -15%; } #retrobg-sun { --glow-color: #d44; padding-top: 100%; border-radius: 50%; background-image: linear-gradient( #fcdf11, #ff623f, #fe2085 50% ); box-shadow: 0 0 160px 80px var( --glow-color ); animation: 2s ease infinite alternate retrobg-sun-glow-anim; } .retrobg-shutdown #retrobg-sun { background-image: linear-gradient( #000, #000 40% ); --glow-color: #000; } @keyframes retrobg-sun-glow-anim { from { box-shadow: 0 0 160px 80px var( --glow-color ); } to { box-shadow: 0 0 200px 95px var( --glow-color ); } } /* ............................................................... */ #retrobg-stars { position: absolute; width: 100%; height: 100%; } .retrobg-star { position: absolute; border-radius: 50%; width: 2px; height: 2px; background-color: #fff; } /* ............................................................... */ #retrobg-mountains { position: absolute; width: 100%; height: 30%; } .retrobg-mountain { position: absolute; width: 30%; height: 100%; background-image: linear-gradient( #000 70%, #111 85%, #fff1 ); } #retrobg-mountains-left { left: 0; clip-path: polygon( 0% 100%,0% 55%,5% 60%,10% 55%,20% 50%,25% 42%,30% 38%,33% 35%,40% 45%,50% 50%,60% 70%,70% 85%,75% 82%,80% 91%,85% 90%,90% 95%,95% 98%,100% 100% ); } #retrobg-mountains-right { right: 0; clip-path: polygon( 0% 100%,5% 95%,10% 85%,15% 87%,20% 80%,25% 78%,30% 65%,40% 70%,50% 57%,60% 53%,67% 68%,70% 70%,75% 66%,80% 55%,90% 50%,95% 60%,100% 57%,100% 100% ); } /* ............................................................... */ #retrobg-cityWrap { position: absolute; width: 50%; margin-left: -1%; } #retrobg-city { padding-top: 20%; } .retrobg-building { position: absolute; width: 5%; height: 100%; bottom: 0; border-radius: 4px 4px 0 0; background-image: linear-gradient( 0deg, rgba( 17, 17, 34, 0 ), #112 30px, #000 ); } .retrobg-building:nth-child( odd ) { background-image: linear-gradient( 0deg, rgba( 24, 24, 42, 0 ), #223 30px, #000 ); } .retrobg-antenna::after { content: ""; position: absolute; left: 50%; margin-left: calc( -1px - 5% ); bottom: 100%; width: 10%; min-width: 2px; height: 33%; background-color: #000; } /* ............................................................... */ #retrobg-ground { position: absolute; overflow: hidden; width: 100%; height: 45%; bottom: 0; border-top: 2px solid #bf578c; background-color: #000; } .retrobg-shutdown #retrobg-ground { border-color: #000; } #retrobg-groundShadow { position: absolute; top: 0; width: 100%; height: 100%; background-image: linear-gradient( #000 0%, transparent ); } /* ............................................................... */ #retrobg-linesWrap { height: 100%; perspective: 1000px; perspective-origin: center top; } #retrobg-lines { position: absolute; width: 100%; height: 100%; transform-origin: top center; animation: .35s linear infinite retrobg-lines-anim; } .retrobg-shutdown #retrobg-lines { animation-duration: 5s; } @keyframes retrobg-lines-anim { from { transform: rotateX( 84deg ) translateY( 0 ); } to { transform: rotateX( 84deg ) translateY( 100px ); } } #retrobg-hlines, #retrobg-vlines { position: absolute; left: calc( ( 900% - 100% ) / -2 ); width: 900%; height: 500%; } #retrobg-vlines { display: flex; justify-content: center; } .retrobg-hline, .retrobg-vline { width: 100%; height: 100%; background-color: currentColor; } .retrobg-hline { height: 3px; } .retrobg-vline { width: 3px; } .retrobg-hline + .retrobg-hline { margin-top: 98px; } .retrobg-vline + .retrobg-vline { margin-left: 48px; }