.site-header{--header-bar-height: clamp(30px, 4vw, 60px);--logo-width: min(35vw, 557px);--logo-top: min(1.5vw, 20px);--nav-top: min(9vw, 140px);--nav-left: min(1.5vw, 20px);--nav-gap: clamp(2px, .4vw, 6px);--nav-font-size: clamp(10px, .9vw, 14px);--header-bar-bg: #000;--nav-color: #fff;--container-max-width: 1600px;position:absolute;top:0;left:0;right:0;z-index:100}.header-bar{background:var(--header-bar-bg);height:var(--header-bar-height);width:100%}.header-logo-link{position:absolute;top:var(--logo-top);left:50%;transform:translate(-50%);width:100%;max-width:var(--container-max-width);z-index:10}.header-logo{width:var(--logo-width);height:auto;display:block}.header-nav{position:absolute;top:var(--nav-top);left:50%;transform:translate(-50%);width:100%;max-width:var(--container-max-width);display:flex;flex-direction:column;gap:var(--nav-gap);padding-left:var(--nav-left)}.header-nav a{color:var(--nav-color);text-decoration:none;font-family:Roboto,sans-serif;font-size:var(--nav-font-size);font-weight:500;text-transform:uppercase;letter-spacing:.5px;opacity:.9;transition:opacity .2s ease;width:fit-content}.header-nav a:hover,.header-nav a:focus{opacity:1}.header-nav a.active{font-weight:700;opacity:1}.header-nav a:focus-visible{outline:2px solid var(--nav-color);outline-offset:2px}.header-logo-link:focus-visible{outline:2px solid #fff;outline-offset:4px}.interactive-image-container{position:relative;width:100%;max-width:1600px;margin:0 auto;overflow:hidden}.base-image{display:block;width:100%;height:auto;-webkit-user-select:none;user-select:none}.hotspot-wrapper{position:absolute;cursor:default;transform-origin:center center;transition:transform .15s ease-out;overflow:visible}.hotspot-wrapper.hovered{cursor:pointer}.hotspot-image{width:100%;height:100%;object-fit:contain;-webkit-user-select:none;user-select:none;pointer-events:none}.hotspot-image.custom-size{width:auto;height:auto;object-fit:unset}.hotspot-wrapper.has-tilt.hovered{animation:tilt .3s ease-out forwards}@keyframes tilt{0%{transform:rotate(0)}to{transform:rotate(1.5deg)}}.hotspot-wrapper.has-enlarge.hovered{animation:enlarge .3s ease-out forwards}@keyframes enlarge{0%{transform:scale(1)}to{transform:scale(1.05)}}.hotspot-wrapper.has-tilt.has-enlarge.hovered{animation:tiltAndEnlarge .3s ease-out forwards}@keyframes tiltAndEnlarge{0%{transform:rotate(0) scale(1)}to{transform:rotate(1.5deg) scale(1.05)}}.hotspot-label{position:absolute;bottom:100%;left:50%;transform:translate(-50%);margin-bottom:8px;padding:6px 12px;background:#000000d9;color:#fff;font-size:14px;font-weight:500;white-space:nowrap;border-radius:4px;pointer-events:none;animation:fadeIn .15s ease-out}.hotspot-label:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:#000000d9}@keyframes fadeIn{0%{opacity:0;transform:translate(-50%) translateY(4px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.hotspot-wrapper:focus{outline:none}.hotspot-wrapper:focus-visible{outline:2px solid #fff;outline-offset:2px;border-radius:4px}.hotspot-wrapper.hovered .hotspot-image{filter:drop-shadow(0 0 8px rgba(255,255,255,.3))}.hotspot-wrapper.has-glow .hotspot-image{filter:drop-shadow(0 0 4px var(--glow-color));animation:glowPulse 2.5s ease-in-out infinite}.hotspot-wrapper.has-glow.hovered .hotspot-image{filter:drop-shadow(0 0 10px var(--glow-color)) drop-shadow(0 0 20px var(--glow-color));animation:none}@keyframes glowPulse{0%,to{filter:drop-shadow(0 0 0px var(--glow-color))}50%{filter:drop-shadow(0 0 5px var(--glow-color))}}@keyframes glowPulseHover{0%,to{filter:drop-shadow(0 0 0px var(--glow-color))}50%{filter:drop-shadow(0 0 6px var(--glow-color)) drop-shadow(0 0 12px var(--glow-color))}}@media(max-width:768px){.hotspot-label{font-size:12px;padding:4px 8px}@keyframes tilt{0%{transform:rotate(0)}to{transform:rotate(1deg)}}@keyframes enlarge{0%{transform:scale(1)}to{transform:scale(1.03)}}@keyframes tiltAndEnlarge{0%{transform:rotate(0) scale(1)}to{transform:rotate(1deg) scale(1.03)}}}.artist-bio{display:grid;gap:2rem}.bio-loading,.bio-error{text-align:center;padding:2rem;color:#888}.bio-photo{max-width:400px;margin:0 auto}.bio-photo img{width:100%;border-radius:12px}.bio-content{text-align:center}.bio-name{font-size:2.5rem;font-weight:700;margin-bottom:1.5rem;color:#fff}.bio-text{max-width:700px;margin:0 auto 2rem;font-size:1.1rem;line-height:1.8;color:#ccc;text-align:left}.bio-text p{margin-bottom:1rem}.bio-socials{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem;margin-bottom:1.5rem}.social-link{display:inline-block;padding:.6rem 1.2rem;font-size:.9rem;font-weight:500;text-decoration:none;color:#fff;background:#ffffff1a;border-radius:25px;transition:background .2s ease}.social-link:hover{background:#fff3}.bio-contact{font-size:.9rem;color:#888}.bio-contact a{color:#fff;text-decoration:none}.bio-contact a:hover{text-decoration:underline}.bio-gallery{margin-top:2rem}.bio-gallery h3{font-size:1.5rem;margin-bottom:1rem;text-align:center;color:#fff}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem}.gallery-item{display:block;aspect-ratio:1;overflow:hidden;border-radius:8px}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.gallery-item:hover img{transform:scale(1.1)}@media(min-width:768px){.artist-bio{grid-template-columns:1fr 2fr;align-items:start}.bio-photo{margin:0}.bio-content{text-align:left}.bio-socials{justify-content:flex-start}.bio-gallery{grid-column:1 / -1}.bio-gallery h3{text-align:left}}.hero-section{position:relative}.page-with-header{position:relative;padding-top:clamp(100px,15vw,200px)}.content-section{min-height:100vh;padding:clamp(2rem,5vw,4rem) clamp(1rem,3vw,2rem)}.section-container{max-width:1200px;margin:0 auto}.section-title{font-family:Roboto,sans-serif;font-size:clamp(1.5rem,4vw,2.5rem);font-weight:700;margin-bottom:2rem;color:#fff;text-align:center}.songs-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:2rem;padding:1rem 0}.songs-loading,.songs-error{text-align:center;padding:2rem;color:#888}.song-card{background:#ffffff0d;border-radius:12px;overflow:hidden;transition:transform .2s ease,box-shadow .2s ease}.song-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #0000004d}.song-artwork{aspect-ratio:1;overflow:hidden}.song-artwork img{width:100%;height:100%;object-fit:cover}.song-info{padding:1rem}.song-title{font-size:1.2rem;font-weight:600;margin-bottom:.5rem;color:#fff}.song-date{font-size:.875rem;color:#888;margin-bottom:1rem}.song-links{display:flex;flex-wrap:wrap;gap:.5rem}.stream-link{display:inline-block;padding:.4rem .8rem;font-size:.75rem;font-weight:500;text-decoration:none;border-radius:20px;transition:opacity .2s ease}.stream-link:hover{opacity:.8}.stream-link.spotify{background:#1db954;color:#fff}.stream-link.apple{background:linear-gradient(45deg,#fa233b,#fb5c74);color:#fff}.stream-link.youtube{background:red;color:#fff}.stream-link.soundcloud{background:#f50;color:#fff}.tour-dates{display:flex;flex-direction:column;gap:1rem}.tour-loading,.tour-error,.tour-empty{text-align:center;padding:2rem;color:#888}.tour-card{display:flex;align-items:center;gap:1.5rem;padding:1.5rem;background:#ffffff0d;border-radius:12px;transition:background .2s ease}.tour-card:hover{background:#ffffff14}.tour-card.sold-out{opacity:.6}.tour-date{display:flex;flex-direction:column;align-items:center;min-width:70px;padding:.75rem;background:#ffffff1a;border-radius:8px}.tour-month{font-size:.75rem;font-weight:600;text-transform:uppercase;color:#888}.tour-day{font-size:1.75rem;font-weight:700;line-height:1.2;color:#fff}.tour-year{font-size:.75rem;color:#666}.tour-info{flex:1}.tour-venue{font-size:1.1rem;font-weight:600;color:#fff;margin-bottom:.25rem}.tour-location{font-size:.9rem;color:#888}.tour-time{font-size:.8rem;color:#666;margin-top:.25rem}.tour-notes{font-size:.8rem;font-style:italic;color:#666;margin-top:.5rem}.tour-action{display:flex;align-items:center}.ticket-button{display:inline-block;padding:.75rem 1.5rem;font-size:.875rem;font-weight:600;text-decoration:none;color:#000;background:#fff;border-radius:25px;transition:transform .2s ease,box-shadow .2s ease}.ticket-button:hover{transform:scale(1.05);box-shadow:0 4px 16px #fff3}.sold-out-badge,.tba-badge{padding:.5rem 1rem;font-size:.75rem;font-weight:600;text-transform:uppercase;border-radius:20px}.sold-out-badge{background:#f003;color:#ff6b6b}.tba-badge{background:#ffffff1a;color:#888}@media(max-width:640px){.tour-card{flex-wrap:wrap}.tour-info{flex-basis:100%;order:1}.tour-action{order:2;width:100%;justify-content:center;margin-top:1rem}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:system-ui,-apple-system,sans-serif;background:#111;color:#fff;min-height:100vh}#root{width:100%}
