.audio-page { position: relative; width: 100%; height: 100vh; background: radial-gradient(ellipse at bottom, #1b2735 0%, #090a0f 100%); color: #fff; text-align: center; > .page-content { position: absolute; left: 50%; transform: translateX(-50%); width: 60%; margin: auto; z-index: 999; padding-top: 330px; @include media-down(lg) { padding-top: 400px; } .neon-sign { position: absolute; top: 0; left: 50%; top: 100px; width: 100%; pointer-events: none; .neon-text { @include media-down(lg) { font-size: 5rem; } } } } .record-shelf-container { .shelf { display: flex; gap: 5rem; position: relative; overflow: visible; padding-left: 2em; padding-right: 2em; } .shelf::before { content: ""; position: absolute; bottom: -10px; left: 0; right: 0; height: 10px; background: linear-gradient( to bottom, #6b4423 0%, #4a2f1a 50%, #2d1b0e 100% ); border-radius: 0 0 6px 6px; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5); } .record-slot { position: relative; width: 200px; min-width: 140px; height: 200px; perspective: 1000px; } .record-sleeve { width: 100%; height: 100%; position: relative; transition: transform 0.3s ease; } .sleeve-front { width: 100%; height: 100%; position: absolute; border-radius: 2px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3), inset 0 0 20px rgba(0, 0, 0, 0.2); display: flex; align-items: center; justify-content: center; font-weight: bold; color: white; text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.8); padding: 10px; text-align: center; background-image: var(--album-cover); background-size: cover; background-position: center; transition: transform 0.3s ease; z-index: 99; .album-title { font-size: 16px; opacity: 0; } &:hover { .album-title { opacity: 1; } } } .vinyl-record { position: absolute; width: 95%; height: 95%; border-radius: 50%; top: 2%; right: 2%; background: radial-gradient(circle at center, #1a1a1a 30%, transparent 30%), conic-gradient( from 0deg, #0f0f0f 0deg, #1a1a1a 45deg, #0f0f0f 90deg, #1a1a1a 135deg, #0f0f0f 180deg, #1a1a1a 225deg, #0f0f0f 270deg, #1a1a1a 315deg, #0f0f0f 360deg ); box-shadow: 0 2px 10px rgba(0, 0, 0, 0.5); z-index: 1; transition: transform 0.3s ease; } .vinyl-record::before { content: ""; position: absolute; width: 35%; height: 35%; border-radius: 50%; top: 50%; left: 50%; transform: translate(-50%, -50%); background: radial-gradient( circle, #000 0%, #ff4444 10%, #cc0000 50%, #1a1a1a 50%, #0f0f0f 100% ); } .vinyl-record::after { content: ""; position: absolute; transform: translateX(-50%); width: 100%; height: 100%; border-radius: 50%; background: repeating-radial-gradient( circle at center, transparent 0px, transparent 2px, rgba(255, 255, 255, 0.03) 2px, rgba(255, 255, 255, 0.03) 3px ); } .record-slot:hover .vinyl-record { transform: translateX(20%); } .record-slot:hover .sleeve-front { transform: translateX(-10%); } } } .starfield-full { position: fixed; inset: 0; height: 100%; background: linear-gradient(180deg, #0a0f1a 0%, #1a2a3a 50%, #2a3a52); > .buildings-bg { position: fixed; bottom: 0; left: 15%; height: 40%; width: 50%; z-index: 2; @include media-down(lg) { width: 100%; left: 0; } } } .star { position: absolute; width: 2px; height: 2px; background: white; border-radius: 50%; animation: twinkle linear infinite; } .star.small { width: 1px; height: 1px; } .star.medium { width: 2px; height: 2px; } .star.large { width: 3px; height: 3px; box-shadow: 0 0 4px rgba(255, 255, 255, 0.5); } @keyframes twinkle { 0%, 100% { opacity: 0.3; } 50% { opacity: 1; } }