/* =====================================================================
   ASCENSEUR DU MUSEE youlab.art (#yl-asc : cabine, portes, panneau, gaine) — toutes ses regles, et seulement elles
   Regroupees le 16 oct. 2026 depuis salle.css et fun.css, dans l'ordre ou elles s'appliquaient.
   Une regle de cet element s'ecrit ici, nulle part ailleurs.
   ===================================================================== */
/* ===== l'ascenseur ===== */
#yl-asc{position:fixed;inset:0;z-index:70;display:none;pointer-events:none}
#yl-asc.on{display:block;pointer-events:auto}
#yl-asc .porte{position:absolute;top:0;bottom:0;width:50.5%;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.08);transition:transform .9s cubic-bezier(.55,0,.25,1)}
#yl-asc .porte.g{left:0;transform:translateX(-101%);border-right:1px solid #8E9091}
#yl-asc .porte.d{right:0;transform:translateX(101%);border-left:1px solid #8E9091}
#yl-asc.ferme .porte{transform:translateX(0)}
#yl-asc .ecran{position:absolute;left:50%;top:14%;transform:translateX(-50%);z-index:2;display:flex;gap:12px;padding:10px 18px;
  background:#141414;color:#F2B544;border-radius:4px;font-family:inherit;opacity:0;transition:opacity .4s}
#yl-asc.ferme .ecran{opacity:1}
#yl-asc .ecran b{font-weight:400;font-size:30px;min-width:1.2em;text-align:center;font-variant-numeric:tabular-nums}
#yl-asc .ecran .fl{font-style:normal;font-size:13px}
#yl-asc .ecran em{font-style:normal;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:#E8E1D2;opacity:.8}
#yl-asc .puits{position:absolute;inset:0;overflow:hidden;opacity:0;transition:opacity .35s ease}
#yl-asc.roule .puits{opacity:1}
#yl-asc .puits i{position:absolute;left:0;right:0;top:0;height:300vh;display:block;
  background:repeating-linear-gradient(180deg,#1B1B1B 0 62vh,#302E2B 62vh 72vh,#F3D9A4 72vh calc(72vh + 3px),#3A3733 calc(72vh + 3px) 82vh,#1B1B1B 82vh 100vh)}
#yl-asc.descend .puits i{animation:ylpuitsd 1.8s cubic-bezier(.45,0,.55,1) both}
#yl-asc.monte .puits i{animation:ylpuitsm 1.8s cubic-bezier(.45,0,.55,1) both}
#yl-asc .porte{background:repeating-linear-gradient(90deg,rgba(185,187,188,.8) 0 1px,rgba(198,200,201,.8) 1px 3px,rgba(176,178,179,.8) 3px 4px)}
#yl-asc .porte::after{content:"";position:absolute;top:20%;bottom:32%;width:14%;background:rgba(24,26,28,.14);box-shadow:inset 0 0 0 1px rgba(0,0,0,.22)}
#yl-asc .porte.g::after{right:12%}
#yl-asc .porte.d::after{left:12%}
#yl-asc .porte{transition-duration:1.5s}
#yl-asc.ouvre .porte{transition-duration:1.6s}
#yl-asc.ferme .ecran{transition-delay:1s}
#yl-asc.descend .puits i,#yl-asc.monte .puits i{animation-duration:3.1s}
/* ===== l'ecran de l'ascenseur : le plan des etages ===== */
#yl-asc .ecran .et{display:flex;gap:7px;margin-left:6px;padding-left:12px;border-left:1px solid rgba(232,225,210,.25);font-size:10px;letter-spacing:.08em;color:#E8E1D2}
#yl-asc .ecran .et i{font-style:normal;opacity:.3;transition:opacity .4s}
#yl-asc .ecran .et i.ici{opacity:1}
/* ===== 26 sept. (h) : le panneau de commande de l'ascenseur, un bouton par etage ===== */
/* ===== 26 sept. (i) : la cabine de l'ascenseur, un cube de verre ; on y choisit son etage ===== */
#yl-asc .front{position:absolute;inset:0}
#yl-asc.cabine .front{inset:11% 16%;overflow:hidden}
#yl-asc.choix .front{cursor:pointer}
#yl-asc.cabine .porte{background:rgba(208,222,227,.2);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-color:#A4A9AC}
#yl-asc .cube,#yl-asc .pan{display:none}
#yl-asc.cabine .cube{display:block;position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
#yl-asc .cube .v{fill:rgba(206,222,228,.13);stroke:#A4A9AC;stroke-width:2;vector-effect:non-scaling-stroke}
#yl-asc .cube .l{fill:none;stroke:#A4A9AC;stroke-width:1.5;vector-effect:non-scaling-stroke}
#yl-asc.choix .ecran{opacity:1}
#yl-asc .ecran em.rouge{color:#FF4A5C;opacity:1}
#yl-asc.cabine .pan{display:block;position:absolute}
#yl-asc:not(.choix) .pan{pointer-events:none}
#yl-asc .pan .vis{position:absolute;left:50%;margin-left:-3px;width:6px;height:6px;border-radius:50%;background:#9FA2A4;box-shadow:inset 0 0 0 1px rgba(0,0,0,.25)}
#yl-asc .pan .v1{top:6px}
#yl-asc .pan .v2{bottom:6px}
#yl-asc .pan ul{list-style:none;margin:0;display:flex}
#yl-asc .pan .bt{display:block;border-radius:50%;border:0;padding:0;cursor:pointer;font-family:inherit;transition:box-shadow .2s,color .2s,transform .1s}
#yl-asc .pan .bt:active{transform:scale(.94)}
#yl-asc.cabine .pan{right:auto;left:50%;top:50%;padding:0;background:none;box-shadow:none;border-radius:0;transform-origin:50% 50%}
#yl-asc .pan .vis{display:none}
#yl-asc .pan li{display:flex;align-items:center;
  opacity:0;transition:opacity .45s ease,transform .6s cubic-bezier(.2,.7,.2,1);transition-delay:0s}
#yl-asc.choix.ferme .pan li{opacity:1;transform:none}
#yl-asc .pan .bt{width:46px;height:46px;font-size:15px;color:#F3F1EC;
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.55),0 6px 18px rgba(0,0,0,.18)}
#yl-asc .pan .bt:hover{box-shadow:inset 0 0 0 1px rgba(255,255,255,.9),0 6px 18px rgba(0,0,0,.22)}
#yl-asc .pan .bt.ici,#yl-asc .pan .bt.on{color:var(--rouge,#E5142C);box-shadow:none}
#yl-asc .pan .bt[data-ok="0"]{color:rgba(243,241,236,.55)}
#yl-asc .pan .bt[data-ok="0"].on{color:#FF6B7A;box-shadow:inset 0 0 0 1.5px #E0192F,0 0 0 4px rgba(224,25,47,.18),0 6px 18px rgba(0,0,0,.2)}
#yl-asc .pan li span{font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:#F3F1EC;white-space:nowrap;text-shadow:0 1px 3px rgba(0,0,0,.45)}
@media (max-width:560px){
#yl-asc .pan .bt{width:40px;height:40px}
#yl-asc .pan li span{font-size:8px;letter-spacing:.12em}}
#yl-asc.cabine .porte::after{display:none}
#yl-asc .pan ul{background:rgba(18,19,21,.58);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.14),0 18px 40px rgba(0,0,0,.22);
  opacity:0;transform:scale(.96);transition:opacity .5s ease,transform .7s cubic-bezier(.2,.7,.2,1)}
#yl-asc.choix.ferme .pan ul{opacity:1;transform:none}
#yl-asc .pan .bt{background:rgba(255,255,255,.06)}
#yl-asc .pan .bt:hover{background:rgba(255,255,255,.14)}
#yl-asc .pan ul{flex-direction:column;gap:10px;align-items:stretch;border-radius:30px}
#yl-asc .pan li{flex-direction:row;width:auto;gap:16px;transform:translateY(-8px)}
#yl-asc .pan li span{text-align:left}
@media (max-width:560px){
#yl-asc .pan ul{gap:8px;padding:16px 18px 16px 14px}
#yl-asc .pan li{width:auto}}
#yl-asc .pan li.et0{flex-wrap:wrap}
#yl-asc .pan .mw{border:0;border-radius:12px;cursor:pointer;font-family:inherit;text-transform:uppercase;color:#F3F1EC;background:rgba(255,255,255,.08);box-shadow:inset 0 0 0 1px rgba(255,255,255,.35);transition:background .2s,box-shadow .2s}
#yl-asc .pan .mw:hover{background:rgba(255,255,255,.18);box-shadow:inset 0 0 0 1px rgba(255,255,255,.8)}
@media (max-width:560px){
#yl-asc .pan .murs{margin-left:0;justify-content:center}}
/* ===== 26 sept. (r) : le panneau de la cabine garde une largeur fixe, les pastilles des salles passent dessous ===== */
#yl-asc .pan .murs{flex-wrap:wrap;gap:6px;width:100%;margin:2px 0 4px 0;justify-content:flex-start}
#yl-asc .pan .mw{font-size:9px;padding:4px 8px 5px;letter-spacing:.14em}
#yl-asc .pan li span{min-width:0}
/* ===== 26 sept. (t) : cabine centree ; etage +3 Art, le plateau d'artiste ===== */
#yl-asc .pan ul{max-width:88vw;box-sizing:border-box;width:auto;min-width:0;padding:22px 30px 22px 22px}
#yl-asc .pan li{justify-content:flex-start}
#yl-asc .pan .murs{display:none}
#yl-asc .pan li.so{margin-top:6px;padding-top:10px;border-top:1px solid rgba(255,255,255,.14)}
#yl-asc .pan .bt.sortie-m{color:#F3F1EC;display:flex;align-items:center;justify-content:center;padding:0}
#yl-asc .pan .bt.sortie-m svg{width:20px;height:20px}
#yl-asc .pan .bt.sortie-m:hover{background:#C8102E;border-color:#C8102E}
#yl-asc .puits{background:#0E0E10}
#yl-asc .puits .gaine{position:absolute;left:0;right:0;top:0;will-change:transform}
#yl-asc .puits .niv{position:relative;height:100vh;overflow:hidden}
#yl-asc .puits .niv::before{content:"";position:absolute;left:0;right:0;top:8vh;bottom:8vh}
#yl-asc .puits .niv .dalle{position:absolute;left:0;right:0;top:0;height:8vh}
#yl-asc .puits .niv b{position:absolute;left:50%;font-weight:300}
#yl-asc .puits .niv span{position:absolute;left:50%;bottom:16vh;transform:translateX(-50%);white-space:nowrap;font-size:5vh;letter-spacing:.3em;text-transform:uppercase}
#yl-asc.roule.cabine .porte{background:rgba(208,222,227,.07)}
@media (prefers-reduced-motion:reduce){
#yl-asc .puits .gaine{transition:none!important}}
#yl-asc .puits .niv i{animation:none}
#yl-asc .puits .niv .piece{position:absolute;left:calc(18% + 7vw);right:calc(18% + 7vw);top:8vh;bottom:8vh;overflow:hidden}
#yl-asc .puits .niv .piece .halo{position:absolute;left:50%;top:0;width:110%;height:100%;transform:translateX(-50%);background:radial-gradient(ellipse at 50% 0,rgba(255,240,196,.5),rgba(255,240,196,.12) 45%,transparent 72%)}
#yl-asc .puits .niv .piece .s{position:absolute;top:auto;right:auto;height:auto;background-image:none;display:block;opacity:.92;border-radius:.4vh;box-shadow:inset 0 .5vh 0 rgba(255,255,255,.22),0 1vh 2vh rgba(0,0,0,.5)}
#yl-asc .puits .niv .piece .s.ray{background-image:repeating-linear-gradient(0deg,transparent 0 14%,rgba(0,0,0,.4) 14% 17%)}
#yl-asc .puits .niv b{z-index:2}
#yl-asc .puits .niv span{z-index:2;text-shadow:0 0 2vh rgba(0,0,0,.7);color:rgba(255,255,255,.55)}
#yl-asc .puits .niv.clair b,#yl-asc .puits .niv.clair span{color:rgba(0,0,0,.42);text-shadow:none}
#yl-asc .cube .r{fill:none;stroke:rgba(255,255,255,.4);stroke-width:1;vector-effect:non-scaling-stroke;display:none}
#yl-asc .cube .v.solc{fill:#34363A;stroke:#5A5D61}
#yl-asc .cube .v.plafc{fill:#26282B;stroke:#3A3C3F}
#yl-asc .cube .lum{fill:#F3EFE1;opacity:.85}
#yl-asc .cube .seuil{fill:#A4A9AC;stroke:none}
#yl-asc .cube .l{display:none}
#yl-asc.cabine .cube{z-index:1}
#yl-asc .puits .niv .dalle{background:linear-gradient(100deg,rgba(255,255,255,.07),transparent 45%),linear-gradient(180deg,#3A3D42,#2B2E32 60%,#26292D);background-blend-mode:normal}
#yl-asc.cabine .pan ul{border-radius:34px}
#yl-asc.cabine .pan li{flex-direction:row;position:relative;gap:0;transform:none;width:auto}
#yl-asc.cabine .pan .bt{position:relative}
#yl-asc.cabine .pan .bt:hover,#yl-asc.cabine .pan .bt.ici,#yl-asc.cabine .pan .bt.on{opacity:1}
#yl-asc.cabine .pan .bt.ici::before,#yl-asc.cabine .pan .bt.on::before{content:"";position:absolute;left:50%;top:50%;width:34px;height:34px;margin:-17px 0 0 -17px;border-radius:50%;border:1.3px solid var(--rouge,#E5142C);box-sizing:border-box}
#yl-asc.cabine .pan .bt[data-ok="0"].on::before{border-color:#E0192F}
#yl-asc.cabine .pan .bt.sortie-m{opacity:.7}
#yl-asc.cabine .pan li span{position:absolute;top:50%;transform:translateY(-50%);min-width:0;opacity:0;transition:opacity .25s;pointer-events:none;text-align:left}
#yl-asc.cabine .pan li:hover span{opacity:.85}
#yl-asc.cabine .pan li.et0{flex-wrap:nowrap}
#yl-asc.cabine .pan .murs{position:absolute;top:50%;transform:translateY(-50%);margin:0 0 0 14px;width:auto;flex-wrap:nowrap}
@media (max-width:560px){
#yl-asc.cabine .pan .bt.ici::before,#yl-asc.cabine .pan .bt.on::before{width:30px;height:30px;margin:-15px 0 0 -15px}}
#yl-asc.cabine .pan .bt.ici::before,#yl-asc.cabine .pan .bt.on::before{display:none}
#yl-asc.cabine .pan li .disque{position:absolute;right:100%;top:50%;width:32px;height:32px;margin:-16px 14px 0 0;border-radius:50%;background:var(--rouge,#C8102E);color:#fff;box-shadow:0 2px 6px rgba(0,0,0,.35)}
#yl-asc.cabine .pan li .disque svg{position:absolute;left:50%;top:50%;width:18px;height:18px;margin:-9px 0 0 -9px}
#yl-asc.cabine .pan li.ici .disque{display:block}
#yl-asc.cabine .pan li.et0 span{display:none}
#yl-asc.cabine .pan .bt:hover,#yl-asc.cabine .pan .bt:active,#yl-asc.cabine .pan .bt:focus{background:none!important;box-shadow:none!important;transform:none}
#yl-asc.cabine .pan ul{background:none;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;padding:0}
#yl-asc.cabine .pan li:hover .disque{display:block}
#yl-asc.cabine .pan ul:hover li.ici:not(:hover) .disque{display:none}
#yl-asc.cabine .pan li.so .bt{text-shadow:none}
#yl-asc.cabine .pan li,#yl-asc.cabine .pan li.ici,#yl-asc.cabine .pan{background:none!important;box-shadow:none!important;border:0}
#yl-asc.cabine .pan .bt i{position:absolute;left:50%;top:50%;width:.8em;height:.8em;margin:-.4em 0 0 -.4em;opacity:0;pointer-events:none}
#yl-asc.cabine .pan .bt i svg{display:block;width:100%;height:100%}
#yl-asc.cabine .pan .bt.flip{animation:ylbasc 2.4s cubic-bezier(.4,0,.2,1) both}
#yl-asc.cabine .pan .bt.flip b{animation:ylbascN 2.4s both}
#yl-asc.cabine .pan .bt.flip i{animation:ylbascI 2.4s both}
#yl-asc.cabine .pan li .disque{display:none!important}
#yl-asc.cabine .pan .bt b{display:block;font-weight:inherit}
#yl-asc.cabine .pan .bt[data-ok="0"].on{color:#FF6B7A}
#yl-asc.cabine .pan .bt.chaud{color:var(--rouge,#E5142C);opacity:1}
#yl-asc .puits .niv b{line-height:1;font-variant-numeric:lining-nums;font-feature-settings:"lnum" 1;letter-spacing:-.02em}
#yl-asc .puits .niv span{display:none}
#yl-asc.cabine .pan .bt i{display:none}
#yl-asc.cabine .pan .bt{transform-style:preserve-3d;transform-origin:50% 50%;transition:transform .12s linear,color .25s,opacity .25s,font-size .35s;will-change:transform;outline:0;color:#F3F1EC;-webkit-backdrop-filter:none;backdrop-filter:none}
#yl-asc.cabine .pan .bt b{line-height:inherit}
#yl-asc.cabine .pan .bt.ici,#yl-asc.cabine .pan .bt.on{color:var(--rouge,#E5142C);box-shadow:none!important}
#yl-asc.cabine .pan .bt.ici:hover,#yl-asc.cabine .pan .bt.ici.chaud{box-shadow:inset 0 0 0 1.5px var(--rouge,#E5142C)!important}
#yl-asc.cabine .pan .bt:hover{color:var(--rouge,#E5142C);transform:none}
#yl-asc.cabine .pan li span{left:auto;right:100%;margin:0 30px 0 0;display:none}
@media (max-width:560px){
#yl-asc.cabine .pan ul{gap:0}
#yl-asc.cabine .pan .bt{width:44px}}
#yl-asc.cabine .pan li.so{margin-top:2px}
#yl-asc.cabine .pan li{justify-content:flex-end}
#yl-asc.cabine .pan .bt{width:auto;min-width:0;height:44px;line-height:44px;padding:0 10px 0 14px;border-radius:0;font-size:34px;background:none!important;box-shadow:none!important}
#yl-asc.cabine .pan .bt:hover,#yl-asc.cabine .pan .bt.chaud{opacity:1;color:var(--rouge,#E5142C);box-shadow:none!important;background:none!important}
#yl-asc.cabine .pan .bt.ici,#yl-asc.cabine .pan .bt.on{font-size:50px;opacity:1}
#yl-asc.cabine .pan .bt::after{content:attr(data-t);position:absolute;left:100%;top:50%;transform:translateY(-50%);margin-left:20px;font-size:inherit;letter-spacing:.04em;line-height:1;white-space:nowrap;color:inherit;pointer-events:none;text-shadow:inherit}
#yl-asc.cabine .pan .bt.sortie-m::after{content:none}
#yl-asc.cabine .pan li.so .bt{font-size:18px;height:44px;line-height:44px}
#yl-asc.cabine .pan li.so .bt svg{width:22px;height:22px;vertical-align:middle}
#yl-asc.cabine .pan .murs{left:100%;margin-left:20px}
@media (max-width:560px){
#yl-asc.cabine .pan .bt{height:36px;line-height:36px;font-size:28px}
#yl-asc.cabine .pan .bt.ici,#yl-asc.cabine .pan .bt.on{font-size:40px}}
#yl-asc.cabine .pan .bt::after{pointer-events:auto;cursor:pointer}
#yl-asc.cabine .front::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:2}
#yl-asc.cabine .cube .v:not(.solc):not(.plafc){fill:rgba(10,10,12,.8);stroke:#3A3C3F}
#yl-asc.cabine .pan .bt{opacity:.7;text-shadow:none}
#yl-asc.cabine .pan .bt.ici,#yl-asc.cabine .pan .bt.on,#yl-asc.cabine .pan .bt:hover{opacity:1}
body:has(#yl-asc.on) #nuit,body:has(#yl-asc.on) #cadre,body:has(#yl-asc.on) #quoi,body:has(#yl-asc.on) #yl-son,body:has(#yl-asc.on) #env,body:has(#yl-asc.on) #arch,body:has(#yl-asc.on) #yl-mini,body:has(#yl-asc.on) #yl-mob-b,body:has(#yl-asc.on) #yl-ascb,body:has(#yl-asc.on) #langs,body:has(#yl-asc.on) #yl-rose{opacity:0!important;pointer-events:none!important;transition:opacity .4s}
body:has(#yl-asc.on) #yl-etage{opacity:0}
body:has(#yl-asc.on) .fil-b{opacity:0}
#yl-asc.cabine .pan{z-index:4;transform:translate(-50%,-50%)}
#yl-asc.cabine .pan ul{gap:0;align-items:center}
#yl-asc .puits .niv .piece{display:none}
#yl-asc .puits .niv::before{background:none}
#yl-asc .puits .niv .dalle::after{content:"";position:absolute;left:0;right:0;top:100%;height:9vh;background:linear-gradient(180deg,rgba(255,240,205,.22),rgba(255,240,205,0))}
#yl-asc .puits .niv b{top:auto;bottom:12vh;font-size:66vh}
:is(#yl-entree,#yl-asc .puits,#yl-sortie .vue-s) .saison{position:absolute;inset:0;overflow:hidden;z-index:0;background:color-mix(in srgb,var(--fond) 92%,#000);pointer-events:none}
:is(#yl-entree,#yl-asc .puits,#yl-sortie .vue-s) .saison i{position:absolute;left:-8%;width:116%;transform:rotate(5deg);background-repeat:repeat}
:is(#yl-entree,#yl-asc .puits,#yl-sortie .vue-s) .saison.automne .c1{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='300'><path d='M40 30c16 8 30 30 24 56-10-6-28-18-30-44z' fill='%23B8632B' opacity='.9'/><path d='M150 110c-14-12-12-38 6-50 6 14 8 32-6 50z' fill='%23C98A2E' opacity='.9'/><path d='M90 220c6-18 24-24 40-16-6 12-22 22-40 16z' fill='%23A83A2A' opacity='.85'/><path d='M190 250c-16-4-24-22-16-38 10 6 20 20 16 38z' fill='%23D9A441' opacity='.85'/></svg>");animation:ylneigeA 16s linear infinite;filter:blur(1px)}
:is(#yl-entree,#yl-asc .puits,#yl-sortie .vue-s) .saison.automne .c2{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='300'><path d='M40 30c16 8 30 30 24 56-10-6-28-18-30-44z' fill='%23B8632B' opacity='.9'/><path d='M150 110c-14-12-12-38 6-50 6 14 8 32-6 50z' fill='%23C98A2E' opacity='.9'/><path d='M90 220c6-18 24-24 40-16-6 12-22 22-40 16z' fill='%23A83A2A' opacity='.85'/><path d='M190 250c-16-4-24-22-16-38 10 6 20 20 16 38z' fill='%23D9A441' opacity='.85'/></svg>");background-position:60px 90px;animation:ylneigeB 24s linear infinite;filter:blur(1.6px)}
:is(#yl-entree,#yl-asc .puits,#yl-sortie .vue-s) .saison.automne .c3{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='300'><path d='M40 30c16 8 30 30 24 56-10-6-28-18-30-44z' fill='%23B8632B' opacity='.9'/><path d='M150 110c-14-12-12-38 6-50 6 14 8 32-6 50z' fill='%23C98A2E' opacity='.9'/><path d='M90 220c6-18 24-24 40-16-6 12-22 22-40 16z' fill='%23A83A2A' opacity='.85'/><path d='M190 250c-16-4-24-22-16-38 10 6 20 20 16 38z' fill='%23D9A441' opacity='.85'/></svg>");background-position:120px 40px;animation:ylneigeC 11s linear infinite;filter:blur(.6px)}
:is(#yl-entree,#yl-asc .puits,#yl-sortie .vue-s) .saison.hiver .c1{background:radial-gradient(circle,#FFF 0 .45vh,transparent .7vh) 0 0/5vw 8vh;animation:ylneigeA 7s linear infinite;filter:blur(1.2px)}
:is(#yl-entree,#yl-asc .puits,#yl-sortie .vue-s) .saison.hiver .c2{background:radial-gradient(circle,rgba(255,255,255,.9) 0 .25vh,transparent .45vh) 3vw 4vh/7vw 11vh;animation:ylneigeB 11s linear infinite;filter:blur(1.6px)}
:is(#yl-entree,#yl-asc .puits,#yl-sortie .vue-s) .saison.hiver .c3{background:radial-gradient(circle,#FFF 0 .9vh,transparent 1.3vh) 1vw 2vh/11vw 16vh;animation:ylneigeC 5s linear infinite;filter:blur(2.4px)}
:is(#yl-entree,#yl-asc .puits,#yl-sortie .vue-s) .saison.hiver{background:color-mix(in srgb,var(--fond) 80%,#8A97A6)}
:is(#yl-entree,#yl-asc .puits,#yl-sortie .vue-s) .saison.printemps .c1{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='260'><ellipse cx='40' cy='40' rx='9' ry='14' transform='rotate(25 40 40)' fill='%23F2B8C6' opacity='.9'/><ellipse cx='130' cy='110' rx='8' ry='13' transform='rotate(-30 130 110)' fill='%23FADDE4' opacity='.9'/><ellipse cx='80' cy='200' rx='9' ry='14' transform='rotate(60 80 200)' fill='%23EFA6B7' opacity='.85'/><ellipse cx='170' cy='230' rx='7' ry='12' transform='rotate(-10 170 230)' fill='%23F7CBD5' opacity='.85'/></svg>");animation:ylneigeA 18s linear infinite;filter:blur(.8px)}
:is(#yl-entree,#yl-asc .puits,#yl-sortie .vue-s) .saison.printemps .c2{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='260'><ellipse cx='40' cy='40' rx='9' ry='14' transform='rotate(25 40 40)' fill='%23F2B8C6' opacity='.9'/><ellipse cx='130' cy='110' rx='8' ry='13' transform='rotate(-30 130 110)' fill='%23FADDE4' opacity='.9'/><ellipse cx='80' cy='200' rx='9' ry='14' transform='rotate(60 80 200)' fill='%23EFA6B7' opacity='.85'/><ellipse cx='170' cy='230' rx='7' ry='12' transform='rotate(-10 170 230)' fill='%23F7CBD5' opacity='.85'/></svg>");background-size:140px 182px;background-position:70px 50px;animation:ylneigeB 27s linear infinite;filter:blur(1.4px)}
:is(#yl-entree,#yl-asc .puits,#yl-sortie .vue-s) .saison.printemps .c3{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='260'><ellipse cx='40' cy='40' rx='9' ry='14' transform='rotate(25 40 40)' fill='%23F2B8C6' opacity='.9'/><ellipse cx='130' cy='110' rx='8' ry='13' transform='rotate(-30 130 110)' fill='%23FADDE4' opacity='.9'/><ellipse cx='80' cy='200' rx='9' ry='14' transform='rotate(60 80 200)' fill='%23EFA6B7' opacity='.85'/><ellipse cx='170' cy='230' rx='7' ry='12' transform='rotate(-10 170 230)' fill='%23F7CBD5' opacity='.85'/></svg>");background-size:280px 364px;background-position:30px 120px;animation:ylneigeC 13s linear infinite;filter:blur(.5px)}
:is(#yl-entree,#yl-asc .puits,#yl-sortie .vue-s) .saison.ete .c1{background:radial-gradient(circle,rgba(232,196,90,.9) 0 .35vh,transparent .6vh) 0 0/6vw 9vh;animation:ylpollenA 26s linear infinite;filter:blur(1.2px)}
:is(#yl-entree,#yl-asc .puits,#yl-sortie .vue-s) .saison.ete .c2{background:radial-gradient(circle,rgba(240,214,140,.8) 0 .25vh,transparent .45vh) 3vw 5vh/9vw 13vh;animation:ylpollenB 38s linear infinite;filter:blur(1.8px)}
:is(#yl-entree,#yl-asc .puits,#yl-sortie .vue-s) .saison.ete .c3{background:radial-gradient(circle,rgba(255,236,170,.9) 0 .5vh,transparent .8vh) 2vw 2vh/14vw 19vh;animation:ylpollenA 19s linear infinite;filter:blur(2.2px);opacity:.7}
:is(#yl-entree,#yl-asc .puits,#yl-sortie .vue-s) .saison.ete{background:color-mix(in srgb,var(--fond) 90%,#E8C45A)}
@media (prefers-reduced-motion:reduce){
:is(#yl-entree,#yl-asc .puits,#yl-sortie .vue-s) .saison i{animation:none!important}}
@media (max-width:760px){
:is(#yl-entree,#yl-asc .puits,#yl-sortie .vue-s) .saison i{filter:none!important}}
:is(#yl-entree,#yl-asc .puits,#yl-sortie .vue-s) .saison.automne .c1{background-size:320px 436px;opacity:.7}
:is(#yl-entree,#yl-asc .puits,#yl-sortie .vue-s) .saison.automne .c2{background-size:220px 300px;opacity:.45}
:is(#yl-entree,#yl-asc .puits,#yl-sortie .vue-s) .saison.automne .c3{background-size:460px 627px;opacity:.55}
:is(#yl-entree,#yl-asc .puits,#yl-sortie .vue-s) .saison.printemps .c1{background-size:300px 390px;opacity:.7}
:is(#yl-entree,#yl-asc .puits,#yl-sortie .vue-s) .saison.printemps .c2{opacity:.45}
:is(#yl-entree,#yl-asc .puits,#yl-sortie .vue-s) .saison.printemps .c3{opacity:.55}
/* (be) p67 : gaine — la saison dehors, seule la dalle separe les etages, plus de piliers ; sept etages (Spectacle, Sciences, Archives retires) */
#yl-asc .puits .saison{z-index:0}
#yl-asc .puits .gaine{z-index:1;opacity:1}
#yl-asc .puits .niv{background:linear-gradient(180deg,transparent 0 8vh,color-mix(in srgb,var(--c) 22%,transparent) 8vh 92vh,transparent 92vh)}
#yl-asc .puits .niv .dalle{box-shadow:inset 0 -1.3vh 0 #6B4A2B,inset 0 -1.7vh 0 #3A2A1C,0 1.4vh 4vh rgba(0,0,0,.55)}
#yl-asc .puits .niv.clair b{color:rgba(255,255,255,.5);text-shadow:0 .6vh 2vh rgba(0,0,0,.55)}
#yl-asc.cabine .pan .bt b{font-variant-numeric:lining-nums;font-feature-settings:"lnum" 1}
#yl-asc.cabine .pan .bt,#yl-asc.cabine .pan .bt.ici,#yl-asc.cabine .pan .bt.on,#yl-asc.cabine .pan .bt:hover{font-size:34px}
@media (max-width:560px){
#yl-asc.cabine .pan .bt,#yl-asc.cabine .pan .bt.ici,#yl-asc.cabine .pan .bt.on,#yl-asc.cabine .pan .bt:hover{font-size:28px}}
#yl-asc.cabine .pan .bt,#yl-asc.cabine .pan .bt:hover,#yl-asc.cabine .pan .bt:focus,#yl-asc.cabine .pan .bt:focus-visible,#yl-asc.cabine .pan .bt:active,#yl-asc.cabine .pan .bt.ici,#yl-asc.cabine .pan .bt.on,#yl-asc.cabine .pan .bt.ici:hover,#yl-asc.cabine .pan .bt.on:hover,#yl-asc.cabine .pan .bt.chaud,#yl-asc.cabine .pan .bt.ici.chaud,#yl-asc.cabine .pan .bt[data-ok="0"].on{outline:0!important;outline-offset:0!important;box-shadow:none!important;background:none!important;border:0!important;-webkit-tap-highlight-color:transparent!important;-webkit-appearance:none!important;appearance:none!important;text-decoration:none!important}
#yl-asc.cabine .pan .bt::before{content:none!important}
#yl-asc .ecran .et i.ici{color:var(--rouge,#E5142C)}
#yl-asc .pan .mw.ici{color:var(--rouge,#E5142C);box-shadow:inset 0 0 0 1px var(--rouge,#E5142C)}
#yl-asc .ecran .et i.ici,#yl-asc .ecran b{color:var(--rouge,#E5142C)}
#yl-asc .puits .niv b{text-shadow:none;-webkit-font-smoothing:antialiased;will-change:auto;transform:translateX(-50%)}
#yl-asc .puits .saison i{animation-duration:inherit;filter:none!important}
:is(#yl-entree,#yl-asc .puits,#yl-sortie .vue-s) .saison i{filter:none!important;will-change:auto;height:140vh;top:-6vh}
#yl-asc.cabine .front::after{-webkit-backdrop-filter:none;backdrop-filter:none;background:rgba(8,8,10,.74)}
html.leger #yl-asc *{filter:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;box-shadow:none!important;text-shadow:none!important;will-change:auto!important}
html.leger :is(#yl-entree,#yl-asc .puits,#yl-sortie .vue-s) .saison i{animation:none!important}
#yl-asc .ecran b,#yl-asc .ecran .fl,#yl-asc .ecran em,#yl-asc .ecran .et,#yl-asc .ecran .et i{line-height:1}
#yl-asc .ecran .fl{color:#F3F1EC!important}
html.leger #yl-asc.cabine .porte{background:rgba(208,222,227,.06)}
#yl-asc .ecran{align-items:baseline!important}
#yl-asc .ecran .et{align-items:baseline!important}
#yl-asc .ecran em{white-space:nowrap}
#yl-asc .puits>i{display:none!important}
#yl-asc.cabine .ecran{top:4.2%}
#yl-asc svg.cube .lum{display:none!important}
body:has(#yl-asc.on) #yl-nav4{opacity:0;pointer-events:none}
body:has(#yl-asc.on) #yl-debut{opacity:0;pointer-events:none}
body:has(#yl-asc.on) #yl-son{opacity:0!important;pointer-events:none!important}
body:has(#yl-asc.on) #yl-note{opacity:0;pointer-events:none}
#yl-asc .pan li.so em{font-style:normal;font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:#F3F1EC;opacity:.7;white-space:nowrap}
#yl-asc .pan .bt.entree-m{color:#F3F1EC;display:flex;align-items:center;justify-content:center;padding:0}
#yl-asc .pan .bt.entree-m svg{width:20px;height:20px}
#yl-asc .pan .bt.entree-m:hover{background:#C8102E;border-color:#C8102E}
#yl-asc.cabine .pan .bt.entree-m{opacity:.7}
#yl-asc.cabine .pan .bt.entree-m::after{content:none}
#yl-asc.cabine .pan li.so .bt.entree-m svg{width:22px;height:22px}
#yl-asc .pan li.so.en{margin-top:0;padding-top:0;border-top:0;margin-bottom:6px;padding-bottom:10px;border-bottom:1px solid rgba(255,255,255,.14)}
#yl-asc.cabine .pan li.so.en{margin-top:0;margin-bottom:8px}
#yl-asc .pan li.so.en,#yl-asc.cabine .pan li.so.en{border-bottom:0!important;border-top:0!important;padding-bottom:4px}
/* ===== (cy) p118 : l'accueil au rez-de-chaussee ; la cabine attend deja fermee, derriere la porte ; on monte ===== */
#yl-asc.sans,#yl-asc.sans *{transition:none!important;animation:none!important}
#yl-asc.bas{z-index:19}
#yl-asc.rez .puits{opacity:1}
#yl-asc.rez .pan .bt[data-e]:not([data-e="0"]){opacity:.55;transition:opacity .3s}
#yl-asc.rez .pan .bt[data-e]:hover{opacity:1}
#yl-asc.rez .pan .bt[data-e="0"]{opacity:1}
#yl-asc .pan li.so.rdc{display:flex!important;flex-direction:row;align-items:center;justify-content:center;gap:10px;margin:6px 0 0!important;padding:0!important;border:0!important}
#yl-asc .pan li.so.rdc .zero{font-size:34px;line-height:44px;height:44px;padding:0 4px;color:#F3F1EC;opacity:.7;font-variant-numeric:lining-nums;pointer-events:none}
#yl-asc .pan li.so.rdc.ici .zero{opacity:1}
#yl-asc .pan li.so.rdc .zero b{font-weight:inherit}
@media (max-width:560px){
#yl-asc .pan li.so.rdc .zero{font-size:28px;line-height:36px;height:36px}}
#yl-asc .pan li.so.rdc{padding-left:29px!important}
#yl-asc.devoile .puits{background:transparent!important;transition:none!important}
#yl-asc.devoile .puits .saison,#yl-asc.devoile .puits .gaine{opacity:0!important;transition:none!important}
#yl-asc.devoile .front::after,#yl-asc.cabine.devoile .front::after{opacity:0!important;transition:opacity .6s ease}
#yl-asc .puits.monte0{background:transparent}
#yl-asc .puits.monte0 .niv.cible{background:transparent;filter:none}
#yl-asc .puits.monte0 .niv.cible::before,#yl-asc .puits.monte0 .niv.cible b,#yl-asc .puits.monte0 .niv.cible span{display:none}
#yl-asc .puits.monte0 .niv.rez0 .saison{position:absolute;left:0;right:0;top:0;bottom:0;z-index:0}
#yl-asc .puits.monte0 .niv.rez0 .dalle{z-index:2;height:18vh;box-shadow:inset 0 -1.6vh 0 #3E3F42,inset 0 1.2vh 0 rgba(255,255,255,.08),0 2vh 4vh rgba(0,0,0,.6)}
#yl-asc .puits.monte0 .niv.rez0 b{z-index:2}
/* p156 : pendant cette montee, la salle reste affichee derriere l'etage Photo (elle est masquee pendant les autres trajets) ; vitre un peu moins sombre */
body:has(#yl-asc.roule .puits.monte0) #scene{visibility:visible}
/* ===== 30 sept. p162 : ascenseur sans 3D : une porte a deux battants sur toute la largeur de l'ecran ===== */
#yl-asc svg.cube{display:none!important}
#yl-asc .puits{display:none!important}
#yl-asc .front,#yl-asc.cabine .front{inset:0!important;overflow:hidden}
#yl-asc .front::after,#yl-asc.cabine .front::after{display:none!important}
#yl-asc .porte,#yl-asc.cabine .porte,#yl-asc.roule.cabine .porte,html.leger #yl-asc.cabine .porte{width:50%;background:#120806!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;border-color:rgba(255,255,255,.07)!important;transition-timing-function:cubic-bezier(.6,0,.3,1)}
#yl-asc .porte::after,#yl-asc.cabine .porte::after{display:none!important}
#yl-asc .porte.g{box-shadow:inset -18px 0 30px -20px rgba(0,0,0,.8)}
#yl-asc .porte.d{box-shadow:inset 18px 0 30px -20px rgba(0,0,0,.8)}
#yl-asc .porte,#yl-asc.ouvre .porte,#yl-asc.cabine .porte,#yl-asc.cabine.ouvre .porte{transition:transform .55s cubic-bezier(.6,0,.3,1)!important}
body:has(#yl-asc.roule) #scene{visibility:visible}
#yl-asc .front .gaine0{position:absolute;left:0;right:0;top:0;height:216vh;z-index:0;pointer-events:none;transform:translateY(-116vh);transition-property:transform;transition-timing-function:cubic-bezier(.45,0,.35,1);will-change:transform}
#yl-asc .front .gaine0.va{transform:translateY(0)}
#yl-asc .gaine0 i{position:absolute;left:0;right:0;display:block}
#yl-asc .gaine0 .ciel{top:0;height:100vh}
#yl-asc .gaine0 .dalle0{top:100vh;height:16vh;background:#1A1210;box-shadow:inset 0 1px 0 rgba(237,232,224,.22),inset 0 -1px 0 rgba(237,232,224,.10),inset 0 -2.2vh 0 #0F0A08}
#yl-asc .gaine0 .trou{top:116vh;height:100vh}
html body #yl-asc.m0.cabine .porte{transition:transform 1.05s cubic-bezier(.6,0,.3,1),opacity .45s ease!important}
html body #yl-asc.m0.cabine.roule .porte,html body #yl-asc.m0.cabine.ouvre .porte{opacity:0}
@media (prefers-reduced-motion:reduce){
#yl-asc .front .gaine0{transition:none}}
#yl-asc .pan .bt.appel{box-shadow:0 0 0 1px rgba(200,16,46,.9),0 0 14px rgba(200,16,46,.45)!important;transition:box-shadow .6s ease}
/* ===== 30 sept. p178 : le o du logo se pose sur le 0 de l'entree, qui reste allume en rouge tant que la cabine y est ===== */
#yl-asc.rez .pan li.so.rdc .zero{color:#C8102E!important;opacity:1!important;transition:color .5s ease 1.1s}
/* ===== 30 sept. p182 : montee vers l'etage 1 — les battants restent la et deviennent une vitre fumee ; on voit la dalle puis l'etage a travers, et l'ouverture revele la piece ===== */
html body #yl-asc.m0.cabine .porte,html body #yl-asc.m0.cabine.roule .porte,html body #yl-asc.m0.cabine.ouvre .porte{opacity:1!important;transition:transform .65s cubic-bezier(.6,0,.3,1),background-color .3s ease!important}
@media (hover:none) and (pointer:coarse){
body:has(#yl-asc.cabine.ferme:not(.m0)) #scene,body:has(#yl-asc.cabine.roule:not(.m0)) #scene{visibility:hidden!important}}
/* p255 : la descente vers un etage de la galerie — la dalle passe vers le haut, la salle apparait en dessous (miroir de la montee) */
#yl-asc .front .gaine0.bas{transform:translateY(0)}
#yl-asc .front .gaine0.bas.va{transform:translateY(-116vh)}
#yl-asc .gaine0.bas .trou{top:0;height:100vh}
#yl-asc .gaine0.bas .dalle0{top:100vh}
#yl-asc .gaine0.bas .ciel{top:116vh;height:100vh}
#yl-asc .pan ul,#yl-asc.cabine .pan ul{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background:rgba(18,19,21,.3)}
#yl-asc .puits .niv{filter:none!important}
/* 6 oct. 2026 : 0 · Accueil dans l'ascenseur ; le 0 de la ligne du bas (Sortie) s'efface */
#yl-asc .pan li.so.rdc .zero{visibility:hidden}
/* 7 oct. 2026 : le panneau des etages apparait plus vite dans la cabine (avant : 1,1 s + 1,25 s), et presque tout de suite depuis l'accueil */
#yl-asc.choix.ferme .pan ul{transition-delay:.35s!important}
#yl-asc.choix.ferme .pan li{transition-delay:calc(.4s + var(--i,0) * 45ms)!important}
#yl-asc.rez.choix.ferme .pan ul{transition-delay:.1s!important}
#yl-asc.rez.choix.ferme .pan li{transition-delay:calc(.15s + var(--i,0) * 35ms)!important}
/* ascenseur : chiffres des etages plus lisibles dans la gaine */
#yl-asc .puits .niv b{color:rgba(255,255,255,.66)!important}
/* 8 oct. 2026 (u) : vitres de la cabine un peu plus claires pendant le trajet — l'etage qui passe se voit mieux en transparence */
#yl-asc.cabine:has(.puits.monte0) .front::after{background:rgba(8,8,10,.32)!important}
#yl-asc .gaine0 .trou{background:linear-gradient(to right,#121214,#1C1C1F 50%,#121214)}
#yl-asc .gaine0.bas .trou{background:linear-gradient(to right,#121214,#1C1C1F 50%,#121214)}
#yl-asc .gaine0 .dalle0,#yl-asc .gaine0.bas .dalle0{height:20vh;background:linear-gradient(to bottom,#4C4541,#363230 55%,#26221F);box-shadow:inset 0 2px 0 rgba(237,232,224,.45),inset 0 -2px 0 rgba(0,0,0,.6),0 3vh 5vh rgba(0,0,0,.55),0 -2vh 4vh rgba(0,0,0,.35)}
#yl-asc .gaine0 .ciel{background:linear-gradient(to bottom,transparent 60%,rgba(8,6,5,.35))}
#yl-asc .gaine0.bas .ciel{background:linear-gradient(to top,transparent 60%,rgba(8,6,5,.35))}
#yl-asc.vers0 .puits{opacity:1;background:#0E0E10}
#yl-asc.vers0 .puits .niv{filter:blur(.8px) saturate(.9)}
#yl-asc .front .gaine0.sort{transform:translateY(0)}
#yl-asc .front .gaine0.sort.va{transform:translateY(-116vh)}
/* 8 oct. 2026 (y) : trajet vers l'accueil — dalle epaisse (une hauteur d'ecran) : la salle quittee monte, la dalle remplit la vitre, la page se recharge sans passer par le noir, puis la dalle finit de monter et l'accueil apparait */
#yl-asc .gaine0.epais .dalle0{height:100vh;background:linear-gradient(to bottom,#4C4541,#3A3532 6%,#302C29 94%,#26221F)}
#yl-asc .gaine0.sort.epais .trou{top:200vh}
#yl-asc .gaine0.bas.epais .ciel{top:200vh}
#yl-asc .gaine0.epais .dalle0,#yl-asc .gaine0.sort.epais .trou{background:repeating-linear-gradient(to bottom,transparent 0 24vh,rgba(0,0,0,.28) 24vh calc(24vh + 2px),rgba(255,255,255,.05) calc(24vh + 2px) calc(24vh + 3px),transparent calc(24vh + 3px) 25vh),linear-gradient(to bottom,#3D3733,#332F2C)}
#yl-asc .gaine0.sort.epais .trou{height:200vh}
#yl-asc .gaine0.sort.epais.hall .trou{background:transparent;height:100vh}
/* 8 oct. 2026 (A) : plus de panneau des chiffres dans la cabine — les etages se choisissent dans la mosaique (« Les étages ») ou aux fleches du clavier */
/* 12 oct. 2026 : le panneau des chiffres revient au centre de la porte de l'ascenseur (Fabien) */
/* 8 oct. 2026 (A) : montee depuis le hall — le hall descend derriere la vitre, la dalle epaisse passe, la salle Photo apparait */
#yl-asc .front .gaine0.monte-hall{transform:translateY(-200vh)}
#yl-asc .front .gaine0.monte-hall.va{transform:translateY(0)}
#yl-asc .gaine0.monte-hall .trou{top:0;height:100vh;background:transparent}
#yl-asc .gaine0.monte-hall .dalle0{top:100vh;height:100vh}
#yl-asc .gaine0.monte-hall .ciel{top:200vh;height:100vh;background:transparent}
#yl-asc .front .gaine0.hall2.sort{transform:translateY(0)}
#yl-asc .front .gaine0.hall2.monte{transform:translateY(-130vh)}
#yl-asc .front .gaine0.hall2.monte.va{transform:translateY(0)}
#yl-asc .gaine0.hall2 .ciel{top:0!important;height:100vh!important;background:transparent!important}
#yl-asc .gaine0.hall2 .trou{top:130vh!important;height:100vh!important;background:transparent!important}
#yl-asc .gaine0.hall2 .dalle0{top:100vh!important;height:30vh!important}
#yl-asc .gaine0 .dalle0,#yl-asc .gaine0.bas .dalle0,#yl-asc .gaine0.epais .dalle0,#yl-asc .gaine0.hall2 .dalle0{background:linear-gradient(to bottom,#3A3A3D 0,#2B2B2E 8%,#222224 92%,#161618 100%)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 2vh 4vh rgba(0,0,0,.45),0 -2vh 4vh rgba(0,0,0,.3)!important}
#yl-asc .gaine0.sort.epais .trou{background:#1B1B1D!important}
#yl-asc .gaine0 .trou,#yl-asc .gaine0.bas .trou{background:#161618}
html body #yl-asc.m0.cabine .porte,html body #yl-asc.m0.cabine.roule .porte,html body #yl-asc.m0.cabine.ouvre .porte{background-color:rgba(12,12,14,.10)!important;background-image:linear-gradient(105deg,rgba(255,255,255,.04),rgba(255,255,255,0) 38%)!important}
/* 8 oct. 2026 (q) : la mosaique s'ouvre sans fondu (essais porte puis fondu retires) */
/* 8 oct. 2026 (r) : les etages traverses pendant un long trajet d'ascenseur — dalles intermediaires et etage vu en transparence (sa couleur, son numero, son nom) */
#yl-asc .gaine0 .dalleN{background:linear-gradient(to bottom,#3A3A3D 0,#2B2B2E 8%,#222224 92%,#161618 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 2vh 4vh rgba(0,0,0,.45),0 -2vh 4vh rgba(0,0,0,.3);z-index:1}
/* 8 oct. 2026 (s) : l'etage traverse vu a travers la vitre — la salle, son nom en haut, l'oeuvre au centre, un leger depoli */
#yl-asc .gaine0 .etN{overflow:hidden;background:radial-gradient(ellipse 80% 60% at 50% 55%,color-mix(in srgb,var(--c) 12%,#2A2D32),#1E2024 80%)}
#yl-asc .gaine0 .etN>span{position:absolute;display:block}
#yl-asc .gaine0 .etN .et-t{left:0;right:0;top:9vh;text-align:center;color:#F3F1EC;font-family:'Jost','Futura','Avenir Next',Helvetica,sans-serif;}
#yl-asc .gaine0 .etN .et-t em{display:block;font-style:normal;font-weight:400;font-size:clamp(24px,3vw,42px);letter-spacing:-.015em;line-height:1}
#yl-asc .gaine0 .etN .et-t span{display:block;margin-top:.6em;font-size:clamp(13px,1.2vw,17px);letter-spacing:.04em;color:var(--rouge,#E5142C)}
#yl-asc .gaine0 .etN .et-c{left:50%;top:52%;transform:translate(-50%,-50%);max-width:62vw;height:44vh;aspect-ratio:3/2;box-shadow:0 2.4vh 5vh rgba(0,0,0,.55);background:#141416}
#yl-asc .gaine0 .etN .et-c img{display:block;width:100%;height:100%;object-fit:cover}
#yl-asc .gaine0 .etN .et-c.nuit{background:radial-gradient(1px 1px at 18% 30%,#fff,transparent),radial-gradient(1px 1px at 62% 22%,#fff,transparent),radial-gradient(1.5px 1.5px at 80% 60%,#fff,transparent),radial-gradient(1px 1px at 35% 70%,#fff,transparent),radial-gradient(1px 1px at 50% 45%,#fff,transparent),radial-gradient(ellipse at 50% 120%,#1B2440,#07080C 70%)}
#yl-asc .gaine0 .etN .et-n{right:4vw;bottom:5vh;font:300 9vh/1 'Jost','Futura','Avenir Next',Helvetica,sans-serif;color:#F3F1EC;opacity:.12}
#yl-asc .gaine0 .etN::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(105deg,rgba(255,255,255,.07),rgba(255,255,255,0) 38%),rgba(12,12,14,.12)}
/* 8 oct. 2026 (x) : la vitre de l'ascenseur est un verre depoli leger — on devine l'etage derriere sans le voir net ; il se devoile net a l'ouverture des portes (le flou des etages traverses est porte par la vitre, plus par les etages eux-memes) */
html body #yl-asc.cabine .porte,html body #yl-asc.m0.cabine .porte,html body #yl-asc.m0.cabine.roule .porte,html body #yl-asc.m0.cabine.ouvre .porte{-webkit-backdrop-filter:blur(6px) saturate(.92)!important;backdrop-filter:blur(6px) saturate(.92)!important}
html.leger body #yl-asc.cabine .porte,html.leger body #yl-asc.m0.cabine .porte{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
/* l'ancien panneau de chiffres de la cabine ne s'affiche plus pendant les trajets (il clignotait a la descente) ; il reste seulement pour choisir son etage */
html body #yl-asc .pan{display:none!important}
/* 28 oct. 2026 (v6, Fabien) : pendant la montee, les grands degrades sombres de la gaine faisaient des bandes (« halos de compression ») : un grain tres fin les lisse */
#yl-asc.roule::after{content:"";position:fixed;inset:0;z-index:2147483000;pointer-events:none;opacity:.07;mix-blend-mode:soft-light;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E")}
#yl-asc .gaine0 .trou{background:linear-gradient(to right,#131315,#1A1A1D 50%,#131315)}

/* 1er nov. 2026 (Fabien) : a l'arrivee a un etage, la cle tourne seule sur la jointure des portes (avec le symbole de l'etage), clac, puis les portes s'ouvrent */
#yl-asc .asc-cle{position:absolute;left:50%;top:50%;z-index:2147483000;width:30px;height:30px;margin:-15px 0 0 -15px;border-radius:50%;background:#C8102E;box-shadow:0 0 0 3px rgba(12,10,10,.55),0 0 0 4.5px rgba(243,241,236,.82),0 0 22px rgba(200,16,46,.5);opacity:0;transform:scale(.82);transition:opacity .3s ease,transform .3s ease;pointer-events:none}
#yl-asc .asc-cle.on{opacity:1;transform:scale(1)}
#yl-asc .asc-cle .asc-rot{position:absolute;inset:0;transform:rotate(var(--rot,0deg))}
#yl-asc .asc-cle .fente{position:absolute;left:50%;top:15%;width:2px;height:30%;margin-left:-1px;border-radius:1px;background:rgba(26,3,6,.72);transition:opacity .4s ease}
#yl-asc .asc-cle .yl-sym{position:absolute;inset:0;width:100%;height:100%;overflow:visible;opacity:0;transition:opacity .45s ease}
#yl-asc .asc-cle.sym .yl-sym{opacity:1}
#yl-asc .asc-cle.sym .fente{opacity:0}
@media (prefers-reduced-motion:reduce){#yl-asc .asc-cle{display:none}}
