:root{--blue:#3ab5ff;--purple:#c86ee6;--bg:#0d0b1a;--bg2:#15122a;--text:#f3f0ff;--muted:#b9b3d6}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Inter',sans-serif;background:var(--bg);color:var(--text);line-height:1.6}
h1,h2,h3{font-family:'Playfair Display',serif}
img{max-width:100%;display:block}

.nav{position:fixed;inset:0 0 auto 0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:.6rem 1.5rem;background:rgba(13,11,26,.85);backdrop-filter:blur(8px);border-bottom:1px solid rgba(200,110,230,.25)}
.nav-logo img{height:48px}
.nav-links{display:flex;align-items:center;gap:1.5rem}
.nav-links a{color:var(--text);text-decoration:none;font-weight:500}
.nav-links a:hover{color:var(--blue)}
.nav-toggle{display:none;background:none;border:0;color:var(--text);font-size:1.6rem;cursor:pointer}

.btn{display:inline-block;padding:.8rem 1.8rem;border-radius:999px;border:2px solid transparent;background:linear-gradient(135deg,var(--blue),var(--purple));color:#fff!important;font-weight:600;text-decoration:none;cursor:pointer;font-size:1rem;transition:transform .2s,box-shadow .2s}
.btn:hover{transform:translateY(-2px);box-shadow:0 6px 24px rgba(200,110,230,.45)}
.btn-outline{background:transparent;border-color:var(--purple)}
.btn-small{padding:.4rem 1.1rem;font-size:.9rem}

.hero{position:relative;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:6rem 1.5rem 3rem;background:radial-gradient(circle at 50% 30%,#2a1850 0%,var(--bg) 70%);overflow:hidden}
.logo-wrap{position:relative;width:min(640px,88vw)}
.hero-logo{width:100%;animation:arrive 1.2s 3.4s ease-out both;filter:drop-shadow(0 0 28px rgba(58,181,255,.35))}
.tagline{margin:1.5rem 0 2rem;font-size:1.25rem;color:var(--muted);letter-spacing:.05em}
.hero-cta{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center}
.sparkles{position:absolute;inset:0;background-image:radial-gradient(2px 2px at 20% 30%,#fff,transparent),radial-gradient(2px 2px at 70% 20%,var(--blue),transparent),radial-gradient(3px 3px at 85% 70%,var(--purple),transparent),radial-gradient(2px 2px at 35% 80%,#fff,transparent),radial-gradient(2px 2px at 55% 55%,var(--purple),transparent);animation:twinkle 4s ease-in-out infinite alternate;pointer-events:none}
@keyframes twinkle{from{opacity:.35}to{opacity:1}}

.section{padding:5rem 1.5rem;max-width:1100px;margin:0 auto;text-align:center}
.section.alt{max-width:none;background:var(--bg2)}
.section.alt>*{max-width:900px;margin-left:auto;margin-right:auto}
.section h2{font-size:2.4rem;margin-bottom:1rem;background:linear-gradient(90deg,var(--blue),var(--purple));-webkit-background-clip:text;background-clip:text;color:transparent;display:inline-block}
.lead{max-width:640px;margin:0 auto 2.5rem;color:var(--muted)}

.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,320px));justify-content:center;gap:1.5rem;margin-top:1rem}
.card{padding:2rem 1.5rem;border-radius:16px;background:var(--bg2);border:1px solid rgba(58,181,255,.25);transition:transform .2s,border-color .2s}
.card:hover{transform:translateY(-4px);border-color:var(--purple)}
.card h3{color:var(--blue);margin-bottom:.5rem}
.card p{color:var(--muted)}

.shows{list-style:none;margin-top:1.5rem}
.shows li{display:grid;grid-template-columns:1fr 2fr auto;gap:1rem;align-items:center;padding:1rem 1.25rem;margin-bottom:.8rem;border-radius:12px;background:var(--bg);border-left:4px solid var(--purple);text-align:left}
.date{font-weight:600;color:var(--blue)}

.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-top:1.5rem}
.ph{aspect-ratio:1;display:grid;place-items:center;border-radius:12px;color:var(--muted);background:linear-gradient(135deg,rgba(58,181,255,.15),rgba(200,110,230,.15));border:1px dashed rgba(200,110,230,.4)}

.form{display:grid;gap:1rem;text-align:left;max-width:560px!important}
.form label{display:grid;gap:.3rem;font-weight:500}
.form input,.form textarea{padding:.7rem .9rem;border-radius:8px;border:1px solid rgba(58,181,255,.35);background:var(--bg);color:var(--text);font:inherit}
.form input:focus,.form textarea:focus{outline:2px solid var(--purple)}
.form .btn{justify-self:start}

.footer{padding:2.5rem 1rem;text-align:center;color:var(--muted);border-top:1px solid rgba(200,110,230,.25)}
.footer-logo{height:70px;margin:0 auto .75rem}

@media(max-width:700px){
  .nav-toggle{display:block}
  .nav-links{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;padding:1rem;background:var(--bg)}
  .nav-links.open{display:flex}
  .shows li{grid-template-columns:1fr;text-align:center}
}

/* Dancers: one walks in from each side, stops on the logo, then dances */
.logo-wrap::after{content:"";position:absolute;left:-14%;right:-14%;bottom:-4px;height:3px;background:linear-gradient(90deg,transparent,var(--purple),var(--blue),transparent);box-shadow:0 0 16px var(--purple);opacity:.8}
.dancer{--w:3.6s;--idle:3.9s;position:absolute;bottom:-4px;height:310px;z-index:2;animation:walk var(--w) linear both}
.dancer svg{height:100%;width:auto;display:block;overflow:visible;transform-origin:50% 100%;animation:bobw .6s ease-in-out 6,dance 1.1s var(--idle) ease-in-out infinite alternate;filter:drop-shadow(0 0 14px rgba(255,255,255,.35))}
.dancer.dl{left:-19%;--from:-42vw}
.dancer.dr{right:-25%;--from:42vw}
.dancer.dr svg{animation-direction:alternate-reverse}
.dancer svg *{transform-box:view-box}
.legA{animation:legA 1.2s linear 3,settleA .3s var(--w) ease-out both,tap .8s var(--idle) ease-in-out infinite alternate}
.legB{animation:legB 1.2s linear 3,settleB .3s var(--w) ease-out both,tap .8s var(--idle) ease-in-out infinite alternate-reverse}
.rock{animation:rock 1.2s ease-in-out 3,sway 1.1s var(--idle) ease-in-out infinite alternate}
.spot{position:absolute;bottom:-4px;width:200px;height:520px;opacity:0;background:linear-gradient(to top,rgba(255,255,255,.22),transparent 85%);clip-path:polygon(38% 0,62% 0,100% 100%,0 100%);animation:fadein 1s 3.4s forwards;pointer-events:none}
.sl{left:-14%}.sr{right:-16%}
@keyframes walk{from{transform:translateX(var(--from))}to{transform:none}}
@keyframes legA{0%{transform:translateY(0) rotate(-6deg)}25%{transform:translateY(-20px) rotate(0deg)}50%{transform:translateY(0) rotate(6deg)}100%{transform:translateY(0) rotate(-6deg)}}
@keyframes legB{0%{transform:translateY(0) rotate(6deg)}50%{transform:translateY(0) rotate(-6deg)}75%{transform:translateY(-20px) rotate(0deg)}100%{transform:translateY(0) rotate(6deg)}}
@keyframes settleA{from{transform:translateY(0) rotate(-6deg)}to{transform:translateY(0) rotate(0deg)}}
@keyframes settleB{from{transform:translateY(0) rotate(6deg)}to{transform:translateY(0) rotate(0deg)}}
@keyframes tap{from{transform:translateY(0) rotate(-2deg)}to{transform:translateY(-12px) rotate(2deg)}}
@keyframes bobw{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes rock{0%,100%{transform:rotate(-2.5deg)}50%{transform:rotate(2.5deg)}}
@keyframes sway{from{transform:rotate(-2deg)}to{transform:rotate(2deg)}}
@keyframes settleA{from{transform:translateY(0) rotate(-6deg)}to{transform:translateY(0) rotate(0deg)}}
@keyframes settleA{from{transform:translateY(0) rotate(-6deg)}to{transform:translateY(0) rotate(0deg)}}
@keyframes dance{from{transform:translateY(0) rotate(-3deg)}to{transform:translateY(-10px) rotate(3deg)}}
@keyframes fadein{to{opacity:1}}
@keyframes arrive{0%{filter:drop-shadow(0 0 28px rgba(58,181,255,.35))}40%{filter:drop-shadow(0 0 50px rgba(255,143,224,.9))}100%{filter:drop-shadow(0 0 28px rgba(58,181,255,.35))}}
.hero.paused .dancer,.hero.paused .dancer *,.hero.paused .spot,.hero.paused .hero-logo{animation-play-state:paused}
@media(max-width:700px){.dancer{height:118px}.dancer.dl{left:-4%}.dancer.dr{right:-4%}.spot{width:90px;height:260px}.sl{left:-5%}.sr{right:-6%}}
@media(prefers-reduced-motion:reduce){.dancer,.dancer *,.spot,.hero-logo{animation:none!important}.spot{opacity:1}}
