/* Le mur des spectateurs — styles (partager, mur, régie du mur, bloc Direct). S'appuie sur site.css (variables, .btn, .nav, .pill…). */
.wbadge{position:absolute;top:10px;left:10px;z-index:2;padding:4px 10px;border-radius:999px;font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;font-weight:800;background:rgba(7,4,12,.72);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.22);color:#fff}
.wbadge--ig{background:linear-gradient(110deg,#ff2e9a,#ff7a3d);border-color:transparent}
.wcard{position:relative;border-radius:22px;overflow:hidden;background:var(--nuit2);border:1px solid var(--line);display:flex;flex-direction:column;min-width:0}
.wcard__img{position:relative;aspect-ratio:4/5;background:#120a1d;overflow:hidden}
.wcard__img img{width:100%;height:100%;object-fit:cover}
.wcard__noimg{position:absolute;inset:0;display:grid;place-items:center;background:radial-gradient(300px 220px at 30% 20%,rgba(122,44,255,.5),transparent),radial-gradient(300px 220px at 80% 90%,rgba(255,46,154,.5),transparent),#140a20}
.wcard__noimg span{font-family:var(--serif);font-size:4.5rem;font-weight:700;color:transparent;-webkit-text-stroke:1.5px var(--rose)}
.wcard__body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:6px}
.wcard__name{font-family:var(--serif);font-size:1.15rem;line-height:1.2;overflow-wrap:anywhere}
.wcard__cap{color:#e6d9f0;font-size:.9rem;line-height:1.45;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.wcard__link{align-self:flex-start;color:var(--rose);font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;font-weight:800;border-bottom:1px solid rgba(255,140,200,.4);padding-bottom:2px}

/* ---------- partager.html ---------- */
.wp{padding:0 0 120px}
.whero{position:relative;overflow:hidden;padding:clamp(104px,18vw,170px) 0 clamp(26px,5vw,56px);text-align:left;isolation:isolate}
.whero::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(700px 380px at 12% 8%,rgba(122,44,255,.5),transparent 70%),radial-gradient(600px 360px at 95% 100%,rgba(255,46,154,.42),transparent 70%)}
.whero h1{font-family:var(--serif);font-weight:700;font-size:clamp(2.3rem,9.5vw,4.6rem);line-height:1.02;max-width:14ch}
.whero h1 em{color:var(--rose);font-style:italic;font-weight:500}
.whero .lead{max-width:44ch;margin-top:14px;color:#ddd0e8}
.wphase{display:inline-flex;align-items:center;gap:10px;margin-top:20px;padding:9px 16px;border-radius:999px;border:1px solid rgba(236,211,160,.5);color:var(--or);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;font-weight:800}
.wphase i{width:8px;height:8px;border-radius:50%;background:var(--or)}
.wphase.is-open i{background:#7dffb2}.wphase.is-closed i{background:var(--rose)}
.wtabs{position:sticky;top:58px;z-index:40;display:flex;gap:6px;padding:8px;margin:0 auto 22px;width:min(560px,92vw);border-radius:999px;border:1px solid var(--line);background:rgba(14,7,23,.88);backdrop-filter:blur(14px)}
.wtabs button{flex:1;min-height:46px;border-radius:999px;font-weight:800;font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.wtabs button[aria-selected=true]{background:linear-gradient(110deg,var(--magenta),var(--violet));color:#fff;box-shadow:0 0 28px rgba(255,46,154,.35)}
.wpanel{width:min(640px,92vw);margin:0 auto 22px;border:1px solid var(--line);background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.015)),var(--nuit);border-radius:28px;padding:clamp(20px,5vw,34px);position:relative}
.wpanel[hidden]{display:none}
.wpanel h2{font-family:var(--serif);font-size:clamp(1.5rem,5vw,2rem);line-height:1.1;margin-bottom:6px;max-width:none}
.wpanel .sub{color:var(--muted);font-size:.92rem;margin-bottom:18px}
.wnum{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;margin-right:10px;border:1px solid var(--rose);color:var(--rose);font:700 .85rem var(--sans);vertical-align:middle}
.wf{display:flex;flex-direction:column;gap:14px}
.wf label.l{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;font-weight:800;color:var(--or);display:flex;justify-content:space-between;gap:10px}
.wf label.l small{letter-spacing:.04em;text-transform:none;font-weight:600;color:var(--muted)}
.wf input[type=email],.wf input[type=text],.wf input[type=url],.wf input[inputmode=numeric],.wf textarea{width:100%;min-height:52px;padding:14px 16px;border-radius:16px;border:1px solid var(--line);background:rgba(255,255,255,.06);color:var(--ivoire);font:inherit;font-size:1rem}
.wf input:focus,.wf textarea:focus{outline:none;border-color:var(--rose);box-shadow:0 0 0 3px rgba(255,140,200,.2)}
.wf input.code{text-align:center;font-size:1.9rem;letter-spacing:.5em;font-weight:700;padding-left:.5em}
.wf textarea{min-height:92px}
.wcheck{display:grid;grid-template-columns:26px 1fr;gap:12px;align-items:start;font-size:.84rem;line-height:1.5;color:#e2d6ec;padding:14px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.03)}
.wcheck input{width:22px;height:22px;margin-top:2px;accent-color:#ff2e9a}
.wcheck a,.wlegal a{color:var(--rose);text-decoration:underline;text-underline-offset:3px}
.wbtn{display:inline-flex;align-items:center;justify-content:center;gap:.6em;min-height:54px;padding:14px 28px;border-radius:999px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;font-size:.82rem;background:linear-gradient(110deg,var(--magenta),var(--violet));box-shadow:var(--glow);transition:transform .2s,filter .2s,opacity .2s}
.wbtn:hover{transform:translateY(-2px);filter:brightness(1.1)}
.wbtn[disabled]{opacity:.45;pointer-events:none}
.wbtn--ghost{background:transparent;border:1px solid var(--line);box-shadow:none}
.wbtn--sm{min-height:42px;padding:9px 18px;font-size:.72rem}
.wmsg{min-height:1.4em;font-size:.9rem;color:var(--rose)}.wmsg.ok{color:#7dffb2}
.wdrop{position:relative;display:grid;place-items:center;min-height:210px;border:2px dashed rgba(255,140,200,.55);border-radius:22px;text-align:center;padding:16px;overflow:hidden;background:radial-gradient(260px 160px at 50% 0,rgba(255,46,154,.16),transparent),rgba(255,255,255,.03);cursor:pointer}
.wdrop:hover{border-color:var(--rose)}
.wdrop img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.wdrop span{position:relative;z-index:1;display:inline-flex;flex-direction:column;gap:6px;align-items:center;background:rgba(7,4,12,.62);padding:12px 18px;border-radius:18px;font-weight:700}
.wdrop span small{font-weight:500;color:var(--muted)}
.wdrop svg{width:30px;height:30px;color:var(--rose)}
.wsep{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:.72rem;letter-spacing:.3em;text-transform:uppercase}.wsep::before,.wsep::after{content:"";flex:1;height:1px;background:var(--line)}
.wme{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;font-size:.88rem}
.wme b{overflow-wrap:anywhere}
.wlink{color:var(--muted);font-size:.78rem;text-decoration:underline;text-underline-offset:3px;padding:8px 2px}
.wmine{display:flex;flex-direction:column;gap:10px;margin-top:6px}
.wmine>div{display:flex;gap:12px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.03)}
.wmine img{width:54px;height:54px;border-radius:12px;object-fit:cover;flex:none;background:var(--nuit2)}
.wmine .t{flex:1;min-width:0;font-size:.85rem}.wmine .t b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wst{font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;font-weight:800;padding:5px 10px;border-radius:999px;border:1px solid var(--line);white-space:nowrap}
.wst--approved{color:#7dffb2;border-color:rgba(125,255,178,.5)}.wst--moderation{color:var(--or);border-color:rgba(236,211,160,.5)}.wst--refused{color:#ff9db3;border-color:rgba(255,157,179,.5)}
.wlegal{width:min(640px,92vw);margin:28px auto 0;color:var(--muted);font-size:.78rem;line-height:1.6;text-align:center}
/* carrousel de vote */
.wvote{width:100%}
.wvote__head{width:min(640px,92vw);margin:0 auto 14px}
.wvote__status{margin-top:10px;padding:12px 16px;border-radius:16px;border:1px solid rgba(255,140,200,.4);background:rgba(255,46,154,.08);font-size:.9rem}
.wcar{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding:6px max(4vw,calc((100vw - 640px)/2)) 22px;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
.wcar::-webkit-scrollbar{display:none}
.wcar>.wcard{flex:0 0 min(78vw,330px);scroll-snap-align:center}
.wcar>.wcard.is-mine{border-color:rgba(236,211,160,.5)}
.wcar>.wcard.is-voted{border-color:var(--magenta);box-shadow:0 0 40px rgba(255,46,154,.4)}
.wcard__act{display:flex;gap:8px;padding:0 16px 16px;align-items:center}
.wcard__act .wbtn{flex:1}
.wcard__act .wlink{flex:none}
.wempty{width:min(640px,92vw);margin:10px auto;text-align:center;color:var(--muted);padding:44px 18px;border:1px dashed var(--line);border-radius:24px}
@media(min-width:900px){.wtabs{top:64px}.wcar>.wcard{flex-basis:340px}}

/* ---------- mur.html (projection) ---------- */
body.mur{background:#050209;overflow:hidden;height:100vh;cursor:none;user-select:none}
body.mur::after{opacity:.05}
.mur__bg{position:fixed;inset:0;background:radial-gradient(60vw 50vh at 18% 0,rgba(122,44,255,.5),transparent 70%),radial-gradient(60vw 50vh at 85% 100%,rgba(255,46,154,.42),transparent 70%),#050209}
.mur__bar{position:fixed;left:0;right:0;top:0;display:flex;align-items:center;justify-content:space-between;gap:3vw;padding:2.4vh 3vw;z-index:5}
.mur__brand{font-family:var(--serif);letter-spacing:.3em;text-transform:uppercase;font-size:clamp(.9rem,1.5vw,1.6rem)}
.mur__brand b{display:block;color:var(--rose);font-size:.82em;letter-spacing:.42em}
.mur__phase{font-size:clamp(.8rem,1.2vw,1.3rem);letter-spacing:.24em;text-transform:uppercase;color:var(--or);font-weight:700;text-align:right}
.mur__phase b{display:block;font-family:var(--serif);font-size:1.7em;letter-spacing:.08em;color:#fff;font-variant-numeric:tabular-nums}
.mur__stage{position:fixed;inset:0;perspective:1600px;perspective-origin:50% 42%;overflow:hidden}
.mur__track{position:absolute;left:0;top:50%;height:62vh;margin-top:-30vh;display:flex;align-items:center;gap:3vw;width:max-content;will-change:transform}
.mcard{flex:none;height:56vh;aspect-ratio:4/5;position:relative;border-radius:1.4vh;overflow:hidden;background:var(--nuit2);border:1px solid rgba(255,255,255,.16);box-shadow:0 3vh 6vh -1vh rgba(0,0,0,.8);will-change:transform}
.mcard img{width:100%;height:100%;object-fit:cover}
.mcard .wbadge{font-size:clamp(.5rem,.85vw,.9rem);top:1.4vh;left:1.4vh}
.mcard__cap{position:absolute;left:0;right:0;bottom:0;padding:9vh 1.8vh 1.8vh;background:linear-gradient(to top,rgba(5,2,9,.94) 20%,transparent);display:flex;flex-direction:column;gap:.5vh}
.mcard__cap b{font-family:var(--serif);font-size:clamp(1rem,2.2vh,2.4rem);line-height:1.15}
.mcard__cap span{font-size:clamp(.7rem,1.7vh,1.7rem);color:#e6d9f0;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.mcard .wcard__noimg span{font-size:12vh}
.mur__floor{position:fixed;left:-5%;right:-5%;bottom:0;height:17vh;z-index:1;pointer-events:none;background:linear-gradient(to bottom,rgba(255,46,154,.3),rgba(122,44,255,.06) 60%,transparent),repeating-linear-gradient(90deg,rgba(255,255,255,.05) 0 1px,transparent 1px 8vw)}
.mur__floor::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,transparent,var(--or) 20%,var(--magenta) 50%,var(--or) 80%,transparent);box-shadow:0 0 22px 3px rgba(255,46,154,.6)}
.mur__foot{position:fixed;left:0;right:0;bottom:2.4vh;z-index:5;display:flex;align-items:center;justify-content:space-between;padding:0 3vw;gap:3vw}
.mur__cta{display:flex;align-items:center;gap:2vw}
.mur__qr{width:11vh;height:11vh;background:#fff;border-radius:1vh;padding:.8vh;flex:none}
.mur__qr svg{width:100%;height:100%;display:block}
.mur__cta p{font-size:clamp(.8rem,1.6vh,1.6rem);line-height:1.4;max-width:30ch}
.mur__cta p b{display:block;font-family:var(--serif);font-size:1.5em;color:var(--rose)}
.mur__count{font-family:var(--serif);font-size:clamp(.9rem,1.8vh,1.8rem);letter-spacing:.14em;color:var(--or)}
.mur__empty{position:fixed;inset:0;display:grid;place-items:center;text-align:center;z-index:3;padding:8vw}
.mur__empty h2{font-family:var(--serif);font-size:clamp(2rem,6vh,6rem);max-width:18ch;line-height:1.05;margin:0 auto 2vh}
.mur__empty h2 em{color:var(--rose)}
.mur__empty p{font-size:clamp(1rem,2.4vh,2.4rem);color:#ddd0e8}
/* apparition d'un nouveau post */
.mur__special{position:fixed;inset:0;z-index:8;display:none;place-items:center;background:radial-gradient(60vw 60vh at 50% 50%,rgba(5,2,9,.55),rgba(5,2,9,.9));}
.mur__special.on{display:grid}
.mspot{display:flex;align-items:center;gap:4vw;max-width:84vw}
.mspot .mcard{height:68vh;box-shadow:0 0 8vh rgba(255,46,154,.55),0 0 22vh rgba(122,44,255,.4);border-color:rgba(255,140,200,.7)}
.mspot__txt small{display:block;font-size:clamp(.8rem,1.5vh,1.5rem);letter-spacing:.4em;text-transform:uppercase;color:var(--or);font-weight:800;margin-bottom:1.4vh}
.mspot__txt h2{font-family:var(--serif);font-size:clamp(2rem,7vh,7rem);line-height:1.02;max-width:12ch}
.mspot__txt h2 em{color:var(--rose);font-style:italic;font-weight:500}
.mspot__txt p{margin-top:2vh;font-size:clamp(1rem,2.6vh,2.6rem);color:#e6d9f0;max-width:24ch;line-height:1.35}
/* annonce du gagnant */
.mur__win{position:fixed;inset:0;z-index:7;display:grid;place-items:center;text-align:center;padding:4vh 4vw}
.mwin__wait h1,.mwin__intro h1{font-family:var(--serif);font-size:clamp(2.2rem,8vh,8rem);line-height:1.04;max-width:16ch;margin:0 auto}
.mwin__wait h1 em,.mwin__intro h1 em{color:var(--rose);font-style:italic;font-weight:500}
.mwin__wait p{margin-top:3vh;font-size:clamp(1rem,2.6vh,2.6rem);color:#ddd0e8}
.mwin__wait .big{font-family:var(--serif);font-size:clamp(3rem,14vh,14rem);color:#fff;letter-spacing:.06em;font-variant-numeric:tabular-nums;margin-top:2vh}
.mwin__show{display:flex;align-items:center;justify-content:center;gap:5vw;max-width:92vw}
.mwin__show .mcard{height:74vh;border-color:var(--or);box-shadow:0 0 10vh rgba(236,211,160,.5),0 0 24vh rgba(255,46,154,.45)}
.mwin__txt{text-align:left;max-width:34vw}
.mwin__txt small{display:block;font-size:clamp(.9rem,1.8vh,1.8rem);letter-spacing:.42em;text-transform:uppercase;color:var(--or);font-weight:800;margin-bottom:2vh}
.mwin__txt h2{font-family:var(--serif);font-size:clamp(2.4rem,10vh,10rem);line-height:1;overflow-wrap:anywhere}
.mwin__txt h2 em{color:var(--rose);font-style:italic;font-weight:500}
.mwin__txt p{margin-top:2.6vh;font-size:clamp(1rem,3vh,3rem);color:#e6d9f0;line-height:1.35}
.mwin__txt .votes{margin-top:3vh;display:inline-block;padding:1.2vh 2.4vh;border:1px solid var(--or);border-radius:99px;color:var(--or);font-size:clamp(.9rem,2.2vh,2.2rem);letter-spacing:.2em;text-transform:uppercase;font-weight:800}
.mur__confetti{position:fixed;inset:0;z-index:9;pointer-events:none}
.mur__hint{position:fixed;right:1.4vw;bottom:1vh;z-index:10;font-size:.7rem;color:rgba(255,255,255,.28);letter-spacing:.14em}
body.mur.show-cursor{cursor:default}
@media(max-width:800px){.mspot,.mwin__show{flex-direction:column;gap:2vh}.mwin__txt{text-align:center;max-width:90vw}.mur__cta p{display:none}}

/* ---------- régie du mur ---------- */
.rm{max-width:1080px;margin-inline:auto;padding:104px 18px 90px}
.rm .panel{margin-bottom:22px}
.rm .grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:18px}
.rm .kpi{border:1px solid var(--line);border-radius:18px;padding:14px 16px;background:rgba(255,255,255,.03)}
.rm .kpi b{display:block;font-family:var(--serif);font-size:2rem;line-height:1}
.rm .kpi small{color:var(--muted);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase}
.rm .bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.rm .btn2{padding:11px 18px;border-radius:999px;border:1px solid var(--line);font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;font-weight:800;min-height:44px}
.rm .btn2:hover{border-color:var(--rose)}
.rm .btn2.hot{background:linear-gradient(110deg,var(--magenta),var(--violet));border-color:transparent}
.rm .btn2.panic{background:#b3123b;border-color:#ff5a7e}
.rm .btn2.panic.on{background:#28f08a;border-color:#28f08a;color:#04120a}
.rm .btn2[disabled]{opacity:.4;pointer-events:none}
.rm input[type=datetime-local]{padding:12px 14px;border-radius:14px;border:1px solid var(--line);background:rgba(255,255,255,.05);color:var(--ivoire);font:inherit;color-scheme:dark}
.rm .tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.rm .mod{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.rm .mc{border:1px solid var(--line);border-radius:20px;overflow:hidden;background:rgba(255,255,255,.03);display:flex;flex-direction:column}
.rm .mc.rep{border-color:#ff5a7e}
.rm .mc .im{position:relative;aspect-ratio:4/3;background:#120a1d}
.rm .mc .im img{width:100%;height:100%;object-fit:cover}
.rm .mc .tx{padding:12px 14px;font-size:.85rem;display:flex;flex-direction:column;gap:4px;flex:1;overflow-wrap:anywhere}
.rm .mc .tx b{font-family:var(--serif);font-size:1.05rem}
.rm .mc .tx small{color:var(--muted)}
.rm .mc .ac{display:flex;gap:6px;flex-wrap:wrap;padding:0 12px 12px}
.rm .mc .ac button{flex:1;min-width:84px;padding:9px 10px;border-radius:99px;border:1px solid var(--line);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;font-weight:800}
.rm .mc .ac button.ok{background:rgba(125,255,178,.14);border-color:rgba(125,255,178,.6);color:#7dffb2}
.rm .mc .ac button.no{border-color:rgba(255,157,179,.6);color:#ff9db3}
.rm table{width:100%;border-collapse:collapse;font-size:.9rem}
.rm th{color:var(--muted);font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;text-align:left;padding:8px 10px}
.rm td{padding:10px;border-top:1px solid var(--line);vertical-align:middle}
.rm td.n{font-family:var(--serif);font-size:1.4rem;font-variant-numeric:tabular-nums}
.rm td img{width:44px;height:44px;border-radius:10px;object-fit:cover;vertical-align:middle;margin-right:10px;background:var(--nuit2)}
.rm .votebar{height:8px;border-radius:99px;background:rgba(255,255,255,.1);overflow:hidden;min-width:90px}.rm .votebar i{display:block;height:100%;background:linear-gradient(90deg,var(--magenta),var(--or));transform-origin:0 50%}
.rm .note{color:var(--muted);font-size:.84rem;margin-top:10px}
.rm .warn{border:1px solid var(--or);color:var(--or);border-radius:14px;padding:10px 14px;font-size:.88rem;margin-top:10px}
@media(max-width:600px){.rm td:nth-child(4),.rm th:nth-child(4){display:none}}

/* ---------- bloc « Les posts du public » (direct.html) ---------- */
.pub{margin:90px 0 30px}
.pub__head{display:flex;flex-wrap:wrap;gap:18px;align-items:flex-end;justify-content:space-between;margin-bottom:22px}
.pub__head h2{font-family:var(--serif);font-size:clamp(1.9rem,4.4vw,3rem);line-height:1.05;max-width:18ch}
.pub__head h2 em{color:var(--rose);font-style:italic;font-weight:500}
.pub__head p{color:#ddd0e8;max-width:52ch;margin-top:8px}
.pub__cta{display:flex;gap:10px;flex-wrap:wrap}
.pub .parade{--sh:460px;background:radial-gradient(800px 360px at 50% 20%,rgba(122,44,255,.2),transparent 70%),radial-gradient(700px 300px at 50% 100%,rgba(255,46,154,.14),transparent 70%);border:1px solid var(--line);border-radius:28px;overflow:hidden}
.pub .parade__stage{padding:26px 0 40px}
.pub .pcard__in{text-decoration:none;color:inherit}
.pub .pcard__cap{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.12em}
.pub .wbadge{top:10px;left:10px}
.toast:not(.show){opacity:0;visibility:hidden}
.wp [hidden],.mur [hidden],.rm [hidden]{display:none!important}
.mur__special:not(.on){display:none}
