/* ============ TOKENS ============ */
:root{
  --salle:#101018;      /* noir cinéma (DA BOMLAAH) */
  --salle-2:#15141F;
  --salle-3:#1D1830;
  --brun:#4B167D;    /* violet profond (DA BOMLAAH) */
  --brun-2:#6A2BB0;
  --or:#FFB347;     /* orange (charte), accent principal */
  --or-doux:#FFD08A;
  --or-sombre:#D98A1F;
  --creme:#F5F1F8;     /* blanc, sections claires */
  --creme-2:#EDE6F5;
  --encre:#0A0A0A;
  --encre-dim:#5C5670;
  --blanc:#FFFFFF;
  --gris:#8F889E;      /* gris (charte), éléments décoratifs */
  --ligne-c:rgba(215,194,255,.14);
  --ligne-o:rgba(215,194,255,.16);
  --disp:'Montserrat',system-ui,-apple-system,'Segoe UI',sans-serif;
  --sans:'Open Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  --mono:'Montserrat',system-ui,sans-serif;
  --pad:clamp(16px,5vw,64px);
  --r:30px;
  --lav:#D7C2FF;
  --elec:#8B3DFF;
  --ease:cubic-bezier(.2,.8,.2,1);
  --ease-io:cubic-bezier(.7,0,.2,1);
  /* échelle de calques */
  --z-rail:100;--z-nav:200;--z-grain:900;--z-curtain:1000;--z-skip:1100;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--sans);font-size:17px;line-height:1.62;background:var(--salle);color:var(--blanc);overflow-x:hidden;-webkit-font-smoothing:antialiased}
body::after{content:"";position:fixed;inset:-50%;z-index:var(--z-grain);pointer-events:none;opacity:.07;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grain 1.2s steps(5) infinite}
@keyframes grain{0%{transform:translate(0,0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-3%)}60%{transform:translate(-2%,-1%)}80%{transform:translate(3%,3%)}100%{transform:translate(0,0)}}
img,svg{display:block;max-width:100%}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;touch-action:manipulation}
a{color:inherit}
:focus-visible{outline:2px solid var(--or);outline-offset:3px;border-radius:3px}
.wrap{max-width:1280px;margin:0 auto;padding-inline:var(--pad)}
section{position:relative}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:8px;z-index:var(--z-skip);background:var(--or);color:var(--salle);padding:.7rem 1rem;border-radius:8px;font-weight:600}
.skip:focus{left:8px}

h2{font-family:var(--disp);font-weight:400;font-size:clamp(2.3rem,5.4vw,4.6rem);line-height:1.02;letter-spacing:-.025em;max-width:17ch}
h2 em,h1 em{font-style:normal;color:var(--or)}
h3{font-family:var(--disp);font-weight:450;letter-spacing:-.012em;line-height:1.1}
.lead{font-size:clamp(1.05rem,1.45vw,1.22rem);line-height:1.65;max-width:54ch;color:rgba(255,255,255,.82)}

/* micro-label façon conducteur de partition */
.cue{display:inline-flex;align-items:center;gap:.8rem;font-family:var(--mono);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--or);margin-bottom:1.4rem}
.cue b{font-weight:500;padding:.28rem .5rem;border:1px solid currentColor;border-radius:4px;letter-spacing:.08em}
.cue::after{content:"";width:46px;height:1px;background:currentColor;opacity:.6}
.paper .cue{color:var(--brun)}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:48px;padding:.95rem 1.6rem;border-radius:999px;font-weight:600;font-size:.97rem;text-decoration:none;transition:transform .25s var(--ease),background .25s,color .25s,box-shadow .25s,border-color .25s;white-space:nowrap}
.btn-or{background:var(--or);color:var(--salle)}
.btn-or:hover{background:var(--or-doux);transform:translateY(-2px);box-shadow:0 14px 34px -14px rgba(255,179,71,.7)}
.btn-ghost{border:1px solid rgba(255,255,255,.38);color:var(--blanc)}
.btn-ghost:hover{border-color:var(--or);color:var(--or-doux);transform:translateY(-2px)}
.btn:active{transform:scale(.97)}

/* reveal */
.rv{opacity:0;transform:translateY(22px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.rv.on{opacity:1;transform:none}
.rv.d1{transition-delay:.08s}.rv.d2{transition-delay:.16s}.rv.d3{transition-delay:.24s}

/* ============ RIDEAU (splash) ============ */
#curtain{position:fixed;inset:0;z-index:var(--z-curtain);overflow:hidden;cursor:pointer}
#curtain .cur{position:absolute;top:0;bottom:0;width:50.5%;transition:transform 1.5s var(--ease-io),opacity .6s 1.1s;
  background:
    linear-gradient(180deg,rgba(0,0,0,.45),transparent 22%,transparent 72%,rgba(0,0,0,.6)),
    repeating-linear-gradient(90deg,#3D0715 0,#7A142F 2.1vw,#5A0D22 3.4vw,#9B2442 4.6vw,#4A0A1B 6.4vw)}
#curtain .l{left:0;transform-origin:0 50%}
#curtain .r{right:0;transform-origin:100% 50%}
#curtain .valance{position:absolute;inset:0 0 auto 0;height:13vh;min-height:70px;z-index:2;transition:transform 1.2s .3s var(--ease-io);
  background:radial-gradient(60px 26px at 50% 100%,transparent 96%,#4A0A1B) 0 0/120px 100%,linear-gradient(#2B0510,#5A0D22)}
#curtain .valance::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:8px;background:repeating-linear-gradient(90deg,var(--or) 0 3px,transparent 3px 7px);opacity:.75}
#curtain .cur-t{position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:1rem;transition:opacity .5s,transform .8s var(--ease)}
#curtain .cur-t span{font-family:var(--mono);font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;color:var(--or-doux);opacity:0;animation:fadeUp .8s .15s forwards}
#curtain .cur-t strong{font-family:var(--disp);font-weight:400;font-size:clamp(2.6rem,8vw,6rem);line-height:.95;letter-spacing:-.03em;color:var(--blanc);opacity:0;animation:fadeUp .9s .3s forwards}
#curtain .cur-t strong em{font-style:normal;color:var(--or)}
#curtain .cur-t small{font-family:var(--mono);font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;opacity:0;color:rgba(255,255,255,.55);animation:fadeUp .8s .7s forwards}
@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
#curtain.open .l{transform:scaleX(.06)}
#curtain.open .r{transform:scaleX(.06)}
#curtain.open .cur{opacity:0}
#curtain.open .valance{transform:translateY(-110%)}
#curtain.open .cur-t{opacity:0;transform:scale(1.04)}
#curtain.gone{display:none}

/* ============ NAV ============ */
.nav{position:fixed;inset:0 0 auto 0;z-index:var(--z-nav);transition:background .4s,border-color .4s;border-bottom:1px solid transparent}
.nav::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:rgba(0,0,0,0);transition:background .4s}
.nav.solid{border-color:var(--ligne-o)}
.nav.solid::before{background:rgba(0,0,0,.84);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.nav-in{display:flex;align-items:center;justify-content:space-between;gap:1rem;height:74px}
.brand{display:flex;align-items:center;gap:.7rem;min-height:44px;white-space:nowrap;text-decoration:none;font-family:var(--disp);font-size:1.2rem;letter-spacing:-.01em;position:relative;z-index:3}
.brand svg{width:30px;height:30px}
.brand em{font-style:normal;color:var(--or);}
.links{display:flex;align-items:center;gap:1.8rem;list-style:none}
.links a{white-space:nowrap;text-decoration:none;font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;opacity:.78;padding:.4rem 0;border-bottom:1px solid transparent;transition:opacity .2s,color .2s,border-color .2s}
.links a:hover,.links a.active{opacity:1;color:var(--or-doux);border-color:var(--or)}
.links .btn{font-family:var(--sans);font-size:.92rem;letter-spacing:0;text-transform:none;opacity:1;color:var(--salle);padding:.7rem 1.25rem;min-height:44px;border:0}
.links .btn:hover{color:var(--salle)}
.nav-r{display:flex;align-items:center;gap:.6rem}
.snd{position:relative;z-index:3;display:inline-flex;align-items:center;gap:.55rem;min-height:44px;padding:0 .9rem;border-radius:999px;border:1px solid rgba(255,255,255,.25);font-family:var(--mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;transition:border-color .2s,color .2s,background .2s}
.snd:hover{border-color:var(--or);color:var(--or-doux)}
.snd[aria-pressed="true"]{background:rgba(255,179,71,.14);border-color:var(--or);color:var(--or-doux)}
.eqi{display:flex;align-items:center;gap:2px;height:14px}
.eqi i{display:block;width:2px;height:4px;background:currentColor;border-radius:1px;transition:height .3s}
.snd[aria-pressed="true"] .eqi i{animation:eqi .9s ease-in-out infinite alternate}
.snd[aria-pressed="true"] .eqi i:nth-child(2){animation-delay:-.3s}
.snd[aria-pressed="true"] .eqi i:nth-child(3){animation-delay:-.6s}
.snd[aria-pressed="true"] .eqi i:nth-child(4){animation-delay:-.15s}
@keyframes eqi{from{height:3px}to{height:14px}}
.burger{display:none;width:46px;height:46px;position:relative;z-index:3}
.burger i{position:absolute;left:11px;right:11px;height:1.5px;background:var(--blanc);transition:transform .35s var(--ease),top .35s var(--ease),opacity .2s}
.burger i:nth-child(1){top:17px}.burger i:nth-child(2){top:23px}.burger i:nth-child(3){top:29px}
.nav.open .burger i:nth-child(1){top:23px;transform:rotate(45deg)}
.nav.open .burger i:nth-child(2){opacity:0}
.nav.open .burger i:nth-child(3){top:23px;transform:rotate(-45deg)}

/* Timecode rail */
.tcrail{position:fixed;left:clamp(12px,2vw,26px);bottom:clamp(12px,2.2vw,24px);z-index:var(--z-rail);display:flex;flex-direction:column;gap:.15rem;font-family:var(--mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;padding:.55rem .75rem;border-radius:8px;background:rgba(0,0,0,.72);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--ligne-o);color:rgba(255,255,255,.7);pointer-events:none;opacity:0;transform:translateY(8px);transition:opacity .4s,transform .4s var(--ease)}
.tcrail.show{opacity:1;transform:none}
.tcrail .tc-time{color:var(--or);font-size:.8rem;font-variant-numeric:tabular-nums;letter-spacing:.06em}
.tcrail .rec{display:inline-block;width:6px;height:6px;border-radius:50%;background:#FFB347;margin-right:.45rem;animation:blink 1.2s steps(2) infinite}
@keyframes blink{50%{opacity:.15}}

/* ============ HERO ============ */
.hero{min-height:100vh;min-height:100svh;display:flex;flex-direction:column;padding-top:92px;overflow:hidden;isolation:isolate;
  background:radial-gradient(80% 60% at 85% -5%,rgba(255,179,71,.16),transparent 60%),radial-gradient(70% 60% at 0% 100%,rgba(139,61,255,.45),transparent 70%),var(--salle)}
.beam{position:absolute;inset:0;z-index:-1;clip-path:polygon(100% 0,92% 0,0 78%,0 100%,22% 100%);background:linear-gradient(225deg,rgba(255,208,138,.22),rgba(255,208,138,.04) 55%,transparent 80%);animation:flick 5s steps(1) infinite}
.beam canvas{position:absolute;inset:0;width:100%;height:100%}
@keyframes flick{0%,100%{opacity:1}47%{opacity:.86}48%{opacity:1}73%{opacity:.92}74%{opacity:1}}
.projector{position:absolute;right:clamp(10px,3vw,40px);top:112px;width:clamp(54px,6vw,80px);z-index:0;opacity:.85}
.projector .reel{transform-box:fill-box;transform-origin:center;animation:spin 4s linear infinite}
.projector .reel.b{animation-duration:3s}
@keyframes spin{to{transform:rotate(360deg)}}
.big-date{position:absolute;right:-2vw;bottom:14vh;z-index:-1;font-family:var(--disp);font-weight:300;font-size:clamp(9rem,30vw,28rem);line-height:.8;letter-spacing:-.06em;color:transparent;-webkit-text-stroke:1px rgba(255,179,71,.16);user-select:none;pointer-events:none}
.hero-top{padding-top:clamp(.4rem,3vh,2.4rem)}
.hero h1{font-family:var(--disp);font-weight:400;font-size:clamp(2.5rem,9.4vw,8.4rem);line-height:.88;letter-spacing:-.045em}
.hero h1 .ln{display:block;overflow:hidden;padding-bottom:.12em;margin-bottom:-.12em}
.hero h1 .ln>span{display:block;transform:translateY(110%)}
.ready .hero h1 .ln>span{animation:rise 1.3s var(--ease) forwards}
.ready .hero h1 .ln:nth-child(2)>span{animation-delay:.14s}
.hero h1 .ln:nth-child(2){padding-left:clamp(.75rem,5vw,5.5rem)}
@keyframes rise{to{transform:none}}
.hero-sub{margin-top:clamp(1rem,2.4vw,1.8rem);display:flex;gap:1.2rem;align-items:baseline;flex-wrap:wrap;opacity:0}
.ready .hero-sub{animation:fade 1s .7s forwards}
.hero-sub p{font-family:var(--disp);font-style:normal;font-size:clamp(1.15rem,2.1vw,1.7rem);max-width:30ch;line-height:1.3;color:var(--or-doux)}
.listen{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.7);border-bottom:1px dashed rgba(255,255,255,.35);padding:.5rem 0;min-height:44px}
.listen:hover{color:var(--or-doux);border-color:var(--or)}
.listen svg{width:16px;height:16px}
@keyframes fade{to{opacity:1}}
.stage{position:relative;flex:1;min-height:190px;margin-top:.3rem}
.stage canvas{position:absolute;inset:0;width:100%;height:100%;cursor:crosshair}
.hero-bot{padding-bottom:clamp(1.4rem,4vh,2.6rem);display:grid;grid-template-columns:1.1fr 1fr auto;gap:1.6rem 3rem;align-items:end;opacity:0}
.ready .hero-bot{animation:fade 1s 1s forwards}
.meta-k{font-family:var(--mono);font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;opacity:.6;margin-bottom:.35rem}
.meta-v{font-family:var(--disp);font-size:clamp(1.3rem,2.1vw,1.8rem);line-height:1.15}
.tc{display:flex;gap:.2rem;font-variant-numeric:tabular-nums;align-items:flex-start}
.tc div{min-width:3.3rem;text-align:left}
.tc b{display:block;font-family:var(--mono);font-weight:400;font-size:clamp(1.6rem,2.8vw,2.4rem);line-height:1;color:var(--or)}
.tc .sep{font-family:var(--mono);font-size:clamp(1.6rem,2.8vw,2.4rem);line-height:1;color:rgba(255,179,71,.45);min-width:auto;padding-right:.25rem}
.tc small{font-size:.74rem;opacity:.7;font-family:var(--mono);letter-spacing:.08em}
.hero-cta{display:flex;gap:.8rem;flex-wrap:wrap;justify-content:flex-end}

/* ============ CLAVIER + CHIFFRES ============ */
.stats{background:var(--salle-2);border-block:1px solid var(--ligne-o)}
.keys{position:relative;display:flex;height:clamp(64px,8vw,96px);border-bottom:1px solid var(--ligne-o);user-select:none;-webkit-user-select:none}
.wk{flex:1;border-right:1px solid rgba(0,0,0,.55);background:linear-gradient(180deg,#F0F0F0,#FFFFFF 70%,#DADADA);border-radius:0 0 5px 5px;transition:background .15s,transform .15s;transform-origin:top;cursor:pointer}
.bk{position:absolute;top:0;height:62%;min-width:22px;background:linear-gradient(180deg,#101018,#161616);border-radius:0 0 4px 4px;z-index:2;cursor:pointer;transition:background .15s,transform .15s;transform-origin:top;box-shadow:0 3px 4px rgba(0,0,0,.35)}
.wk.hit{background:linear-gradient(180deg,#FFD08A,var(--or-doux));transform:scaleY(.985)}
.bk.hit{background:linear-gradient(180deg,var(--or-sombre),var(--or));transform:scaleY(.97)}
.stats-g{display:grid;grid-template-columns:repeat(6,1fr)}
.stat{padding:clamp(1.8rem,4vw,2.8rem) 1.3rem;border-left:1px solid var(--ligne-o)}
.stat:first-child{border-left:0;padding-left:0}
.stat b{display:block;font-family:var(--disp);font-weight:350;font-size:clamp(2.8rem,5vw,4.6rem);line-height:1;color:var(--or);font-variant-numeric:tabular-nums;letter-spacing:-.04em}
.stat span{display:block;margin-top:.8rem;font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;line-height:1.45;opacity:.72;max-width:16ch}

/* ============ PROJET (papier à musique) ============ */
.paper{background-color:var(--creme);color:var(--encre);
  background-image:linear-gradient(to bottom,transparent 0 48px,rgba(0,0,0,.075) 48px 49px,transparent 49px 57px,rgba(0,0,0,.075) 57px 58px,transparent 58px 66px,rgba(0,0,0,.075) 66px 67px,transparent 67px 75px,rgba(0,0,0,.075) 75px 76px,transparent 76px 84px,rgba(0,0,0,.075) 84px 85px,transparent 85px);
  background-size:100% 150px}
.paper h2 em{color:var(--brun)}
.projet{padding:clamp(5rem,11vw,9rem) 0}
.projet-top{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(2rem,6vw,6rem);align-items:end}
.projet h2{max-width:13ch}
.projet-p{font-size:1.08rem;color:var(--encre-dim)}
.projet-p p+p{margin-top:1.1rem}
.duo{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1rem,2vw,1.6rem);margin-top:clamp(3rem,6vw,5rem)}
.pan{position:relative;border-radius:var(--r);padding:clamp(1.7rem,3.4vw,2.8rem);min-height:380px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;text-decoration:none;isolation:isolate;transition:transform .35s var(--ease),box-shadow .35s}
.pan:hover{transform:translateY(-4px);box-shadow:0 30px 60px -30px rgba(0,0,0,.55)}
.pan h3{font-size:clamp(2.1rem,3.6vw,3.2rem);margin-top:.5rem}
.pan p{max-width:34ch;margin-top:.8rem;font-size:1.02rem}
.pan-k{font-family:var(--mono);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase}
.pan-in{display:inline-flex;align-items:center;gap:.7rem;font-weight:600;font-size:.97rem;margin-top:1.6rem}
.pan-in i{display:inline-block;width:38px;height:1.5px;background:currentColor;transition:width .4s var(--ease)}
.pan:hover .pan-in i{width:66px}
.pan-art{position:absolute;right:clamp(1rem,2.5vw,2rem);bottom:clamp(1rem,2.5vw,1.8rem);width:clamp(84px,10vw,124px);z-index:-1}
.pan.matin{background:linear-gradient(155deg,var(--or-doux),var(--or) 75%);color:var(--salle)}
.pan.soir{background:var(--salle);color:var(--blanc)}
.pan.soir .pan-k,.pan.soir .pan-in{color:var(--or)}
.pan.soir p{color:rgba(255,255,255,.8)}
.pendule{transform-box:view-box;transform-origin:80px 168px;animation:swing 1.15s ease-in-out infinite alternate}
@keyframes swing{from{transform:rotate(-24deg)}to{transform:rotate(24deg)}}
.pour{margin-top:clamp(3rem,6vw,5rem);font-family:var(--disp);font-size:clamp(1.4rem,2.6vw,2.2rem);line-height:1.3;max-width:34em;color:var(--encre)}
.pour em{color:var(--brun);font-style:normal;}

/* ============ BANDEAU DÉFILANT ============ */
.mq{background:var(--brun);color:var(--blanc);overflow:hidden;border-block:1px solid rgba(0,0,0,.3);padding:1.1rem 0}
.mq-track{display:flex;width:max-content;animation:mq 42s linear infinite}
.mq:hover .mq-track{animation-play-state:paused}
.mq span{font-family:var(--disp);font-size:clamp(1.8rem,3.6vw,3rem);font-style:normal;padding-inline:1.4rem;white-space:nowrap;display:inline-flex;align-items:center;gap:2.8rem}
.mq span:nth-child(even){font-style:normal;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.7);font-variation-settings:"SOFT" 0}
.mq svg{width:22px;height:30px;flex:none;color:var(--or)}
@keyframes mq{to{transform:translateX(-50%)}}

/* ============ MASTERCLASS ============ */
.mc{padding:clamp(5rem,11vw,9rem) 0;background:var(--salle)}
.mc-head{display:flex;justify-content:space-between;gap:2rem;align-items:flex-end;flex-wrap:wrap}
.mc-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(1.5rem,5vw,5rem);margin-top:clamp(2.5rem,5vw,4.5rem);align-items:stretch}
.themes{list-style:none;border-top:1px solid var(--ligne-c);counter-reset:th}
.themes li{border-bottom:1px solid var(--ligne-c);counter-increment:th}
.theme-b{display:flex;width:100%;text-align:left;align-items:baseline;gap:1.1rem;padding:1.4rem .2rem;min-height:56px;font-family:var(--disp);font-size:clamp(1.25rem,2.2vw,1.85rem);line-height:1.2;letter-spacing:-.01em;opacity:.5;transition:opacity .25s,padding .4s var(--ease),color .25s}
.theme-b::before{content:"0" counter(th);font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;flex:none;color:var(--or);transform:translateY(-.3em)}
.theme-b:hover{opacity:.85}
.theme-b[aria-selected="true"]{opacity:1;color:var(--or-doux);padding-left:1rem}
.tpanel{background:linear-gradient(160deg,var(--salle-3),var(--salle-2));border:1px solid var(--ligne-o);border-radius:var(--r);padding:clamp(1.6rem,3.2vw,2.8rem);display:flex;flex-direction:column;justify-content:space-between;gap:1.8rem;min-height:520px;position:relative;overflow:hidden}
.tpanel .art{width:100%;max-width:300px;height:auto;color:var(--or-doux);margin-bottom:1.2rem}
.tpanel h3{font-size:clamp(1.55rem,2.5vw,2.2rem);max-width:20ch}
.tpanel p{margin-top:.9rem;color:rgba(255,255,255,.8);max-width:46ch}
.tpanel ul{list-style:none;margin-top:1.3rem;display:grid;gap:.7rem}
.tpanel li{position:relative;padding-left:1.5rem;font-size:.98rem;color:rgba(255,255,255,.88)}
.tpanel li::before{content:"";position:absolute;left:0;top:.68em;width:.7rem;height:1.5px;background:var(--or)}
.art .st{stroke:currentColor;opacity:.28}
.art .draw{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;animation:draw 1.8s var(--ease) forwards;animation-delay:var(--d,0s)}
.art .pop{fill:var(--or);opacity:0;transform-box:fill-box;transform-origin:center;animation:pop .5s var(--ease) forwards;animation-delay:var(--d,0s)}
.art .spin{transform-box:fill-box;transform-origin:center;animation:spin 6s linear infinite}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes pop{from{opacity:0;transform:scale(.3)}to{opacity:1;transform:none}}
.places{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding-top:1.3rem;border-top:1px solid var(--ligne-c)}
.seats{display:grid;grid-template-columns:repeat(6,16px);gap:6px 8px}
.seats svg{width:16px;height:18px;color:var(--or);opacity:.3;animation:seat .4s var(--ease) forwards;animation-delay:calc(var(--i)*60ms + .3s)}
@keyframes seat{to{opacity:1}}
.places b{font-family:var(--disp);font-size:1.5rem;font-weight:450}
.places small{display:block;font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;opacity:.6}
.swap{animation:swapin .5s var(--ease)}
@keyframes swapin{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.mc-foot{margin-top:clamp(2rem,4vw,3rem);display:flex;gap:1.5rem;align-items:center;flex-wrap:wrap}
.mc-foot p{opacity:.72;max-width:48ch}

/* ============ INTERVENANTS ============ */
.int{padding:clamp(4.5rem,9vw,8rem) 0 clamp(5rem,10vw,9rem);background:var(--salle-2)}
.strip{display:flex;gap:10px;height:clamp(380px,56vh,520px);margin-top:clamp(2.2rem,4vw,3.5rem)}
.pan7{position:relative;flex:1 1 0;min-width:0;border-radius:18px;overflow:hidden;text-align:left;background:linear-gradient(180deg,var(--salle-3),#101018);border:1px solid rgba(255,179,71,.16);transition:flex-grow .7s var(--ease),border-color .4s}
.pan7.on{flex-grow:4.2;border-color:rgba(255,179,71,.6)}
.pan7 .bg{position:absolute;inset:0;background-size:cover;background-position:center}
.pan7.teaser .bg{background:radial-gradient(120% 70% at 50% 115%,rgba(75,22,125,.55),transparent 62%),radial-gradient(60% 40% at 50% 0%,rgba(255,179,71,.12),transparent 70%)}
.pan7 .num{position:absolute;left:1rem;top:1rem;font-family:var(--mono);font-size:.68rem;letter-spacing:.14em;color:var(--or);opacity:.8}
.pan7 .wave{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);height:46%;display:flex;align-items:center;justify-content:center;gap:5px;opacity:.6;transition:opacity .4s}
.pan7 .wave i{display:block;width:2px;border-radius:2px;background:var(--or);height:var(--h);transform-origin:center;animation:eqv 1.6s ease-in-out infinite alternate;animation-delay:var(--dl)}
@keyframes eqv{from{transform:scaleY(.25)}to{transform:scaleY(1)}}
.pan7.on .wave{opacity:.18}
.pan7 .vert{position:absolute;left:50%;bottom:1.2rem;transform:translateX(-50%);writing-mode:vertical-rl;rotate:180deg;font-family:var(--disp);font-style:normal;font-size:1.15rem;white-space:nowrap;transition:opacity .3s;opacity:.85}
.pan7.on .vert{opacity:0}
.pan7 .info{position:absolute;left:1.5rem;right:1.5rem;bottom:1.4rem;opacity:0;transform:translateY(14px);transition:opacity .4s,transform .6s var(--ease);pointer-events:none}
.pan7.on .info{opacity:1;transform:none;transition-delay:.18s}
.pan7 .info h3{font-size:clamp(1.4rem,2.2vw,2rem)}
.pan7 .info p{font-size:.95rem;opacity:.75;margin-top:.35rem}

/* ============ CINÉ-CONCERT ============ */
.cine{padding:clamp(5rem,11vw,9rem) 0;background:linear-gradient(180deg,var(--salle) 0,#0A0A0A 100%)}
.cine-head{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(2rem,5vw,5rem);align-items:end}
.cine h2{max-width:14ch}
.films{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.4rem,3vw,2.5rem);margin-top:clamp(3rem,6vw,5rem)}
.film-strip{background:#101018;border-radius:12px;padding:24px 0;position:relative;overflow:hidden;box-shadow:0 30px 60px -30px rgba(0,0,0,.8)}
.film-strip::before,.film-strip::after{content:"";position:absolute;left:0;right:0;height:9px;background:repeating-linear-gradient(90deg,transparent 0 9px,rgba(255,255,255,.2) 9px 21px,transparent 21px 30px);animation:sprocket .5s linear infinite}
.film-strip::before{top:8px}.film-strip::after{bottom:8px}
@keyframes sprocket{to{background-position:30px 0}}
.frame{aspect-ratio:2.39/1;width:calc(100% - 34px);margin:0 auto;overflow:hidden;border-radius:3px;position:relative}
.frame svg{width:100%;height:100%}
.frame::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(120% 120% at 50% 50%,transparent 55%,rgba(0,0,0,.55));animation:flick 3.2s steps(1) infinite}
.frame .ftc{position:absolute;right:.6rem;bottom:.45rem;font-family:var(--mono);font-size:.62rem;letter-spacing:.06em;color:rgba(255,255,255,.75);font-variant-numeric:tabular-nums;z-index:2}
.film h3{font-size:clamp(1.8rem,3vw,2.5rem);margin-top:1.6rem}
.film dl{display:flex;gap:2rem;margin-top:1rem;flex-wrap:wrap}
.film dt{font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;opacity:.55}
.film dd{font-weight:600;margin-top:.15rem}
.film p{margin-top:1rem;color:rgba(255,255,255,.8);max-width:48ch}
.ghost{animation:ghost 5s ease-in-out infinite alternate}
@keyframes ghost{from{transform:translateX(0);opacity:.4}to{transform:translateX(30px);opacity:.12}}
.winlight{animation:winl 4s ease-in-out infinite alternate}
@keyframes winl{from{opacity:.55}to{opacity:.9}}
.sun{animation:sunset 9s ease-in-out infinite alternate}
@keyframes sunset{from{transform:translateY(-6px)}to{transform:translateY(12px)}}
.fork{stroke-dasharray:1;stroke-dashoffset:1;animation:forkd 7s var(--ease) infinite}
.fork-b{animation-delay:3.5s}
@keyframes forkd{0%{stroke-dashoffset:1}30%,55%{stroke-dashoffset:0}80%,100%{stroke-dashoffset:-1}}

.orch{margin-top:clamp(3.5rem,7vw,6rem);display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,4.5rem);align-items:center;padding:clamp(1.6rem,4vw,3.2rem);border:1px solid var(--ligne-o);border-radius:var(--r);background:radial-gradient(70% 90% at 30% 100%,rgba(255,179,71,.1),transparent 70%),rgba(0,0,0,.4)}
.stagesvg{width:100%;max-width:560px;margin:0 auto;overflow:visible}
.mus{cursor:pointer;outline:none}
.mus .head{fill:var(--or);transform-box:fill-box;transform-origin:center;animation:play 4.8s ease-in-out infinite;animation-delay:var(--d)}
.mus .stand{stroke:rgba(255,255,255,.4);stroke-width:1.5;fill:none}
.mus .halo{fill:var(--or);opacity:0;transform-box:fill-box;transform-origin:center}
.mus .fly{fill:var(--or-doux);opacity:0;font-family:var(--disp)}
.mus.hit .halo{animation:halo .9s var(--ease)}
.mus.hit .fly{animation:fly 1.4s var(--ease)}
.mus:hover .head,.mus:focus-visible .head{fill:var(--or-doux)}
.mus:focus-visible .stand{stroke:var(--or)}
@keyframes play{0%,70%,100%{transform:scale(1);opacity:.55}12%{transform:scale(1.5);opacity:1}}
@keyframes halo{from{opacity:.5;transform:scale(1)}to{opacity:0;transform:scale(3.4)}}
@keyframes fly{0%{opacity:0;transform:translateY(0)}20%{opacity:1}100%{opacity:0;transform:translateY(-34px)}}
.sound-on .mus .head{animation:none;opacity:.7}
.baton{transform-box:view-box;transform-origin:280px 268px;animation:beat 2s ease-in-out infinite}
@keyframes beat{0%{transform:rotate(8deg)}12%{transform:rotate(34deg)}25%{transform:rotate(0)}37%{transform:rotate(-30deg)}50%{transform:rotate(-4deg)}62%{transform:rotate(26deg)}75%{transform:rotate(4deg)}87%{transform:rotate(-14deg)}100%{transform:rotate(8deg)}}
.orch h3{font-size:clamp(1.8rem,3.1vw,2.7rem)}
.orch p{margin-top:1rem;color:rgba(255,255,255,.82);max-width:46ch}
.orch .hint{display:block;margin-top:1rem;font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--or);opacity:.8}
.orch .btn{margin-top:1.8rem}

/* ============ RÉSIDENCE ============ */
.res{padding:clamp(5rem,11vw,9rem) 0;background:radial-gradient(70% 90% at 100% 0%,var(--brun-2),transparent 65%),var(--brun);overflow:hidden}
.res .cue{color:var(--or-doux)}
.res h2 em{color:var(--or-doux)}
.res-g{display:grid;grid-template-columns:.95fr 1.05fr;gap:clamp(2rem,6vw,5rem);align-items:center}
.res h2{max-width:13ch}
.res .lead{margin-top:1.5rem;color:rgba(255,255,255,.88)}
.signature{margin-top:2.2rem;padding-top:1.4rem;border-top:1px solid rgba(255,255,255,.25);max-width:44ch}
.signature b{font-family:var(--disp);font-style:normal;font-size:1.7rem;font-weight:400;display:block}
.signature span{opacity:.8;font-size:.95rem}
.pages{display:flex;align-items:flex-end;padding:2rem 0 1rem}
.pg{flex:1;min-width:0;margin-left:-4%;background:var(--creme);color:var(--encre);border-radius:6px;padding:10px 8px 12px;box-shadow:0 18px 30px -16px rgba(0,0,0,.6);transform:rotate(var(--rot)) translateY(var(--ty,0));transition:transform .45s var(--ease)}
.pg:first-child{margin-left:0}
.pg:hover{transform:rotate(0) translateY(-14px);z-index:2}
.pg header{font-family:var(--mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--brun);display:flex;justify-content:space-between}
.pg svg{width:100%;height:auto;margin-top:6px}
.pg .sl{stroke:rgba(0,0,0,.35);stroke-width:.6}
.pg .n{fill:var(--encre);opacity:0;transform-box:fill-box;transform-origin:center}
.pages.on .pg .n{animation:pop .4s var(--ease) forwards;animation-delay:var(--d)}
.days-cap{margin-top:1.2rem;font-family:var(--disp);font-style:normal;font-size:1.35rem;color:var(--or-doux)}

/* ============ LIEU + BILLET ============ */
.lieu{padding:clamp(5rem,11vw,9rem) 0;overflow:hidden}
.lieu-g{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(2rem,5vw,5rem);align-items:center}
.lieu .big{font-family:var(--disp);font-weight:400;font-size:clamp(4.2rem,14vw,13rem);line-height:.84;letter-spacing:-.055em;color:var(--encre)}
.lieu .big span{display:block;color:transparent;-webkit-text-stroke:1.5px var(--brun);font-style:normal;font-size:.42em;letter-spacing:-.02em;margin-top:.15em}
.lieu .txt{max-width:40ch;font-size:1.1rem;color:var(--encre-dim);margin-top:1.8rem}
.lieu .txt b{display:block;font-family:var(--disp);font-size:1.6rem;font-weight:450;margin-bottom:.4rem;color:var(--encre)}
.ticket-wrap{perspective:900px}
.ticket{display:grid;grid-template-columns:1fr 92px;background:var(--brun);color:var(--blanc);border-radius:14px;box-shadow:0 40px 70px -30px rgba(0,0,0,.6);transform:rotate(-4deg);transition:transform .25s ease-out;position:relative}
.t-main{padding:1.6rem 1.5rem 1.4rem;border-right:2px dashed rgba(255,255,255,.35);position:relative}
.t-main::before,.t-main::after{content:"";position:absolute;right:-13px;width:24px;height:24px;border-radius:50%;background:var(--creme)}
.t-main::before{top:-12px}.t-main::after{bottom:-12px}
.t-k{font-family:var(--mono);font-size:.64rem;letter-spacing:.2em;text-transform:uppercase;color:var(--or-doux)}
.t-title{font-family:var(--disp);font-size:clamp(1.7rem,3vw,2.3rem);line-height:1;margin-top:.5rem;letter-spacing:-.02em}
.t-title em{font-style:normal;color:var(--or);}
.t-rows{display:grid;grid-template-columns:1fr 1fr;gap:.9rem 1rem;margin-top:1.3rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.2)}
.t-rows dt{font-family:var(--mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;opacity:.85}
.t-rows dd{font-size:.95rem;font-weight:600}
.t-stub{display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:1.2rem .6rem}
.t-stub .adm{writing-mode:vertical-rl;font-family:var(--mono);font-size:.62rem;letter-spacing:.3em;text-transform:uppercase;color:var(--or-doux)}
.t-stub .bar{width:44px;height:90px;background:repeating-linear-gradient(0deg,var(--blanc) 0 2px,transparent 2px 4px,var(--blanc) 4px 5px,transparent 5px 9px,var(--blanc) 9px 12px,transparent 12px 14px);opacity:.85}

/* ============ PARTENAIRES ============ */
.par{padding:clamp(4.5rem,9vw,8rem) 0;background:var(--creme-2);color:var(--encre);border-top:1px solid rgba(0,0,0,.1)}
.par h2{max-width:16ch}
.par h2 em{color:var(--brun)}
.par .cue{color:var(--brun)}
.logos{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(0,0,0,.14);border:1px solid rgba(0,0,0,.14);margin-top:clamp(2.2rem,4vw,3.5rem);border-radius:18px;overflow:hidden}
.logo-s{background:var(--creme);height:clamp(110px,14vw,165px);display:flex;align-items:center;justify-content:center;padding:1.4rem;transition:background .25s}
.logo-s:hover{background:#FFFFFF}
.logo-s img{max-height:70%;max-width:80%;object-fit:contain;filter:grayscale(1);opacity:.75;transition:filter .3s,opacity .3s}
.logo-s:hover img{filter:none;opacity:1}
.logo-s .ph{display:flex;flex-direction:column;align-items:center;gap:.55rem;color:rgba(0,0,0,.68);font-family:var(--mono);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;text-align:center}
.logo-s .ph svg{width:34px;height:34px}

/* ============ INSCRIPTIONS ============ */
.ins{padding:clamp(5rem,11vw,9rem) 0;background:radial-gradient(60% 50% at 50% 0%,rgba(255,179,71,.16),transparent 70%),var(--salle)}
.ins::before{content:"";position:absolute;left:50%;top:0;width:min(560px,90vw);height:340px;transform:translateX(-50%);background:conic-gradient(from 160deg at 50% 0%,transparent 0deg,rgba(255,208,138,.1) 20deg,transparent 40deg);pointer-events:none}
.ins-head{text-align:center;display:flex;flex-direction:column;align-items:center;position:relative}
.ins-head .cue::after{display:none}
.ins-head h2{max-width:16ch}
.tabs{display:flex;gap:6px;margin:clamp(2rem,4vw,3rem) auto 0;padding:6px;border-radius:999px;background:rgba(255,255,255,.06);border:1px solid var(--ligne-c);width:fit-content;max-width:100%}
.tab{padding:.85rem 1.7rem;min-height:46px;border-radius:999px;font-weight:600;font-size:.97rem;transition:background .3s,color .3s;opacity:.75}
.tab[aria-selected="true"]{background:var(--or);color:var(--salle);opacity:1}
.formbox{max-width:860px;margin:clamp(1.8rem,3.5vw,2.8rem) auto 0;background:linear-gradient(170deg,rgba(29,24,48,.72),rgba(21,20,31,.72));border:1px solid var(--ligne-o);border-radius:var(--r);padding:clamp(1.4rem,4vw,3.2rem);position:relative}
.formbox h3{font-size:clamp(1.6rem,2.6vw,2.2rem)}
.formbox .note{opacity:.75;margin-top:.5rem;max-width:52ch;font-size:.98rem}
form{margin-top:2rem;display:grid;grid-template-columns:1fr 1fr;gap:1.4rem 1.6rem}
.f{display:flex;flex-direction:column;gap:.45rem}
.f.full{grid-column:1/-1}
label,legend{font-size:.88rem;font-weight:500;opacity:.88}
input,select,textarea{font:inherit;font-size:16px;color:var(--blanc);background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.18);border-radius:12px;padding:.85rem 1rem;min-height:48px;transition:border-color .2s,background .2s;width:100%}
input::placeholder,textarea::placeholder{color:rgba(255,255,255,.4)}
input:hover,select:hover,textarea:hover{border-color:rgba(255,255,255,.34)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--or);background:rgba(255,255,255,.08)}
select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' fill='none' stroke='%23FFA800' stroke-width='1.6'%3E%3Cpath d='M1 1.5l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;padding-right:2.6rem}
select option{color:#101018}
textarea{min-height:112px;resize:vertical}
input:user-invalid,select:user-invalid{border-color:#FF8A7A}
fieldset{border:0;grid-column:1/-1;display:grid;gap:.7rem;min-width:0}
.choices{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}
.choice{position:relative}
.choice input{position:absolute;opacity:0;inset:0;width:100%;height:100%;cursor:pointer}
.choice span{display:flex;align-items:flex-start;gap:.7rem;height:100%;padding:.95rem 1rem;border:1px solid rgba(255,255,255,.18);border-radius:14px;font-size:.95rem;line-height:1.3;transition:border-color .2s,background .2s}
.choice span::before{content:"";flex:none;width:16px;height:16px;margin-top:2px;border-radius:50%;border:1.5px solid rgba(255,255,255,.5);transition:all .2s}
.choice input:checked+span{border-color:var(--or);background:rgba(255,179,71,.1)}
.choice input:checked+span::before{background:var(--or);border-color:var(--or);box-shadow:inset 0 0 0 3px var(--salle-2)}
.choice input:focus-visible+span{outline:2px solid var(--or);outline-offset:2px}
.check{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:.8rem;align-items:flex-start;font-size:.92rem;opacity:.85;font-weight:400}
.check input{width:18px;height:18px;min-height:0;margin-top:3px;accent-color:var(--or);flex:none;padding:0}
.submit-row{grid-column:1/-1;display:flex;align-items:center;gap:1.2rem;flex-wrap:wrap;margin-top:.4rem}
.submit-row small{opacity:.6;font-size:.86rem}
.err{grid-column:1/-1;color:#FFB3A8;font-size:.95rem}
.ferr{color:#FFB3A8;font-size:.86rem;line-height:1.35}
.check .ferr{flex-basis:100%;margin:-.4rem 0 0 calc(18px + .8rem)}
.ok{text-align:center;padding:clamp(1.5rem,4vw,3rem) 0}
.ok svg{margin:0 auto 1.4rem;width:64px;height:64px}
.ok h3{font-size:clamp(1.8rem,3vw,2.5rem)}
.ok p{opacity:.82;margin:1rem auto 1.8rem;max-width:44ch}
.ok-row{display:flex;gap:.8rem;justify-content:center;flex-wrap:wrap}
.wa-i,.ok .wa-i{width:18px;height:18px;margin:0;flex:none}
[hidden]{display:none!important}
.offscreen *,.offscreen *::before,.offscreen *::after{animation-play-state:paused!important}

/* ============ GÉNÉRIQUE (footer) ============ */
footer{background:#101018;padding:clamp(4rem,8vw,6.5rem) 0 2rem;border-top:1px solid var(--ligne-o);text-align:center}
.fin{font-family:var(--disp);font-style:normal;font-weight:300;font-size:clamp(4rem,12vw,9rem);line-height:.9;color:var(--or)}
.fin-sub{font-family:var(--mono);font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;opacity:.6;margin-top:1rem}
.credits{display:grid;gap:1.6rem;max-width:640px;margin:clamp(2.5rem,5vw,4rem) auto 0}
.credits dt{font-family:var(--mono);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;opacity:.7}
.credits dd{font-family:var(--disp);font-size:clamp(1.25rem,2.2vw,1.6rem);margin-top:.3rem;line-height:1.3}
.credits dd small{display:block;font-family:var(--sans);font-size:.92rem;opacity:.7;margin-top:.3rem}
.legal{margin-top:clamp(3rem,6vw,4.5rem);padding-top:1.4rem;border-top:1px solid rgba(255,255,255,.1);display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.84rem;opacity:.55;text-align:left}

/* ============ RESPONSIVE ============ */
@media (max-width:1100px){
  .links{gap:1.2rem}
}
@media (max-width:1020px){
  .stats-g{grid-template-columns:repeat(3,1fr)}
  .stat:nth-child(4){border-left:0;padding-left:0}
  .stat:nth-child(n+4){border-top:1px solid var(--ligne-o)}
  .hero-bot{grid-template-columns:1fr 1fr}
  .hero-cta{grid-column:1/-1;justify-content:flex-start}
  .projet-top,.cine-head,.mc-grid,.res-g,.orch,.lieu-g{grid-template-columns:1fr}
  .logos{grid-template-columns:repeat(3,1fr)}
  .ticket-wrap{max-width:520px}
}
@media (max-width:1080px){
  .burger{display:block}
  .snd-l{display:none}
  .links{position:fixed;inset:0;z-index:2;flex-direction:column;align-items:stretch;justify-content:center;gap:0;padding:90px var(--pad) 2rem;background:radial-gradient(80% 60% at 50% 0%,var(--brun-2),transparent 70%),var(--brun);transform:translateX(100%);transition:transform .45s var(--ease-io);overflow-y:auto}
  .nav.open .links{transform:none}
  .links li{border-bottom:1px solid rgba(255,255,255,.14)}
  .links a{display:block;padding:1.1rem 0;font-family:var(--disp);font-size:2rem;letter-spacing:-.01em;text-transform:none;opacity:1;border:0}
  .links a:hover{color:var(--or-doux)}
  .links li:last-child{border:0;margin-top:1.6rem}
  .links .btn{display:flex;font-size:1.05rem;padding:1rem}
  .tcrail{display:none}
}
@media (max-width:820px){
  .duo,.films{grid-template-columns:1fr}
  .strip{flex-direction:column;height:auto}
  .pan7{flex:none;height:76px;transition:height .6s var(--ease),border-color .4s}
  .pan7.on{height:300px}
  .pan7 .vert{writing-mode:horizontal-tb;rotate:none;left:3.4rem;bottom:auto;top:50%;transform:translateY(-50%)}
  .pan7 .num{top:50%;transform:translateY(-50%)}
  .pan7.on .num{top:1rem;transform:none}
  .pan7 .wave{height:60%;justify-content:flex-end;padding-right:1.4rem}
  .logos{grid-template-columns:repeat(2,1fr)}
  .stats-g{grid-template-columns:repeat(2,1fr)}
  .stat{border-left:0!important;padding-left:0!important;border-top:1px solid var(--ligne-o)}
  .stat:nth-child(-n+2){border-top:0}
  .stat:nth-child(even){padding-left:1.3rem!important;border-left:1px solid var(--ligne-o)!important}
  .big-date{bottom:24vh}
}
@media (max-width:620px){
  body{font-size:16px}
  .hero-bot{grid-template-columns:1fr}
  .hero-cta .btn{flex:1 1 100%}
  form,.choices{grid-template-columns:1fr}
  .tab{padding:.8rem 1.1rem;font-size:.92rem}
  .pan{min-height:340px}
  .tpanel{min-height:0}
  .ticket{grid-template-columns:1fr 70px}
  .t-stub .bar{width:34px}
  .tc div{min-width:2.7rem}
  .projector{display:none}
}
/* ---- iPhone / Safari ---- */
a,button,[role=button],.theme-b,.pan7{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
input:not([type=checkbox]):not([type=radio]),textarea{-webkit-appearance:none;appearance:none}
.links{overscroll-behavior:contain}
@media (hover:none),(max-width:820px){
  body::after{display:none}                       /* grain animé + mix-blend plein écran : trop lourd sur iPhone */
  .btn:hover,.pan:hover{transform:none;box-shadow:none}   /* évite le survol « collé » après un tap */
  .pan:hover .pan-in i{width:38px}
}
/* garde-fous : aucune colonne de grille ne doit élargir la page */
.projet-top>*,.duo>*,.mc-grid>*,.cine-head>*,.films>*,.orch>*,.res-g>*,.lieu-g>*,.hero-bot>*,.stats-g>*{min-width:0}
@media (max-width:620px){
  .pg header span:last-child{display:none}
  .pg{padding:8px 6px 10px}
}
@media (max-width:400px){
  .nav-in{gap:.5rem}
  .nav-r{gap:.35rem}
  .brand{font-size:1rem;gap:.5rem}
  .brand svg{width:26px;height:26px}
  .snd{padding:0 .75rem}
  .tc div{min-width:2.4rem}
  .t-rows{grid-template-columns:1fr}
}
.ok-qr{margin:0 auto 1.6rem;display:flex;flex-direction:column;align-items:center;gap:.9rem}
.ok-qr .carte{background:#fff;padding:12px;border-radius:26px;box-shadow:0 0 60px rgba(255,179,71,.35),0 24px 60px rgba(0,0,0,.6)}
.ok-qr canvas{display:block;width:min(260px,64vw);height:auto;border-radius:14px}
.ok-qr .ok-code{font-family:"Courier New",monospace;font-weight:700;font-size:1.7rem;letter-spacing:.1em;color:var(--or)}
.ok-qr small{color:var(--blanc);opacity:.85;max-width:34ch;line-height:1.5}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  body::after{animation:none}
  .hero h1 .ln>span{transform:none}
  .hero-sub,.hero-bot{opacity:1}
  .rv{opacity:1;transform:none}
  .mq-track{animation:none}
}
/* ============ TYPO LE MIRI (Montserrat + Open Sans) ============ */
h1,h2,h3,.hero h1{font-family:var(--disp)}
.hero h1{font-weight:800;letter-spacing:-.03em;line-height:.95;max-width:100%}
h2{font-weight:800;letter-spacing:-.02em;line-height:1.08}
h3{font-weight:700;letter-spacing:-.01em}
h1 em,h2 em,h3 em,.brand em,.t-title em,#curtain .cur-t strong em{font-style:italic;font-weight:700;color:var(--or)}
.paper h2 em,.par h2 em{color:var(--brun)}
.hero-sub p{font-family:var(--sans);font-style:italic;font-weight:500}
.cue,.meta-k,.stat span,.pan-k,.film dt,.t-k,.t-rows dt,.credits dt,.links a,.snd,.listen,.places small,.orch .hint,.tc small,.pg header,.fin-sub,.tcrail{font-weight:600}
.tc b,.tcrail .tc-time{font-family:var(--disp);font-weight:700;font-variant-numeric:tabular-nums}
.brand{font-weight:700}
.stat b{font-weight:800}
.theme-b{font-weight:600}
.pour{font-family:var(--disp);font-weight:500;letter-spacing:-.01em}
.pour em{font-style:italic;font-weight:700;color:var(--brun)}
.lieu .big{font-weight:800;font-size:clamp(3.6rem,11vw,11.5rem)}
.lieu .big span{font-style:italic;font-weight:700;-webkit-text-stroke:1.5px var(--brun)}
.mq span{font-weight:800;font-style:italic}
.mq span:nth-child(even){font-style:normal;font-weight:700}
.signature b,.days-cap{font-style:italic;font-weight:700}
.fin{font-weight:800;font-style:italic}
.pan7 .vert{font-style:italic;font-weight:600}
.pan7 .num{opacity:1}
/* Résidence sur or : texte sombre */
.res{background:radial-gradient(70% 90% at 100% 0%,var(--or-doux),transparent 65%),var(--or);color:var(--salle)}
.res .cue,.res h2 em,.days-cap{color:var(--salle)}
.res h2 em{color:var(--salle)}
.res .lead{color:rgba(0,0,0,.88)}
.signature{border-color:rgba(0,0,0,.3)}
.pg .n{fill:var(--salle)}
.pg header{color:var(--brun)}
/* gris de la charte : éléments décoratifs */
.big-date{-webkit-text-stroke-color:rgba(123,123,123,.38)}
.tcrail{border-color:rgba(123,123,123,.45)}
.pg .sl{stroke:var(--gris);opacity:.6}
.film dt,.credits dt,.fin-sub{color:#B5B5B5;opacity:1}
.t-k,.t-rows dt,.t-stub .adm{color:#FFFFFF;opacity:1}
.par .cue,.par h2 em{color:var(--brun-2)}
#curtain .cur-t strong{font-weight:800;letter-spacing:-.03em}
/* ============ BOMLAAH : DA violet / ambre, doux et aéré ============ */
body{font-size:17px;line-height:1.78}
body::after,.tcrail,.big-date,.projector{display:none!important}
.wrap{max-width:1240px}
.cue b{display:none}
.cue{font-size:.7rem;letter-spacing:.26em;font-weight:600;color:var(--lav);margin-bottom:1.7rem}
.cue::after{width:34px;opacity:.35}
.paper .cue,.par .cue{color:var(--brun-2)}
h2{font-weight:700;letter-spacing:-.028em;line-height:1.14;max-width:19ch}
h2 em,h1 em,h3 em{font-style:normal;font-weight:700;color:var(--or)}
.paper h2 em,.par h2 em,.pour em{color:var(--elec)}
.lead{color:rgba(245,241,248,.76);line-height:1.85;max-width:56ch}
.projet,.mc,.cine,.res,.lieu,.ins{padding-block:clamp(6.5rem,13vw,12rem)}
.int,.par{padding-block:clamp(5.5rem,11vw,10rem)}
.projet-top,.mc-grid,.cine-head,.films,.duo{gap:clamp(2.4rem,6vw,6.5rem)}
.duo{gap:clamp(1.4rem,3vw,2.4rem);margin-top:clamp(4rem,8vw,7rem)}
.mc-grid{margin-top:clamp(3.5rem,6vw,6rem)}
.films{margin-top:clamp(4rem,8vw,7rem)}
.orch{margin-top:clamp(4.5rem,9vw,8rem)}

/* navigation */
.nav.solid::before{background:rgba(16,16,24,.78)}
.nav.solid{border-color:rgba(215,194,255,.1)}
.brand{font-weight:800;letter-spacing:.02em}
.links a{font-size:.7rem;letter-spacing:.16em;font-weight:600;opacity:.7}
.links a:hover,.links a.active{color:var(--lav);border-color:var(--lav)}

/* boutons */
.btn{font-weight:600;letter-spacing:.01em}
.btn-or{box-shadow:0 12px 32px -16px rgba(255,179,71,.7)}
.btn-ghost{border-color:rgba(215,194,255,.4)}
.btn-ghost:hover{border-color:var(--lav);color:var(--lav)}

/* héro : visuel de la DA */
.hero{background:var(--salle)}
.hero::before{content:"";position:absolute;inset:0;z-index:-3;background:url(../img/hero.jpg) 80% 30%/cover no-repeat;opacity:.95}
.hero::after{content:"";position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,var(--salle) 0,rgba(16,16,24,.9) 26%,rgba(16,16,24,.35) 60%,rgba(16,16,24,.05) 100%),linear-gradient(0deg,var(--salle) 0,rgba(16,16,24,0) 34%)}
.beam{opacity:.3}
.stage{opacity:.28;min-height:110px}
.hero h1{font-weight:800;font-size:clamp(3rem,10.5vw,8.8rem);letter-spacing:-.045em;line-height:.9}
.hero h1 .ln:nth-child(2){padding-left:0}
.hero-sub{margin-top:clamp(1.4rem,3vw,2.4rem)}
.hero-sub p{font-family:var(--sans);font-style:normal;font-weight:500;font-size:clamp(1.1rem,1.9vw,1.55rem);max-width:34ch;line-height:1.45;color:var(--lav)}
.meta-k{opacity:.55}
.tc b{color:var(--or);font-weight:600}
.hero-bot{gap:2rem 4rem}

/* chiffres */
.stats{background:var(--salle-2);border-block:1px solid rgba(215,194,255,.1)}
.stat{padding-block:clamp(2.4rem,5vw,3.8rem)}
.stat b{font-weight:300;letter-spacing:-.04em;color:var(--or)}
.stat span{opacity:.62}
.keys{opacity:.9}

/* projet : papier lavande, sans portées */
.paper{background-image:none;background-color:var(--creme)}
.projet{background:linear-gradient(180deg,var(--creme),#EFE8F7)}
.projet-p{color:var(--encre-dim);line-height:1.85}
.pan{border-radius:var(--r);min-height:420px}
.pan:hover{box-shadow:0 36px 70px -40px rgba(75,22,125,.55)}
.pan.matin{background:linear-gradient(155deg,#E4D6FF,var(--lav) 70%);color:var(--encre)}
.pan.soir{background:linear-gradient(180deg,rgba(43,16,85,.5),rgba(16,16,24,.9)),url(../img/univers-1.jpg) center 28%/cover;color:var(--blanc)}
.pan.soir .pan-art{opacity:.55}
.pour{font-weight:500;color:var(--encre);max-width:36em;line-height:1.45}

/* grande image « deux univers » */
.banner{position:relative;min-height:clamp(460px,78vh,720px);display:flex;align-items:flex-end;padding-bottom:clamp(3rem,8vw,6.5rem);text-align:center;isolation:isolate;overflow:hidden;background:var(--salle)}
.banner::before{content:"";position:absolute;inset:0;z-index:-2;background:url(../img/deux-univers.jpg) center/cover no-repeat}
.banner::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,var(--creme) 0,rgba(16,16,24,.5) 22%,rgba(16,16,24,.35) 55%,var(--salle) 100%)}
.banner-in{width:100%;display:flex;flex-direction:column;align-items:center}
.banner-k{font-family:var(--mono);font-weight:600;font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;color:var(--or)}
.banner h2{margin-top:1.4rem;max-width:none;font-size:clamp(2.2rem,6.2vw,5.4rem);line-height:1.08}

/* masterclass / intervenants / ciné */
.tpanel{background:linear-gradient(160deg,rgba(75,22,125,.38),rgba(21,20,31,.7));border-color:rgba(215,194,255,.14);box-shadow:0 50px 90px -60px rgba(0,0,0,.9)}
.theme-b[aria-selected="true"]{color:var(--lav)}
.pan7{border-color:rgba(215,194,255,.14)}
.pan7.on{border-color:rgba(255,179,71,.45)}
.pan7.teaser .bg{background:radial-gradient(120% 70% at 50% 115%,rgba(139,61,255,.4),transparent 62%),radial-gradient(60% 40% at 50% 0%,rgba(215,194,255,.1),transparent 70%)}
.cine{background:linear-gradient(180deg,var(--salle) 0,#0D0C16 100%)}
.film-strip{border-radius:18px}
.orch{border-radius:var(--r);border-color:rgba(215,194,255,.14);background:rgba(215,194,255,.03)}

/* résidence : violet profond */
.res{background:radial-gradient(70% 90% at 100% 0%,rgba(139,61,255,.5),transparent 65%),linear-gradient(160deg,#37106A,var(--brun));color:var(--blanc)}
.res .cue,.days-cap{color:var(--or-doux)}
.res h2 em{color:var(--or)}
.res .lead{color:rgba(245,241,248,.86)}
.signature{border-color:rgba(255,255,255,.2)}
.pg .n{fill:var(--encre)}
.pg{border-radius:10px}

/* lieu + billet */
.lieu{background:linear-gradient(180deg,#EFE8F7,var(--creme))}
.lieu .big{font-weight:800;color:var(--brun);font-size:clamp(2.8rem,7.6vw,7.6rem);line-height:.95;letter-spacing:-.04em}
.lieu .big span{-webkit-text-stroke:0;color:var(--elec);font-style:normal;font-weight:600;font-size:.26em;letter-spacing:0}
.ticket{background:linear-gradient(150deg,var(--brun),#2B0F55);border-radius:20px;box-shadow:0 44px 80px -40px rgba(43,15,85,.8)}
.t-main::before,.t-main::after{background:#F2ECF8}

/* partenaires */
.par{background:var(--creme-2)}
.logos{border-radius:24px;background:rgba(75,22,125,.12);border-color:rgba(75,22,125,.12)}
.logo-s{background:var(--creme)}

/* inscriptions */
.ins{background:radial-gradient(60% 50% at 50% 0%,rgba(139,61,255,.24),transparent 70%),var(--salle)}
.ins::before{opacity:.45}
.formbox{border-color:rgba(215,194,255,.16);border-radius:var(--r);box-shadow:0 50px 90px -60px rgba(0,0,0,.9)}
.tabs{background:rgba(215,194,255,.06);border-color:rgba(215,194,255,.14)}
input:focus,select:focus,textarea:focus{border-color:var(--lav)}
.ok-qr .carte{box-shadow:0 0 70px rgba(139,61,255,.45),0 24px 60px rgba(0,0,0,.6)}

/* pied de page */
footer{background:var(--salle);border-top:1px solid rgba(215,194,255,.1)}
.fin{font-weight:800;font-style:normal;font-size:clamp(3.2rem,11vw,8.5rem);letter-spacing:-.04em;line-height:1;background:linear-gradient(90deg,var(--lav),var(--or));-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.fin-sub{color:var(--lav);opacity:.75;letter-spacing:.16em}
.film dt,.credits dt{color:var(--lav);opacity:.7}
.t-k,.t-rows dt,.t-stub .adm{color:var(--or-doux)}
.big-date{display:none}
@media (max-width:820px){
  .hero::before{background-position:70% 18%}
  .hero::after{background:linear-gradient(180deg,rgba(16,16,24,.45) 0,rgba(16,16,24,.8) 45%,var(--salle) 100%)}
  .banner::after{background:linear-gradient(180deg,var(--creme) 0,rgba(16,16,24,.55) 18%,rgba(16,16,24,.45) 60%,var(--salle) 100%)}
}


/* ============ LÉGER ET PREMIUM : sections claires, lavande et blanc ============ */
:root{--clair:#FBF9FD;--clair-2:#F3EEFA;--blanc-v:#FFFFFF;--txt:#1A1428;--txt-2:#5E5772;--trait:rgba(75,22,125,.12);--ombre:0 30px 70px -44px rgba(75,22,125,.35)}
.stats,.mc,.int,.cine,.ins{color:var(--txt)}
.stats{background:var(--clair);border-block:1px solid var(--trait)}
.stat{border-color:var(--trait)}
.stat b{color:var(--brun-2);font-weight:300}
.stat span{color:var(--txt-2);opacity:1}
.keys{border-color:var(--trait)}
.wk{border-right-color:rgba(75,22,125,.12);background:linear-gradient(180deg,#F6F2FB,#FFFFFF 70%,#E9E0F5)}
.bk{background:linear-gradient(180deg,#2A1750,#3A2368)}
.wk.hit{background:linear-gradient(180deg,#D7C2FF,#EFE6FF)}
.bk.hit{background:linear-gradient(180deg,#6A2BB0,#8B3DFF)}
.cue{color:var(--brun-2)}
.mc .cue,.int .cue,.cine .cue,.ins .cue,.stats .cue{color:var(--brun-2)}
h2,h3{color:var(--txt)}
.hero h2,.res h2,.banner h2{color:var(--blanc)}
.mc h2 em,.int h2 em,.cine h2 em,.ins h2 em,.orch h3 em{color:var(--elec)}
.mc .lead,.int .lead,.cine .lead,.ins .lead{color:var(--txt-2)}
.projet{background:linear-gradient(180deg,var(--clair),var(--clair-2))}
.banner::after{background:linear-gradient(180deg,var(--clair-2) 0,rgba(16,16,24,.5) 20%,rgba(16,16,24,.35) 55%,var(--clair) 100%)}
/* masterclass */
.mc{background:var(--clair)}
.themes,.themes li{border-color:var(--trait)}
.theme-b{color:var(--txt);opacity:.55}
.theme-b::before{color:var(--elec)}
.theme-b:hover{opacity:.9}
.theme-b[aria-selected="true"]{color:var(--brun);opacity:1}
.tpanel{background:var(--blanc-v);border:1px solid var(--trait);box-shadow:var(--ombre)}
.tpanel h3{color:var(--txt)}
.tpanel p,.tpanel li{color:var(--txt-2)}
.tpanel li::before{background:var(--elec)}
.tpanel .art{color:var(--brun-2)}
.art .pop{fill:var(--elec)}
.places{border-color:var(--trait)}
.places b{color:var(--txt)}
.places small{color:var(--txt-2);opacity:1}
.seats svg{color:var(--elec)}
.mc-foot p{color:var(--txt-2);opacity:1}
/* intervenants */
.int{background:var(--clair-2)}
.pan7{background:linear-gradient(180deg,#FFFFFF,#EFE6FB);border:1px solid var(--trait);box-shadow:0 18px 40px -30px rgba(75,22,125,.3)}
.pan7.on{border-color:rgba(139,61,255,.45)}
.pan7.teaser .bg{background:radial-gradient(120% 70% at 50% 115%,rgba(139,61,255,.18),transparent 62%)}
.pan7 .num{color:var(--brun-2)}
.pan7 .wave i{background:var(--elec)}
.pan7 .vert,.pan7 .info h3{color:var(--txt)}
.pan7 .info p{color:var(--txt-2);opacity:1}
/* ciné-concert */
.cine{background:var(--clair)}
.cover{position:relative;border-radius:26px;overflow:hidden;aspect-ratio:16/10;box-shadow:var(--ombre);background:var(--clair-2)}
.cover img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.2s var(--ease)}
.film:hover .cover img{transform:scale(1.035)}
.film:nth-child(1) .cover img{object-position:50% 30%}
.film:nth-child(2) .cover img{object-position:68% 30%}
.cover::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,rgba(16,16,24,.5))}
.cover .ftc{position:absolute;right:1rem;bottom:.8rem;z-index:2;font-family:var(--mono);font-size:.66rem;letter-spacing:.08em;color:rgba(255,255,255,.85);font-variant-numeric:tabular-nums}
.film h3{color:var(--txt)}
.film dt{color:var(--txt-2);opacity:1}
.film dd{color:var(--txt)}
.film p{color:var(--txt-2)}
.orch{background:var(--blanc-v);border:1px solid var(--trait);box-shadow:var(--ombre)}
.orch h3{color:var(--txt)}
.orch p{color:var(--txt-2)}
.orch .hint{color:var(--brun-2)}
.mus .head{fill:var(--elec)}
.mus .halo{fill:var(--elec)}
.mus .fly{fill:var(--brun-2)}
.mus .stand{stroke:rgba(75,22,125,.35)}
.mus:hover .head,.mus:focus-visible .head{fill:var(--brun-2)}
/* inscriptions */
.ins{background:radial-gradient(60% 45% at 50% 0%,rgba(139,61,255,.12),transparent 70%),var(--clair-2)}
.ins::before{display:none}
.tabs{background:rgba(75,22,125,.06);border-color:var(--trait)}
.tab{color:var(--txt)}
.tab[aria-selected="true"]{background:var(--brun);color:#fff}
.formbox{background:var(--blanc-v);border:1px solid var(--trait);box-shadow:var(--ombre)}
.formbox h3{color:var(--txt)}
.formbox .note,.submit-row small{color:var(--txt-2);opacity:1}
label,legend{color:var(--txt);opacity:1}
input,select,textarea{color:var(--txt);background:#FBF9FD;border-color:rgba(75,22,125,.2)}
input::placeholder,textarea::placeholder{color:rgba(26,20,40,.4)}
input:hover,select:hover,textarea:hover{border-color:rgba(75,22,125,.4)}
input:focus,select:focus,textarea:focus{border-color:var(--elec);background:#fff}
select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' fill='none' stroke='%234B167D' stroke-width='1.6'%3E%3Cpath d='M1 1.5l6 6 6-6'/%3E%3C/svg%3E")}
.choice span{border-color:rgba(75,22,125,.2);color:var(--txt)}
.choice span::before{border-color:rgba(75,22,125,.45)}
.choice input:checked+span{border-color:var(--elec);background:rgba(139,61,255,.07)}
.choice input:checked+span::before{background:var(--elec);border-color:var(--elec);box-shadow:inset 0 0 0 3px #fff}
.check{color:var(--txt);opacity:1}
.check input{accent-color:var(--elec)}
.err,.ferr{color:#B3261E}
.ok p{color:var(--txt-2);opacity:1}
.ok svg{stroke:var(--elec)}
.ok-qr small{color:var(--txt-2)}
.ok-qr .ok-code{color:var(--brun)}
.ok-qr .carte{box-shadow:0 0 0 1px var(--trait),var(--ombre)}
/* pied de page : violet nuit, plus léger que le noir */
footer{background:linear-gradient(180deg,#1B1030,#120B22)}
@media (max-width:820px){
  .banner::after{background:linear-gradient(180deg,var(--clair-2) 0,rgba(16,16,24,.55) 18%,rgba(16,16,24,.45) 60%,var(--clair) 100%)}
}

/* ============ BOMLAAH : pages, date, nom, équipe, partenaires ============ */
/* hero : bloc date */
.hero-bot{grid-template-columns:auto 1fr;gap:1.8rem 5rem;align-items:end}
.hero-bot .hero-cta{grid-column:1/-1;justify-content:flex-start}
.hero-bot .meta-k{white-space:nowrap}
.datebox{display:flex;align-items:flex-end;gap:1.1rem}
.d13{font-family:var(--disp);font-weight:800;font-size:clamp(4.6rem,10vw,8rem);line-height:.78;letter-spacing:-.07em;color:var(--or)}
.dm b{display:block;font-family:var(--disp);font-size:clamp(1.05rem,1.8vw,1.4rem);font-weight:700;line-height:1.1}
.dm small{display:block;margin-top:.3rem;font-family:var(--mono);font-size:.7rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--lav)}
.hero .cue{max-width:48ch;line-height:1.5}
.hero-sub p{font-style:italic}

/* projet : définition, nom, fusions */
.projet-top{align-items:center}
.defn{font-family:var(--disp);font-weight:500;font-size:clamp(1.25rem,2.1vw,1.7rem);line-height:1.45;color:var(--txt);letter-spacing:-.01em}
.nom{margin-top:clamp(3.5rem,7vw,6rem);padding:clamp(2rem,5vw,4rem);border-radius:var(--r);background:linear-gradient(150deg,#FFFFFF,#F1EAFB);border:1px solid var(--trait);box-shadow:var(--ombre);text-align:center}
.nom-k{font-family:var(--mono);font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;font-weight:600;color:var(--brun-2)}
.nom-w{margin-top:.8rem;font-family:var(--disp);font-weight:800;font-size:clamp(2.8rem,9vw,7rem);line-height:1;letter-spacing:-.05em;background:linear-gradient(90deg,var(--brun),var(--elec));-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.nom-d{margin:1.2rem auto 0;max-width:30ch;font-family:var(--disp);font-weight:500;font-size:clamp(1.3rem,2.4vw,1.9rem);line-height:1.35;color:var(--txt)}
.nom-d b{font-weight:700;color:var(--brun)}
.nom-s{margin:1rem auto 0;max-width:52ch;color:var(--txt-2);line-height:1.75}
.fusions{margin-top:2.2rem;display:grid;grid-template-columns:1fr 1fr;gap:1rem;text-align:left}
.fusions div{padding:1.3rem 1.4rem;border-radius:20px;background:rgba(139,61,255,.06);border:1px solid var(--trait)}
.fusions b{display:block;font-family:var(--disp);font-weight:700;font-size:1.15rem;color:var(--brun)}
.fusions b i{font-style:normal;color:var(--elec);padding-inline:.2em}
.fusions span{display:block;margin-top:.4rem;color:var(--txt-2);font-size:.97rem;line-height:1.6}
.pan-n{margin-top:1rem;font-family:var(--mono);font-size:.7rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;opacity:.8}
.pan.matin p{color:#2b2340}
.pourqui{margin-top:clamp(3.5rem,7vw,6rem)}
.pq-k{font-family:var(--mono);font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;font-weight:600;color:var(--brun-2);margin-bottom:1.2rem}
.pourqui ul{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem 2rem}
.pourqui li{padding-top:1rem;border-top:1px solid var(--trait)}
.pourqui b{display:block;font-family:var(--disp);font-weight:700;font-size:1.05rem;color:var(--txt)}
.pourqui span{display:block;margin-top:.3rem;color:var(--txt-2);font-size:.92rem;line-height:1.55}

/* organisation */
.orga{padding-block:clamp(5.5rem,11vw,10rem);background:var(--clair);color:var(--txt)}
.orga .cue{color:var(--brun-2)}
.orga h2 em{color:var(--elec)}
.orga-g{margin-top:clamp(2.5rem,5vw,4rem);display:grid;grid-template-columns:1fr 1fr;gap:clamp(1rem,2.4vw,2rem)}
.porteur{display:flex;gap:1.5rem;align-items:center;padding:clamp(1.5rem,3vw,2.4rem);border-radius:var(--r);background:var(--blanc-v);border:1px solid var(--trait);box-shadow:var(--ombre)}
.porteur h3{font-size:clamp(1.5rem,2.4vw,2rem);margin-top:.3rem;color:var(--txt)}
.porteur p{margin-top:.6rem;color:var(--txt-2);max-width:38ch;line-height:1.65}
.tag{display:inline-block;font-family:var(--mono);font-size:.68rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--brun-2)}
.p-logo{flex:none;width:clamp(84px,11vw,130px);height:auto;object-fit:contain}
.av{display:inline-grid;place-items:center;flex:none;width:44px;height:44px;border-radius:50%;background:linear-gradient(145deg,var(--elec),var(--brun));color:#fff;font-family:var(--disp);font-weight:700;font-size:.9rem;letter-spacing:.02em}
.av-l{width:64px;height:64px;font-size:1.15rem}
.av-xl{width:clamp(84px,11vw,120px);height:clamp(84px,11vw,120px);font-size:clamp(1.6rem,3vw,2.2rem)}

/* lieu */
.lieu .big{font-size:clamp(2.8rem,7.6vw,7.6rem)}
.yel-logo{margin-top:2rem;width:clamp(140px,16vw,188px);height:auto}
.lieu .txt{max-width:46ch}

/* partenaires : logos sur tuiles blanches */
.par{background:var(--clair-2);border-top:0}
.logos{list-style:none;grid-template-columns:repeat(3,1fr);gap:clamp(.8rem,1.6vw,1.2rem);background:none;border:0;border-radius:0;overflow:visible}
.logo-s{background:var(--blanc-v);border:1px solid var(--trait);border-radius:22px;height:clamp(120px,15vw,170px);padding:clamp(1.2rem,2.4vw,2rem);box-shadow:0 18px 40px -34px rgba(75,22,125,.4);transition:transform .35s var(--ease),box-shadow .35s}
.logo-s:hover{background:var(--blanc-v);transform:translateY(-3px);box-shadow:var(--ombre)}
.logo-s img{max-height:100%;max-width:100%;width:auto;height:auto;filter:none;opacity:1}
.wordmark{font-family:var(--disp);font-weight:800;font-size:clamp(1.1rem,2vw,1.6rem);line-height:1.15;letter-spacing:-.01em;text-align:center;color:var(--brun)}

/* formulaire masterclass : groupes */
.grp{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:1.4rem 1.6rem}
.grp[hidden]{display:none}

/* pied de page : logo coproducteur */
.credits dd.cr-logo{display:flex;justify-content:center;margin-top:.7rem}
.credits dd.cr-logo img{width:clamp(130px,16vw,170px);height:auto}

/* pages secondaires : bandeau en-tête */
.phead{position:relative;isolation:isolate;overflow:hidden;color:#fff;padding:calc(74px + clamp(4rem,9vw,8rem)) 0 clamp(4rem,8vw,7rem);background:var(--salle)}
.phead::before{content:"";position:absolute;inset:0;z-index:-2;background:var(--ph-img) 70% 30%/cover no-repeat}
.phead::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,var(--salle) 0,rgba(16,16,24,.88) 34%,rgba(16,16,24,.3) 75%,rgba(16,16,24,.1) 100%),linear-gradient(0deg,var(--clair) 0,rgba(251,249,253,0) 14%)}
.phead .cue{color:var(--lav)}
.phead h1{font-family:var(--disp);font-weight:800;font-size:clamp(3rem,9vw,7.4rem);line-height:.95;letter-spacing:-.045em;color:#fff}
.phead .lead{margin-top:1.5rem;max-width:46ch;color:var(--lav);font-size:clamp(1.05rem,1.7vw,1.3rem);line-height:1.6}
.chips{list-style:none;display:flex;flex-wrap:wrap;gap:.6rem;margin-top:2rem}
.chips li{padding:.55rem 1.05rem;border-radius:999px;border:1px solid rgba(215,194,255,.4);background:rgba(16,16,24,.4);font-size:.86rem;font-weight:600;color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}

/* masterclass : fiche + équipe */
.tag{margin-bottom:.4rem}
.tpanel .tag{display:block;margin-top:.4rem}
.who{list-style:none;margin-top:1.4rem;display:grid;gap:.9rem}
.tpanel .who li{padding:0;display:flex;align-items:center;gap:.9rem;color:var(--txt)}
.tpanel .who li::before{display:none}
.who b{display:block;font-family:var(--disp);font-weight:700;color:var(--txt)}
.who small{display:block;color:var(--txt-2);font-size:.88rem}
.tpanel .btn{align-self:flex-start}
.team{margin-top:clamp(2.2rem,4vw,3.5rem);display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(.9rem,2vw,1.4rem)}
.pers{display:flex;gap:1.1rem;align-items:flex-start;padding:1.5rem;border-radius:24px;background:var(--blanc-v);border:1px solid var(--trait);box-shadow:0 18px 40px -34px rgba(75,22,125,.4)}
.pers h3{font-size:1.2rem;color:var(--txt)}
.pers .role{margin-top:.25rem;color:var(--brun);font-weight:600;font-size:.93rem;line-height:1.4}
.pers .mc-l{margin-top:.6rem;color:var(--txt-2);font-size:.85rem;line-height:1.5}
.pers .bio{margin-top:.7rem;color:var(--txt-2);font-size:.93rem;line-height:1.6}
.av-img{width:64px;height:64px;border-radius:50%;object-fit:cover;flex:none}
.mc-head h2,.cine-head h2{max-width:16ch}

/* bandeau d'appel à l'action */
.cta-band{padding:clamp(4rem,8vw,7rem) 0;background:linear-gradient(160deg,#37106A,var(--brun));color:#fff}
.cta-in{display:flex;align-items:center;justify-content:space-between;gap:2rem;flex-wrap:wrap}
.cta-band h2{color:#fff;font-size:clamp(1.9rem,4vw,3.2rem);max-width:18ch}
.cta-band p{margin-top:.8rem;color:var(--lav)}

/* résidence sur la page ciné-concert */
.res{padding-block:clamp(5.5rem,11vw,10rem)}

@media (max-width:1020px){
  .hero-bot{grid-template-columns:auto 1fr;gap:1.6rem 2.4rem}
  .team{grid-template-columns:repeat(2,1fr)}
  .pourqui ul{grid-template-columns:repeat(2,1fr)}
  .orga-g{grid-template-columns:1fr}
}
@media (max-width:820px){
  .logos{grid-template-columns:repeat(2,1fr)}
  .fusions,.grp{grid-template-columns:1fr}
  .phead::before{background-position:72% 20%}
  .phead::after{background:linear-gradient(180deg,rgba(16,16,24,.5) 0,rgba(16,16,24,.86) 55%,rgba(16,16,24,.95) 100%),linear-gradient(0deg,var(--clair) 0,rgba(251,249,253,0) 10%)}
}
@media (max-width:620px){
  .hero-bot{grid-template-columns:1fr}
  .datebox{gap:.9rem}
  .team{grid-template-columns:1fr}
  .pourqui ul{grid-template-columns:1fr}
  .porteur{flex-direction:column;align-items:flex-start}
}

.pan.soir h3{color:#fff}
.pan.soir .pan-n{color:var(--lav)}

select{background-repeat:no-repeat;background-position:right 1rem center;background-size:14px 9px}
.hero .cue,.phead .cue{color:var(--lav)}

/* ============ HERO : scène de ciné-concert ============ */
.hero-scene{--p:0;--w:min(86vw,900px);--ar:2.6/1;--top:clamp(80px,10svh,104px);position:relative;display:flex;flex-direction:column;align-items:center;min-height:100svh;padding-top:var(--top);background:#07070d;overflow:hidden;isolation:isolate}
.hero-scene::before,.hero-scene::after{display:none}
.scene-fond{position:absolute;inset:0;z-index:0;translate:0 calc(var(--p) * 22px);background:radial-gradient(60% 46% at 50% 24%,rgba(139,61,255,.4),transparent 72%),radial-gradient(90% 40% at 50% 100%,rgba(255,179,71,.15),transparent 70%),linear-gradient(#07070d,#0d0b18 58%,#140c26)}
.hero-top{position:relative;z-index:3;width:var(--w);aspect-ratio:var(--ar);display:grid;place-items:center;padding:0}
.ecran{position:absolute;inset:0;z-index:0;translate:0 calc(var(--p) * -40px);opacity:0;transform:translateY(-7%) scale(1.14)}
.ready .ecran{animation:camEcran 3.2s var(--ease) forwards}
@keyframes camEcran{from{opacity:.25;transform:translateY(-7%) scale(1.14)}to{opacity:1;transform:none}}
.ecran-cadre{position:absolute;inset:0;border-radius:10px;overflow:hidden;background:#000;box-shadow:0 0 0 1px rgba(215,194,255,.38),0 0 80px rgba(139,61,255,.55),0 0 220px rgba(139,61,255,.28)}
.ecran::after{content:"";position:absolute;left:6%;right:6%;top:100%;height:70px;background:linear-gradient(rgba(139,61,255,.3),transparent);filter:blur(14px);pointer-events:none}
.vue{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;animation:fondu 18s linear infinite}
.v1{background-image:url(../img/hero.jpg)}
.v2{background-image:url(../img/deux-univers.jpg);animation-delay:-12s}
.v3{background-image:url(../img/univers-2.jpg);animation-delay:-6s}
@keyframes fondu{0%{opacity:0;transform:scale(1.04)}6%{opacity:1}33%{opacity:1}40%{opacity:0;transform:scale(1.15)}100%{opacity:0;transform:scale(1.15)}}
.ecran-voile{position:absolute;inset:0;background:radial-gradient(70% 95% at 50% 50%,rgba(7,7,13,.68),rgba(7,7,13,.16));animation:flick 5s steps(1) infinite}
.titre-carte{position:relative;z-index:2;text-align:center;padding:0 clamp(.8rem,3vw,2rem);display:flex;flex-direction:column;align-items:center;gap:.5rem}
.hero-scene .cue{margin:0;color:var(--lav);font-size:.7rem;letter-spacing:.3em;justify-content:center}
.hero-scene .cue::after{display:none}
.hero-scene h1{font-weight:800;font-size:clamp(2.8rem,10.4vw,8.6rem);line-height:.92;letter-spacing:-.045em;color:#fff;text-shadow:0 0 36px rgba(215,194,255,.6),0 0 120px rgba(139,61,255,.75)}
.hero-scene h1 .ln{overflow:visible;padding:0;margin:0}
.hero-scene h1 .ln>span{transform:none;opacity:0;filter:blur(14px)}
.ready .hero-scene h1 .ln>span{animation:emerge 1.9s .9s var(--ease) forwards}
@keyframes emerge{from{opacity:0;transform:scale(.8) translateY(12px);filter:blur(14px)}to{opacity:1;transform:none;filter:blur(0)}}
.sig{font-family:var(--sans);font-style:italic;font-weight:500;font-size:clamp(1rem,2vw,1.55rem);color:var(--lav);line-height:1.35;opacity:0}
.ready .sig,.ready .coprod{animation:fade 1.1s 1.6s forwards}
.coprod{display:flex;align-items:center;justify-content:center;gap:.7rem;margin-top:.3rem;font-family:var(--mono);font-size:.66rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:rgba(245,241,248,.78);opacity:0}
.coprod img{height:clamp(22px,3vw,32px);width:auto}
/* orchestre */
.orch-h{position:relative;z-index:1;display:block;width:min(100vw,940px);height:auto;margin-top:clamp(-1.4rem,-2vw,-.4rem);translate:0 calc(var(--p) * 30px);scale:calc(1 + var(--p) * .05);opacity:0;transform:translateY(16%) scale(1.12)}
.ready .orch-h{animation:camOrch 3.2s .15s var(--ease) forwards}
@keyframes camOrch{from{opacity:0;transform:translateY(16%) scale(1.12)}to{opacity:1;transform:none}}
.orch-h .persp{stroke:rgba(215,194,255,.12);stroke-width:1;fill:none}
.orch-h .corps{fill:#07070d;stroke:rgba(215,194,255,.4);stroke-width:1.2}
.orch-h .chef{stroke:rgba(255,208,138,.7)}
.orch-h .inst{fill:none;stroke:#FFB347;stroke-width:2.4;stroke-linecap:round;opacity:.25;animation:inst 2.2s ease-in-out infinite}
@keyframes inst{0%,100%{opacity:.2}45%{opacity:1;filter:drop-shadow(0 0 5px #FFB347)}}
.orch-h .baton-h{transform-box:fill-box;transform-origin:0 100%;animation:batonH 1.8s ease-in-out infinite}
@keyframes batonH{0%,100%{transform:rotate(-16deg)}50%{transform:rotate(14deg)}}
/* faisceau du projecteur : du fond de la salle vers l'écran */
.hero-scene .beam{position:absolute;left:0;right:0;bottom:0;top:6%;z-index:2;inset-inline:0;clip-path:polygon(47% 100%,53% 100%,84% 0,16% 0);background:linear-gradient(0deg,rgba(255,208,138,0),rgba(255,208,138,.16) 45%,rgba(215,194,255,.08));animation:flick 5s steps(1) infinite;pointer-events:none}
.hero-scene .stage{position:absolute;left:0;right:0;top:44%;bottom:0;min-height:0;margin:0;z-index:2;opacity:.34}
.hero-scene .hero-bot{position:relative;z-index:4;display:flex;flex-direction:column;align-items:center;gap:1rem;padding-top:0;padding-bottom:clamp(1.4rem,3.5vh,2.4rem);text-align:center;opacity:0}
.ready .hero-scene .hero-bot{animation:fade 1s 1.4s forwards}
.hero-scene .listen{min-height:36px;padding:.2rem 0}
.hero-info{display:flex;align-items:flex-end;justify-content:center;gap:clamp(1.4rem,5vw,4rem);flex-wrap:wrap}
.hero-scene .hero-cta{justify-content:center;grid-column:auto}
.hero-scene .meta-k{text-align:left}
@media (max-width:700px){
  .hero-scene{--w:92vw;--ar:1/1.12}
  .hero-scene h1{font-size:clamp(2.6rem,15vw,4.4rem)}
  .orch-h{width:118vw;max-width:none}
  .hero-info{flex-direction:column;align-items:center;gap:1.1rem}
  .hero-scene .meta-k{text-align:center}
  .hero-scene .hero-cta .btn{flex:1 1 100%}
}
@media (max-height:760px) and (min-width:701px){ .hero-scene{--ar:3/1} }
@media (prefers-reduced-motion:reduce){
  .ecran,.orch-h{opacity:1;transform:none}
  .hero-scene h1 .ln>span,.sig,.coprod{opacity:1;filter:none}
}

/* fiches intervenants : portrait + biographie dépliable */
.team{grid-template-columns:repeat(3,1fr);align-items:start}
.pers{flex-direction:column;gap:0;padding:0;overflow:hidden;align-items:stretch}
.pers-photo{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 20%;border-radius:0;background:var(--clair-2)}
.pers-init{display:grid;place-items:center;background:linear-gradient(150deg,var(--elec),var(--brun));color:#fff;font-family:var(--disp);font-weight:800;font-size:3.4rem;letter-spacing:-.02em}
.pers-txt{padding:1.2rem 1.4rem 1.4rem}
.pers h3{font-size:1.3rem}
.bio{margin-top:1rem;border-top:1px solid var(--trait);padding-top:.9rem}
.bio summary{cursor:pointer;font-family:var(--mono);font-size:.72rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--brun-2);list-style:none;display:flex;align-items:center;justify-content:space-between;min-height:36px}
.bio summary::-webkit-details-marker{display:none}
.bio summary::after{content:"+";font-size:1.2rem;transition:transform .3s}
.bio[open] summary::after{transform:rotate(45deg)}
.bio p{margin-top:.8rem;font-size:.93rem;line-height:1.7;color:var(--txt-2)}
@media (max-width:1020px){.team{grid-template-columns:repeat(2,1fr)}}
@media (max-width:620px){.team{grid-template-columns:1fr}.pers-photo{aspect-ratio:1/1}}

/* MYLL Production × YELAM'S */
.logos-h{display:flex;align-items:center;justify-content:center;gap:1.1rem;margin-top:.6rem}
.logos-h img{height:clamp(34px,4.6vw,56px);width:auto}
.logos-h .x,.credits dd.cr-logo .x{font-family:var(--disp);font-weight:700;font-size:1.6rem;color:var(--lav)}
.credits dd.cr-logo{display:flex;align-items:center;justify-content:center;gap:1.1rem}
.credits dd.cr-logo img{height:56px;width:auto}
.p-yel{width:clamp(110px,13vw,170px)}
.lieu-solo{grid-template-columns:1fr;justify-items:center}
.lieu-solo .ticket-wrap{width:min(100%,560px)}
.orga-g .porteur p{max-width:none}
@media (max-width:620px){.logos-h img{height:30px}}

#curtain .cur-logos{opacity:0;animation:fadeUp .8s .15s forwards}
#curtain .cur-logos .x{font-size:1.6rem;letter-spacing:0;text-transform:none;color:var(--lav);opacity:1;animation:none}

/* cartes « Deux univers » plus compactes ; photo d'Illman cadrée sur le visage */
.pan{min-height:300px}
.pan p{margin-top:.6rem;font-size:.97rem}
.pan h3{font-size:clamp(1.8rem,3vw,2.5rem)}
.pan-n{font-weight:600}
.pers-photo[src$="illman-toure.jpg"]{object-position:22% 20%}
@media (max-width:620px){.pan{min-height:260px}}

.ins-liens{display:flex;flex-wrap:wrap;justify-content:center;gap:.8rem 1.8rem;margin:1.2rem 0 .4rem}
.ins-liens a{display:inline-flex;align-items:center;gap:.6rem;font-weight:600;font-size:.95rem;color:var(--violet,#5B2BB0);text-decoration:none;padding:.5rem 0;border-bottom:1.5px solid currentColor}
.ins-liens a i{display:inline-block;width:22px;height:1.5px;background:currentColor;transition:width .3s}
.ins-liens a:hover i{width:38px}

.films{align-items:start}
.cover.affiche{aspect-ratio:4/5}
.film:nth-child(1) .cover.affiche img{object-position:50% 50%}
