/* ═══════════════════════════════════════════════════════════
   MERYL & AVIV — 7 octobre 2026
   Faire-part mobile · parchemin doré & couchant
   ═══════════════════════════════════════════════════════════ */

/* ─── 1. Tokens ─── */
:root{
  --paper:      #F9EDD6;
  --paper-2:    #F4E2C0;
  --paper-3:    #EED6AA;
  --paper-4:    #E6C994;

  --ink:        #180D03;
  --ink-soft:   #1F1205;
  --ink-mute:   #3A2810;

  --gold:       #6B3F08;
  --gold-lt:    #915F14;
  --gold-pale:  #BC8B34;
  --amber:      #733805;

  /* Cinzel partout : titres, capitales gravées et corps de texte.
     La fonte n'a que des capitales, c'est assumé. */
  --f-display:  'Cinzel', 'Times New Roman', serif;
  --f-caps:     'Cinzel', 'Times New Roman', serif;
  --f-body:     'Cinzel', 'Times New Roman', serif;

  --pad:        clamp(1.5rem, 7vw, 2.25rem);
  --gap-sec:    clamp(3.75rem, 13vw, 5.5rem);

  --ease:       cubic-bezier(.22,.61,.36,1);
  --ease-soft:  cubic-bezier(.33,0,.2,1);

  --sat:        env(safe-area-inset-top, 0px);
  --sab:        env(safe-area-inset-bottom, 0px);
}

/* ─── 2. Reset ─── */
*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }

html{
  -webkit-text-size-adjust:100%;
  scroll-behavior:smooth;
  background:var(--paper);
}

body{
  font-family:var(--f-body);
  font-weight:500;
  font-size:17.5px;
  line-height:1.66;
  color:var(--ink);
  background:var(--paper);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
}

img{ display:block; max-width:100%; }
button,input,textarea{ font:inherit; color:inherit; }
button{ background:none; border:0; cursor:pointer; }
a{ color:inherit; text-decoration:none; }
::selection{ background:var(--gold-pale); color:var(--ink); }

body.is-intro, body.is-locked{ overflow:hidden; }

.wrap{ max-width:30rem; margin:0 auto; text-align:center; }

/* ─── 3. Grain papier ─── */
.grain{
  position:fixed; inset:0;
  pointer-events:none; z-index:60;
  opacity:.14; mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.42'/%3E%3C/svg%3E");
}

/* ─── 4. Ornements ─── */
.ornament{
  display:flex; align-items:center; justify-content:center;
  gap:.8rem; margin:clamp(.75rem, 1.9svh, 1.15rem) auto;
  width:min(200px, 58%);
}
.ornament i{
  flex:1; height:1px;
  background:linear-gradient(90deg, transparent, var(--gold) 48%, var(--gold) 52%, transparent);
  opacity:.8;
}
.ornament span{
  font-size:.58rem; color:var(--gold);
  letter-spacing:.1em; transform:translateY(-1px);
}

/* ═══════════════════════════════════════════════════════════
   5. ÉCRAN DESKTOP
   ═══════════════════════════════════════════════════════════ */
.desktop-gate{ display:none; }

@media (min-width:900px){
  .desktop-gate{
    display:flex; position:fixed; inset:0; z-index:200;
    align-items:center; justify-content:center; padding:2rem;
    background:radial-gradient(ellipse at 50% 34%, #FDF6E8 0%, #F4E2C0 55%, #E9CFA0 100%);
  }
  .topbar,
  #main,
  .intro,
  .music-btn,
  .menu{ display:none !important; }
}

.dg-inner{
  max-width:480px; text-align:center;
  padding:3rem 2.5rem;
  border:1px solid rgba(160,114,42,.28);
  border-radius:2px;
  background:rgba(255,250,240,.5);
}
.dg-eyebrow{
  font-family:var(--f-caps); font-size:.62rem;
  letter-spacing:.34em; text-transform:uppercase;
  color:var(--gold); margin-bottom:1.6rem;
}
.dg-title{
  font-family:var(--f-display); font-weight:400;
  font-size:2.9rem; line-height:1.14; letter-spacing:.04em; color:var(--ink);
}
.dg-title span{ display:block; font-size:1.35rem; color:var(--gold); margin:.3rem 0; }
.dg-text{ color:var(--ink-soft); font-size:1.14rem; line-height:1.75; margin-bottom:2.4rem; }
.dg-text em{ color:var(--gold); font-style:italic; }
.dg-qr{ display:flex; flex-direction:column; align-items:center; gap:1rem; }
.dg-qr-box{
  display:block; padding:14px;
  background:#FFFCF5;
  border:1px solid rgba(138,92,24,.35);
  border-radius:3px;
  box-shadow:0 10px 30px -14px rgba(90,62,20,.55);
  transition:box-shadow .35s, border-color .35s;
}
.dg-qr-box:hover{ border-color:var(--gold); box-shadow:0 14px 34px -14px rgba(90,62,20,.7); }
.dg-qr-box img{ width:168px; height:168px; display:block; }
.dg-qr-caption{ font-size:.95rem; line-height:1.55; color:var(--ink-mute); font-style:italic; }
.dg-qr-url{
  font-family:var(--f-caps); font-weight:600; font-size:.58rem;
  letter-spacing:.18em; text-transform:uppercase; color:var(--gold);
}

/* ═══════════════════════════════════════════════════════════
   6. INTRO — visu-accueil, ~2 s
   ═══════════════════════════════════════════════════════════ */
.intro{
  position:fixed; inset:0; z-index:150;
  display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  padding:2rem var(--pad);
  overflow:hidden;
  background:var(--paper-3);
  transition:opacity 1.15s var(--ease), visibility 1.15s, transform 1.5s var(--ease-soft);
}
.intro.is-gone{
  opacity:0; visibility:hidden;
  transform:scale(1.07);
  pointer-events:none;
}
.intro-media{ position:absolute; inset:0; }
.intro-img{
  width:100%; height:100%; object-fit:cover; object-position:50% 42%;
  transform:scale(1.1); opacity:0;
  transition:transform 3.4s var(--ease-soft), opacity 1.2s ease;
}
body.intro-shown .intro-img{ transform:scale(1); opacity:1; }

.intro-veil{
  position:absolute; inset:0;
  background:
    radial-gradient(ellipse 70% 42% at 50% 52%, rgba(253,246,232,.34) 0%, rgba(250,238,215,.14) 58%, rgba(240,220,180,0) 100%),
    linear-gradient(180deg, rgba(252,244,228,.4) 0%, rgba(252,244,228,0) 26%, rgba(249,237,214,0) 72%, rgba(249,237,214,.42) 100%);
}
.intro-content{ position:relative; z-index:2; text-align:center; }

.intro-eyebrow{
  position:absolute; top:calc(7vh + var(--sat)); left:0; right:0;
  z-index:3; text-align:center;
  font-family:var(--f-caps); font-size:.6rem;
  letter-spacing:.34em; text-transform:uppercase;
  color:var(--ink-soft);
  text-shadow:0 0 16px rgba(253,246,232,1), 0 0 7px rgba(253,246,232,1), 0 0 3px rgba(253,246,232,1);
  opacity:0; animation:introUp .9s var(--ease) .15s forwards;
}
.intro-title{
  font-family:var(--f-display); font-weight:400;
  font-size:clamp(2.6rem, 14.2vw, 4.1rem);
  line-height:1.02; letter-spacing:.03em; color:var(--ink);
  text-shadow:0 2px 26px rgba(252,244,228,.8), 0 1px 3px rgba(252,244,228,.95);
}
.intro-title span{ display:block; opacity:0; animation:introUp 1s var(--ease) forwards; }
.intro-title span:nth-child(1){ animation-delay:.3s }
.intro-title span:nth-child(2){ animation-delay:.45s }
.intro-title span:nth-child(3){ animation-delay:.6s }
.intro-amp{
  font-size:.4em; color:var(--gold);
  margin:.28em 0 .2em; letter-spacing:0;
}
.intro-content .ornament{ opacity:0; animation:introUp .9s var(--ease) .85s forwards; }
.intro-date{
  font-family:var(--f-caps); font-size:.64rem;
  letter-spacing:.3em; text-transform:uppercase; color:var(--amber);
  text-shadow:0 0 14px rgba(253,246,232,1), 0 0 6px rgba(253,246,232,1);
  opacity:0; animation:introUp .9s var(--ease) 1s forwards;
}
@keyframes introUp{
  from{ opacity:0; transform:translateY(14px) }
  to  { opacity:1; transform:none }
}

/* ═══════════════════════════════════════════════════════════
   7. MUSIQUE
   ═══════════════════════════════════════════════════════════ */
.music-btn{
  position:fixed; z-index:112;
  left:.85rem;
  bottom:calc(.9rem + var(--sab));
  width:40px; height:40px;
  display:flex; align-items:center; justify-content:center;
  border-radius:50%;
  background:rgba(252,244,228,.88);
  border:1px solid rgba(160,114,42,.45);
  box-shadow:0 6px 20px -8px rgba(120,88,40,.75);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  opacity:1; pointer-events:auto;
  animation:floatIn .85s var(--ease) .3s backwards;
  transition:background .3s;
}
@keyframes floatIn{
  from{ opacity:0; transform:translateY(14px) scale(.92) }
  to  { opacity:1; transform:none }
}
.music-btn:active{ background:rgba(200,154,68,.3); }

.eq{ display:flex; align-items:flex-end; justify-content:center; gap:2.5px; height:15px; }
.eq i{
  display:block; width:2px; height:100%;
  background:var(--gold); border-radius:2px;
  transform-origin:bottom;
  animation:eqBar 1.1s var(--ease-soft) infinite alternate;
}
.eq i:nth-child(1){ animation-delay:-.9s }
.eq i:nth-child(2){ animation-delay:-.45s }
.eq i:nth-child(3){ animation-delay:-.15s }
.eq i:nth-child(4){ animation-delay:-.65s }
@keyframes eqBar{ 0%{ transform:scaleY(.22) } 100%{ transform:scaleY(1) } }

.music-btn.is-paused .eq i{ animation-play-state:paused; transform:scaleY(.42); opacity:.5; }
/* en attente d'un geste (autoplay refusé par le navigateur) */
.music-btn.is-waiting::before{
  content:''; position:absolute; inset:-1px;
  border-radius:50%; pointer-events:none;
  animation:musicWait 2.4s var(--ease-soft) infinite;
}
@keyframes musicWait{
  0%,100%{ box-shadow:0 0 0 0 rgba(138,92,24,.5) }
  60%    { box-shadow:0 0 0 10px rgba(138,92,24,0) }
}

.music-btn.is-paused::after{
  content:''; position:absolute;
  width:26px; height:1.4px; background:var(--gold);
  transform:rotate(-45deg); border-radius:2px;
}

/* ═══════════════════════════════════════════════════════════
   8. BARRE + MENU
   ═══════════════════════════════════════════════════════════ */
.topbar{
  position:fixed; top:0; left:0; right:0; z-index:110;
  display:flex; align-items:center; justify-content:space-between;
  padding:calc(.8rem + var(--sat)) var(--pad) .8rem;
  transform:translateY(-102%);
  transition:transform .45s var(--ease), background .45s, box-shadow .45s;
}
.topbar.is-shown{ transform:none; }
.topbar.is-solid{
  background:rgba(249,237,214,.9);
  backdrop-filter:blur(14px) saturate(1.3);
  -webkit-backdrop-filter:blur(14px) saturate(1.3);
  box-shadow:0 1px 0 rgba(160,114,42,.22);
}
.tb-mono{
  font-family:var(--f-caps); font-size:.9rem;
  letter-spacing:.16em; color:var(--ink);
  text-shadow:0 1px 10px rgba(252,244,228,.9);
}
.tb-mono span{ color:var(--gold); }

.tb-burger{
  width:34px; height:26px;
  display:flex; flex-direction:column; justify-content:center; gap:6px;
  position:relative; z-index:2;
}
.tb-burger i{
  display:block; height:1.4px; width:100%;
  background:var(--ink); border-radius:2px;
  box-shadow:0 0 8px rgba(252,244,228,.9);
  transition:transform .42s var(--ease), opacity .28s;
}
.tb-burger i:last-child{ width:64%; margin-left:auto; }
/* menu ouvert : la barre reste accessible pour pouvoir refermer */
body.menu-open .topbar{ transform:none; background:transparent; box-shadow:none; }
body.menu-open .tb-burger i{ background:#FBF2E0; box-shadow:none; }
body.menu-open .tb-mono{ color:#FBF2E0; text-shadow:none; }
body.menu-open .tb-mono span{ color:#EBD3A0; }
body.menu-open .tb-burger i:first-child{ transform:translateY(7.4px) rotate(45deg); }
body.menu-open .tb-burger i:nth-child(2){ opacity:0; transform:scaleX(.2); }
body.menu-open .tb-burger i:last-child{ width:100%; transform:translateY(-7.4px) rotate(-45deg); }

.menu{
  position:fixed; inset:0; z-index:105;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  background:
    radial-gradient(ellipse 90% 55% at 50% 18%, rgba(214,178,128,.55) 0%, transparent 62%),
    linear-gradient(168deg, #B08A5C 0%, #96723F 46%, #7C5B2E 100%);
  opacity:0; visibility:hidden;
  transition:opacity .5s var(--ease), visibility .5s;
}
body.menu-open .menu{ opacity:1; visibility:visible; }
.menu ul{ list-style:none; text-align:center; }
.menu li{ overflow:hidden; }
.menu li + li{ margin-top:1.5rem; }
.menu a{
  display:inline-block;
  font-family:var(--f-caps); font-weight:500; font-size:1.4rem;
  letter-spacing:.11em; color:#FBF2E0;
  text-shadow:0 1px 12px rgba(60,38,12,.5);
  transform:translateY(115%);
  transition:transform .62s var(--ease), color .3s;
}
body.menu-open .menu a{ transform:none; }
.menu li:nth-child(1) a{ transition-delay:.10s }
.menu li:nth-child(2) a{ transition-delay:.17s }
.menu li:nth-child(3) a{ transition-delay:.24s }
.menu li:nth-child(4) a{ transition-delay:.31s }
.menu a:active{ color:#F1D9A6; }
.menu-foot{
  position:absolute; bottom:calc(3rem + var(--sab));
  font-family:var(--f-caps); font-size:.58rem;
  letter-spacing:.28em; text-transform:uppercase;
  color:#EBD3A0; opacity:0;
  transition:opacity .6s .4s;
}
body.menu-open .menu-foot{ opacity:.9; }

/* ═══════════════════════════════════════════════════════════
   9. SCÈNES — photo plein écran + texte par-dessus
   ═══════════════════════════════════════════════════════════ */
.scene{
  position:relative;
  min-height:100svh;
  display:flex; align-items:center; justify-content:center;
  padding:calc(var(--gap-sec) + 1rem) var(--pad);
  --lh:1.62;
  overflow:hidden;
  background:var(--paper-3);
  isolation:isolate;
}
.scene-media{
  position:absolute; top:-6%; left:0; right:0; height:112%;
  will-change:transform;
}
.scene-img{
  width:100%; height:100%;
  object-fit:cover; object-position:50% 45%;
}
.scene-veil{ position:absolute; inset:0; }

/* ─── Raccord entre deux photos ───
   Bord à bord, le changement de photo se lisait comme une barre nette.
   Chaque scène s'assombrit donc légèrement en haut et en bas : les deux
   dégradés se rejoignent sur la couture et l'œil y voit une ombre, pas
   une coupure. Rien de clair, la teinte reste celle de l'encre. */
.scene::before,
.scene::after,
.memoriam::before,
.memoriam::after{
  content:'';
  position:absolute; left:0; right:0;
  height:clamp(4.5rem, 14svh, 9rem);
  z-index:1;
  pointer-events:none;
}
.scene::before,
.memoriam::before{
  top:0;
  background:linear-gradient(180deg,
    rgba(16,9,2,.5) 0%, rgba(16,9,2,.3) 30%,
    rgba(16,9,2,.12) 62%, rgba(16,9,2,0) 100%);
}
.scene::after,
.memoriam::after{
  bottom:0;
  background:linear-gradient(0deg,
    rgba(16,9,2,.5) 0%, rgba(16,9,2,.3) 30%,
    rgba(16,9,2,.12) 62%, rgba(16,9,2,0) 100%);
}
/* Première scène : le haut reste nu, il prolonge l'écran d'accueil.
   Dernière scène : le bas rejoint le pied de page, pas une autre photo. */
.scene--open::before,
#rsvp::after{ content:none; }

.scene-body{
  position:relative; z-index:2;
  width:100%; max-width:30rem;
  text-align:center;
}

/* ─── Voiles ─── */
/* ouverture : la photo reste nue, à peine un voile sous la barre du haut */
.scene-veil--soft{
  background:linear-gradient(180deg, rgba(252,244,228,.34) 0%, rgba(252,244,228,0) 18%);
}
/* scène avec texte : voile juste assez dense pour l'encre,
   la photo doit rester pleinement lisible dessous */
.scene--text .scene-veil{
  background:none;
}
.scene-veil--strong{
  background:none !important;
}

/* Photo laissée intacte : l'encre passe donc en clair, détachée par une
   ombre portée sombre et nette — aucun halo diffus autour des lettres. */
.scene--text{
  padding:clamp(2.1rem, 4.4svh, 3.4rem) var(--pad);
  --ink:      #FEFAF1;
  --ink-soft: #F7ECD8;
  --ink-mute: #E3D0AE;
  --gold:     #F4D296;
  --amber:    #FADFA8;
}
.scene--text .scene-body,
.memoriam .wrap{
  text-shadow:
    0 1px 2px rgba(28,14,2,.9),
    0 2px 10px rgba(28,14,2,.75),
    0 4px 26px rgba(28,14,2,.5);
}
.scene--text .ornament i{
  background:linear-gradient(90deg, transparent, rgba(250,223,168,.9) 48%, rgba(250,223,168,.9) 52%, transparent);
}
.scene--text .when{ border-color:rgba(250,223,168,.6); background:none; }
.scene--text .verse{ border-color:rgba(250,223,168,.5); }
.scene--text .suite::before{ background:linear-gradient(90deg, transparent, rgba(250,223,168,.6)); }
.scene--text .suite::after { background:linear-gradient(270deg, transparent, rgba(250,223,168,.6)); }
.scene--text .mem-text--close{ border-top-color:rgba(250,223,168,.45); }
/* sur la photo : fond sombre translucide, le même parti que « Mon agenda » */
.scene--text .btn-ghost{
  background:rgba(38,22,4,.5);
  border-color:rgba(250,223,168,.5);
  text-shadow:none;
  box-shadow:0 6px 18px -10px rgba(0,0,0,.7);
}
.scene--text .btn-ghost:active{
  background:rgba(38,22,4,.8);
  border-color:rgba(250,223,168,.8);
  color:#FDF3DF;
}

/* boutons pleins : brun profond, lisibles sur n'importe quelle photo */
.scene--text .btn-cal,
.scene--text .btn-primary{
  background:rgba(58,34,8,.92);
  color:#FDF3DF; text-shadow:none;
  box-shadow:0 8px 24px -10px rgba(0,0,0,.8);
}
.scene--text .btn-cal:active,
.scene--text .btn-primary:active{ background:rgba(38,22,4,.96); }
.scene--text .btn-primary::before{ border-color:rgba(250,223,168,.35); }

/* champs de saisie : léger fond brun, sans cadre clair */
.scene--text .field input[type=text],
.scene--text .field input[type=number],
.scene--text .field textarea{
  color:#FEFAF1;
  background:rgba(40,24,6,.42);
  border-bottom-color:rgba(250,223,168,.6);
  border-radius:2px 2px 0 0;
  padding-left:.6rem; padding-right:.6rem;
  text-shadow:none;
}
.scene--text .field input::placeholder,
.scene--text .field textarea::placeholder{ color:rgba(240,224,192,.7); }
.scene--text .field input:focus,
.scene--text .field textarea:focus{
  background:rgba(40,24,6,.6);
  border-bottom-color:#FADFA8;
  box-shadow:0 1px 0 0 #FADFA8;
}
.scene--text .check{
  border-color:rgba(250,223,168,.4);
  background:rgba(40,24,6,.3);
  border-radius:2px;
  padding-left:.7rem; padding-right:.7rem;
}
.scene--text .check:first-of-type{ border-top-color:rgba(250,223,168,.4); }
.scene--text .check-box{ border-color:rgba(250,223,168,.8); background:rgba(255,251,242,.14); }
.scene--text .check input:checked ~ .check-box{ background:#F0CE8E; border-color:#F0CE8E; }
.scene--text .check-box::after{ border-color:#3A2208; }
.scene--text .check:has(input:checked){ background:rgba(240,206,142,.2); }
.scene--text .done-seal{ border-color:rgba(250,223,168,.8); }
.scene--text .form-err{ color:#FFC9A8; }

/* ─── Ouverture (first) ─── */
.scene--open{
  align-items:flex-end;
  padding-bottom:calc(5rem + var(--sab));
}
.scene--open .scene-img{
  transform:scale(1.16);
  transition:transform 4.2s var(--ease-soft);
}
body.intro-done .scene--open .scene-img{ transform:scale(1); }

.scene-body--open{
  opacity:0; transform:translateY(18px);
  transition:opacity 1.2s var(--ease) .5s, transform 1.2s var(--ease) .5s;
}
body.intro-done .scene-body--open{ opacity:1; transform:none; }
.open-line{
  font-size:1.32rem; font-style:italic;
  letter-spacing:.05em; color:var(--ink);
  text-shadow:0 0 18px rgba(252,244,228,1), 0 0 8px rgba(252,244,228,.95), 0 1px 3px rgba(252,244,228,.9);
}
.scene-body--open .ornament{ margin-bottom:0; }

/* ─── Planches nues ─── */
.scene--plain{ padding:0; }
.scene--plain .scene-body{ display:none; }

/* ─── Invitation à défiler ─── */
.scroll-cue{
  position:absolute; bottom:calc(2.2rem + var(--sab)); left:50%;
  transform:translateX(-50%);
  display:flex; flex-direction:column; align-items:center; gap:.7rem;
  z-index:3;
  opacity:0; transition:opacity 1s var(--ease) 1.6s;
}
body.intro-done .scroll-cue{ opacity:1; }
.scroll-cue span{
  font-family:var(--f-caps); font-size:.54rem;
  letter-spacing:.3em; text-transform:uppercase; color:var(--amber);
  text-shadow:0 0 14px rgba(252,244,228,1), 0 0 6px rgba(252,244,228,1);
}
.scroll-cue i{
  display:block; width:1px; height:40px;
  background:linear-gradient(180deg, var(--gold), transparent);
  position:relative; overflow:hidden;
}
.scroll-cue i::after{
  content:''; position:absolute; top:0; left:0;
  width:1px; height:13px; background:var(--ink);
  animation:cueRun 2.1s var(--ease-soft) infinite;
}
@keyframes cueRun{ 0%{transform:translateY(-13px)} 60%,100%{transform:translateY(40px)} }

/* ═══════════════════════════════════════════════════════════
   10. TYPOGRAPHIE DES SCÈNES
   ═══════════════════════════════════════════════════════════ */
.eyebrow{
  font-family:var(--f-caps); font-weight:600; font-size:.72rem;
  letter-spacing:.26em; text-transform:uppercase;
  color:var(--ink); margin-bottom:clamp(.6rem, 1.5svh, 1rem);
  text-shadow:0 1px 10px rgba(252,244,228,.85);
}
.names{
  font-family:var(--f-display); font-weight:400;
  font-size:2.15rem; line-height:1.14; letter-spacing:.02em; color:var(--ink);
  text-shadow:0 1px 14px rgba(252,244,228,.85);
}
.names span{
  display:inline; font-size:.62em; color:var(--gold);
  font-weight:400; margin:0 .1em;
}
.names--lg{ font-size:clamp(1.95rem, 4.7svh, 2.5rem); margin:clamp(.3rem,1svh,.5rem) 0 .3rem; }
.lead{
  font-size:1.14rem; font-style:italic; font-weight:500;
  color:var(--ink); margin-top:.35rem;
}
.lead em{ color:var(--amber); font-weight:600; }

/* ─── Cartouche date & heure — l'information maîtresse ─── */
.when{
  position:relative;
  display:flex; flex-direction:column; align-items:center;
  max-width:20rem; margin:clamp(.85rem, 2.1svh, 1.35rem) auto;
  padding:clamp(.65rem, 1.6svh, .95rem) 1rem clamp(.6rem, 1.5svh, .85rem);
  border-top:1px solid rgba(138,92,24,.55);
  border-bottom:1px solid rgba(138,92,24,.55);
  background:
    radial-gradient(ellipse 74% 62% at 50% 50%, rgba(253,247,235,.5) 0%, rgba(252,244,228,.22) 55%, rgba(252,244,228,0) 82%);
}
.when::before, .when::after{
  content:'✦'; position:absolute; left:50%;
  transform:translateX(-50%);
  font-size:.46rem; color:var(--gold);
}
.when::before{ top:-.36rem } .when::after{ bottom:-.36rem }

.when-date{
  font-family:var(--f-caps); font-weight:600;
  font-size:.8rem; letter-spacing:.15em; text-transform:uppercase;
  color:var(--ink); white-space:nowrap;
}
.when-time{
  font-family:var(--f-display); font-weight:400;
  font-size:clamp(1.4rem, 3.1svh, 1.72rem); line-height:1.1;
  color:var(--amber); letter-spacing:.01em;
  font-variant-numeric:lining-nums;
  margin-top:.18rem;
}
.when-time i{ font-style:normal; font-size:.6em; margin:0 .03em; opacity:.9; }
.when-sub{
  font-family:var(--f-caps); font-weight:600; font-size:.58rem;
  letter-spacing:.2em; text-transform:uppercase;
  color:var(--ink-soft); margin-top:.32rem;
}
.when + .verse{ border-top:0; padding-top:0; margin-top:clamp(.9rem,2.2svh,1.3rem); }
.when--lg .when-date{ font-size:.86rem; letter-spacing:.14em; }
.when--lg .when-time{ font-size:clamp(1.5rem, 3.4svh, 1.9rem); }

.date-block{ margin:1.5rem 0; }
.dt-day{
  display:block;
  font-family:var(--f-caps); font-size:1.08rem;
  letter-spacing:.05em; color:var(--ink);
}
.dt-hour{ display:block; margin-top:.35rem; font-size:1.04rem; font-style:italic; color:var(--ink-soft); }
.dt-heb{
  display:block; margin-top:.55rem;
  font-family:var(--f-caps); font-size:.58rem;
  letter-spacing:.22em; text-transform:uppercase; color:var(--gold);
}
.date-block--big .dt-day{ font-size:1.24rem; }

.place-line{
  font-family:var(--f-caps); font-size:.82rem;
  letter-spacing:.24em; text-transform:uppercase;
  color:var(--amber); margin-top:-.4rem;
}

.venue{ margin-top:clamp(.85rem, 2.1svh, 1.25rem); }
.venue-name{
  font-family:var(--f-caps); font-weight:600; font-size:.96rem;
  letter-spacing:.05em; color:var(--ink); margin-bottom:.3rem;
}
.venue--accent .venue-name{ color:var(--amber); font-size:1.04rem; letter-spacing:.09em; }
.venue-addr{ font-size:1rem; line-height:1.5; color:var(--ink); font-style:italic; font-weight:500; }

.suite{ display:flex; align-items:center; gap:.85rem; margin:clamp(1rem,2.4svh,1.5rem) 0 .3rem; }
.suite::before, .suite::after{
  content:''; flex:1; height:1px;
  background:linear-gradient(90deg, transparent, rgba(160,114,42,.6));
}
.suite::after{ background:linear-gradient(270deg, transparent, rgba(160,114,42,.6)); }
.suite-label{ font-size:.95rem; font-style:italic; font-weight:500; color:var(--ink-soft); white-space:nowrap; }

.hosts{
  display:flex; align-items:center; justify-content:center;
  gap:clamp(.6rem, 3vw, 1.1rem);
  margin-bottom:clamp(.6rem, 1.6svh, 1rem);
}
.host{
  flex:1 1 0; max-width:10rem;
  display:flex; flex-direction:column; gap:.1rem;
  font-family:var(--f-caps); font-weight:600;
  font-size:clamp(.8rem, 1.75svh, .93rem);
  line-height:1.32; letter-spacing:.03em;
  color:var(--ink);
}
.host i{
  font-family:var(--f-body); font-style:italic; font-weight:500;
  font-size:.92em; letter-spacing:0;
  color:var(--ink-soft); opacity:.85;
}
.host-sep{
  flex:none; font-size:.5rem; color:var(--gold);
  transform:translateY(.35em);
}
.body-txt{
  font-size:clamp(.92rem, 1.95svh, 1.04rem);
  line-height:1.58; font-weight:500;
  color:var(--ink);
  max-width:25rem; margin:0 auto;
}
.body-txt + .names{ margin-top:clamp(.55rem,1.6svh,.9rem); }
.names + .body-txt{ margin-top:clamp(.55rem,1.6svh,.9rem); }
.body-txt--last{ margin-top:clamp(.5rem,1.4svh,.75rem); font-style:italic; }
.hl{
  font-style:normal; color:var(--amber);
  font-family:var(--f-caps); font-weight:600; font-size:.9em; letter-spacing:.05em;
}
.verse{
  margin:clamp(.8rem, 2svh, 1.25rem) auto; padding:clamp(.6rem, 1.5svh, .85rem) 0;
  max-width:21rem;
  font-size:clamp(.95rem, 2svh, 1.06rem); font-style:italic; font-weight:500; line-height:1.48; color:var(--ink);
  border-top:1px solid rgba(160,114,42,.4);
  border-bottom:1px solid rgba(160,114,42,.4);
}

/* ─── Compte à rebours ─── */
.countdown{ display:flex; justify-content:center; gap:.55rem; margin-top:2.2rem; }
.cd-cell{
  flex:1; max-width:5.2rem;
  padding:.75rem .25rem .6rem;
  border:1px solid rgba(160,114,42,.4);
  border-radius:2px;
  background:rgba(255,250,240,.6);
}
.cd-cell b{
  display:block;
  font-family:var(--f-display); font-weight:400;
  font-size:1.32rem; line-height:1; color:var(--ink);
  font-variant-numeric:lining-nums tabular-nums;
}
.cd-cell span{
  display:block; margin-top:.35rem;
  font-family:var(--f-caps); font-size:.48rem;
  letter-spacing:.19em; text-transform:uppercase; color:var(--gold);
}
.cd-now{
  font-family:var(--f-caps); font-size:.72rem;
  letter-spacing:.24em; text-transform:uppercase;
  color:var(--gold); padding:.9rem 0;
}

/* ─── Boutons ─── */
/* lien d'action : un simple filet, aucun cadre */
.btn-ghost{
  display:inline-flex; align-items:center; gap:.4rem;
  margin-top:.7rem;
  padding:.5rem .95rem;
  font-family:var(--f-caps); font-weight:600; font-size:.6rem;
  letter-spacing:.2em; text-transform:uppercase; color:var(--amber);
  background:rgba(147,83,15,.1);
  border:1px solid rgba(147,83,15,.4);
  border-radius:2px;
  transition:color .3s, border-color .3s, background .3s;
}
.btn-ghost:active{
  color:var(--ink);
  background:rgba(147,83,15,.2);
  border-color:var(--ink);
}

.btn-cal{
  display:inline-flex; align-items:center; gap:.55rem;
  margin-top:clamp(1rem, 2.4svh, 1.5rem); padding:.75rem 1.35rem;
  font-family:var(--f-caps); font-weight:600; font-size:.58rem;
  letter-spacing:.2em; text-transform:uppercase;
  color:#FFF8EA; background:var(--gold);
  border-radius:2px;
  box-shadow:0 6px 18px -8px rgba(120,88,40,.9);
  transition:background .3s, transform .2s;
}
.btn-cal svg{
  width:13px; height:13px; fill:none; stroke:currentColor;
  stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round;
}
.btn-cal:active{ background:var(--ink); transform:scale(.98); }
.btn-cal.is-ok{ background:var(--ink); }

/* ═══════════════════════════════════════════════════════════
   11. IN MEMORIAM
   ═══════════════════════════════════════════════════════════ */
/* Même photo que la Houppa juste au-dessus : la mémoire prolonge
   la scène, sans rupture de décor. */
.memoriam{
  position:relative;
  min-height:100svh;
  display:flex; align-items:center; justify-content:center;
  padding:clamp(2.4rem, 5svh, 4rem) var(--pad);
  overflow:hidden;
  text-align:center;
  background:var(--paper-3);
  isolation:isolate;
}
.memoriam .wrap{ position:relative; z-index:2; }


.mem-flame{ margin-bottom:clamp(.8rem, 2svh, 1.3rem); }
.mem-flame svg{
  width:21px; height:35px; margin:0 auto;
  fill:var(--amber);
  filter:drop-shadow(0 0 14px rgba(253,247,235,.95)) drop-shadow(0 0 6px rgba(253,247,235,.9));
  animation:flicker 3.6s ease-in-out infinite;
}
@keyframes flicker{
  0%,100%{ opacity:.92; transform:scaleY(1) }
  38%    { opacity:.66; transform:scaleY(.94) }
  63%    { opacity:1;   transform:scaleY(1.04) }
}
.mem-title{
  font-family:var(--f-caps); font-weight:600; font-size:.72rem;
  letter-spacing:.32em; text-transform:uppercase; color:var(--ink);
}
.mem-text{
  font-size:clamp(.95rem, 2svh, 1.04rem); line-height:1.72; font-style:italic; font-weight:500;
  color:var(--ink-soft);
  margin-top:clamp(1.1rem, 2.6svh, 1.8rem);
}
.mem-text strong{
  font-style:normal; font-weight:600;
  font-family:var(--f-caps); font-size:.9em;
  letter-spacing:.05em; color:var(--ink);
}
.mem-text--close{
  margin-top:clamp(1.4rem, 3svh, 2.2rem); padding-top:clamp(1.2rem, 2.6svh, 1.8rem);
  border-top:1px solid rgba(138,92,24,.35);
  color:var(--amber);
}

/* ═══════════════════════════════════════════════════════════
   12. COUPON-RÉPONSE
   ═══════════════════════════════════════════════════════════ */
.rsvp-title{
  font-family:var(--f-display); font-weight:400;
  font-size:clamp(1.4rem, 3.2svh, 1.66rem); line-height:1.28; color:var(--ink);
  text-shadow:0 1px 14px rgba(252,244,228,.85);
}
.rsvp-lead{
  font-size:1rem; font-style:italic; font-weight:500;
  color:var(--ink); margin-bottom:clamp(1rem, 2.4svh, 1.6rem);
}
.rsvp-lead strong{ font-style:normal; font-weight:500; color:var(--ink); }

.form{ text-align:left; }
.field{ margin-bottom:1.15rem; }
.field label:not(.check), .field legend{
  display:block; margin-bottom:.35rem;
  font-family:var(--f-caps); font-weight:600; font-size:.6rem;
  letter-spacing:.19em; text-transform:uppercase; color:var(--ink-soft);
}
.field .opt{
  font-family:var(--f-body); font-size:.82rem;
  letter-spacing:0; text-transform:none;
  font-style:italic; color:var(--ink-mute);
}
.field input[type=text],
.field input[type=number],
.field textarea{
  width:100%;
  padding:.5rem .15rem .55rem;
  font-size:1.06rem; color:var(--ink);
  font-variant-numeric:lining-nums;
  background:transparent;
  border:0; border-bottom:1px solid rgba(138,92,24,.45);
  border-radius:0;
  transition:border-color .3s, box-shadow .3s;
  -webkit-appearance:none; appearance:none;
}
.field textarea{ resize:none; line-height:1.55; }
.field input::placeholder, .field textarea::placeholder{
  color:rgba(141,110,66,.65); font-style:italic;
}
.field input:focus, .field textarea:focus{
  outline:none;
  border-bottom-color:var(--amber);
  box-shadow:0 1px 0 0 var(--amber);
}
.field.has-err input, .field.has-err textarea{ border-bottom-color:#A8442A; }

.field-row{ display:flex; gap:1rem; }
.field-row .field{ flex:1; }

.field--choice{ border:0; margin-bottom:1.35rem; }
.field--choice legend{ margin-bottom:.75rem; }
.check{
  display:flex; align-items:center; gap:.9rem;
  padding:.72rem .15rem;
  border:0; border-bottom:1px solid rgba(138,92,24,.28);
  background:transparent;
  cursor:pointer;
  transition:border-color .3s;
}
.check:first-of-type{ border-top:1px solid rgba(138,92,24,.28); }
.check + .check{ margin-top:0; }
.check input{ position:absolute; opacity:0; width:0; height:0; }
.check-box{
  flex:none; width:17px; height:17px;
  border:1px solid rgba(138,92,24,.7);
  border-radius:50%; position:relative;
  background:transparent;
  transition:background .25s, border-color .25s;
}
.check-box::after{
  content:''; position:absolute; left:4.7px; top:1.4px;
  width:5px; height:9px;
  border:solid #FDF7EB; border-width:0 1.5px 1.5px 0;
  transform:rotate(45deg) scale(0);
  transition:transform .25s var(--ease);
}
.check input:checked ~ .check-box{ background:var(--gold); border-color:var(--gold); }
.check input:checked ~ .check-box::after{ transform:rotate(45deg) scale(1); }
.check input:checked ~ .check-txt b{ color:var(--gold); }
.check:has(input:checked){ border-bottom-color:var(--amber); }
.check input:focus-visible ~ .check-box{ outline:2px solid var(--gold); outline-offset:2px; }
.check-txt{ display:flex; flex-direction:column; gap:.1rem; }
.check-txt b{
  font-family:var(--f-caps); font-weight:500;
  font-size:.88rem; letter-spacing:.05em; color:var(--ink);
  transition:color .25s;
}
.check-txt small{ font-size:.86rem; font-style:italic; color:var(--ink-mute); }

.form-err{
  margin-bottom:1rem; text-align:center;
  font-size:.96rem; font-style:italic; color:#A8442A;
}
.btn-primary{
  display:block; width:100%;
  margin-top:1rem; padding:.95rem;
  font-family:var(--f-caps); font-weight:600; font-size:.62rem;
  letter-spacing:.26em; text-transform:uppercase;
  color:#FFF8EA; background:var(--gold);
  border-radius:2px; position:relative; overflow:hidden;
  box-shadow:0 8px 22px -10px rgba(120,88,40,.95);
  transition:background .3s, transform .2s;
}
.btn-primary::before{
  content:''; position:absolute; inset:3px;
  border:1px solid rgba(255,248,234,.28);
  pointer-events:none;
}
.btn-primary:active{ transform:scale(.985); background:var(--ink); }
.form-note{
  margin-top:.7rem; text-align:center;
  font-size:.9rem; font-style:italic; color:var(--ink-mute);
}

.form-done{ text-align:center; padding:1rem 0 .5rem; }
.done-seal{
  width:52px; height:52px; margin:0 auto 1.3rem;
  display:flex; align-items:center; justify-content:center;
  border:1px solid var(--gold); border-radius:50%;
  color:var(--gold); font-size:.85rem;
  animation:sealIn .7s var(--ease) backwards;
}
@keyframes sealIn{ from{ transform:scale(.5) rotate(-25deg); opacity:0 } }
.done-title{
  font-family:var(--f-display); font-size:1.5rem;
  letter-spacing:.05em; color:var(--ink); margin-bottom:.6rem;
}
.done-text{
  font-size:1.05rem; font-style:italic; line-height:1.65;
  color:var(--ink-soft); margin-bottom:1.6rem;
}

/* ═══════════════════════════════════════════════════════════
   13. PIED
   ═══════════════════════════════════════════════════════════ */
.foot{
  padding:3.5rem var(--pad) calc(3.5rem + var(--sab));
  text-align:center;
  background:linear-gradient(180deg, var(--paper) 0%, var(--paper-3) 100%);
  border-top:1px solid rgba(160,114,42,.3);
}
.foot-names{
  font-family:var(--f-display); font-size:1.3rem;
  letter-spacing:.14em; color:var(--ink); margin-bottom:.7rem;
}
.foot-names span{ color:var(--gold); }
.foot-date{
  font-family:var(--f-caps); font-size:.56rem;
  letter-spacing:.36em; color:var(--gold);
}

/* ═══════════════════════════════════════════════════════════
   14. APPARITIONS
   ═══════════════════════════════════════════════════════════ */
.reveal{
  opacity:0; transform:translateY(20px);
  transition:opacity 1s var(--ease), transform 1.1s var(--ease);
}
.reveal.is-in{ opacity:1; transform:none; }

img.lazy{ opacity:0; transition:opacity 1.2s var(--ease); }
img.lazy.is-loaded{ opacity:1; }

/* ═══════════════════════════════════════════════════════════
   15. PRÉFÉRENCES & GRANDS ÉCRANS
   ═══════════════════════════════════════════════════════════ */
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto }
  *,*::before,*::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
  .reveal{ opacity:1; transform:none }
  img.lazy{ opacity:1 }
  .scene-media{ transform:none !important }
  .intro-eyebrow,.intro-title span,.intro-date,.intro-content .ornament{ opacity:1 }
}



/* ─── Écrans courts (iPhone SE, mini) : on resserre encore ─── */
@media (max-height: 720px){
  .scene--text{ padding:1.7rem var(--pad); }
  .venue-addr{ font-size:.94rem; line-height:1.42; }
  .venue-name{ font-size:.9rem; }
  .lead{ font-size:1.04rem; }
  .names{ font-size:1.9rem; }
  .btn-ghost{ margin-top:.5rem; padding:.45rem 1rem; }
  .suite{ margin:.9rem 0 .2rem; }
}

/* ═══════════════════════════════════════════════════════════
   16. FEUILLE ITINÉRAIRE (Waze / Google Maps)
   ═══════════════════════════════════════════════════════════ */
.btn-route{
  display:inline-flex; align-items:center; gap:.45rem;
}
.btn-route svg{
  width:12px; height:12px; fill:none; stroke:currentColor;
  stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round;
}

.sheet{ position:fixed; inset:0; z-index:160; }
.sheet[hidden]{ display:none; }

.sheet-scrim{
  position:absolute; inset:0;
  background:rgba(24,13,3,.55);
  backdrop-filter:blur(3px); -webkit-backdrop-filter:blur(3px);
  opacity:0; transition:opacity .38s var(--ease);
}
.sheet.is-open .sheet-scrim{ opacity:1; }

.sheet-panel{
  position:absolute; left:0; right:0; bottom:0;
  padding:.85rem var(--pad) calc(1.1rem + var(--sab));
  /* même encre chaude que les scènes photo, pas une feuille blanche */
  background:linear-gradient(180deg, #3B2409 0%, #281803 100%);
  border-top:1px solid rgba(250,223,168,.32);
  border-radius:18px 18px 0 0;
  box-shadow:0 -18px 50px -20px rgba(0,0,0,.75);
  transform:translateY(102%);
  transition:transform .46s var(--ease);
  max-width:520px; margin:0 auto;
}
.sheet.is-open .sheet-panel{ transform:none; }

.sheet-panel:focus{ outline:none; }
.sheet-app:focus{ outline:none; }
.sheet-app:focus-visible{ outline:2px solid #F0CE8E; outline-offset:2px; }

.sheet-grip{
  display:block; width:38px; height:3px; margin:0 auto 1.1rem;
  border-radius:3px; background:rgba(250,223,168,.35);
}
.sheet-eyebrow{
  font-family:var(--f-caps); font-weight:600; font-size:.58rem;
  letter-spacing:.26em; text-transform:uppercase;
  color:#F0CE8E; text-align:center;
}
.sheet-title{
  font-family:var(--f-display); font-weight:400;
  font-size:1.24rem; line-height:1.25; color:#FEFAF1;
  text-align:center; margin-top:.35rem;
}
.sheet-addr{
  font-size:.98rem; font-style:italic; line-height:1.45;
  color:rgba(247,236,216,.82); text-align:center;
  margin:.25rem 0 1.15rem;
}

.sheet-app{
  display:flex; align-items:center; gap:.9rem;
  padding:.85rem .9rem;
  border:1px solid rgba(250,223,168,.28);
  border-radius:3px;
  background:rgba(255,251,242,.07);
  transition:background .25s, border-color .25s, transform .18s;
}
.sheet-app + .sheet-app{ margin-top:.6rem; }
.sheet-app:active{ transform:scale(.985); background:rgba(240,206,142,.18); border-color:rgba(250,223,168,.7); }

.sheet-ico{
  flex:none; width:38px; height:38px;
  display:flex; align-items:center; justify-content:center;
  border-radius:50%;
  background:rgba(250,223,168,.1);
  border:1px solid rgba(250,223,168,.3);
}
.sheet-ico svg{
  width:17px; height:17px; fill:none; stroke:#F0CE8E;
  stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round;
}
.sheet-app-txt{ flex:1; display:flex; flex-direction:column; gap:.08rem; }
.sheet-app-txt b{
  font-family:var(--f-caps); font-weight:600; font-size:.84rem;
  letter-spacing:.06em; color:#FEFAF1;
}
.sheet-app-txt small{ font-size:.88rem; font-style:italic; color:rgba(227,208,174,.82); }
.sheet-chev{ color:#F0CE8E; font-size:1.3rem; line-height:1; opacity:.7; }

.sheet-cancel{
  display:block; width:100%; margin-top:.95rem; padding:.8rem;
  font-family:var(--f-caps); font-weight:600; font-size:.58rem;
  letter-spacing:.22em; text-transform:uppercase;
  color:rgba(227,208,174,.78);
}
.sheet-cancel:active{ color:#FEFAF1; }

@media (prefers-reduced-motion:reduce){
  .sheet-panel{ transition:none }
}

/* Boutons d'action groupés (itinéraire + agenda) */
.actions{
  display:flex; flex-wrap:wrap;
  justify-content:center; align-items:stretch; gap:.55rem;
  margin-top:clamp(.9rem, 2.2svh, 1.3rem);
}
.actions .btn-ghost,
.actions .btn-cal{ margin-top:0; }
.actions .btn-ghost{ padding:.2rem 0 .3rem; font-size:.58rem; letter-spacing:.16em; }
.actions .btn-cal{ padding:.7rem 1rem; font-size:.56rem; letter-spacing:.16em; }
.actions{ align-items:center; gap:1.1rem; }

/* ═══════════════════════════════════════════════════════════
   17. LANGUES — français / עברית
   ═══════════════════════════════════════════════════════════ */
.lang{
  position:fixed; z-index:112;
  right:.85rem; bottom:calc(.9rem + var(--sab));
  display:flex; gap:.4rem;
  opacity:1; pointer-events:auto;
  animation:floatIn .85s var(--ease) .45s backwards;
}

.lang-btn{
  display:flex; align-items:center; gap:.3rem;
  padding:.28rem .5rem .28rem .3rem;
  border-radius:999px;
  background:rgba(252,244,228,.88);
  border:1px solid rgba(107,63,8,.3);
  color:rgba(107,63,8,.45);
  box-shadow:0 6px 20px -8px rgba(120,88,40,.75);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  transition:border-color .3s, background .3s, color .3s, opacity .3s;
  opacity:.62;
}
.lang-btn svg{ width:19px; height:19px; display:block; }
.lang-code{
  font-family:var(--f-caps); font-weight:600;
  font-size:.5rem; letter-spacing:.1em;
  color:var(--ink-mute);
  transition:color .3s;
}
.lang-btn.is-on{
  opacity:1;
  background:#FFFBF2;
  border-color:var(--gold);
  color:var(--gold);
}
.lang-btn.is-on .lang-code{ color:var(--ink); }
.lang-btn:active{ transform:scale(.96); }

/* le bouton musique reste à gauche, les langues à droite,
   quel que soit le sens de lecture */
html[dir="rtl"] .music-btn{ left:.85rem; right:auto; }
html[dir="rtl"] .lang{ right:.85rem; left:auto; }

/* ─── Hébreu : fonte, sens de lecture, capitales ─── */
/* Cinzel n'a pas d'alphabet hébreu : la version hébraïque garde sa fonte. */
html[lang="he"]{
  --f-display: 'Frank Ruhl Libre', serif;
  --f-caps:    'Frank Ruhl Libre', serif;
  --f-body:    'Frank Ruhl Libre', serif;
}
/* l'hébreu n'a pas de casse : ni majuscules forcées, ni lettres espacées */
html[lang="he"] .eyebrow,
html[lang="he"] .when-date,
html[lang="he"] .when-sub,
html[lang="he"] .mem-title,
html[lang="he"] .venue-name,
html[lang="he"] .hosts,
html[lang="he"] .hl,
html[lang="he"] .intro-eyebrow,
html[lang="he"] .intro-date,
html[lang="he"] .dg-eyebrow,
html[lang="he"] .dg-bypass,
html[lang="he"] .menu-foot,
html[lang="he"] .scroll-cue span,
html[lang="he"] .btn-ghost,
html[lang="he"] .btn-cal,
html[lang="he"] .btn-primary,
html[lang="he"] .sheet-eyebrow,
html[lang="he"] .sheet-cancel,
html[lang="he"] .sheet-app-txt b,
html[lang="he"] .check-txt b,
html[lang="he"] .field label:not(.check),
html[lang="he"] .field legend,
html[lang="he"] .foot-date,
html[lang="he"] .cd-cell span{
  text-transform:none;
  letter-spacing:.01em;
}
/* tailles relevées : la Frank Ruhl a un œil plus petit en capitales espacées */
html[lang="he"] .eyebrow{ font-size:.88rem; font-weight:500; }
html[lang="he"] .when-date{ font-size:1rem; }
html[lang="he"] .when-sub{ font-size:.8rem; }
html[lang="he"] .mem-title{ font-size:.95rem; }
html[lang="he"] .venue-name{ font-size:1.06rem; }
html[lang="he"] .btn-ghost,
html[lang="he"] .btn-cal{ font-size:.8rem; }
html[lang="he"] .btn-primary{ font-size:.86rem; }
html[lang="he"] .field label:not(.check),
html[lang="he"] .field legend{ font-size:.82rem; }
html[lang="he"] .check-txt b{ font-size:1rem; }
html[lang="he"] .sheet-eyebrow{ font-size:.82rem; }
html[lang="he"] .sheet-cancel{ font-size:.84rem; }
html[lang="he"] .scroll-cue span{ font-size:.78rem; }
html[lang="he"] .intro-eyebrow{ font-size:.85rem; }
html[lang="he"] .intro-date{ font-size:.86rem; }
html[lang="he"] .menu-foot{ font-size:.8rem; }
.menu ul{ position:relative; }
html[lang="he"] .foot-date{ font-size:.82rem; }
html[lang="he"] .names span.amp{ font-size:.72em; }
html[lang="he"] .lang-code{ letter-spacing:0; }
/* l'italique n'existe pas en hébreu : on garde le romain */
html[lang="he"] .lead,
html[lang="he"] .venue-addr,
html[lang="he"] .suite-label,
html[lang="he"] .verse,
html[lang="he"] .mem-text,
html[lang="he"] .rsvp-lead,
html[lang="he"] .form-note,
html[lang="he"] .body-txt--last,
html[lang="he"] .check-txt small,
html[lang="he"] .sheet-app-txt small,
html[lang="he"] .sheet-addr,
html[lang="he"] .done-text,
html[lang="he"] .field .opt,
html[lang="he"] .field input::placeholder,
html[lang="he"] .field textarea::placeholder{
  font-style:normal;
}

/* ─── Sens de lecture ─── */
html[dir="rtl"] .form{ text-align:right; }
html[dir="rtl"] .field input,
html[dir="rtl"] .field textarea{ text-align:right; }
html[dir="rtl"] .field input[type=number]{ text-align:right; }
html[dir="rtl"] .sheet-chev{ transform:scaleX(-1); }
html[dir="rtl"] .tb-burger i:last-child{ margin-left:0; margin-right:auto; }
html[dir="rtl"] .check-txt{ text-align:right; }

/* le vav de liaison se colle au prénom ; pas de vav isolé sur l'accueil */
html[lang="he"] .names span.amp{ margin:0; }
html[lang="he"] .intro-amp{ display:none; }
html[lang="he"] .intro-title span:nth-child(1){ margin-bottom:.12em; }

/* le visage de gauche était coupé : on décale le cadrage */
.img-third{ object-position:40% 45% !important; }

/* le bouton musique et les langues sont là dès l'arrivée */
.music-btn, .lang{ z-index:155; }
