37956-vm/staticfiles/css/custom.css
2026-01-29 21:16:54 +00:00

184 lines
4.0 KiB
CSS

/* Lili Record's Custom Styles - Metallic & Neon Edition */
:root {
--primary-neon: #FF007F;
--secondary-neon: #00F2FF;
--metallic-silver: #c0c0c0;
--metallic-dark: #2c2c2c;
--vinyl-black: #050505;
}
body {
background-color: #050505;
background-image:
radial-gradient(at 0% 0%, rgba(255, 0, 127, 0.15) 0px, transparent 50%),
radial-gradient(at 100% 100%, rgba(0, 242, 255, 0.15) 0px, transparent 50%);
min-height: 100vh;
color: #eee;
}
.btn-primary {
background: linear-gradient(135deg, var(--primary-neon), #e60072);
border: none;
box-shadow: 0 0 20px rgba(255, 0, 127, 0.4);
transition: all 0.3s ease;
}
.btn-primary:hover {
transform: scale(1.05);
box-shadow: 0 0 30px rgba(255, 0, 127, 0.7);
}
/* Vinyl Record Player */
.player-container {
position: relative;
width: 400px;
height: 400px;
margin: 0 auto;
background: linear-gradient(145deg, #333, #111);
border-radius: 30px;
padding: 25px;
border: 2px solid rgba(255,255,255,0.05);
box-shadow:
inset 0 0 80px #000,
0 20px 60px rgba(0,0,0,0.8),
0 0 40px rgba(0, 242, 255, 0.05);
}
.vinyl-disk {
width: 350px;
height: 350px;
background: radial-gradient(circle, #222 0%, #111 20%, #050505 100%);
border-radius: 50%;
position: relative;
box-shadow: 0 0 30px rgba(0,0,0,1);
display: flex;
align-items: center;
justify-content: center;
background-image: repeating-radial-gradient(
circle,
rgba(255,255,255,0.03) 0,
rgba(255,255,255,0.03) 1px,
transparent 1px,
transparent 3px
);
overflow: hidden;
}
/* Metallic Shine */
.vinyl-disk::after {
content: '';
position: absolute;
top: 0; left: 0; right: 0; bottom: 0;
border-radius: 50%;
background: conic-gradient(
from 0deg,
transparent 0deg,
rgba(255,255,255,0.05) 45deg,
transparent 90deg,
rgba(255,255,255,0.05) 135deg,
transparent 180deg,
rgba(255,255,255,0.05) 225deg,
transparent 270deg,
rgba(255,255,255,0.05) 315deg,
transparent 360deg
);
pointer-events: none;
}
.vinyl-label {
width: 140px;
height: 140px;
background-color: var(--primary-neon);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
transition: all 0.5s ease;
border: 6px solid #111;
z-index: 2;
overflow: hidden;
background: #fff; /* White bg for logo fallback */
}
.tonearm {
position: absolute;
top: 30px;
right: 40px;
width: 24px;
height: 200px;
background: linear-gradient(to right, #666, #999, #666);
border-radius: 12px;
transform-origin: 50% 15px;
transform: rotate(-35deg);
transition: transform 1.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
z-index: 10;
box-shadow: 4px 4px 10px rgba(0,0,0,0.6);
border: 1px solid rgba(255,255,255,0.1);
}
.tonearm::after {
content: '';
position: absolute;
bottom: -10px;
left: 50%;
transform: translateX(-50%);
width: 30px;
height: 40px;
background: #333;
border-radius: 4px;
border: 2px solid #555;
}
.tonearm.active {
transform: rotate(10deg);
}
/* Animations */
@keyframes spin {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
.vinyl-disk.spinning {
animation: spin 3.5s linear infinite;
}
/* Responsive adjustments */
@media (max-width: 992px) {
.player-container {
width: 320px;
height: 320px;
}
.vinyl-disk {
width: 270px;
height: 270px;
}
.vinyl-label {
width: 100px;
height: 100px;
}
.tonearm {
height: 160px;
right: 30px;
}
}
@media (max-width: 576px) {
.player-container {
width: 280px;
height: 280px;
}
.vinyl-disk {
width: 230px;
height: 230px;
}
.vinyl-label {
width: 80px;
height: 80px;
}
.tonearm {
height: 140px;
}
}