:root{
 --bg:#070711;--panel:#111126;--panel2:#17142c;--text:#f8f7ff;--muted:#b9b6d2;
 --pink:#ff27b9;--violet:#8b35ff;--cyan:#19d9ff;--gold:#ffb72e;--line:#34234e;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font:16px/1.65 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
a{color:var(--cyan);text-decoration:none}
a:hover{color:var(--pink);text-decoration:none}
.site-header{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:13px max(4vw,20px);background:rgba(7,7,17,.94);border-bottom:1px solid #392054;position:sticky;top:0;z-index:10;backdrop-filter:blur(14px)}
.brand{display:flex;align-items:center;gap:12px;color:var(--text);font-weight:900;letter-spacing:.04em;white-space:nowrap}
.brand-logo{display:block;width:58px;height:58px;object-fit:contain;border-radius:8px;filter:drop-shadow(0 0 12px #ff27b955)}
.brand-name{font-size:1.02rem;text-transform:uppercase}
nav{display:flex;flex-wrap:wrap;gap:16px}
nav a{color:#e4def7;font-size:.88rem;font-weight:700;transition:color .2s}
nav a:hover{color:var(--cyan)}
.hero{min-height:650px;padding:80px max(6vw,24px);display:flex;align-items:center;justify-content:space-between;gap:45px;overflow:hidden;position:relative;background:radial-gradient(ellipse at 78% 43%,#6120a666 0,transparent 28%),radial-gradient(ellipse at 87% 72%,#ff27b933 0,transparent 30%),radial-gradient(ellipse at 58% 30%,#19d9ff22 0,transparent 26%),linear-gradient(120deg,#080811 10%,#130b24 62%,#080811 100%)}
.hero:before{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(118deg,transparent 0 90px,#a42fff0a 91px 93px,transparent 94px 180px);mask-image:linear-gradient(90deg,transparent,#000 45%,#000)}
.hero:after{content:"";position:absolute;width:560px;height:560px;right:8%;top:50%;transform:translateY(-50%);border-radius:50%;border:1px solid #ff27b944;box-shadow:0 0 40px #8b35ff33,inset 0 0 45px #19d9ff12;pointer-events:none}
.hero-content{max-width:760px;position:relative;z-index:1}
.eyebrow{text-transform:uppercase;letter-spacing:.2em;font-size:.76rem;font-weight:900;color:var(--cyan);text-shadow:0 0 15px #19d9ff55}
.hero h1{font-size:clamp(2.8rem,6vw,5.8rem);line-height:.99;letter-spacing:-.055em;margin:16px 0 24px;max-width:850px;text-wrap:balance}
.hero h1 strong,.neon-text{color:var(--pink);text-shadow:0 0 24px #ff27b966}
.hero-content>p:not(.eyebrow){max-width:640px;color:#d6d1e8;font-size:1.12rem}
.hero-actions{display:flex;flex-wrap:wrap;gap:13px;margin-top:28px}
.button,button{display:inline-block;background:linear-gradient(100deg,var(--pink),var(--violet));color:white;border:1px solid #ff70d6;border-radius:7px;padding:12px 19px;font:inherit;font-weight:850;cursor:pointer;box-shadow:0 0 22px #ff27b92c;transition:transform .2s,box-shadow .2s}
.button:hover,button:hover{color:white;transform:translateY(-2px);box-shadow:0 0 30px #ff27b966}
.button-outline{background:transparent;color:var(--cyan);border-color:var(--cyan);box-shadow:0 0 18px #19d9ff1a}
.button-outline:hover{color:white;background:#19d9ff1b}
.hero-note{font-size:.86rem!important;color:#9f99bd!important;margin-top:26px}
.hero-disc{flex:0 0 clamp(260px,39vw,590px);aspect-ratio:1;border-radius:24px;background:#090914 url('images/hero-sc6000-prime.webp') center/cover no-repeat;border:1px solid #9b36ff66;display:block;position:relative;z-index:1;box-shadow:0 0 45px #8b35ff42,0 0 100px #ff27b91b;animation:turntableGlow 3.2s ease-in-out infinite;isolation:isolate}
.hero-disc:before,.hero-disc:after{content:"";position:absolute;inset:-16px;border-radius:28px;border:2px solid transparent;border-top-color:var(--cyan);border-bottom-color:var(--pink);transform:rotate(-7deg);pointer-events:none;z-index:-1;animation:turntableRing 7s linear infinite}
.hero-disc:after{inset:-27px;border-width:1px;border-top-color:#ffb72e;border-bottom-color:var(--violet);transform:rotate(9deg);animation-direction:reverse;animation-duration:10s}
.disc-center{display:none}
@keyframes turntableGlow{0%,100%{filter:drop-shadow(0 0 7px #8b35ff55) saturate(1)}50%{filter:drop-shadow(0 0 23px #ff27b966) saturate(1.12)}}
@keyframes turntableRing{from{rotate:0deg}to{rotate:360deg}}
.section{padding:72px max(5vw,22px);max-width:1450px;margin:auto}
.section h2,.cta-band h2{font-size:clamp(1.9rem,4vw,3.15rem);line-height:1.1;margin:8px 0 26px;letter-spacing:-.035em}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px}
.card{background:linear-gradient(145deg,#17142b,#0d0d1a);border:1px solid var(--line);border-radius:12px;padding:25px;min-width:0;position:relative;overflow:hidden;transition:transform .22s,border-color .22s,box-shadow .22s}
.card:before{content:"";position:absolute;left:0;top:0;width:100%;height:2px;background:linear-gradient(90deg,var(--cyan),var(--violet),var(--pink));opacity:.8}
.card:hover{transform:translateY(-4px);border-color:#9b38ce;box-shadow:0 12px 35px #8b35ff16}
.card h2,.card h3{margin-top:7px}
.card p,.section>p:not(.eyebrow),.card p{color:var(--muted)}
.card-icon{font-size:.82rem;color:var(--pink);letter-spacing:.18em;font-weight:950}
.cta-band{padding:48px max(5vw,22px);display:flex;align-items:center;justify-content:space-between;gap:30px;background:radial-gradient(ellipse at 10% 50%,#8b35ff25,transparent 45%),linear-gradient(100deg,#171127,#121020 70%,#1d1027);border-block:1px solid #46225c}
.cta-band p:not(.eyebrow){color:var(--muted);max-width:680px}
.narrow{max-width:1080px;margin:0 auto;padding:46px 22px;min-height:65vh}
h1{line-height:1.2}
form{max-width:760px}
label{display:block;font-weight:650;margin:16px 0}
input,textarea,select{display:block;width:100%;margin-top:6px;padding:11px 12px;border:1px solid #47365e;border-radius:6px;background:#0d0c19;font:inherit;color:var(--text)}
input:focus,textarea:focus,select:focus{outline:2px solid var(--cyan);outline-offset:1px}
input[type=checkbox]{display:inline-block;width:auto;margin:0 8px 0 0}
.check-label{font-weight:450;margin:9px 0}
fieldset{border:1px solid var(--line);border-radius:9px;margin:20px 0;padding:12px 18px}
legend{padding:0 8px;color:var(--cyan);font-weight:800}
.notice{padding:12px 15px;border-radius:7px;background:#123d3a;border:1px solid #19d9ff44}
.notice.error{background:#45152c;color:#ffd5ed;border-color:#ff27b955}
.inline{display:inline}
.link-button{background:none;color:var(--cyan);padding:0;text-decoration:underline;border:0;box-shadow:none}
.table-wrap{overflow-x:auto;background:#0d0c19;border:1px solid var(--line);border-radius:8px}
table{border-collapse:collapse;width:100%;font-size:.93rem}
th,td{text-align:left;vertical-align:top;padding:12px;border-bottom:1px solid var(--line)}
th{background:#211630;color:#f6ddff}
.status-form{min-width:145px}
.status-form button{margin-top:7px}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin:24px 0}
.stats div{background:var(--panel);border:1px solid var(--line);padding:18px;border-radius:9px;display:flex;flex-direction:column}
.stats strong{font-size:2rem;color:var(--cyan);text-shadow:0 0 14px #19d9ff33}
.stats span{color:var(--muted)}
.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px}
.gallery-img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:7px}
footer{text-align:center;color:#918ba9;padding:28px 16px;border-top:1px solid var(--line);font-size:.9rem;background:#080811}
code{color:var(--cyan)}
@media(max-width:850px){.site-header{align-items:flex-start;flex-direction:column}.brand-logo{width:50px;height:50px}nav{gap:10px 14px}.hero{padding-top:58px;padding-bottom:58px;min-height:0}.hero-disc{display:none}.cta-band{align-items:flex-start;flex-direction:column}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

/* Playlist publique */
.playlist-list{display:grid;gap:1rem;margin:1.5rem 0}.playlist-track{display:grid;gap:1rem;grid-template-columns:minmax(0,1fr);align-items:center}.playlist-track h2{margin:.1rem 0}.playlist-track p{margin:.25rem 0}.playlist-track audio{width:100%;max-width:100%}input[type=file]{max-width:100%;padding:.8rem}
@media(min-width:700px){.playlist-track{grid-template-columns:minmax(0,1fr) minmax(260px,420px)}}

.gallery-media{overflow:hidden}.gallery-video{display:block;width:100%;max-height:520px;aspect-ratio:16/9;object-fit:contain;background:#080811;border-radius:7px}.gallery-img{display:block}

/* Affichage vidéo public : vrai lecteur vidéo, proportions conservées */
.gallery .gallery-media{min-width:0;overflow:hidden}
.gallery .gallery-video{display:block;width:100%;height:auto;aspect-ratio:16/9;max-height:520px;object-fit:contain;background:#05050c;border-radius:8px}
.gallery .gallery-img{width:100%;height:auto;object-fit:contain}

/* Galerie video playback compatibility */
.gallery .gallery-video{width:100%;height:auto;min-height:180px;aspect-ratio:16/9;object-fit:contain;background:#05050c}



/* Intro DJ Mirkin Faust — limitée à la page d'accueil */
body.mf-intro-open { overflow: hidden; }
.mf-intro {
  position: fixed; inset: 0; z-index: 99999; display: grid; place-items: center;
  overflow: hidden; background-color:#030207;
  background-image: url("images/visuel-mirkin-faust.png"), radial-gradient(ellipse at 50% 40%, #321044 0%, #100a1b 42%, #05050a 100%);
  background-repeat:no-repeat; background-position:center center; background-size:auto 55vh, cover;
  color: #fff; isolation: isolate; animation:mf-image-arrive 1.2s ease-out both;
}
.mf-intro::after { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(180deg,transparent 65%,rgba(0,0,0,.38)); }
/* L’image fournie est le visuel principal de l’écran d’accueil animé. */
.mf-intro-content { z-index:2; align-self:end; width:100%; padding:0 16px 3vh; }
.mf-intro-content > :not(#mf-enter):not(.mf-intro-hint) { display:none !important; }
.mf-enter { padding:12px 32px; }
.mf-intro-hint { display:block; margin:10px 0 0; text-shadow:0 2px 8px #000; }
@keyframes mf-image-arrive { from { opacity:.45; background-size:auto 48vh,cover; } to { opacity:1; background-size:auto 55vh,cover; } }
.mf-intro::before {
  content:""; position:absolute; inset:-25%;
  background: conic-gradient(from 0deg at 50% 50%, transparent 0 17%, #f20ca522 22%, transparent 28% 45%, #00e5ff20 51%, transparent 58% 74%, #9d38ff25 81%, transparent 87%);
  filter: blur(30px); animation: mf-aurora 12s linear infinite; z-index:-1;
}
.mf-intro-lasers { position:absolute; inset:0; overflow:hidden; opacity:.8; pointer-events:none; }
.mf-intro-lasers i { position:absolute; top:-30%; left:50%; width:2px; height:160%; transform-origin:top; background:linear-gradient(transparent,#ff28d7,transparent); box-shadow:0 0 16px #ff28d7; animation:mf-laser 5s ease-in-out infinite alternate; }
.mf-intro-lasers i:nth-child(2) { background:linear-gradient(transparent,#00e5ff,transparent); box-shadow:0 0 16px #00e5ff; animation-delay:-1.2s; transform:rotate(22deg); }
.mf-intro-lasers i:nth-child(3) { animation-delay:-2.5s; transform:rotate(-28deg); }
.mf-intro-lasers i:nth-child(4) { background:linear-gradient(transparent,#8e45ff,transparent); box-shadow:0 0 16px #8e45ff; animation-delay:-3s; transform:rotate(42deg); }
.mf-intro-content { width:min(92vw,760px); text-align:center; position:relative; padding:32px 16px; animation:mf-rise .9s ease-out both; }
.mf-intro-disc { width:92px; height:92px; margin:0 auto 22px; display:grid; place-items:center; border-radius:50%; background:repeating-radial-gradient(circle,#15121c 0 4px,#393043 5px 6px); border:2px solid #ff32d7; box-shadow:0 0 18px #ff32d7,0 0 50px #8b2cff77; animation:mf-spin 8s linear infinite; }
.mf-intro-disc span { display:grid; place-items:center; width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#ff27c5,#7c35ff);font-weight:900;font-size:12px; }
.mf-intro-kicker { letter-spacing:.28em; font-size:.75rem; color:#75efff; font-weight:800; margin:0 0 12px; }
.mf-intro-content h1 { margin:0; font-size:clamp(2.25rem,8vw,5.4rem); font-weight:950; line-height:1.02; letter-spacing:-.04em; text-shadow:0 0 18px #ed27cd88; }
.mf-intro-content h1 span { display:block; color:#fff; text-shadow:0 0 7px #fff,0 0 24px #ff25c7,0 0 44px #872cff; }
.mf-intro-tagline { margin:18px 0 20px; letter-spacing:.18em; font-size:clamp(.72rem,2vw,1rem); font-weight:800; }
.mf-intro-eq,.mf-hero-eq { display:flex; align-items:center; justify-content:center; gap:4px; height:34px; margin:0 auto 28px; }
.mf-intro-eq span,.mf-hero-eq span { display:block; width:4px; height:var(--h,12px); border-radius:8px; background:linear-gradient(#00e5ff,#a13bff,#ff2cc9); box-shadow:0 0 8px #e92bff88; animation:mf-eq .75s ease-in-out infinite alternate; animation-delay:var(--d,0s); }
.mf-intro-eq span:nth-child(3n),.mf-hero-eq span:nth-child(3n) { --h:27px; }
.mf-intro-eq span:nth-child(4n),.mf-hero-eq span:nth-child(4n) { --h:18px; }
.mf-enter { cursor:pointer; border:1px solid #ff71e2; border-radius:999px; padding:16px 42px; color:#fff; font-weight:900; letter-spacing:.18em; font-size:1rem; background:linear-gradient(110deg,#ed1cb6,#8b35ff); box-shadow:0 0 18px #ff24ce99,0 0 42px #8b35ff66; transition:transform .2s ease,box-shadow .2s ease; }
.mf-enter:hover,.mf-enter:focus-visible { transform:scale(1.06); box-shadow:0 0 26px #ff24ce,0 0 60px #8b35ff99; outline:2px solid #fff; outline-offset:4px; }
.mf-enter span { margin-left:10px; font-size:1.2em; }
.mf-intro-hint { font-size:.82rem; color:#c8bdd5; margin:16px 0 0; }
.mf-intro.is-leaving { animation:mf-out .75s ease-in forwards; pointer-events:none; }
.mf-hero-eq { justify-content:flex-start; height:22px; margin:12px 0 18px; gap:3px; }
.mf-hero-eq span { width:3px; animation-duration:.6s; }
@keyframes mf-eq { from { transform:scaleY(.35); opacity:.65; } to { transform:scaleY(1); opacity:1; } }
@keyframes mf-spin { to { transform:rotate(360deg); } }
@keyframes mf-laser { from { opacity:.35; transform:rotate(-35deg) scaleY(.8); } to { opacity:.9; transform:rotate(35deg) scaleY(1.1); } }
@keyframes mf-aurora { to { transform:rotate(360deg); } }
@keyframes mf-rise { from { opacity:0; transform:translateY(22px) scale(.97); } to { opacity:1; transform:translateY(0) scale(1); } }
@keyframes mf-out { to { opacity:0; visibility:hidden; transform:scale(1.04); } }
@media (max-width:600px) {
 .mf-intro { background-size:auto 45vh, cover; background-position:center center; }
 .mf-intro-disc { width:72px;height:72px;margin-bottom:17px; }
 .mf-intro-content { padding:20px 12px; }
 .mf-intro-eq { margin-bottom:22px; }
 .mf-intro-lasers i { opacity:.55; }
}
@media (prefers-reduced-motion:reduce) {
 .mf-intro::before,.mf-intro-lasers i,.mf-intro-disc,.mf-intro-eq span,.mf-hero-eq span,.mf-intro-content { animation:none !important; }
 .mf-enter { transition:none; }
}

/* Agenda public DJ Mirkin Faust */
.agenda-page{max-width:1100px;margin:0 auto;padding:28px 20px 64px}.agenda-legend{display:flex;flex-wrap:wrap;gap:12px 20px;margin:22px 0;color:var(--muted,#c9c3d6);font-size:.92rem}.agenda-legend span{display:flex;align-items:center;gap:8px}.agenda-legend i{display:inline-block;width:12px;height:12px;border-radius:50%}.agenda-legend .available{background:#35df9a;box-shadow:0 0 10px #35df9a66}.agenda-legend .booked{background:#ff9d42;box-shadow:0 0 10px #ff9d4266}.agenda-legend .unavailable{background:#ff35b8;box-shadow:0 0 10px #ff35b866}.agenda-legend .unknown{background:#393344;border:1px solid #81768f}.agenda-month-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:24px 0 16px}.agenda-month-nav h2{margin:0;text-align:center}.agenda-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.agenda-weekday{text-align:center;padding:10px 2px;font-weight:800;color:#9beeff}.agenda-day{min-height:82px;border:1px solid #3a304b;border-radius:12px;padding:10px;background:#100d19;display:flex;flex-direction:column;gap:8px}.agenda-day strong{font-size:1.05rem}.agenda-day span{font-size:.76rem;line-height:1.25;overflow-wrap:anywhere}.agenda-day.available{border-color:#35df9a;background:linear-gradient(145deg,#12372d,#100d19 75%)}.agenda-day.available span{color:#7bf2bf}.agenda-day.booked{border-color:#ff9d42;background:linear-gradient(145deg,#49200f,#100d19 75%);box-shadow:inset 0 0 0 1px #ff9d421c}.agenda-day.booked span{color:#ffc184}.agenda-day.unavailable{border-color:#ff35b8;background:linear-gradient(145deg,#48152f,#100d19 75%);box-shadow:inset 0 0 0 1px #ff35b81c}.agenda-day.unavailable span{color:#ff8bd8}.agenda-day.unavailable span,.agenda-day.unknown span{color:#b5acbf}.agenda-day.empty{visibility:hidden}
@media(max-width:650px){.agenda-page{padding:18px 12px 40px}.agenda-month-nav{flex-wrap:wrap}.agenda-month-nav h2{width:100%;order:-1}.agenda-month-nav .button{flex:1;padding:10px 8px;font-size:.82rem;text-align:center}.agenda-calendar{gap:4px}.agenda-day{min-height:68px;padding:5px 4px;border-radius:8px;gap:5px}.agenda-day span{font-size:.62rem}.agenda-weekday{font-size:.75rem}}

/* Effet lumineux discret au survol des cases de l’agenda */
.agenda-day:not(.empty){transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;cursor:default}.agenda-day:not(.empty):hover{transform:translateY(-3px);box-shadow:0 0 16px #9c4dff38,0 0 7px #00d9ff20;border-color:#9b66ff}.agenda-day.available:hover{box-shadow:0 0 18px #20e87944}.agenda-day.booked:hover{box-shadow:0 0 18px #ff9d4244}.agenda-day.unavailable:hover{box-shadow:0 0 18px #ff35b844}
@media(prefers-reduced-motion:reduce){.agenda-day:not(.empty){transition:none}.agenda-day:not(.empty):hover{transform:none}}

@media (max-width:600px) { .mf-intro { background-size:auto 45vh,cover; background-position:center center; } .mf-intro-content { padding-bottom:3vh; } }
@media (prefers-reduced-motion:reduce) { .mf-intro { animation:none; } }


/* Effets supplémentaires de l'introduction uniquement */
.mf-intro {
  box-shadow: inset 0 0 0 1px #ff2bd722, inset 0 0 90px #7b2cff22;
  animation: mf-image-arrive 1.2s ease-out both, mf-intro-halo 4.8s ease-in-out 1.2s infinite;
}
.mf-intro-projectors { position:absolute; inset:0; overflow:hidden; pointer-events:none; z-index:0; opacity:.68; }
.mf-intro-projectors i { position:absolute; top:-28%; left:14%; width:38vw; height:125vh; transform-origin:top center; background:linear-gradient(180deg,#fff8 0%,#ffb52a33 24%,#ff35d500 78%); clip-path:polygon(46% 0,54% 0,100% 100%,0 100%); filter:blur(9px); animation:mf-projector 6.5s ease-in-out infinite alternate; }
.mf-intro-projectors i:nth-child(2) { left:auto; right:8%; background:linear-gradient(180deg,#8deeff88 0%,#793aff33 35%,#00e5ff00 85%); animation-delay:-3.1s; animation-duration:7.4s; }
.mf-intro-particles { position:absolute; inset:0; overflow:hidden; pointer-events:none; z-index:1; }
.mf-intro-particles i { position:absolute; left:var(--x); bottom:-12px; width:var(--size); height:var(--size); border-radius:50%; background:#ffb9f3; box-shadow:0 0 8px #ff2bd7,0 0 16px #00e5ff88; opacity:0; animation:mf-particle-rise var(--duration) linear var(--delay) infinite; }
.mf-intro-flash { position:absolute; inset:0; pointer-events:none; z-index:3; background:#fff; opacity:0; animation:mf-entry-flash .9s ease-out .18s both; }
.mf-intro-lasers { z-index:1; }
.mf-intro-content { z-index:4; }
@keyframes mf-intro-halo { 0%,100% { box-shadow:inset 0 0 0 1px #ff2bd722,inset 0 0 55px #7b2cff18; } 50% { box-shadow:inset 0 0 0 2px #ff2bd766,inset 0 0 100px #7b2cff44; } }
@keyframes mf-projector { 0% { transform:rotate(-24deg) scaleX(.7); opacity:.35; } 100% { transform:rotate(24deg) scaleX(1.15); opacity:.8; } }
@keyframes mf-particle-rise { 0% { transform:translate3d(0,0,0) scale(.6); opacity:0; } 12% { opacity:.9; } 78% { opacity:.65; } 100% { transform:translate3d(24px,-105vh,0) scale(1.25); opacity:0; } }
@keyframes mf-entry-flash { 0% { opacity:.72; } 22% { opacity:.12; } 100% { opacity:0; } }
@media (prefers-reduced-motion: reduce) {
 .mf-intro, .mf-intro::before, .mf-intro-lasers i, .mf-intro-projectors i, .mf-intro-particles i, .mf-intro-flash, .mf-intro-disc, .mf-intro-content, .mf-intro-eq span { animation-duration:.01ms !important; animation-iteration-count:1 !important; }
}

/* Pack d'animations spectaculaires Mirkin Faust : logo, menus, transitions et égaliseur */
.brand-logo { animation: mf-logo-pulse 3.2s ease-in-out infinite; transition: transform .35s ease, filter .35s ease; }
.brand:hover .brand-logo { transform: rotate(-5deg) scale(1.07); filter: drop-shadow(0 0 9px #19d9ff) drop-shadow(0 0 22px #ff27b9); }
.brand { position:relative; }
.brand::after { content:""; display:block; width:42px; height:24px; margin-left:2px; flex:0 0 42px; border-radius:4px; background: repeating-linear-gradient(90deg, transparent 0 3px, #19d9ff 3px 5px, transparent 5px 8px, #ff27b9 8px 10px, transparent 10px 13px); mask-image: linear-gradient(0deg, transparent 0%, #000 15%, #000 85%, transparent 100%); transform-origin:center; animation: mf-brand-eq .55s ease-in-out infinite alternate; filter: drop-shadow(0 0 5px #19d9ff88); }
nav a { position:relative; display:inline-block; padding:7px 2px; transition: color .22s ease, transform .22s ease, text-shadow .22s ease; }
nav a::after { content:""; position:absolute; left:50%; right:50%; bottom:0; height:2px; background:linear-gradient(90deg,var(--pink),var(--cyan)); box-shadow:0 0 10px var(--pink); transition:left .25s ease,right .25s ease; }
nav a:hover, nav a:focus-visible, nav a.mf-nav-lit { color:#fff; transform:translateY(-2px); text-shadow:0 0 10px #ff27b9,0 0 22px #8b35ff; }
nav a:hover::after, nav a:focus-visible::after, nav a.mf-nav-lit::after { left:0; right:0; }
.button, button { position:relative; overflow:hidden; }
.button::after { content:""; position:absolute; top:-60%; left:-80%; width:45%; height:220%; transform:rotate(22deg); background:linear-gradient(90deg,transparent,#ffffff70,transparent); transition:left .55s ease; pointer-events:none; }
.button:hover::after { left:140%; }
.card, .cta-band, .hero-disc { transition: transform .3s ease, border-color .3s ease, box-shadow .3s ease; }
.card:hover { transform:translateY(-5px); border-color:#a24dff; box-shadow:0 12px 35px #8b35ff20,0 0 18px #ff27b91a; }
.hero-disc { animation: mf-disc-float 5s ease-in-out infinite, discGlow 3.5s ease-in-out infinite; }
.hero-disc::before { content:""; position:absolute; inset:-14px; border-radius:50%; border:1px solid #19d9ff66; box-shadow:0 0 22px #19d9ff22; animation:mf-ring-pulse 3s ease-out infinite; pointer-events:none; }
.mf-hero-eq span { animation-duration: .42s; }
body.mf-page-leaving { animation:mf-page-out .26s ease-in both; pointer-events:none; }
@keyframes mf-logo-pulse { 0%,100% { filter:drop-shadow(0 0 8px #ff27b955); } 50% { filter:drop-shadow(0 0 18px #ff27b9) drop-shadow(0 0 25px #8b35ff88); } }
@keyframes mf-brand-eq { from { transform:scaleY(.42); opacity:.72; } to { transform:scaleY(1); opacity:1; } }
@keyframes mf-disc-float { 0%,100% { transform:translateY(0) rotate(0); } 50% { transform:translateY(-8px) rotate(2deg); } }
@keyframes mf-ring-pulse { 0% { transform:scale(.94); opacity:.75; } 100% { transform:scale(1.14); opacity:0; } }
@keyframes mf-page-out { to { opacity:0; transform:translateY(5px) scale(.995); filter:brightness(1.35); } }
@media(max-width:850px) { .brand::after { width:34px; flex-basis:34px; } }
@media(prefers-reduced-motion:reduce) { .brand-logo,.brand::after,.hero-disc,.hero-disc::before,.mf-hero-eq span,.button::after { animation:none !important; transition:none !important; } }


/* Extensions spectaculaires : vinyle, particules, ondes, scroll reveal et flashs doux */
.hero-disc { transform-style:preserve-3d; will-change:transform; }
.hero-disc { animation:mf-vinyl-spin 18s linear infinite, mf-disc-float 5s ease-in-out infinite, discGlow 3.5s ease-in-out infinite; }
.hero-disc::before { animation:mf-ring-pulse 2.7s ease-out infinite, mf-ring-rotate 9s linear infinite; }
.hero-disc::after { animation:mf-ring-rotate-reverse 14s linear infinite; }
@keyframes mf-vinyl-spin { from { background-position:0 0; } to { background-position:0 0; } }
@keyframes mf-ring-rotate { to { transform:rotate(336deg) scale(1.08); } }
@keyframes mf-ring-rotate-reverse { to { transform:rotate(-325deg); } }
/* Cercles d'onde sonore derrière le vinyle */
.hero-disc { isolation:isolate; }
.hero-disc .disc-center { position:relative; z-index:2; }
.hero-disc:focus { outline:2px solid var(--cyan); }
.hero-disc { --wave-color:var(--cyan); }
.hero-disc::marker { content:none; }
.hero:has(.hero-disc)::before { animation:mf-backdrop-sweep 11s ease-in-out infinite alternate; }
@keyframes mf-backdrop-sweep { from { opacity:.55; transform:translateX(-1.5%); } to { opacity:1; transform:translateX(1.5%); } }
.mf-stage-flash { position:absolute; inset:0; z-index:0; pointer-events:none; opacity:0; background:linear-gradient(115deg,transparent 30%,#19d9ff13 44%,#ff27b91b 50%,transparent 64%); animation:mf-stage-flash 8.5s ease-in-out infinite; }
@keyframes mf-stage-flash { 0%,78%,100% { opacity:0; } 79% { opacity:.65; } 80% { opacity:.08; } 82% { opacity:.32; } 84% { opacity:0; } }
.mf-particle-layer { position:absolute; inset:0; z-index:1; overflow:hidden; pointer-events:none; }
.mf-particle { position:absolute; width:4px; height:4px; border-radius:50%; background:var(--cyan); box-shadow:0 0 8px var(--cyan),0 0 16px var(--pink); opacity:0; animation:mf-particle-rise var(--dur,5s) linear var(--delay,0s) infinite; }
@keyframes mf-particle-rise { 0% { transform:translate3d(0,35px,0) scale(.4); opacity:0; } 15% { opacity:.9; } 80% { opacity:.7; } 100% { transform:translate3d(var(--drift,20px),-130px,0) scale(1.25); opacity:0; } }
.mf-title-reveal { animation:mf-title-entry 1.15s cubic-bezier(.2,.8,.2,1) both; }
.mf-title-reveal strong { display:inline-block; animation:mf-title-glow 3s ease-in-out 1s infinite alternate; }
@keyframes mf-title-entry { from { opacity:0; transform:translateY(24px) scale(.97); filter:blur(8px); letter-spacing:-.08em; } to { opacity:1; transform:translateY(0) scale(1); filter:blur(0); } }
@keyframes mf-title-glow { from { text-shadow:0 0 8px #ff27b966; } to { text-shadow:0 0 15px #ff27b9,0 0 36px #8b35ff99; } }
.mf-scroll-reveal { opacity:0; transform:translateY(24px) scale(.99); transition:opacity .7s ease,transform .7s cubic-bezier(.2,.8,.2,1); }
.mf-scroll-reveal.mf-revealed { opacity:1; transform:translateY(0) scale(1); }
.mf-scroll-reveal .card { will-change:transform; }
.card { transform-style:preserve-3d; }
.mf-cursor-spark { position:fixed; z-index:99990; width:5px; height:5px; border-radius:50%; pointer-events:none; background:var(--pink); box-shadow:0 0 8px var(--pink),0 0 16px var(--cyan); animation:mf-cursor-fade .55s ease-out forwards; }
@keyframes mf-cursor-fade { to { opacity:0; transform:translate(-5px,-10px) scale(2.2); } }
@media(max-width:850px) { .mf-particle-layer { opacity:.7; } }
@media(hover:none), (max-width:700px) { .mf-cursor-spark { display:none; } }
@media(prefers-reduced-motion:reduce) {
 .hero-disc,.hero-disc::before,.hero-disc::after,.hero:before,.mf-stage-flash,.mf-particle,.mf-title-reveal,.mf-title-reveal strong,.mf-scroll-reveal,.mf-cursor-spark { animation:none!important; transition:none!important; }
 .mf-scroll-reveal { opacity:1; transform:none; }
}


/* Animation supplémentaire : scène néon plus vivante */
.hero { isolation:isolate; }
.hero:before { background-size:200% 200%; animation:mf-stage-drift 14s ease-in-out infinite alternate; }
@keyframes mf-stage-drift { 0% { background-position:0% 20%; opacity:.55; } 100% { background-position:100% 80%; opacity:1; } }
.hero:after { content:""; position:absolute; inset:0; z-index:0; pointer-events:none; opacity:.13; background-image:linear-gradient(rgba(25,217,255,.22) 1px,transparent 1px),linear-gradient(90deg,rgba(255,39,185,.2) 1px,transparent 1px); background-size:54px 54px; mask-image:linear-gradient(to bottom,transparent,black 30%,transparent); animation:mf-grid-drift 22s linear infinite; }
@keyframes mf-grid-drift { from { transform:translateY(-30px); } to { transform:translateY(30px); } }
.hero-disc { animation:discGlow 4s ease-in-out infinite, mf-disc-float 5.5s ease-in-out infinite; }
@keyframes mf-disc-float { 0%,100% { translate:0 0; } 50% { translate:0 -10px; } }
.hero-disc:before { animation:mf-ring-spin 7s linear infinite; }
.hero-disc:after { animation:mf-ring-spin 11s linear infinite reverse; }
@keyframes mf-ring-spin { to { transform:rotate(360deg); } }
.button, a.button, button { transition:transform .22s ease, box-shadow .25s ease, filter .25s ease; }
.button:hover, a.button:hover, button:hover { transform:translateY(-3px) scale(1.025); filter:brightness(1.15); box-shadow:0 0 12px #ff27b966,0 0 28px #8b35ff55,0 0 42px #19d9ff22; }
.card { position:relative; overflow:hidden; transition:transform .35s ease, border-color .35s ease, box-shadow .35s ease; }
.card:before { content:""; position:absolute; top:-80%; left:-60%; width:45%; height:260%; pointer-events:none; transform:rotate(22deg); background:linear-gradient(90deg,transparent,#ffffff13,#19d9ff35,transparent); transition:left .65s ease; }
.card:hover:before { left:130%; }
.card:hover { border-color:#ff27b988; box-shadow:0 10px 34px #8b35ff22,0 0 22px #ff27b922; }
main .section h2, .cta-band h2 { text-shadow:0 0 18px #8b35ff24; animation:mf-heading-breathe 5s ease-in-out infinite alternate; }
@keyframes mf-heading-breathe { from { text-shadow:0 0 8px #8b35ff18; } to { text-shadow:0 0 20px #ff27b933,0 0 34px #19d9ff16; } }
nav a { transition:color .2s ease,text-shadow .25s ease,transform .25s ease; }
nav a:hover { text-shadow:0 0 12px #ff27b9,0 0 22px #8b35ff; transform:translateY(-1px); }
.mf-page-leaving { animation:mf-page-out .26s ease forwards; }
@keyframes mf-page-out { to { opacity:0; transform:translateY(5px); filter:brightness(1.3); } }
@media(max-width:700px) { .hero:after { background-size:38px 38px; opacity:.08; } .hero-disc { animation:discGlow 4s ease-in-out infinite; } }
@media(prefers-reduced-motion:reduce) { .hero:before,.hero:after,.hero-disc,.hero-disc:before,.hero-disc:after,main .section h2,.cta-band h2 { animation:none!important; } .button:hover,a.button:hover,button:hover,nav a:hover { transform:none; } }


/* FESTIVAL PLUS — lumières additionnelles, sans dépendance externe */
.hero h1 strong,.hero h1 .neon-text{background:linear-gradient(110deg,#fff 0%,#8ef7ff 18%,#ff5bcf 36%,#fff 48%,#b58aff 66%,#fff 82%);background-size:240% auto;background-clip:text;-webkit-background-clip:text;color:transparent;text-shadow:0 0 22px #ff27b955;animation:mf-chrome-sweep 5s linear infinite}
@keyframes mf-chrome-sweep{to{background-position:240% center}}
.hero{isolation:isolate}
.hero .mf-festival-ribbons{position:absolute;inset:-15%;z-index:0;pointer-events:none;overflow:hidden;opacity:.7}
.mf-festival-ribbons i{position:absolute;width:75%;height:2px;left:-15%;top:var(--top);background:linear-gradient(90deg,transparent,#19d9ff99,#ff27b9,transparent);filter:drop-shadow(0 0 7px #ff27b9);transform:rotate(var(--angle));animation:mf-ribbon-pass var(--duration) linear infinite;animation-delay:var(--delay)}
@keyframes mf-ribbon-pass{from{translate:-25vw 0;opacity:0}15%,80%{opacity:.9}to{translate:125vw 0;opacity:0}}
.hero .mf-stage-beams{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;perspective:500px;opacity:.55}
.mf-stage-beams i{position:absolute;top:-20%;left:var(--left);width:clamp(70px,12vw,190px);height:130%;transform-origin:top center;transform:rotate(var(--angle));background:linear-gradient(180deg,#fff9, #19d9ff24 35%,#ff27b918 70%,transparent);filter:blur(7px);animation:mf-beam-sweep var(--duration) ease-in-out infinite alternate;animation-delay:var(--delay)}
@keyframes mf-beam-sweep{from{rotate:-13deg;opacity:.2}to{rotate:13deg;opacity:.8}}
.hero .mf-light-tunnel{position:absolute;z-index:0;left:63%;top:50%;width:min(44vw,500px);aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;pointer-events:none;opacity:.5}
.mf-light-tunnel i{position:absolute;inset:calc(var(--n)*8%);border:1px solid color-mix(in srgb,var(--c) 65%,transparent);border-radius:50%;box-shadow:0 0 18px color-mix(in srgb,var(--c) 35%,transparent),inset 0 0 18px color-mix(in srgb,var(--c) 20%,transparent);animation:mf-tunnel-pulse calc(2s + var(--n)*.22s) ease-in-out infinite alternate;transform:rotateX(58deg) rotateZ(calc(var(--n)*13deg))}
@keyframes mf-tunnel-pulse{from{scale:.82;opacity:.3}to{scale:1.12;opacity:.9}}
.hero .mf-audio-wave{position:absolute;z-index:0;right:8%;top:50%;width:min(38vw,400px);aspect-ratio:1;border-radius:50%;border:2px solid #19d9ff77;box-shadow:0 0 30px #19d9ff33;transform:translateY(-50%);pointer-events:none;animation:mf-wave-expand 3s ease-out infinite}
.mf-audio-wave:before,.mf-audio-wave:after{content:"";position:absolute;inset:12%;border:2px solid #ff27b988;border-radius:50%;animation:mf-wave-expand 3s ease-out infinite .8s}.mf-audio-wave:after{inset:26%;border-color:#a46bff;animation-delay:1.5s}
@keyframes mf-wave-expand{0%{scale:.7;opacity:.1}45%{opacity:.65}100%{scale:1.18;opacity:0}}
.hero-disc{animation:mf-disc-float 5s ease-in-out infinite, mf-disc-glow 3s ease-in-out infinite alternate;transform-style:preserve-3d}
@keyframes mf-disc-float{0%,100%{translate:0 0;rotate:-2deg}50%{translate:0 -12px;rotate:2deg}}
@keyframes mf-disc-glow{from{filter:drop-shadow(0 0 12px #ff27b955)}to{filter:drop-shadow(0 0 32px #19d9ff88)}}
.button,button{position:relative;overflow:hidden;isolation:isolate}.button:after,button:after{content:"";position:absolute;inset:-60% auto -60% -45%;width:28%;background:linear-gradient(90deg,transparent,#ffffff99,transparent);transform:rotate(20deg);transition:left .5s;z-index:-1}.button:hover:after,button:hover:after{left:130%}
.card{transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease}.card:hover{box-shadow:0 14px 38px #8b35ff30,0 0 0 1px #19d9ff55;border-color:#19d9ff88}
body.mf-page-leaving:after{content:"";position:fixed;z-index:99999;inset:0;pointer-events:none;background:radial-gradient(circle at center,transparent 0 8%,#ff27b944 38%,#080811 100%);animation:mf-portal-close .28s ease-in forwards}
@keyframes mf-portal-close{from{opacity:0;transform:scale(.3);border-radius:50%}to{opacity:1;transform:scale(1.5);border-radius:0}}
@media(max-width:700px){.hero .mf-light-tunnel{left:70%;width:80vw;opacity:.28}.hero .mf-audio-wave{right:-8%;width:68vw;opacity:.45}.mf-stage-beams{opacity:.3!important}.mf-festival-ribbons{opacity:.35!important}}
@media(prefers-reduced-motion:reduce){.hero h1 strong,.hero h1 .neon-text,.hero-disc,.mf-festival-ribbons i,.mf-stage-beams i,.mf-light-tunnel i,.mf-audio-wave,.mf-audio-wave:before,.mf-audio-wave:after{animation:none!important}.button:after,button:after{display:none}}


/* Ambiance néon globale et barre de navigation améliorée */
body{position:relative;isolation:isolate}
body:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 8% 18%,#8b35ff12,transparent 34%),radial-gradient(ellipse at 92% 78%,#ff27b912,transparent 32%),linear-gradient(115deg,transparent 35%,#19d9ff06 50%,transparent 65%);background-size:140% 140%;animation:mf-global-ambience 18s ease-in-out infinite alternate}
@keyframes mf-global-ambience{from{background-position:0% 0%}to{background-position:100% 100%}}
.site-header{gap:18px;box-shadow:0 8px 28px #0005;transition:background .25s,border-color .25s}
.site-header:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:linear-gradient(90deg,transparent,var(--pink),var(--cyan),var(--violet),transparent);background-size:200% 100%;animation:mf-menu-line 7s linear infinite;pointer-events:none}
@keyframes mf-menu-line{to{background-position:200% 0}}
.site-header nav{align-items:center;justify-content:flex-end;gap:5px;flex:1}
.site-header nav a{position:relative;display:inline-flex;align-items:center;min-height:38px;padding:7px 10px;border:1px solid transparent;border-radius:8px;color:#eee8ff;font-size:.84rem;transition:color .22s,background .22s,border-color .22s,transform .22s,box-shadow .22s}
.site-header nav a:before{content:"";position:absolute;left:10px;right:10px;bottom:4px;height:2px;background:linear-gradient(90deg,var(--pink),var(--cyan));transform:scaleX(0);transform-origin:left;transition:transform .22s}
.site-header nav a:hover,.site-header nav a.mf-nav-lit{color:white;background:#8b35ff1b;border-color:#8b35ff55;box-shadow:0 0 18px #8b35ff20;transform:translateY(-2px)}
.site-header nav a:hover:before,.site-header nav a.mf-nav-lit:before{transform:scaleX(1)}
.brand-logo{transition:transform .35s,filter .35s}.brand:hover .brand-logo{transform:rotate(-5deg) scale(1.06);filter:drop-shadow(0 0 18px #ff27b988)}
.nav-toggle{display:none}
body.mf-effects-ready main{animation:mf-page-arrive .5s ease both}
@keyframes mf-page-arrive{from{opacity:.45;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.mf-reveal-on-scroll{opacity:0;transform:translateY(18px);transition:opacity .65s ease,transform .65s ease}
.mf-reveal-on-scroll.mf-revealed{opacity:1;transform:translateY(0)}
@media(max-width:850px){.site-header{position:sticky;align-items:center;flex-direction:row;flex-wrap:wrap;padding:10px 16px}.brand-logo{width:46px;height:46px}.brand-name{font-size:.9rem}.nav-toggle{display:flex;align-items:center;justify-content:center;gap:4px;flex-direction:column;margin-left:auto;padding:9px 12px;background:#151126;border:1px solid #8b35ff77;box-shadow:0 0 16px #8b35ff22;min-width:50px}.nav-toggle span{display:block;width:20px;height:2px;background:linear-gradient(90deg,var(--pink),var(--cyan))}.nav-toggle b{font-size:.65rem;line-height:1.1}.site-header nav{display:none;flex:0 0 100%;width:100%;padding:8px 0 5px;gap:7px;justify-content:flex-start}.site-header nav.is-open{display:flex}.site-header nav a{flex:1 1 auto;justify-content:center;background:#111020;border-color:#34234e;padding:8px 10px}.site-header nav a:before{display:none}}
@media(max-width:480px){.brand{gap:8px}.brand-name{max-width:170px;white-space:normal;line-height:1.15}.site-header nav a{font-size:.8rem}}
@media(prefers-reduced-motion:reduce){body:before,.site-header:after{animation:none!important}.mf-reveal-on-scroll{opacity:1;transform:none;transition:none}}

/* Neon Glass — finition verre fumé du menu principal */
.site-header{position:sticky;top:10px;z-index:1000;margin:10px auto 24px;width:calc(100% - 24px);max-width:1440px;padding:12px 18px;border:1px solid rgba(177,132,255,.28);border-radius:20px;background:linear-gradient(135deg,rgba(18,14,32,.88),rgba(7,10,23,.78));backdrop-filter:blur(22px) saturate(145%);-webkit-backdrop-filter:blur(22px) saturate(145%);box-shadow:0 14px 42px rgba(0,0,0,.32),inset 0 1px rgba(255,255,255,.07),0 0 28px rgba(139,53,255,.09)}
.site-header .brand{flex-shrink:0}.site-header .brand-logo{border-radius:50%;box-shadow:0 0 0 1px rgba(255,255,255,.14),0 0 22px rgba(255,39,185,.24)}
.site-header nav a{border:1px solid rgba(255,255,255,.055);border-radius:999px;padding:8px 12px;background:rgba(255,255,255,.025);white-space:nowrap}
.site-header nav a:hover,.site-header nav a:focus-visible,.site-header nav a.mf-nav-lit{background:linear-gradient(120deg,rgba(255,39,185,.17),rgba(25,217,255,.10));border-color:rgba(25,217,255,.36);box-shadow:0 0 0 1px rgba(255,39,185,.08),0 0 20px rgba(139,53,255,.18);outline:none}
.nav-toggle{border-radius:14px!important;color:#fff!important;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
@media(max-width:850px){.site-header{top:6px;width:calc(100% - 12px);margin:6px auto 18px;border-radius:17px;padding:10px 12px}.site-header nav.is-open{padding:12px 2px 4px}.site-header nav a{border-radius:12px;white-space:normal}}
@media(prefers-reduced-motion:reduce){.site-header,.site-header nav a{transition:none!important}}


/* ANIMATION IMMERSIVE GLOBALE — toutes les pages publiques et administration */
body{isolation:isolate;overflow-x:clip}
.mf-global-fx{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden;opacity:.9;background:radial-gradient(ellipse at 15% 20%,rgba(139,53,255,.13),transparent 42%),radial-gradient(ellipse at 85% 75%,rgba(255,39,185,.10),transparent 40%)}
.mf-global-fx:before,.mf-global-fx:after{content:"";position:absolute;width:55vw;height:55vw;max-width:700px;max-height:700px;border-radius:50%;filter:blur(70px);opacity:.16;will-change:transform;animation:mf-orb-drift 18s ease-in-out infinite alternate;background:radial-gradient(circle,rgba(25,217,255,.75),rgba(25,217,255,0) 68%)}
.mf-global-fx:before{left:-18vw;top:8vh}
.mf-global-fx:after{right:-18vw;bottom:-15vh;background:radial-gradient(circle,rgba(255,39,185,.8),rgba(139,53,255,0) 68%);animation-duration:23s;animation-direction:alternate-reverse}
.mf-global-orb{position:absolute;left:var(--x);top:var(--y);width:var(--size);height:var(--size);border-radius:50%;background:#b9faff;box-shadow:0 0 8px #19d9ff,0 0 18px #8b35ff;opacity:0;animation:mf-orb-twinkle var(--duration) ease-in-out var(--delay) infinite}
@keyframes mf-orb-drift{0%{transform:translate3d(-4vw,-2vh,0) scale(.8)}100%{transform:translate3d(12vw,8vh,0) scale(1.18)}}
@keyframes mf-orb-twinkle{0%,100%{opacity:0;transform:translate3d(0,18px,0) scale(.5)}35%,65%{opacity:.7}50%{transform:translate3d(18px,-24px,0) scale(1.2)}}
html.mf-effects-ready body main{animation:mf-global-page-enter .8s cubic-bezier(.2,.75,.25,1) both}
@keyframes mf-global-page-enter{from{opacity:.2;transform:translateY(16px);filter:blur(3px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
@media(max-width:700px){.mf-global-fx:before,.mf-global-fx:after{width:90vw;height:90vw;filter:blur(50px);opacity:.12}.mf-global-orb{box-shadow:0 0 6px #19d9ff}}
@media(prefers-reduced-motion:reduce){.mf-global-fx:before,.mf-global-fx:after,.mf-global-orb,html.mf-effects-ready body main{animation:none!important}.mf-global-orb{display:none}}


/* Devis uniquement : formulaire compact et centré */
main.narrow > form.quote-form { width:100%; max-width:600px; margin:28px auto 0; }
main.narrow > form.quote-form > label { display:block; }
@media (max-width:640px) { main.narrow > form.quote-form { max-width:100%; margin-top:22px; } }


/* Rubrique Avis : styles isolés pour ne pas modifier les autres pages */
.reviews-page,.reviews-published{max-width:820px;margin-left:auto;margin-right:auto}
.review-form{max-width:620px;margin:1.5rem auto;padding:clamp(1rem,3vw,2rem);background:rgba(18,14,32,.78);border:1px solid rgba(255,75,200,.42);border-radius:22px;box-shadow:0 0 28px rgba(255,50,190,.10),inset 0 0 24px rgba(70,120,255,.06)}
.review-form label{display:block;margin:0 0 1rem}
.review-form input,.review-form select,.review-form textarea{width:100%;box-sizing:border-box}
.review-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.review-card{margin:1rem 0;padding:1.25rem;border:1px solid rgba(90,220,255,.28);border-radius:18px;background:rgba(17,16,31,.72);box-shadow:0 0 22px rgba(90,90,255,.08);animation:reviewRise .55s ease both}
.review-card-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.review-stars{color:#ffcf55;letter-spacing:.12em;font-size:1.15rem}.review-category{color:#ff83d7;font-size:.9rem;margin:.45rem 0}.review-card small{color:#aaa}
@keyframes reviewRise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.review-card{animation:none}}


/* Player live DJ Mirkin Faust */
.live-player-page{max-width:900px;margin:clamp(34px,7vh,76px) auto 70px;padding:0 18px;animation:liveRise .7s ease both}
.live-player-page .eyebrow{color:#35e5ff;font-size:.78rem;font-weight:900;letter-spacing:.2em;text-transform:uppercase}
.live-player-page h1{font-size:clamp(2.2rem,5vw,3.6rem);margin:.4rem 0 1rem}
.live-intro{color:#c9c4dc;max-width:680px;line-height:1.7}
.live-player-card{display:grid;grid-template-columns:190px minmax(0,1fr);gap:28px;align-items:center;margin-top:30px;padding:clamp(22px,4vw,38px);border:1px solid rgba(190,92,255,.38);border-radius:24px;background:linear-gradient(135deg,rgba(31,22,51,.92),rgba(9,10,24,.94));box-shadow:0 0 36px rgba(190,45,255,.12),inset 0 1px rgba(255,255,255,.06);backdrop-filter:blur(16px)}
.live-disc{width:170px;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;background:repeating-radial-gradient(circle,#100d1b 0 7px,#2d1a43 8px 11px);border:2px solid rgba(53,229,255,.65);box-shadow:0 0 28px rgba(53,229,255,.2),0 0 50px rgba(255,55,205,.14);animation:liveSpin 12s linear infinite}
.live-disc span{display:grid;place-content:center;text-align:center;width:64px;height:64px;border-radius:50%;background:linear-gradient(145deg,#f32fc5,#813bff);font-weight:900;color:white;box-shadow:0 0 20px #b83cff}
.live-disc small{font-size:.6rem;letter-spacing:.18em}
.live-badge{display:inline-flex;align-items:center;gap:8px;font-size:.75rem;font-weight:900;letter-spacing:.12em;color:#ff6bd9}
.live-badge i{display:inline-block;width:9px;height:9px;border-radius:50%;background:#ff3ac8;box-shadow:0 0 12px #ff3ac8;animation:livePulse 1.4s ease-in-out infinite}
.live-player-info h2{margin:.8rem 0 .35rem;font-size:clamp(1.25rem,3vw,1.8rem)}
.live-player-info p{color:#c9c4dc}
.live-player-info audio{display:block;width:100%;margin:22px 0 12px;accent-color:#d52fff}
.live-help{font-size:.85rem}
@keyframes liveSpin{to{transform:rotate(360deg)}}
@keyframes livePulse{50%{opacity:.4;transform:scale(.8)}}
@keyframes liveRise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:620px){.live-player-card{grid-template-columns:1fr;text-align:center}.live-disc{width:138px;margin:0 auto}.live-badge{justify-content:center}}
@media(prefers-reduced-motion:reduce){.live-player-page,.live-disc,.live-badge i{animation:none}}

/* Mini-player live fixe — ajout ciblé */
body{padding-bottom:100px}
.site-live-player{position:fixed;z-index:1000;left:0;right:0;bottom:0;display:flex;align-items:center;gap:16px;padding:10px clamp(12px,3vw,32px);background:rgba(8,8,20,.96);border-top:1px solid #8d39c9;box-shadow:0 -6px 28px #9c28ff22;backdrop-filter:blur(12px)}
.site-live-label{flex:0 0 auto;color:#ff59d5;font-size:.78rem;font-weight:800;letter-spacing:.08em;white-space:nowrap}
.site-live-label i{display:inline-block;width:8px;height:8px;margin-right:7px;border-radius:50%;background:#ff39c8;box-shadow:0 0 10px #ff39c8}
.site-live-player audio{display:block;flex:1 1 auto;width:100%;min-width:0;height:38px}
.site-live-player a{flex:0 0 auto;color:#5cecff;text-decoration:none;font-weight:700;font-size:.85rem}
.site-live-player a:hover{text-decoration:underline}
.live-main-audio{width:100%;max-width:100%}
@media(max-width:600px){body{padding-bottom:126px}.site-live-player{flex-wrap:wrap;gap:7px 12px;padding:8px 12px}.site-live-label{font-size:.7rem}.site-live-player audio{flex-basis:100%;order:2}.site-live-player a{margin-left:auto;font-size:.78rem}}

/* Pochette et métadonnées du player live — correctif ciblé */
.live-cover-frame{width:170px;height:170px;max-width:100%;margin:0 auto;overflow:hidden;border-radius:16px;background:#100d1b;border:1px solid rgba(53,229,255,.45);box-shadow:0 0 28px rgba(53,229,255,.18);display:grid;place-items:center}
.live-cover-frame img{display:block;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain}
@media(max-width:620px){.live-cover-frame{width:138px;height:138px}}


/* Correctifs ciblés : navigation et mini-player radio professionnel */
@media (min-width:851px) and (max-width:1180px) {
  .site-header { flex-wrap:wrap; row-gap:12px; }
  .site-header nav { flex:1 1 100%; width:100%; justify-content:center; }
}
.site-header nav { min-width:0; }
.site-header .nav-toggle { flex-shrink:0; }
@media (max-width:850px) {
  .site-header nav { max-height: min(65vh, 480px); overflow-y:auto; }
  .site-header nav a { flex:1 1 145px; }
}
body { padding-bottom:112px; }
.site-live-player {
  left: max(14px, calc((100vw - 1440px)/2)); right: max(14px, calc((100vw - 1440px)/2));
  bottom:12px; min-height:82px; box-sizing:border-box; gap:14px;
  padding:12px 18px; border:1px solid rgba(180,132,255,.28); border-radius:20px;
  background:linear-gradient(110deg,rgba(19,15,34,.98),rgba(7,10,22,.98));
  box-shadow:0 14px 42px rgba(0,0,0,.42),0 0 28px rgba(139,53,255,.13),inset 0 1px rgba(255,255,255,.07);
  -webkit-backdrop-filter:blur(22px) saturate(145%); backdrop-filter:blur(22px) saturate(145%);
}
.site-live-artwork { display:block; width:54px; height:54px; flex:0 0 54px; object-fit:cover; border-radius:12px; border:1px solid #ffffff25; box-shadow:0 0 18px #ff27b922; }
.site-live-track { display:flex; flex-direction:column; min-width:160px; gap:3px; }
.site-live-track strong { color:#fff; font-size:.92rem; letter-spacing:.035em; }
.site-live-label { display:flex; align-items:center; gap:7px; color:#ff83db; font-size:.66rem; font-weight:900; letter-spacing:.16em; }
.site-live-label i { width:7px; height:7px; margin:0; flex:0 0 7px; }
.site-live-subtitle { color:#a9a3bc; font-size:.76rem; }
.site-live-play { display:flex; align-items:center; justify-content:center; gap:9px; flex:0 0 auto; min-width:116px; padding:12px 16px; border:1px solid #ff6cda; border-radius:999px; background:linear-gradient(110deg,#ed1cb6,#7935ff); box-shadow:0 0 20px #ff27b933; color:#fff; font-size:.83rem; }
.site-live-play-icon { font-size:1rem; line-height:1; }
.site-live-audio-wrap { display:flex; align-items:center; gap:10px; flex:1 1 auto; min-width:100px; color:#aaa4bd; font-size:.74rem; }
.site-live-equalizer { display:flex; align-items:center; gap:3px; height:22px; }
.site-live-equalizer i { display:block; width:3px; height:7px; border-radius:4px; background:linear-gradient(#19d9ff,#a13bff,#ff27b9); opacity:.65; }
.site-live-player.is-playing .site-live-equalizer i { animation:siteLiveBars .65s ease-in-out infinite alternate; opacity:1; }
.site-live-player.is-playing .site-live-equalizer i:nth-child(2) { animation-delay:-.3s; }
.site-live-player.is-playing .site-live-equalizer i:nth-child(3) { animation-delay:-.5s; }
.site-live-player.is-playing .site-live-equalizer i:nth-child(4) { animation-delay:-.2s; }
.site-live-stream-state { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.site-live-more { display:flex; align-items:center; gap:6px; flex:0 0 auto; color:#72eaff!important; font-size:.78rem!important; white-space:nowrap; }
.site-live-audio { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
@keyframes siteLiveBars { from { transform:scaleY(.35); } to { transform:scaleY(1.5); } }
@media (max-width:760px) {
  body { padding-bottom:156px; }
  .site-live-player { left:8px; right:8px; bottom:8px; min-height:0; display:grid; grid-template-columns:44px minmax(0,1fr) auto; gap:8px 10px; padding:10px 12px; border-radius:16px; }
  .site-live-artwork { width:44px; height:44px; }
  .site-live-track { min-width:0; }
  .site-live-track strong { font-size:.8rem; }
  .site-live-subtitle { font-size:.68rem; }
  .site-live-label { font-size:.59rem; }
  .site-live-play { grid-column:3; grid-row:1; min-width:0; padding:10px 12px; font-size:.75rem; }
  .site-live-audio-wrap { grid-column:1 / 4; grid-row:2; min-width:0; padding-top:3px; }
  .site-live-more { grid-column:1 / 4; grid-row:3; justify-content:flex-end; font-size:.72rem!important; }
}
@media (max-width:390px) {
  .site-live-player { grid-template-columns:38px minmax(0,1fr) auto; padding:9px; gap:7px; }
  .site-live-artwork { width:38px; height:38px; }
  .site-live-play { padding:9px 10px; }
  .site-live-play-text { font-size:.7rem; }
}
@media (prefers-reduced-motion:reduce) {
  .site-live-player.is-playing .site-live-equalizer i { animation:none; }
}


/* === Navigation aeree : liens espaces et lignes bien distinctes === */
.site-header {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:16px 24px;
  padding:16px clamp(20px,4vw,64px) 18px;
  min-width:0;
}
.site-header .brand { min-width:0; white-space:normal; gap:14px; }
.site-header .brand-logo { width:58px; height:58px; flex:0 0 auto; }
.site-header .brand-name { max-width:360px; white-space:normal; line-height:1.2; }
.site-header .nav-toggle { display:none; }
.site-header nav {
  grid-column:1 / -1;
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:9px 12px;
  width:100%; min-width:0;
  align-items:stretch;
}
.site-header nav a {
  display:flex; align-items:center; justify-content:center;
  min-width:0; min-height:44px; padding:10px 12px;
  text-align:center; white-space:normal; overflow-wrap:anywhere;
  color:#eee9ff; background:rgba(23,20,44,.68);
  border:1px solid rgba(139,53,255,.2); border-radius:11px;
  font-size:.82rem; font-weight:750; line-height:1.25;
  transition:background .2s ease,border-color .2s ease,color .2s ease;
}
.site-header nav a:hover,.site-header nav a:focus-visible {
  color:#fff; background:linear-gradient(120deg,rgba(255,39,185,.16),rgba(53,229,255,.12));
  border-color:rgba(53,229,255,.45); outline:none;
}
.site-header nav a:focus-visible { box-shadow:0 0 0 3px rgba(53,229,255,.18); }
@media (min-width:851px) and (max-width:1100px) {
 .site-header nav { grid-template-columns:repeat(5,minmax(0,1fr)); gap:9px; }
}
@media (max-width:850px) {
 .site-header {
   position:sticky; top:6px; z-index:1001;
   width:calc(100% - 20px); margin:8px auto 18px;
   display:grid; grid-template-columns:minmax(0,1fr) auto;
   gap:10px; padding:12px 14px;
   border:1px solid rgba(180,132,255,.28); border-radius:16px;
   background:rgba(8,7,20,.98); box-shadow:0 8px 28px rgba(0,0,0,.28);
 }
 .site-header .brand { gap:10px; }
 .site-header .brand-logo { width:44px; height:44px; }
 .site-header .brand-name { max-width:55vw; font-size:.82rem; }
 .site-header .nav-toggle {
   display:flex; flex:0 0 auto; align-items:center; justify-content:center;
   gap:4px; flex-direction:column; margin:0; min-width:58px; min-height:48px;
   padding:7px 10px; color:#fff; border:1px solid rgba(180,132,255,.4);
   border-radius:12px; background:#171128; cursor:pointer;
 }
 .site-header .nav-toggle span { display:block; width:20px; height:2px; border-radius:2px; background:linear-gradient(90deg,#ff27b9,#35e5ff); }
 .site-header .nav-toggle b { font-size:.65rem; line-height:1.1; }
 .site-header nav {
   display:none; grid-column:1 / -1; grid-template-columns:1fr;
   width:100%; max-height:min(60vh,440px); overflow-y:auto;
   gap:8px; padding:10px 0 2px; align-items:stretch;
 }
 .site-header nav.is-open { display:grid; }
 .site-header nav a {
   min-height:44px; justify-content:flex-start; text-align:left;
   padding:12px 14px; font-size:.86rem; background:rgba(22,17,39,.92);
   border:1px solid rgba(139,53,255,.22); border-radius:10px;
 }
}
@media (max-width:390px) {
 .site-header .brand-name { max-width:48vw; font-size:.76rem; }
}


/* Animation d’arrivée d’octobre — décor temporaire sur la page d’accueil */
.mf-october-overlay {
  position: fixed;
  inset: 0;
  z-index: 9999;
  overflow: hidden;
  pointer-events: none;
  opacity: 1;
  transition: opacity .85s ease;
}
.mf-october-overlay.mf-october-fade { opacity: 0; }
.mf-october-glow {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,133,38,.13), transparent 58%);
  animation: mf-october-glow-in 1.3s ease-out both;
}
.mf-october-leaf {
  position: absolute;
  top: -12vh;
  font-size: var(--leaf-size, 24px);
  line-height: 1;
  opacity: 0;
  filter: drop-shadow(0 3px 5px rgba(0,0,0,.2));
  animation: mf-october-fall var(--fall-duration, 6s) var(--fall-delay, 0s) ease-in forwards;
  will-change: transform, top, opacity;
}
@keyframes mf-october-fall {
  0% { transform: translate3d(0,-4vh,0) rotate(0deg); opacity: 0; }
  8% { opacity: .88; }
  88% { opacity: .8; }
  100% { top: 108vh; transform: translate3d(var(--sway, 50px),0,0) rotate(var(--leaf-rotation, 180deg)); opacity: 0; }
}
@keyframes mf-october-glow-in {
  0% { opacity: 0; }
  35% { opacity: 1; }
  100% { opacity: .55; }
}
@media (prefers-reduced-motion: reduce) {
  .mf-october-overlay { display: none !important; }
}


/* Intro Octobre Rose — superposition à l'arrivée, sans altérer la mise en page existante */
html.rose-october-lock { overflow:hidden; }
.rose-october-intro {
  position:fixed; inset:0; z-index:2147483000;
  display:flex; align-items:center; justify-content:center;
  padding:22px; overflow:auto;
  background:radial-gradient(ellipse at 50% 38%,rgba(122,30,80,.45),transparent 58%),rgba(10,5,16,.94);
  backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
  opacity:1; animation:rose-intro-in .55s ease both;
}
.rose-october-card {
  position:relative; box-sizing:border-box; width:min(100%,560px);
  padding:clamp(30px,6vw,56px) clamp(22px,6vw,58px) 28px;
  text-align:center; color:#fff7fb;
  border:1px solid rgba(255,167,210,.45); border-radius:28px;
  background:linear-gradient(150deg,rgba(65,17,47,.98),rgba(25,12,34,.98) 65%,rgba(47,16,48,.98));
  box-shadow:0 28px 100px rgba(0,0,0,.48),0 0 55px rgba(238,87,157,.16);
  overflow:hidden;
}
.rose-october-card:before {
  content:""; position:absolute; inset:0 0 auto; height:4px;
  background:linear-gradient(90deg,#f7b5d2,#e6539a,#fff0f7,#e6539a,#f7b5d2);
}
.rose-october-close {
  position:absolute; top:12px; right:14px; width:38px; height:38px;
  border:1px solid rgba(255,255,255,.24); border-radius:50%;
  color:white; background:rgba(255,255,255,.08); font-size:26px; line-height:1;
  cursor:pointer;
}
.rose-october-ribbon {
  position:relative; width:76px; height:92px; margin:0 auto 17px;
  filter:drop-shadow(0 8px 14px rgba(236,91,159,.25));
  animation:rose-ribbon-pulse 2.5s ease-in-out infinite;
}
.rose-october-ribbon:before,.rose-october-ribbon:after {
  content:""; position:absolute; top:3px; width:24px; height:65px;
  border:9px solid #f5a7cb; border-radius:18px 18px 3px 3px;
  background:linear-gradient(90deg,#d84d91,#ffcae0);
}
.rose-october-ribbon:before { left:10px; transform:rotate(-39deg); }
.rose-october-ribbon:after { right:10px; transform:rotate(39deg); }
.rose-october-ribbon span {
  position:absolute; z-index:2; left:24px; top:35px; width:28px; height:43px;
  border-left:9px solid #f5a7cb; border-bottom:9px solid #f5a7cb;
  transform:skew(-15deg) rotate(-45deg); border-radius:0 0 0 5px;
}
.rose-october-kicker {
  margin:0 0 10px; color:#f8b8d5; font-size:.7rem; font-weight:800;
  letter-spacing:.16em; line-height:1.6;
}
.rose-october-card h1 {
  margin:0; color:#fff; font-size:clamp(2.5rem,8vw,4.3rem);
  font-weight:850; letter-spacing:-.045em; line-height:1.05;
  text-shadow:0 0 32px rgba(246,119,177,.25);
}
.rose-october-message {
  margin:22px 0 0; color:#f6dce9; font-size:clamp(1rem,3vw,1.15rem); line-height:1.8;
}
.rose-october-message strong { color:#fff; font-weight:750; }
.rose-october-hearts { margin:14px 0 21px; color:#f6a9ce; font-size:1.15rem; letter-spacing:.15em; }
.rose-october-continue {
  display:inline-flex; align-items:center; justify-content:center; gap:14px;
  min-height:48px; padding:12px 22px; border:0; border-radius:999px;
  background:linear-gradient(110deg,#f5a6cb,#df5b9d); color:#38132b;
  font:inherit; font-weight:800; cursor:pointer;
  box-shadow:0 8px 25px rgba(225,83,153,.25);
  transition:transform .2s ease,filter .2s ease;
}
.rose-october-continue:hover { transform:translateY(-2px); filter:brightness(1.08); }
.rose-october-continue:focus-visible,.rose-october-close:focus-visible {
  outline:3px solid #fff; outline-offset:3px;
}
.rose-october-small { margin:18px 0 0; color:#cbaabd; font-size:.76rem; }
.rose-october-out { opacity:0; pointer-events:none; transition:opacity .6s ease; }
@keyframes rose-intro-in { from {opacity:0} to {opacity:1} }
@keyframes rose-ribbon-pulse { 0%,100% {transform:scale(1)} 50% {transform:scale(1.06)} }
@media(max-width:480px) {
  .rose-october-intro { padding:14px; }
  .rose-october-card { border-radius:22px; padding-top:42px; }
  .rose-october-kicker { letter-spacing:.1em; font-size:.63rem; }
}
@media(prefers-reduced-motion:reduce) {
  .rose-october-intro,.rose-october-ribbon { animation:none !important; }
  .rose-october-out { transition:none; }
}


/* Centre technique — styles isolés à technician.php */
.tech-dashboard{--tech-bg:#0b101b;--tech-panel:#111a27;--tech-line:#29344a;max-width:1250px;margin:28px auto 110px;padding:0 20px;color:#f4f2ff}
.tech-dashboard *{box-sizing:border-box}
.tech-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin:10px 0 26px}
.tech-eyebrow{font-size:11px;font-weight:800;letter-spacing:1.7px;color:#d8a5ff}
.tech-heading h1{font-size:clamp(28px,3vw,40px);margin:8px 0;color:#faf8ff}
.tech-heading p{margin:0;color:#aab6c9}
.tech-heading-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.tech-role{border:1px solid #6546a2;background:#251a40;color:#e9d5ff;padding:8px 12px;border-radius:30px;font-size:12px;font-weight:750}
.tech-heading-actions .inline{margin:0}
.tech-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px}
.tech-metric{border:1px solid #2b3048;border-radius:14px;padding:18px;background:linear-gradient(145deg,#17182d,#101724);min-width:0}
.tech-metric:nth-child(1){border-color:#6440a0}.tech-metric:nth-child(2){border-color:#285d92}.tech-metric:nth-child(3){border-color:#166c69}
.tech-metric span,.tech-metric small{display:block;color:#aab6c9;font-size:12px}.tech-metric strong{display:block;font-size:28px;color:#f8f7ff;margin:6px 0}.tech-metric small{font-size:11px}
.tech-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;margin-bottom:16px}
.tech-panel{background:linear-gradient(145deg,#111a27,#0d131e);border:1px solid #29344a;border-radius:14px;padding:20px;margin-bottom:16px;min-width:0}
.tech-panel-title{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:15px}
.tech-panel-title>div{display:flex;align-items:center;gap:10px}.tech-panel-title h2{font-size:18px;margin:0;color:#f8f7ff}
.tech-panel-icon{display:grid;place-items:center;width:35px;height:35px;border-radius:10px;background:#292044;color:#d8b4fe;font-weight:900;font-size:20px}
.tech-muted{font-size:11px;color:#93a2b8}
.tech-status-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid #263044;font-size:13px}.tech-status-row:last-of-type{border-bottom:0}.tech-status-row b{font-size:12px;color:#e2e8f0;text-align:right}
.tech-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:9px}.tech-dot.is-ok{background:#34d399;box-shadow:0 0 10px #34d39955}.tech-dot.is-warning{background:#fbbf24}.tech-dot.is-info{background:#67e8f9}
.tech-note{font-size:11px!important;color:#91a0b5!important;line-height:1.55;margin:14px 0 0}
.tech-form{display:grid;gap:12px}.tech-form label{display:grid;gap:6px;color:#c5cee0;font-size:12px;font-weight:650}
.tech-form input,.tech-form textarea,.tech-status-form select{width:100%;padding:11px 12px;border-radius:8px;border:1px solid #35415a;background:#090f1b;color:#f8fafc;font:inherit}
.tech-form input:focus,.tech-form textarea:focus,.tech-status-form select:focus{outline:2px solid #8b5cf6;outline-offset:1px}
.tech-button{display:inline-flex;align-items:center;justify-content:center;border:1px solid #7650c6;border-radius:9px;background:linear-gradient(110deg,#6729b4,#3b3bb4);color:white;padding:10px 14px;font-weight:750;font-size:12px;cursor:pointer;text-decoration:none}
.tech-button:hover{filter:brightness(1.12)}.tech-button-secondary{background:#192438;border-color:#34445e}
.tech-add-task{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) auto;align-items:end;padding-bottom:18px;border-bottom:1px solid #29344a}
.tech-empty{padding:28px 12px;text-align:center;color:#aab6c9}.tech-empty span{display:block;font-size:26px;color:#c4b5fd}.tech-empty b{display:block;color:#f8fafc;margin:8px}.tech-empty p{font-size:12px}
.tech-task-list{display:grid}.tech-task{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:16px 0;border-bottom:1px solid #263044}.tech-task:last-child{border-bottom:0}
.tech-task-main{min-width:0}.tech-task h3{font-size:14px;margin:7px 0;color:#f8fafc}.tech-task p{margin:0 0 8px;color:#aab6c9;font-size:12px;overflow-wrap:anywhere}.tech-task small{font-size:10px;color:#8998ae}
.tech-task-status{display:inline-flex;border-radius:30px;padding:4px 8px;font-size:10px;font-weight:800}.status-open{background:#422d17;color:#fcd34d}.status-progress{background:#183c61;color:#93c5fd}.status-done{background:#123d34;color:#6ee7b7}
.tech-status-form{display:flex;gap:8px;align-items:center;min-width:210px}.tech-status-form select{min-width:110px;padding:9px;font-size:11px}
.tech-footer-note{display:flex;gap:12px;align-items:flex-start;background:#111827;border:1px solid #2a3549;border-radius:12px;padding:15px;color:#9eacc1;font-size:12px}.tech-footer-note p{margin:0}.tech-footer-note span{font-size:18px}
@media(max-width:900px){.tech-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.tech-grid{grid-template-columns:1fr}.tech-add-task{grid-template-columns:1fr}.tech-status-form{min-width:0}}
@media(max-width:600px){.tech-dashboard{padding:0 12px;margin-top:18px}.tech-heading{display:block}.tech-heading-actions{margin-top:14px}.tech-panel{padding:14px}.tech-task{display:block}.tech-status-form{margin-top:12px}.tech-status-form select{flex:1}.tech-metrics{gap:8px}.tech-metric{padding:12px}.tech-metric strong{font-size:24px}}

.tech-ticket-form{display:grid;gap:9px;min-width:230px;max-width:320px;width:100%}
.tech-ticket-form label{display:grid;gap:5px;font-size:11px;color:#c5cee0;font-weight:650}
.tech-ticket-form select,.tech-ticket-form textarea{width:100%;padding:9px 10px;border-radius:8px;border:1px solid #35415a;background:#090f1b;color:#f8fafc;font:inherit}
.tech-ticket-form textarea{resize:vertical}
@media(max-width:900px){.tech-ticket-form{max-width:none;min-width:0;margin-top:12px}.tech-task{align-items:stretch}}

.tech-ticket-message{padding:10px 12px;background:#151e2d;border-left:3px solid #8b5cf6;border-radius:7px;font-size:12px;color:#cbd5e1!important;overflow-wrap:anywhere}
.tech-reply-form{display:grid;gap:8px;margin-top:12px;max-width:430px}.tech-reply-form label{display:grid;gap:6px;color:#c5cee0;font-size:12px}.tech-reply-form textarea{width:100%;padding:10px;border-radius:8px;border:1px solid #35415a;background:#090f1b;color:#f8fafc}

/* Accès rapides, historique et guide du centre technique */
.tech-quick-nav{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0 22px}
.tech-quick-nav a{display:inline-flex;gap:12px;align-items:center;padding:10px 14px;border:1px solid rgba(160,130,255,.28);border-radius:12px;background:rgba(91,54,160,.14);color:inherit;text-decoration:none;font-weight:650}
.tech-quick-nav a:hover{border-color:#9c7bff;background:rgba(91,54,160,.28)}
.tech-history{margin:14px 0;padding:12px 14px;border:1px solid rgba(160,130,255,.22);border-radius:12px;background:rgba(20,16,38,.35)}
.tech-history summary{cursor:pointer;font-weight:650}
.tech-history ol{margin:12px 0 0;padding-left:22px}
.tech-history li{padding:7px 0}
.tech-history li small{display:block;opacity:.7;margin-top:3px}
.tech-guide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.tech-guide-grid article{padding:16px;border:1px solid rgba(160,130,255,.2);border-radius:14px;background:rgba(80,58,130,.10)}
.tech-guide-grid h3{margin:0 0 8px;font-size:1rem}
.tech-guide-grid p{margin:0;line-height:1.6}
@media(max-width:700px){.tech-guide-grid{grid-template-columns:1fr}.tech-quick-nav a{flex:1 1 42%;justify-content:space-between}}


/* === Navigation principale DJ Mirkin Faust : harmonisation de toutes les pages === */
.site-header{position:sticky;top:0;z-index:1000;display:flex;align-items:center;gap:18px;padding:12px max(2vw,18px);background:rgba(7,7,18,.96);border:1px solid #563080;border-radius:24px;box-shadow:0 0 24px #8b35ff18,0 8px 30px #0005;backdrop-filter:blur(18px)}
.site-header:after{content:"";position:absolute;left:18px;right:18px;bottom:-2px;height:1px;background:linear-gradient(90deg,transparent,#ff27c8,#00dfff,#8b35ff,transparent);pointer-events:none}
.site-header .brand{display:flex;align-items:center;gap:12px;flex:0 0 auto;min-width:235px;text-decoration:none}
.site-header .brand-logo{width:58px;height:58px;object-fit:cover;border-radius:50%;border:1px solid #b62cff;box-shadow:0 0 18px #d51bd455}
.site-header .brand-name{font-weight:900;letter-spacing:.5px;color:#f8f4ff;white-space:nowrap}
.site-header nav#primary-navigation{display:flex;align-items:center;justify-content:flex-end;gap:5px;flex:1;min-width:0}
.site-header nav#primary-navigation>a,.site-header nav#primary-navigation .nav-menu>summary{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:42px;padding:9px 10px;border:1px solid transparent;border-radius:11px;color:#eee9ff;font-size:.88rem;font-weight:750;line-height:1.2;text-decoration:none;white-space:nowrap;cursor:pointer;transition:background .2s,border-color .2s,box-shadow .2s,transform .2s}
.site-header nav#primary-navigation .nav-icon{font-size:1.1rem;color:#d58aff}
.site-header nav#primary-navigation>a:hover,.site-header nav#primary-navigation .nav-menu>summary:hover{background:#8b35ff20;border-color:#8b35ff70;box-shadow:0 0 16px #8b35ff20;color:white;transform:translateY(-1px)}
.site-header nav#primary-navigation .nav-home{color:#58eaff}
.site-header nav#primary-navigation .nav-devis{background:linear-gradient(115deg,#d918d6,#6d2cff);border-color:#e85aff;box-shadow:0 0 18px #b82aff45;color:white;padding-inline:15px}
.site-header nav#primary-navigation .nav-contact-cta{margin-left:auto;padding:12px 17px;border:1px solid #e95aff;background:linear-gradient(105deg,#ed16c7,#8c22ff 60%,#315bff);box-shadow:0 0 22px #ad27ff55;border-radius:999px;color:#fff;font-weight:850}
.site-header nav#primary-navigation .nav-contact-cta:hover{box-shadow:0 0 30px #c13aff85;transform:translateY(-1px)}
.nav-cta-plane{font-size:1.1rem}
.site-header nav#primary-navigation .nav-menu{position:relative;display:block}
.site-header nav#primary-navigation .nav-menu>summary{list-style:none}
.site-header nav#primary-navigation .nav-menu>summary::-webkit-details-marker{display:none}
.site-header nav#primary-navigation .nav-menu>summary:after{content:"⌄";font-size:.9rem;color:#dca4ff;margin-left:1px}
.site-header nav#primary-navigation .nav-menu[open]>summary{background:#8b35ff20;border-color:#8b35ff70}
.site-header nav#primary-navigation .nav-dropdown{position:absolute;top:calc(100% + 12px);left:0;min-width:225px;padding:10px;background:rgba(9,8,23,.98);border:1px solid #8b35ff80;border-radius:16px;box-shadow:0 14px 35px #0009,0 0 22px #8b35ff22;display:grid;gap:4px;z-index:1005;backdrop-filter:blur(18px)}
.site-header nav#primary-navigation .nav-dropdown:before{content:"";position:absolute;top:-7px;left:22px;width:12px;height:12px;transform:rotate(45deg);background:#0b091a;border-top:1px solid #8b35ff80;border-left:1px solid #8b35ff80}
.site-header nav#primary-navigation .nav-dropdown a{display:flex;align-items:center;padding:10px 12px;border-radius:9px;color:#eee9ff;text-decoration:none;font-size:.88rem;font-weight:650;white-space:normal}
.site-header nav#primary-navigation .nav-dropdown a:hover{background:#8b35ff28;color:#fff;text-shadow:0 0 12px #e23aff}
.site-header .nav-toggle{display:none}
@media(max-width:1200px) and (min-width:851px){
 .site-header{gap:10px;padding-inline:16px}.site-header .brand{min-width:185px;gap:8px}.site-header .brand-logo{width:48px;height:48px}.site-header .brand-name{font-size:.88rem}
 .site-header nav#primary-navigation{gap:2px}.site-header nav#primary-navigation>a,.site-header nav#primary-navigation .nav-menu>summary{font-size:.78rem;padding:8px 7px}.site-header nav#primary-navigation .nav-contact-cta{padding:10px 12px}
}
@media(max-width:850px){
 .site-header{position:sticky;top:0;align-items:center;flex-direction:row;flex-wrap:wrap;padding:10px 14px;border-radius:0 0 18px 18px;gap:10px}
 .site-header .brand{min-width:0;flex:1}.site-header .brand-logo{width:48px;height:48px}.site-header .brand-name{font-size:.9rem;white-space:normal}
 .site-header .nav-toggle{display:flex;align-items:center;justify-content:center;gap:4px;flex-direction:column;margin-left:auto;padding:9px 12px;min-width:50px;background:#151126;border:1px solid #a82bff;border-radius:13px;box-shadow:0 0 16px #8b35ff22;color:#fff;cursor:pointer}
 .site-header .nav-toggle span{display:block;width:20px;height:2px;background:linear-gradient(90deg,#ff27c8,#00dfff)}
 .site-header .nav-toggle b{font-size:.65rem;line-height:1.1}
 .site-header nav#primary-navigation{display:none;flex:0 0 100%;width:100%;padding:10px 0 4px;gap:7px;justify-content:stretch;align-items:stretch;flex-wrap:wrap}
 .site-header nav#primary-navigation.is-open{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
 .site-header nav#primary-navigation>a,.site-header nav#primary-navigation .nav-menu>summary{display:flex;justify-content:flex-start;min-height:44px;padding:10px 11px;background:#111020;border:1px solid #34234e;border-radius:11px;white-space:normal;font-size:.86rem}
 .site-header nav#primary-navigation .nav-menu{min-width:0}
 .site-header nav#primary-navigation .nav-menu>summary{width:100%;box-sizing:border-box}
 .site-header nav#primary-navigation .nav-dropdown{position:static;min-width:0;width:auto;margin:5px 0 2px;padding:5px;background:#0d0a1a;border-radius:10px;box-shadow:none;grid-column:1/-1}
 .site-header nav#primary-navigation .nav-dropdown:before{display:none}
 .site-header nav#primary-navigation .nav-dropdown a{font-size:.82rem;padding:9px}
 .site-header nav#primary-navigation .nav-contact-cta{grid-column:1/-1;justify-content:center;margin:4px 0 0;border-radius:999px;padding:13px}
}
@media(max-width:420px){.site-header .brand-name{max-width:155px;font-size:.82rem}.site-header nav#primary-navigation.is-open{grid-template-columns:1fr 1fr}.site-header nav#primary-navigation>a,.site-header nav#primary-navigation .nav-menu>summary{font-size:.8rem;padding:9px}}


/* Styles strictly limited to the Contact page. */
.contact-page {
  max-width: 980px;
  margin: 0 auto;
  padding: 52px 24px 64px;
}
.contact-page .contact-intro {
  max-width: 720px;
  margin: 0 auto 28px;
  text-align: center;
}
.contact-page .contact-intro .eyebrow { margin-bottom: 10px; }
.contact-page .contact-intro h1 { margin: 0 0 14px; }
.contact-page .contact-intro > p:last-child { max-width: 620px; margin: 0 auto; }
.contact-page .contact-form-only { width: 100%; max-width: 680px; margin: 0 auto; }
.contact-page .contact-form-card {
  display: grid;
  gap: 16px;
  min-width: 0;
  padding: clamp(20px, 3vw, 32px);
  border: 1px solid rgba(178, 77, 255, .34);
  border-radius: 20px;
  box-shadow: 0 0 32px rgba(151, 42, 255, .10);
}
.contact-page .contact-form-card input,
.contact-page .contact-form-card textarea {
  box-sizing: border-box;
  width: 100%;
}
.contact-page .contact-form-card textarea { min-height: 130px; resize: vertical; }
.contact-page .contact-form-card > .button { justify-self: center; min-width: min(100%, 260px); }
.contact-page .contact-form-card > .muted { margin: -6px 0 0; text-align: center; }
@media (max-width: 620px) {
  .contact-page { padding: 36px 16px 48px; }
  .contact-page .contact-form-card > .button { width: 100%; }
}


/* Footer premium: styles scoped only to the shared footer. */
.site-footer {
  display: block;
  margin: 54px 0 0;
  padding: 34px clamp(18px, 4vw, 48px) 18px;
  border-top: 1px solid rgba(176, 69, 255, .42);
  background: linear-gradient(145deg, #0b0815 0%, #10091c 55%, #080711 100%);
  box-shadow: 0 -12px 42px rgba(130, 37, 210, .08);
  color: #d7cfe6;
}
.site-footer .footer-main {
  display: grid;
  grid-template-columns: 1.35fr .8fr .95fr 1.3fr;
  gap: clamp(22px, 3vw, 42px);
  max-width: 1280px;
  margin: 0 auto;
}
.site-footer .footer-brand-name {
  color: #fff;
  text-decoration: none;
  font-size: 1.15rem;
  font-weight: 900;
  letter-spacing: .04em;
}
.site-footer .footer-brand p { margin: 9px 0 0; color: #aaa0bd; font-size: .9rem; line-height: 1.55; }
.site-footer .footer-links { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.site-footer .footer-links strong { color: #fff; margin-bottom: 3px; }
.site-footer .footer-links a { color: #bcb2ce; text-decoration: none; font-size: .9rem; transition: color .2s ease; }
.site-footer .footer-links a:hover { color: #31eaff; }
.site-footer .footer-cta { padding: 17px; border: 1px solid rgba(185, 67, 255, .35); border-radius: 15px; background: rgba(115, 35, 151, .12); }
.site-footer .footer-cta > span { color: #fff; font-weight: 800; }
.site-footer .footer-cta p { margin: 8px 0 15px; color: #bcb2ce; font-size: .9rem; }
.site-footer .footer-cta-button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 11px 14px; border-radius: 10px; background: linear-gradient(100deg, #c51de8, #7835ef); color: #fff; text-decoration: none; font-size: .8rem; font-weight: 900; box-shadow: 0 0 20px rgba(197, 29, 232, .2); }
.site-footer .footer-cta-button:hover { filter: brightness(1.12); }
.site-footer .footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px 20px; max-width: 1280px; margin: 28px auto 0; padding-top: 16px; border-top: 1px solid rgba(155, 131, 183, .18); color: #958aa9; font-size: .78rem; }
.site-footer .footer-bottom a { color: #aaa0bd; text-decoration: none; }
.site-footer .footer-bottom a:hover { color: #31eaff; }
@media (max-width: 900px) { .site-footer .footer-main { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) {
 .site-footer { padding: 28px 16px 16px; }
 .site-footer .footer-main { grid-template-columns: minmax(0, 1fr); gap: 24px; }
 .site-footer .footer-bottom { flex-direction: column; align-items: flex-start; }
 .site-footer .footer-cta-button { width: 100%; box-sizing: border-box; }
}

/* Espace client premium, styles isolés */
.client-premium{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;max-width:1240px;margin:24px auto 48px}.client-login-panel,.client-benefits{overflow:hidden;border:1px solid #8238f5;border-radius:24px;padding:clamp(22px,4vw,48px);background:radial-gradient(ellipse at 50% 0,#5c1a8a35,transparent 45%),linear-gradient(145deg,#101020f7,#070711f7);box-shadow:0 0 24px #7d27ff25}.client-login-panel{text-align:center;border-color:#a338ff}.client-lock{display:grid;place-items:center;margin:0 auto 14px;width:66px;height:66px;border-radius:50%;font-size:30px;color:var(--cyan);border:2px solid var(--violet);box-shadow:0 0 20px #8b35ff55}.client-eyebrow{font-size:.78rem;letter-spacing:.17em;font-weight:900;color:var(--cyan)}.client-login-panel h1{font-size:clamp(2rem,4vw,3rem);line-height:1.15;margin:5px 0 12px}.client-login-panel h1 span,.client-benefits h2 span{background:linear-gradient(90deg,var(--pink),#bda1ff,var(--cyan));background-clip:text;color:transparent}.client-intro{color:var(--muted);max-width:480px;margin:0 auto 24px}.client-form{text-align:left;display:grid;gap:15px}.client-form label{display:grid;gap:7px;font-weight:700}.client-form input:not([type=checkbox]){width:100%;min-width:0;padding:14px 15px;border:1px solid #65528d;border-radius:11px;background:#0a0a18;color:var(--text);font:inherit}.client-form input:focus{outline:2px solid var(--cyan);outline-offset:2px}.client-form-row{display:flex;justify-content:space-between;gap:12px;align-items:center;font-size:.9rem}.client-form-row .client-remember{display:flex;align-items:center;gap:8px;font-weight:500}.client-form-row a{font-weight:800}.client-main-button{width:100%;padding:14px;border:0;border-radius:12px;background:linear-gradient(100deg,var(--pink),var(--violet),#5148ff);color:white;font-weight:900;font-size:1.05rem;cursor:pointer}.client-divider{display:flex;align-items:center;gap:12px;color:var(--muted);margin:22px 0 12px}.client-divider:before,.client-divider:after{content:"";height:1px;background:#4c3b68;flex:1}.client-register summary,.client-forgot summary{cursor:pointer;font-weight:800;color:var(--cyan);padding:12px;border:1px solid #443064;border-radius:10px;list-style:none}.client-register[open] summary,.client-forgot[open] summary{margin-bottom:14px}.client-forgot{margin-top:14px;text-align:left}.client-forgot p,.client-benefits>p:not(.client-eyebrow){color:var(--muted);font-size:.92rem}.client-security{margin:24px 0 0;padding:15px;border:1px solid #38245a;border-radius:12px;color:var(--muted);font-size:.88rem}.client-benefits{display:flex;flex-direction:column;justify-content:center;background:radial-gradient(ellipse at 85% 35%,#711b9d44,transparent 38%),radial-gradient(ellipse at 70% 80%,#093c6044,transparent 35%),#090817}.client-benefits h2{font-size:clamp(1.8rem,3.5vw,2.7rem);line-height:1.15;margin:8px 0 14px}.client-benefit{display:grid;gap:5px;padding:17px;margin-top:12px;border:1px solid #33224e;border-radius:15px;background:#100d25c9}.client-benefit b{font-size:1rem}.client-benefit span,.client-promo span{color:var(--muted);font-size:.92rem}.client-promo{display:flex;align-items:center;gap:15px;margin-top:20px;padding:16px;border:1px solid #6324a1;border-radius:15px;background:#180d2ccc}.client-promo b{color:var(--cyan)}.client-disc{display:grid;place-items:center;width:54px;height:54px;border-radius:50%;font-size:27px!important;color:var(--pink)!important;border:2px solid var(--pink)}@media(max-width:850px){.client-premium{grid-template-columns:1fr;margin:16px auto 32px}.client-login-panel,.client-benefits{padding:24px}}@media(max-width:420px){.client-form-row{align-items:flex-start;flex-direction:column}.client-login-panel,.client-benefits{padding:18px;border-radius:17px}}
