Audiovisual Storytelling Hero

Audiovisual Storytelling Hero

Hero inmersivo y cinematográfico con galería circular animada mediante GSAP, órbita excéntrica, capa de niebla y un reproductor de audio tipo glassmorphism con disco de vinilo dinámico SVG.

<div class="hero-container" id="hero-container">
 <div class="sidebar-text">
  Music for the daydreamers, the storytellers, and the wanderers — a soundtrack for those who find beauty in every moment, and meaning in every silence.
 </div>
 <div class="bg-text-container">
  <h1 class="bg-text font-display">
   these are my stories
  </h1>
 </div>
 <div class="center-profile" id="center-profile">
  <div class="profile-avatar">
   <img alt="Coveo Portrait" src="https://storage.maquinaespacial.com/media/5ODEGNTRDBVF/avatar.avif"/>
  </div>
  <h2 class="profile-title">
   Coveo
  </h2>
  <p class="profile-subtitle">
   An Audio/Visual Project
  </p>
 </div>
 <div class="gallery-ring" id="gallery-ring">
  <div class="gallery-items" id="gallery-items">
   <!-- Items injected here by JS, keeping original for preview -->
   <div class="gallery-item" data-color="#ff7b54" data-index="0" data-time="00:08 / 03:45" data-title="SUNSET DREAMS">
    <img alt="Cover 1" src="https://storage.maquinaespacial.com/media/5ODEGNTRDBVF/13.avif"/>
   </div>
   <div class="gallery-item" data-color="#54a0ff" data-index="1" data-time="01:12 / 04:20" data-title="NIGHT CITY">
    <img alt="Cover 2" src="https://storage.maquinaespacial.com/media/5ODEGNTRDBVF/12.avif"/>
   </div>
   <div class="gallery-item" data-color="#44bd32" data-index="2" data-time="00:45 / 02:30" data-title="FOREST WHISPERS">
    <img alt="Cover 3" src="https://storage.maquinaespacial.com/media/5ODEGNTRDBVF/11.avif"/>
   </div>
   <div class="gallery-item" data-color="#e84118" data-index="3" data-time="02:15 / 05:00" data-title="RED ROSES">
    <img alt="Cover 4" src="https://storage.maquinaespacial.com/media/5ODEGNTRDBVF/10.avif"/>
   </div>
   <div class="gallery-item" data-color="#d1ccc0" data-index="4" data-time="00:03 / 00:15" data-title="TOUCHING HANDS">
    <img alt="Cover 5" src="https://storage.maquinaespacial.com/media/5ODEGNTRDBVF/9.avif"/>
   </div>
   <div class="gallery-item" data-color="#f5f6fa" data-index="5" data-time="01:50 / 03:10" data-title="WHITE CLOUDS">
    <img alt="Cover 6" src="https://storage.maquinaespacial.com/media/5ODEGNTRDBVF/8.avif"/>
   </div>
   <div class="gallery-item" data-color="#2f3640" data-index="6" data-time="03:00 / 04:45" data-title="DARK NIGHT">
    <img alt="Cover 7" src="https://storage.maquinaespacial.com/media/5ODEGNTRDBVF/7.avif"/>
   </div>
   <div class="gallery-item" data-color="#111111" data-index="7" data-time="00:30 / 03:00" data-title="MIDNIGHT RIDE">
    <img alt="Cover 8" src="https://storage.maquinaespacial.com/media/5ODEGNTRDBVF/6.avif"/>
   </div>
   <div class="gallery-item" data-color="#2c3e50" data-index="8" data-time="01:20 / 04:00" data-title="OCEAN BREEZE">
    <img alt="Cover 9" src="https://storage.maquinaespacial.com/media/5ODEGNTRDBVF/5.avif"/>
   </div>
   <div class="gallery-item" data-color="#c56cf0" data-index="9" data-time="02:10 / 03:40" data-title="NEON LIGHTS">
    <img alt="Cover 10" src="https://storage.maquinaespacial.com/media/5ODEGNTRDBVF/4.avif"/>
   </div>
   <div class="gallery-item" data-color="#3ae374" data-index="10" data-time="01:15 / 04:15" data-title="URBAN JUNGLE">
    <img alt="Cover 11" src="https://storage.maquinaespacial.com/media/5ODEGNTRDBVF/3.avif"/>
   </div>
   <div class="gallery-item" data-color="#ffb8b8" data-index="11" data-time="00:50 / 02:50" data-title="PINK SKY">
    <img alt="Cover 12" src="https://storage.maquinaespacial.com/media/5ODEGNTRDBVF/1.avif"/>
   </div>
  </div>
 </div>
 <div class="fog-overlay">
 </div>
 <div class="bottom-instructions" id="bottom-instructions">
  <p class="instructions-subtitle">
   The art of sonic and visual
  </p>
  <h3 class="instructions-title font-display">
   Storytelling
  </h3>
  <p class="instructions-hint">
   Tap artwork to preview a song
  </p>
 </div>
 <div class="audio-player" id="audio-player">
  <div class="player-mobile-controls">
   <button class="btn-icon btn-play">
    <svg fill="currentColor" viewbox="0 0 24 24">
     <path d="M6 4h4v16H6zm8 0h4v16h-4z">
     </path>
    </svg>
   </button>
   <button class="btn-icon btn-close" id="close-player">
    <svg fill="none" stroke="currentColor" stroke-width="2" viewbox="0 0 24 24">
     <path d="M6 18L18 6M6 6l12 12" stroke-linecap="round" stroke-linejoin="round">
     </path>
    </svg>
   </button>
  </div>
  <div class="player-inner">
   <div class="player-info">
    <p class="info-label">
     Previewing
    </p>
    <h4 class="info-title" id="player-title">
     Still Dreaming
    </h4>
   </div>
   <div class="vinyl-container" id="vinyl-container">
    <svg class="vinyl-svg" id="vinyl-svg" viewbox="0 0 200 200">
     <defs>
      <clippath id="center-hole">
       <circle cx="100" cy="100" r="40">
       </circle>
      </clippath>
     </defs>
     <circle cx="100" cy="100" fill="#d1ccc0" id="vinyl-bg" r="98">
     </circle>
     <circle cx="100" cy="100" fill="none" r="90" stroke="rgba(255,255,255,0.2)" stroke-width="1.2">
     </circle>
     <circle cx="100" cy="100" fill="none" r="85" stroke="rgba(255,255,255,0.2)" stroke-width="1.2">
     </circle>
     <circle cx="100" cy="100" fill="none" r="80" stroke="rgba(255,255,255,0.2)" stroke-width="1.2">
     </circle>
     <circle cx="100" cy="100" fill="none" r="75" stroke="rgba(255,255,255,0.2)" stroke-width="1.2">
     </circle>
     <circle cx="100" cy="100" fill="none" r="70" stroke="rgba(255,255,255,0.2)" stroke-width="1.2">
     </circle>
     <circle cx="100" cy="100" fill="none" r="65" stroke="rgba(255,255,255,0.2)" stroke-width="1.2">
     </circle>
     <circle cx="100" cy="100" fill="none" r="60" stroke="rgba(255,255,255,0.2)" stroke-width="1.2">
     </circle>
     <circle cx="100" cy="100" fill="none" r="55" stroke="rgba(255,255,255,0.2)" stroke-width="1.2">
     </circle>
     <circle cx="100" cy="100" fill="none" r="50" stroke="rgba(255,255,255,0.2)" stroke-width="1.2">
     </circle>
     <circle cx="100" cy="100" fill="#ffffff" r="42">
     </circle>
     <image clip-path="url(#center-hole)" height="100" href="https://images.unsplash.com/photo-1529333166437-7750a6dd5a70?ixlib=rb-1.2.1&amp;auto=format&amp;fit=crop&amp;w=400&amp;q=80" id="vinyl-image" preserveaspectratio="xMidYMid slice" width="100" x="50" y="50"/>
     <circle cx="100" cy="100" fill="#111" r="5">
     </circle>
    </svg>
   </div>
   <div class="player-time" id="player-time">
    00:03 / 00:15
   </div>
   <div class="desktop-controls">
    <button class="btn-desktop-play">
     <svg fill="currentColor" viewbox="0 0 24 24">
      <path d="M6 4h4v16H6zm8 0h4v16h-4z">
      </path>
     </svg>
    </button>
   </div>
  </div>
 </div>
</div>