
/* THEME TEXTURE & COMPONENT SYSTEM — layered after the base themes. */
html[data-theme]:not([data-theme="original"]){
 --theme-accent:var(--acid);--theme-accent-text:#111;--theme-focus:var(--acid);
 --theme-shadow:0 12px 32px #0003;--theme-card:var(--panel);--theme-card-border:var(--line);
}
html[data-theme="nightlife"]{--theme-accent-text:#160c22;--theme-card:linear-gradient(155deg,#20142f,#11101c);--theme-card-border:#54336e;--theme-focus:#ef9dff}
html[data-theme="signal"]{--theme-accent-text:#141414;--theme-card:#fffefa;--theme-card-border:#191919;--theme-focus:#c32c16}
html[data-theme="hifi"]{--theme-accent-text:#25190f;--theme-card:linear-gradient(150deg,#554735,#302720);--theme-card-border:#99815d;--theme-focus:#ffdc96}
html[data-theme="retro"]{--theme-accent-text:#fff9eb;--theme-card:#fff4dc;--theme-card-border:#a37b57;--theme-focus:#9e432b}
/* Locally bundled background art: no external image service or tracking. */
html[data-theme="nightlife"] body{background-image:linear-gradient(180deg,#090811aa,#09081180),url('theme-art/club-lights.svg');background-size:cover,cover;background-position:center;background-attachment:fixed}
html[data-theme="signal"] body{background-image:linear-gradient(120deg,#f1eee6e8,#f1eee6c9),url('theme-art/signal-grid.svg');background-size:cover,520px 520px;background-attachment:fixed}
html[data-theme="hifi"] body{background-image:linear-gradient(90deg,#17110d99,#17110d80),url('theme-art/walnut.svg');background-size:cover,650px 650px;background-attachment:fixed}
html[data-theme="retro"] body{background-image:url('theme-art/grooves.svg'),url('theme-art/paper.svg');background-size:650px 650px,320px 320px;background-position:110% 30%,0 0;background-attachment:fixed}
/* Bring every common interactive element into the selected palette, not just the primary button. */
html[data-theme]:not([data-theme="original"]) :is(.gig,.record-card,.panel,.stat,.admin-panel,.theme-option,.record-facts,.admin-media-item){background:var(--theme-card);border-color:var(--theme-card-border);color:var(--ink)}
html[data-theme]:not([data-theme="original"]) :is(.gig,.record-card,.panel,.stat,.admin-panel){box-shadow:var(--theme-shadow)}
html[data-theme]:not([data-theme="original"]) :is(.gig,.record-card,.artist-row,.venue-row,.admin-media-item):hover{border-color:var(--acid)}
html[data-theme]:not([data-theme="original"]) :is(.btn,button,.admin-tabs button,.admin-media-item button,.theme-preview-btn,.theme-action-bar button,.record-tools button){font-family:inherit;accent-color:var(--acid)}
html[data-theme]:not([data-theme="original"]) :is(.btn,.admin-tabs button.active,.theme-action-bar .btn){background:var(--acid);color:var(--theme-accent-text);border-color:var(--acid);font-weight:700}
html[data-theme]:not([data-theme="original"]) :is(.admin-tabs button:not(.active),.admin-media-item button,.theme-preview-btn,.theme-action-bar button:not(.btn)){background:var(--panel2);color:var(--ink);border:1px solid var(--line)}
html[data-theme]:not([data-theme="original"]) :is(.btn,.admin-tabs button,.admin-media-item button,.theme-preview-btn,.theme-action-bar button):hover{filter:brightness(1.1);transform:translateY(-1px)}
html[data-theme]:not([data-theme="original"]) :is(input,select,textarea,.toolbar input,.toolbar select,.record-tools input,.record-tools select,.admin-field input,.admin-field select,.admin-field textarea){background:var(--panel2);border:1px solid var(--line);color:var(--ink);accent-color:var(--acid)}
html[data-theme]:not([data-theme="original"]) :is(input,select,textarea,button,a):focus-visible{outline:3px solid var(--theme-focus);outline-offset:3px}
html[data-theme]:not([data-theme="original"]) :is(.date,.count,.rating,.eyebrow,.record-card .rating,.stat b,.brand span,nav a.active,.admin-status.ok){color:var(--acid)}
html[data-theme]:not([data-theme="original"]) :is(.tag,.badge,.pill,.admin-import-row,.record-disc li){border-color:var(--line);color:var(--muted)}
html[data-theme]:not([data-theme="original"]) :is(.tag,.badge,.pill){background:var(--panel2)}
html[data-theme]:not([data-theme="original"]) :is(.empty,.record-disc li,.artist-row,.venue-row,.top,.foot){border-color:var(--line)}
html[data-theme]:not([data-theme="original"]) :is(.muted,.intro,.gig p,.record-card small,.record-facts dt,.stat small,.admin-help){color:var(--muted)}
html[data-theme]:not([data-theme="original"]) ::selection{background:var(--acid);color:var(--theme-accent-text)}
/* Give the artist rail the same surface, highlights and typography as the rest of the page. */
html[data-theme]:not([data-theme="original"]) .related-panel{background:var(--theme-card);border-color:var(--theme-card-border);color:var(--ink)}
html[data-theme]:not([data-theme="original"]) :is(.related-kicker,.related-heading>span,.related-timeline-copy time,.related-chevron,.related-view-all){color:var(--acid)}
html[data-theme]:not([data-theme="original"]) :is(.related-live-dot,.related-timeline-dot){background:var(--acid)}
html[data-theme]:not([data-theme="original"]) :is(.related-stats,.related-group,.related-record-item){border-color:var(--line)}
html[data-theme]:not([data-theme="original"]) :is(.related-stats strong,.related-heading h3,.related-record-copy strong,.related-timeline-copy strong){color:var(--ink)}
html[data-theme]:not([data-theme="original"]) :is(.related-record-copy small,.related-timeline-copy small,.related-empty){color:var(--muted)}
html[data-theme]:not([data-theme="original"]) :is(.related-feature-cta,.related-footer){background:var(--acid);color:var(--theme-accent-text)!important}
html[data-theme]:not([data-theme="original"]) .related-feature-overlay h2{color:#fff}
/* Individual material treatments */
html[data-theme="nightlife"] :is(.gig,.record-card){background:linear-gradient(155deg,#231334ed,#110e1ded);border:1px solid #54336e;box-shadow:0 12px 35px #08031290,0 0 30px #a331ff12}
html[data-theme="nightlife"] :is(.gig,.record-card):hover{box-shadow:0 14px 42px #b137ff55}
html[data-theme="nightlife"] :is(.btn,.admin-tabs button.active){background:linear-gradient(110deg,#c657ff,#f04cb8);color:#160c22;box-shadow:0 4px 22px #b63dff50}
html[data-theme="signal"] :is(.gig,.record-card,.admin-panel){border:2px solid #191919;border-radius:0;box-shadow:5px 5px 0 #191919}
html[data-theme="signal"] :is(.btn,.admin-tabs button.active){border:2px solid #191919;border-radius:0;box-shadow:3px 3px 0 #191919}
html[data-theme="hifi"] :is(.gig,.record-card,.admin-panel){border:2px ridge #a18b6a;background:linear-gradient(150deg,#5a4b39,#302720);box-shadow:inset 0 2px 2px #ffffff25,0 10px 24px #0008}
html[data-theme="hifi"] :is(.btn,.admin-tabs button.active){background:linear-gradient(#ffdc98,#bd8541);color:#24170f;box-shadow:inset 0 2px #fff6,0 3px 0 #78522b}
html[data-theme="retro"] :is(.gig,.record-card,.admin-panel){border:2px solid #a37b57;border-radius:18px 5px 18px 5px;box-shadow:4px 5px 0 #9e432b24}
html[data-theme="retro"] :is(.btn,.admin-tabs button.active){border:2px solid #803f2a;border-radius:30px;box-shadow:3px 3px 0 #803f2a}
/* Theme selection miniatures use the actual visual motifs. */
.theme-swatch-nightlife{background-image:linear-gradient(#09081144,#09081144),url('theme-art/club-lights.svg');background-size:cover}
.theme-swatch-signal{background-image:url('theme-art/signal-grid.svg');background-size:520px 520px}
.theme-swatch-hifi{background-image:url('theme-art/walnut.svg');background-size:650px 650px}
.theme-swatch-retro{background-image:url('theme-art/grooves.svg'),url('theme-art/paper.svg');background-size:300px 300px,320px 320px}
@media(prefers-reduced-motion:reduce){html[data-theme] :is(.btn,.gig,.record-card,.theme-preview-btn){transition:none!important;transform:none!important}}


/* Richer physical motifs, stage imagery and purposeful motion. Original remains untouched. */
html[data-theme]:not([data-theme="original"]) .hero{position:relative;isolation:isolate;min-height:265px;overflow:hidden}
html[data-theme]:not([data-theme="original"]) .hero::before{content:"";position:absolute;pointer-events:none;z-index:-1;right:0;top:0;width:min(46%,420px);height:100%;background-position:center;background-repeat:no-repeat;background-size:contain;opacity:.92}
html[data-theme="hifi"] .hero::before{background-image:url('theme-art/turntable.svg');width:min(49%,510px);transform:rotate(-5deg);filter:drop-shadow(0 18px 28px #0009)}
html[data-theme="nightlife"] .hero::before{background-image:url('theme-art/disco-ball.svg');width:min(42%,380px);opacity:.8;filter:drop-shadow(0 0 38px #a62cff88);animation:archive-disco-float 9s ease-in-out infinite}
html[data-theme="signal"] .hero::before{background-image:url('theme-art/signal-poster.svg');width:min(40%,380px);transform:rotate(5deg);filter:drop-shadow(12px 12px 0 #111)}
html[data-theme="retro"] .hero::before{background-image:url('theme-art/retro-sleeve.svg');width:min(39%,350px);transform:rotate(8deg);filter:drop-shadow(11px 15px 0 #8d4d3455)}
html[data-theme="hifi"] .hero::after{content:"33⅓ RPM  •  STEREO  •  HIGH FIDELITY";position:absolute;right:8%;bottom:4px;color:#e4bb78;font:10px 'DM Mono',monospace;letter-spacing:2px;opacity:.8}
/* Decorative LP on record cards and hi-fi controls, animated gently on hover only. */
html[data-theme="hifi"] .record-card{position:relative;overflow:hidden}
html[data-theme="hifi"] .record-card::after{content:"";position:absolute;pointer-events:none;right:-38px;top:28px;width:100px;aspect-ratio:1;border-radius:50%;background:repeating-radial-gradient(circle at center,#1d1d1c 0 4px,#353535 5px 6px,#161616 7px 9px);border:4px solid #a99778;box-shadow:0 5px 15px #0009;opacity:.26;transition:transform 1.3s ease,opacity .3s}
html[data-theme="hifi"] .record-card:hover::after{transform:rotate(120deg);opacity:.72}
html[data-theme="hifi"] :is(.stat,.panel,.gig,.record-card){position:relative}
html[data-theme="hifi"] .stat::before{content:"";display:block;width:7px;height:7px;border-radius:50%;background:#ffc66a;box-shadow:0 0 9px #ffb642;margin-bottom:8px}
html[data-theme="hifi"] .btn:active{transform:translateY(3px)!important;box-shadow:inset 0 2px 5px #0008!important}
/* Nightlife: animated light pools and luminous accents without flashing. */
html[data-theme="nightlife"] body{background-image:radial-gradient(ellipse 34vw 40vw at 13% 34%,#ad24b536,transparent 75%),radial-gradient(ellipse 38vw 36vw at 91% 65%,#233de83a,transparent 70%),linear-gradient(180deg,#090811bb,#090811aa),url('theme-art/club-lights.svg');background-size:auto,auto,cover,cover;background-attachment:fixed}
html[data-theme="nightlife"] .hero h1{text-shadow:0 0 34px #c13df74b}
html[data-theme="nightlife"] :is(.gig,.record-card,.panel){transition:transform .3s,box-shadow .35s,border-color .3s}
html[data-theme="nightlife"] :is(.gig,.record-card):hover{transform:translateY(-5px);box-shadow:0 15px 40px #be4bff55,0 0 20px #f248e629}
/* Signal: poster-like transitions and typographic framing. */
html[data-theme="signal"] :is(.gig,.record-card,.panel){transition:transform .18s ease,box-shadow .18s ease}
html[data-theme="signal"] :is(.gig,.record-card):hover{transform:translate(-3px,-3px);box-shadow:9px 9px 0 #111}
html[data-theme="signal"] :is(.gig,.record-card) h3{text-transform:uppercase;letter-spacing:-.05em}
html[data-theme="signal"] nav a.active{background:#ff4e2f;color:#111;padding:5px 7px}
/* Retro: paper and printed record-sleeve framing. */
html[data-theme="retro"] .record-card{background-image:linear-gradient(#fff9e5d9,#fff2d7db),url('theme-art/paper.svg');background-size:cover,220px 220px}
html[data-theme="retro"] :is(.gig,.record-card){transition:transform .4s cubic-bezier(.2,.8,.2,1),box-shadow .4s}
html[data-theme="retro"] :is(.gig,.record-card):hover{transform:rotate(-1deg) translateY(-4px);box-shadow:9px 11px 0 #9e432b45}
html[data-theme="retro"] .hero h1{text-shadow:3px 3px 0 #e9b17a}
/* Make preview tiles display the same art as the published theme. */
.theme-swatch-hifi::after,.theme-swatch-nightlife::after,.theme-swatch-signal::after,.theme-swatch-retro::after{content:"";position:absolute;right:-18px;top:16px;width:155px;height:155px;pointer-events:none;background-position:center;background-size:contain;background-repeat:no-repeat;opacity:.9}
.theme-swatch-hifi::after{background-image:url('theme-art/turntable.svg')}
.theme-swatch-nightlife::after{background-image:url('theme-art/disco-ball.svg');animation:archive-disco-float 9s ease-in-out infinite}
.theme-swatch-signal::after{background-image:url('theme-art/signal-poster.svg');transform:rotate(7deg)}
.theme-swatch-retro::after{background-image:url('theme-art/retro-sleeve.svg');transform:rotate(8deg)}
.theme-swatch :is(.theme-swatch-top,.theme-swatch-head,.theme-swatch-foot){position:relative;z-index:1}
@keyframes archive-disco-float{0%,100%{transform:translateY(0) rotate(-5deg)}50%{transform:translateY(-12px) rotate(5deg)}}
/* Consistent buttons, icons, setlists, media tiles and navigation in all four alternate themes. */
html[data-theme]:not([data-theme="original"]) :is(.setlist-icon,.media-badges,.media-tags,.setlist-display li::marker){color:var(--acid)}
html[data-theme]:not([data-theme="original"]) :is(.setlist-icon,.media-tile,.gig-media section,.record-facts){border-color:var(--line)}
html[data-theme]:not([data-theme="original"]) .gig-media section{background:var(--theme-card)}
html[data-theme]:not([data-theme="original"]) :is(.setlist-edit-row input,.setlist-edit-row textarea){background:var(--panel2);border-color:var(--line);color:var(--ink)}
html[data-theme]:not([data-theme="original"]) .setlist-display li::marker{color:var(--acid)}
html[data-theme]:not([data-theme="original"]) nav a:hover{color:var(--acid)}
@media(max-width:700px){html[data-theme]:not([data-theme="original"]) .hero::before{width:42%;opacity:.28;right:-3%}html[data-theme]:not([data-theme="original"]) .hero{min-height:0}html[data-theme="hifi"] .hero::after{display:none}}
@media(prefers-reduced-motion:reduce){html[data-theme] .hero::before,.theme-swatch-nightlife::after{animation:none!important}html[data-theme] :is(.gig,.record-card,.panel,.btn):hover{transform:none!important}html[data-theme] :is(.gig,.record-card,.panel,.btn){transition:none!important}}

/* v1.1.2: show actual bundled illustrations rather than relying on background pseudo-elements. */
.theme-swatch{isolation:isolate}
.theme-swatch-art{display:block;position:absolute;inset:0;z-index:0;pointer-events:none;height:auto;overflow:hidden}
.theme-swatch-art img{position:absolute;right:0;top:7%;width:58%;height:88%;object-fit:contain;filter:drop-shadow(0 12px 15px #0007)}
.theme-swatch-nightlife .theme-swatch-art img{width:56%;right:0;animation:archive-disco-float 9s ease-in-out infinite}
.theme-swatch-hifi .theme-swatch-art img{width:68%;right:-4%;top:4%;height:92%}
.theme-swatch-signal .theme-swatch-art img{width:60%;right:-2%;transform:rotate(5deg)}
.theme-swatch-retro .theme-swatch-art img{width:59%;right:0;transform:rotate(7deg)}
.theme-swatch-hifi::after,.theme-swatch-nightlife::after,.theme-swatch-signal::after,.theme-swatch-retro::after{display:none}
.theme-swatch :is(.theme-swatch-top,.theme-swatch-head,.theme-swatch-foot,.theme-swatch-name){z-index:2}
@media(prefers-reduced-motion:reduce){.theme-swatch-nightlife .theme-swatch-art img{animation:none}}

/* v1.1.3: keep the featured artist panel in the selected visual system. */
html[data-theme]:not([data-theme="original"]) .related-feature{background:var(--panel2)}
html[data-theme]:not([data-theme="original"]) .related-cover-placeholder{background:radial-gradient(circle at 75% 30%,color-mix(in srgb,var(--acid) 18%,transparent),transparent 62%),var(--panel2)}
html[data-theme]:not([data-theme="original"]) .related-cover-placeholder b{color:color-mix(in srgb,var(--acid) 30%,transparent)}
html[data-theme]:not([data-theme="original"]) .related-feature-overlay{background:linear-gradient(180deg,transparent 0%,color-mix(in srgb,var(--panel) 92%,transparent) 75%,var(--panel) 100%)}
html[data-theme]:not([data-theme="original"]) .related-feature-overlay>span{color:var(--acid)}
html[data-theme]:not([data-theme="original"]) .related-feature-overlay h2{color:var(--ink)}
html[data-theme]:not([data-theme="original"]) .related-feature-cover>span{background:var(--panel);color:var(--ink)}
html[data-theme]:not([data-theme="original"]) .related-timeline{border-left-color:var(--line)}
html[data-theme]:not([data-theme="original"]) .related-timeline-dot{border-color:var(--panel)}
html[data-theme]:not([data-theme="original"]) .related-record-thumb{background:var(--panel2);color:var(--acid)}
html[data-theme="hifi"] .related-feature{background:linear-gradient(145deg,#453522,#241d18)}
html[data-theme="hifi"] .related-cover-placeholder{background:radial-gradient(circle at 72% 40%,#b98a4140,transparent 60%),url('theme-art/walnut.svg'),#33271e;background-size:cover,400px 400px,auto}
html[data-theme="hifi"] .related-feature-overlay{background:linear-gradient(180deg,transparent,#241b16e8 72%,#241b16)}
html[data-theme="hifi"] .related-feature-overlay h2{color:#fff0d4}
html[data-theme="nightlife"] .related-feature-overlay{background:linear-gradient(180deg,transparent,#120b21e8 72%,#120b21)}
html[data-theme="nightlife"] .related-feature-overlay h2{color:#fff}
html[data-theme="signal"] .related-feature-overlay{background:linear-gradient(180deg,transparent,#fffefae8 65%,#fffefa)}
html[data-theme="retro"] .related-feature-overlay{background:linear-gradient(180deg,transparent,#fff4d9ed 70%,#fff4d9)}
