/* =====================================================================
   DECOR DES SALLES DU MUSEE youlab.art (etagere, arbre de saison, meuble vinyle, panneau, sol, bancs, visiteur) — 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.
   ===================================================================== */
body.yl-contemple .yl-banc-e{opacity:0!important;pointer-events:none!important;transition:opacity 1.2s ease!important}
#yl-sol-e{position:fixed;left:0;right:0;bottom:0;top:90vh;z-index:1;overflow:hidden;perspective:30vh;perspective-origin:50% -40vh;pointer-events:none;display:none;background:color-mix(in srgb,var(--yl-uni,#23272A) 62%,#000)}
#yl-sol-e.on{display:block}
body.mosaique #yl-sol-e,body.yl-e0 #yl-sol-e{display:none!important}
#yl-sol-e::before{content:"";position:absolute;left:-300%;right:-300%;top:0;height:400vh;transform-origin:50% 0;transform:rotateX(76deg) translateX(var(--yl-sxe,0px));will-change:transform;}
/* 12 oct. 2026 : bancs des etages poses sur le sol, au meme endroit et a la meme taille qu'a l'accueil ; ils suivent leur tableau */
#yl-bancs-e .yl-banc-e{position:absolute;bottom:1.8vh;width:38vh;height:4.6vh;margin-left:-19vh;cursor:pointer;pointer-events:auto;z-index:2}
#yl-bancs-e .yl-banc-e svg{display:block;width:100%;height:100%}
#yl-bancs-e .yl-banc-e .d{fill:color-mix(in srgb,var(--yl-uni,#23272A) 82%,#fff)}
#yl-bancs-e .yl-banc-e .f{fill:color-mix(in srgb,var(--yl-uni,#23272A) 92%,#fff)}
#yl-bancs-e .yl-banc-e .o{fill:rgba(0,0,0,.35)}
#yl-bancs-e .yl-banc-e:hover .d{fill:color-mix(in srgb,var(--yl-uni,#23272A) 74%,#fff)}
html.yl-et-design #yl-bancs-e .yl-banc-e .d{fill:#DBBE96}
html.yl-et-design #yl-bancs-e .yl-banc-e .f{fill:#C9A273}
#yl-fantome-e{position:fixed;z-index:6}
#yl-bancs-e{position:fixed;inset:0;z-index:2;pointer-events:none;display:none}
#yl-bancs-e.on{display:block}
body.mosaique #yl-bancs-e,body.yl-e0 #yl-bancs-e{display:none!important}
html.yl-et-blanc #yl-sol-e{background:#D9D6D0!important}
html.yl-et-blanc #yl-sol-e::before{background-color:#DAD7D1!important;background-image:repeating-linear-gradient(90deg,#DAD7D1 0 278px,#C9C6C0 278px 280px)!important}
html.yl-et-blanc #yl-bancs-e .yl-banc-e .d{fill:#F1EFEA}
html.yl-et-blanc #yl-bancs-e .yl-banc-e .f{fill:#E2DFD9}
html.yl-et-blanc #yl-bancs-e .yl-banc-e .o{fill:rgba(0,0,0,.12)}
/* 12 oct. 2026 (j) : bancs deplaces en transform */
#yl-bancs-e .yl-banc-e>.yl-icos-banc{position:absolute!important;display:flex!important;margin:0!important;pointer-events:auto}
html body .yl-banc-e .yl-icos-banc i{position:relative;min-width:0;cursor:pointer;opacity:.62;font-style:normal;color:rgba(0,0,0,.5);filter:drop-shadow(0 1px 0 rgba(255,255,255,.45));transition:opacity .25s,color .25s}
html body .yl-banc-e .yl-icos-banc i:hover{opacity:1;outline:none}
@media (max-width:760px){
#yl-bancs-e .yl-banc-e>.yl-icos-banc{gap:1.6vh!important}
html body .yl-banc-e .yl-icos-banc i{height:1.5vh!important}}
#yl-bancs-e .yl-banc-e{will-change:transform;width:46vh!important;height:5.6vh!important;margin-left:-23vh!important}
#yl-bancs-e .yl-banc-e svg{filter:drop-shadow(0 6px 10px rgba(0,0,0,.14))}
#yl-bancs-e .yl-banc-e>.yl-icos-banc{left:0!important;right:0!important;gap:0!important;justify-content:center!important;align-items:center!important}
html body .yl-banc-e .yl-icos-banc i{flex:0 0 5.2vh;width:5.2vh!important;height:2.1vh!important;display:flex!important;align-items:center;justify-content:center;margin:0!important;padding:0!important}
@media (max-width:760px){
#yl-bancs-e .yl-banc-e{width:36vh!important;margin-left:-18vh!important}
html body .yl-banc-e .yl-icos-banc i{flex-basis:4vh;width:4vh!important}}
#yl-bancs-e .yl-banc-e>.yl-icos-banc{top:25%!important;bottom:5%!important;height:auto!important}
#yl-meuble{position:fixed;opacity:0;pointer-events:none}
#yl-meuble.on{opacity:1;pointer-events:auto}
#yl-meuble svg{display:block;width:100%;height:100%;overflow:visible}
#yl-meuble .m-top{fill:#DBBE96}
#yl-meuble .m-face{fill:#C9A273}
#yl-meuble .m-veine{fill:rgba(120,80,40,.12)}
#yl-meuble .m-ombre{fill:rgba(0,0,0,.18)}
#yl-meuble .m-bois2{fill:#B88E5F}
#yl-meuble .m-papier{fill:#F6F3EC;stroke:rgba(0,0,0,.12);stroke-width:.6}
#yl-meuble .m-papier.p2{fill:#EFEBE2}
#yl-meuble .m-papier.p3{fill:#E7E2D7}
#yl-meuble .m-carte{fill:#F3EFE6;stroke:rgba(0,0,0,.12);stroke-width:.6}
#yl-meuble .m-photo{fill:#6E7B82}
#yl-meuble .m-trait{fill:none;stroke:rgba(0,0,0,.28);stroke-width:.8;stroke-linecap:round}
#yl-meuble .m-couv{fill:#3B3430}
#yl-meuble .m-carnet{fill:#23201D}
#yl-meuble .m-carnet.c2{fill:#F1EDE4}
#yl-meuble .m-o-logo{fill:none;stroke:#F3F1EC;stroke-width:.8}
#yl-meuble .m-noirp{fill:#262321}
#yl-meuble .m-ecran{fill:#4A4642}
#yl-meuble .m-hit{fill:transparent}
#yl-meuble .m-o{cursor:pointer;transition:transform .25s ease,filter .25s ease;transform-box:fill-box}
#yl-meuble .m-o:hover,#yl-meuble .m-o:focus-visible{outline:none}
#yl-meuble .m-o:hover .m-hit,#yl-meuble .m-o:focus-visible .m-hit{fill:transparent}
#yl-meuble-tip{position:fixed;z-index:61;transform:translate(-50%,-100%);white-space:nowrap;padding:5px 10px;border-radius:3px;background:rgba(20,18,16,.86);color:#F3F1EC;font:400 10px/1.3 "Cormorant Garamond",Georgia,serif;letter-spacing:.2em;text-transform:uppercase;opacity:0;pointer-events:none;transition:opacity .2s}
#yl-meuble-tip.on{opacity:1}
#yl-meuble{z-index:60!important;width:17vh!important;height:47.6vh!important}
#yl-meuble .m-photo.p2{fill:#9AA39B}
#yl-meuble .m-photo.p3{fill:#7F6E62}
@media (max-width:760px){
#yl-meuble{width:12vh!important;height:33.6vh!important}}
/* 13 oct. 2026 (p) : etagere repliee — seul le socle se voit ; elle se deplie vers le haut au clic */
#yl-meuble svg{clip-path:inset(92% 0 0 0)}
#yl-meuble.ouvert svg{clip-path:inset(0 0 0 0)}
#yl-meuble:not(.ouvert) .m-o{pointer-events:none}
#yl-meuble .m-socle{fill:transparent;cursor:pointer}
#yl-meuble:not(.ouvert) .m-socle:hover~*,#yl-meuble .m-socle:focus-visible{outline:none}
#yl-meuble:not(.ouvert):hover .m-noir{fill:#3A3530}
#yl-meuble.on:not(.ouvert){pointer-events:none}
#yl-meuble.on .m-socle{pointer-events:auto}
#yl-meuble .m-socle:focus,#yl-meuble .m-o:focus{outline:none}
#yl-meuble .m-socle:focus-visible{outline:1px solid rgba(0,0,0,.25);outline-offset:2px}
#yl-meuble svg{filter:none!important}
#yl-meuble .r-grille{fill:#8E8A84}
#yl-meuble .r-bouton{fill:none;stroke:#8E8A84;stroke-width:.8}
#yl-meuble .m-play{fill:#CFCAC2}
#yl-meuble .m-arc{fill:none;stroke:#2B2825;stroke-width:1.6;stroke-linecap:round}
#yl-meuble .r-papier{fill:#FBFAF7;stroke:#D9D4CB;stroke-width:.5}
#yl-meuble .r-ligne{fill:none;stroke-width:.6;stroke-linecap:round}
#yl-meuble .m-lg{font:500 6px "Jost","Futura",sans-serif!important;letter-spacing:.18em;fill:#6E6A64!important}
#yl-meuble .r-logo{fill:none;stroke:#F1EEE8;stroke-width:.7}
#yl-meuble .r-carte{fill:#FBFAF7;stroke:#D9D4CB;stroke-width:.5}
#yl-meuble .r-photo{fill:#8C8984}
#yl-meuble .r-photo.p2{fill:#B3B0AA}
#yl-meuble .r-photo.p3{fill:#5F5C58}
#yl-meuble .m-o:hover,#yl-meuble .m-o:focus-visible{filter:none!important;transform:translateY(-1.5px)}
#yl-meuble.muet [data-k="son"] .m-arc{stroke:var(--rouge,#E5142C)}
#yl-meuble.muet [data-k="son"] .ec{fill:var(--rouge,#E5142C)}
#yl-meuble.visite [data-k="visite"] .m-play{fill:var(--rouge,#E5142C)}
#yl-meuble.visite [data-k="visite"] .r-bouton{stroke:var(--rouge,#E5142C)}
#yl-meuble svg{transition:clip-path .9s cubic-bezier(.65,0,.35,1)!important}
@media (max-width:760px){
#yl-meuble{left:0!important}}
/* 13 oct. 2026 (s) : etagere centree entre le bord de l'ecran et le bord gauche du tableau (calcule en direct) */
/* 13 oct. 2026 (t) : etagere collee au mur du fond — pied du socle sur la ligne mur / sol */
#yl-meuble{margin-left:0!important;bottom:var(--yl-mb,10.3vh)!important}
#yl-meuble .r-q{fill:none;stroke:#F1EEE8;stroke-width:.7;stroke-linecap:round}
#yl-meuble .r-qp{fill:#F1EEE8}
/* 13 oct. 2026 (v) : l'arbre de saison a droite du tableau */
#yl-arbre{position:fixed;z-index:59;bottom:var(--yl-ab,10.3vh);width:20.4vh;height:47.6vh;opacity:0;pointer-events:none}
#yl-arbre.on{opacity:1}
#yl-arbre svg{display:block;width:100%;height:100%;overflow:visible}
#yl-arbre .a-tronc{fill:none;stroke-linecap:round}
#yl-arbre .a-br{fill:none;stroke-linecap:round}
#yl-arbre .a-br.f{stroke-width:.9}
#yl-arbre .a-pot{fill:#C9A273}
#yl-arbre svg ellipse{opacity:.92}
#yl-arbre .a-tombe{position:absolute;width:.9vh;height:.5vh;border-radius:50%;background:#C8783A;opacity:0;animation:yl-tombe 14s linear infinite}
#yl-arbre .a-tombe.t1{left:28%;top:40%;animation-delay:2s}
#yl-arbre .a-tombe.t2{left:62%;top:36%;background:#D9A44A;animation-delay:7s;animation-duration:17s}
#yl-arbre .a-tombe.t3{left:46%;top:44%;background:#A9502E;animation-delay:11s;animation-duration:15s}
@media (prefers-reduced-motion:reduce){
#yl-arbre .a-tombe{display:none}}
@media (max-width:760px){
#yl-arbre{width:14.4vh;height:33.6vh}}
#yl-meuble .r-livre2{fill:#8C8984}
#yl-meuble .r-livre3{stroke-width:.5}
#yl-meuble .r-titre{fill:#8E8A84}
#yl-meuble .r-titre3{fill:#8E8A84}
/* 13 oct. 2026 (x) : le pot de l'arbre mene a la mosaique */
#yl-arbre .a-pot-hit{position:absolute;left:33.3%;width:33.4%;top:84.6%;height:14%;cursor:pointer;pointer-events:none}
#yl-arbre.on .a-pot-hit{pointer-events:auto}
#yl-arbre .a-pot-hit:focus{outline:none}
#yl-arbre .a-pot{transition:fill .25s}
#yl-meuble .r-plan-l{fill:none;stroke:#B9B4AC;stroke-width:.6;stroke-linecap:round}
#yl-meuble .r-plan-p{fill:#8E8A84}
#yl-arbre .a-pot-hit{display:none!important}
#yl-arbre .a-hit{position:absolute;left:8%;right:8%;top:12%;bottom:16%;pointer-events:none;cursor:pointer}
#yl-arbre.on .a-hit{pointer-events:auto}
#yl-arbre .a-hit:focus{outline:none}
#yl-arbre svg{transform-origin:50% 96%}
#yl-arbre .a-feuille{position:absolute;opacity:0;animation:yl-feuille 6s ease-in forwards}
#yl-arbre-msg{position:fixed;z-index:61;transform:translate(-50%,-100%);max-width:34vh;text-align:center;padding:6px 12px;border-radius:3px;background:rgba(20,18,16,.86);color:#F3F1EC;font:italic 400 13px/1.35 "Cormorant Garamond",Georgia,serif;letter-spacing:.02em;opacity:0;pointer-events:none;transition:opacity .5s}
#yl-arbre-msg.on{opacity:1}
@media (prefers-reduced-motion:reduce){
#yl-arbre.vent svg{animation:none}
#yl-arbre .a-feuille{display:none}}
/* 13 oct. 2026 (z) : arbre facon Rams — feuillage en disques, aucun mouvement ; au clic seulement, des feuilles tombent (plus de balancement ni de message) */
#yl-arbre .a-disque{opacity:.94}
#yl-arbre .a-tombe{display:none!important}
#yl-arbre.vent svg{animation:none!important}
#yl-arbre-msg{display:none!important}
#yl-arbre:not(.s-hiver) .a-br.f{display:none}
/* 13 oct. 2026 (aa) : arbre japonais, libelle de saison, boutons d'ascenseur sur l'etagere */
#yl-arbre .a-f{opacity:.95}
#yl-arbre .a-tronc{stroke:#4E4038!important;stroke-width:3!important}
#yl-arbre .a-br{stroke:#4E4038!important;stroke-width:1.4!important}
#yl-arbre .a-feuille{width:1.1vh!important;height:.55vh!important;border-radius:0 100% 0 100%!important}
#yl-arbre .a-saison{position:absolute;left:50%;transform:translateX(-50%);white-space:nowrap;text-align:center;color:#8A8178;pointer-events:none}
#yl-arbre .a-saison b{display:block;font:400 11px/1.3 "Cormorant Garamond",Georgia,serif;letter-spacing:.24em;text-transform:uppercase}
#yl-arbre .a-saison span{display:block;margin-top:3px;font:italic 400 12px/1.2 "Cormorant Garamond",Georgia,serif;letter-spacing:.06em;opacity:.8}
#yl-meuble .r-plaque{fill:#E4E0D9;stroke:#CFCAC1;stroke-width:.5}
#yl-meuble .r-btn{fill:#F6F4F0;stroke:#A8A49D;stroke-width:.6}
#yl-meuble .r-fl{fill:#6E6A64}
#yl-arbre .a-saison{top:20%!important}
#yl-appel{position:fixed;z-index:59;bottom:var(--yl-pb,36vh);width:3.4vh;height:6.4vh;cursor:pointer;opacity:0;pointer-events:none}
#yl-appel.on{opacity:1;pointer-events:auto}
#yl-appel:focus{outline:none}
#yl-appel svg{display:block;width:100%;height:100%;filter:drop-shadow(0 .12vh 0 var(--hautrelief,rgba(255,255,255,.45))) drop-shadow(0 -.1vh .2vh var(--basrelief,rgba(0,0,0,.3)))}
#yl-appel .p-plaque{fill:rgba(0,0,0,.025);stroke-width:.7}
#yl-appel .p-btn{transition:stroke .25s;fill:rgba(0,0,0,.035);stroke-width:.8}
#yl-appel .p-fl{fill:rgba(0,0,0,.26)}
#yl-appel:hover .p-btn,#yl-appel:focus-visible .p-btn{stroke:rgba(0,0,0,.36)}
#yl-appel:hover .p-fl,#yl-appel:focus-visible .p-fl{fill:var(--rouge,#E5142C)}
#yl-meuble .m-noir{fill:rgba(0,0,0,.16)!important}
#yl-meuble.ouvert .m-noir{fill:rgba(0,0,0,.16)!important}
#yl-arbre .a-pot,#yl-arbre.survol .a-pot{fill:rgba(0,0,0,.07)}
#yl-arbre.survol .a-pot{fill:rgba(0,0,0,.1)}
#yl-arbre .a-filet{fill:rgba(255,255,255,.35)}
#yl-arbre .a-noir{fill:rgba(0,0,0,.16)}
/* (hh) lisible aussi sur les salles claires */
/* 13 oct. 2026 (ii) : l'etagere dans les tons du mur de chaque salle — rails et planches teintes a partir du mur (transparences), un filet de lumiere sur l'arete ; les objets gardent leurs couleurs, adoucies, et portent le contraste */
#yl-meuble .r-rail{fill:rgba(0,0,0,.13)}
#yl-meuble .r-plan{fill:rgba(0,0,0,.075)}
#yl-meuble .r-chant{fill:rgba(0,0,0,.12)}
#yl-meuble .r-ombre{fill:rgba(0,0,0,.06)}
#yl-meuble .r-papier,#yl-meuble .r-carte{fill:rgba(255,255,255,.62);stroke:rgba(0,0,0,.12)}
#yl-meuble .r-papier.p2{fill:rgba(255,255,255,.5)}
#yl-meuble .r-papier.p3{fill:rgba(255,255,255,.4)}
#yl-meuble .r-livre3{fill:rgba(255,255,255,.55);stroke:rgba(0,0,0,.12)}
#yl-meuble .r-dos{fill:rgba(0,0,0,.14)}
#yl-meuble .r-ligne{stroke:rgba(0,0,0,.22)}
#yl-meuble .r-objet{fill:rgba(36,33,30,.84)}
#yl-meuble .r-titre2{fill:rgba(255,255,255,.5)}
/* (ii) salle sombre : planches a peine plus claires que le mur, objets clairs */
#yl-meuble.sombre .r-rail{fill:rgba(255,255,255,.12)}
#yl-meuble.sombre .r-plan{fill:rgba(255,255,255,.07);filter:drop-shadow(0 -.5px 0 rgba(255,255,255,.22))}
#yl-meuble.sombre .r-chant{fill:rgba(0,0,0,.3)}
#yl-meuble.sombre .r-ombre{fill:rgba(0,0,0,.18)}
#yl-meuble.sombre .r-objet{fill:rgba(226,222,214,.8)}
#yl-meuble.sombre .r-grille{fill:rgba(40,37,34,.7)}
#yl-meuble.sombre .m-play{fill:rgba(40,37,34,.75)}
#yl-meuble.sombre .r-bouton{stroke:rgba(40,37,34,.7)}
#yl-meuble.sombre .m-arc{stroke:rgba(226,222,214,.8)}
#yl-meuble.sombre .r-q{stroke:rgba(40,37,34,.85)}
#yl-meuble.sombre .r-qp{fill:rgba(40,37,34,.85)}
#yl-meuble.sombre .r-titre{fill:rgba(40,37,34,.6)}
#yl-meuble.sombre .r-papier,#yl-meuble.sombre .r-carte{fill:rgba(255,255,255,.5)}
#yl-meuble.sombre .r-livre2{fill:rgba(170,166,160,.75)}
/* 13 oct. 2026 (ll) : arbre repliable dans son pot */
#yl-arbre .a-pot-t{position:absolute;left:33.3%;width:33.4%;top:85%;height:14%;cursor:pointer;pointer-events:none}
#yl-arbre.on .a-pot-t{pointer-events:auto}
#yl-arbre .a-pot-t:focus{outline:none}
#yl-arbre svg .a-tronc,#yl-arbre svg .a-br,#yl-arbre svg .a-f{transition:opacity .6s ease}
#yl-arbre .a-saison{transition:opacity .6s ease}
#yl-arbre svg{transition:clip-path .7s cubic-bezier(.65,0,.35,1)}
#yl-arbre.replie .a-saison{opacity:0}
#yl-arbre.replie .a-hit{pointer-events:none!important}
#yl-arbre .a-pot-t:hover~svg .a-pot{fill:rgba(0,0,0,.1)}
#yl-arbre.replie svg{clip-path:inset(85.4% 0 0 0)}
/* (kk) feuilles encore plus fondues dans le mur */
#yl-arbre .a-f{fill:color-mix(in srgb,var(--c) 40%,var(--yl-mur,#E8E4DD))}
#yl-arbre .a-feuille{background:color-mix(in srgb,var(--c) 40%,var(--yl-mur,#E8E4DD))!important}
#yl-arbre.sombre .a-f{fill:color-mix(in srgb,var(--c) 42%,var(--yl-mur,#2A2D32))}
#yl-arbre.sombre .a-feuille{background:color-mix(in srgb,var(--c) 42%,var(--yl-mur,#2A2D32))!important}
/* 13 oct. 2026 (mm) : les objets de l'etagere dans le ton du meuble (a peine marques) ; ils s'eclairent en blanc seulement au survol */
#yl-meuble .m-o *{transition:fill .25s ease,stroke .25s ease}
#yl-meuble .m-o .r-objet,#yl-meuble .m-o .r-livre2,#yl-meuble .m-o .r-photo,#yl-meuble .m-o .r-dos{fill:rgba(0,0,0,.13)}
#yl-meuble .m-o .r-papier,#yl-meuble .m-o .r-carte,#yl-meuble .m-o .r-livre3{fill:rgba(0,0,0,.06);stroke:rgba(0,0,0,.1)}
#yl-meuble .m-o .m-arc{stroke:rgba(0,0,0,.16)}
#yl-meuble .m-o .r-grille,#yl-meuble .m-o .m-play,#yl-meuble .m-o .r-titre,#yl-meuble .m-o .r-titre2,#yl-meuble .m-o .r-titre3,#yl-meuble .m-o .r-qp{fill:rgba(0,0,0,.2)}
#yl-meuble .m-o .r-ligne,#yl-meuble .m-o .r-bouton,#yl-meuble .m-o .r-q{stroke:rgba(0,0,0,.2)}
#yl-meuble .m-o .m-lg{fill:rgba(0,0,0,.28)!important}
/* salle sombre : meme principe, a peine plus clair que le mur */
#yl-meuble.sombre .m-o .r-objet,#yl-meuble.sombre .m-o .r-livre2,#yl-meuble.sombre .m-o .r-photo,#yl-meuble.sombre .m-o .r-dos{fill:rgba(255,255,255,.12)}
#yl-meuble.sombre .m-o .r-papier,#yl-meuble.sombre .m-o .r-carte,#yl-meuble.sombre .m-o .r-livre3{fill:rgba(255,255,255,.07);stroke:rgba(255,255,255,.1)}
#yl-meuble.sombre .m-o .m-arc{stroke:rgba(255,255,255,.16)}
#yl-meuble.sombre .m-o .r-grille,#yl-meuble.sombre .m-o .m-play,#yl-meuble.sombre .m-o .r-titre,#yl-meuble.sombre .m-o .r-titre2,#yl-meuble.sombre .m-o .r-titre3,#yl-meuble.sombre .m-o .r-qp{fill:rgba(255,255,255,.2)}
#yl-meuble.sombre .m-o .r-ligne,#yl-meuble.sombre .m-o .r-bouton,#yl-meuble.sombre .m-o .r-q{stroke:rgba(255,255,255,.2)}
#yl-meuble.sombre .m-o .m-lg{fill:rgba(255,255,255,.3)!important}
/* survol (ou focus clavier) : l'objet devient blanc, ses details en gris fonce */
#yl-meuble .m-o:hover .r-objet,#yl-meuble .m-o:focus-visible .r-objet,#yl-meuble .m-o:hover .r-papier,#yl-meuble .m-o:focus-visible .r-papier,#yl-meuble .m-o:hover .r-carte,#yl-meuble .m-o:focus-visible .r-carte,#yl-meuble .m-o:hover .r-livre2,#yl-meuble .m-o:focus-visible .r-livre2,#yl-meuble .m-o:hover .r-livre3,#yl-meuble .m-o:focus-visible .r-livre3,#yl-meuble .m-o:hover .r-photo,#yl-meuble .m-o:focus-visible .r-photo,#yl-meuble .m-o:hover .r-dos,#yl-meuble .m-o:focus-visible .r-dos{fill:#FBFAF7;stroke:rgba(0,0,0,.08)}
#yl-meuble .m-o:hover .m-arc,#yl-meuble .m-o:focus-visible .m-arc{stroke:#FBFAF7}
#yl-meuble .m-o:hover .r-grille,#yl-meuble .m-o:focus-visible .r-grille,#yl-meuble .m-o:hover .m-play,#yl-meuble .m-o:focus-visible .m-play,#yl-meuble .m-o:hover .r-titre,#yl-meuble .m-o:hover .r-titre2,#yl-meuble .m-o:hover .r-titre3,#yl-meuble .m-o:hover .r-qp,#yl-meuble .m-o:focus-visible .r-qp{fill:rgba(40,37,34,.6)}
#yl-meuble .m-o:hover .r-ligne,#yl-meuble .m-o:hover .r-bouton,#yl-meuble .m-o:focus-visible .r-bouton,#yl-meuble .m-o:hover .r-q,#yl-meuble .m-o:focus-visible .r-q{stroke:rgba(40,37,34,.6)}
#yl-meuble .m-o:hover .m-lg,#yl-meuble .m-o:focus-visible .m-lg{fill:rgba(40,37,34,.75)!important}
/* les etats allumes restent rouges, survol ou non */
#yl-meuble.muet .m-o[data-k="son"] .m-arc{stroke:var(--rouge,#E5142C)}
#yl-meuble.muet .m-o[data-k="son"] .ec{fill:var(--rouge,#E5142C)}
#yl-meuble.visite .m-o[data-k="visite"] .m-play{fill:var(--rouge,#E5142C)}
#yl-meuble.visite .m-o[data-k="visite"] .r-bouton{stroke:var(--rouge,#E5142C)}
/* 13 oct. 2026 (nn) : fluidite du traveling — l'etagere, l'arbre et le bouton d'appel suivent l'oeuvre par transform (compositeur) au lieu de left (mise en page a chaque image) */
#yl-meuble{left:0!important;will-change:transform,opacity}
#yl-arbre{left:0!important;will-change:transform,opacity}
#yl-appel{left:0!important;will-change:transform,opacity}
#yl-meuble .r-plan{filter:none!important}
#yl-vinyle{position:fixed;z-index:59;left:0;bottom:var(--yl-vb,10.3vh);width:30vh;height:22.5vh;opacity:0;pointer-events:none;will-change:transform,opacity}
#yl-vinyle.on{opacity:1}
#yl-vinyle svg{display:block;width:100%;height:100%;overflow:visible}
#yl-vinyle svg *{transition:fill .25s ease,stroke .25s ease}
#yl-vinyle .v-arete{fill:rgba(255,255,255,.5)}
#yl-vinyle .v-hit{fill:transparent}
#yl-vinyle.on .v-platine{pointer-events:auto;cursor:pointer}
#yl-vinyle .v-platine:focus{outline:none}
#yl-vinyle .v-dessus{fill:rgba(0,0,0,.09)}
#yl-vinyle .v-bouton{fill:none;stroke:rgba(0,0,0,.25);stroke-width:.6}
#yl-vinyle .v-voyant{fill:rgba(0,0,0,.2)}
#yl-vinyle .v-sillon{fill:none;stroke:rgba(255,255,255,.1);stroke-width:.6}
#yl-vinyle .v-reflet{fill:rgba(255,255,255,.08)}
#yl-vinyle .v-axe{fill:rgba(0,0,0,.4)}
#yl-vinyle .v-pivot{fill:rgba(0,0,0,.18)}
#yl-vinyle .v-tige{fill:none;stroke:rgba(0,0,0,.3);stroke-linecap:round;stroke-linejoin:round}
#yl-vinyle .v-tete{fill:rgba(0,0,0,.3)}
#yl-vinyle .v-tourne{transform-box:view-box;transform-origin:0 0}
#yl-vinyle.joue .v-tourne{animation:yl-33t 1.8s linear infinite}
#yl-vinyle.joue .v-etiquette,#yl-vinyle.joue .v-voyant{fill:var(--rouge,#E5142C)}
/* survol : la platine s'eclaire en blanc, comme les objets de l'etagere */
#yl-vinyle .v-platine:hover .v-dessus,#yl-vinyle .v-platine:focus-visible .v-dessus{fill:#F6F4F0}
#yl-vinyle .v-platine:hover .v-face,#yl-vinyle .v-platine:focus-visible .v-face{fill:#E9E6E0}
#yl-vinyle .v-platine:hover .v-vinyle{fill:#2B2825}
#yl-vinyle .v-platine:hover .v-tige{stroke:#6E6A64}
#yl-vinyle .v-platine:hover .v-pivot,#yl-vinyle .v-platine:hover .v-tete{fill:#6E6A64}
#yl-vinyle .v-platine:hover .v-bouton{stroke:#6E6A64}
#yl-vinyle .v-vase{fill:rgba(0,0,0,.1)}
#yl-vinyle .v-branche{fill:none;stroke:color-mix(in srgb,#4E4038 70%,var(--yl-mur,#E8E4DD));stroke-width:1.1;stroke-linecap:round}
#yl-vinyle .v-branche.f{stroke-width:.7}
#yl-vinyle .v-f{fill:color-mix(in srgb,var(--c) 40%,var(--yl-mur,#E8E4DD))}
#yl-vinyle.sombre .v-f{fill:color-mix(in srgb,var(--c) 42%,var(--yl-mur,#2A2D32))}
#yl-vinyle .a-saison{position:absolute;transform:translateX(-50%);white-space:nowrap;text-align:center;pointer-events:none;color:#8A8178}
#yl-vinyle .a-saison b{display:block;font:400 9px/1.3 "Cormorant Garamond",Georgia,serif;letter-spacing:.3em;text-transform:uppercase}
#yl-vinyle .a-saison span{display:block;font:italic 400 9px/1.3 "Cormorant Garamond",Georgia,serif;opacity:.7}
#yl-vinyle.sombre .v-arete{fill:rgba(255,255,255,.2)}
#yl-vinyle.sombre .v-dessus{fill:rgba(255,255,255,.1)}
#yl-vinyle.sombre .v-face{fill:rgba(255,255,255,.07)}
#yl-vinyle.sombre .v-tige{stroke:rgba(255,255,255,.3)}
#yl-vinyle.sombre .v-pivot,#yl-vinyle.sombre .v-tete{fill:rgba(255,255,255,.3)}
#yl-vinyle.sombre .v-vase{fill:rgba(255,255,255,.1)}
#yl-vinyle.sombre .a-saison{color:#A39B90}
@media (max-width:760px){
#yl-vinyle{width:21vh;height:15.75vh}}
@media (prefers-reduced-motion:reduce){
#yl-vinyle.joue .v-tourne{animation-duration:6s}}
#yl-vinyle .a-saison b{font-size:10px}
#yl-vinyle .a-saison span{font-size:10px}
#yl-vinyle .v-contrepoids{fill:rgba(0,0,0,.28)}
#yl-vinyle .v-vinyle{fill:rgba(0,0,0,.32)}
#yl-vinyle .v-etiquette{fill:rgba(255,255,255,.4)}
#yl-vinyle .v-tige{stroke-width:1.1}
#yl-vinyle .v-bras{transform-box:view-box;transform-origin:88px 33.6px;transition:transform 1.2s cubic-bezier(.4,0,.2,1);transform:rotate(-7deg)}
#yl-vinyle.joue .v-bras{transform:rotate(0)}
#yl-vinyle .v-platine:hover .v-plateau,#yl-vinyle .v-platine:focus-visible .v-plateau{fill:#D9D5CE}
#yl-vinyle .v-platine:hover .v-pilier,#yl-vinyle .v-platine:focus-visible .v-pilier{fill:#E9E6E0}
#yl-vinyle .v-platine:hover .v-contrepoids,#yl-vinyle .v-platine:hover .v-pied{fill:#6E6A64}
#yl-vinyle.sombre .v-pilier{fill:rgba(255,255,255,.1)}
#yl-vinyle.sombre .v-vinyle{fill:rgba(0,0,0,.45)}
#yl-vinyle.sombre .v-contrepoids{fill:rgba(255,255,255,.3)}
#yl-vinyle .a-saison{bottom:128%!important;left:84%!important}
/* 13 oct. 2026 (ss) : l'arbre dessine sur le mur, derriere le meuble vinyle — ton sur ton, en leger relief comme le bouton d'ascenseur ; plus de pot ni de vase */
#yl-arbre.remplace{display:block!important}
#yl-arbre.mural{z-index:58}
#yl-arbre.mural .a-pot,#yl-arbre.mural .a-filet,#yl-arbre.mural .a-noir,#yl-arbre.mural .a-pot-t{display:none!important}
#yl-arbre.mural.replie svg{clip-path:none!important}
#yl-arbre.mural svg{filter:drop-shadow(0 .12vh 0 rgba(255,255,255,.5)) drop-shadow(0 -.1vh .15vh rgba(0,0,0,.22))}
#yl-arbre.mural .a-f{fill:color-mix(in srgb,var(--c) 28%,var(--yl-mur,#E8E4DD))!important;opacity:1}
#yl-arbre.mural.sombre svg{filter:drop-shadow(0 .12vh 0 rgba(255,255,255,.12)) drop-shadow(0 -.1vh .15vh rgba(0,0,0,.5))}
#yl-arbre.mural.sombre .a-tronc,#yl-arbre.mural.sombre .a-br{stroke:color-mix(in srgb,var(--yl-mur,#2A2D32) 80%,#fff)!important}
#yl-arbre.mural.sombre .a-f{fill:color-mix(in srgb,var(--c) 32%,var(--yl-mur,#2A2D32))!important}
#yl-vinyle .v-plante,#yl-vinyle .a-saison{display:none!important}
/* 13 oct. 2026 (tt) : meuble vinyle opaque, dans la teinte du mur (l'arbre dessine passe derriere) */
#yl-vinyle .v-corps{fill:color-mix(in srgb,var(--yl-mur,#E8E4DD) 94%,#000)}
#yl-vinyle .v-niche{fill:color-mix(in srgb,var(--yl-mur,#E8E4DD) 89%,#000)}
#yl-vinyle .v-face{fill:color-mix(in srgb,var(--yl-mur,#E8E4DD) 88%,#000)}
#yl-vinyle .v-pilier{fill:color-mix(in srgb,var(--yl-mur,#E8E4DD) 88%,#000)}
#yl-vinyle .v-plateau{fill:color-mix(in srgb,var(--yl-mur,#E8E4DD) 84%,#000)}
#yl-vinyle .v-disque{fill:color-mix(in srgb,var(--yl-mur,#E8E4DD) 86%,#000)}
#yl-vinyle .v-disque.d1{fill:color-mix(in srgb,var(--yl-mur,#E8E4DD) 91%,#000)}
#yl-vinyle .v-disque.d2{fill:color-mix(in srgb,var(--yl-mur,#E8E4DD) 82%,#000)}
#yl-vinyle.sombre .v-corps{fill:color-mix(in srgb,var(--yl-mur,#2A2D32) 92%,#fff)}
#yl-vinyle.sombre .v-niche{fill:color-mix(in srgb,var(--yl-mur,#2A2D32) 85%,#000)}
#yl-vinyle.sombre .v-face,#yl-vinyle.sombre .v-pilier{fill:color-mix(in srgb,var(--yl-mur,#2A2D32) 88%,#fff)}
#yl-vinyle.sombre .v-plateau{fill:color-mix(in srgb,var(--yl-mur,#2A2D32) 84%,#fff)}
#yl-vinyle.sombre .v-disque{fill:color-mix(in srgb,var(--yl-mur,#2A2D32) 86%,#fff)}
#yl-vinyle.sombre .v-disque.d1{fill:color-mix(in srgb,var(--yl-mur,#2A2D32) 92%,#fff)}
#yl-vinyle.sombre .v-disque.d2{fill:color-mix(in srgb,var(--yl-mur,#2A2D32) 80%,#fff)}
/* portes de verre et lecteur */
#yl-vinyle .v-portes{position:absolute;left:8.75%;width:82.5%;top:53.33%;height:31.67%;overflow:hidden;pointer-events:none}
#yl-vinyle .v-porte{position:absolute;top:0;bottom:0;width:50.4%;background:rgba(12,12,14,.08) linear-gradient(105deg,rgba(255,255,255,.12),rgba(255,255,255,0) 40%);-webkit-backdrop-filter:blur(5px) saturate(.9);backdrop-filter:blur(5px) saturate(.9);transition:transform .9s cubic-bezier(.65,0,.35,1)}
#yl-vinyle .v-porte.g{left:0;transform:translateX(-101%);box-shadow:inset -1px 0 0 rgba(255,255,255,.5)}
#yl-vinyle .v-porte.d{right:0;transform:translateX(101%);box-shadow:inset 1px 0 0 rgba(255,255,255,.3)}
#yl-vinyle.lit .v-porte{transform:translateX(0)}
#yl-vinyle .v-lect{position:absolute;inset:0;flex-direction:column;justify-content:center;gap:.9vh;opacity:0;transition:opacity .35s ease;font-family:"Cormorant Garamond",Georgia,serif;color:#F3F1EC;text-shadow:0 1px 2px rgba(0,0,0,.45)}
#yl-vinyle.lit .v-lect{opacity:1;transition-delay:.75s}
#yl-vinyle.on.lit .v-portes{pointer-events:auto}
#yl-vinyle .v-titre{display:block;font-weight:500;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#yl-vinyle .v-barre{height:1.6vh;cursor:pointer;outline:none}
#yl-vinyle .v-barre::before{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:rgba(255,255,255,.45);box-shadow:0 1px 2px rgba(0,0,0,.3)}
#yl-vinyle .v-barre i{position:absolute;left:0;top:50%;height:2px;margin-top:-.5px;width:var(--p,0%);background:var(--rouge,#E5142C)}
#yl-vinyle .v-barre i::after{content:"";position:absolute;right:-.45vh;top:50%;width:.9vh;height:.9vh;margin-top:-.45vh;border-radius:50%;background:#F3F1EC;box-shadow:0 1px 2px rgba(0,0,0,.4)}
#yl-vinyle .v-ctl{display:flex;align-items:center;gap:1.2vh}
#yl-vinyle .v-ctl button{width:2.6vh;height:2.6vh;padding:0;border:0;border-radius:50%;background:rgba(18,19,21,.55);box-shadow:inset 0 0 0 1px rgba(255,255,255,.3);cursor:pointer;position:relative}
#yl-vinyle .v-ctl button:hover,#yl-vinyle .v-ctl button:focus-visible{outline:none;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.8)}
#yl-vinyle .v-pp::before{content:"";position:absolute;left:50%;top:50%;width:.85vh;height:.95vh;transform:translate(-50%,-50%);background:linear-gradient(90deg,#F3F1EC 0 34%,transparent 34% 66%,#F3F1EC 66%)}
#yl-vinyle.pret .v-pp::before{width:0;height:0;background:none;border-style:solid;border-width:.5vh 0 .5vh .85vh;border-color:transparent transparent transparent #F3F1EC;transform:translate(-35%,-50%)}
#yl-vinyle .v-stop::before{content:"";position:absolute;left:50%;top:50%;width:.8vh;height:.8vh;transform:translate(-50%,-50%);background:#F3F1EC}
#yl-vinyle .v-temps{letter-spacing:.12em;font-variant-numeric:tabular-nums}
/* (tt) la platine et le meuble masquent l'arbre dessine ; verre un peu plus fume quand le lecteur est affiche, pour lire le texte */
#yl-vinyle .v-pied{fill:color-mix(in srgb,var(--yl-mur,#E8E4DD) 78%,#000)}
#yl-vinyle.sombre .v-pied{fill:color-mix(in srgb,var(--yl-mur,#2A2D32) 70%,#000)}
#yl-vinyle.lit .v-porte{background:rgba(20,20,22,.34) linear-gradient(105deg,rgba(255,255,255,.1),rgba(255,255,255,0) 40%)}
/* 13 oct. 2026 (uu) : decor accroche au mur pendant le traveling (position pilotee image par image, sans transition) */
#yl-meuble{transform:translate3d(var(--k-x,var(--yl-mx,4vw)),0,0)!important;transition:opacity .6s ease!important}
#yl-arbre{transform:translate3d(var(--k-x,var(--yl-ax,80vw)),0,0)!important;transition:opacity .8s ease!important}
#yl-vinyle{transform:translate3d(var(--k-x,var(--yl-vx,70vw)),0,0)!important;transition:opacity .8s ease!important}
#yl-appel{transform:translate3d(var(--k-x,var(--yl-px,30vw)),0,0)!important;transition:opacity .6s ease!important}
body.yl-deco-saut #yl-meuble,body.yl-deco-saut #yl-arbre,body.yl-deco-saut #yl-vinyle,body.yl-deco-saut #yl-appel{opacity:0!important;transition:none!important}
/* 13 oct. 2026 (vv) : lecteur — ligne de lecture exactement au centre des portes, titre plus petit au-dessus, commandes en dessous, bouton fermer */
#yl-vinyle .v-lect{display:block!important;padding:0!important}
#yl-vinyle .v-barre{position:absolute!important;left:9%;right:9%;top:50%;transform:translateY(-50%)}
#yl-vinyle .v-titre{position:absolute;left:9%;right:9%;font-size:.95vh!important;letter-spacing:.26em;text-align:center}
#yl-vinyle .v-ctl{position:absolute;left:9%;right:9%;top:calc(50% + 1.2vh);justify-content:center}
#yl-vinyle .v-temps{position:absolute;right:0;margin:0!important;font-size:1vh!important}
#yl-vinyle .v-x{position:absolute;right:2.5%;top:6%;width:2vh;height:2vh;padding:0;border:0;background:none;color:#F3F1EC;font:300 1.7vh/1 Jost,Futura,Helvetica,sans-serif;cursor:pointer;opacity:.75;text-shadow:0 1px 2px rgba(0,0,0,.45)}
#yl-vinyle .v-x:hover,#yl-vinyle .v-x:focus-visible{opacity:1;outline:none}
#yl-vinyle.lit.cache .v-porte.g{transform:translateX(-101%)}
#yl-vinyle.lit.cache .v-porte.d{transform:translateX(101%)}
#yl-vinyle.lit.cache .v-lect{opacity:0;transition-delay:0s}
#yl-vinyle.on.lit.cache .v-portes{pointer-events:none}
/* 13 oct. 2026 (ww) : socle plein sous le meuble vinyle ; lecteur sur une seule ligne, centree en hauteur et en largeur : lecture/pause en petit au debut, temps et stop a la fin */
#yl-vinyle .v-plinthe{fill:color-mix(in srgb,var(--yl-mur,#E8E4DD) 82%,#000)}
#yl-vinyle .v-socle-ombre{fill:rgba(0,0,0,.18)}
#yl-vinyle.sombre .v-plinthe{fill:color-mix(in srgb,var(--yl-mur,#2A2D32) 72%,#000)}
#yl-vinyle .v-ligne{position:absolute;left:7%;right:7%;top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:1vh}
#yl-vinyle .v-ligne .v-barre{position:relative!important;left:auto;right:auto;top:auto;transform:none;flex:1}
#yl-vinyle .v-ligne button{flex:none;width:1.8vh;height:1.8vh;padding:0;border:0;border-radius:50%;background:none;box-shadow:inset 0 0 0 1px rgba(255,255,255,.5);cursor:pointer;position:relative}
#yl-vinyle .v-ligne button:hover,#yl-vinyle .v-ligne button:focus-visible{outline:none;box-shadow:inset 0 0 0 1.3px #fff}
#yl-vinyle .v-ligne .v-pp::before{width:.55vh;height:.65vh}
#yl-vinyle.pret .v-ligne .v-pp::before{border-width:.34vh 0 .34vh .58vh}
#yl-vinyle .v-ligne .v-stop::before{width:.5vh;height:.5vh}
#yl-vinyle .v-ligne .v-temps{position:static!important;flex:none;font-size:.95vh!important;letter-spacing:.1em}
#yl-vinyle .v-titre{bottom:calc(50% + 1.5vh)!important}
body.yl-deco-saut #yl-meuble,body.yl-deco-saut #yl-arbre,body.yl-deco-saut #yl-vinyle,body.yl-deco-saut #yl-appel{opacity:inherit}
#yl-arbre.mural svg,#yl-arbre.mural.sombre svg,#yl-appel svg{filter:none!important}
#yl-arbre.mural .a-tronc,#yl-arbre.mural .a-br{stroke:color-mix(in srgb,var(--yl-mur,#E8E4DD) 84%,#000)!important}
#yl-appel .p-plaque{stroke:rgba(0,0,0,.2)}
#yl-appel .p-btn{stroke:rgba(0,0,0,.24)}
/* 13 oct. 2026 (ab) : socle de l'etagere plein, dans la teinte du mur, comme le meuble vinyle (il ne flotte plus) */
#yl-meuble .r-socle{fill:color-mix(in srgb,var(--yl-mur,#E8E4DD) 90%,#000)!important}
#yl-meuble:not(.ouvert):hover .r-socle{fill:color-mix(in srgb,var(--yl-mur,#E8E4DD) 86%,#000)!important}
#yl-meuble .r-filet{fill:rgba(255,255,255,.45)!important}
#yl-meuble .m-noir,#yl-meuble.ouvert .m-noir{fill:color-mix(in srgb,var(--yl-mur,#E8E4DD) 78%,#000)!important}
#yl-meuble.sombre .r-socle{fill:color-mix(in srgb,var(--yl-mur,#2A2D32) 90%,#fff)!important}
#yl-meuble.sombre:not(.ouvert):hover .r-socle{fill:color-mix(in srgb,var(--yl-mur,#2A2D32) 84%,#fff)!important}
#yl-meuble.sombre .r-filet{fill:rgba(255,255,255,.18)!important}
#yl-meuble.sombre .m-noir,#yl-meuble.sombre.ouvert .m-noir{fill:color-mix(in srgb,var(--yl-mur,#2A2D32) 70%,#000)!important}
#yl-meuble::before{left:-75%;right:-75%;top:-22%;height:105%}
#yl-vinyle::before{left:-25%;right:-25%;top:-120%;height:200%}
/* 13 oct. 2026 (af) : halos d appoint sur les meubles retires (pas beaux) */
#yl-meuble::before,#yl-vinyle::before{content:"";position:absolute;z-index:-1;pointer-events:none;
  background:url(halo-dither2.png) 0 0/256px 256px,rgba(var(--yl-spot,255,226,180),calc(var(--yl-spot-a,.085)*.55));
  -webkit-mask-image:radial-gradient(ellipse 50% 50% at 50% 36%,#000 0,rgba(0,0,0,.84) 16%,rgba(0,0,0,.57) 32%,rgba(0,0,0,.33) 48%,rgba(0,0,0,.155) 64%,rgba(0,0,0,.052) 80%,rgba(0,0,0,.008) 95%,transparent 100%);
  mask-image:radial-gradient(ellipse 50% 50% at 50% 36%,#000 0,rgba(0,0,0,.84) 16%,rgba(0,0,0,.57) 32%,rgba(0,0,0,.33) 48%,rgba(0,0,0,.155) 64%,rgba(0,0,0,.052) 80%,rgba(0,0,0,.008) 95%,transparent 100%);display:none!important}
#yl-garde,#yl-panneau,#yl-chaise{position:fixed;left:0;z-index:58;opacity:0;pointer-events:none;transition:opacity .8s ease!important;will-change:transform,opacity}
#yl-garde{bottom:var(--yl-gb,6vh);width:min(64vh,58vw);height:7vh;transform:translate3d(var(--yl-gx,30vw),0,0)}
#yl-garde svg{display:block;width:100%;height:100%}
#yl-garde .g-cordon{fill:none;stroke:color-mix(in srgb,var(--yl-uni,#8A8178) 55%,#3A2A24);stroke-linecap:round;vector-effect:non-scaling-stroke}
body.yl-e0 #yl-garde .g-cordon{stroke:#8E8478}
#yl-garde .g-pot,#yl-garde .g-tete,#yl-garde .g-pied{fill:#6E6A64}
#yl-panneau{bottom:var(--yl-tb,62vh);width:22vh;transform:translate3d(var(--yl-tx,4vw),0,0);font-family:"Cormorant Garamond",Georgia,serif;color:color-mix(in srgb,var(--yl-uni,#E8E4DD) 62%,#000);text-shadow:0 1px 0 rgba(255,255,255,.35),0 -1px 1px rgba(0,0,0,.18)}
body.yl-e0 #yl-panneau{color:rgba(0,0,0,.38)}
html.nuit #yl-panneau,body.nuit #yl-panneau{text-shadow:none}
#yl-panneau b{display:block;font:500 1.05vh/1.3 "Cormorant Garamond",Georgia,serif;letter-spacing:.32em;text-transform:uppercase}
#yl-panneau i{display:block;font:italic 400 2.1vh/1.2 "Cormorant Garamond",Georgia,serif;margin:.4vh 0 .9vh}
#yl-panneau span{display:block;font:400 1.25vh/1.5 "Cormorant Garamond",Georgia,serif;letter-spacing:.02em}
#yl-chaise{bottom:var(--yl-cb,10vh);width:4.8vh;height:8.4vh;transform:translate3d(var(--yl-cx,80vw),0,0)}
#yl-chaise svg{display:block;width:100%;height:100%}
#yl-chaise rect{fill:color-mix(in srgb,var(--yl-uni,#E8E4DD) 70%,#000)}
body.yl-e0 #yl-chaise rect{fill:#9C958B}
#yl-garde.on,#yl-panneau.on,#yl-chaise.on{opacity:1}
#yl-chaise.loin{opacity:0!important}
@media (max-width:760px){
#yl-panneau,#yl-chaise{display:none}}
/* (ag) potelets fins (dessines en HTML pour ne pas etre etires) */
#yl-garde .g-pot{position:absolute;top:8%;bottom:0;width:.45vh;background:#8A847C;border-radius:.3vh}
#yl-garde .g-pot::before{content:"";position:absolute;left:-.25vh;right:-.25vh;top:-.5vh;height:.9vh;border-radius:.4vh;background:#8A847C}
#yl-garde .g-pot::after{content:"";position:absolute;left:-.9vh;right:-.9vh;bottom:0;height:.45vh;border-radius:.3vh;background:#8A847C}
#yl-garde .g-pot.g{left:1.8%}
#yl-garde .g-pot.d{right:1.8%}
#yl-garde svg{position:absolute;inset:0}
#yl-garde .g-cordon{stroke-width:1.6!important}
html[data-etage] body:not(.yl-e0) #yl-garde .g-pot,html[data-etage] body:not(.yl-e0) #yl-garde .g-pot::before,html[data-etage] body:not(.yl-e0) #yl-garde .g-pot::after{background:color-mix(in srgb,var(--yl-uni,#23272A) 60%,#9A948C)}
/* (ag) salles sombres : panneau grave en clair, chaise et cordon un ton au-dessus du mur */
#yl-panneau.sombre{color:color-mix(in srgb,var(--yl-uni,#2A2D32) 40%,#F3F1EC);text-shadow:0 -1px 0 rgba(0,0,0,.55),0 1px 0 rgba(255,255,255,.06)}
#yl-chaise.sombre rect{fill:color-mix(in srgb,var(--yl-uni,#2A2D32) 72%,#fff)}
#yl-garde.sombre .g-cordon{stroke:color-mix(in srgb,var(--yl-uni,#2A2D32) 55%,#B08A70)!important}
#yl-garde .g-hit{position:absolute;left:4%;right:4%;top:0;height:70%;cursor:pointer;pointer-events:none}
#yl-garde.on .g-hit{pointer-events:auto}
#yl-garde .g-hit:focus{outline:none}
#yl-garde .g-cordon{transition:stroke .3s ease}
#yl-garde.survol .g-cordon{stroke:var(--rouge,#E5142C)!important}
#yl-garde.decroche .g-cordon{stroke:inherit}
body.yl-immersion #yl-garde,body.yl-immersion #yl-meuble,body.yl-immersion #yl-vinyle,body.yl-immersion #yl-arbre,body.yl-immersion #yl-appel,body.yl-immersion #yl-panneau,body.yl-immersion #yl-chaise{opacity:0!important;pointer-events:none!important}
#yl-chaise,#yl-fantome,#yl-fantome-e{display:none!important}
#yl-panneau{text-align:center}
@media (max-width:760px){
#yl-arbre.mural{width:19.5vh!important;height:45.5vh!important}}
#yl-arbre.mural{width:27.2vh!important;height:63.4vh!important}
#yl-arbre.mural .a-saison{top:auto!important;bottom:calc(70% + 8.85vh)!important}
html.yl-sol-nb #yl-sol-e,html.yl-sol-nb #yl-bancs-e{--yl-uni:#4A4642}
/* lecteur du meuble vinyle : icones nettes (lecture / pause / stop) */
#yl-vinyle .v-ligne .v-pp::before,#yl-vinyle .v-ligne .v-stop::before,#yl-vinyle.pret .v-ligne .v-pp::before{display:none!important}
#yl-vinyle .v-ligne button svg{position:absolute;left:50%;top:50%;width:62%;height:62%;transform:translate(-50%,-50%);fill:#F3F1EC}
#yl-vinyle .v-pp .i-lire{display:none}
#yl-vinyle.pret .v-pp .i-lire{display:block}
#yl-vinyle.pret .v-pp .i-pause{display:none}
/* 14 oct. 2026 (ar) : a l'arrivee dans un etage, le decor ne glisse pas — il attend que la camera soit posee puis apparait en fondu */
html.yl-deco-att #yl-meuble:not(.yl-copie),html.yl-deco-att #yl-arbre:not(.yl-copie),html.yl-deco-att #yl-vinyle:not(.yl-copie),html.yl-deco-att #yl-appel:not(.yl-copie),html.yl-deco-att #yl-garde:not(.yl-copie),html.yl-deco-att #yl-panneau:not(.yl-copie){opacity:0!important;transition:none!important}
html.yl-deco-fondu #yl-meuble,html.yl-deco-fondu #yl-arbre,html.yl-deco-fondu #yl-vinyle,html.yl-deco-fondu #yl-appel,html.yl-deco-fondu #yl-garde,html.yl-deco-fondu #yl-panneau{transition:opacity .9s ease!important}
/* 14 oct. 2026 (as) : pendant l'attente et le fondu, le decor ne glisse pas (pas de transition de position) */
html.yl-deco-att #yl-meuble,html.yl-deco-att #yl-arbre,html.yl-deco-att #yl-vinyle,html.yl-deco-att #yl-appel,html.yl-deco-att #yl-garde,html.yl-deco-att #yl-panneau,html.yl-deco-att #yl-meuble svg{transition:none!important}
html.yl-deco-fondu #yl-meuble svg{transition:none!important}
/* 14 oct. 2026 (au) : traveling fluide — le decor est place a chaque image, sans transition de position ; pas de verre depoli tant que rien ne joue ou que l'on se deplace */
#yl-meuble,#yl-arbre,#yl-appel,#yl-vinyle,#yl-garde,#yl-panneau{transition-property:opacity!important}
#yl-vinyle:not(.lit) .v-porte,html.yl-bouge #yl-vinyle .v-porte,#yl-vinyle.yl-copie .v-porte{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
html.yl-bouge #yl-vinyle .v-porte{background-color:rgba(40,38,36,.55)!important}
/* 14 oct. 2026 (av) : le cordon devant l'oeuvre est retire (trop) */
#yl-garde,#yl-garde.yl-copie{display:none!important}
/* 14 oct. 2026 (aw) : sol en beton cire a l'accueil et a tous les etages — teinte du mur, grain de beton tres doux, reflet de la lumiere du tableau */
#yl-sol-e::before,html.yl-et-design #yl-sol-e::before,html.yl-et-blanc #yl-sol-e::before{
  background-color:var(--yl-beton)!important;
  background-image:linear-gradient(rgba(0,0,0,.45),rgba(0,0,0,0) 2.5%),radial-gradient(ellipse 26% 8% at 50% 0,rgba(255,248,236,.09),transparent 70%),radial-gradient(ellipse 80% 22% at 50% 0,rgba(255,255,255,.04),transparent 70%),url(beton.jpg)!important;
  background-size:100% 100%,100% 100%,100% 100%,120vh 120vh!important;background-repeat:no-repeat,no-repeat,no-repeat,repeat!important;
  background-blend-mode:normal,normal,normal,overlay!important}
#yl-sol-e,html.yl-et-design #yl-sol-e,html.yl-et-blanc #yl-sol-e{background:var(--yl-beton)!important}
#yl-sol-e{--yl-beton:color-mix(in srgb,color-mix(in srgb,var(--yl-uni,#23272A) 75%,#6F6B66) 70%,#000)}
html.yl-et-design #yl-sol-e{--yl-beton:#4E4A45}
/* (aw) beton cire clair (murs blancs) : ombre de pied de mur legere, grain discret */
html.yl-et-blanc #yl-sol-e::before{background-image:linear-gradient(rgba(0,0,0,.12),rgba(0,0,0,0) 2%),radial-gradient(ellipse 26% 8% at 50% 0,rgba(255,255,255,.35),transparent 70%),radial-gradient(ellipse 80% 22% at 50% 0,rgba(255,255,255,.12),transparent 70%),url(beton.jpg)!important;background-blend-mode:normal,normal,normal,soft-light!important}
html.yl-et-blanc #yl-sol-e{--yl-beton:#D6D3CD!important}
@media (max-width:760px){
#yl-arbre,#yl-arbre.mural{display:none!important}
#yl-vinyle{width:16vh;height:12vh}}
/* (suite) panneau de salle et saison de l'arbre : lisibles sur mur clair comme sur mur sombre */
html body #yl-panneau:not(.sombre){color:rgba(0,0,0,.6)}
html body.yl-salle-claire .a-saison{color:#6A6661}
html body:not(.yl-salle-claire) .a-saison{color:#A39B92}
html body .a-saison span{opacity:1}

/* 28 oct. 2026 (Fabien) : retour aux meubles realistes, en vraies matieres (bois) — le ton sur ton du 21 oct. est garde ci-dessous mais desactive */
@media not all {
/* 21 oct. 2026 (valide par Fabien, tous les etages) : les meubles se fondent dans le mur — ton sur ton (aplat a peine plus sombre que le mur, ou plus clair sur un mur sombre),
   filet fin pour le contour, relief tres leger ; les feuilles de l'arbre ne prennent leur couleur de saison qu'au survol. Le banc et le bouton d'appel ne changent pas. */
:is(#yl-meuble#yl-meuble,#yl-arbre#yl-arbre,#yl-vinyle#yl-vinyle,#yl-chaise#yl-chaise){--yl-ton:rgba(0,0,0,.045);--yl-ton2:rgba(0,0,0,.075);--yl-filet:rgba(0,0,0,.15);--yl-filet-fort:rgba(0,0,0,.5);--yl-txt:rgba(0,0,0,.35);--yl-relief:rgba(255,255,255,.35)}
:is(#yl-meuble#yl-meuble.sombre,#yl-arbre#yl-arbre.sombre,#yl-vinyle#yl-vinyle.sombre,#yl-chaise#yl-chaise.sombre),body.yl-ss :is(#yl-meuble#yl-meuble,#yl-arbre#yl-arbre,#yl-vinyle#yl-vinyle,#yl-chaise#yl-chaise),body.yl-in :is(#yl-meuble#yl-meuble,#yl-arbre#yl-arbre,#yl-vinyle#yl-vinyle,#yl-chaise#yl-chaise){--yl-ton:rgba(255,255,255,.045);--yl-ton2:rgba(255,255,255,.075);--yl-filet:rgba(236,232,224,.16);--yl-filet-fort:rgba(243,241,236,.55);--yl-txt:rgba(236,232,224,.3);--yl-relief:rgba(0,0,0,.25)}
:is(#yl-meuble#yl-meuble,#yl-arbre#yl-arbre,#yl-vinyle#yl-vinyle,#yl-chaise#yl-chaise) svg{filter:drop-shadow(0 1px 1px var(--yl-relief))!important}
:is(#yl-meuble#yl-meuble,#yl-arbre#yl-arbre,#yl-vinyle#yl-vinyle,#yl-chaise#yl-chaise) svg :is(rect,path,circle,ellipse,polygon,polyline,line){fill:var(--yl-ton)!important;stroke:var(--yl-filet)!important;stroke-width:1px!important;vector-effect:non-scaling-stroke;stroke-linejoin:round;stroke-linecap:round}
:is(#yl-arbre#yl-arbre,#yl-meuble#yl-meuble,#yl-vinyle#yl-vinyle) svg :is(.a-tronc,.a-br,.m-arc,.r-ligne,.r-q){fill:none!important}
#yl-arbre#yl-arbre svg .a-f,#yl-meuble#yl-meuble svg :is(.r-plan,.r-objet,.r-papier,.r-carte){fill:var(--yl-ton2)!important}
:is(#yl-meuble#yl-meuble,#yl-vinyle#yl-vinyle) svg text{fill:var(--yl-txt)!important;stroke:none!important}
#yl-meuble#yl-meuble :is(.r-ombre,.r-chant,.m-noir,.r-filet,.r-grille),#yl-arbre#yl-arbre .a-tombe{display:none!important}
#yl-meuble#yl-meuble .m-hit{stroke:none!important;fill:transparent!important;pointer-events:all}
#yl-meuble#yl-meuble .m-o:hover :is(rect,path,circle):not(.m-hit),#yl-meuble#yl-meuble .m-o:focus-visible :is(rect,path,circle):not(.m-hit){stroke:var(--yl-filet-fort)!important}
#yl-arbre#yl-arbre svg .a-f{transition:fill .9s ease,stroke .9s ease}
#yl-arbre#yl-arbre:hover svg .a-f{fill:var(--c)!important;stroke:transparent!important}
#yl-arbre#yl-arbre.on svg :is(.a-f,.a-tronc,.a-br){pointer-events:all;cursor:default}
}
/* 21 oct. 2026 : la chaise se cache et reapparait avec le reste du decor a l'arrivee dans un etage (elle restait visible et se deplacait) */
html.yl-deco-att #yl-chaise:not(.yl-copie){opacity:0!important;transition:none!important}
html.yl-deco-fondu #yl-chaise{transition:opacity .9s ease!important}

/* 29 oct. 2026 (Fabien) : essai a l'accueil — etagere et meuble vinyle replies (seul le socle), une petite fleche pour les deplier */
.yl-fleche{display:none;position:absolute;left:50%;width:26px;height:26px;margin-left:-13px;padding:0;border:0;background:none;cursor:pointer;pointer-events:auto;color:#4A443E;opacity:.55;animation:ylFleche 2.4s ease-in-out infinite}
.yl-fleche:hover,.yl-fleche:focus-visible{opacity:1}
.yl-fleche svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
#yl-meuble.sombre .yl-fleche{color:#F3F1EC}
body:not(.yl-nf) #yl-meuble.on:not(.ouvert) .yl-fleche,body:not(.yl-nf) #yl-vinyle.on.plie .yl-fleche{display:block}
#yl-meuble .yl-fleche{bottom:calc(8.6% + 8px)}
#yl-vinyle .yl-fleche{bottom:calc(10% + 8px)}
@keyframes ylFleche{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@media (prefers-reduced-motion:reduce){.yl-fleche{animation:none}}
#yl-vinyle svg{transition:clip-path .9s cubic-bezier(.65,0,.35,1)}
body:not(.yl-nf) #yl-vinyle.plie svg{clip-path:inset(90% 0 0 0)}
body:not(.yl-nf) #yl-vinyle.on .v-plinthe{pointer-events:auto;cursor:pointer}
body:not(.yl-nf) #yl-vinyle.plie .v-platine{pointer-events:none}
body:not(.yl-nf) #yl-vinyle .a-saison{transition:opacity .6s ease}
body:not(.yl-nf) #yl-vinyle.plie .a-saison{opacity:0}
/* (suite) la fleche ne doit pas heriter du decoupage ni des aplats des meubles */
#yl-meuble#yl-meuble .yl-fleche svg,#yl-vinyle#yl-vinyle .yl-fleche svg{clip-path:none!important;filter:none!important;overflow:visible}
#yl-meuble#yl-meuble .yl-fleche svg path,#yl-vinyle#yl-vinyle .yl-fleche svg path{fill:none!important;stroke:currentColor!important;stroke-width:1.4px!important;vector-effect:none}
/* 29 oct. 2026 (b) : a l'accueil, la plante se replie avec le meuble vinyle (il ne reste que le socle et la fleche) */
#yl-arbre{transition:clip-path .9s cubic-bezier(.65,0,.35,1),opacity .6s ease}
body.yl-vplie:not(.yl-nf) #yl-arbre{clip-path:inset(100% 0 0 0);pointer-events:none!important}
body.yl-vplie:not(.yl-nf) #yl-arbre .a-saison{opacity:0}
/* 29 oct. 2026 (c) : replie, le meuble vinyle ne montre pas non plus le lecteur (portes, titre, commandes) */
body:not(.yl-nf) #yl-vinyle.plie .v-portes{display:none!important}

/* 29 oct. 2026 (Fabien et Tiphaine) : meuble vinyle replie : on ne voit que la plinthe, sans le fil du caisson qui depassait */
body:not(.yl-nf) #yl-vinyle.plie svg{clip-path:inset(91% 8.75% 0 8.75%)}
/* 29 oct. 2026 (Fabien et Tiphaine) : on retire les plantes pour l'instant (arbre, branche du vase, immortelle, ikebana) — les saisons seront evoquees autrement */
#yl-arbre,#yl-immo,#yl-iki,#yl-vinyle .v-vase,#yl-vinyle .v-branche,#yl-vinyle .v-f,#yl-vinyle .a-saison{display:none!important}
html body #yl-arbre#yl-arbre,html body #yl-immo#yl-immo,html body #yl-iki#yl-iki{display:none!important}

/* 29 oct. 2026 (Fabien) : meuble vinyle replie en perspective — dessus de la plinthe visible, meuble pose un peu devant le mur */
#yl-vinyle .v-pl-dessus{fill:color-mix(in srgb,var(--yl-mur,#E8E4DD) 72%,#fff);transition:opacity .5s ease}
#yl-vinyle .v-pl-arete{fill:rgba(0,0,0,.1);transition:opacity .5s ease}
#yl-vinyle .v-pl-pied{fill:rgba(0,0,0,.14);transition:opacity .5s ease}
#yl-vinyle:not(.plie) :is(.v-pl-dessus,.v-pl-arete,.v-pl-pied){opacity:0}
body:not(.yl-nf) #yl-vinyle#yl-vinyle.plie svg{clip-path:inset(87.8% 8.75% 0 8.75%)}

/* 29 oct. 2026 (Fabien) : l'etagere repliee en perspective, comme le meuble vinyle — dessus du socle visible, posee un peu devant le mur */
#yl-meuble .r-pl-dessus{fill:color-mix(in srgb,var(--yl-mur,#E8E4DD) 72%,#fff);transition:opacity .5s ease}
#yl-meuble .r-pl-arete{fill:rgba(0,0,0,.1);transition:opacity .5s ease}
#yl-meuble .r-pl-pied{fill:rgba(0,0,0,.14);transition:opacity .5s ease}
#yl-meuble.ouvert :is(.r-pl-dessus,.r-pl-arete,.r-pl-pied){opacity:0}
#yl-meuble#yl-meuble:not(.ouvert) svg{clip-path:inset(91.6% 0 0 0)}

/* 29 oct. 2026 (Fabien) : etage Design, un parquet en chene massif, mat — longues lames, fil du bois, teintes chaudes variees, aucun reflet */
html.yl-et-design #yl-sol-e{background:#8A6440!important}
html.yl-et-design #yl-sol-e::before{background-color:#A7794C!important;
  background-image:linear-gradient(rgba(0,0,0,.38),rgba(0,0,0,0) 2.2%),
    repeating-linear-gradient(90deg,rgba(52,32,15,.55) 0 1.6px,transparent 1.6px 150px),
    repeating-linear-gradient(90deg,rgba(80,52,26,.10) 0 1px,transparent 1px 6px,rgba(255,226,180,.05) 6px 7px,transparent 7px 11px,rgba(70,44,20,.08) 11px 12px,transparent 12px 17px),
    repeating-linear-gradient(0deg,rgba(0,0,0,.05) 0,rgba(255,236,206,.03) 420px,rgba(0,0,0,.05) 840px),
    repeating-linear-gradient(90deg,#AE7F50 0 150px,#9F7145 150px 300px,#B88A5A 300px 450px,#A57749 450px 600px,#B2834F 600px 750px,#9A6D42 750px 900px,#AB7C4C 900px 1050px)!important;
  background-size:100% 100%,auto,auto,auto,auto!important;background-repeat:no-repeat,repeat,repeat,repeat,repeat!important;background-blend-mode:normal!important}

/* 29 oct. 2026 (Fabien) : sur l'ecriteau de chaque etage, plus de titre en haut ; une fleche sous le grand titre ouvre la mosaique */
html.yl-ecr #yl-titre-e{opacity:0!important;pointer-events:none!important}
.yl-ecr-fl{display:block;margin:18px auto 0;width:34px;height:34px;padding:0;border:0;background:none;color:inherit;opacity:.55;cursor:pointer;pointer-events:auto;animation:ylEcrFl 2.6s ease-in-out infinite}
.yl-ecr-fl:hover,.yl-ecr-fl:focus-visible{opacity:1}
.yl-ecr-fl svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}
@keyframes ylEcrFl{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}
@media (prefers-reduced-motion:reduce){.yl-ecr-fl{animation:none}}

/* 29 oct. 2026 (Fabien) : etages 5 et 6, l'ascenseur reste la devant chaque oeuvre (le decor, lui, attend) */
html.yl-deco-att #yl-appel.yl-asc-in,html #yl-appel.yl-asc-in.on{opacity:1!important;pointer-events:auto!important;transition:opacity .5s ease!important}
body.yl-in:not(.yl-in6) #yl-appel .p-plaque{fill:rgba(255,255,255,.03);stroke:rgba(255,255,255,.3)}
body.yl-in:not(.yl-in6) #yl-appel .p-btn{fill:rgba(255,255,255,.04);stroke:rgba(255,255,255,.38)}
body.yl-in:not(.yl-in6) #yl-appel .p-fl{fill:rgba(255,255,255,.5)}
body.yl-in:not(.yl-in6) #yl-appel:hover .p-btn{stroke:rgba(255,255,255,.7)}
/* 31 oct. 2026 (Fabien) : parquet a tous les etages (et au -1), teinte de l'ambiance de chaque oeuvre, en fondu pendant le travelling ; les lames (calque transparent) fuient vers le fond. Les installations gardent leurs sols. */
html.yl-sol-nb #yl-sol-e,html.yl-sol-nb #yl-bancs-e{--yl-uni:inherit}
#yl-sol-e{--yl-pq:color-mix(in srgb,color-mix(in srgb,var(--yl-uni,#23272A) 80%,#5E4029) 74%,#000)}
html.yl-et-design #yl-sol-e{--yl-pq:#7A5A3A}
html.yl-et-blanc #yl-sol-e{--yl-pq:#C2B29E}
body.yl-ss #yl-sol-e{--yl-pq:#2E241C}
html body:not(.yl-in) #yl-sol-e{background:var(--yl-pq)!important;transition:background-color .9s ease!important}
html body:not(.yl-in) #yl-sol-e::before{background-color:transparent!important;
  background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,0) 2.5%),radial-gradient(ellipse 26% 8% at 50% 0,rgba(255,240,215,.1),transparent 70%),
  repeating-linear-gradient(90deg,rgba(0,0,0,.34) 0 1.5px,transparent 1.5px 40px),
  repeating-linear-gradient(90deg,transparent 0 40px,rgba(255,255,255,.035) 40px 80px,rgba(0,0,0,.06) 80px 120px,rgba(255,255,255,.02) 120px 160px,rgba(0,0,0,.05) 160px 200px)!important;
  background-size:100% 100%,100% 100%,auto,auto!important;background-repeat:no-repeat,no-repeat,repeat,repeat!important;background-blend-mode:normal!important}
html.yl-et-blanc body:not(.yl-in) #yl-sol-e::before{background-image:linear-gradient(rgba(0,0,0,.14),rgba(0,0,0,0) 2%),radial-gradient(ellipse 26% 8% at 50% 0,rgba(255,255,255,.3),transparent 70%),
  repeating-linear-gradient(90deg,rgba(90,70,50,.3) 0 1.5px,transparent 1.5px 40px),
  repeating-linear-gradient(90deg,transparent 0 40px,rgba(255,255,255,.06) 40px 80px,rgba(0,0,0,.035) 80px 120px,rgba(255,255,255,.04) 120px 160px,rgba(0,0,0,.03) 160px 200px)!important}
/* les bancs et les meubles changent de teinte en fondu, comme le sol */
#yl-bancs-e .yl-banc-e :is(.d,.f),:is(#yl-meuble,#yl-vinyle) .yl-boite svg :is(.d,.f){transition:fill .9s ease}
/* 31 oct. 2026 (Fabien : « ca saccade ») : pendant le travelling, les bancs s'effacent puis reviennent en fondu a l'arrivee, au lieu de suivre la camera par a-coups */
#yl-bancs-e{transition:opacity .7s ease .15s}
html.yl-bouge #yl-bancs-e{opacity:0!important;transition:opacity .2s ease!important}
/* 31 oct. 2026 (Fabien : « les meubles arrivent en retard ») : le decor revient plus vite a l'arret de la camera */
html.yl-deco-fondu :is(#yl-meuble,#yl-arbre,#yl-vinyle,#yl-appel,#yl-panneau){transition:opacity .45s ease!important}
#yl-bancs-e{transition:opacity .45s ease!important}
/* 31 oct. 2026 (Fabien) : lames de la meme taille qu'a l'etage Installation (~120 px ; 140 px ici pour que le motif tombe juste sur le pas de 280 px
   du sol qui suit la camera — avant, un motif de 200 px sautait de 80 px a chaque tour : une saccade du sol pendant le travelling) */
html body:not(.yl-in) #yl-sol-e::before{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,0) 2.5%),radial-gradient(ellipse 26% 8% at 50% 0,rgba(255,240,215,.1),transparent 70%),
  repeating-linear-gradient(90deg,rgba(0,0,0,.36) 0 2px,transparent 2px 140px),
  repeating-linear-gradient(90deg,transparent 0 140px,rgba(255,255,255,.04) 140px 280px),
  repeating-linear-gradient(0deg,rgba(0,0,0,.26) 0 2px,transparent 2px 900px)!important;
  background-size:100% 100%,100% 100%,auto,auto,auto!important;background-repeat:no-repeat,no-repeat,repeat,repeat,repeat!important}
html.yl-et-blanc body:not(.yl-in) #yl-sol-e::before{background-image:linear-gradient(rgba(0,0,0,.14),rgba(0,0,0,0) 2%),radial-gradient(ellipse 26% 8% at 50% 0,rgba(255,255,255,.3),transparent 70%),
  repeating-linear-gradient(90deg,rgba(90,70,50,.32) 0 2px,transparent 2px 140px),
  repeating-linear-gradient(90deg,transparent 0 140px,rgba(255,255,255,.06) 140px 280px),
  repeating-linear-gradient(0deg,rgba(90,70,50,.22) 0 2px,transparent 2px 900px)!important}
