.lava-lamp-container { position: absolute; bottom: 20%; left: 20%; width: 80px; height: 150px; display: flex; flex-direction: column; align-items: center; z-index: 999; } .lamp-cap { width: 60%; height: 10%; background: linear-gradient(180deg, #c0c0c0 0%, #888 50%, #666 100%); border-radius: 60px 60px 0 0; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.5), inset 0 2px 4px rgba(255, 255, 255, 0.3); position: relative; z-index: 10; } .lava-lamp { position: relative; width: 100%; height: 102%; /*Being above 100% fixes the occasional gap when resizing the page, theoretically */ background: var(--lamp-bg, linear-gradient(180deg, #2a1a4a 0%, #1a0a3a 100%)); clip-path: polygon(20% 0, 80% 0, 100% 100%, 0% 100%); overflow: hidden; box-shadow: inset 0 0 60px rgba(0, 0, 0, 0.3), inset -10px 0 40px rgba(255, 255, 255, 0.1), inset 10px 0 40px rgba(0, 0, 0, 0.2); filter: drop-shadow(0 10px 30px rgba(0, 0, 0, 0.5)); } .lava-lamp::before { content: ""; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: linear-gradient( 90deg, transparent 0%, rgba(255, 255, 255, 0.15) 20%, rgba(255, 255, 255, 0.05) 40%, transparent 60% ); pointer-events: none; } .lamp-base { width: 100%; height: 20%; background: linear-gradient(180deg, #888 0%, #555 40%, #333 100%); border-radius: 0 0 40px 40px / 0 0 60px 60px; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.6), inset 0 5px 10px rgba(255, 255, 255, 0.2), inset 0 -5px 10px rgba(0, 0, 0, 0.5); position: relative; display: flex; justify-content: center; align-items: center; } .blob { position: absolute; border-radius: 50%; background: var( --blob-color, radial-gradient(circle at 30% 30%, #ff6b9d, #c44569) ); filter: url(#goo); animation: float var(--duration) ease-in-out infinite; opacity: 0.95; mix-blend-mode: normal; z-index: 3; } @keyframes float { 0%, 100% { transform: translate(var(--start-x), var(--start-y)) scale(1); } 25% { transform: translate(var(--mid1-x), var(--mid1-y)) scale(var(--scale1, 1.1)); } 50% { transform: translate(var(--mid2-x), var(--mid2-y)) scale(var(--scale2, 0.9)); } 75% { transform: translate(var(--mid3-x), var(--mid3-y)) scale(var(--scale3, 1.05)); } } .lamp-text { position: absolute; top: 50%; left: 50%; transform: translate(-35%, -50%) rotate(85deg); font-size: 30px; font-weight: bold; color: rgba(224, 27, 36, 0); transition: color 0.5s ease; pointer-events: none; z-index: 1; letter-spacing: 2px; } .lava-lamp:hover .lamp-text { color: rgba(224, 27, 36, 0.7); } .lava-lamp:hover { cursor: pointer; }