* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body { background: #f2f0ea; overflow-x: hidden; }
a { color: #7a9184; }
a:hover { color: #93a89a; }
::selection { background: #7a9184; color: #f2f0ea; }
image-slot { --is-bg: #e7e4db; }
@keyframes fp-tick { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@keyframes fp-scroll { 0% { transform: translateY(-100%); } 60%, 100% { transform: translateY(100%); } }
@keyframes fp-pulse { 0%, 100% { opacity: .45; } 50% { opacity: 1; } }
@keyframes fp-breathe { 0%, 100% { transform: translate(-50%,-50%) rotate(-5deg) scale(1); } 50% { transform: translate(-50%,-50%) rotate(-5deg) scale(1.055); } }
@media (prefers-reduced-motion: reduce) { * { animation: none !important; transition: none !important; } }
* { -webkit-tap-highlight-color: transparent; }
input, select, button { font-size: max(1em, 16px); }

/* hauteur réelle du viewport mobile (barre d'adresse iOS/Android) */
@supports (height: 100dvh) {
  section[data-scene="env"], section[data-scene="env"] > div,
  section[data-scene="names"] > div { height: 100dvh !important; }
}

@media (max-width: 640px) {
  [data-chrome="rail"] { display: none !important; }
  [data-chrome="mark"] { top: 14px !important; }
  a[data-chrome="pill"] { bottom: max(16px, env(safe-area-inset-bottom)) !important; right: 14px !important; padding: 13px 19px 13px 24px !important; }
}

/* Utilities translated from Javascript bindings */
.d-none { display: none !important; }
.v-hidden { visibility: hidden !important; }
.rsvp-chip { flex: 1; appearance: none; cursor: pointer; font-family: 'Cormorant Garamond', serif; font-size: 18px; padding: 10px 16px; border-radius: 999px; transition: all .25s ease; min-height: 44px; }
.rsvp-chip-intol { flex: 0 0 auto; appearance: none; cursor: pointer; font-family: 'Cormorant Garamond', serif; font-size: 17px; padding: 9px 16px; border-radius: 999px; transition: all .25s ease; min-height: 44px; }
.rsvp-chip.active, .rsvp-chip-intol.active { background: #f2f0ea; color: #7a9184; border: 1px solid #f2f0ea; }
.rsvp-chip.inactive, .rsvp-chip-intol.inactive { background: transparent; color: rgba(242,240,234,.85); border: 1px solid rgba(242,240,234,.4); }
