/* RIVANI website styles — extracted from index.html without visual changes. */
:root{--ink:#070710;--paper:#f5f3ef;--pink:#f4078c;--orange:#ff5a1f;--violet:#753bff;--blue:#00a8ff;--lime:#c7ff31;--muted:#aaa7b0;--mouse-x:50vw;--mouse-y:50vh}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:72px}body{color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;overflow-x:hidden}body::selection{color:#fff;background:var(--pink)}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}img{max-width:100%;display:block}.scroll-progress{z-index:100;background:linear-gradient(90deg, var(--pink), var(--orange), var(--lime), var(--blue));transform-origin:0;width:100%;height:4px;position:fixed;top:0;left:0;transform:scaleX(0)}.cursor-glow{z-index:4;left:var(--mouse-x);top:var(--mouse-y);opacity:.18;pointer-events:none;mix-blend-mode:screen;background:radial-gradient(circle,#f4078c3d,#0000 67%);border-radius:50%;width:260px;height:260px;position:fixed;transform:translate(-50%,-50%)}.site-header{z-index:50;color:#fff;border-bottom:1px solid #ffffff29;justify-content:space-between;align-items:center;width:100%;min-height:84px;padding:0 4.25vw;transition:min-height .3s,background .3s,-webkit-backdrop-filter .3s,backdrop-filter .3s;display:flex;position:fixed;top:0;left:0}.site-header.is-scrolled{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#060611d6;border-color:#ffffff17;min-height:68px}.logo-link{width:clamp(150px,16vw,230px);padding:.7rem 0}.logo-link img,.footer-logo img{width:100%;height:auto}nav{letter-spacing:.13em;text-transform:uppercase;align-items:center;gap:clamp(1.1rem,2vw,2rem);font-size:.68rem;font-weight:850;display:flex}nav>a:not(.nav-book){opacity:.82;position:relative}nav>a:not(.nav-book):after{content:"";background:var(--lime);width:0;height:2px;transition:width .25s;position:absolute;bottom:-7px;left:0}nav>a:hover:after{width:100%}.nav-book{color:#0c0b11;background:var(--lime);align-items:center;gap:.45rem;padding:.85rem 1.05rem;transition:transform .2s,background .2s;display:flex}.nav-book:hover{background:#fff;transform:translateY(-3px)rotate(-1deg)}.hero{color:#fff;background:#060612;min-height:100svh;position:relative;overflow:hidden}.hero-image,.hero-vignette,.hero-grid{position:absolute;inset:0}.hero-image{background:url("../../images/rivani-header.png") 50%/cover no-repeat;animation:16s cubic-bezier(.2,.7,.2,1) both hero-zoom}.hero-vignette{background:linear-gradient(90deg,#02030ced 0%,#03040fa6 36%,#03040f14 73%),linear-gradient(#0000 46%,#04040ec7 100%),linear-gradient(#02030c78,#0000 28%)}.hero-grid{opacity:.14;background-image:linear-gradient(#ffffff29 1px,#0000 1px),linear-gradient(90deg,#ffffff29 1px,#0000 1px);background-size:70px 70px;-webkit-mask-image:linear-gradient(90deg,#000,#0000 56%);mask-image:linear-gradient(90deg,#000,#0000 56%)}.hero-content{z-index:5;flex-direction:column;justify-content:center;min-height:100svh;padding:16vh 4.25vw 8vh;display:flex;position:relative}.eyebrow,.section-kicker{letter-spacing:.18em;text-transform:uppercase;align-items:center;gap:.72rem;font-size:.68rem;font-weight:850;display:flex}.hero-eyebrow{margin-bottom:2rem}.eyebrow-location{color:#ffffffad;align-items:center;gap:.35rem;margin-left:.8rem;display:inline-flex}.live-dot{background:var(--lime);border-radius:50%;width:8px;height:8px;animation:1.8s infinite pulse;box-shadow:0 0 0 6px #c7ff3126}.hero-title{letter-spacing:-.035em;text-transform:uppercase;max-width:990px;margin:0;font-family:Impact,Haettenschweiler,Arial Narrow Bold,sans-serif;font-size:clamp(5rem,11vw,11rem);font-weight:900;line-height:.78}.hero-line{animation:.9s cubic-bezier(.16,1,.3,1) forwards title-up;display:block;transform:translateY(120%)}.line-two{animation-delay:.14s}.line-two em{color:#0000;-webkit-text-stroke:2px #ffffffe6;font-style:normal}.hero-bottom{justify-content:space-between;align-items:end;gap:2rem;width:min(950px,100%);margin-top:2.5rem;display:flex}.hero-bottom p{color:#fffc;margin:0;font-size:clamp(.92rem,1.2vw,1.08rem);line-height:1.65}.hero-actions,.book-actions{align-items:center;gap:.8rem;display:flex}.button{letter-spacing:.11em;text-transform:uppercase;border:1px solid #0000;justify-content:center;align-items:center;gap:.65rem;min-height:52px;padding:.8rem 1.2rem;font-size:.7rem;font-weight:850;transition:transform .2s,background .2s,color .2s;display:inline-flex;position:relative;overflow:hidden}.button:before{content:"";background:#ffffff2e;transition:transform .45s;position:absolute;inset:0;transform:translate(-105%)skew(-15deg)}.button:hover:before{transform:translate(105%)skew(-15deg)}.button:hover{transform:translateY(-3px)}.button-primary{color:#080811;background:var(--lime)}.button-ghost{color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-color:#ffffff6b}.button-ghost:hover{color:#080811;background:#fff}.scroll-label{z-index:6;color:#ffffffb8;letter-spacing:.2em;transform-origin:100% 100%;align-items:center;gap:.9rem;font-size:.58rem;font-weight:800;display:flex;position:absolute;bottom:4vh;right:3.6vw;transform:rotate(90deg)translate(-100%)}.scroll-line{background:#ffffff4d;width:65px;height:1px;overflow:hidden}.scroll-line:after{content:"";background:var(--lime);width:34px;height:100%;animation:1.8s ease-in-out infinite scroll-line;display:block}.confetti{z-index:3;pointer-events:none;position:absolute;inset:0;overflow:hidden}.confetti i{top:-8%;left:var(--x);background:var(--piece);width:7px;height:18px;transform:rotate(var(--rotate));animation:confetti-fall var(--duration) linear var(--delay) infinite;position:absolute}.confetti-compact i:nth-child(3n){display:none}.ticker{z-index:7;color:#080811;background:var(--lime);padding:1rem 0;position:relative;overflow:hidden;transform:rotate(-1deg)scale(1.015)}.ticker-track{width:max-content;animation:28s linear infinite ticker;display:flex}.ticker span{letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;padding:0 1.15rem;font-size:.82rem;font-weight:900}.ticker i{color:var(--pink);margin-left:2rem;font-style:normal}.section{padding:clamp(6rem,10vw,10rem) 6vw}.section-kicker{color:var(--pink)}.section-kicker:before{content:"";background:currentColor;width:42px;height:2px}.section-kicker.light{color:var(--lime)}.sound-grid{grid-template-columns:1.15fr .85fr;align-items:end;gap:7vw;margin-top:3.2rem;display:grid}.sound h2,.about h2,.shows h2,.music h2,.book h2,.energy-content h2{letter-spacing:-.025em;text-transform:uppercase;margin:0;font-family:Impact,Haettenschweiler,Arial Narrow Bold,sans-serif;font-size:clamp(4rem,8.5vw,8.2rem);line-height:.86}.sound h2 span,.about h2 span,.shows h2 span{color:var(--pink)}.lead{margin:0;font-size:clamp(1.15rem,1.8vw,1.55rem);line-height:1.5}.genre-cloud{flex-wrap:wrap;gap:.55rem;margin-top:2.2rem;display:flex}.genre-cloud span{letter-spacing:.1em;text-transform:uppercase;border:1px solid #0707102e;border-radius:999px;padding:.62rem .85rem;font-size:.67rem;font-weight:850;transition:color .2s,background .2s,transform .2s}.genre-cloud span:hover{color:#fff;background:var(--pink);border-color:var(--pink);transform:translateY(-3px)rotate(-1deg)}.energy-banner{color:#fff;background:#090914;align-items:center;min-height:90svh;display:flex;position:relative;overflow:hidden}.energy-photo,.energy-shade{position:absolute;inset:0}.energy-photo{background:url("../../images/rivani-middle.png") 50%/cover no-repeat fixed;transition:transform .8s}.energy-banner:hover .energy-photo{transform:scale(1.025)}.energy-shade{background:linear-gradient(90deg,#03040ee0,#03040e94 45%,#03040e0d),linear-gradient(#0000 50%,#03040eb8)}.energy-content{z-index:5;max-width:850px;padding:8rem 6vw;position:relative}.energy-content p{color:var(--lime);letter-spacing:.18em;text-transform:uppercase;margin:0 0 1rem;font-weight:850}.energy-content h2 span{color:var(--lime)}.energy-content a{border-bottom:2px solid var(--pink);letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:.6rem;margin-top:2rem;padding-bottom:.45rem;font-size:.75rem;font-weight:850;display:inline-flex}.rotating-stamp{z-index:5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#04040e47;border:1px solid #ffffff40;border-radius:50%;place-items:center;width:180px;height:180px;display:grid;position:absolute;bottom:7vh;right:5vw}.rotating-stamp span{letter-spacing:.13em;text-align:center;border-radius:50%;font-size:.55rem;font-weight:900;animation:12s linear infinite spin;position:absolute;inset:16px}.rotating-stamp strong{color:var(--pink);font-family:Impact,sans-serif;font-size:4.6rem}.about{background:#efede7}.about-grid{grid-template-columns:minmax(300px,.8fr) 1.2fr;align-items:start;gap:clamp(3rem,8vw,9rem);margin-top:3.2rem;display:grid}.portrait-wrap{position:sticky;top:100px}.portrait-frame{box-shadow:22px 22px 0 var(--pink);background:#090912;position:relative;overflow:hidden}.portrait-frame:after{content:"";border:1px solid #ffffff3d;position:absolute;inset:0;box-shadow:inset 0 0 80px #00000026}.portrait-frame>img{aspect-ratio:2/3;object-fit:cover;width:100%;transition:transform .65s cubic-bezier(.2,.8,.2,1)}.portrait-frame:hover>img{transform:scale(1.035)}.experience-chip{z-index:6;color:#080811;background:var(--lime);text-align:center;border-radius:50%;align-content:center;place-items:center;width:150px;height:150px;display:grid;position:absolute;bottom:3rem;right:-2rem;transform:rotate(7deg)}.experience-chip strong{font-family:Impact,sans-serif;font-size:3.6rem;line-height:.9}.experience-chip span{letter-spacing:.1em;text-transform:uppercase;margin-top:.4rem;font-size:.58rem;font-weight:900;line-height:1.35}.about-copy .intro{color:var(--pink);letter-spacing:.13em;text-transform:uppercase;margin:0 0 1rem;font-size:.72rem;font-weight:900}.about-copy h2{margin-bottom:2.5rem;font-size:clamp(3.8rem,6.7vw,7rem)}.about-copy>p:not(.intro){color:#38353d;max-width:740px;margin:0 0 1.35rem;font-size:clamp(1rem,1.2vw,1.14rem);line-height:1.82}.signature{color:var(--pink);margin-top:2.5rem;font-family:Segoe Script,Brush Script MT,cursive;font-size:2rem;transform:rotate(-3deg)}.music{color:#fff;background:radial-gradient(circle at 5% 10%,#753bff57,#0000 30%),radial-gradient(circle at 90% 80%,#f4078c3d,#0000 32%),#070710;position:relative;overflow:hidden}.music:after{content:"RIVANI";color:#0000;-webkit-text-stroke:1px #ffffff0d;pointer-events:none;font-family:Impact,sans-serif;font-size:clamp(8rem,23vw,24rem);line-height:1;position:absolute;top:1rem;right:-2vw}.music-heading,.music-grid{z-index:2;position:relative}.music-heading{grid-template-columns:1fr 1fr;align-items:end;gap:2rem 5vw;display:grid}.music-heading .section-kicker{grid-column:1/-1}.music h2{font-size:clamp(4.3rem,8.6vw,8.7rem)}.music h2 span{color:var(--lime)}.music-heading>p{color:#ffffffb3;max-width:560px;margin:0;font-size:1.1rem;line-height:1.75}.music-grid{grid-template-columns:1.05fr .95fr;gap:1.2rem;margin-top:4rem;display:grid}.spotify-card,.next-release{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffff0e;border:1px solid #ffffff1f;min-height:500px;padding:clamp(1.2rem,3vw,2rem)}.spotify-topline,.coming-label{color:#ffffffa8;letter-spacing:.14em;text-transform:uppercase;justify-content:space-between;align-items:center;margin-bottom:1.2rem;font-size:.65rem;font-weight:850;display:flex}.spotify-topline span:first-child{color:#1ed760;align-items:center;gap:.55rem;display:flex}.spotify-card iframe{border-radius:12px;display:block}.spotify-link{color:#1ed760;letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:.55rem;margin-top:1.4rem;font-size:.72rem;font-weight:850;display:inline-flex}.next-release{background:linear-gradient(145deg, var(--pink), #7c22ff 58%, #153eff);flex-direction:column;justify-content:space-between;display:flex;position:relative;overflow:hidden}.coming-label{z-index:2;color:#080811;background:var(--lime);width:max-content;padding:.55rem .75rem;position:relative}.release-title{z-index:2;position:relative}.release-title small{letter-spacing:.24em;margin-bottom:.6rem;font-size:.68rem;font-weight:900;display:block}.release-title strong{font-family:Impact,sans-serif;font-size:clamp(4.8rem,8.7vw,8.5rem);font-weight:900;line-height:.77;display:block}.release-title strong span{color:var(--lime)}.next-release p{z-index:2;color:#ffffffd1;max-width:410px;margin:2rem 0 0;line-height:1.65;position:relative}.release-orbit{border:1px solid #ffffff38;border-radius:50%;animation:14s linear infinite spin;position:absolute}.orbit-one{width:400px;height:400px;top:-100px;right:-170px}.orbit-two{width:250px;height:250px;animation-direction:reverse;top:-10px;right:-60px}.shows-heading{justify-content:space-between;align-items:end;gap:2rem;display:flex}.shows h2{margin-top:1.8rem}.format-list{border-top:1px solid #0707102e;margin-top:4rem}.format{border-bottom:1px solid #0707102e;grid-template-columns:70px minmax(220px,.8fr) 1.2fr 40px;align-items:center;gap:2rem;padding:2.2rem 1rem;transition:color .28s,background .28s,padding .28s;display:grid;position:relative}.format:hover{color:#fff;background:var(--pink);padding-left:2rem;padding-right:2rem}.format-number{color:var(--pink);letter-spacing:.12em;font-size:.72rem;font-weight:900}.format:hover .format-number{color:var(--lime)}.format h3{text-transform:uppercase;margin:0;font-size:clamp(1.35rem,2vw,2rem)}.format p{color:#5f5b65;max-width:670px;margin:0;line-height:1.65}.format:hover p{color:#ffffffd1}.format-arrow{transition:transform .25s}.format:hover .format-arrow{transform:translate(5px,-5px)}.book{color:#fff;background:radial-gradient(circle at 72% 35%,#f4078c61,#0000 28%),radial-gradient(circle at 22% 75%,#00a8ff47,#0000 32%),#080811;align-items:center;min-height:78svh;display:flex;position:relative;overflow:hidden}.book-grid{opacity:.12;background-image:linear-gradient(#ffffff38 1px,#0000 1px),linear-gradient(90deg,#ffffff38 1px,#0000 1px);background-size:65px 65px;position:absolute;inset:0;transform:perspective(500px)rotateX(58deg)scale(1.7)translateY(18%)}.book-inner{z-index:5;width:100%;padding:8rem 6vw;position:relative}.book h2{margin-top:2rem;font-size:clamp(5rem,11.5vw,12rem)}.book h2 span{color:#0000;-webkit-text-stroke:2px #fff}.book-inner>p{color:#ffffffad;max-width:640px;margin:2rem 0;font-size:1.1rem;line-height:1.7}.button-light{color:#080811;background:#fff}.availability{color:#ffffffb8;letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:.55rem;font-size:.68rem;font-weight:850;display:inline-flex}.availability i{background:var(--lime);border-radius:50%;width:8px;height:8px;animation:1.8s infinite pulse;box-shadow:0 0 0 6px #c7ff311f}footer{color:#fff;background:#05050c;grid-template-columns:1fr auto;align-items:center;gap:1.2rem 3rem;padding:3.5rem 6vw;display:grid}.footer-logo{width:190px}footer>p{color:#ffffff73;letter-spacing:.08em;justify-self:end;margin:0;font-size:.72rem}.footer-links{letter-spacing:.12em;text-transform:uppercase;flex-wrap:wrap;gap:1.5rem;font-size:.66rem;font-weight:850;display:flex}.footer-links a:hover{color:var(--lime)}.copyright{grid-column:2}[data-reveal]{opacity:0;transition:opacity .8s,transform .8s cubic-bezier(.2,.8,.2,1);transform:translateY(36px)}[data-reveal].is-visible{opacity:1;transform:translateY(0)}@keyframes hero-zoom{0%{transform:scale(1.08)}to{transform:scale(1)}}@keyframes title-up{to{transform:translateY(0)}}@keyframes pulse{50%{transform:scale(.72);box-shadow:0 0 0 10px #0000}}@keyframes scroll-line{0%{transform:translate(-40px)}to{transform:translate(90px)}}@keyframes ticker{to{transform:translate(-50%)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes confetti-fall{0%{transform:translate3d(0,-15vh,0) rotate(var(--rotate));opacity:0}8%{opacity:.9}50%{transform:translate3d(22px,55vh,0) rotate(calc(var(--rotate) + 360deg))}to{transform:translate3d(-18px,112vh,0) rotate(calc(var(--rotate) + 720deg));opacity:.2}}@media (max-width:1000px){nav>a:not(.nav-book){display:none}.hero-content{padding-top:19vh}.hero-image{background-position:63%}.hero-vignette{background:linear-gradient(90deg,#02030ce0,#03040f7a 58%,#03040f26),linear-gradient(#0000 38%,#04040ee0)}.hero-bottom,.sound-grid,.music-heading,.music-grid{grid-template-columns:1fr}.hero-bottom{flex-direction:column;align-items:flex-start}.sound-grid,.music-heading{display:grid}.about-grid{gap:4rem}.experience-chip{right:-1rem}.format{grid-template-columns:50px 1fr 36px}.format p{grid-column:2/3}.format-arrow{grid-area:1/3/3}}@media (max-width:720px){.cursor-glow{display:none}.site-header{min-height:70px;padding:0 1rem}.logo-link{width:130px}.nav-book{padding:.72rem .8rem;font-size:.58rem}.hero-content{justify-content:flex-end;padding:18vh 1.25rem 8vh}.hero-image{background-position:66%}.hero-title{font-size:clamp(4.1rem,20vw,7rem)}.line-two em{-webkit-text-stroke-width:1px}.hero-eyebrow{flex-wrap:wrap;max-width:290px;margin-bottom:1.25rem}.eyebrow-location{width:100%;margin:.25rem 0 0 1.28rem}.hero-bottom{gap:1.25rem;margin-top:1.6rem}.hero-actions,.book-actions{flex-direction:column;align-items:stretch;width:100%}.hero-actions .button,.book-actions .button{width:100%}.scroll-label{display:none}.section{padding:5.5rem 1.25rem}.sound-grid{gap:2rem;margin-top:2rem}.sound h2,.about h2,.shows h2,.music h2,.book h2,.energy-content h2{font-size:clamp(3.3rem,16vw,5rem)}.energy-banner{min-height:74svh}.energy-photo{background-position:60%;background-attachment:scroll}.energy-content{padding:6rem 1.25rem}.rotating-stamp{opacity:.7;width:130px;height:130px;bottom:30px;right:-30px}.about-grid{grid-template-columns:1fr;margin-top:2rem}.portrait-wrap{width:calc(100% - 16px);position:relative;top:auto}.portrait-frame{box-shadow:14px 14px 0 var(--pink)}.experience-chip{width:120px;height:120px;bottom:2rem;right:-10px}.experience-chip strong{font-size:2.9rem}.music-heading,.music-grid{grid-template-columns:1fr}.spotify-card,.next-release{min-height:auto;padding:1rem}.next-release{min-height:470px}.release-title strong{font-size:clamp(4.8rem,23vw,7rem)}.shows-heading{display:block}.format-list{margin-top:2.5rem}.format{grid-template-columns:34px 1fr 24px;gap:1rem;padding:1.6rem .2rem}.format:hover{padding-left:.8rem;padding-right:.8rem}.format p{font-size:.9rem}.book-inner{padding:7rem 1.25rem}.book h2 span{-webkit-text-stroke-width:1px}footer{grid-template-columns:1fr;padding:3rem 1.25rem}footer>p,.copyright{grid-column:1;justify-self:start}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}[data-reveal]{opacity:1;transform:none}}

/* Hosting-safe visual refinements and playful details. */
.scroll-progress {
  z-index: 10000;
  height: 6px;
  background: linear-gradient(90deg, #f4078c, #ff5a1f, #ffe600, #c7ff31, #00a8ff, #753bff, #f4078c);
  background-size: 200% 100%;
  box-shadow: 0 0 12px rgba(244, 7, 140, .65);
  will-change: transform;
  transform: translateZ(0) scaleX(0);
  animation: rainbow-flow 3s linear infinite;
}

.energy-photo {
  background-image: url("../../images/rivani-middle.png");
  background-attachment: scroll;
  transform: translateZ(0) scale(1.01);
  will-change: transform;
}

.hero-image { background-image: url("../../images/rivani-header.png"); }

.sound, .shows { position: relative; overflow: hidden; }
.sound::after, .shows::before {
  content: "✦";
  position: absolute;
  z-index: 0;
  color: var(--pink);
  font-size: clamp(5rem, 14vw, 12rem);
  opacity: .09;
  animation: playful-float 5s ease-in-out infinite;
  pointer-events: none;
}
.sound::after { right: 2vw; top: 1rem; transform: rotate(14deg); }
.shows::before { left: 1vw; bottom: 1rem; color: var(--violet); animation-delay: -2s; }
.sound-grid, .shows-heading, .format-list { position: relative; z-index: 1; }

.section-kicker::after {
  content: "";
  width: 8px;
  height: 8px;
  background: var(--lime);
  border-radius: 50%;
  box-shadow: 12px 0 0 var(--blue), 24px 0 0 var(--orange);
}

.genre-cloud span:nth-child(odd) { transform: rotate(-1.5deg); }
.genre-cloud span:nth-child(even) { transform: rotate(1.5deg); }
.genre-cloud span:hover { transform: translateY(-4px) rotate(-3deg) scale(1.06); }

.spotify-card, .next-release, .format, .portrait-frame { isolation: isolate; }
.spotify-card::before, .next-release::before {
  content: "";
  position: absolute;
  inset: -2px;
  z-index: -1;
  border: 2px solid transparent;
  background: linear-gradient(115deg, var(--pink), var(--orange), var(--lime), var(--blue)) border-box;
  -webkit-mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
}
.spotify-card { position: relative; transform: rotate(-.35deg); }
.next-release { transform: rotate(.5deg); }

.button, .nav-book { box-shadow: 5px 5px 0 rgba(117, 59, 255, .75); }
.button:hover, .nav-book:hover { box-shadow: 2px 2px 0 var(--pink); }

@keyframes rainbow-flow { to { background-position: -200% 0; } }
@keyframes playful-float { 50% { translate: 0 -14px; rotate: 8deg; } }

@media (max-width: 720px) {
  .scroll-progress { height: 7px; }
  .energy-photo { background-position: 58% center; transform: translateZ(0) scale(1.03); }
  .sound::after, .shows::before { opacity: .07; }
  .spotify-card, .next-release { transform: none; }
  .section-kicker::after { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .scroll-progress, .sound::after, .shows::before { animation: none; }
}

/* ── Modern Miami Vice art direction ───────────────────────────── */
:root {
  --vice-night: #07031c;
  --vice-deep: #12052f;
  --vice-cyan: #18e4ff;
  --vice-yellow: #fff04a;
  --vice-shadow: #22104e;
}

body {
  background:
    radial-gradient(circle at 10% 20%, rgba(244, 7, 140, .08), transparent 25rem),
    var(--paper);
}

/* Fine print texture: gives the page a designed poster finish. */
main::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 9998;
  pointer-events: none;
  opacity: .12;
  background-image: repeating-linear-gradient(
    0deg,
    rgba(255, 255, 255, .16) 0,
    rgba(255, 255, 255, .16) 1px,
    transparent 1px,
    transparent 4px
  );
  mix-blend-mode: overlay;
}

.site-header {
  border-bottom: 2px solid rgba(24, 228, 255, .42);
  box-shadow: 0 8px 30px rgba(7, 3, 28, .15);
}

.site-header.is-scrolled {
  background: linear-gradient(90deg, rgba(7, 3, 28, .94), rgba(36, 4, 63, .9));
  border-bottom-color: var(--pink);
  box-shadow: 0 8px 30px rgba(244, 7, 140, .18);
}

.logo-link img,
.footer-logo img {
  filter: drop-shadow(0 0 9px rgba(24, 228, 255, .35));
}

.hero {
  isolation: isolate;
  border-bottom: 6px solid var(--pink);
}

.hero::before {
  content: "";
  position: absolute;
  z-index: 2;
  top: 12vh;
  right: 5vw;
  width: clamp(230px, 34vw, 520px);
  aspect-ratio: 1;
  border-radius: 50%;
  opacity: .78;
  background:
    repeating-linear-gradient(
      0deg,
      transparent 0 8%,
      rgba(7, 3, 28, .72) 8.5% 11%
    ),
    linear-gradient(180deg, var(--vice-yellow), #ff8a29 48%, var(--pink));
  box-shadow:
    0 0 45px rgba(255, 240, 74, .35),
    0 0 100px rgba(244, 7, 140, .28);
  transform: translateY(3%) rotate(-4deg);
  animation: vice-sun 7s ease-in-out infinite;
}

.hero::after {
  content: "";
  position: absolute;
  z-index: 3;
  left: -15%;
  right: -15%;
  bottom: -24%;
  height: 54%;
  opacity: .38;
  background-image:
    linear-gradient(rgba(24, 228, 255, .68) 2px, transparent 2px),
    linear-gradient(90deg, rgba(244, 7, 140, .8) 2px, transparent 2px);
  background-size: 54px 32px, 54px 32px;
  transform: perspective(360px) rotateX(62deg);
  transform-origin: center top;
  -webkit-mask-image: linear-gradient(transparent, #000 35%);
  mask-image: linear-gradient(transparent, #000 35%);
}

.hero-image {
  z-index: 1;
  filter: saturate(1.16) contrast(1.05);
}

.hero-vignette {
  z-index: 4;
  background:
    linear-gradient(90deg, rgba(3, 2, 20, .97), rgba(7, 3, 28, .72) 42%, rgba(7, 3, 28, .12) 75%),
    linear-gradient(0deg, rgba(7, 3, 28, .92), transparent 48%),
    linear-gradient(180deg, rgba(7, 3, 28, .38), transparent 30%);
}

.hero-grid { z-index: 4; }
.hero-content { z-index: 7; }
.hero .confetti { z-index: 6; }

.hero-eyebrow {
  width: max-content;
  color: var(--vice-night);
  background: var(--vice-yellow);
  border: 2px solid var(--vice-night);
  padding: .72rem .9rem;
  box-shadow: 6px 6px 0 var(--pink);
  transform: rotate(-1deg);
}

.hero-eyebrow .eyebrow-location { color: rgba(7, 3, 28, .7); }
.hero-eyebrow .live-dot { background: var(--pink); box-shadow: 0 0 0 6px rgba(244, 7, 140, .18); }

.hero-title {
  position: relative;
  text-shadow:
    4px 4px 0 var(--vice-shadow),
    8px 8px 0 rgba(244, 7, 140, .7),
    0 0 30px rgba(24, 228, 255, .12);
}

.hero-title::after {
  content: "SPAIN";
  position: absolute;
  right: 5%;
  bottom: -1.55rem;
  color: var(--vice-night);
  background: var(--vice-cyan);
  padding: .45rem .75rem;
  font-family: Inter, sans-serif;
  font-size: clamp(.55rem, .8vw, .72rem);
  letter-spacing: .2em;
  line-height: 1;
  text-shadow: none;
  transform: rotate(-2deg);
  box-shadow: 4px 4px 0 var(--pink);
}

.line-two em {
  color: transparent;
  -webkit-text-stroke: 2px var(--vice-cyan);
  filter: drop-shadow(3px 3px 0 var(--pink));
}

.ticker {
  border-block: 3px solid var(--vice-night);
  box-shadow: 0 10px 0 var(--pink);
}

.section {
  position: relative;
}

.section-kicker {
  width: max-content;
  max-width: 100%;
  border: 1px solid currentColor;
  padding: .55rem .75rem;
  box-shadow: 4px 4px 0 currentColor;
}

.sound {
  background:
    radial-gradient(circle at 90% 25%, rgba(24, 228, 255, .18), transparent 20rem),
    linear-gradient(135deg, #fff 0 52%, #f1ede7 52%);
  border-bottom: 1px solid rgba(7, 3, 28, .15);
}

.sound h2,
.about h2,
.shows h2 {
  text-shadow: 3px 3px 0 rgba(24, 228, 255, .35);
}

.genre-cloud span {
  color: var(--vice-night);
  background: #fff;
  border: 2px solid var(--vice-night);
  border-radius: 0;
  box-shadow: 4px 4px 0 var(--vice-cyan);
}

.genre-cloud span:nth-child(3n) { box-shadow: 4px 4px 0 var(--orange); }
.genre-cloud span:nth-child(3n + 2) { box-shadow: 4px 4px 0 var(--pink); }

.energy-banner {
  min-height: 95svh;
  isolation: isolate;
  border-block: 8px solid var(--vice-night);
  outline: 3px solid var(--vice-cyan);
  outline-offset: -14px;
}

.energy-banner::before {
  content: "LIVE ENERGY";
  position: absolute;
  z-index: 7;
  top: 2rem;
  right: -2.4rem;
  color: var(--vice-night);
  background: var(--vice-yellow);
  border: 2px solid var(--vice-night);
  padding: .65rem 3.2rem;
  font-size: .62rem;
  font-weight: 950;
  letter-spacing: .18em;
  transform: rotate(10deg);
  box-shadow: 5px 5px 0 var(--pink);
}

.energy-photo {
  filter: saturate(1.3) contrast(1.08);
}

.energy-shade {
  background:
    linear-gradient(90deg, rgba(7, 3, 28, .95), rgba(7, 3, 28, .62) 47%, rgba(7, 3, 28, .06)),
    linear-gradient(0deg, rgba(244, 7, 140, .38), transparent 45%);
}

.energy-content h2 {
  text-shadow:
    4px 4px 0 var(--pink),
    8px 8px 0 rgba(24, 228, 255, .45);
}

.energy-content h2 span {
  color: var(--vice-yellow);
}

.rotating-stamp {
  border: 3px solid var(--vice-cyan);
  box-shadow:
    0 0 0 8px rgba(244, 7, 140, .65),
    0 0 35px rgba(24, 228, 255, .45);
}

.about {
  background:
    linear-gradient(rgba(117, 59, 255, .07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(117, 59, 255, .07) 1px, transparent 1px),
    #efede7;
  background-size: 42px 42px;
}

.portrait-frame {
  border: 4px solid var(--vice-night);
  box-shadow:
    16px 16px 0 var(--pink),
    26px 26px 0 var(--vice-cyan);
  transform: rotate(-1deg);
}

.experience-chip {
  border: 3px solid var(--vice-night);
  box-shadow: 7px 7px 0 var(--pink);
}

.music {
  background:
    radial-gradient(circle at 15% 14%, rgba(244, 7, 140, .46), transparent 30%),
    radial-gradient(circle at 84% 78%, rgba(24, 228, 255, .26), transparent 30%),
    linear-gradient(145deg, var(--vice-night), #180633 60%, #080316);
  border-block: 7px solid var(--pink);
}

.music::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: .18;
  background-image:
    linear-gradient(rgba(24, 228, 255, .4) 1px, transparent 1px),
    linear-gradient(90deg, rgba(24, 228, 255, .4) 1px, transparent 1px);
  background-size: 48px 48px;
  -webkit-mask-image: linear-gradient(transparent 15%, #000 80%);
  mask-image: linear-gradient(transparent 15%, #000 80%);
}

.music h2 span {
  color: var(--vice-yellow);
  text-shadow: 4px 4px 0 var(--pink);
}

.spotify-card,
.next-release {
  border: 3px solid var(--vice-cyan);
  box-shadow: 10px 10px 0 rgba(244, 7, 140, .75);
}

.next-release {
  background:
    repeating-linear-gradient(0deg, transparent 0 26px, rgba(255,255,255,.08) 27px),
    linear-gradient(145deg, var(--pink), #7c22ff 58%, #153eff);
}

.shows {
  background:
    radial-gradient(circle at 10% 90%, rgba(244, 7, 140, .12), transparent 23rem),
    var(--paper);
}

.format {
  margin-bottom: .65rem;
  border: 2px solid var(--vice-night);
  background: rgba(255, 255, 255, .6);
  box-shadow: 6px 6px 0 var(--vice-cyan);
}

.format:nth-child(2) { box-shadow: 6px 6px 0 var(--pink); }
.format:nth-child(3) { box-shadow: 6px 6px 0 var(--orange); }
.format:hover {
  background: linear-gradient(90deg, var(--pink), #d508c6);
  box-shadow: 10px 10px 0 var(--vice-yellow);
  transform: translate(-3px, -3px) rotate(-.25deg);
}

.book {
  background:
    radial-gradient(circle at 72% 30%, rgba(255, 240, 74, .22), transparent 20rem),
    radial-gradient(circle at 20% 76%, rgba(24, 228, 255, .28), transparent 26rem),
    linear-gradient(145deg, var(--vice-night), #200740);
  border-top: 8px solid var(--vice-cyan);
}

.book::after {
  content: "LET'S GO!";
  position: absolute;
  z-index: 4;
  right: 5vw;
  top: 12%;
  color: var(--vice-night);
  background: var(--vice-yellow);
  border: 3px solid var(--vice-night);
  padding: 1rem 1.2rem;
  font-family: Impact, sans-serif;
  font-size: clamp(1.4rem, 3vw, 3rem);
  letter-spacing: .04em;
  box-shadow: 8px 8px 0 var(--pink);
  transform: rotate(8deg);
}

.book h2 {
  text-shadow: 5px 5px 0 var(--pink);
}

.button,
.nav-book {
  border: 2px solid var(--vice-night);
  box-shadow: 6px 6px 0 var(--pink);
}

.button-primary { background: var(--vice-yellow); }
.button-light { background: var(--vice-cyan); }

footer {
  border-top: 4px solid var(--pink);
  background:
    linear-gradient(90deg, rgba(244, 7, 140, .14), transparent 35%),
    var(--vice-night);
}

@keyframes vice-sun {
  50% { transform: translateY(-2%) rotate(2deg) scale(1.025); }
}

@media (max-width: 720px) {
  main::after { opacity: .08; }

  .hero::before {
    top: 15vh;
    right: -28vw;
    width: 85vw;
    opacity: .54;
  }

  .hero::after {
    bottom: -20%;
    height: 42%;
    background-size: 34px 25px;
  }

  .hero-vignette {
    background:
      linear-gradient(90deg, rgba(7, 3, 28, .78), rgba(7, 3, 28, .18)),
      linear-gradient(0deg, rgba(7, 3, 28, .97) 8%, rgba(7, 3, 28, .28) 64%);
  }

  .hero-eyebrow {
    width: auto;
    max-width: 92%;
    padding: .55rem .7rem;
    box-shadow: 4px 4px 0 var(--pink);
  }

  .hero-title {
    text-shadow: 3px 3px 0 var(--vice-shadow), 6px 6px 0 rgba(244, 7, 140, .65);
  }

  .hero-title::after {
    right: 0;
    bottom: -1.35rem;
    font-size: .48rem;
  }

  .section-kicker { width: fit-content; }
  .sound { background: linear-gradient(145deg, #fff 0 72%, #eee8e0 72%); }

  .energy-banner {
    outline-offset: -9px;
    outline-width: 2px;
  }

  .energy-banner::before {
    top: 1rem;
    right: -3.4rem;
    padding: .5rem 3.5rem;
  }

  .energy-content h2 {
    text-shadow: 3px 3px 0 var(--pink), 5px 5px 0 rgba(24, 228, 255, .42);
  }

  .portrait-frame {
    box-shadow: 10px 10px 0 var(--pink), 17px 17px 0 var(--vice-cyan);
  }

  .spotify-card,
  .next-release {
    box-shadow: 6px 6px 0 rgba(244, 7, 140, .75);
  }

  .format {
    padding-inline: .7rem;
    box-shadow: 4px 4px 0 var(--vice-cyan);
  }

  .book::after {
    top: 5%;
    right: 1rem;
    padding: .55rem .7rem;
    box-shadow: 5px 5px 0 var(--pink);
  }
}

  
/* RIVANI signature system */
.frequency-band{position:relative;isolation:isolate;min-height:330px;display:grid;place-items:center;overflow:hidden;color:#fff;background:radial-gradient(circle at 50% 110%,#f4078c99,transparent 38%),linear-gradient(135deg,#07031c,#200747);border-block:7px solid #18e4ff}
.frequency-band:before{content:"";position:absolute;inset:0;opacity:.16;background-image:radial-gradient(#c7ff31 1.5px,transparent 1.5px);background-size:18px 18px}
.frequency-copy{z-index:2;text-align:center;padding:4rem 1rem}.frequency-copy span{display:block;color:#c7ff31;letter-spacing:.28em;font-size:.63rem;font-weight:950}.frequency-copy strong{display:block;margin-top:.6rem;font-family:Impact,sans-serif;font-size:clamp(2.4rem,7vw,7rem);letter-spacing:.02em;text-shadow:4px 4px 0 #f4078c}
.wave-graphic{width:100%;height:100%}.frequency-band>.wave-graphic{position:absolute;z-index:1;inset:auto 0 0;height:75%;opacity:.62}.wave-back{fill:none;stroke:#f4078c;stroke-width:18;opacity:.25}.wave-main{fill:none;stroke:url(#rivani-wave);stroke-width:6;filter:url(#wave-glow);stroke-linecap:round;stroke-dasharray:1600;animation:wave-draw 6s linear infinite}
.palm-mark{position:absolute;z-index:2;width:150px;height:190px;bottom:-38px}.palm-left{left:2vw;transform:rotate(-14deg)}.palm-right{right:2vw;transform:scaleX(-1) rotate(-14deg)}.palm-mark:after{content:"";position:absolute;left:72px;bottom:0;width:9px;height:125px;background:#c7ff31;transform:rotate(8deg);box-shadow:0 0 15px #c7ff31}.palm-mark i{position:absolute;left:70px;bottom:112px;width:76px;height:20px;border-radius:100% 0;background:#18e4ff;transform-origin:left center;box-shadow:0 0 12px #18e4ff}.palm-mark i:nth-child(1){transform:rotate(-70deg)}.palm-mark i:nth-child(2){transform:rotate(-35deg)}.palm-mark i:nth-child(3){transform:rotate(4deg)}.palm-mark i:nth-child(4){transform:rotate(42deg)}.palm-mark i:nth-child(5){transform:rotate(78deg)}
.proof-strip{position:relative;overflow:hidden;display:grid;grid-template-columns:repeat(3,1fr);gap:1px;color:#fff;background:#18e4ff;border-block:5px solid #07031c}.proof-strip>div:not(.proof-wave){z-index:2;display:flex;align-items:center;justify-content:center;gap:1rem;min-height:230px;padding:2rem;background:#10052c}.proof-strip>div:nth-child(2){background:#f4078c}.proof-strip>div:nth-child(3){background:#753bff}.proof-strip strong{font-family:Impact,sans-serif;font-size:clamp(4rem,7vw,7.5rem);line-height:.8;text-shadow:5px 5px 0 #07031c}.proof-strip strong span{color:#c7ff31}.proof-strip p{margin:0;font-size:.65rem;font-weight:900;letter-spacing:.15em;line-height:1.5}.proof-wave{position:absolute;inset:0;opacity:.12}.proof-wave svg{height:100%}
.music-intro>p{color:#ffffffb3;max-width:560px;margin:0 0 1.5rem;line-height:1.7}.platform-links{display:flex;flex-wrap:wrap;gap:.8rem}.platform-button{display:flex;align-items:center;gap:.8rem;min-width:230px;padding:.85rem 1rem;border:2px solid #07031c;color:#07031c;font-weight:950;box-shadow:6px 6px 0 #f4078c}.platform-button small{display:block;font-size:.5rem;letter-spacing:.15em;opacity:.65}.platform-button b{margin-left:auto}.spotify-artist{background:#c7ff31}.soundcloud-soon{background:#ff712b;opacity:.85;cursor:not-allowed}.platform-icon,.soundcloud-cloud{font-size:1.6rem}
.release-shell{position:relative;z-index:3;margin-top:4rem}.release-topline{display:flex;justify-content:space-between;color:#c7ff31;font-size:.6rem;font-weight:900;letter-spacing:.18em;margin-bottom:1rem}.release-carousel{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(420px,calc(50% - .6rem));gap:1.2rem;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:5px 8px 16px 2px}.release-carousel::-webkit-scrollbar{display:none}.release-card{position:relative;scroll-snap-align:start;display:grid;grid-template-columns:1.05fr .95fr;min-height:480px;color:#fff;border:3px solid #18e4ff;box-shadow:10px 10px 0 #f4078c;overflow:hidden}.release-pink{background:linear-gradient(145deg,#f4078c,#753bff)}.release-blue{background:linear-gradient(145deg,#00a8ff,#16043c)}.release-art{position:relative;overflow:hidden;background:linear-gradient(135deg,#07031c55,transparent)}.release-art:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 6px,#ffffff0c 7px)}.release-art .wave-graphic{position:absolute;inset:15% -20%;width:140%;height:70%;transform:rotate(-10deg)}.release-index{position:absolute;z-index:2;top:1rem;left:1rem;color:#c7ff31;font-family:Impact,sans-serif;font-size:7rem;line-height:1;text-shadow:5px 5px 0 #07031c}.mini-palm{position:absolute;right:1.5rem;bottom:1.5rem;color:#c7ff31;font-size:5rem;animation:spin 10s linear infinite}.release-info{display:flex;flex-direction:column;justify-content:center;padding:2rem;background:#07031cbd}.release-info small{color:#c7ff31;letter-spacing:.2em;font-weight:900}.release-info h3{font-family:Impact,sans-serif;font-size:clamp(3rem,5vw,5.2rem);line-height:.84;margin:1rem 0;text-shadow:3px 3px 0 #f4078c}.release-info p{color:#ffffffaa;line-height:1.6}.release-card>a{position:absolute;right:1.5rem;bottom:1.25rem;border-bottom:2px solid #c7ff31;font-size:.65rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.carousel-controls{display:flex;align-items:center;gap:1rem;margin-top:1.5rem}.carousel-button{width:52px;height:52px;color:#fff;background:#ffffff0d;border:2px solid #18e4ff;font-size:1.2rem;cursor:pointer;box-shadow:4px 4px 0 #f4078c}.carousel-button:hover{color:#07031c;background:#c7ff31}.carousel-line{flex:1;height:3px;background:#ffffff20;overflow:hidden}.carousel-line i{display:block;width:50%;height:100%;background:linear-gradient(90deg,#f4078c,#c7ff31,#18e4ff);transition:transform .35s}
.book-inner{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(3rem,8vw,9rem);align-items:center}.booking-copy{min-width:0}.booking-copy h2{font-size:clamp(4.8rem,8.5vw,9rem)}.booking-assurance{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:.3rem .7rem;margin-top:2rem}.booking-assurance i{grid-row:1/3;width:11px;height:11px;border-radius:50%;background:#c7ff31;box-shadow:0 0 0 7px #c7ff3124}.booking-assurance span{font-size:.65rem;font-weight:900;letter-spacing:.15em}.booking-assurance b{color:#ffffff99;font-size:.7rem;font-weight:500}.booking-form{position:relative;z-index:5;display:grid;gap:1rem;padding:clamp(1.3rem,3vw,2.5rem);color:#07031c;background:#f5f3ef;border:4px solid #07031c;box-shadow:14px 14px 0 #f4078c,22px 22px 0 #18e4ff;transform:rotate(.5deg)}.form-heading span{display:block;color:#f4078c;font-size:.6rem;font-weight:950;letter-spacing:.2em}.form-heading strong{display:block;font-family:Impact,sans-serif;font-size:2.4rem}.booking-form label{display:grid;gap:.4rem}.booking-form label>span{font-size:.6rem;font-weight:950;letter-spacing:.13em;text-transform:uppercase}.booking-form input,.booking-form select,.booking-form textarea{width:100%;border:2px solid #07031c;border-radius:0;background:#fff;padding:.85rem;font:inherit;outline:none}.booking-form input:focus,.booking-form select:focus,.booking-form textarea:focus{border-color:#f4078c;box-shadow:4px 4px 0 #c7ff31}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.booking-submit{width:100%;background:#c7ff31}.form-note{text-align:center;color:#5f5b65}
.smart-cursor{position:fixed;z-index:10001;left:0;top:0;width:70px;height:70px;border-radius:50%;display:grid;place-items:center;color:#07031c;background:#c7ff31;border:2px solid #07031c;box-shadow:5px 5px 0 #f4078c;pointer-events:none;opacity:0;transform:translate(-50%,-50%) scale(.65);transition:opacity .18s,transform .18s}.smart-cursor.is-active{opacity:1;transform:translate(-50%,-50%) scale(1)}.smart-cursor span{font-size:.56rem;font-weight:950;letter-spacing:.12em}.neon-flash{position:fixed;z-index:9997;inset:0;pointer-events:none;opacity:0;background:linear-gradient(115deg,#f4078c55,#18e4ff33,#c7ff3129);mix-blend-mode:screen}.neon-flash.fire{animation:neon-wipe .65s ease-out}.genre-cloud span{position:relative;overflow:hidden;padding-left:1.7rem}.genre-cloud span:before{content:"";position:absolute;left:.55rem;bottom:.55rem;width:3px;height:13px;background:#f4078c;box-shadow:5px 5px 0 #18e4ff,10px -2px 0 #c7ff31;transform-origin:bottom;animation:equalizer .7s steps(3) infinite;animation-play-state:paused}.genre-cloud span:hover:before{animation-play-state:running}.portrait-frame:hover>img,.energy-banner:hover .energy-photo{animation:colour-glitch .55s steps(2)}
@keyframes wave-draw{0%{stroke-dashoffset:1600}to{stroke-dashoffset:-1600}}@keyframes neon-wipe{0%{opacity:0;transform:translateX(-100%)}35%{opacity:.75}to{opacity:0;transform:translateX(100%)}}@keyframes equalizer{50%{transform:scaleY(.35)}}@keyframes colour-glitch{0%,100%{filter:none;transform:translate(0)}25%{filter:hue-rotate(65deg) saturate(2);transform:translate(5px,-2px)}50%{filter:hue-rotate(-55deg) contrast(1.3);transform:translate(-4px,2px)}} 
@media (max-width:900px){.release-carousel{grid-auto-columns:82vw}.release-card{grid-template-columns:1fr;grid-template-rows:220px 1fr}.book-inner{grid-template-columns:1fr}.proof-strip{grid-template-columns:1fr}.proof-strip>div:not(.proof-wave){min-height:150px}.palm-mark{opacity:.55}}
@media (max-width:720px){.frequency-band{min-height:270px}.frequency-copy strong{font-size:2.8rem}.palm-mark{width:100px;transform:scale(.75)}.release-topline span:last-child{display:none}.release-carousel{grid-auto-columns:90vw}.release-card{min-height:540px}.release-index{font-size:5rem}.release-info h3{font-size:3.8rem}.platform-button{width:100%}.proof-strip>div:not(.proof-wave){justify-content:flex-start;padding-left:2rem}.book-inner{display:grid}.booking-form{transform:none;box-shadow:8px 8px 0 #f4078c,14px 14px 0 #18e4ff}.form-row{grid-template-columns:1fr}.smart-cursor{display:none}}
@media (pointer:coarse){.smart-cursor{display:none}}


/* Your Night / Turned Up — festival stage system */
.shows{isolation:isolate;min-height:1200px;padding-top:clamp(7rem,12vw,12rem);padding-bottom:9rem;color:#fff;background:radial-gradient(circle at 50% 38%,#f4078c30,transparent 34%),radial-gradient(circle at 10% 80%,#18e4ff28,transparent 28%),linear-gradient(155deg,#07031c 0%,#13042c 58%,#060217 100%);border-block:8px solid #f4078c}
.shows:before{content:"";position:absolute;inset:0;opacity:.14;background-image:radial-gradient(#18e4ff 1.4px,transparent 1.4px);background-size:22px 22px;mask-image:linear-gradient(transparent,#000 28%,#000 75%,transparent)}
.shows:after{content:"LIVE / LOUD / COLOURFUL";position:absolute;top:5rem;right:-6rem;color:#07031c;background:#c7ff31;border:3px solid #07031c;padding:.8rem 7rem;font-size:.62rem;font-weight:950;letter-spacing:.22em;box-shadow:7px 7px 0 #f4078c;transform:rotate(9deg)}
.stage-world{position:absolute;z-index:0;inset:0;overflow:hidden;pointer-events:none}.stage-graphic{position:absolute;top:5%;left:50%;width:max(1200px,110vw);height:760px;transform:translateX(-50%);opacity:.62}.stage-halo{fill:none;stroke:url(#stage-spectrum);stroke-width:4;filter:url(#stage-glow);transform-origin:center;animation:stage-ring 8s ease-in-out infinite}.halo-two{stroke-dasharray:14 18;animation-delay:-2.5s;animation-direction:reverse}.halo-three{stroke:#c7ff31;stroke-width:8;stroke-dasharray:5 24;animation-delay:-5s}.stage-pulse{fill:none;stroke:url(#stage-spectrum);stroke-width:8;stroke-linecap:round;stroke-linejoin:round;filter:url(#stage-glow);stroke-dasharray:2100;animation:stage-pulse 6s linear infinite}.laser path{opacity:.14;filter:url(#stage-glow)}.laser-a path{fill:#f4078c}.laser-b path{fill:#18e4ff}.laser-c path{fill:#c7ff31}.laser{transform-origin:600px 560px;animation:laser-sweep 5s ease-in-out infinite alternate}.laser-b{animation-delay:-2s;animation-duration:6s}.laser-c{animation-delay:-3.5s;animation-duration:4s}.stage-eq rect{fill:url(#stage-spectrum);opacity:.62;transform-origin:center bottom;animation:stage-eq .8s steps(4) infinite}.stage-eq rect:nth-child(2n){animation-delay:-.35s}.stage-eq rect:nth-child(3n){animation-delay:-.6s}.speaker circle{fill:#07031ccc;stroke:#18e4ff;stroke-width:5;filter:url(#stage-glow)}.speaker circle:nth-child(2){stroke:#f4078c;stroke-width:9}.speaker circle:nth-child(3){fill:#c7ff31;stroke:#07031c}.speaker{animation:speaker-pump 1.1s ease-in-out infinite}.speaker-right{animation-delay:-.55s}.stage-floor path{fill:none;stroke:#753bff;stroke-width:3;opacity:.58}.stage-light{position:absolute;top:0;width:34vw;height:80vh;opacity:.18;filter:blur(8px);transform-origin:top}.light-one{left:12%;background:linear-gradient(165deg,#f4078c,transparent 58%);clip-path:polygon(42% 0,58% 0,100% 100%,0 100%);animation:light-sway 6s ease-in-out infinite alternate}.light-two{right:8%;background:linear-gradient(195deg,#18e4ff,transparent 58%);clip-path:polygon(42% 0,58% 0,100% 100%,0 100%);animation:light-sway 7s ease-in-out -2s infinite alternate-reverse}
.crowd-silhouette{position:absolute;left:-3%;right:-3%;bottom:0;height:190px;opacity:.62;background:radial-gradient(circle at 2% 65%,#03010d 0 21px,transparent 22px),radial-gradient(circle at 7% 52%,#03010d 0 28px,transparent 29px),radial-gradient(circle at 13% 67%,#03010d 0 24px,transparent 25px),radial-gradient(circle at 20% 46%,#03010d 0 30px,transparent 31px),radial-gradient(circle at 28% 63%,#03010d 0 25px,transparent 26px),radial-gradient(circle at 36% 50%,#03010d 0 31px,transparent 32px),radial-gradient(circle at 44% 65%,#03010d 0 24px,transparent 25px),radial-gradient(circle at 52% 45%,#03010d 0 33px,transparent 34px),radial-gradient(circle at 61% 63%,#03010d 0 26px,transparent 27px),radial-gradient(circle at 70% 48%,#03010d 0 31px,transparent 32px),radial-gradient(circle at 79% 66%,#03010d 0 24px,transparent 25px),radial-gradient(circle at 87% 50%,#03010d 0 29px,transparent 30px),radial-gradient(circle at 95% 64%,#03010d 0 27px,transparent 28px),linear-gradient(transparent 55%,#03010d 56%)}
.shows-heading-v2{position:relative;z-index:3;display:grid;grid-template-columns:.72fr 1.28fr;align-items:end;gap:2rem;min-height:440px}.shows-heading-v2 h2{position:relative;margin:0;color:#fff;font-size:clamp(5rem,10.7vw,11rem);line-height:.75;text-align:right;text-shadow:5px 5px 0 #753bff,10px 10px 0 #f4078c,0 0 30px #18e4ff55}.shows-heading-v2 h2 span{color:#18e4ff;text-shadow:4px 4px 0 #07031c,8px 8px 0 #f4078c}.shows-heading-v2 h2:before,.shows-heading-v2 h2:after{content:attr(data-text);position:absolute;inset:0;opacity:0;pointer-events:none;overflow:hidden}.shows-heading-v2:hover h2:before{opacity:.6;color:#c7ff31;clip-path:inset(8% 0 70%);transform:translate(7px,-4px);animation:title-glitch .35s steps(2) infinite}.shows-heading-v2:hover h2:after{opacity:.7;color:#f4078c;clip-path:inset(65% 0 10%);transform:translate(-7px,4px);animation:title-glitch .28s steps(2) infinite reverse}.shows-intro{max-width:390px;margin:2rem 0 0;color:#ffffffb5;font-size:1rem;line-height:1.75}.stage-ticket{position:absolute;z-index:4;right:2%;top:-1rem;display:grid;gap:.2rem;width:150px;height:150px;padding:1rem;align-content:center;color:#07031c;background:#c7ff31;border:3px solid #07031c;box-shadow:8px 8px 0 #f4078c;transform:rotate(7deg);clip-path:polygon(10% 0,90% 0,100% 10%,100% 90%,90% 100%,10% 100%,0 90%,0 10%)}.stage-ticket small,.stage-ticket span{font-size:.47rem;font-weight:950;letter-spacing:.13em}.stage-ticket strong{font-family:Impact,sans-serif;font-size:2.1rem;line-height:.82}
.format-grid{position:relative;z-index:4;display:grid;grid-template-columns:repeat(2,1fr);gap:1.2rem;margin-top:6rem}.format-grid .format{position:relative;display:block;min-height:420px;margin:0;padding:2rem;color:#fff;background:linear-gradient(145deg,#ffffff12,#ffffff05);border:3px solid #18e4ff;box-shadow:10px 10px 0 #f4078c;overflow:hidden;backdrop-filter:blur(12px);transition:transform .28s,box-shadow .28s,background .28s}.format-grid .format:nth-child(2){border-color:#c7ff31;box-shadow:10px 10px 0 #753bff}.format-grid .format:nth-child(3){border-color:#f4078c;box-shadow:10px 10px 0 #18e4ff}.format-grid .format:nth-child(4){border-color:#ff5a1f;box-shadow:10px 10px 0 #c7ff31}.format-grid .format:before{content:"";position:absolute;inset:-30%;background:conic-gradient(from 180deg,transparent,#f4078c33,transparent,#18e4ff3d,transparent);animation:card-orbit 8s linear infinite}.format-grid .format:after{content:"";position:absolute;inset:0;background:linear-gradient(112deg,transparent 35%,#ffffff2b 48%,transparent 61%);transform:translateX(-120%);transition:transform .6s}.format-grid .format:hover{color:#fff;background:#0c0329e8;transform:translate(-6px,-8px) rotate(-.6deg) scale(1.015);box-shadow:16px 18px 0 #c7ff31}.format-grid .format:hover:after{transform:translateX(120%)}.format-grid .format>*{position:relative;z-index:2}.format-grid .format-number{display:block;color:#c7ff31;font-family:Impact,sans-serif;font-size:5.5rem;line-height:.8;text-shadow:4px 4px 0 #f4078c}.format-tag{position:absolute!important;top:1.5rem;right:1.5rem;padding:.45rem .6rem;color:#07031c;background:#18e4ff;font-size:.5rem;font-weight:950;letter-spacing:.14em;transform:rotate(2deg)}.format-grid .format h3{position:relative;margin:3.5rem 0 1.1rem;font-family:Impact,sans-serif;font-size:clamp(2.8rem,5vw,5rem);line-height:.84;letter-spacing:.01em}.format-grid .format h3:before,.format-grid .format h3:after{content:attr(data-text);position:absolute;inset:0;opacity:0}.format-grid .format:hover h3:before{opacity:.8;color:#18e4ff;clip-path:inset(0 0 58%);transform:translate(6px,-3px);animation:card-glitch .25s steps(2) infinite}.format-grid .format:hover h3:after{opacity:.7;color:#f4078c;clip-path:inset(58% 0 0);transform:translate(-5px,3px);animation:card-glitch .3s steps(2) infinite reverse}.format-grid .format p{max-width:460px;margin:0;color:#ffffffad;font-size:.95rem;line-height:1.68}.format-grid .format-arrow{position:absolute;right:1.5rem;bottom:1.5rem;display:grid;place-items:center;width:52px;height:52px;color:#07031c;background:#c7ff31;border:2px solid #07031c;box-shadow:4px 4px 0 #f4078c}.format-bars{position:absolute!important;left:2rem;bottom:1.7rem;display:flex;align-items:end;gap:5px;height:38px}.format-bars i{display:block;width:5px;height:35%;background:#18e4ff;box-shadow:0 0 8px #18e4ff;animation:format-eq .75s steps(3) infinite}.format-bars i:nth-child(2){height:80%;animation-delay:-.2s;background:#f4078c}.format-bars i:nth-child(3){height:48%;animation-delay:-.4s;background:#c7ff31}.format-bars i:nth-child(4){height:100%;animation-delay:-.55s}.format-bars i:nth-child(5){height:65%;animation-delay:-.15s;background:#753bff}.format-bars i:nth-child(6){height:38%;animation-delay:-.35s;background:#ff5a1f}.format-bars i:nth-child(7){height:75%;animation-delay:-.65s;background:#c7ff31}
.shows-marquee{position:absolute;z-index:5;left:-1%;right:-1%;bottom:2.8rem;overflow:hidden;color:#07031c;background:#18e4ff;border-block:3px solid #07031c;padding:.8rem 0;transform:rotate(-1deg)}.shows-marquee div{width:max-content;white-space:nowrap;font-size:.72rem;font-weight:950;letter-spacing:.16em;animation:shows-ticker 24s linear infinite}.shows-marquee i{color:#f4078c;margin:0 1.5rem}
@keyframes stage-ring{50%{transform:scale(1.06);opacity:.45}}@keyframes stage-pulse{0%{stroke-dashoffset:2100}to{stroke-dashoffset:-2100}}@keyframes laser-sweep{to{transform:rotate(13deg)}}@keyframes stage-eq{50%{transform:scaleY(.28)}}@keyframes speaker-pump{50%{transform:scale(1.055)}}@keyframes light-sway{to{transform:rotate(13deg)}}@keyframes title-glitch{50%{translate:-4px 3px}}@keyframes card-glitch{50%{translate:5px -2px}}@keyframes card-orbit{to{transform:rotate(360deg)}}@keyframes format-eq{50%{transform:scaleY(.25)}}@keyframes shows-ticker{to{transform:translateX(-50%)}}
@media(max-width:900px){.shows{min-height:auto}.shows-heading-v2{grid-template-columns:1fr;min-height:520px}.shows-heading-v2 h2{text-align:left}.format-grid{grid-template-columns:1fr}.stage-ticket{right:1rem;top:2rem}.stage-graphic{top:12%;opacity:.48}}
@media(max-width:720px){.shows{padding-top:7rem;padding-bottom:8rem}.shows:after{top:1.7rem;right:-6rem}.shows-heading-v2{min-height:470px}.shows-heading-v2 h2{font-size:clamp(4.2rem,18vw,6rem);text-shadow:3px 3px 0 #753bff,6px 6px 0 #f4078c}.shows-intro{font-size:.92rem}.stage-ticket{width:112px;height:112px;top:5.5rem;opacity:.9}.stage-ticket strong{font-size:1.55rem}.format-grid{margin-top:3rem}.format-grid .format{min-height:390px;padding:1.35rem}.format-grid .format-number{font-size:4.3rem}.format-grid .format h3{margin-top:4rem;font-size:3.3rem}.format-tag{top:1rem;right:1rem}.format-bars{left:1.35rem}.speaker{opacity:.55}.shows-marquee{bottom:2rem}}


/* Event section refinements: clean text and four-card desktop row */
.shows-heading-v2 h2::before,
.shows-heading-v2 h2::after,
.format-grid .format h3::before,
.format-grid .format h3::after {
  content: none !important;
  display: none !important;
  animation: none !important;
}

.format-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .9rem;
}

.format-grid .format {
  min-height: 500px;
  padding: 1.45rem;
}

.format-grid .format-number {
  font-size: 4.5rem;
}

.format-grid .format h3 {
  margin-top: 4.5rem;
  font-size: clamp(2.25rem, 3.1vw, 3.8rem);
}

.format-grid .format p {
  font-size: .86rem;
}

.format-grid .format-tag {
  top: 1.1rem;
  right: 1rem;
  max-width: 52%;
  text-align: right;
  line-height: 1.25;
}

.format-grid .format-bars {
  left: 1.45rem;
}

@media (max-width: 900px) {
  .format-grid {
    grid-template-columns: 1fr;
  }

  .format-grid .format {
    min-height: 390px;
  }
}


/* Compact event section: cards first, no oversized stage intro */
.shows {
  min-height: auto;
  padding-top: 6.5rem;
  padding-bottom: 8rem;
}

.shows::after {
  content: none !important;
  display: none !important;
}

.shows-compact-heading {
  position: relative;
  z-index: 4;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 2rem;
}

.shows-compact-heading h2 {
  margin: 0;
  color: #fff;
  font-family: Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif;
  font-size: clamp(2.8rem, 5.5vw, 6rem);
  line-height: .9;
  text-align: center;
  text-shadow: 4px 4px 0 #753bff, 7px 7px 0 #f4078c;
}

.shows-compact-heading h2 span {
  color: #18e4ff;
}

.shows-compact-heading p {
  max-width: 190px;
  margin: 0;
  color: #ffffffa8;
  font-size: .7rem;
  font-weight: 850;
  letter-spacing: .08em;
  line-height: 1.5;
  text-transform: uppercase;
}

.shows .format-grid {
  margin-top: 3.5rem;
}

@media (max-width: 900px) {
  .shows-compact-heading {
    grid-template-columns: 1fr;
    gap: 1.2rem;
  }

  .shows-compact-heading h2 {
    text-align: left;
  }

  .shows-compact-heading p {
    max-width: none;
  }
}

@media (max-width: 720px) {
  .shows {
    padding-top: 5rem;
  }

  .shows-compact-heading h2 {
    font-size: clamp(2.7rem, 14vw, 4.5rem);
  }

  .shows .format-grid {
    margin-top: 2.5rem;
  }
}


/* Proud 2 Be Gay — featured original release */
.proud-shell {
  max-width: 1240px;
  margin-inline: auto;
}

.proud-release {
  display: grid;
  grid-template-columns: minmax(360px, .88fr) 1.12fr;
  min-height: 620px;
  color: #fff;
  background:
    radial-gradient(circle at 82% 15%, #c7ff3138, transparent 26%),
    radial-gradient(circle at 16% 82%, #18e4ff38, transparent 28%),
    linear-gradient(145deg, #f4078c, #753bff 54%, #07031c);
  border: 4px solid #18e4ff;
  box-shadow: 14px 14px 0 #f4078c, 24px 24px 0 #c7ff31;
  overflow: visible;
}

.proud-cover-panel {
  position: relative;
  align-self: center;
  margin: 2.2rem 0 2.2rem 2.2rem;
  border: 4px solid #07031c;
  box-shadow: 10px 10px 0 #18e4ff;
  transform: rotate(-1.3deg);
  overflow: hidden;
}

.proud-cover-panel::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    repeating-linear-gradient(0deg, transparent 0 5px, #ffffff13 6px),
    linear-gradient(120deg, transparent 25%, #ffffff2e 48%, transparent 68%);
  transform: translateX(-100%);
  transition: transform .7s;
}

.proud-release:hover .proud-cover-panel::after {
  transform: translateX(100%);
}

.proud-cover-panel img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
  transition: transform .55s, filter .55s;
}

.proud-release:hover .proud-cover-panel img {
  transform: scale(1.035);
  animation: colour-glitch .55s steps(2);
}

.proud-number {
  position: absolute;
  z-index: 2;
  top: .75rem;
  left: .9rem;
  color: #fff;
  font-family: Impact, sans-serif;
  font-size: 4rem;
  line-height: 1;
  text-shadow: 4px 4px 0 #f4078c;
}

.proud-sticker {
  position: absolute;
  z-index: 2;
  right: .7rem;
  bottom: .7rem;
  padding: .7rem .8rem;
  color: #07031c;
  background: #c7ff31;
  border: 2px solid #07031c;
  font-size: .57rem;
  font-weight: 950;
  letter-spacing: .12em;
  line-height: 1.15;
  box-shadow: 5px 5px 0 #f4078c;
  transform: rotate(4deg);
}

.proud-release-info {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  padding: clamp(2rem, 5vw, 5rem);
  overflow: hidden;
}

.proud-release-info::before {
  content: "PROUD";
  position: absolute;
  right: -1rem;
  bottom: -2rem;
  color: transparent;
  -webkit-text-stroke: 1px #ffffff15;
  font-family: Impact, sans-serif;
  font-size: 10rem;
  line-height: 1;
}

.proud-label {
  display: flex;
  align-items: center;
  gap: .6rem;
  color: #c7ff31;
  font-size: .63rem;
  font-weight: 950;
  letter-spacing: .2em;
}

.proud-label i {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #c7ff31;
  box-shadow: 0 0 0 6px #c7ff3126, 0 0 18px #c7ff31;
}

.proud-release-info h3 {
  position: relative;
  z-index: 1;
  margin: 1.2rem 0 .8rem;
  font-family: Impact, sans-serif;
  font-size: clamp(4.8rem, 8vw, 8.8rem);
  font-weight: 900;
  letter-spacing: -.02em;
  line-height: .76;
  text-shadow: 5px 5px 0 #07031c, 9px 9px 0 #18e4ff;
}

.proud-release-info h3 span {
  color: #c7ff31;
}

.proud-subtitle {
  max-width: 470px;
  margin: .5rem 0 1.5rem;
  color: #fff;
  font-size: clamp(1rem, 1.6vw, 1.35rem);
  font-weight: 850;
  line-height: 1.4;
}

.proud-meta {
  display: flex;
  align-items: center;
  gap: .75rem;
  margin-bottom: .8rem;
  font-size: .6rem;
  letter-spacing: .16em;
}

.proud-meta span {
  color: #ffffff80;
}

.proud-meta strong {
  color: #07031c;
  background: #18e4ff;
  padding: .35rem .5rem;
  transform: rotate(-1deg);
}

.proud-listen {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .8rem;
}

.listen-button {
  display: flex;
  align-items: center;
  gap: .7rem;
  min-height: 66px;
  padding: .7rem .85rem;
  color: #07031c;
  border: 2px solid #07031c;
  font-size: .78rem;
  font-weight: 950;
  box-shadow: 5px 5px 0 #07031c;
  transition: transform .2s, box-shadow .2s;
}

.listen-button:hover {
  transform: translateY(-4px);
  box-shadow: 8px 8px 0 #07031c;
}

.listen-button small {
  display: block;
  font-size: .46rem;
  letter-spacing: .13em;
  opacity: .65;
}

.listen-button b {
  margin-left: auto;
}

.listen-icon {
  font-size: 1.2rem;
}

.listen-youtube {
  background: #fff;
}

.listen-youtube .listen-icon {
  color: #f4078c;
}

.listen-spotify {
  background: #c7ff31;
}

@media (max-width: 900px) {
  .proud-release {
    grid-template-columns: 1fr;
  }

  .proud-cover-panel {
    max-width: 620px;
    margin: 2rem auto 0;
  }
}

@media (max-width: 720px) {
  .proud-release {
    min-height: auto;
    box-shadow: 7px 7px 0 #f4078c, 13px 13px 0 #c7ff31;
  }

  .proud-cover-panel {
    margin: 1rem 1rem 0;
    box-shadow: 6px 6px 0 #18e4ff;
    transform: none;
  }

  .proud-release-info {
    padding: 2.2rem 1.2rem 1.5rem;
  }

  .proud-release-info h3 {
    font-size: clamp(4.2rem, 21vw, 6.6rem);
    text-shadow: 3px 3px 0 #07031c, 6px 6px 0 #18e4ff;
  }

  .proud-listen {
    grid-template-columns: 1fr;
  }
}


/* 3D 90s disco world */
.shows-3d {
  perspective: 1800px;
  background:
    radial-gradient(circle at 50% 14%, #753bff66, transparent 26%),
    radial-gradient(circle at 12% 55%, #f4078c3d, transparent 24%),
    radial-gradient(circle at 88% 62%, #18e4ff35, transparent 26%),
    linear-gradient(155deg, #05010f, #16032e 54%, #07031c);
}

.shows-3d::before {
  opacity: .22;
  background-image:
    radial-gradient(#18e4ff 1.2px, transparent 1.2px),
    linear-gradient(115deg, transparent 47%, #f4078c10 48%, transparent 49%);
  background-size: 22px 22px, 90px 90px;
}

.disco-scene {
  position: absolute;
  z-index: 0;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  transform-style: preserve-3d;
}

.retro-perspective-grid {
  position: absolute;
  left: -25%;
  right: -25%;
  bottom: -18%;
  height: 52%;
  opacity: .38;
  background-image:
    linear-gradient(#18e4ff73 2px, transparent 2px),
    linear-gradient(90deg, #f4078c7d 2px, transparent 2px);
  background-size: 58px 38px;
  transform: perspective(390px) rotateX(63deg);
  transform-origin: center top;
  -webkit-mask-image: linear-gradient(transparent, #000 26%);
  mask-image: linear-gradient(transparent, #000 26%);
  animation: grid-drive 4s linear infinite;
}

.disco-ball {
  position: absolute;
  z-index: 1;
  border-radius: 50%;
  background:
    radial-gradient(circle at 28% 22%, #fff 0 3%, #18e4ff 4% 8%, transparent 9%),
    radial-gradient(circle at 68% 72%, #f4078c 0 5%, transparent 18%),
    repeating-conic-gradient(from 8deg, #f8f7ff 0 3deg, #8deeff 3deg 6deg, #753bff 6deg 9deg, #f4078c 9deg 12deg);
  border: 3px solid #fff;
  box-shadow:
    inset -28px -34px 45px #07031ca8,
    inset 18px 16px 24px #ffffff8c,
    0 0 20px #fff,
    0 0 55px #18e4ff,
    0 0 100px #f4078c78;
  transform-style: preserve-3d;
}

.disco-ball::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  opacity: .58;
  background-image:
    linear-gradient(#07031c8c 1px, transparent 1px),
    linear-gradient(90deg, #07031c73 1px, transparent 1px);
  background-size: 15px 15px;
  -webkit-mask-image: radial-gradient(circle at 40% 35%, #000, transparent 88%);
  mask-image: radial-gradient(circle at 40% 35%, #000, transparent 88%);
}

.disco-ball::after {
  content: "";
  position: absolute;
  left: 18%;
  top: 12%;
  width: 25%;
  height: 16%;
  border-radius: 50%;
  background: #fff;
  filter: blur(6px);
  box-shadow: 22px 12px 16px #c7ff31;
  transform: rotate(-28deg) translateZ(25px);
}

.disco-ball i {
  position: absolute;
  left: 50%;
  bottom: 95%;
  width: 2px;
  height: 180px;
  background: linear-gradient(#ffffff15, #fff);
  box-shadow: 0 0 9px #18e4ff;
}

.disco-ball-main {
  top: 1.8rem;
  right: 7%;
  width: clamp(150px, 15vw, 240px);
  aspect-ratio: 1;
  animation: disco-float 6s ease-in-out infinite, disco-spin 18s linear infinite;
}

.disco-ball-small {
  top: 13rem;
  left: 4%;
  width: clamp(90px, 9vw, 145px);
  aspect-ratio: 1;
  animation: disco-float 5s ease-in-out -2s infinite, disco-spin-reverse 14s linear infinite;
}

.disco-ball-mini {
  top: 23rem;
  right: 28%;
  width: clamp(55px, 5vw, 82px);
  aspect-ratio: 1;
  animation: disco-float 4s ease-in-out -3s infinite, disco-spin 11s linear infinite;
}

.disco-orbit {
  position: absolute;
  z-index: 0;
  border-radius: 50%;
  border: 2px solid #18e4ff;
  filter: drop-shadow(0 0 8px #18e4ff);
  opacity: .34;
  transform: rotateX(66deg) rotateZ(-12deg);
}

.orbit-a {
  top: 2rem;
  right: -7rem;
  width: 480px;
  height: 300px;
  animation: orbit-pulse 5s ease-in-out infinite;
}

.orbit-b {
  top: 12rem;
  left: -10rem;
  width: 390px;
  height: 250px;
  border-color: #f4078c;
  filter: drop-shadow(0 0 8px #f4078c);
  animation: orbit-pulse 6s ease-in-out -2s infinite reverse;
}

.palm-3d {
  position: absolute;
  z-index: 1;
  bottom: 3rem;
  width: 220px;
  height: 340px;
  filter: drop-shadow(0 0 14px #18e4ff);
  transform-style: preserve-3d;
}

.palm-3d-left {
  left: -3rem;
  transform: rotateY(22deg) rotateZ(-7deg) translateZ(40px);
}

.palm-3d-right {
  right: -3rem;
  transform: scaleX(-1) rotateY(22deg) rotateZ(-7deg) translateZ(40px);
}

.neon-palm {
  position: absolute;
  inset: 0;
}

.neon-palm b {
  position: absolute;
  left: 49%;
  bottom: 0;
  width: 17px;
  height: 250px;
  border-radius: 60% 40% 8px 8px;
  background: linear-gradient(90deg, #753bff, #f4078c 48%, #ff8c31);
  box-shadow: 0 0 12px #f4078c, inset -5px 0 #07031c55;
  transform: rotate(8deg);
}

.neon-palm span {
  position: absolute;
  left: 52%;
  top: 58px;
  width: 135px;
  height: 32px;
  border-radius: 100% 0;
  background: linear-gradient(90deg, #c7ff31, #18e4ff);
  box-shadow: 0 0 12px #18e4ff, inset 0 -8px #07031c26;
  transform-origin: left center;
}

.neon-palm span:nth-child(2) { transform: rotate(-78deg) rotateX(22deg); }
.neon-palm span:nth-child(3) { transform: rotate(-43deg) rotateX(-14deg); }
.neon-palm span:nth-child(4) { transform: rotate(-9deg) rotateX(18deg); }
.neon-palm span:nth-child(5) { transform: rotate(29deg) rotateX(-18deg); }
.neon-palm span:nth-child(6) { transform: rotate(63deg) rotateX(16deg); }
.neon-palm span:nth-child(7) { transform: rotate(98deg) rotateX(-15deg); }

.light-streaks i {
  position: absolute;
  z-index: 2;
  left: -35vw;
  width: 30vw;
  height: 4px;
  border-radius: 50%;
  background: linear-gradient(90deg, transparent, #fff, #18e4ff, transparent);
  box-shadow: 0 0 10px #fff, 0 0 28px #18e4ff;
  transform: rotate(-14deg);
  animation: streak-flight 5s linear infinite;
}

.light-streaks i:nth-child(1) { top: 12%; animation-delay: -1s; }
.light-streaks i:nth-child(2) { top: 25%; animation-delay: -3.4s; background:linear-gradient(90deg,transparent,#fff,#f4078c,transparent); }
.light-streaks i:nth-child(3) { top: 41%; animation-delay: -2s; height: 7px; }
.light-streaks i:nth-child(4) { top: 58%; animation-delay: -4.3s; background:linear-gradient(90deg,transparent,#fff,#c7ff31,transparent); }
.light-streaks i:nth-child(5) { top: 72%; animation-delay: -.2s; }
.light-streaks i:nth-child(6) { top: 87%; animation-delay: -2.8s; background:linear-gradient(90deg,transparent,#fff,#753bff,transparent); }

.disco-sparkles i {
  position: absolute;
  z-index: 3;
  color: #fff;
  font-style: normal;
  font-size: 2rem;
  text-shadow: 0 0 10px #fff, 0 0 22px #18e4ff;
  animation: sparkle-pop 2.3s ease-in-out infinite;
}

.disco-sparkles i:nth-child(1) { top: 7%; left: 31%; }
.disco-sparkles i:nth-child(2) { top: 18%; left: 67%; animation-delay: -.8s; color:#c7ff31; }
.disco-sparkles i:nth-child(3) { top: 43%; left: 17%; animation-delay: -1.5s; color:#f4078c; }
.disco-sparkles i:nth-child(4) { top: 54%; right: 13%; animation-delay: -.3s; }
.disco-sparkles i:nth-child(5) { top: 82%; left: 45%; animation-delay: -1.1s; color:#18e4ff; }

.shows-compact-heading {
  transform-style: preserve-3d;
}

.shows-compact-heading::after {
  content: "90s DISCO / FUTURE ENERGY";
  position: absolute;
  right: 1rem;
  top: -2.1rem;
  color: #07031c;
  background: #f4078c;
  border: 2px solid #07031c;
  padding: .45rem .65rem;
  font-size: .5rem;
  font-weight: 950;
  letter-spacing: .15em;
  box-shadow: 4px 4px 0 #18e4ff;
  transform: rotate(3deg) translateZ(45px);
}

.shows-3d .shows-compact-heading h2 {
  transform: translateZ(50px);
  text-shadow:
    1px 1px 0 #07031c,
    4px 4px 0 #753bff,
    8px 8px 0 #f4078c,
    12px 12px 0 #07031c,
    0 0 35px #18e4ff70;
}

.shows-3d .format-grid {
  perspective: 1800px;
  transform-style: preserve-3d;
  isolation: isolate;
}

.shows-3d .format-grid .format {
  --rx: 0deg;
  --ry: 0deg;
  --edge: #18e4ff;
  transform-style: preserve-3d;
  transform: rotateX(var(--rx)) rotateY(var(--ry)) translateZ(0);
  background:
    linear-gradient(145deg, #ffffff1c, #ffffff07),
    radial-gradient(circle at 10% 5%, #f4078c38, transparent 35%),
    #0b0220d9;
  border-color: var(--edge);
  border-radius: 8px;
  box-shadow:
    0 4px 0 #07031c,
    0 9px 0 var(--edge),
    0 15px 0 #07031c,
    0 27px 35px #000b,
    0 0 35px color-mix(in srgb, var(--edge) 45%, transparent);
  transition: transform .16s ease-out, box-shadow .25s, background .25s;
}

.shows-3d .format-grid .format:nth-child(1) { --edge:#c7ff31; }
.shows-3d .format-grid .format:nth-child(2) { --edge:#f4078c; }
.shows-3d .format-grid .format:nth-child(3) { --edge:#18e4ff; }
.shows-3d .format-grid .format:nth-child(4) { --edge:#ff5a1f; }

.shows-3d .format-grid .format:hover {
  color: #fff;
  background:
    linear-gradient(145deg, #ffffff24, #ffffff08),
    radial-gradient(circle at 30% 10%, var(--edge), transparent 48%),
    #0b0220e8;
  transform: rotateX(var(--rx)) rotateY(var(--ry)) translateZ(58px) scale(1.025);
  box-shadow:
    0 5px 0 #07031c,
    0 12px 0 var(--edge),
    0 19px 0 #07031c,
    0 36px 55px #000d,
    0 0 50px var(--edge);
}

.shows-3d .format-grid .format > * {
  transform: translateZ(36px);
}

.shows-3d .format-grid .format h3 {
  transform: translateZ(62px);
  text-shadow: 3px 3px 0 #07031c, 6px 6px 0 var(--edge);
}

.shows-3d .format-grid .format-number {
  transform: translateZ(75px);
  text-shadow: 3px 3px 0 #07031c, 6px 6px 0 #f4078c;
}

.shows-3d .format-grid .format-tag,
.shows-3d .format-grid .format-arrow {
  transform: translateZ(85px);
}

@keyframes grid-drive { to { background-position: 0 38px, 58px 0; } }
@keyframes disco-float { 50% { translate: 0 18px; } }
@keyframes disco-spin { to { rotate: 360deg; } }
@keyframes disco-spin-reverse { to { rotate: -360deg; } }
@keyframes orbit-pulse { 50% { scale: 1.12; opacity: .55; } }
@keyframes streak-flight { 0% { translate: 0 0; opacity: 0; } 12% { opacity: .85; } 75% { opacity: .65; } 100% { translate: 175vw 0; opacity: 0; } }
@keyframes sparkle-pop { 50% { transform: scale(.35) rotate(90deg); opacity: .2; } }

@media (max-width: 900px) {
  .disco-ball-mini { display: none; }
  .disco-ball-main { right: -2rem; opacity: .75; }
  .disco-ball-small { left: -2rem; opacity: .65; }
  .palm-3d { opacity: .45; }

  .shows-3d .format-grid .format,
  .shows-3d .format-grid .format:hover {
    transform: none;
  }

  .shows-3d .format-grid .format > *,
  .shows-3d .format-grid .format h3,
  .shows-3d .format-grid .format-number,
  .shows-3d .format-grid .format-tag,
  .shows-3d .format-grid .format-arrow {
    transform: none;
  }
}

@media (max-width: 720px) {
  .retro-perspective-grid { opacity: .22; }
  .palm-3d { width: 140px; height: 250px; bottom: 1rem; }
  .palm-3d-right { right: -5rem; }
  .palm-3d-left { left: -5rem; }
  .shows-compact-heading::after { right: 0; top: -2.5rem; }
}

@media (prefers-reduced-motion: reduce) {
  .disco-ball,
  .disco-orbit,
  .light-streaks i,
  .disco-sparkles i,
  .retro-perspective-grid {
    animation: none !important;
  }
}


/* Clean card-only layout with real mirror-ball assets */
.shows-3d {
  padding-top: 5rem;
}

.shows-3d .format-grid {
  margin-top: 0;
}

.shows-3d .format-grid .format {
  min-height: 440px;
  padding-top: 3.8rem;
}

.shows-3d .format-grid .format h3 {
  margin-top: 1.25rem;
}

.real-disco-ball {
  position: absolute;
  z-index: 1;
  width: clamp(180px, 20vw, 330px);
  height: auto;
  pointer-events: none;
  filter:
    drop-shadow(0 0 14px #fff)
    drop-shadow(0 0 34px #18e4ff)
    drop-shadow(0 0 60px #f4078c7d);
  animation: real-ball-float 6s ease-in-out infinite;
}

.real-ball-right {
  top: -7.5rem;
  right: -2rem;
}

.real-ball-left {
  left: -6rem;
  bottom: 1rem;
  width: clamp(135px, 14vw, 230px);
  opacity: .72;
  animation-delay: -3s;
}

@keyframes real-ball-float {
  50% {
    translate: 0 14px;
  }
}

@media (max-width: 900px) {
  .shows-3d .format-grid .format {
    min-height: 390px;
  }

  .real-ball-right {
    right: -5rem;
    opacity: .7;
  }

  .real-ball-left {
    left: -5rem;
    opacity: .45;
  }
}

@media (max-width: 720px) {
  .shows-3d {
    padding-top: 4rem;
  }

  .real-disco-ball {
    width: 155px;
    opacity: .48;
  }

  .real-ball-left {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .real-disco-ball {
    animation: none;
  }
}


/* Harmonised disco section — same RIVANI visual language */
.shows-3d {
  background:
    radial-gradient(circle at 88% 8%, #f4078c35, transparent 24rem),
    radial-gradient(circle at 10% 78%, #00a8ff30, transparent 27rem),
    linear-gradient(145deg, #070710, #140526 62%, #080811);
  border-top: 7px solid #f4078c;
  border-bottom: 7px solid #18e4ff;
}

.shows-3d::before {
  opacity: .13;
  background-image:
    linear-gradient(#ffffff30 1px, transparent 1px),
    linear-gradient(90deg, #ffffff30 1px, transparent 1px);
  background-size: 65px 65px;
  -webkit-mask-image: linear-gradient(transparent, #000 18%, #000 80%, transparent);
  mask-image: linear-gradient(transparent, #000 18%, #000 80%, transparent);
}

.retro-perspective-grid {
  opacity: .21;
  background-image:
    linear-gradient(#18e4ff69 1px, transparent 1px),
    linear-gradient(90deg, #f4078c69 1px, transparent 1px);
  background-size: 65px 45px;
}

.real-disco-ball {
  opacity: .68;
  filter:
    saturate(.9)
    drop-shadow(0 0 10px #fff)
    drop-shadow(0 0 24px #18e4ff)
    drop-shadow(8px 8px 0 #f4078c70);
}

.real-ball-right {
  top: -8rem;
  right: -3.5rem;
  width: clamp(160px, 16vw, 260px);
}

.real-ball-left {
  left: -6.5rem;
  bottom: 1.5rem;
  width: clamp(120px, 12vw, 190px);
  opacity: .42;
}

.palm-3d {
  opacity: .2;
  filter: drop-shadow(0 0 9px #18e4ff);
}

.neon-palm b {
  background: #f4078c;
  box-shadow: 0 0 12px #f4078c;
}

.neon-palm span {
  background: #18e4ff;
  box-shadow: 0 0 12px #18e4ff;
}

.light-streaks {
  opacity: .52;
}

.disco-sparkles {
  opacity: .58;
}

.shows-3d .format-grid {
  gap: 1rem;
}

.shows-3d .format-grid .format {
  --edge: #18e4ff;
  border-radius: 0;
  border-width: 3px;
  background:
    linear-gradient(145deg, #ffffff12, #ffffff05),
    #0b031ce8;
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  box-shadow:
    0 5px 0 #070710,
    0 10px 0 var(--edge),
    0 16px 0 #070710,
    0 25px 34px #0009;
}

.shows-3d .format-grid .format:hover {
  background:
    linear-gradient(145deg, #ffffff18, #ffffff08),
    radial-gradient(circle at 25% 5%, color-mix(in srgb, var(--edge) 28%, transparent), transparent 43%),
    #0b031cf2;
  transform: rotateX(var(--rx)) rotateY(var(--ry)) translateZ(28px) scale(1.01);
  box-shadow:
    0 5px 0 #070710,
    0 11px 0 var(--edge),
    0 17px 0 #070710,
    0 31px 42px #000b,
    0 0 25px color-mix(in srgb, var(--edge) 55%, transparent);
}

.shows-3d .format-grid .format > * {
  transform: translateZ(18px);
}

.shows-3d .format-grid .format h3 {
  transform: translateZ(30px);
  text-shadow: 3px 3px 0 #070710, 5px 5px 0 var(--edge);
}

.shows-3d .format-grid .format-tag,
.shows-3d .format-grid .format-arrow {
  transform: translateZ(36px);
}

.shows-3d .format-grid .format-tag {
  color: #070710;
  background: var(--edge);
  border: 2px solid #070710;
  box-shadow: 3px 3px 0 #f4078c;
}

.shows-3d .format-grid .format-arrow {
  background: #c7ff31;
  box-shadow: 4px 4px 0 #f4078c;
}

.shows-3d .format-grid .format::before {
  opacity: .35;
}

.shows-marquee {
  color: #070710;
  background: #c7ff31;
  border-block: 3px solid #070710;
  box-shadow: 0 8px 0 #f4078c;
}

.shows-marquee i {
  color: #f4078c;
}

@media (max-width: 900px) {
  .shows-3d .format-grid .format,
  .shows-3d .format-grid .format:hover {
    box-shadow: 7px 7px 0 var(--edge), 12px 12px 0 #070710;
  }
}


/* Compact non-clickable event cards with whole-card glitch */
.shows-3d .format-grid .format {
  min-height: 335px;
  padding: 3.5rem 1.45rem 1.5rem;
  cursor: default;
}

.shows-3d .format-grid .format h3 {
  margin-top: .5rem;
}

.shows-3d .format-grid .format:hover {
  animation: event-card-glitch .55s steps(2) 1;
}

.shows-3d .format-grid .format:hover > * {
  animation: event-content-split .55s steps(2) 1;
}

.shows-3d .format-grid .format:hover::before {
  opacity: .46;
  background:
    repeating-linear-gradient(
      0deg,
      transparent 0 17px,
      #18e4ff32 18px 20px,
      transparent 21px 35px,
      #f4078c2e 36px 38px
    );
  animation: event-scan-jump .55s steps(3) 1;
}

.shows-3d .format-grid .format:hover::after {
  opacity: .72;
  background:
    linear-gradient(
      90deg,
      transparent 0 15%,
      #18e4ff45 16% 24%,
      transparent 25% 55%,
      #f4078c45 56% 66%,
      transparent 67%
    );
  animation: event-signal-slice .55s steps(3) 1;
}

@keyframes event-card-glitch {
  0%, 100% { filter: none; }
  18% { filter: saturate(1.7) contrast(1.08); }
  35% { filter: hue-rotate(18deg) contrast(1.16); }
  52% { filter: saturate(1.35); }
  70% { filter: hue-rotate(-12deg) contrast(1.1); }
}

@keyframes event-content-split {
  0%, 100% { filter: none; }
  22% { filter: drop-shadow(4px 0 #18e4ff) drop-shadow(-4px 0 #f4078c); }
  45% { filter: drop-shadow(-3px 0 #c7ff31) drop-shadow(3px 0 #753bff); }
  68% { filter: drop-shadow(2px 0 #f4078c) drop-shadow(-2px 0 #18e4ff); }
}

@keyframes event-scan-jump {
  0% { transform: translateY(-12%); }
  33% { transform: translateY(18%); }
  66% { transform: translateY(-5%); }
  100% { transform: translateY(10%); }
}

@keyframes event-signal-slice {
  0% { transform: translateX(-80%) skewX(-12deg); }
  35% { transform: translateX(15%) skewX(8deg); }
  70% { transform: translateX(-10%) skewX(-5deg); }
  100% { transform: translateX(105%) skewX(10deg); }
}

@media (max-width: 900px) {
  .shows-3d .format-grid .format {
    min-height: 300px;
  }
}


/* Compact releases intro with a restrained RIVANI signal glitch */
.music.section {
  padding-top: clamp(4.5rem, 7vw, 6.5rem);
  padding-bottom: clamp(4.5rem, 7vw, 6.5rem);
}

.music-heading {
  grid-template-columns: minmax(0, .82fr) minmax(320px, 1.18fr);
  align-items: center;
  gap: 1.5rem clamp(2rem, 5vw, 5.5rem);
}

.music-heading .section-kicker {
  margin-bottom: -.25rem;
}

.music h2.energy-glitch-title {
  position: relative;
  width: max-content;
  max-width: 100%;
  font-size: clamp(3.2rem, 6.2vw, 6.35rem);
  line-height: .82;
  text-shadow: 3px 3px 0 #f4078c;
  isolation: isolate;
  animation: music-title-colour-split 6.4s steps(1, end) infinite;
}

.music h2.energy-glitch-title::before {
  content: "";
  position: absolute;
  z-index: 2;
  inset: 11% -2% 9%;
  pointer-events: none;
  opacity: 0;
  background:
    repeating-linear-gradient(
      0deg,
      transparent 0 11px,
      #18e4ff4f 12px 14px,
      transparent 15px 28px,
      #f4078c40 29px 31px
    );
  mix-blend-mode: screen;
  animation: music-title-scan 6.4s steps(1, end) infinite;
}

.music h2.energy-glitch-title::after {
  content: "";
  position: absolute;
  z-index: 3;
  left: -3%;
  right: -3%;
  top: 18%;
  height: 4px;
  pointer-events: none;
  opacity: .55;
  background: linear-gradient(90deg, transparent, #18e4ff, #c7ff31, #f4078c, transparent);
  box-shadow: 0 0 12px #18e4ff;
  animation: music-signal-line 4.8s ease-in-out infinite;
}

.music-heading:hover .energy-glitch-title {
  animation: music-title-hover-glitch .48s steps(2, end) 1;
}

.music-heading:hover .energy-glitch-title::before {
  opacity: .5;
  animation: music-title-hover-scan .48s steps(3, end) 1;
}

.music-intro > p {
  max-width: 510px;
  margin-bottom: 1.15rem;
  line-height: 1.58;
}

.platform-links {
  gap: .65rem;
}

.platform-button {
  min-width: 210px;
  padding: .72rem .9rem;
  box-shadow: 5px 5px 0 #f4078c;
}

.release-shell {
  margin-top: clamp(2.2rem, 4vw, 3.25rem);
}

.release-card {
  min-height: clamp(390px, 38vw, 440px);
}

@keyframes music-title-colour-split {
  0%, 89%, 93%, 100% { filter: none; }
  90% { filter: drop-shadow(5px 0 #18e4ff) drop-shadow(-4px 0 #f4078c); }
  91% { filter: drop-shadow(-3px 0 #c7ff31) drop-shadow(4px 0 #753bff); }
  92% { filter: contrast(1.18) saturate(1.5); }
}

@keyframes music-title-scan {
  0%, 89%, 93%, 100% { opacity: 0; transform: translateY(0); }
  90% { opacity: .38; transform: translateY(-7%); }
  91% { opacity: .52; transform: translateY(9%); }
  92% { opacity: .28; transform: translateY(-2%); }
}

@keyframes music-signal-line {
  0% { transform: translateY(0) scaleX(.2); opacity: 0; }
  12% { opacity: .55; }
  50% { transform: translateY(3400%) scaleX(1); opacity: .3; }
  64%, 100% { transform: translateY(5100%) scaleX(.35); opacity: 0; }
}

@keyframes music-title-hover-glitch {
  0%, 100% { filter: none; transform: translate(0); }
  20% { filter: drop-shadow(6px 0 #18e4ff) drop-shadow(-5px 0 #f4078c); transform: translate(-2px, 1px); }
  45% { filter: drop-shadow(-4px 0 #c7ff31) drop-shadow(5px 0 #753bff); transform: translate(3px, -1px); }
  70% { filter: saturate(1.5) contrast(1.12); transform: translate(-1px, 0); }
}

@keyframes music-title-hover-scan {
  0% { transform: translateY(-16%); }
  35% { transform: translateY(12%); }
  70% { transform: translateY(-5%); }
  100% { transform: translateY(9%); opacity: 0; }
}

@media (max-width: 800px) {
  .music-heading {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }

  .music h2.energy-glitch-title {
    font-size: clamp(3rem, 15vw, 5.15rem);
  }

  .music-intro > p {
    margin-bottom: 1rem;
  }

  .release-card {
    min-height: 390px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .music h2.energy-glitch-title,
  .music h2.energy-glitch-title::before,
  .music h2.energy-glitch-title::after {
    animation: none;
  }
}

.ticker-set{display:flex;flex-shrink:0}
.ticker-track{will-change:transform;animation-duration:56s}

/* Endless event marquee — matched to the main genre ticker */
.shows-marquee .shows-marquee-track {
  display: flex;
  width: max-content;
  animation: shows-ticker 56s linear infinite;
  will-change: transform;
}

.shows-marquee .shows-marquee-set {
  display: flex;
  flex-shrink: 0;
  width: max-content;
  animation: none;
}

.shows-marquee .shows-marquee-set span {
  white-space: nowrap;
}


/* Neon selected-client wall */
.client-wall {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(4.8rem, 7vw, 7rem) 0 clamp(5.2rem, 8vw, 8rem);
  color: #fff;
  background:
    radial-gradient(circle at 9% 20%, #f4078c40, transparent 25rem),
    radial-gradient(circle at 88% 76%, #18e4ff38, transparent 28rem),
    linear-gradient(145deg, #070710, #170429 58%, #07031c);
  border-top: 7px solid #18e4ff;
  border-bottom: 7px solid #f4078c;
}

.client-grid {
  position: absolute;
  z-index: -2;
  inset: 0;
  opacity: .12;
  background-image:
    linear-gradient(#ffffff30 1px, transparent 1px),
    linear-gradient(90deg, #ffffff30 1px, transparent 1px);
  background-size: 62px 62px;
  -webkit-mask-image: linear-gradient(transparent, #000 20%, #000 82%, transparent);
  mask-image: linear-gradient(transparent, #000 20%, #000 82%, transparent);
}

.client-signal {
  position: absolute;
  z-index: -1;
  left: -4%;
  top: 18%;
  width: 108%;
  height: 44%;
  opacity: .16;
  overflow: visible;
  filter: drop-shadow(0 0 10px #18e4ff) drop-shadow(0 0 25px #f4078c);
}

.client-signal path {
  fill: none;
  stroke: #18e4ff;
  stroke-width: 4;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 2400;
  animation: client-signal-flow 9s linear infinite;
}

.client-header {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(330px, .92fr);
  align-items: end;
  gap: 2rem clamp(2.5rem, 7vw, 8rem);
  width: min(1600px, 100%);
  margin: 0 auto;
  padding: 0 6vw;
}

.client-header h2 {
  margin: 1rem 0 0;
  font-family: Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif;
  font-size: clamp(3.7rem, 7.1vw, 7.4rem);
  font-weight: 900;
  letter-spacing: -.025em;
  line-height: .8;
  text-transform: uppercase;
  text-shadow: 4px 4px 0 #753bff, 8px 8px 0 #f4078c;
}

.client-header h2 span {
  color: #c7ff31;
}

.client-intro {
  position: relative;
  padding: 1.4rem 1.5rem 1.55rem;
  color: #fff;
  background: #080811d9;
  border: 2px solid #18e4ff;
  box-shadow: 8px 8px 0 #f4078c;
}

.client-intro::before {
  content: "";
  position: absolute;
  top: -2px;
  left: 0;
  width: 34%;
  height: 5px;
  background: #c7ff31;
  box-shadow: 0 0 15px #c7ff31;
}

.client-intro strong,
.client-intro > span {
  display: block;
  color: #c7ff31;
  font-size: .62rem;
  font-weight: 950;
  letter-spacing: .2em;
}

.client-intro p {
  max-width: 610px;
  margin: .9rem 0 1.1rem;
  color: #ffffffb8;
  line-height: 1.62;
}

.client-intro > span {
  color: #18e4ff;
  font-size: .55rem;
}

.client-marquee {
  position: relative;
  z-index: 3;
  margin-top: clamp(3rem, 5vw, 4.8rem);
  padding: 1.15rem 0 1.45rem;
  overflow: hidden;
  background: linear-gradient(90deg, #080811, #130523 50%, #080811);
  border-block: 2px solid #ffffff24;
  box-shadow: 0 0 38px #f4078c2e;
  transform: rotate(-.45deg) scale(1.006);
}

.client-marquee::before,
.client-marquee::after {
  content: "";
  position: absolute;
  z-index: 5;
  top: 0;
  bottom: 0;
  width: min(9vw, 140px);
  pointer-events: none;
}

.client-marquee::before {
  left: 0;
  background: linear-gradient(90deg, #080811, transparent);
}

.client-marquee::after {
  right: 0;
  background: linear-gradient(-90deg, #080811, transparent);
}

.client-track {
  display: flex;
  width: max-content;
  animation: client-logo-loop 56s linear infinite;
  will-change: transform;
}

.client-marquee:hover .client-track {
  animation-play-state: paused;
}

.client-set {
  display: flex;
  flex-shrink: 0;
  gap: 1rem;
  padding-right: 1rem;
}

.client-card {
  --client-edge: #18e4ff;
  position: relative;
  flex: 0 0 clamp(215px, 16vw, 270px);
  height: 164px;
  padding: .65rem;
  background: linear-gradient(145deg, #ffffff13, #ffffff05);
  border: 2px solid var(--client-edge);
  box-shadow: 6px 6px 0 #070710, 10px 10px 0 var(--client-edge);
  cursor: default;
  transition: transform .28s, box-shadow .28s, filter .28s;
  overflow: hidden;
}

.client-lime { --client-edge: #c7ff31; }
.client-pink { --client-edge: #f4078c; }
.client-cyan { --client-edge: #18e4ff; }
.client-orange { --client-edge: #ff5a1f; }

.client-card::before {
  content: "";
  position: absolute;
  z-index: 3;
  inset: 0;
  pointer-events: none;
  opacity: .18;
  background: repeating-linear-gradient(0deg, transparent 0 7px, #ffffff18 8px);
}

.client-card::after {
  content: "";
  position: absolute;
  z-index: 4;
  left: -120%;
  top: 0;
  width: 70%;
  height: 100%;
  pointer-events: none;
  opacity: 0;
  background: linear-gradient(100deg, transparent, #18e4ff70 44%, #f4078c82 56%, transparent);
  transform: skewX(-16deg);
}

.client-card:hover {
  z-index: 6;
  transform: translateY(-8px) rotate(.6deg);
  box-shadow: 8px 8px 0 #070710, 14px 14px 0 var(--client-edge), 0 0 28px var(--client-edge);
  animation: client-card-glitch .5s steps(2) 1;
}

.client-card:hover::after {
  opacity: .75;
  animation: client-logo-scan .55s ease-out 1;
}

.client-plate {
  position: relative;
  display: grid;
  place-items: center;
  height: 116px;
  padding: .65rem;
  background: #fff;
  border: 2px solid #070710;
  clip-path: polygon(0 0, calc(100% - 11px) 0, 100% 11px, 100% 100%, 11px 100%, 0 calc(100% - 11px));
}

.client-logo {
  max-width: 88%;
  max-height: 92px;
  object-fit: contain;
  filter: grayscale(.45) saturate(.55) contrast(1.08);
  opacity: .84;
  transition: transform .35s, filter .35s, opacity .35s;
}

.client-logo.logo-wide {
  max-width: 92%;
  max-height: 67px;
}

.client-logo.logo-square {
  max-width: 77%;
  max-height: 96px;
}

.client-logo.logo-tall {
  max-width: 66%;
  max-height: 101px;
}

.client-card:hover .client-logo {
  filter: none;
  opacity: 1;
  transform: scale(1.055);
}

.client-card > span {
  position: relative;
  z-index: 5;
  display: block;
  margin-top: .48rem;
  color: #fff;
  font-size: .55rem;
  font-weight: 950;
  letter-spacing: .15em;
  text-align: center;
  text-transform: uppercase;
}

@keyframes client-logo-loop {
  to { transform: translateX(-50%); }
}

@keyframes client-signal-flow {
  from { stroke-dashoffset: 2400; }
  to { stroke-dashoffset: -2400; }
}

@keyframes client-logo-scan {
  from { transform: translateX(0) skewX(-16deg); }
  to { transform: translateX(360%) skewX(-16deg); opacity: 0; }
}

@keyframes client-card-glitch {
  0%, 100% { filter: none; }
  24% { filter: drop-shadow(4px 0 #18e4ff) drop-shadow(-4px 0 #f4078c); }
  48% { filter: hue-rotate(16deg) saturate(1.5); }
  70% { filter: drop-shadow(-3px 0 #c7ff31) drop-shadow(3px 0 #753bff); }
}

@media (max-width: 820px) {
  .client-wall {
    padding-top: 4.5rem;
  }

  .client-header {
    grid-template-columns: 1fr;
    align-items: start;
  }

  .client-header h2 {
    font-size: clamp(3.45rem, 15.4vw, 5.5rem);
    text-shadow: 3px 3px 0 #753bff, 6px 6px 0 #f4078c;
  }

  .client-intro {
    max-width: 620px;
  }

  .client-card {
    flex-basis: 205px;
    height: 146px;
  }

  .client-plate {
    height: 100px;
  }

  .client-logo {
    max-height: 80px;
  }

  .client-logo.logo-wide {
    max-height: 58px;
  }

  .client-logo.logo-tall {
    max-height: 87px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .client-track,
  .client-signal path {
    animation: none;
  }
}

/* Compact selected-client layout */
.client-wall {
  padding-top: clamp(2.6rem, 4vw, 3.8rem);
  padding-bottom: clamp(3rem, 4.8vw, 4.4rem);
}

.client-header {
  grid-template-columns: minmax(0, 1fr) minmax(340px, .85fr);
  gap: 1.4rem clamp(2.5rem, 6vw, 6rem);
}

.client-header h2 {
  margin-top: .65rem;
  font-size: clamp(2.9rem, 4.65vw, 4.9rem);
  line-height: .82;
  text-shadow: 3px 3px 0 #753bff, 6px 6px 0 #f4078c;
}

.client-intro {
  padding: .95rem 1.15rem 1.05rem;
  box-shadow: 6px 6px 0 #f4078c;
}

.client-intro p {
  margin: .6rem 0 .7rem;
  line-height: 1.46;
}

.client-marquee {
  margin-top: clamp(1.8rem, 3vw, 2.6rem);
  padding: .72rem 0 .95rem;
}

.client-card {
  flex-basis: clamp(185px, 14vw, 225px);
  height: 132px;
  padding: .5rem;
  box-shadow: 5px 5px 0 #070710, 8px 8px 0 var(--client-edge);
}

.client-card:hover {
  transform: translateY(-5px) rotate(.45deg);
  box-shadow: 6px 6px 0 #070710, 11px 11px 0 var(--client-edge), 0 0 22px var(--client-edge);
}

.client-plate {
  height: 92px;
  padding: .5rem;
}

.client-logo {
  max-height: 72px;
}

.client-logo.logo-wide {
  max-height: 51px;
}

.client-logo.logo-square {
  max-height: 76px;
}

.client-logo.logo-tall {
  max-height: 80px;
}

.client-card > span {
  margin-top: .35rem;
  font-size: .48rem;
}

@media (max-width: 820px) {
  .client-wall {
    padding-top: 2.8rem;
    padding-bottom: 3.5rem;
  }

  .client-header {
    gap: 1.1rem;
  }

  .client-header h2 {
    font-size: clamp(2.75rem, 12.2vw, 4.1rem);
  }

  .client-intro {
    padding: .85rem 1rem .95rem;
  }

  .client-marquee {
    margin-top: 1.65rem;
  }

  .client-card {
    flex-basis: 175px;
    height: 122px;
  }

  .client-plate {
    height: 84px;
  }

  .client-logo {
    max-height: 66px;
  }

  .client-logo.logo-wide {
    max-height: 46px;
  }

  .client-logo.logo-tall {
    max-height: 72px;
  }
}

/* Oval client carousel with a focused, shimmering centre card */
.client-marquee {
  perspective: 1000px;
  padding-top: 1.1rem;
  padding-bottom: 1.1rem;
}

.client-track,
.client-set {
  transform-style: preserve-3d;
}

.client-track {
  animation-duration: 72s;
}

.client-card {
  --orbit-y: 0px;
  --orbit-scale: 1;
  --orbit-tilt: 0deg;
  transform:
    translateY(var(--orbit-y))
    scale(var(--orbit-scale))
    rotateY(var(--orbit-tilt));
  transform-origin: 50% 50%;
  transition:
    transform .18s linear,
    opacity .18s linear,
    box-shadow .28s,
    filter .28s;
}

.client-card:hover {
  transform:
    translateY(var(--orbit-y))
    scale(var(--orbit-scale))
    rotateY(var(--orbit-tilt));
  translate: 0 -4px;
}

.client-card.is-center {
  box-shadow:
    6px 6px 0 #070710,
    11px 11px 0 var(--client-edge),
    0 0 25px var(--client-edge),
    0 0 52px #18e4ff5e;
}

.client-card.is-center .client-logo {
  filter: none;
  opacity: 1;
  transform: scale(1.025);
}

.client-card.is-center:hover .client-logo {
  transform: scale(1.07);
}

.client-plate::after {
  content: "";
  position: absolute;
  z-index: 4;
  inset: -35%;
  pointer-events: none;
  opacity: 0;
  background:
    radial-gradient(circle at 50% 50%, #fff 0 2px, transparent 3px),
    linear-gradient(112deg, transparent 38%, #ffffffed 49%, #18e4ff8c 52%, transparent 63%);
  transform: translateX(-80%) rotate(5deg);
}

.client-card.is-center .client-plate::after {
  animation: client-centre-glint 3.4s ease-in-out infinite;
}

@keyframes client-centre-glint {
  0%, 20% {
    opacity: 0;
    transform: translateX(-85%) rotate(5deg);
  }
  32% {
    opacity: .85;
  }
  52% {
    opacity: .35;
    transform: translateX(85%) rotate(5deg);
  }
  53%, 100% {
    opacity: 0;
    transform: translateX(85%) rotate(5deg);
  }
}

@media (prefers-reduced-motion: reduce) {
  .client-card {
    transform: none !important;
    opacity: 1 !important;
  }

  .client-card.is-center .client-plate::after {
    animation: none;
  }
}

/* 2026 holographic client orbit: compact cards, generous spacing, dramatic focus */
.client-marquee {
  perspective: 1200px;
  padding-top: 1.75rem;
  padding-bottom: 1.75rem;
}

.client-track {
  position: relative;
  z-index: 2;
  animation-duration: 120s;
}

.client-set {
  gap: clamp(1.7rem, 2.4vw, 3rem);
  padding-right: clamp(1.7rem, 2.4vw, 3rem);
}

.client-card,
.client-card:hover {
  transform:
    translateY(var(--orbit-y))
    translateZ(var(--orbit-z, -90px))
    scale(var(--orbit-scale))
    rotateY(var(--orbit-tilt));
}

.client-card {
  flex-basis: clamp(158px, 11.5vw, 195px);
  height: 118px;
  padding: .42rem;
}

.client-plate {
  height: 76px;
  padding: .4rem;
  filter:
    blur(var(--orbit-blur, 1.4px))
    brightness(var(--orbit-brightness, .72))
    saturate(var(--orbit-saturation, .72));
  transition: filter .24s linear, background .35s, border-color .35s;
}

.client-logo {
  max-height: 58px;
}

.client-logo.logo-wide {
  max-height: 40px;
}

.client-logo.logo-square {
  max-height: 61px;
}

.client-logo.logo-tall {
  max-height: 66px;
}

.client-card > span {
  position: absolute;
  z-index: 8;
  right: .42rem;
  bottom: .42rem;
  left: .42rem;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 1.62rem;
  margin: 0;
  padding: .22rem .35rem;
  color: #fff;
  background: #070710f2;
  border: 1px solid #ffffff48;
  box-shadow:
    inset 3px 0 0 var(--client-edge),
    0 -5px 16px #0707109e,
    0 0 10px color-mix(in srgb, var(--client-edge) 32%, transparent);
  font-size: clamp(.56rem, .58vw, .66rem);
  line-height: 1.08;
  letter-spacing: .065em;
  text-shadow: 0 1px 2px #000, 0 0 8px #000;
}

.client-card.is-center {
  outline: 1px solid #ffffffa8;
  box-shadow:
    5px 5px 0 #070710,
    9px 9px 0 var(--client-edge),
    0 0 28px var(--client-edge),
    0 0 68px #18e4ff8a,
    0 0 112px #f4078c5e;
}

.client-card.is-center > span {
  color: #070710;
  background: var(--client-edge);
  border-color: #fff;
  text-shadow: none;
  box-shadow:
    0 0 14px var(--client-edge),
    0 0 28px color-mix(in srgb, var(--client-edge) 55%, transparent);
}

.client-card.is-center .client-plate {
  filter: none;
  background:
    radial-gradient(circle at 50% 22%, #ffffff22, transparent 38%),
    linear-gradient(145deg, #171329, #080811);
  border-color: #ffffffc7;
}

.client-focus-halo {
  position: absolute;
  z-index: 1;
  left: 50%;
  top: 50%;
  width: min(36vw, 520px);
  height: 210px;
  pointer-events: none;
  transform: translate(-50%, -50%);
  background:
    radial-gradient(ellipse at center, #ffffff1f 0 5%, #18e4ff32 20%, #f4078c22 43%, transparent 72%);
  filter: blur(7px);
  animation: client-halo-pulse 4.2s ease-in-out infinite;
}

.client-focus-halo::before {
  content: "";
  position: absolute;
  left: 50%;
  top: -78px;
  width: 280px;
  height: 330px;
  transform: translateX(-50%);
  clip-path: polygon(45% 0, 55% 0, 100% 100%, 0 100%);
  background: linear-gradient(180deg, transparent, #18e4ff1c 46%, #f4078c2e);
  filter: blur(5px);
}

.client-focus-halo::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 3px;
  width: 68%;
  height: 18px;
  transform: translateX(-50%);
  border-radius: 50%;
  background: #18e4ff8a;
  box-shadow: 0 0 32px #18e4ff, 0 0 70px #f4078c;
  filter: blur(7px);
}

@keyframes client-halo-pulse {
  0%, 100% { opacity: .66; transform: translate(-50%, -50%) scale(.96); }
  50% { opacity: 1; transform: translate(-50%, -50%) scale(1.04); }
}

@media (max-width: 700px) {
  .client-marquee {
    padding-top: 1.45rem;
    padding-bottom: 1.45rem;
  }

  .client-set {
    gap: 1.55rem;
    padding-right: 1.55rem;
  }

  .client-card {
    flex-basis: 150px;
    height: 114px;
  }

  .client-plate {
    height: 70px;
  }

  .client-card > span {
    min-height: 1.55rem;
    font-size: .56rem;
  }

  .client-focus-halo {
    width: 72vw;
    height: 190px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .client-focus-halo {
    animation: none;
  }
}

/* Stronger booking finale */
.booking-copy {
  position: relative;
}

.booking-finale-title {
  max-width: 720px;
  margin: 1rem 0 1.4rem;
  color: #fff;
  font-family: Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif;
  font-size: clamp(3.8rem, 6.6vw, 7.4rem) !important;
  line-height: .78;
  letter-spacing: -.02em;
  text-shadow: 5px 5px 0 #753bff, 9px 9px 0 #f4078c;
}

.booking-finale-title span {
  color: #18e4ff;
}

.booking-finale-title em {
  color: #c7ff31;
  font-style: normal;
}

.booking-copy > p {
  max-width: 610px;
  color: #ffffffbd;
  font-size: clamp(.92rem, 1.2vw, 1.08rem);
  line-height: 1.68;
}

.booking-promises {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .55rem;
  max-width: 590px;
  margin-top: 1.4rem;
}

.booking-promises span {
  display: flex;
  align-items: center;
  gap: .55rem;
  min-height: 44px;
  padding: .65rem .7rem;
  color: #fff;
  background: #ffffff0c;
  border: 1px solid #ffffff30;
  font-size: .56rem;
  font-weight: 950;
  letter-spacing: .09em;
}

.booking-promises i {
  width: 8px;
  height: 8px;
  flex: 0 0 auto;
  background: #c7ff31;
  box-shadow: 0 0 10px #c7ff31;
  transform: rotate(45deg);
}

.booking-form::before {
  content: "LET'S GO";
  position: absolute;
  z-index: -1;
  top: -1.35rem;
  right: 1.4rem;
  padding: .42rem .7rem;
  color: #07031c;
  background: #18e4ff;
  border: 2px solid #07031c;
  font-size: .5rem;
  font-weight: 950;
  letter-spacing: .16em;
  box-shadow: 4px 4px 0 #c7ff31;
  transform: rotate(3deg);
}

.form-trap {
  position: absolute !important;
  left: -10000px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

.captcha-shell {
  position: relative;
  min-height: 104px;
  padding: .72rem .8rem .62rem;
  overflow: hidden;
  background:
    linear-gradient(120deg, #ffffff 0 64%, #c7ff3129),
    #fff;
  border: 2px solid #07031c;
  box-shadow: 4px 4px 0 #18e4ff;
}

.captcha-shell::after {
  content: "";
  position: absolute;
  right: -28px;
  bottom: -34px;
  width: 92px;
  height: 92px;
  background: #f4078c;
  opacity: .12;
  transform: rotate(45deg);
  pointer-events: none;
}

.captcha-label {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: .48rem;
  margin-bottom: .55rem;
  color: #07031c;
  font-size: .52rem;
  font-weight: 950;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.captcha-label i {
  width: 8px;
  height: 8px;
  background: #c7ff31;
  border: 1px solid #07031c;
  box-shadow: 2px 2px 0 #f4078c;
  transform: rotate(45deg);
}

.cf-turnstile {
  position: relative;
  z-index: 1;
  min-height: 65px;
}

.booking-submit:disabled {
  cursor: wait;
  opacity: .72;
  filter: saturate(.55);
  transform: none !important;
}

.form-status {
  display: none;
  min-height: 46px;
  margin: 0;
  padding: .7rem .8rem;
  border: 2px solid #07031c;
  font-size: .66rem;
  font-weight: 850;
  line-height: 1.45;
}

.form-status:not(:empty) {
  display: block;
}

.form-status.is-sending {
  color: #07031c;
  background: #18e4ff;
  box-shadow: 4px 4px 0 #753bff;
}

.form-status.is-success {
  color: #07031c;
  background: #c7ff31;
  box-shadow: 4px 4px 0 #18e4ff;
}

.form-status.is-error {
  color: #fff;
  background: #f4078c;
  box-shadow: 4px 4px 0 #07031c;
}

@media (max-width: 900px) {
  .booking-finale-title {
    font-size: clamp(3.7rem, 13vw, 6.4rem) !important;
  }
}

@media (max-width: 560px) {
  .booking-promises {
    grid-template-columns: 1fr;
  }
}
