/* ==========================================================================
   MOOGLY'S — l'Appétit Sauvage
   Jungle nocturne : nuit de canopée, mousse, or du logo, orchidée
   ========================================================================== */
:root{
  --night:#050D09; --canopy:#0A1A11; --moss:#0F2E1F; --leaf:#2E7D4F; --fern:#57B97A;
  --gold:#E9A82B; --gold-lt:#F6CE63; --cream:#F3EFE2; --smoke:rgba(243,239,226,.80);
  --accent:var(--gold-lt);
  --d:'Cormorant Garamond',Cormorant,Garamond,'Times New Roman',serif;
  --b:'Jost','Helvetica Neue',Arial,sans-serif;
  --edge:1px solid rgba(87,185,122,.20);
  --pad:clamp(20px,5vw,90px);
  --ease:cubic-bezier(.16,1,.3,1);
  --ease2:cubic-bezier(.76,0,.24,1);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  background:var(--night); color:var(--cream); font-family:var(--b); font-weight:300;
  font-size:clamp(17.5px,1.28vw,21px); line-height:1.5; overflow-x:hidden; -webkit-font-smoothing:antialiased;
}
body.lock,body.nav-open{overflow:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
::selection{background:var(--gold);color:#0A1A11}
:focus-visible{outline:2px solid var(--gold-lt);outline-offset:3px;border-radius:2px}

h1,h2,h3,.disp{font-family:var(--d);font-weight:300;line-height:1.06;letter-spacing:0;
  overflow-wrap:break-word;hyphens:none}
p,li,figcaption,label,span{overflow-wrap:break-word}
.eyebrow{font-size:12.5px;letter-spacing:.36em;text-transform:uppercase;color:var(--fern);font-weight:400}
.hero .kicker .eyebrow{white-space:nowrap;letter-spacing:clamp(.06em,.9vw,.36em);font-size:clamp(10px,1.55vw,12.5px)}
.hero .kicker .line{flex:0 1 auto;min-width:18px}
.lede{font-size:clamp(19px,1.6vw,24px);color:rgba(243,239,226,.86);max-width:56ch;line-height:1.38}

/* images (déclarées une seule fois) ---------------------------------------- */
.im{display:block;background-position:center;background-size:cover;background-repeat:no-repeat}
.im-logo{background-image:url('../assets/logo.png');background-size:contain;aspect-ratio:620/415}
.im-bg{background-image:url('../assets/bg-sm.jpg')}
@media(min-width:900px){.im-bg{background-image:url('../assets/bg.jpg')}}
.im-g1{background-image:url('../assets/g1.jpg')}
.im-g2{background-image:url('../assets/g2.jpg')}
.im-g3{background-image:url('../assets/g3.jpg')}

/* atmosphère globale ------------------------------------------------------- */
/* lumière de canopée qui dérive lentement sur toute la page */

/* barre de progression ----------------------------------------------------- */
#prog{position:fixed;top:0;left:0;height:2px;width:0;z-index:65;pointer-events:none;
  background:linear-gradient(90deg,var(--fern),var(--gold-lt))}
[dir=rtl] #prog{left:auto;right:0}

/* curseur luciole ---------------------------------------------------------- */
.cursor{position:fixed;top:0;left:0;width:34px;height:34px;margin:-17px 0 0 -17px;z-index:70;pointer-events:none;
  border-radius:50%;border:1px solid rgba(246,206,99,.55);
  box-shadow:0 0 22px 4px rgba(233,168,43,.20), inset 0 0 12px rgba(233,168,43,.14);
  transition:width .3s,height .3s,margin .3s,background .3s,border-color .3s;opacity:0}
.cursor.on{opacity:1}
.cursor.hot{width:64px;height:64px;margin:-32px 0 0 -32px;background:rgba(233,168,43,.10);border-color:var(--gold-lt)}
.dot{position:fixed;top:0;left:0;width:5px;height:5px;margin:-2.5px 0 0 -2.5px;border-radius:50%;
  background:var(--gold-lt);z-index:71;pointer-events:none;box-shadow:0 0 14px 3px rgba(233,168,43,.7);opacity:0}
.dot.on{opacity:1}
@media (hover:none){.cursor,.dot{display:none}}

/* ==========================================================================
   INTRO — le logo transparent monte sur la photo du restaurant
   ========================================================================== */
#intro{position:fixed;inset:0;z-index:100;overflow:hidden;background:#030805}
#intro .intro-bg{position:absolute;inset:-6%;transform:scale(1.28);filter:blur(16px) brightness(.34) saturate(1.1);
  animation:introbg 4.6s cubic-bezier(.22,.65,.24,1) forwards}
@keyframes introbg{
  0%{transform:scale(1.28);filter:blur(16px) brightness(.20) saturate(1.05)}
  60%{filter:blur(7px) brightness(.42) saturate(1.15)}
  100%{transform:scale(1.1);filter:blur(3px) brightness(.5) saturate(1.2)}}
#intro .veil{position:absolute;inset:0;
  background:radial-gradient(70% 55% at 50% 48%,rgba(5,13,9,.30),rgba(3,8,5,.88) 78%),
             linear-gradient(180deg,rgba(3,8,5,.72),transparent 40%,rgba(3,8,5,.85))}
#intro .halo{position:absolute;left:50%;top:48%;width:min(120vw,1100px);aspect-ratio:1;transform:translate(-50%,-50%) scale(.5);
  border-radius:50%;pointer-events:none;opacity:0;
  background:radial-gradient(circle,rgba(233,168,43,.22),rgba(87,185,122,.10) 42%,transparent 66%);
  animation:halo 3.4s var(--ease) .3s forwards}
@keyframes halo{40%{opacity:1}100%{opacity:.85;transform:translate(-50%,-50%) scale(1.1)}}
#intro .stage{position:absolute;inset:0;display:grid;place-items:center}
#intro .mark{position:relative;display:block;width:min(74vw,560px);height:auto;max-height:52vh;
  object-fit:contain;background:none;opacity:0;
  transform:translateY(72px) scale(.94);
  animation:markrise 2.6s var(--ease) .35s forwards}
@keyframes markrise{
  60%{opacity:1}
  100%{opacity:1;transform:translateY(0) scale(1)}}
/* ------------------------------------------------------------------
   Le rai de lumière qui balaie l'écran.
   Une seule bande inclinée, animée uniquement en `transform` : le
   compositeur la déplace sans jamais recalculer la mise en page, ce
   qui garantit un mouvement parfaitement lisse. `will-change` la
   place sur sa propre couche dès le départ pour éviter le à-coup
   du premier déplacement.
   ------------------------------------------------------------------ */
#intro .sweep{position:absolute;top:-60%;bottom:-60%;left:0;width:34vw;min-width:240px;
  pointer-events:none;opacity:0;z-index:2;mix-blend-mode:screen;
  background:linear-gradient(105deg,
    transparent 0%,
    rgba(233,168,43,.05) 26%,
    rgba(255,238,196,.20) 44%,
    rgba(255,250,235,.34) 50%,
    rgba(255,238,196,.20) 56%,
    rgba(87,185,122,.06) 74%,
    transparent 100%);
  filter:blur(14px);will-change:transform,opacity;
  transform:translate3d(-140%,0,0) rotate(14deg);
  animation:sweep 2.9s cubic-bezier(.36,.06,.22,1) .5s forwards}
@keyframes sweep{
  0%{opacity:0;transform:translate3d(-140%,0,0) rotate(14deg)}
  14%{opacity:1}
  86%{opacity:1}
  100%{opacity:0;transform:translate3d(400%,0,0) rotate(14deg)}}
/* second passage, plus discret : la lumière « respire » sur le logo */
#intro .sweep.b{width:22vw;min-width:160px;filter:blur(26px);
  animation:sweep 3.4s cubic-bezier(.4,.05,.25,1) 1.5s forwards;opacity:0}

/* Le logo apparaît seul : plus de mention « Entrer », plus de trait.
   Un clic n'importe où sur l'écran d'intro fait entrer sur le site. */
#intro{cursor:pointer}
#intro.out{opacity:0;visibility:hidden;transition:opacity .7s ease}

/* ==========================================================================
   HEADER
   ========================================================================== */
header{position:fixed;top:0;left:0;right:0;z-index:52;display:flex;align-items:center;justify-content:flex-start;
  flex-wrap:nowrap;gap:14px;min-height:74px;padding:14px var(--pad);border-bottom:1px solid transparent;
  background:#050D09;transition:border-color .5s,box-shadow .5s}
body.nav-open header{background:transparent!important;border-bottom-color:transparent!important}
header.stuck{border-bottom-color:rgba(87,185,122,.16)}
header .hlogo{display:block;height:50px;width:75px;aspect-ratio:620/415;flex:0 0 auto;opacity:0;
  filter:drop-shadow(0 4px 20px rgba(0,0,0,.7));transition:opacity .8s ease}
body.ready header .hlogo{opacity:1}

header .brand{display:block;line-height:0;flex:0 0 auto}
nav{display:flex;align-items:center;flex-wrap:nowrap;gap:clamp(8px,1.4vw,18px);margin-inline-start:auto}

/* ---------- bouton sommaire (trois barres) ---------- */
.burger{width:46px;height:46px;border-radius:50%;border:1px solid rgba(87,185,122,.24);background:rgba(5,13,9,.4);
  cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;
  transition:border-color .4s,background .4s,transform .45s var(--ease)}
.burger:hover{border-color:var(--gold-lt);transform:translateY(-2px)}
.burger span{display:block;width:19px;height:1.5px;background:var(--cream);border-radius:2px;
  transition:transform .5s var(--ease2),opacity .3s ease,width .4s var(--ease)}
.burger:hover span:nth-child(2){width:13px}
body.nav-open .burger span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
body.nav-open .burger span:nth-child(2){opacity:0;transform:scaleX(0)}
body.nav-open .burger span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
body.nav-open .burger{border-color:var(--gold-lt)}

/* ---------- panneau sommaire ---------- */
.overlay{position:fixed;inset:0;z-index:49;visibility:hidden;opacity:0;pointer-events:none;
  transition:opacity .6s ease,visibility 0s linear .6s}
body.nav-open .overlay{visibility:visible;opacity:1;pointer-events:auto;transition:opacity .6s ease}
.ov-bg{position:absolute;inset:0;filter:blur(9px) brightness(.30) saturate(1.15);transform:scale(1.12)}
.ov-veil{position:absolute;inset:0;
  background:radial-gradient(70% 60% at 50% 40%,rgba(15,46,31,.72),rgba(3,8,5,.96) 78%)}
.ov-inner{position:relative;height:100%;display:flex;flex-direction:column;justify-content:center;
  padding:clamp(80px,12vh,120px) var(--pad) clamp(30px,6vh,60px);max-width:1400px;margin:0 auto}
.ov-head{display:flex;align-items:center;justify-content:space-between;gap:20px;
  padding-bottom:16px;border-bottom:var(--edge);margin-bottom:clamp(22px,4vh,44px)}
.ov-close{background:none;border:0;cursor:pointer;font-size:11.5px;letter-spacing:.24em;text-transform:uppercase;
  color:rgba(243,239,226,.6);padding:8px 0;transition:color .35s}
.ov-close:hover{color:var(--gold-lt)}
.ov-nav{display:flex;flex-direction:column;gap:clamp(2px,1vh,10px)}
.ov-nav a{display:flex;align-items:baseline;gap:clamp(14px,2.4vw,34px);position:relative;
  font-family:var(--d);font-size:clamp(34px,6.4vw,74px);font-weight:300;line-height:1.12;
  color:rgba(243,239,226,.82);padding:clamp(4px,1vh,10px) 0;
  opacity:0;transform:translateY(26px);transition:color .4s}
body.nav-open .ov-nav a{animation:ovin .85s var(--ease) forwards}
body.nav-open .ov-nav a:nth-child(1){animation-delay:.14s}
body.nav-open .ov-nav a:nth-child(2){animation-delay:.21s}
body.nav-open .ov-nav a:nth-child(3){animation-delay:.28s}
body.nav-open .ov-nav a:nth-child(4){animation-delay:.35s}
body.nav-open .ov-nav a:nth-child(5){animation-delay:.42s}
@keyframes ovin{to{opacity:1;transform:none}}
.ov-nav a i{font-family:var(--b);font-style:normal;font-size:12.5px;letter-spacing:.18em;
  color:var(--fern);flex:0 0 auto;transition:color .4s,transform .5s var(--ease)}
.ov-nav a:hover{color:var(--gold-lt)}
.ov-nav a:hover i{color:var(--gold-lt);transform:translateX(6px)}
[dir=rtl] .ov-nav a:hover i{transform:translateX(-6px)}
.ov-nav a span{position:relative}
.ov-nav a span::after{content:"";position:absolute;inset-inline-start:0;bottom:.12em;width:0;height:1px;
  background:var(--gold-lt);transition:width .55s var(--ease)}
.ov-nav a:hover span::after{width:100%}
.ov-foot{display:flex;flex-wrap:wrap;gap:clamp(16px,3vw,52px);margin-top:clamp(26px,5vh,58px);
  padding-top:20px;border-top:var(--edge);opacity:0;transition:opacity .7s ease .5s}
body.nav-open .ov-foot{opacity:1}
.ov-foot .k{display:block;font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--fern);margin-bottom:5px}
.ov-foot .v{font-size:15px;color:rgba(243,239,226,.8)}
.ov-social{display:flex;gap:18px;align-items:flex-end;font-size:13.5px;letter-spacing:.1em;color:rgba(243,239,226,.7)}
.ov-social a:hover{color:var(--gold-lt)}
@media(max-width:620px){
  .ov-nav a{font-size:clamp(28px,9vw,44px)}
  .ov-foot{gap:16px}
  .ov-foot>div{flex:1 1 44%}
}

/* langues */
.langs{display:flex;gap:2px;align-items:center;flex:0 0 auto;padding:3px;border:1px solid rgba(87,185,122,.20);border-radius:100px}
.lang{background:none;border:0;cursor:pointer;font-size:11.5px;letter-spacing:.12em;padding:7px 10px;border-radius:100px;
  color:rgba(243,239,226,.55);transition:color .35s,background .35s;font-family:var(--b)}
.lang:hover{color:var(--cream)}
.lang.on{color:#06130C;background:var(--gold-lt)}
.lang[lang=ar]{font-size:16px;line-height:1;padding:5px 10px 7px}

/* bouton signature --------------------------------------------------------- */
.btn{position:relative;display:inline-flex;align-items:center;gap:12px;padding:16px 32px;border-radius:100px;
  border:1px solid rgba(246,206,99,.5);background:rgba(233,168,43,.06);color:var(--cream);cursor:pointer;
  font-size:12.5px;letter-spacing:.22em;text-transform:uppercase;overflow:hidden;isolation:isolate;
  transform:translate3d(var(--mx,0px),var(--my,0px),0);
  transition:color .45s,border-color .45s,transform .5s var(--ease),box-shadow .45s}
.btn::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(120deg,var(--gold),var(--gold-lt));
  transform:translateY(101%);transition:transform .55s var(--ease2)}
.btn:hover{color:#06130C;border-color:var(--gold-lt);box-shadow:0 14px 40px -12px rgba(233,168,43,.6)}
.btn:hover::before{transform:translateY(0)}
.btn.ghost{border-color:rgba(243,239,226,.28);background:transparent}
.btn.ghost::before{background:linear-gradient(120deg,var(--fern),#8FD9A8)}
.btn.sm{padding:13px 24px;font-size:11.5px}
.btn .dotpulse{width:6px;height:6px;border-radius:50%;background:var(--fern);box-shadow:0 0 0 0 rgba(87,185,122,.7);
  animation:pulse 2.4s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 9px rgba(87,185,122,0)}100%{box-shadow:0 0 0 0 rgba(87,185,122,0)}}

/* Transparence réservée aux navigateurs qui appliquent réellement le flou.
   Sans ce garde-fou, le contenu de la page se lit à travers l'en-tête. */
@supports ((backdrop-filter: blur(6px)) or (-webkit-backdrop-filter: blur(6px))){
  .form{background:rgba(10,26,17,.72);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
  .sound{background:rgba(5,13,9,.72);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
  .toast{background:rgba(10,26,17,.94);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
}

/* ==========================================================================
   HERO
   ========================================================================== */
.hero{position:relative;background:var(--night);
  min-height:100svh;display:flex;flex-direction:column;justify-content:space-between;
  padding:calc(74px + clamp(24px,5vh,54px)) var(--pad) clamp(38px,7vh,80px);
  overflow:hidden;isolation:isolate}
.hero-bg{position:absolute;inset:0;z-index:1;transform:none}
.hero-grain{position:absolute;inset:0;z-index:3;pointer-events:none;opacity:.05;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/></filter><rect width='160' height='160' filter='url(%23n)'/></svg>")}
.hero-shade{position:absolute;inset:0;z-index:2;
  background:linear-gradient(180deg,rgba(3,9,6,.90) 0%,rgba(3,9,6,.42) 30%,rgba(3,9,6,.74) 62%,rgba(5,13,9,.98) 100%),
             radial-gradient(80% 60% at 50% 30%,rgba(46,125,79,.20),transparent 70%)}
.hero-inner{position:relative;z-index:5;max-width:1500px;width:100%;margin:0 auto}
.hero-top{position:relative;z-index:5;max-width:1500px;width:100%;margin:0 auto auto}
.hero-claim{margin:0;font-family:var(--d);font-weight:300;
  font-size:clamp(22px,3.1vw,44px);line-height:1.1;letter-spacing:0;
  color:var(--cream);text-shadow:0 3px 26px rgba(0,0,0,.85);max-width:24ch;
  opacity:0;animation:fadeup 1s ease .45s forwards}
body.ready .hero-claim{opacity:1}
.hero-claim::after{content:"";display:block;width:clamp(48px,9vw,130px);height:1px;margin-top:14px;
  background:linear-gradient(90deg,var(--fern),transparent)}
[dir=rtl] .hero-claim::after{background:linear-gradient(270deg,var(--fern),transparent)}
html[lang=ar] .hero-claim{line-height:1.5}
.hero h1{font-size:clamp(46px,10.5vw,150px);letter-spacing:-.01em;line-height:.98;max-width:14ch}
.hero h1 .w{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.12em;line-height:1.06}
.hero h1 .w>span{display:inline-block;transform:translateY(110%);animation:rise 1.25s var(--ease) forwards}
@keyframes rise{to{transform:translateY(0)}}
.hero h1 em{font-style:italic;color:var(--gold-lt)}
.hero h1{text-shadow:0 6px 40px rgba(0,0,0,.6)}
.hero .kicker{display:flex;align-items:center;gap:14px;margin-bottom:18px;flex-wrap:nowrap;opacity:0;animation:fadeup 1s ease .5s forwards}
.hero .kicker .line{width:clamp(40px,7vw,110px);height:1px;background:linear-gradient(90deg,var(--fern),transparent)}
[dir=rtl] .hero .kicker .line{background:linear-gradient(270deg,var(--fern),transparent)}
.hero .sub{margin-top:12px;max-width:48ch;color:rgba(243,239,226,.92);font-size:clamp(18px,1.5vw,23px);
  text-shadow:0 2px 18px rgba(0,0,0,.75);
  opacity:0;animation:fadeup 1s ease 1.15s forwards}
.hero .cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px;opacity:0;animation:fadeup 1s ease 1.35s forwards}
@keyframes fadeup{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
.hero-meta{display:flex;flex-wrap:wrap;gap:clamp(16px,3vw,54px);margin-top:clamp(14px,2vh,24px);padding-top:12px;
  border-top:var(--edge);font-size:12.5px;letter-spacing:.17em;text-transform:uppercase;color:rgba(243,239,226,.55);
  opacity:0;animation:fadeup 1s ease 1.55s forwards}
.hero-meta b{color:var(--cream);font-weight:500}
.hero-meta{text-shadow:0 2px 14px rgba(0,0,0,.8)}
.scrollcue{position:absolute;z-index:5;left:50%;bottom:16px;transform:translateX(-50%);writing-mode:vertical-rl;
  font-size:10.5px;letter-spacing:.36em;text-transform:uppercase;color:rgba(243,239,226,.4);display:flex;align-items:center;gap:12px}
.scrollcue::after{content:"";width:1px;height:52px;background:linear-gradient(180deg,var(--fern),transparent);
  animation:cue 2.2s ease-in-out infinite}
@keyframes cue{0%,100%{transform:scaleY(.35);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}}
@media(max-width:700px){.scrollcue{display:none}}

/* bandeau ------------------------------------------------------------------ */
.band{border-top:var(--edge);border-bottom:var(--edge);background:rgba(15,46,31,.35);overflow:hidden;padding:11px 0}
.band .track{display:flex;gap:52px;white-space:nowrap;width:max-content;animation:slide 34s linear infinite}
.band span{font-family:var(--d);font-size:clamp(20px,2.6vw,33px);color:rgba(243,239,226,.72);display:flex;align-items:center;gap:52px}
.band span::after{content:"❊";color:var(--fern);font-size:.6em}
@keyframes slide{to{transform:translateX(-50%)}}
[dir=rtl] .band .track{animation-direction:reverse}

/* ==========================================================================
   SECTIONS + révélations
   ========================================================================== */
section{position:relative;background:var(--night);scroll-margin-top:84px;padding:clamp(34px,4.6vh,62px) var(--pad)}
main{position:relative;background:var(--night)}
.band{position:relative}
footer{position:relative}
.wrap{max-width:1400px;margin:0 auto}
.shead.one-col{display:block}
.shead.one-col .lede{margin-top:clamp(16px,2.2vh,26px);max-width:62ch}
.shead{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:clamp(16px,2.2vh,26px)}
.shead h2{font-size:clamp(32px,5.4vw,74px);line-height:1.02;max-width:16ch}
.shead h2 em{font-style:italic;color:var(--accent)}

/* révélations douces à l'entrée dans l'écran */
.rv{opacity:0;transform:translateY(24px);
  transition:opacity 1s var(--ease),transform 1s var(--ease)}
.rv.in{opacity:1;transform:none}
.rv.d1{transition-delay:.10s}
.rv.d2{transition-delay:.20s}
.rv.d3{transition-delay:.30s}

/* variantes directionnelles : le bloc arrive de la gauche, de la droite
   ou du bas. Seuls `transform` et `opacity` sont animés. */
.rv-l{opacity:0;transform:translate3d(-46px,0,0);
  transition:opacity .9s var(--ease),transform .9s var(--ease2)}
.rv-r{opacity:0;transform:translate3d(46px,0,0);
  transition:opacity .9s var(--ease),transform .9s var(--ease2)}
.rv-u{opacity:0;transform:translate3d(0,42px,0);
  transition:opacity .9s var(--ease),transform .9s var(--ease2)}
.rv-l.in,.rv-r.in,.rv-u.in{opacity:1;transform:none}
[dir=rtl] .rv-l{transform:translate3d(46px,0,0)}
[dir=rtl] .rv-r{transform:translate3d(-46px,0,0)}

/* images dévoilées en rideau */
.clip{clip-path:inset(0 0 100% 0);transition:clip-path 1.3s var(--ease2)}
.clip.in{clip-path:inset(0 0 0 0)}




/* histoire — texte du Chapitre I : largeur de lecture confortable,
   paragraphes bien détachés, interligne aéré */
.story{display:block;max-width:66ch;margin-top:clamp(18px,2.4vh,30px)}
.story p{font-size:clamp(17.5px,1.18vw,20px);line-height:1.72;
  color:rgba(243,239,226,.82);letter-spacing:.004em;text-wrap:pretty}
.story p+p{margin-top:clamp(18px,2.2vh,28px)}
/* la première phrase donne le ton */
.story p:first-child{font-size:clamp(18.5px,1.28vw,21.5px);color:rgba(243,239,226,.92)}
.shead.one-col .lede{line-height:1.5;max-width:64ch}
html[lang=ar] .story p{line-height:1.95;font-size:clamp(17px,1.15vw,19.5px)}
.frame{position:relative;border-radius:2px;overflow:hidden;aspect-ratio:4/5}
.frame .im{position:absolute;inset:0}
.frame::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(5,13,9,.6));pointer-events:none}
.frame .cap{position:absolute;inset-inline-start:20px;bottom:18px;z-index:2;font-size:11.5px;letter-spacing:.26em;
  text-transform:uppercase;color:rgba(243,239,226,.8)}
.values{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(87,185,122,.18);
  margin-top:0;border:var(--edge)}

/* titre au-dessus des trois valeurs */
.values-t{margin:clamp(26px,3.6vh,48px) 0 clamp(12px,1.6vh,20px);
  font-family:var(--d);font-weight:300;font-size:clamp(38px,5.6vw,76px);line-height:1;
  letter-spacing:-.005em;color:var(--cream)}
.values-t em{font-style:italic;color:var(--gold-lt)}
html[lang=ar] .values-t{line-height:1.3;font-size:clamp(34px,5vw,64px)}
@media(max-width:760px){.values{grid-template-columns:1fr}}
.values div{background:var(--night);padding:clamp(16px,2vw,24px);transition:background .6s}
.values div:hover{background:#08170F}
.values h3{font-size:clamp(26px,2.8vw,36px);margin:5px 0 4px}
.values p{color:rgba(243,239,226,.84);font-size:17.5px;line-height:1.56;max-width:44ch;text-wrap:pretty}
.values .num{font-family:var(--d);font-size:clamp(34px,3.6vw,48px);line-height:1;letter-spacing:0;
  color:var(--gold-lt);opacity:.85}
.values div:hover .num{opacity:1}

/* ==========================================================================
   MENU
   ========================================================================== */
/* ------------------------------------------------------------------
   Défilement guidé sur la section carte.
   `proximity` et non `mandatory` : le calage ne se déclenche que si
   l'on s'arrête déjà près du haut de la section. On garde ainsi la
   main sur le défilement — aucun risque de rester prisonnier du bloc.
   `scroll-margin-top` (défini sur `section`) place le calage juste
   sous l'en-tête fixe.
   ------------------------------------------------------------------ */
html{scroll-snap-type:y proximity}
#menu{scroll-snap-align:start}
/* en mode piloté, aucun calage : il entrerait en conflit avec le
   défilement continu qui commande les catégories */
#menu.pilotee{scroll-snap-align:none}
@media(max-width:620px){html{scroll-snap-type:none}}

#menu{position:relative;background:var(--night)}
#boissons{position:relative;background:var(--night)}
.cats{position:sticky;top:74px;z-index:30;display:flex;gap:8px;overflow-x:auto;
  padding:10px var(--pad);margin-inline:calc(var(--pad) * -1);margin-bottom:clamp(12px,1.8vh,20px);
  scrollbar-width:none;-ms-overflow-style:none;
  background:#050D09;border-bottom:1px solid rgba(87,185,122,.16)}
.cats::-webkit-scrollbar{display:none}

/* ------------------------------------------------------------------
   CARTE PILOTÉE AU DÉFILEMENT
   La piste donne au scroll vertical la longueur nécessaire ; le bloc
   épinglé reste à l'écran et c'est son contenu qui change. La barre
   d'onglets glisse horizontalement en proportion directe du scroll.
   Tout le mouvement passe par `transform` et `scrollLeft` : aucun
   recalcul de mise en page pendant le défilement, donc aucune saccade.
   La classe `.pilotee` n'est posée par le script que si la place est
   suffisante ; sinon la carte reste en onglets cliquables classiques.
   ------------------------------------------------------------------ */
.carte-piste{position:relative}
.pilotee .carte-pin{position:sticky;top:74px;overflow:hidden}
/* dans le bloc épinglé, c'est le pin qui colle : la barre redevient normale */
.pilotee .cats{position:static;margin-bottom:0}
.pilotee .courses{will-change:transform;backface-visibility:hidden}
.pilotee .course{padding-top:clamp(14px,2vh,22px)}
/* la bascule pilotée est courte et sans animation de hauteur */
.pilotee .course.on{transition:opacity .34s var(--ease),transform .34s var(--ease2)}
.pilotee .course.on.arrive{opacity:0;transform:translate3d(0,26px,0);transition:none}
.pilotee .course.on.out{opacity:0;transform:translate3d(0,-18px,0);
  transition:opacity .2s ease-in,transform .2s ease-in}
.cat{position:relative;flex:0 0 auto;padding:11px 20px;border-radius:100px;border:1px solid rgba(87,185,122,.22);
  background:rgba(15,46,31,.42);cursor:pointer;font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  color:rgba(243,239,226,.62);white-space:nowrap;
  transition:color .38s var(--ease),border-color .38s var(--ease),background .38s var(--ease),
             transform .38s var(--ease),box-shadow .38s var(--ease)}
.cat:hover{color:var(--cream);border-color:var(--accent);transform:translateY(-1px)}
.cat:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.cat.on{background:var(--accent);border-color:var(--accent);color:#06130C;font-weight:500;
  transform:translateY(-1px);box-shadow:0 6px 20px -8px var(--accent)}

/* ------------------------------------------------------------------
   ONGLETS DE LA CARTE
   Une seule catégorie est affichée. Au changement, l'ancienne s'efface
   vers le haut, la nouvelle arrive par le bas et ses plats se révèlent
   en cascade. La hauteur du bloc est animée pour éviter tout saut.
   ------------------------------------------------------------------ */
.courses{position:relative}
.courses.morph{overflow:hidden;transition:height .5s var(--ease2)}
.course{display:none;padding:clamp(18px,2.4vh,30px) 0 clamp(14px,2vh,24px);
  scroll-margin-top:142px;background:var(--night)}
.course.on{display:block;opacity:1;transform:none;
  transition:opacity .46s var(--ease),transform .46s var(--ease2)}
/* état de départ du panneau qui arrive, appliqué sans transition */
.course.on.arrive{opacity:0;transform:translateY(22px);transition:none}
.course.on.out{opacity:0;transform:translateY(-14px);
  transition:opacity .21s ease-in,transform .21s ease-in}
/* le titre de catégorie entre par la gauche */
.course-h{display:block;margin-bottom:clamp(10px,1.4vh,16px);
  opacity:0;transform:translate3d(-38px,0,0);
  transition:opacity .8s var(--ease),transform .8s var(--ease2)}
.course-h.in{opacity:1;transform:none}
[dir=rtl] .course-h{transform:translate3d(38px,0,0)}
[dir=rtl] .course-h.in{transform:none}
.course-n{display:inline-block;font-family:var(--d);font-size:clamp(24px,2.6vw,34px);line-height:1;
  color:var(--accent);margin-inline-end:14px;vertical-align:baseline}
.course-h h3{display:inline;font-size:clamp(27px,3.6vw,44px);font-weight:300;line-height:1.06}
.course-h p{display:block;color:var(--smoke);font-family:var(--d);font-style:italic;font-size:19px;
  max-width:62ch;margin-top:6px;line-height:1.36}


/* min() : sur un écran étroit la colonne ne dépasse jamais son conteneur */
.dishes{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(340px,100%),1fr));gap:1px;
  background:rgba(87,185,122,.14);border:var(--edge)}
/* les plats arrivent en quinconce : colonne de gauche par la gauche,
   colonne de droite par la droite */
.dish{background:var(--night);padding:clamp(13px,1.5vw,19px);position:relative;overflow:hidden;
  opacity:0;transform:translate3d(-32px,12px,0);
  transition:opacity .7s var(--ease),transform .7s var(--ease2),background .5s}
.dish:nth-child(even){transform:translate3d(32px,12px,0)}
[dir=rtl] .dish{transform:translate3d(32px,12px,0)}
[dir=rtl] .dish:nth-child(even){transform:translate3d(-32px,12px,0)}
.dish.in,[dir=rtl] .dish.in{opacity:1;transform:none}
.dish::before{content:"";position:absolute;inset:0;opacity:0;transition:opacity .5s;pointer-events:none;
  background:linear-gradient(120deg,rgba(87,185,122,.10),transparent 60%)}
.dish:hover::before{opacity:1}
.dish .top{display:flex;justify-content:space-between;align-items:baseline;gap:16px}
.dish h4{font-family:var(--d);font-size:clamp(24px,2.3vw,31px);font-weight:400;line-height:1.1;color:#FBF8EE}
.dish .price{font-family:var(--d);font-weight:400;font-size:clamp(23px,2.1vw,30px);color:var(--accent);white-space:nowrap}
.dish .price sup{font-size:.5em;letter-spacing:.1em;margin-inline-start:2px;opacity:.75}
.dish p{margin-top:6px;color:rgba(243,239,226,.80);font-size:16.5px;line-height:1.38}
.dish .rule{height:1px;background:rgba(87,185,122,.18);margin-top:8px;transform-origin:left;transform:scaleX(0);
  transition:transform .7s var(--ease),background .5s}
[dir=rtl] .dish .rule{transform-origin:right}
.dish:hover .rule{transform:scaleX(1);background:var(--accent)}

/* accès aux PDF */
.pdfbar{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:clamp(12px,1.8vh,20px);
  padding:11px 15px;border:var(--edge);border-radius:3px;background:rgba(15,46,31,.30)}
.pdfbar-t{font-size:11.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--fern);margin-inline-end:auto}
.pdf{display:inline-flex;align-items:center;gap:11px;padding:10px 18px;border-radius:100px;
  border:1px solid rgba(246,206,99,.42);background:rgba(233,168,43,.06);
  transition:border-color .4s,background .4s,transform .45s var(--ease)}
.pdf:hover{border-color:var(--gold-lt);background:rgba(233,168,43,.14);transform:translateY(-2px)}
.pdf svg{width:17px;height:17px;flex:0 0 auto;fill:none;stroke:var(--gold-lt);stroke-width:1.6;
  stroke-linecap:round;stroke-linejoin:round}
.pdf span{display:flex;flex-direction:column;line-height:1.25}
.pdf b{font-weight:400;font-size:14px;color:var(--cream)}
.pdf i{font-style:normal;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--fern)}
@media(max-width:620px){.pdfbar{padding:12px 14px}.pdfbar-t{width:100%;margin-bottom:2px}.pdf{flex:1 1 100%;justify-content:center}}

.menu-foot{margin-top:18px;display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between;
  color:var(--smoke);font-size:14.5px}

/* ==========================================================================
   GALERIE — intérieur et plats réunis
   ========================================================================== */
.gallery{display:grid;grid-template-columns:repeat(6,1fr);gap:clamp(8px,1.1vw,16px)}
.gallery figure{position:relative;overflow:hidden;border-radius:3px;border:var(--edge);
  background:#08170F;margin:0;
  opacity:0;transform:translateY(18px);
  transition:opacity .8s var(--ease),transform .8s var(--ease)}
.gallery figure.in{opacity:1;transform:none}
.gallery img{width:100%;height:100%;object-fit:cover;display:block;
  transition:transform 1.2s var(--ease),filter .8s;filter:saturate(.98)}
.gallery figure:hover img{transform:scale(1.06);filter:saturate(1.18)}
.gallery figure::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,transparent 62%,rgba(5,13,9,.34));opacity:0;transition:opacity .6s}
.gallery figure:hover::after{opacity:1}

/* quatre rangées pleines : 4+2 · 2+4 · 2+2+2 · 3+3 */
.gallery .a{grid-column:span 4;aspect-ratio:2/1}
.gallery .b{grid-column:span 2;aspect-ratio:1}
.gallery .c{grid-column:span 4;aspect-ratio:2/1}
.gallery .d{grid-column:span 2;aspect-ratio:1}
.gallery .e{grid-column:span 3;aspect-ratio:3/2}

@media(max-width:900px){
  .gallery{grid-template-columns:repeat(4,1fr)}
  .gallery .a,.gallery .c{grid-column:span 4;aspect-ratio:2/1}
  .gallery .b,.gallery .d{grid-column:span 2;aspect-ratio:1}
  .gallery .e{grid-column:span 2;aspect-ratio:3/2}
}
@media(max-width:560px){
  .gallery{grid-template-columns:repeat(2,1fr)}
  .gallery .a,.gallery .c{grid-column:span 2;aspect-ratio:16/10}
  .gallery .b,.gallery .d,.gallery .e{grid-column:span 1;aspect-ratio:1}
}

/* ==========================================================================
   RÉSERVATION
   ========================================================================== */
#reserver{position:relative;background:linear-gradient(180deg,var(--night),#071710 45%,var(--night))}
.book{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(30px,5vw,80px);align-items:start}
@media(max-width:960px){.book{grid-template-columns:1fr}}
.form{border:var(--edge);background:#0A1A11;padding:clamp(22px,3.2vw,42px);border-radius:3px}
.row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:560px){.row{grid-template-columns:1fr}}
.field{margin-bottom:9px}
.field label{display:block;font-size:11.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--fern);margin-bottom:6px}
.field input,.field select,.field textarea{width:100%;background:rgba(5,13,9,.6);border:1px solid rgba(87,185,122,.22);
  border-radius:2px;padding:14px 16px;font-size:16.5px;font-weight:300;transition:border-color .4s,box-shadow .4s,background .4s}
.field textarea{resize:vertical;min-height:88px}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--gold-lt);
  box-shadow:0 0 0 3px rgba(233,168,43,.12);background:rgba(5,13,9,.85)}
.field select option{background:#0A1A11}
.hint{font-size:14px;color:var(--smoke);margin-top:10px}
.wa{background:#25D366;border-color:#25D366;color:#052E16;font-weight:500;width:100%;justify-content:center}
.wa::before{background:linear-gradient(120deg,#1EBE5D,#5BF08E)}
.wa:hover{color:#052E16;box-shadow:0 16px 44px -14px rgba(37,211,102,.7)}
.info-list{list-style:none;display:grid;gap:9px;margin-top:12px}
.info-list li{border-top:var(--edge);padding-top:8px}
.info-list .k{font-size:11.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--fern)}
.info-list .v{font-family:var(--d);font-size:clamp(23px,2.3vw,30px);margin-top:6px;color:#FBF8EE;line-height:1.28}
/* le numéro de téléphone est cliquable */
.info-list .v a{color:inherit;text-decoration:none;border-bottom:1px solid rgba(233,168,43,.45);
  transition:color .4s var(--ease),border-color .4s var(--ease)}
.info-list .v a:hover{color:var(--gold-lt);border-bottom-color:var(--gold-lt)}

/* carte intégrée */
.mapbox{position:relative;margin-top:24px;border:var(--edge);border-radius:3px;overflow:hidden;
  aspect-ratio:16/11;background:#08170F}
.mapbox iframe{position:absolute;inset:0;width:100%;height:100%;border:0;
  filter:grayscale(.26) contrast(1.06) brightness(.92) saturate(1.12)}
.mapbox::after{content:"";position:absolute;inset:0;pointer-events:none;
  box-shadow:inset 0 0 70px rgba(3,8,5,.5)}
@media(max-width:560px){.mapbox{aspect-ratio:4/3}}

.toast{position:fixed;left:50%;bottom:34px;transform:translate(-50%,140%);z-index:80;background:#0A1A11;
  border:1px solid var(--gold-lt);border-radius:100px;padding:15px 28px;font-size:14.5px;
  transition:transform .6s var(--ease);max-width:88vw;text-align:center}
.toast.on{transform:translate(-50%,0)}



/* ==========================================================================
   FOOTER
   ========================================================================== */
footer{border-top:var(--edge);padding:clamp(26px,3.4vh,42px) var(--pad) 20px;background:#040A07}
.fgrid{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr;gap:clamp(24px,3vw,50px)}
@media(max-width:880px){.fgrid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.fgrid{grid-template-columns:1fr}}
footer h5{font-size:11.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--fern);margin-bottom:10px;font-weight:400}
footer p,footer a{color:rgba(243,239,226,.82);font-size:17px;line-height:1.45}

/* baseline : une ligne par mention, emojis alignés en colonne */
/* déplacée sous le numéro de téléphone : elle s'aligne désormais sur
   la colonne « Horaires », le style des lignes reste identique */
.tagline{list-style:none;display:grid;gap:9px;margin-top:18px;justify-items:start}
.tagline li{display:grid;grid-template-columns:1.6em auto;align-items:baseline;gap:2px;
  color:rgba(243,239,226,.86);font-size:17.5px;line-height:1.4;text-align:start}
.tagline i{font-style:normal}
footer .fl{position:relative}
.livreur{margin-top:14px;padding-top:12px;border-top:var(--edge)}
.livreur .k{display:block;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--fern);margin-bottom:5px}
.livreur .v{display:block;font-family:var(--d);font-size:21px;color:#FBF8EE}
.livreur a{display:inline-block;margin-top:3px;font-size:17px}
.info-list .v2{margin-top:5px;font-size:15px;color:rgba(243,239,226,.72)}
.info-list .v2 a{color:var(--gold-lt)}
footer .fl::after{content:"";position:absolute;inset-inline-start:0;bottom:-2px;width:0;height:1px;background:var(--gold-lt);
  transition:width .45s var(--ease)}
footer .fl:hover{color:var(--cream)}
footer .fl:hover::after{width:100%}
.flogo{display:block;width:210px;height:141px;aspect-ratio:620/415;margin-bottom:18px}
.ig{display:inline-flex;align-items:center;gap:12px;padding:12px 20px;border-radius:100px;
  background:linear-gradient(45deg,#F58529,#DD2A7B 45%,#8134AF 72%,#515BD4);color:#fff;font-size:13.5px;letter-spacing:.1em;
  transition:transform .45s var(--ease),box-shadow .45s;margin-top:6px}
.ig:hover{transform:translateY(-3px);box-shadow:0 14px 34px -12px rgba(221,42,123,.75);color:#fff}
.ig svg{width:19px;height:19px;flex:0 0 auto}
.glovo{display:inline-flex;align-items:center;gap:10px;padding:11px 18px;border-radius:100px;background:#FFC244;color:#0A1A11;
  font-size:13.5px;letter-spacing:.08em;font-weight:500;transition:transform .45s var(--ease),box-shadow .45s;margin-top:10px}
.glovo:hover{transform:translateY(-3px);box-shadow:0 14px 34px -12px rgba(255,194,68,.6);color:#0A1A11}
.simo{display:inline-flex;align-items:center;gap:10px;padding:11px 18px;border-radius:100px;
  background:#1F7A4C;color:#F3EFE2;font-size:13.5px;letter-spacing:.08em;font-weight:500;
  transition:transform .45s var(--ease),box-shadow .45s;margin-top:10px}
.simo:hover{transform:translateY(-3px);box-shadow:0 14px 34px -12px rgba(31,122,76,.75);color:#fff}
.legal{margin-top:clamp(14px,2vh,24px);padding-top:12px;border-top:var(--edge);display:flex;flex-wrap:wrap;gap:14px;
  justify-content:space-between;font-size:12.5px;color:rgba(243,239,226,.38)}

/* boutons flottants -------------------------------------------------------- */
.sound{position:fixed;inset-inline-end:22px;bottom:22px;z-index:48;display:flex;align-items:center;gap:9px;padding:11px 17px;
  border-radius:100px;border:var(--edge);background:#050D09;cursor:pointer;
  font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:rgba(243,239,226,.7);
  transition:border-color .4s,color .4s,transform .4s var(--ease)}
.sound:hover{color:var(--cream);border-color:var(--gold-lt);transform:translateY(-2px)}
.bars{display:flex;align-items:flex-end;gap:2px;height:12px}
.bars i{width:2px;height:4px;background:var(--fern);display:block}
.sound.playing .bars i{animation:eq .9s ease-in-out infinite}
.sound.playing .bars i:nth-child(2){animation-delay:.15s}
.sound.playing .bars i:nth-child(3){animation-delay:.3s}
.sound.playing .bars i:nth-child(4){animation-delay:.45s}
@keyframes eq{0%,100%{height:3px}50%{height:12px}}
.mcta{display:none;position:fixed;inset-inline-start:22px;bottom:22px;z-index:48;padding:12px 20px;border-radius:100px;
  background:linear-gradient(120deg,var(--gold),var(--gold-lt));color:#06130C;font-size:11.5px;letter-spacing:.16em;
  text-transform:uppercase;font-weight:500;box-shadow:0 12px 32px -12px rgba(233,168,43,.8)}
@media(max-width:620px){
  header .hlogo{height:42px;width:63px}
  body{font-size:17px;line-height:1.75}
  .dish p{font-size:16px}
  .lede{font-size:19px}
  .hero .sub{font-size:18px}
  .hcta{display:none}
  .mcta{display:inline-block}
  header{padding:16px 20px}
  /* Les deux boutons flottants ne tiennent pas côte à côte sur un
     téléphone : « Ambiance jungle » passe au-dessus de « Réserver ».
     Ils restent ainsi lisibles quelle que soit la langue. */
  .sound{padding:9px 13px;bottom:78px}
  .mcta{max-width:calc(100vw - 44px)}
}

/* ==========================================================================
   ARABE / RTL
   ========================================================================== */
html[lang=ar]{--d:'Amiri','Cormorant Garamond',serif;--b:'Almarai','Jost',sans-serif;font-size:104%}
html[lang=ar] .dish p,html[lang=ar] .values p,html[lang=ar] footer p,html[lang=ar] footer a{font-size:16.5px}
html[lang=ar] .lede{font-size:clamp(18.5px,1.55vw,23px)}
html[lang=ar] h1,html[lang=ar] h2,html[lang=ar] h3{line-height:1.34;letter-spacing:0}
html[lang=ar] .hero h1{font-size:clamp(48px,10vw,140px)}
html[lang=ar] .hero h1 .w,html[lang=ar] html[lang=ar] .eyebrow,html[lang=ar] nav a.nl,html[lang=ar] .btn,html[lang=ar] .cat,
html[lang=ar] .field label,html[lang=ar] .info-list .k,html[lang=ar] footer h5,
html[lang=ar] .hero-meta,html[lang=ar] .gal figcaption,html[lang=ar] .frame .cap,
html[lang=ar] .mcta,html[lang=ar] .sound,html[lang=ar] .values .num{letter-spacing:.02em;text-transform:none}
html[lang=ar] .band span{font-size:clamp(16px,2vw,26px)}
html[lang=ar] .course-h p{font-style:normal}
[dir=rtl] .scrollcue{left:auto;right:50%;transform:translateX(50%)}
/* la bande de photos et la barre de catégories partent de la droite */
[dir=rtl] .strip-track,[dir=rtl] .cats{direction:rtl}
/* les emojis de la baseline restent alignés à droite */
[dir=rtl] .tagline i{text-align:start}
[dir=rtl] .btn::before{background-image:linear-gradient(240deg,var(--gold),var(--gold-lt))}

/* ==========================================================================
   ACCESSIBILITÉ MOUVEMENT
   ========================================================================== */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  html{scroll-behavior:auto}
  /* les blocs révélés au défilement s'affichent d'emblée */
  .rv,.rv-l,.rv-r,.rv-u,.gallery figure,.course-h,.dish{opacity:1!important;transform:none!important}
  .clip{clip-path:none!important}
  .course.on,.course.on.arrive{opacity:1!important;transform:none!important}
  .courses.morph{transition:none!important}
  /* ni balayage lumineux, ni calage automatique */
  #intro .sweep{display:none!important}
  html{scroll-snap-type:none!important}
}
