/* YORU — système commun des maquettes validées du 05/10 (référence : docs/maquettes-inspire/) :
 * typo (Marcellus + Cormorant italique), apparitions .fx/.fxc, fonds animés, néons cyan + rose, sections de l’accueil restaurant */
:root{--rose:#ff29a8;--italique:"Cormorant Garamond",serif}
/* sans JS : tout reste visible */
html:not(.js) .fx,html:not(.js) .fxc{opacity:1!important;transform:none!important;clip-path:none!important}
html:not(.js) .fxc img,html:not(.js) .cu-rang .fx img{transform:none!important}
html:not(.js) .st .w,html:not(.js) .st .neon{opacity:1!important;transform:none!important}

/* Maquette inspirée du site en ligne, DA nuit / bleu / néon cyan */
:root{--italique:"Cormorant Garamond",serif}
body{background:var(--nuit)}
main{background:var(--nuit);color:#fff}
main em{font-family:var(--italique);font-style:italic;font-weight:400}
main h2{font-size:clamp(44px,4.8vw,72px);line-height:1.02}
main h2 em{color:var(--glacier)}
.lbl{display:block;font-size:12px;letter-spacing:.32em;text-transform:uppercase;color:#b9cde3;margin-bottom:26px}
.lbl b{color:var(--elec);font-weight:700}
.lbl--centre{text-align:center}
main p{color:#c9d6e6}
/* hero */
.h-yoru{position:relative;height:100vh;height:100svh;min-height:640px;overflow:hidden;display:grid;place-items:center;text-align:center}
.h-yoru .vues{position:absolute;inset:0}
.h-yoru .vues img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.h-voile{position:absolute;inset:0;background:radial-gradient(ellipse at center,#03070f55,#03070fd9 75%),linear-gradient(#03070f99,#03070f00 30%,#03070fcc)}
.h-centre{position:relative;z-index:2}
.h-mot{display:flex;justify-content:center;gap:.12em;font-family:var(--display);font-weight:400;font-size:clamp(110px,17vw,260px);line-height:.9;letter-spacing:.02em;text-shadow:0 0 60px #3fd7ff40}
.h-mot span{display:inline-block;animation:monte 1.2s cubic-bezier(.2,.7,.2,1) both}.h-mot span:nth-child(2){animation-delay:.08s}.h-mot span:nth-child(3){animation-delay:.16s}.h-mot span:nth-child(4){animation-delay:.24s}
@keyframes monte{from{opacity:0;transform:translateY(40px)}}
.h-centre p{margin:24px auto 0;font-size:16px;letter-spacing:.06em;color:#dbe7f3}.h-centre p em{font-size:22px;letter-spacing:0}
.h-actions{display:flex;gap:14px;justify-content:center;margin-top:34px;flex-wrap:wrap}
.h-cote{position:absolute;top:50%;z-index:2;font-size:11px;letter-spacing:.3em;color:#ffffff99;writing-mode:vertical-rl}
.h-cote--g{left:28px;transform:translateY(-50%) rotate(180deg)}.h-cote--d{right:28px;transform:translateY(-50%)}
.badge{position:absolute;right:6vw;bottom:8vh;z-index:3;width:132px;height:132px;display:grid;place-items:center}
.badge svg{position:absolute;inset:0;width:100%;height:100%;animation:tourne 18s linear infinite;fill:#dbe7f3;font-size:12.5px;letter-spacing:3px;font-weight:700}
.badge span{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;font-family:var(--kanji);font-size:17px;line-height:1.05;color:var(--nuit);background:var(--elec);box-shadow:0 0 30px #3fd7ff88}
@keyframes tourne{to{transform:rotate(360deg)}}
.h-scroll{position:absolute;left:50%;bottom:28px;transform:translateX(-50%);z-index:2;font-size:10px;letter-spacing:.4em;text-transform:uppercase;color:#ffffffa0;display:flex;flex-direction:column;align-items:center;gap:10px}
.h-scroll i{width:1px;height:40px;background:linear-gradient(var(--elec),transparent)}
/* statement */
.statement{padding:150px 0 0;overflow:hidden}
.st{max-width:var(--wrap);margin:0 auto;padding:0 40px;font-size:clamp(64px,9.5vw,150px);line-height:.98;color:#fff}
.st em{font-family:var(--italique);font-style:italic}
.st .st-or{color:var(--glacier)}
.neon{font-family:var(--kanji);font-style:normal;color:var(--elec);text-shadow:0 0 18px #3fd7ff,0 0 60px #3fd7ffaa;font-size:.9em}
.defile2{margin-top:120px;border-top:1px solid #ffffff1f;border-bottom:1px solid #ffffff1f;padding:22px 0;overflow:hidden}
.defile2>div{display:flex;gap:36px;width:max-content;animation:defile2 40s linear infinite;font-family:var(--italique);font-style:italic;font-size:34px;color:#dbe7f3;white-space:nowrap}
.defile2 i{font-style:normal;color:var(--elec);font-size:18px;align-self:center}
@keyframes defile2{to{transform:translateX(-50%)}}
/* expérience */
.exp{padding:150px 0}
.exp-grille{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center}
.exp-texte p{margin-top:22px;max-width:50ch}.exp-texte p em{color:#fff;font-size:1.1em}
.chiffres{display:flex;gap:56px;margin-top:48px;padding-top:30px;border-top:1px solid #ffffff1f}
.chiffres dt{font-family:var(--display);font-size:40px;color:var(--elec)}
.chiffres dd{font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:#b9cde3;margin-top:6px}
.collage{position:relative;height:640px}
.collage figure{position:absolute;margin:0;overflow:hidden;border-radius:4px;box-shadow:0 40px 80px #000a}
.collage img{width:100%;height:100%;object-fit:cover}
.c1{left:6%;top:0;width:58%;height:68%}
.c2{right:0;top:30%;width:44%;height:42%;outline:1px solid #3fd7ff40;outline-offset:8px}
.c3{left:0;bottom:0;width:46%;height:36%}
.c-jp{position:absolute;right:4%;top:2%;writing-mode:vertical-rl;font-family:var(--kanji);color:var(--elec);letter-spacing:.4em;font-size:15px}
/* bande */
.bande{overflow:hidden;padding:6px 0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.bande-piste{display:flex;gap:6px;width:max-content;animation:ruban 70s linear infinite}
@keyframes ruban{to{transform:translateX(-50%)}}
.bande figure{margin:0;width:min(22vw,320px);aspect-ratio:3/4;overflow:hidden;flex:none}
.bande img{width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.2,.7,.2,1),filter .6s;filter:brightness(.8)}
.bande figure:hover img{transform:scale(1.07);filter:none}
/* cuisine */
.cuisine{padding:150px 0}
.cu-tete{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:60px}
.fleches{display:flex;gap:10px}.fleches button{width:54px;height:54px;border-radius:50%;border:1px solid #ffffff59;background:transparent;color:#fff;font-size:20px;cursor:pointer;transition:.3s}.fleches button:hover{background:#fff;color:var(--nuit)}
.cu-rang{display:flex;gap:34px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:0 max(40px,calc((100vw - 84rem)/2 + 40px)) 10px;scroll-padding-inline:max(40px,calc((100vw - 84rem)/2 + 40px));scrollbar-width:none}
.cu-rang::-webkit-scrollbar{display:none}
.cu-rang article{flex:0 0 380px;scroll-snap-align:start}
.cu-rang figure{position:relative;margin:0 0 26px;aspect-ratio:4/5;overflow:hidden;border-radius:4px}
.cu-rang img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.cu-rang article:hover img{transform:scale(1.05)}
.cu-k{position:absolute;right:18px;bottom:10px;font-family:var(--kanji);font-size:64px;color:#ffffffd9;text-shadow:0 4px 30px #000}
.cu-rang .lbl{margin-bottom:10px;color:var(--elec)}
.cu-rang h3{font-family:var(--italique);font-style:italic;font-size:36px;font-weight:400}
.cu-rang p{margin-top:10px;font-size:16px}
/* carte */
.menu-t{padding:150px 0;background:var(--abysse)}
.mt-tete{margin-bottom:50px}
.mt-liste{list-style:none;border-top:1px solid #ffffff24;margin-bottom:46px}
.mt-liste a{display:grid;grid-template-columns:76px 1fr auto 40px;align-items:center;gap:26px;padding:16px 0;border-bottom:1px solid #ffffff24;transition:padding .4s,background .4s}
.mt-liste a:hover{padding-left:14px;background:#ffffff08}
.mt-liste img{width:76px;height:56px;object-fit:cover;border-radius:3px}
.mt-liste span{font-family:var(--italique);font-style:italic;font-size:30px}
.mt-liste small{font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:#b9cde3}
.mt-liste i{font-style:normal;color:var(--elec);font-size:20px}
/* bar */
.bar-t{padding:150px 0}
.bar-grille{display:grid;grid-template-columns:.9fr 1.1fr;gap:90px;align-items:center}
.bar-photo{margin:0;aspect-ratio:4/5;overflow:hidden;border-radius:4px;box-shadow:0 40px 80px #000a}
.bar-photo img{width:100%;height:100%;object-fit:cover}
.bar-t p{margin-top:22px;max-width:52ch}
.bar-liste{list-style:none;margin-top:34px}
.bar-liste li{display:flex;align-items:baseline;gap:16px;padding:14px 0;border-bottom:1px solid #ffffff1f}
.bar-liste span{font-family:var(--italique);font-style:italic;font-size:26px}
.bar-liste i{flex:1}.bar-liste b{color:var(--elec);font-weight:500}
.tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}.tags span{font-size:11px;letter-spacing:.24em;text-transform:uppercase;border:1px solid #ffffff3d;border-radius:999px;padding:9px 16px;color:#dbe7f3}
/* galerie */
.gal{padding:150px 0;background:var(--abysse)}
.mosaique{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:220px;grid-auto-flow:dense;gap:8px;margin-bottom:46px}
.mosaique figure{margin:0;overflow:hidden;border-radius:3px}
.mosaique img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.mosaique figure:hover img{transform:scale(1.06)}
.m0{grid-column:span 2;grid-row:span 2}.m5{grid-column:span 2}
/* réservation */
.resa-t{padding:150px 0;text-align:center;background:radial-gradient(ellipse 60% 70% at 50% 40%,#0a2250,var(--nuit) 75%)}
.resa-t .lbl{margin-bottom:22px}
.resa-info{margin:22px auto 0;font-size:14px;letter-spacing:.08em;color:#b9cde3}.resa-info a{color:#fff}
.resa-form{display:flex;gap:14px;justify-content:center;align-items:end;flex-wrap:wrap;margin:44px auto 10px;max-width:860px}
.resa-form label{display:flex;flex-direction:column;gap:8px;text-align:left;font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:#b9cde3}
.resa-form select,.resa-form input{height:56px;min-width:170px;padding:0 16px;border-radius:4px;border:1px solid #ffffff3d;background:#ffffff0d;color:#fff;font:500 16px var(--texte);color-scheme:dark}
/* grand YORU 夜 */
.geant{background:var(--nuit);text-align:center;padding:60px 0 10px;overflow:hidden}
.geant>div{font-family:var(--display);font-size:clamp(90px,19vw,300px);line-height:.9;white-space:nowrap;color:transparent;-webkit-text-stroke:1px #3fd7ff66;background:linear-gradient(0deg,#3fd7ff calc((var(--p,0) - .12) * 320%),transparent calc((var(--p,0) - .12) * 320% + 1%));-webkit-background-clip:text;background-clip:text;filter:drop-shadow(0 0 calc(var(--p,0)*24px) #3fd7ff66)}
.geant span{font-family:var(--kanji)}
@media (max-width:900px){
  .h-cote{display:none}.badge{width:104px;height:104px;right:16px;bottom:90px}.badge span{width:50px;height:50px;font-size:14px}
  .h-mot{font-size:23vw;gap:.04em}.h-scroll{display:none}.badge{bottom:22px}.h-centre{padding:0 20px 60px}
  .statement{padding-top:90px}.st{padding:0 20px;font-size:17vw}.defile2{margin-top:70px}.defile2>div{font-size:24px}
  .exp,.cuisine,.menu-t,.bar-t,.gal,.resa-t{padding:90px 0}
  .exp-grille,.bar-grille{grid-template-columns:1fr;gap:50px}
  .chiffres{gap:28px}.chiffres dt{font-size:30px}.chiffres dd{font-size:9px}
  .collage{height:420px}
  .bande figure{width:46vw}
  .cu-tete{display:block;margin-bottom:34px}.fleches{display:none}
  .cu-rang{padding:0 20px 10px;scroll-padding-inline:20px;gap:16px}.cu-rang article{flex-basis:78vw}.cu-rang h3{font-size:30px}
  .mt-liste a{grid-template-columns:60px 1fr 24px;gap:16px}.mt-liste small{display:none}.mt-liste img{width:60px;height:46px}.mt-liste span{font-size:23px}
  .mosaique{grid-template-columns:repeat(2,1fr);grid-auto-rows:150px}.m0,.m5{grid-column:span 2}
  .resa-form{flex-direction:column;align-items:stretch}.resa-form select,.resa-form input{width:100%}
}
@media (prefers-reduced-motion:reduce){.badge svg,.defile2>div,.h-mot span{animation:none}}
/* ---------- rose du logo + finitions ---------- */
:root{--rose:#ff29a8}
::selection{background:var(--rose);color:#fff}
/* grain de film, très léger, sur toute la page */
body::after{content:"";position:fixed;inset:0;z-index:60;pointer-events:none;opacity:.07;mix-blend-mode:overlay;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E")}
/* étiquettes : le numéro en rose */
.lbl b{color:var(--rose)!important;text-shadow:0 0 12px #ff29a866}
/* hero : néon bicolore sur YORU, ligne LED cyan → rose, badge rose, un faisceau rose */
.h-mot{text-shadow:-2px 0 0 #ff29a85c,2px 0 0 #3fd7ff5c,0 0 60px #3fd7ff40}
.h-led{background:linear-gradient(90deg,transparent,#3fd7ff,#ff29a8,#3fd7ff,transparent);box-shadow:0 0 16px #ff29a8aa}
.lbl--centre{color:#ffd0ea!important}
.badge span{background:var(--rose);color:#fff;box-shadow:0 0 30px #ff29a8aa}
.badge span{animation:pulse-r 2.6s ease-in-out infinite}@keyframes pulse-r{50%{box-shadow:0 0 0 10px #ff29a826,0 0 56px #ff29a8}}
.faisceaux i:nth-child(2){background:linear-gradient(90deg,transparent,#ff29a812,transparent)}
.btn--elec:hover{box-shadow:0 0 0 6px #ff29a833,0 0 50px #ff29a877!important}
/* phrase : le 夜 en néon rose, comme le logo */
.st .neon.on{color:var(--rose);text-shadow:0 0 18px #ff29a8,0 0 60px #ff29a8aa,0 0 120px #ff29a855}
.fond>.kanji-geant{-webkit-text-stroke:1px #ff29a833;filter:drop-shadow(0 0 30px #ff29a822)}
.defile--contour span::after{color:var(--rose);text-shadow:0 0 12px var(--rose)}
/* expérience : 夜 rose, un cadre rose sur le collage */
.chiffres div:first-child dt{color:var(--rose);text-shadow:0 0 16px #ff29a888}
.c2{outline-color:#ff29a866!important}
.c1::after{content:"";position:absolute;inset:14px;border:1px solid #3fd7ff55;pointer-events:none}
.c-jp{color:var(--rose)}
/* cuisine : lueur rose dans le fond, kanji rose au survol, contour bicolore */
.aurore i:nth-child(3){background:#ff29a8;opacity:.14}
.cu-rang article:hover .cu-k{color:var(--rose);text-shadow:0 0 22px #ff29a8}
.trace::before{background:conic-gradient(from var(--ang),#3fd7ff00 0 58%,#3fd7ff 72%,#ff29a8 84%,#fff 88%,#ff29a800 94%)!important}
/* carte : kanji et deux coins en rose */
.mt-kanji{color:var(--rose);text-shadow:0 0 12px #ff29a8}
.mt-panneau .c1,.mt-panneau .c4{border-color:var(--rose);box-shadow:0 0 10px #ff29a888}
/* cocktails : les prix s'allument en rose */
.bar-liste li.on b{color:var(--rose);text-shadow:0 0 14px #ff29a8}
.tags span:hover{border-color:var(--rose);color:#fff;box-shadow:0 0 18px #ff29a855}
/* filets de séparation néon */
.neon-sep{display:flex;align-items:center;gap:22px;padding:0 max(40px,calc((100vw - 84rem)/2 + 40px));background:var(--nuit);height:90px}
.neon-sep i{flex:1;height:1px;background:linear-gradient(90deg,transparent,#3fd7ff99)}
.neon-sep i:last-child{background:linear-gradient(90deg,#ff29a899,transparent)}
.neon-sep span{font-family:var(--kanji);color:var(--rose);font-size:18px;text-shadow:0 0 14px var(--rose)}
/* grand YORU 夜 : le 夜 se remplit en rose */
.geant>div span{-webkit-text-stroke:1px #ff29a888}
.geant>div span{background:linear-gradient(0deg,#ff29a8 calc((var(--p,0) - .12) * 320%),transparent calc((var(--p,0) - .12) * 320% + 1%));-webkit-background-clip:text;background-clip:text;color:transparent}
@media (max-width:900px){.neon-sep{height:60px;padding:0 20px}}
@media (prefers-reduced-motion:reduce){.badge span{animation:none}}

/* carte : carte de luxe centrée, verre bleu nuit sur le marbre blanc */
.menu-t .wrap{display:flex;justify-content:center}
.mt-panneau{position:relative;width:100%;max-width:1040px;text-align:center;color:#fff;background:linear-gradient(160deg,#06183df2,#03070fe6);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:4px;padding:76px 80px 70px;box-shadow:0 50px 120px #06183d59,0 0 0 1px #3fd7ff59,inset 0 0 0 9px #06183d,inset 0 0 0 10px #3fd7ff38,inset 0 0 80px #3fd7ff12}
.mt-panneau .coin{position:absolute;width:34px;height:34px;border:1px solid var(--elec);box-shadow:0 0 10px #3fd7ff88}
.mt-panneau .c1{left:20px;top:20px;border-right:0;border-bottom:0}.mt-panneau .c2{right:20px;top:20px;border-left:0;border-bottom:0}
.mt-panneau .c3{left:20px;bottom:20px;border-right:0;border-top:0}.mt-panneau .c4{right:20px;bottom:20px;border-left:0;border-top:0}
.mt-panneau .mt-tete{margin-bottom:46px}
.mt-panneau .lbl{color:#cfe0f0!important;margin-bottom:10px}.mt-panneau .lbl b{color:var(--elec)!important}
.mt-kanji{display:block;font-family:var(--kanji);font-size:15px;letter-spacing:.6em;color:var(--elec);text-shadow:0 0 12px #3fd7ff;margin:4px 0 14px}
.mt-panneau h2{color:#fff!important}.mt-panneau h2 em{color:var(--glacier)!important}
.mt-panneau .mt-tete p{margin:14px auto 0;color:#cfdced;font-size:18px}
.mt-panneau .mt-liste{display:grid;grid-template-columns:1fr 1fr;column-gap:56px;text-align:left;border:0!important;margin-bottom:48px}
.mt-panneau .mt-liste a{grid-template-columns:58px auto 1fr auto;gap:18px;padding:18px 0;border-bottom:1px solid #ffffff1f!important}
.mt-panneau .mt-liste a:hover{background:#3fd7ff0d;padding-left:10px}
.mt-panneau .mt-liste img{width:58px;height:58px;border-radius:50%;box-shadow:0 0 0 1px #3fd7ff55}
.mt-panneau .mt-liste span{color:#fff!important;font-size:27px!important;font-weight:500;line-height:1.15}
.mt-panneau .mt-liste .pts{align-self:center;transform:translateY(7px);border-bottom:1px dotted #ffffff40;height:0}
.mt-panneau .mt-liste small{color:var(--elec)!important;font-size:12px;font-weight:700;letter-spacing:.18em}
.mt-panneau .mt-liste a::after{background:var(--elec)!important;box-shadow:0 0 12px var(--elec)!important}
.mt-panneau .mt-liste a:hover span{color:var(--glacier)!important}
.clair .fond-voile--clair{background:radial-gradient(ellipse 60% 70% at 50% 50%,#ffffff00,#ffffff66)}
@media (max-width:900px){.mt-panneau{padding:52px 24px 46px;box-shadow:0 30px 70px #06183d59,0 0 0 1px #3fd7ff59,inset 0 0 0 7px #06183d,inset 0 0 0 8px #3fd7ff38}.mt-panneau .coin{width:22px;height:22px}.mt-panneau .c1,.mt-panneau .c3{left:12px}.mt-panneau .c2,.mt-panneau .c4{right:12px}.mt-panneau .c1,.mt-panneau .c2{top:12px}.mt-panneau .c3,.mt-panneau .c4{bottom:12px}
  .mt-panneau .mt-liste{grid-template-columns:1fr}.mt-panneau .mt-liste a{grid-template-columns:48px 1fr auto;gap:14px}.mt-panneau .mt-liste .pts{display:none}.mt-panneau .mt-liste small{display:block;font-size:10px;letter-spacing:.14em}.mt-panneau .mt-liste img{width:48px;height:48px}.mt-panneau .mt-liste span{font-size:22px!important}}

/* ---------- typographie ---------- */
main p{font-size:19px;line-height:1.75;color:#dbe6f2;max-width:52ch}
main h2{font-size:clamp(46px,5vw,76px);line-height:1.04;letter-spacing:.005em}
main h2 em{font-size:1.1em;line-height:.95;letter-spacing:0}
.lbl{font-size:13px;letter-spacing:.3em;color:#cfe0f0}
.h-centre p{font-size:18px;letter-spacing:.08em;color:#eef5fb;text-shadow:0 2px 20px #03070f}
.h-centre p em{display:block;margin-top:6px;font-size:28px;letter-spacing:.01em;color:#fff}
.h-centre .lbl{font-size:13px}
.st{text-shadow:0 4px 40px #03070fcc}
.exp-texte p{font-size:19px}.exp-texte p em{font-size:1.15em}
.chiffres dt{font-size:46px}.chiffres dd{font-size:13px;letter-spacing:.22em;color:#cfe0f0}
.cu-rang p{font-size:17px;line-height:1.65;color:#d3dfeb}
.cu-rang h3{font-size:38px;line-height:1.05}
.cu-rang .lbl{font-size:12px;margin-bottom:12px}
.mt-liste span{font-size:32px}.mt-liste small{font-size:13px;letter-spacing:.2em}
.clair .mt-liste span{color:var(--abysse);font-weight:500}.clair .mt-liste small{color:#3c4c63}.clair .lbl{color:#3c4c63}
.clair .fond-voile--clair{background:linear-gradient(#ffffffd9,#ffffffa6 50%,#ffffffd9)}
.bar-liste span{font-size:30px}.bar-liste b{font-size:18px}
.bar-t p,.resa-t p{text-shadow:0 2px 18px #03070f}
.tags span{font-size:12px;padding:10px 18px}
.resa-info{font-size:16px!important;max-width:none!important;color:#dbe6f2!important}
.resa-form label{font-size:12px}
@media (max-width:900px){.st{font-size:13.5vw}.h-centre p{font-size:15px;letter-spacing:.04em}main p{font-size:17px}main h2{font-size:42px}.h-centre p em{font-size:23px}.mt-liste span{font-size:24px}.cu-rang h3{font-size:31px}.bar-liste span{font-size:25px}.chiffres dt{font-size:34px}.chiffres dd{font-size:11px}}

/* ---------- fonds stylés ---------- */
.fond{position:relative;overflow:hidden;isolation:isolate}
.fond>*{position:relative;z-index:2}
.fond>.fond-led{position:absolute;inset:0;width:100%;height:100%;z-index:0;background:var(--nuit)}
.fond>.fond-voile{position:absolute;inset:0;z-index:1;background:linear-gradient(#03070fd9,#03070f80 50%,#03070fd9)}
.fond>.fond-voile--st{background:radial-gradient(ellipse 70% 70% at 30% 45%,#03070fe0,#03070f66 75%),linear-gradient(#03070f,#03070f00 20%)}
.fond>.kanji-geant{position:absolute;right:-6vw;top:40%;transform:translateY(-50%);z-index:1;font-family:var(--kanji);font-size:52vw;line-height:1;color:transparent;-webkit-text-stroke:1px #3fd7ff38;pointer-events:none;filter:drop-shadow(0 0 30px #3fd7ff22)}
.fond>.exp-fond{position:absolute;inset:-12%;z-index:0}.exp-fond img{width:100%;height:100%;object-fit:cover;filter:blur(30px) brightness(.32) saturate(1.4)}
.fond>.exp-halo{position:absolute;inset:0;z-index:1;background:radial-gradient(circle at 78% 42%,#3fd7ff2e,transparent 42%),radial-gradient(circle at 10% 90%,#0b3a8c66,transparent 50%),linear-gradient(#03070f,#03070f00 16%,#03070f00 84%,#03070f)}
.cuisine{background:var(--nuit)}
.fond>.aurore{position:absolute;inset:0;z-index:0;overflow:hidden}
.aurore i{position:absolute;width:62vw;height:62vw;border-radius:50%;filter:blur(100px);animation:derive 24s ease-in-out infinite alternate}
.aurore i:nth-child(1){background:#0b3a8c;left:-14vw;top:-18vw;opacity:.6}
.aurore i:nth-child(2){background:#2a9bd8;right:-18vw;top:18%;opacity:.3;animation-duration:30s}
.aurore i:nth-child(3){background:#3fd7ff;left:28%;bottom:-36vw;opacity:.18;animation-duration:19s}
@keyframes derive{to{transform:translate(9vw,7vw) scale(1.18)}}
.fond>.kanji-contour{position:absolute;left:-3vw;bottom:-7vw;z-index:1;font-family:var(--kanji);font-size:30vw;line-height:1;color:transparent;-webkit-text-stroke:1px #ffffff1f;pointer-events:none}
.gal{background:var(--nuit)}
/* la carte sur marbre blanc */
.menu-t.clair{background:#fff;color:var(--abysse)}
.fond>.fond-voile--clair{background:linear-gradient(#ffffffc4,#ffffff70 50%,#ffffffc4)}
.clair .fond-led{background:#fff}
.clair h2{color:var(--abysse)}.clair h2 em{color:var(--cobalt)}
.clair .lbl{color:var(--gris)}.clair .lbl b{color:var(--cobalt)}
.clair .mt-liste{border-top-color:#06183d26}.clair .mt-liste a{border-bottom-color:#06183d26}
.clair .mt-liste a:hover{background:#06183d0a}.clair .mt-liste a:hover span{color:var(--cobalt)}
.clair .mt-liste small{color:var(--gris)}.clair .mt-liste i{color:var(--cobalt)}
.clair .mt-liste a::after{background:var(--cobalt);box-shadow:none}
.clair .btn--fil{color:var(--abysse);border-color:var(--abysse);background:#ffffff80}.clair .btn--fil:hover{background:var(--abysse);color:#fff}
@media (max-width:900px){.fond>.kanji-geant{font-size:90vw;top:30%}.fond>.kanji-contour{font-size:56vw}}
@media (prefers-reduced-motion:reduce){.aurore i{animation:none}}

/* ---------- couche d'effets ---------- */
.fx{opacity:0;transform:translateY(42px);transition:opacity 1.1s cubic-bezier(.2,.7,.2,1) var(--d,0ms),transform 1.1s cubic-bezier(.2,.7,.2,1) var(--d,0ms)}
.fx.vu{opacity:1;transform:none}
.fxc{clip-path:inset(100% 0 0 0);transition:clip-path 1.3s cubic-bezier(.65,0,.25,1) var(--d,0ms)}
.fxc.vu{clip-path:inset(0)}
.fxc img{transform:scale(1.25);transition:transform 1.8s cubic-bezier(.2,.7,.2,1) var(--d,0ms)}.fxc.vu img{transform:scale(1)}
.cu-rang .fx img{transform:scale(1.18);transition:transform 1.6s cubic-bezier(.2,.7,.2,1) var(--d,0ms)}.cu-rang .fx.vu img{transform:scale(1)}
.cu-rang article:hover .cu-k{color:var(--elec);text-shadow:0 0 22px #3fd7ff}
/* hero : photo qui respire, faisceaux, néon qui s'allume lettre par lettre, recul au défilement */
.h-yoru .vues img.on{animation:respire 9s ease-out both}
@keyframes respire{from{transform:scale(1.12)}to{transform:scale(1)}}
.h-centre{transform:translateY(calc(max(0, var(--p,.5) - .5) * -300px));opacity:calc(1 - max(0, var(--p,.5) - .5) * 3)}
.h-mot span{animation:allume-l 2.2s steps(1) both}
.h-mot span:nth-child(1){animation-delay:.3s}.h-mot span:nth-child(2){animation-delay:.55s}.h-mot span:nth-child(3){animation-delay:.8s}.h-mot span:nth-child(4){animation-delay:1.05s}
@keyframes allume-l{0%{opacity:0;text-shadow:none}10%{opacity:1;text-shadow:0 0 30px #3fd7ff}14%{opacity:.2}20%{opacity:1}24%{opacity:.4}30%,100%{opacity:1;text-shadow:0 0 40px #3fd7ff66,0 0 90px #3fd7ff33}}
.h-led{width:min(520px,60vw);height:2px;margin:18px auto 0;background:linear-gradient(90deg,transparent,#3fd7ff,transparent);box-shadow:0 0 16px #3fd7ff;transform:scaleX(0);animation:led-l 1.6s 1.3s cubic-bezier(.65,0,.25,1) forwards}
@keyframes led-l{to{transform:scaleX(1)}}
.faisceaux{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden;mix-blend-mode:screen}
.faisceaux i{position:absolute;top:-20%;width:16vw;height:140%;background:linear-gradient(90deg,transparent,#3fd7ff14,transparent);transform-origin:50% 0;animation:balaie 11s ease-in-out infinite alternate}
.faisceaux i:nth-child(1){left:12%;transform:rotate(18deg)}.faisceaux i:nth-child(2){left:44%;animation-duration:14s;animation-delay:-4s}.faisceaux i:nth-child(3){left:74%;transform:rotate(-16deg);animation-duration:9s}
@keyframes balaie{0%{transform:rotate(-18deg);opacity:.4}100%{transform:rotate(18deg);opacity:1}}
.badge span{animation:pulse 2.6s ease-in-out infinite}@keyframes pulse{50%{box-shadow:0 0 0 10px #3fd7ff22,0 0 50px #3fd7ff}}
/* phrase : les mots s'allument au défilement, le néon grésille */
.st .w{opacity:0;transform:translateY(.35em);transition:opacity .7s,transform .9s cubic-bezier(.2,.7,.2,1);display:inline-block}
.st .w.on{opacity:1;transform:none}
.st .neon{opacity:0;text-shadow:none}
.st .neon.on{opacity:1;animation:gresille 1.6s steps(1) both;text-shadow:0 0 18px #3fd7ff,0 0 60px #3fd7ffaa}
@keyframes gresille{0%{opacity:0}8%{opacity:1}12%{opacity:.25}18%{opacity:1}22%{opacity:.4}28%,100%{opacity:1}}
.statement .defile{margin-top:120px}
/* collage : profondeur (chaque photo à sa vitesse) */
.collage figure{transform:translateY(calc((var(--p,.5) - .5) * var(--v,0px)))}
/* cocktails : chaque ligne s'allume */
.bar-liste li b{transition:text-shadow .6s,color .6s;color:#b9cde3}.bar-liste li.on b{color:var(--elec);text-shadow:0 0 14px #3fd7ff}
/* bar et réservation : mur LED animé derrière */
.bar-t,.resa-t{position:relative;overflow:hidden}
.bar-t canvas,.resa-t canvas{position:absolute;inset:0;width:100%;height:100%;background:var(--nuit)}
.bar-voile{position:absolute;inset:0;background:linear-gradient(90deg,#03070f,#03070fcc 45%,#03070f66)}
.resa-voile{position:absolute;inset:0;background:radial-gradient(ellipse 55% 60% at 50% 45%,#03070fe6,#03070f80 80%)}
.bar-t>.wrap,.resa-t>.wrap{position:relative;z-index:2}
/* carte : la ligne s'éclaire au survol */
.mt-liste a{position:relative;overflow:hidden}
.mt-liste a::after{content:"";position:absolute;left:0;bottom:-1px;height:1px;width:100%;background:var(--elec);box-shadow:0 0 12px var(--elec);transform:scaleX(0);transform-origin:0 50%;transition:transform .7s cubic-bezier(.65,0,.25,1)}
.mt-liste a:hover::after{transform:scaleX(1)}
.mt-liste a:hover img{transform:scale(1.15)}.mt-liste img{transition:transform .6s}
.mt-liste a:hover span{color:var(--glacier)}
@media (prefers-reduced-motion:reduce){.fx,.fxc,.st .w{opacity:1!important;transform:none!important;clip-path:none!important}.bande-piste,.faisceaux i,.h-mot span,.h-led{animation:none!important}.h-led{transform:none}}
html.fige .fx,html.fige .fxc{opacity:1;transform:none;clip-path:none}html.fige .st .w{opacity:1;transform:none}

/* rangée Cuisine : ne capte plus le défilement vertical (pavé tactile en diagonale) */
@media (min-width:901px){.cu-rang{overflow-x:hidden!important;scroll-snap-type:none!important}}
@media (max-width:900px){.cu-rang,.formules{scroll-snap-type:x proximity!important;overscroll-behavior-x:contain}}

/* ---------- carte : plus de rose ---------- */
.mt-panneau{box-shadow:0 50px 120px #06183d59,0 0 0 1px #ff29a859,inset 0 0 0 9px #06183d,inset 0 0 0 10px #3fd7ff38,inset 0 0 90px #ff29a814!important;
  background:radial-gradient(ellipse 70% 40% at 50% 100%,#ff29a81f,transparent 70%),radial-gradient(ellipse 60% 40% at 50% 0%,#3fd7ff14,transparent 70%),linear-gradient(160deg,#06183df2,#03070fe6)!important}
.mt-panneau h2 em{color:var(--rose)!important;text-shadow:0 0 18px #ff29a8aa,0 0 50px #ff29a855}
.mt-panneau .mt-liste small{color:var(--rose)!important;text-shadow:0 0 10px #ff29a866}
.mt-panneau .mt-liste .pts{border-bottom-color:#ff29a855!important}
.mt-panneau .mt-liste img{box-shadow:0 0 0 1px #ff29a866,0 0 14px #ff29a833!important;transition:box-shadow .4s,transform .6s}
.mt-panneau .mt-liste a:hover img{box-shadow:0 0 0 2px var(--rose),0 0 22px #ff29a8aa!important}
.mt-panneau .mt-liste a::after{background:linear-gradient(90deg,#3fd7ff,#ff29a8)!important;box-shadow:0 0 12px #ff29a8!important}
.mt-panneau .mt-liste a:hover span{color:#ffd0ea!important}
.mt-panneau .mt-liste a:hover{background:#ff29a80d!important}
.mt-panneau .btn--elec{background:linear-gradient(90deg,#3fd7ff,#ff29a8)!important;border-color:transparent!important;color:#fff!important;text-shadow:0 1px 8px #06183d88;box-shadow:0 0 0 6px #ff29a826,0 0 40px #ff29a866!important}
/* YORU CLUB juste au-dessus du pied de page */
.descente{margin-bottom:0}
/* rangée Cuisine : contours LED qui tournent en permanence ; défilement piloté par la page sur ordinateur */
.cu-rang .trace::before{opacity:1;animation:tour 3.2s linear infinite}
.cu-rang .trace:nth-child(2n)::before{animation-delay:-1.6s}
@media (min-width:901px){.cu-rang{scroll-behavior:auto!important}}
/* mots-clés (bar, privatiser) : simple ligne de texte, pas des boutons */
.tags{display:block!important;margin:26px 0 0!important;padding:0!important;font-size:17px!important;line-height:1.7;color:#dbe6f2}
.tags span{white-space:nowrap;display:inline!important;border:0!important;border-radius:0!important;padding:0!important;background:none!important;box-shadow:none!important;
  font-family:var(--italique);font-style:italic;font-size:21px!important;letter-spacing:0!important;text-transform:none!important;color:#fff}
.tags span:not(.tags-lbl)+span::before{content:"·";margin:0 .5em;color:var(--rose);font-style:normal}
.tags .tags-lbl{font-family:var(--texte);font-style:normal;font-size:13px!important;letter-spacing:.24em!important;text-transform:uppercase!important;color:#cfe0f0;margin-right:.6em}
.tags span:hover{border:0!important;box-shadow:none!important}
.cl-privat .tags span{color:#fff}.cl-privat .tags span+span::before{color:#fff}
/* réservation simplifiée : un seul grand bouton */
.resa-bouton{margin:40px 0 10px;display:flex;justify-content:center}
.btn--grand{min-height:68px;padding:0 54px;font-size:19px;letter-spacing:.03em}
.resa-info a{white-space:nowrap}
