/* RVA Digital — ambient dark theme, animated background and accessibility layer (2026-09-23).
   Loaded after each page's own styles. Remove the <link> to this file (and the .rva-bg / skip link / toggle markup) to revert. */
html:root:not(#rva-theme){
  --ground:#0B0819; --surface:rgba(20,16,42,.74); --surface-2:rgba(32,26,62,.78);
  --ink:#F6F3FC; --ink-2:#DDD6EF; --muted:#C3BBDD; --line:rgba(255,255,255,.12); --line-strong:rgba(255,255,255,.26);
  --accent:#DDB6FF; --accent-soft:rgba(154,42,196,.28); --signal:#5BE3D6; --signal-soft:rgba(67,214,200,.16);
  --shadow:0 1px 2px rgba(0,0,0,.35), 0 24px 48px -28px rgba(0,0,0,.8);
  color-scheme:dark; background:#0B0819;
}
body{background:transparent!important;}

/* animated background */
.rva-bg{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none;background:#0B0819;}
.rva-bg span{position:absolute;display:block;will-change:transform,border-radius;
  border-radius:42% 58% 63% 37% / 45% 38% 62% 55%;
  animation:rva-morph 9s ease-in-out infinite alternate, var(--mv) var(--dur) ease-in-out infinite alternate;}
.rva-bg .b1{--mv:rva-move1;--dur:13s;width:64vmax;height:56vmax;right:-20vmax;top:-24vmax;filter:blur(60px);
  background:radial-gradient(circle at 45% 55%,#A46BFF 0%,#7A3BF3 38%,rgba(122,59,243,0) 70%);}
.rva-bg .b2{--mv:rva-move2;--dur:15s;width:58vmax;height:52vmax;right:-14vmax;bottom:-30vmax;filter:blur(70px);
  background:radial-gradient(circle at 50% 45%,#FF4F9E 0%,#C32C9E 40%,rgba(195,44,158,0) 70%);}
.rva-bg .b3{--mv:rva-move3;--dur:17s;width:52vmax;height:48vmax;left:-26vmax;top:18vh;filter:blur(80px);opacity:.75;
  background:radial-gradient(circle at 50% 50%,#6D28D9 0%,rgba(109,40,217,0) 68%);}
.rva-bg .b4{--mv:rva-move4;--dur:11s;width:54vmax;height:60vmax;left:12vw;top:-18vh;filter:blur(50px);
  background:radial-gradient(circle at 50% 50%,#05030F 0%,#07051A 45%,rgba(7,5,26,0) 72%);}
.rva-bg::before{content:"";position:absolute;inset:0;z-index:2;opacity:.9;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.07'/%3E%3C/svg%3E");}
/* darkening veil keeps body text at WCAG AA contrast over the glow (set by rva-ambient.js) */
.rva-bg::after{content:"";position:absolute;inset:0;z-index:1;background:#0B0819;opacity:var(--rva-veil,.58);}
@keyframes rva-morph{
  0%{border-radius:42% 58% 63% 37% / 45% 38% 62% 55%}
  50%{border-radius:63% 37% 35% 65% / 58% 60% 40% 42%}
  100%{border-radius:35% 65% 52% 48% / 38% 52% 48% 62%}}
@keyframes rva-move1{0%{transform:translate(0,0) rotate(0) scale(1)}35%{transform:translate(-22vw,14vh) rotate(40deg) scale(1.2)}70%{transform:translate(-8vw,30vh) rotate(70deg) scale(.95)}100%{transform:translate(-32vw,6vh) rotate(100deg) scale(1.15)}}
@keyframes rva-move2{0%{transform:translate(0,0) rotate(0) scale(1)}40%{transform:translate(-30vw,-22vh) rotate(-45deg) scale(1.15)}75%{transform:translate(-12vw,-38vh) rotate(-80deg) scale(.9)}100%{transform:translate(-40vw,-10vh) rotate(-110deg) scale(1.1)}}
@keyframes rva-move3{0%{transform:translate(0,0) scale(1)}50%{transform:translate(30vw,-18vh) scale(1.25)}100%{transform:translate(48vw,12vh) scale(1)}}
@keyframes rva-move4{0%{transform:translate(0,0) rotate(0) scale(1)}35%{transform:translate(28vw,22vh) rotate(-30deg) scale(.85)}70%{transform:translate(48vw,-6vh) rotate(-60deg) scale(1.1)}100%{transform:translate(10vw,34vh) rotate(-90deg) scale(.9)}}

/* header + logo */
.site-head{background:rgba(11,8,25,.72)!important;border-bottom-color:rgba(255,255,255,.08)!important;}
.brand .on-light{display:none!important}
.brand .on-dark{display:block!important}

/* page headings (homepage hero is overridden inline, larger) */
.hero h1{color:#fff;font-size:clamp(40px,6vw,84px);line-height:1.02;letter-spacing:-.03em;}
h1 em{font-style:normal;background:var(--grad-btn);color:#fff;-webkit-text-fill-color:#fff;padding:0 .16em .04em;border-radius:.16em;
  -webkit-box-decoration-break:clone;box-decoration-break:clone;}

/* surfaces */
.band-alt{background:rgba(20,16,42,.5)!important;}
.ticket, .facts, .card, .cta, section [class*="card"]{backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);}
.btn-primary{box-shadow:0 10px 30px -10px rgba(194,44,158,.7);}

/* accessibility */
.rva-skip{position:absolute;left:16px;top:-100px;z-index:100;padding:12px 18px;border-radius:8px;background:#fff;color:#0B0819!important;font:700 15px/1.2 var(--display,Arial,sans-serif);text-decoration:none;}
.rva-skip:focus{top:12px;}
main:focus{outline:none;}
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible, summary:focus-visible{outline:3px solid #F3D4FF!important;outline-offset:3px!important;}
.rva-motion-toggle{position:fixed;left:16px;bottom:16px;z-index:60;display:inline-flex;align-items:center;gap:8px;
  padding:9px 14px;border-radius:999px;border:1px solid rgba(255,255,255,.3);background:rgba(11,8,25,.85);color:#fff;
  font:600 13px/1 var(--display,Arial,sans-serif);cursor:pointer;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);}
.rva-motion-toggle:hover{background:rgba(40,30,80,.95);}
.rva-motion-toggle svg{width:12px;height:12px;fill:currentColor;}
.rva-paused .rva-bg span{animation-play-state:paused!important;}
@media (prefers-reduced-motion: reduce){
  .rva-bg span{animation:none!important}
  .rva-motion-toggle{display:none}
}
.rva-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}@media (max-width:600px){
  .rva-motion-toggle{padding:0;width:40px;height:40px;justify-content:center;left:12px;bottom:12px;}
  .rva-motion-toggle span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;}
  .rva-motion-toggle svg{width:14px;height:14px;}
}
/* spacing for copy after grids/tables on content pages */
.grid + p, .tablewrap + p, .ticks + p{margin-top:22px;}
.btn-row .btn + .btn{margin-left:0;}