/*
Theme Name: F.A.H.M. — House Music
Author: F.A.H.M.
Description: Thème artiste sur mesure, français / anglais. Réglages dans Apparence > Personnaliser > F.A.H.M. — Contenus.
Version: 1.0.0
Requires PHP: 8.0
*/
:root{--bg:#101110;--paper:#ecece3;--muted:#a9aaa0;--acid:#b06aff;--line:#363832}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;background:var(--bg);color:var(--paper);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:focus-visible{outline:2px solid var(--acid);outline-offset:6px}::selection{background:var(--acid);color:var(--bg)}.header{height:88px;padding:0 4%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:var(--bg);position:relative;z-index:5}.wordmark{font-weight:900;font-size:27px;letter-spacing:-1.8px}.dot{color:var(--acid)}nav{display:flex;gap:35px;font-size:13px}nav a:hover,.text-link:hover{color:var(--acid)}.header-right{display:flex;align-items:center;gap:30px}.languages{display:flex;gap:9px;font:11px monospace}.languages a{min-height:44px;display:flex;align-items:center;color:var(--muted)}.languages span{align-self:center;color:#666}.languages [aria-current]{color:var(--acid)}.booking-top{background:var(--acid);color:#101110;padding:14px 19px;font-size:12px;font-weight:700}.booking-top span{margin-left:23px}.hero{position:relative;min-height:690px;height:calc(100svh - 88px);max-height:1050px;overflow:hidden;padding:30px 4% 25px;display:flex;flex-direction:column;justify-content:space-between}.hero-meta,.hero-foot,.section-label{display:flex;justify-content:space-between;gap:20px;font:10px/1.5 monospace;letter-spacing:1.3px;position:relative;z-index:2}.hero-meta{color:var(--muted)}.hero-foot{color:#bfc0b4}.hero-copy{position:relative;z-index:2;padding-top:50px}.eyebrow{font:11px/1.5 monospace;letter-spacing:1.5px}.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--acid);margin-right:8px}.hero h1{font-size:clamp(100px,18.3vw,300px);letter-spacing:-.085em;line-height:.95;margin:20px 0 30px;font-weight:900}.hero h1>span{color:var(--acid)}.hero-bottom{display:flex;justify-content:space-between;align-items:center;max-width:1050px}.hero-bottom p{font-size:19px;line-height:1.5;margin:0}.round-link{display:flex;gap:24px;align-items:center;font-size:12px}.round-link b{width:58px;height:58px;border:1px solid #8d729e;border-radius:50%;display:grid;place-items:center;font-size:24px;font-weight:400}.round-link:hover b{background:var(--acid);color:#101110}.hero-art{position:absolute;inset:0;pointer-events:none;opacity:.85}.disc{position:absolute;width:600px;height:600px;right:-80px;top:-55px;border-radius:50%;background:repeating-radial-gradient(circle,#241b2c 0px,#241b2c 1px,#151018 2px,#151018 5px);border:1px solid #8254a4;box-shadow:0 0 150px #933dff25;transform:rotate(-28deg)}.disc-core{position:absolute;inset:35%;border-radius:50%;background:var(--acid);color:#1b0b29;display:flex;align-items:center;justify-content:center;font-size:65px;font-weight:900;gap:10px}.disc-core span{font:7px/1.5 monospace}.orbit{position:absolute;width:1000px;height:380px;border:1px solid #ab70df55;border-radius:50%;right:-300px;top:40px;transform:rotate(-38deg)}.orbit-two{transform:rotate(-48deg);top:55px}.orbit-three{transform:rotate(-58deg);top:70px}.art-cross{position:absolute;right:32%;top:16%;font:40px monospace;color:var(--acid)}.hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.27}.ticker{background:var(--acid);color:#141810;overflow:hidden;padding:21px 0;font-size:23px;letter-spacing:-.7px;font-weight:800;white-space:nowrap}.ticker span{display:block;min-width:max-content;text-align:center}.ticker i{font-style:normal;margin:0 45px}.section{padding:80px 6% 95px;scroll-margin-top:20px}.section-label{padding-bottom:24px;border-bottom:1px solid var(--line);margin-bottom:58px;color:var(--muted)}h2{font-size:clamp(42px,5.3vw,82px);line-height:1.04;letter-spacing:-3.3px;font-weight:700;margin:0 0 30px}h2 em{font-style:normal;color:var(--muted)}.sound-layout{display:grid;grid-template-columns:1fr 1fr;gap:9%;align-items:center}.body-copy{font-size:16px;line-height:1.8;color:#bfc0b7;max-width:465px;margin:0 0 25px}.text-link{font-size:12px;display:inline-block;border-bottom:1px solid #777;padding-bottom:10px;margin-top:12px}.sound-panel{background:#211a29;border:1px solid #513b63;padding:28px}.panel-head{display:flex;justify-content:space-between;font:9px monospace;letter-spacing:1px;color:var(--muted)}.wave{height:160px;display:flex;align-items:center;gap:4px;margin:25px 0}.wave i{width:100%;height:var(--h);background:var(--acid);opacity:.8}.panel-bottom{display:flex;justify-content:space-between;align-items:center;font-size:42px;letter-spacing:-2px;font-weight:700}.panel-bottom small{font:9px monospace;letter-spacing:1px;color:var(--muted)}.panel-symbol{font-size:50px;color:var(--acid)}.panel-note,.panel-action{font:11px/1.7 monospace;color:var(--muted);border-top:1px solid #513b63;margin:20px 0 0;padding-top:18px;display:block}.panel-action{color:var(--acid)}.live{background:#e5e6dc;color:#151812}.live .section-label{border-color:#bfc2b5;color:#5a6052}.live h2 em{color:#786783}.live-heading{display:flex;justify-content:space-between;gap:40px;align-items:center}.live .body-copy{color:#555e4e}.live .text-link:hover{color:#64358b}.locations{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #bfc2b5;border-bottom:1px solid #bfc2b5;margin-top:35px}.locations>div{padding:27px 20px 30px;border-right:1px solid #bfc2b5}.locations>div:first-child{padding-left:0}.locations>div:last-child{border:0}.locations span,.locations small{font:10px monospace;letter-spacing:1px;color:#68715e}.locations h3{font-size:clamp(22px,2.5vw,36px);letter-spacing:-1px;font-weight:500;margin:26px 0 12px}.dates{display:grid;grid-template-columns:1fr 2fr 1fr;gap:25px;align-items:start;margin-top:38px}.dates p{font-size:13px;line-height:1.7;max-width:420px;margin:0;color:#555e4e}.dates a{font:11px monospace;justify-self:end;padding:12px 0}.dates .eyebrow{margin:10px 0}.about-layout{display:grid;grid-template-columns:1fr 1fr;gap:9%;align-items:center}.about-mark{aspect-ratio:1;background:#201726;position:relative;overflow:hidden;display:grid;place-items:center;border:1px solid #493353}.about-mark:before,.about-mark:after{content:'';width:120%;height:48%;border:1px solid #79528c;position:absolute;transform:rotate(-40deg);border-radius:50%}.about-mark:after{transform:rotate(40deg)}.about-mark>span{color:var(--acid);font-size:clamp(130px,24vw,350px);font-weight:900;letter-spacing:-25px;z-index:1}.about-mark small{position:absolute;bottom:24px;left:24px;font:10px/1.5 monospace;letter-spacing:2px}.booking{background:var(--acid);color:#1b0b29}.booking .section-label{border-color:#8044ad;color:#341445}.booking .status-dot{background:#37124e}.booking>.eyebrow{margin-bottom:25px}.booking h2{font-size:clamp(65px,10vw,150px);line-height:.95;letter-spacing:-6px;position:relative}.booking h2 em{color:#482361}.booking h2>span{position:absolute;right:0;top:0;font-weight:400}.booking-bottom{display:flex;justify-content:space-between;align-items:end;gap:25px;margin-top:45px}.email{font-size:clamp(18px,2.7vw,40px);letter-spacing:-1px;border-bottom:1px solid #63378a;padding-bottom:12px}.booking-bottom p{font-size:13px;line-height:1.7;margin:0}footer{padding:35px 4%;display:flex;align-items:center;justify-content:space-between;gap:20px}footer>span,footer>a:not(.wordmark){font:9px monospace;letter-spacing:1px;color:var(--muted)}.skip{position:fixed;top:-80px;background:var(--acid);color:#101110;z-index:100;padding:20px}.skip:focus{top:0}@media(min-width:1600px){.section{padding-left:max(6%,calc((100vw - 1450px)/2));padding-right:max(6%,calc((100vw - 1450px)/2))}}@media(max-width:900px){.header{padding:0 5%;height:76px}nav{gap:18px}.header-right{gap:15px}.hero{min-height:650px;height:calc(90svh - 76px);padding:25px 5%}.disc{right:-230px;top:-20px}.hero h1{font-size:19vw}.hero-meta span:last-child{display:none}.hero-bottom{align-items:end;gap:20px}.hero-bottom p{font-size:17px}.section{padding:65px 5%}.sound-layout,.about-layout{gap:6%}.sound-panel{padding:20px}h2{letter-spacing:-2px}.locations>div{padding:22px 12px}.dates{grid-template-columns:1fr 2fr}.dates a{grid-column:2;justify-self:start}.booking h2{letter-spacing:-4px}.booking-bottom{align-items:start;flex-direction:column;gap:25px}}@media(max-width:600px){.header{height:74px}.wordmark{font-size:23px}nav{display:none}.header-right{gap:16px}.booking-top{padding:12px}.booking-top span{margin-left:10px}.hero{min-height:610px;height:calc(91svh - 74px)}.hero-meta{font-size:8px}.hero-copy{padding-top:40px}.hero h1{font-size:21vw;margin:25px 0 35px}.hero-bottom{display:block}.hero-bottom p{font-size:17px;max-width:270px}.round-link{margin-top:27px;gap:18px}.round-link b{height:45px;width:45px}.disc{width:430px;height:430px;right:-220px;top:5px}.disc-core{font-size:45px}.disc-core span{font-size:5px}.orbit{right:-660px}.art-cross{right:15%;top:34%}.hero-foot{font-size:8px;letter-spacing:.6px}.hero-foot span:last-child{display:none}.ticker{font-size:17px;padding:18px 0}.ticker i{margin:0 20px}.section{padding:50px 6% 60px}.section-label{font-size:8px;letter-spacing:.5px;margin-bottom:35px;padding-bottom:18px}.section-label span:last-child{max-width:45%;text-align:right}h2{font-size:44px;letter-spacing:-2px}.sound-layout,.about-layout{grid-template-columns:1fr;gap:35px}.body-copy{font-size:15px}.sound-panel{padding:22px}.wave{height:125px}.live-heading{display:block}.locations{grid-template-columns:1fr 1fr}.locations>div,.locations>div:first-child{padding:24px 15px}.locations>div:nth-child(2){border-right:0}.locations>div:nth-child(-n+2){border-bottom:1px solid #bfc2b5}.locations h3{font-size:26px;margin:20px 0 12px}.dates{grid-template-columns:1fr;gap:10px}.dates a{grid-column:auto}.about-mark{max-height:330px;width:100%;aspect-ratio:auto;height:300px}.about-mark>span{font-size:240px}.booking h2{font-size:16vw;letter-spacing:-3px}.booking h2>span{font-size:45px;top:-4px;right:0}.booking .section-label{gap:15px}.booking .status{font-size:7px}.booking>.eyebrow{font-size:9px}.booking-bottom{margin-top:30px}.email{font-size:22px;letter-spacing:-.6px}footer{display:grid;grid-template-columns:1fr 1fr;padding:30px 6%;gap:25px}footer>*:nth-child(2n){justify-self:end}footer>span,footer>a:not(.wordmark){font-size:8px;letter-spacing:.4px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.skip{top:0;left:0;transform:translateY(-200%);clip-path:inset(50%);width:1px;height:1px;overflow:hidden}.skip:focus{transform:none;clip-path:none;width:auto;height:auto;overflow:visible}

.about-portrait{aspect-ratio:1;border:1px solid #493353;overflow:hidden;background:#201726}.about-portrait img{display:block;width:100%;height:100%;object-fit:cover;filter:grayscale(1)}

html[lang="fr"] .live-heading h2{white-space:nowrap;font-size:clamp(32px,4.2vw,68px)}@media(max-width:900px){html[lang="fr"] .live-heading{flex-wrap:wrap}}@media(max-width:600px){html[lang="fr"] .live-heading h2{font-size:clamp(24px,7.5vw,42px);letter-spacing:-1.3px}}

.hero-art{display:none}.hero-photo{opacity:1;z-index:0;object-position:65% center}.hero:after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(0,0,0,.55),rgba(0,0,0,.12)),linear-gradient(0deg,rgba(0,0,0,.65),transparent 45%,rgba(0,0,0,.15))}.hero-meta,.hero-foot{color:#d1d1cb}@media(max-width:600px){.hero-photo{object-position:72% center}.hero:after{background:linear-gradient(90deg,rgba(0,0,0,.55),rgba(0,0,0,.25)),linear-gradient(0deg,rgba(0,0,0,.65),transparent 65%)}}

.demo-events{margin-top:50px;border-top:1px solid #bfc2b5;padding-top:30px}.events-intro{display:flex;align-items:center;justify-content:space-between;gap:20px}.events-intro h3{font-size:24px;letter-spacing:-.7px;margin:0}.events-intro>span{font:9px/1.5 monospace;letter-spacing:.6px;background:#d4c3e4;padding:9px 12px;color:#341445}.events-disclaimer{font-size:12px;line-height:1.7;color:#555e4e;max-width:660px;margin:18px 0 28px}.event-row{display:grid;grid-template-columns:110px 1fr auto;gap:25px;align-items:start;border-top:1px solid #bfc2b5;padding:26px 0}.event-row:last-child{border-bottom:1px solid #bfc2b5}.event-row time{display:flex;flex-direction:column;gap:6px}.event-row time b{font-size:36px;font-weight:500;line-height:1}.event-row time span{font:10px monospace;color:#555e4e}.event-name h4{font-size:22px;letter-spacing:-.6px;margin:0 0 10px;font-weight:500}.event-name p{font-size:12px;color:#555e4e;margin:0}.event-details{width:180px}.event-details summary{cursor:pointer;list-style:none;background:#1b0b29;color:#f5effb;min-height:46px;padding:15px 17px;font-size:12px;display:flex;justify-content:space-between;gap:15px}.event-details summary::-webkit-details-marker{display:none}.event-details summary:focus-visible{outline:2px solid #64358b;outline-offset:4px}.event-details[open]{width:300px}.event-details[open] summary{background:#64358b}.event-description{padding:18px;background:#d9d7dc;font-size:12px;line-height:1.7}.event-description strong{font-size:11px;color:#482361}.event-description a{text-decoration:underline;text-underline-offset:4px}.event-description p{margin:12px 0}@media(max-width:600px){.events-intro{align-items:start;flex-direction:column;gap:12px}.events-intro h3{font-size:22px}.event-row{grid-template-columns:60px 1fr;gap:15px}.event-name h4{font-size:20px}.event-details,.event-details[open]{grid-column:2;width:100%}.event-row time b{font-size:30px}.event-row time span{font-size:9px}}
/* Progressive entrance animations; content stays visible when JS is unavailable. */
@media(prefers-reduced-motion:no-preference){.reveal{opacity:0;transform:translateY(22px);transition:opacity .75s ease var(--reveal-delay,0ms),transform .75s cubic-bezier(.2,.65,.3,1) var(--reveal-delay,0ms)}.reveal.is-visible{opacity:1;transform:translateY(0)}.hero-photo{animation:fahm-photo-in 1.4s ease-out both}@keyframes fahm-photo-in{from{opacity:0;transform:scale(1.035)}to{opacity:1;transform:scale(1)}}.booking-top,.event-details summary,.round-link b{transition:background-color .2s ease,transform .2s ease}.booking-top:hover,.event-details summary:hover{transform:translateY(-2px)}}@media(prefers-reduced-motion:reduce){.reveal{opacity:1!important;transform:none!important;transition:none!important}}@media print{.reveal{opacity:1!important;transform:none!important}}
/* Hover effects limited to precise pointers; touch keeps its normal behavior. */
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
.about-portrait img{transition:transform .65s cubic-bezier(.2,.65,.3,1),filter .65s ease}.about-portrait:hover img{transform:scale(1.045);filter:grayscale(1) contrast(1.08)}
.hero-photo{transition:filter .6s ease}.hero:hover .hero-photo{filter:contrast(1.08)}
h1,h2,h3,h4{transition:color .3s ease,text-shadow .3s ease}h1:hover{color:#fff;text-shadow:0 0 35px #b06aff30}h2 em{transition:color .3s ease}h2:hover em{color:var(--acid)}.live h2:hover em{color:#64358b}.booking h2:hover em{color:#281039}
.text-link{background-image:linear-gradient(var(--acid),var(--acid));background-size:0 1px;background-repeat:no-repeat;background-position:left bottom;transition:background-size .3s ease,color .3s ease}.text-link:hover{background-size:100% 1px}.live .text-link{background-image:linear-gradient(#64358b,#64358b)}
nav a,footer a,.email,.languages a{transition:color .25s ease}nav a:hover,footer a:hover,.languages a:hover{color:var(--acid)}.email:hover{color:#482361}
.booking-top,.event-details summary{transition:background-color .25s ease,transform .25s ease,box-shadow .25s ease}.booking-top:hover{background:#c392ff;box-shadow:0 6px 22px #b06aff25;transform:translateY(-3px)}.event-details summary:hover{background:#64358b;box-shadow:0 5px 15px #28103922;transform:translateY(-2px)}
.booking-top span,.event-details summary span{display:inline-block;transition:transform .25s ease}.booking-top:hover span,.event-details summary:hover span{transform:translate(3px,-3px)}
.round-link b{transition:transform .3s ease,background-color .3s ease,border-color .3s ease}.round-link:hover b{transform:translateY(4px);border-color:var(--acid)}
.locations>div{transition:background-color .3s ease}.locations>div:hover{background:#d4c3e455}.locations h3{transition:color .3s ease}.locations>div:hover h3{color:#64358b}
.event-row{transition:background-color .3s ease}.event-row:hover{background:#d4c3e42b}.event-row:hover h4{color:#64358b}.sound-panel{transition:border-color .35s ease,box-shadow .35s ease}.sound-panel:hover{border-color:#b06aff;box-shadow:0 0 35px #b06aff12}.wave i{transition:opacity .3s ease}.sound-panel:hover .wave i{opacity:1}
}

@media(hover:hover) and (pointer:fine){.about-portrait img{transition:filter .65s ease,transform .65s ease}.about-portrait:hover img{filter:grayscale(0);transform:scale(1.045)}}@media(prefers-reduced-motion:reduce){.about-portrait img{transition:none}.about-portrait:hover img{transform:none}}
.footer-legal{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 4% 32px;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}.footer-legal>div{display:flex;gap:22px;flex-wrap:wrap}.footer-legal a{color:var(--paper)}.footer-legal button,.cookie-actions button{font:inherit;color:inherit;background:none;border:0;padding:10px 0;cursor:pointer}.footer-legal button:hover,.footer-legal a:hover{color:var(--acid)}.legal-modal{background:#18131e;color:var(--paper);border:1px solid #63417e;width:min(650px,calc(100% - 32px));max-height:85svh;padding:45px;box-shadow:0 25px 90px #0009}.legal-modal::backdrop{background:#000b;backdrop-filter:blur(5px)}.legal-modal h2{font-size:36px;letter-spacing:-1.5px;margin-bottom:30px}.legal-modal h3{font-size:16px;margin:26px 0 12px}.legal-modal p{font-size:13px;line-height:1.8;color:#c1b9c9}.legal-modal a{color:#c392ff;text-decoration:underline;text-underline-offset:3px}.legal-note{padding:15px;border:1px solid #513b63}.popup-close{position:absolute;right:12px;top:10px;cursor:pointer;background:none;color:var(--paper);border:0;width:36px;height:36px;font-size:27px;line-height:1}.cookie-panel{position:fixed;bottom:20px;left:20px;z-index:50;width:360px;max-width:calc(100vw - 32px);padding:25px;background:#1b1423;border:1px solid #69478b;box-shadow:0 12px 45px #0008;color:var(--paper)}.cookie-panel[hidden]{display:none}.cookie-panel .eyebrow{font-size:9px;color:#b28dcc;margin:0 0 16px}.cookie-panel h2{font-size:26px;letter-spacing:-.8px;margin:0 0 14px}.cookie-panel>p:not(.eyebrow){font-size:12px;line-height:1.75;color:#c1b9c9;margin:0 0 18px}.cookie-actions{display:flex;gap:22px;align-items:center;font-size:11px}.cookie-actions .cookie-confirm{background:var(--acid);color:#1b0b29;padding:12px 18px;font-weight:700}.cookie-actions button:hover{filter:brightness(1.15)}button:focus-visible{outline:2px solid var(--acid);outline-offset:4px}@media(max-width:600px){.footer-legal{flex-direction:column;align-items:start;padding:22px 6%}.footer-legal>div{gap:10px 18px}.legal-modal{padding:35px 23px}.legal-modal h2{font-size:30px}.cookie-panel{bottom:16px;left:16px;padding:23px}}@media(prefers-reduced-motion:no-preference){.legal-modal[open],.cookie-panel:not([hidden]){animation:fahm-panel .25s ease-out}@keyframes fahm-panel{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}}
/* Slow breathing light on the artist name. */
@media(prefers-reduced-motion:no-preference){.hero h1.is-visible{animation:fahm-breathing-light 5s ease-in-out infinite}@keyframes fahm-breathing-light{0%,100%{text-shadow:0 0 5px rgba(176,106,255,.08),0 0 22px rgba(176,106,255,.04);filter:brightness(1)}50%{text-shadow:0 0 12px rgba(235,216,255,.32),0 0 35px rgba(176,106,255,.45),0 0 75px rgba(176,106,255,.22);filter:brightness(1.16)}}}

.cookie-panel{max-height:calc(100svh - 32px);overflow-y:auto}.cookie-storage{font-size:11px;line-height:1.7;color:#c1b9c9;margin:0 0 20px;border-top:1px solid #513b63;padding-top:13px}.cookie-storage summary{cursor:pointer;color:var(--paper);padding:5px 0}.cookie-storage p{margin:12px 0}.cookie-actions{gap:24px}.cookie-actions>button{min-height:44px;padding:10px 4px}
/* Automatic violet colour cycle for the artist tagline. */
@media(prefers-reduced-motion:no-preference){.about h2 em{animation:fahm-tagline-color 5s ease-in-out infinite}@keyframes fahm-tagline-color{0%,100%{color:var(--muted)}50%{color:var(--acid)}}}
@media(prefers-reduced-motion:reduce){.about h2 em{color:var(--acid)}}
.cookie-panel{width:400px;padding:30px;background:linear-gradient(145deg,#251733,#151117);border:1px solid #69478b;box-shadow:0 18px 65px #0009;border-radius:4px}.cookie-panel h2{font-size:34px;line-height:1.06;letter-spacing:-1.2px;margin-bottom:20px}.cookie-icon{display:block;color:var(--acid);font-size:36px;line-height:1;margin:23px 0 20px}.cookie-panel>p:not(.eyebrow){font-size:12px;line-height:1.8;margin-bottom:23px}.cookie-choices{display:grid;grid-template-columns:1fr 1fr;gap:10px}.cookie-choices button{background:var(--acid);color:#180c23;border:1px solid var(--acid);font:600 12px Arial,sans-serif;min-height:45px;cursor:pointer;border-radius:2px}.cookie-choices button:hover{background:#c392ff;border-color:#c392ff}.cookie-secondary{display:flex;justify-content:space-between;gap:20px;margin-top:14px}.cookie-secondary button{border:0;background:none;color:#c8b9d4;font:11px Arial,sans-serif;min-height:40px;padding:6px 0;text-decoration:underline;text-underline-offset:5px;cursor:pointer}.cookie-save{display:block;width:100%;padding:14px;background:#ecece3;color:#1b0b29;border:0;font-size:12px;cursor:pointer;margin-top:15px}.cookie-save[hidden],#cookie-settings[hidden]{display:none}.cookie-category{display:flex;justify-content:space-between;gap:14px;border-top:1px solid #4c375b;padding:17px 0;font-size:12px}.cookie-category strong{display:block;font-weight:500;color:var(--paper);margin-bottom:8px}.cookie-category small{display:block;color:#b9adbf;font-size:10px;line-height:1.7;max-width:185px}.cookie-required,.cookie-unavailable{font:9px/1.5 monospace;align-self:center;white-space:nowrap}.cookie-required{color:#c392ff}.cookie-unavailable{color:#a49aaa}.cookie-retention{color:#b9adbf;font-size:10px;line-height:1.7;margin:0 0 20px}.cookie-feedback:empty{display:none}@media(max-width:600px){.cookie-panel{padding:23px}.cookie-panel h2{font-size:30px}.cookie-icon{margin:15px 0}.cookie-category small{max-width:155px}}

.ticker{width:100%;padding:21px 0}.ticker-track{display:flex;width:max-content}.ticker-group{display:flex;align-items:center;flex-shrink:0;justify-content:space-around;min-width:100vw;gap:45px;padding:0 22.5px}.ticker-group span{display:block;min-width:0;white-space:nowrap}.ticker-group i{margin:0;flex-shrink:0}@media(prefers-reduced-motion:no-preference){.ticker-track{animation:fahm-marquee 24s linear infinite}@keyframes fahm-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}}@media(max-width:600px){.ticker{padding:18px 0}.ticker-group{gap:28px;padding:0 14px}}@media(prefers-reduced-motion:reduce){.ticker-track{animation:none}}
.booking-sticky{position:fixed;right:24px;bottom:max(24px,env(safe-area-inset-bottom));z-index:40;display:flex;align-items:center;gap:28px;background:var(--acid);color:#1b0b29;padding:17px 22px;border:1px solid #c392ff;border-radius:3px;box-shadow:0 6px 28px #0006;font-size:13px;font-weight:700;min-height:50px}.booking-sticky span{font-size:20px;font-weight:400}.booking-sticky:focus-visible{outline:2px solid var(--paper);outline-offset:4px}@media(hover:hover) and (prefers-reduced-motion:no-preference){.booking-sticky{transition:transform .25s ease,background .25s ease}.booking-sticky:hover{transform:translateY(-3px);background:#c392ff}.booking-sticky span{transition:transform .25s ease}.booking-sticky:hover span{transform:translate(2px,-2px)}}@media(max-width:600px){.booking-sticky{right:16px;bottom:max(16px,env(safe-area-inset-bottom));padding:13px 17px;gap:20px;font-size:12px}.footer-legal{padding-bottom:90px}body:has(.cookie-panel:not([hidden])) .booking-sticky{visibility:hidden}}
.about-portrait img{object-position:center 35%}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.booking h2>span{display:inline-block;transform:translate(0,0);transition:transform .45s cubic-bezier(.2,.65,.3,1),color .3s ease}.booking h2>span:hover{transform:translate(12px,-12px);color:#482361}}

.header{position:sticky;top:0;z-index:45;background:rgba(16,17,16,.96);backdrop-filter:blur(12px)}body.admin-bar .header{top:32px}@media(max-width:782px){body.admin-bar .header{top:46px}}@media(max-width:600px){.footer-legal{padding-bottom:32px}}

.dj-live-photo{margin:24px 0;overflow:hidden;aspect-ratio:4/5}.dj-live-photo img{display:block;width:100%;height:100%;object-fit:cover;filter:grayscale(1)}@media(hover:hover) and (prefers-reduced-motion:no-preference){.dj-live-photo img{transition:transform .6s ease}.dj-live-photo:hover img{transform:scale(1.035)}}

.live-duo-photo{margin:35px 0 40px;overflow:hidden;background:#151515;aspect-ratio:16/9}.live-duo-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 35%;filter:grayscale(1)}@media(hover:hover) and (prefers-reduced-motion:no-preference){.live-duo-photo img{transition:transform .65s ease}.live-duo-photo:hover img{transform:scale(1.025)}}@media(max-width:600px){.live-duo-photo{aspect-ratio:4/5;margin:30px 0}.live-duo-photo img{object-position:center}}
.live-duo-photo img{object-position:center top}
.sc-block{margin-top:30px}.sc-block h3{font-size:28px;letter-spacing:-1px;margin:15px 0 22px}.sc-placeholder{background:#211a29;border:1px solid #513b63;padding:25px}.sc-play{display:grid;place-items:center;width:48px;height:48px;border:1px solid #8254a4;border-radius:50%;color:var(--acid);font-size:16px}.sc-placeholder p{font-size:12px;line-height:1.8;color:#c1b9c9;margin:18px 0}.sc-placeholder button{border:0;background:var(--acid);color:#1b0b29;padding:14px;font:600 11px/1.5 Arial;cursor:pointer;width:100%;min-height:44px}.sc-placeholder>a{display:inline-block;color:#c1b9c9;font-size:10px;margin-top:16px;text-decoration:underline;text-underline-offset:4px}.sc-block iframe{display:block;border:0;width:100%;height:450px;background:#211a29}.sc-preferences{display:block;background:none;border:0;color:var(--muted);font-size:10px;text-decoration:underline;text-underline-offset:4px;cursor:pointer;padding:15px 0;min-height:44px}.sc-toggle{display:flex;align-items:center;cursor:pointer;position:relative}.sc-toggle input{width:40px;height:24px;position:absolute;opacity:0}.sc-toggle span{width:40px;height:24px;background:#51445b;border:1px solid #8e76a0;border-radius:20px;position:relative}.sc-toggle span:after{content:'';position:absolute;width:16px;height:16px;background:#ecece3;border-radius:50%;top:3px;left:3px;transition:transform .2s}.sc-toggle input:checked+span{background:var(--acid)}.sc-toggle input:checked+span:after{transform:translateX(16px);background:#1b0b29}.sc-toggle input:focus-visible+span{outline:2px solid #fff;outline-offset:4px}
.joke-modal{width:min(390px,calc(100% - 32px));padding:48px 24px 28px;text-align:center;border-color:var(--acid)}.joke-modal img{display:block;width:100%;height:290px;object-fit:cover;object-position:center 35%;filter:grayscale(1);margin-bottom:24px}.joke-modal h2{font-size:30px;line-height:1.15;margin:0;color:var(--paper);letter-spacing:-1px}

/* Booking enquiry */
.contact-modal{width:min(760px,calc(100vw - 32px));max-height:90dvh;padding:40px;color:#f5f5f5;background:#111;border:1px solid #5c426d;overflow-y:auto;overscroll-behavior:contain}
.contact-modal h2{font-size:clamp(36px,6vw,58px);line-height:1;margin:16px 0}.contact-modal h2 em{color:#b06aff}.contact-sheet>p{color:#bbb}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.contact-grid label{display:block;min-width:0;font-size:13px;font-weight:600}.contact-grid label>span{display:block;margin-bottom:9px}.contact-grid input,.contact-grid select,.contact-grid textarea{display:block;width:100%;min-width:0;background:#1c1c1c;color:#fff;border:1px solid #444;border-radius:3px;padding:12px;font:inherit;font-size:16px;box-sizing:border-box;color-scheme:dark}.contact-grid input:focus,.contact-grid select:focus,.contact-grid textarea:focus{outline:2px solid #b06aff;outline-offset:2px}.contact-grid textarea{resize:vertical}.contact-grid input::placeholder,.contact-grid textarea::placeholder{color:#999}.contact-wide{grid-column:1/-1}.budget-fields{display:grid;grid-template-columns:minmax(0,1fr) 90px;gap:8px}.contact-hint,.contact-privacy,.contact-direct{font-size:12px!important;line-height:1.6!important;color:#aaa}.contact-hint{margin:24px 0}.contact-privacy{margin:24px 0 16px}.contact-privacy button{background:none;border:0;padding:0;color:#c697ff;text-decoration:underline;cursor:pointer}.contact-submit{width:100%;padding:16px;background:#b06aff;color:#111;border:0;font-size:15px;font-weight:700;cursor:pointer}.contact-submit:hover{background:#c18bff}.contact-submit:disabled{opacity:.6;cursor:wait}.contact-trap{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}#contact-status{font-size:14px;line-height:1.5}#contact-status[data-state="error"]{color:#ffb1b1}#contact-status[data-state="success"]{color:#c5f2cf}.contact-direct a{color:#ddd}body:has(#contact-modal[open]){overflow:hidden}
@media(max-width:560px){.contact-modal{padding:28px 20px}.contact-grid{grid-template-columns:1fr;gap:16px}.contact-modal h2{font-size:40px}}

.instagram-section{background:#111}.instagram-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;margin-bottom:40px}.instagram-heading h2{margin-bottom:24px}.instagram-heading .body-copy{max-width:620px}.instagram-heading>.text-link{white-space:nowrap;margin-bottom:8px}.instagram-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.instagram-card{display:block;text-decoration:none;color:inherit;min-width:0}.instagram-photo{position:relative;aspect-ratio:1;overflow:hidden;background:#222}.instagram-photo img{width:100%;height:100%;object-fit:cover;filter:grayscale(1);transition:filter .6s,transform .7s}.instagram-photo>span{position:absolute;right:16px;bottom:16px;background:#b06aff;color:#111;width:44px;height:44px;display:grid;place-items:center;font-size:26px;transition:transform .3s}.instagram-card:hover img,.instagram-card:focus-visible img{filter:grayscale(0);transform:scale(1.04)}.instagram-card:hover .instagram-photo>span{transform:translate(3px,-3px)}.instagram-card:focus-visible{outline:2px solid #b06aff;outline-offset:6px}.instagram-caption{display:flex;justify-content:space-between;gap:8px;padding:18px 0;border-bottom:1px solid #444;font-size:12px}.instagram-caption time{color:#aaa}.instagram-caption>span{color:#c18bff}.instagram-all{display:inline-block;margin-top:32px}@media(max-width:800px){.instagram-heading{align-items:flex-start;flex-direction:column;gap:12px}.instagram-grid{gap:16px}}@media(max-width:560px){.instagram-grid{grid-template-columns:1fr;gap:28px}.instagram-heading h2{font-size:clamp(32px,9vw,48px)}}@media(prefers-reduced-motion:reduce){.instagram-photo img,.instagram-photo>span{transition:none}}

.phone-field>label{margin-bottom:9px}.phone-inputs{display:grid;grid-template-columns:110px minmax(0,1fr);gap:8px}.phone-inputs select{padding-left:10px;padding-right:5px}

/* Focus without outlines */
*:focus,*:focus-visible{outline:none!important;outline-offset:0!important}a:focus-visible,button:focus-visible,summary:focus-visible{filter:brightness(1.3);text-decoration:underline;text-underline-offset:5px}input:focus,select:focus,textarea:focus{border-color:#b06aff!important;background-color:#30243b!important}a:focus-visible{color:#c799ff}

.locations{grid-template-columns:repeat(5,minmax(0,1fr))}@media(max-width:1000px){.locations{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.locations{grid-template-columns:1fr}}

/* Booking: structured editorial form */
.contact-modal{width:min(780px,calc(100vw - 32px));padding:44px 48px 28px;border:1px solid #44354f;background:radial-gradient(ellipse at 100% 0%,#39214d66,transparent 45%),#111213;border-radius:12px;box-shadow:0 30px 100px #0009}.contact-modal::backdrop{background:#080809c9;backdrop-filter:blur(12px)}.contact-modal .popup-close{width:40px;height:40px;right:16px;top:16px;border-radius:50%;background:#ffffff0b;color:#ccc;font-size:25px}.contact-modal .popup-close:hover{background:#b06aff;color:#111}.contact-sheet>.eyebrow{color:#c799ff;letter-spacing:2px;margin:0 0 20px}.contact-modal h2{font-size:clamp(38px,5vw,60px);letter-spacing:-2px;margin:0 0 18px;line-height:1.02}.contact-sheet>p:not(.eyebrow){font-size:14px;line-height:1.6;margin:0;color:#aaa}.contact-hint{margin:24px 0 26px;font-size:11px!important;color:#89878e}.contact-grid{gap:20px 18px}.contact-group-title{display:flex;align-items:center;gap:13px;padding:0 0 14px;border-bottom:1px solid #ffffff14;margin-top:8px}.contact-group-title>span{font:11px monospace;letter-spacing:1px;color:#b988ed}.contact-group-title h3{font-size:15px;letter-spacing:0;margin:0;font-weight:600}.contact-grid label{font-size:12px;font-weight:400;color:#d3d0d8}.contact-grid label>span,.phone-field>label{margin-bottom:9px}.contact-grid input,.contact-grid select,.contact-grid textarea{border:1px solid #ffffff1b;border-radius:6px;background:#1c1c20;color:#f3f1f7;padding:14px;font-size:15px;min-height:48px;transition:background .2s,border-color .2s}.contact-grid input:hover,.contact-grid select:hover,.contact-grid textarea:hover{border-color:#ffffff40}.contact-grid input::placeholder,.contact-grid textarea::placeholder{color:#77747f;font-weight:400}.contact-grid textarea{line-height:1.6;min-height:112px}.phone-inputs{gap:0;grid-template-columns:105px minmax(0,1fr)}.phone-inputs select{border-radius:6px 0 0 6px;background:#24212b}.phone-inputs input{border-radius:0 6px 6px 0;border-left:0}.event-choice{padding:0;margin:0;border:0;min-width:0}.event-choice legend{font-size:12px;color:#d3d0d8;margin-bottom:10px}.event-options{display:grid;grid-template-columns:1fr 1fr;gap:12px}.event-options label{position:relative;cursor:pointer}.event-options input{position:absolute;opacity:0;width:1px;height:1px;min-height:0;padding:0}.event-options label>span{display:flex;align-items:center;justify-content:space-between;padding:15px 18px;border:1px solid #ffffff24;border-radius:6px;font-size:15px;margin:0;background:#1c1c20;transition:background .2s,border-color .2s}.event-options b{font-weight:400;color:#777}.event-options input:checked+span{background:#b06aff20;border-color:#b06aff;color:#d6b7ff}.event-options input:checked+span b{color:#c799ff}.event-options input:focus-visible+span,.event-options label:hover>span{background:#3b294b;border-color:#b06aff}.contact-privacy{color:#89878e;font-size:11px!important;margin:24px 0 20px}.contact-privacy button{font-size:11px}.contact-submit{border-radius:6px;padding:18px 22px;letter-spacing:.2px;font-size:14px;transition:background .2s,transform .2s}.contact-submit:hover{transform:translateY(-2px)}.contact-direct{text-align:center;color:#89878e;margin-bottom:0}.contact-direct a{color:#bdb7c7}#contact-status:empty{display:none}#contact-status{padding:12px 14px;border-radius:6px;background:#ffffff08}@media(max-width:560px){.contact-modal{padding:34px 22px 24px;border-radius:10px;max-height:92dvh}.contact-modal h2{font-size:43px}.contact-grid{gap:18px}.contact-modal .popup-close{right:10px;top:10px}.contact-grid input,.contact-grid select,.contact-grid textarea{font-size:16px}.contact-group-title{margin-top:6px}}@media(prefers-reduced-motion:reduce){.contact-modal *{transition:none!important}}

/* Dark treatment for the consent-gated SoundCloud widget. */
#sc-player{background:#111213;border-radius:8px;overflow:hidden}#sc-player iframe{display:block;border:0;filter:none;color-scheme:light}

.listening{background:#17151b}.listening-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;margin-bottom:36px}.listening-heading h2{margin-bottom:24px}.listening-controls{display:flex;gap:10px}.listening-controls button{width:48px;height:48px;background:transparent;border:1px solid #756780;color:#c799ff;font-size:24px;cursor:pointer}.listening-controls button:hover,.listening-controls button:focus-visible{background:#b06aff;color:#111}.listening-controls button:disabled{opacity:.25;cursor:default}.listening-track{display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 0 24px;scrollbar-color:#b06aff #27212d}.listening-card{flex:0 0 calc((100% - 48px)/3);min-width:240px;scroll-snap-align:start}.pick-cover{aspect-ratio:1;position:relative;overflow:hidden;background:#24202b}.pick-cover img{width:100%;height:100%;object-fit:cover;transition:transform .4s}.listening-card:hover img{transform:scale(1.04)}.pick-type{position:absolute;bottom:16px;left:16px;background:#111d;color:#d6b6ff;padding:7px 10px;font:10px monospace;letter-spacing:1px}.pick-vinyl{height:100%;display:grid;place-items:center;font-size:64px;color:#b06aff;background:repeating-radial-gradient(circle,#25202e 0 5px,#1a171e 6px 9px)}.listening-card h3{font-size:23px;margin:20px 0 8px;line-height:1.2}.pick-artist{color:#c799ff;font-size:13px;margin:0 0 18px}.pick-note{font-size:14px;line-height:1.6;color:#aaa}.listening-card .text-link{font-size:12px}.listening-empty{display:flex;align-items:center;gap:28px;padding:32px;border:1px solid #4a3c57;background:linear-gradient(110deg,#2d203c,#19171d)}.listening-empty>span{font-size:58px;color:#b06aff}.listening-empty h3{font-size:24px;margin:0 0 10px}.listening-empty p{color:#aaa;font-size:14px;margin:0;line-height:1.6}@media(max-width:900px){.listening-card{flex-basis:calc((100% - 24px)/2)}}@media(max-width:560px){.listening-heading{display:block}.listening-controls{margin-top:24px}.listening-card{flex-basis:85%;min-width:0}.listening-empty{padding:24px;gap:18px}.listening-empty h3{font-size:20px}}@media(prefers-reduced-motion:reduce){.pick-cover img{transition:none}}

.contact-modal #contact-title{white-space:nowrap;font-size:clamp(24px,4.5vw,48px);letter-spacing:-1.4px}.contact-modal #contact-title em{display:inline}@media(max-width:380px){.contact-modal #contact-title{font-size:22px;letter-spacing:-1.1px}}

#event-other-wrap[hidden]{display:none!important}

.listening-heading{flex-wrap:wrap}.listening-heading>div:first-child{min-width:0;max-width:100%}.listening-heading h2{white-space:nowrap;font-size:clamp(18px,4.25vw,62px);letter-spacing:-.04em}.listening-heading h2 em{display:inline}@media(max-width:560px){.listening-heading h2{font-size:clamp(17px,4.9vw,27px)}}

.pick-platforms{display:flex;gap:12px 20px;flex-wrap:wrap;margin-top:20px}.pick-platforms .text-link{font-size:12px}

.listening-heading .body-copy{max-width:none;white-space:nowrap;font-size:clamp(10px,2.25vw,18px);letter-spacing:-.015em}@media(max-width:560px){.listening-heading .body-copy{font-size:clamp(8px,2.3vw,13px)}}

/* Dark widget with original profile artwork preserved. */
#sc-player{position:relative}#sc-player iframe{filter:invert(.92) hue-rotate(180deg)}#sc-player .sc-original-avatar{position:absolute;left:10px;bottom:8px;width:40px;height:40px;object-fit:cover;pointer-events:none;filter:none!important;z-index:1}

/* Booking grows from its trigger into a full-screen purple stage. */
#contact-modal{position:fixed;inset:0;width:100%;height:100dvh;max-width:none;max-height:none;margin:0;padding:48px 24px;border:0;border-radius:0;background:#b06aff;box-shadow:none;overflow-y:auto;color:#f5f5f5}#contact-modal::backdrop{background:transparent;backdrop-filter:none}.contact-sheet{position:relative;max-width:780px;margin:0 auto;padding:44px 48px 28px;border:1px solid #44354f;background:radial-gradient(ellipse at 100% 0%,#39214d66,transparent 45%),#111213;border-radius:12px;box-shadow:0 24px 70px #36144c40;opacity:0;transform:translateY(24px);transition:opacity .35s ease,transform .35s ease}#contact-modal.booking-ready .contact-sheet{opacity:1;transform:none}@media(max-width:560px){#contact-modal{padding:18px 12px}.contact-sheet{padding:42px 20px 24px;border-radius:10px}}@media(prefers-reduced-motion:reduce){.contact-sheet{transition:none;transform:none}}

/* Static music selection grid. */
.listening-track{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));overflow:visible;scroll-snap-type:none;padding-bottom:0}.listening-card{min-width:0}.pick-platforms{display:flex;flex-wrap:wrap;gap:4px 14px}.listening-controls{display:none}@media(max-width:1000px){.listening-track{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.listening-track{grid-template-columns:minmax(0,1fr);gap:36px}}

.real-event{grid-template-columns:190px minmax(0,1fr)}.event-date{font:12px/1.6 monospace;color:#64358b;padding-top:4px}.events-intro{margin-bottom:24px}@media(max-width:600px){.real-event{grid-template-columns:1fr;gap:10px}.event-date{font-size:11px}}

.upcoming-dates{margin-top:48px;padding:30px;background:#d4c3e4;display:flex;align-items:center;justify-content:space-between;gap:28px}.upcoming-dates h3{font-size:26px;margin:0 0 12px;letter-spacing:-.7px}.upcoming-dates p{font-size:14px;line-height:1.7;margin:0;max-width:540px;color:#482f59}.upcoming-booking{display:flex;align-items:center;justify-content:space-between;gap:28px;flex-shrink:0;padding:18px 22px;background:#b06aff;color:#1b0b29;font-size:13px;font-weight:700;transition:background .2s}.upcoming-booking:hover,.upcoming-booking:focus-visible{background:#c392ff}.upcoming-booking span{font-size:22px}@media(max-width:700px){.upcoming-dates{padding:24px;align-items:stretch;flex-direction:column}.upcoming-booking{align-self:flex-start}}

.radio-feature{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:7%;align-items:center;margin-top:60px;padding:32px;background:#17151b;color:#ecece3}.radio-poster{display:block}.radio-poster img{display:block;width:100%;height:auto}.radio-feature h3{font-size:clamp(28px,3.5vw,48px);line-height:1.1;letter-spacing:-1.5px;margin:18px 0 24px}.radio-feature h3 em{font-style:normal;color:#b06aff}.radio-feature .eyebrow{color:#c799ff}.radio-feature .radio-meta{font:12px/1.8 monospace;color:#c799ff}.live .radio-feature .body-copy{color:#bfc0b7;font-size:15px;margin-top:24px}.radio-feature .text-link{color:#ecece3}.radio-feature .text-link:hover{color:#b06aff}@media(max-width:700px){.radio-feature{grid-template-columns:1fr;gap:28px;padding:22px}.radio-feature h3{font-size:32px}}

/* Twelve real Instagram posts, original portrait proportions. */
.instagram-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:26px 20px}.instagram-photo{aspect-ratio:4/5}.instagram-photo img{object-fit:contain}.instagram-caption{font-size:11px}@media(max-width:900px){.instagram-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 16px}}@media(max-width:480px){.instagram-grid{gap:22px 12px}.instagram-caption{flex-direction:column;gap:8px;padding:12px 0}.instagram-photo>span{width:32px;height:32px;right:8px;bottom:8px;font-size:21px}}
