// Variables $primary-color: #4f46e5; $gradient-colors: (45deg, #8634f9, #ffab1a, #ff2fa2); $button-radius: 4px; $button-padding: 6px 12px; $tooltip-radius: 4px; $image-size: 80px; // Mixins @mixin flex-center { display: flex; justify-content: center; align-items: center; } // Global Styles .controls { display: flex; justify-content: space-between; width: 100%; max-width: 500px; margin-bottom: 10px; } .button { padding: $button-padding; background-color: $primary-color; color: white; border: none; border-radius: $button-radius; cursor: pointer; } // Wave Visualization Styles .visualization-container { position: relative; width: 100%; height: calc(100vh - 86px); overflow: hidden; } .gradient-bg { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: -1; background: linear-gradient(45deg, #8634f9, #ffab1a, #ff2fa2); background-size: 200% 200%; animation: gradientAnimation 20s ease infinite; } @keyframes gradientAnimation { 0% { background-position: 0% 0%; } 25% { background-position: 100% 0%; } 50% { background-position: 100% 100%; } 75% { background-position: 0% 100%; } 100% { background-position: 0% 0%; } } .median { position: absolute; top: 51%; left: 0; right: 0; height: 2px; background-color: rgba(255,255,255,0.3); z-index: 10; } .scroll-container { position: relative; width: 100%; height: 100%; overflow-x: auto; overflow-y: hidden; min-height:400px; &::-webkit-scrollbar { display: none; } -ms-overflow-style: none; /* IE and Edge */ scrollbar-width: none; /* Firefox */ } .smooth-scroll { scroll-behavior: smooth; } .active { cursor: grabbing; } .spacer { height: 100vh; } .dot-tooltip { pointer-events: none; opacity: 1; .tooltip-background { fill: rgba(0, 0, 0, 0.0); } .tooltip-content { @include flex-center; flex-direction: column; width: 100%; height: 100%; color: white; } .image_container { margin-top: 8px; box-shadow: 0 0 20px 0 rgba(255, 255, 255, 0.25); transition: box-shadow 0.25s ease-in-out; width: $image-size; height: $image-size; overflow: hidden; border-radius: 50%; border: 2px solid white; display: flex; justify-content: center; &:hover { box-shadow: 0 0 30px 0 rgba(255, 255, 255, 0.8); } } .tooltip-image { width: 100%; height: auto; display: block; pointer-events: auto; } .tooltip-title { font-size: 14px; font-weight: 400; margin-bottom: 2px; text-align: center; text-wrap: balance; hyphens: auto; line-height: 1.1; } .tooltip-description { font-size: 12px; font-weight: 300; } .tooltip-arrow { width: 1px; height: 30px; background: linear-gradient(to bottom, transparent, rgba(255, 255, 255, 0.5), transparent); } } .dot { transition: r 0.2s ease, fill 0.2s ease; cursor: pointer; &:hover { fill: rgba(255, 255, 255, 0.9); filter: drop-shadow(0 0 5px rgba(255, 255, 255, 0.8)); } } .tooltip-img { width: 100%; height: 100%; object-fit: cover; border-radius: $tooltip-radius; }