File size: 3,903 Bytes
7ddcf6c 9b372da 7ddcf6c 9b372da 7ddcf6c 9b372da 7ddcf6c 9b372da 7ddcf6c 9b372da 7ddcf6c | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 | /* Custom animations and psychedelic effects */
@keyframes gradient {
0% { background-position: 0% 50%; }
50% { background-position: 100% 50%; }
100% { background-position: 0% 50%; }
}
@keyframes pulse-slow {
0%, 100% { opacity: 0.3; transform: scale(1); }
50% { opacity: 0.5; transform: scale(1.1); }
}
@keyframes text-shimmer {
0% { background-position: -200% center; }
100% { background-position: 200% center; }
}
@keyframes float {
0%, 100% { transform: translateY(0px); }
50% { transform: translateY(-10px); }
}
.animate-gradient {
background-size: 400% 400%;
animation: gradient 15s ease infinite;
}
.animate-pulse-slow {
animation: pulse-slow 8s ease-in-out infinite;
}
.animate-text-shimmer {
background-size: 200% auto;
animation: text-shimmer 5s linear infinite;
}
/* Glassmorphism panels */
.glass-panel {
background: rgba(20, 20, 40, 0.6);
backdrop-filter: blur(12px);
-webkit-backdrop-filter: blur(12px);
box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37);
}
/* Custom range slider styling */
input[type="range"] {
-webkit-appearance: none;
background: transparent;
}
input[type="range"]::-webkit-slider-thumb {
-webkit-appearance: none;
height: 20px;
width: 20px;
border-radius: 50%;
background: linear-gradient(135deg, #06b6d4, #3b82f6);
cursor: pointer;
box-shadow: 0 0 10px rgba(6, 182, 212, 0.5), 0 0 20px rgba(6, 182, 212, 0.3);
margin-top: -8px;
border: 2px solid white;
transition: transform 0.2s;
}
input[type="range"]::-webkit-slider-thumb:hover {
transform: scale(1.2);
box-shadow: 0 0 15px rgba(6, 182, 212, 0.8), 0 0 30px rgba(6, 182, 212, 0.5);
}
input[type="range"]::-webkit-slider-runnable-track {
width: 100%;
height: 4px;
cursor: pointer;
background: rgba(0, 0, 0, 0.3);
border-radius: 2px;
border: 1px solid rgba(255, 255, 255, 0.1);
}
input[type="range"]:focus {
outline: none;
}
/* Pink accent for beat slider */
#beatSlider::-webkit-slider-thumb {
background: linear-gradient(135deg, #ec4899, #f472b6);
box-shadow: 0 0 10px rgba(236, 72, 153, 0.5), 0 0 20px rgba(236, 72, 153, 0.3);
}
#beatSlider::-webkit-slider-thumb:hover {
box-shadow: 0 0 15px rgba(236, 72, 153, 0.8), 0 0 30px rgba(236, 72, 153, 0.5);
}
/* Amber accent for noise */
#noiseVolumeSlider::-webkit-slider-thumb,
#spatialWidthSlider::-webkit-slider-thumb {
background: linear-gradient(135deg, #f59e0b, #fbbf24);
box-shadow: 0 0 10px rgba(245, 158, 11, 0.5), 0 0 20px rgba(245, 158, 11, 0.3);
}
/* Button glow effects */
.mode-btn.active {
box-shadow: 0 0 20px rgba(6, 182, 212, 0.5), inset 0 0 10px rgba(255, 255, 255, 0.2);
transform: scale(1.05);
}
.ramp-btn.active {
box-shadow: 0 0 20px rgba(168, 85, 247, 0.5), inset 0 0 10px rgba(255, 255, 255, 0.2);
}
.noise-btn.playing {
box-shadow: 0 0 30px currentColor;
animation: pulse-border 2s ease-in-out infinite;
}
@keyframes pulse-border {
0%, 100% { border-color: rgba(255, 255, 255, 0.5); }
50% { border-color: rgba(255, 255, 255, 1); }
}
/* Brainwave button effects */
.brainwave-btn {
transition: all 0.3s ease;
}
.brainwave-btn:hover {
transform: translateY(-2px);
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}
/* Responsive adjustments */
@media (max-width: 768px) {
.glass-panel {
padding: 1.5rem;
}
h1 {
font-size: 2.5rem;
}
}
/* Scrollbar styling */
::-webkit-scrollbar {
width: 10px;
}
::-webkit-scrollbar-track {
background: rgba(0, 0, 0, 0.3);
}
::-webkit-scrollbar-thumb {
background: linear-gradient(180deg, #06b6d4, #ec4899);
border-radius: 5px;
}
::-webkit-scrollbar-thumb:hover {
background: linear-gradient(180deg, #22d3ee, #f472b6);
}
/* Selection styling */
::selection {
background: rgba(236, 72, 153, 0.4);
color: white;
} |