/* ================================
   MOBILE: STOP HORIZONTAL DRAG
   ================================ */

/* 1) Empêche le bounce horizontal */
html, body {
  width: 100%;
  max-width: 100vw;
  overflow-x: hidden !important;
  overscroll-behavior-x: none;
}

/* 2) Empêche le “pan” horizontal (ça garde le scroll vertical) */
body {
  touch-action: pan-y;
}

/* 3) Force tes wrappers principaux à ne jamais dépasser */
#app,
.flex-wrapper,
header,
.nx-navbar,
.bg-image {
  max-width: 100vw;
  overflow-x: clip; /* si pas supporté, ça se comportera comme visible */
}

/* 4) Sécurité pour médias (souvent responsables) */
img, video, canvas, svg {
  max-width: 100%;
  height: auto;
}

/* =========================================
   SNOW OVERLAY — FINAL / PC + MOBILE
   Compatible with snow()
   ========================================= */

/* Snow container */
#snow{
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 999999;
  overflow: hidden;
  display: block !important;
}

/* =========================================
   SNOW OVERLAY — ROBUST (PC + MOBILE)
   For your <i class="snowflake"></i> elements
   ========================================= */

#snow{
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 999999;
  overflow: hidden;
  display: block !important;
}

/* IMPORTANT: <i> is inline by default -> force block */
#snow .snowflake{
  display: block !important;

  position: fixed;
  top: -10px;
  left: 0;

  width: 8px;
  height: 8px;

  border-radius: 999px;
  background: rgba(255,255,255,.95);

  box-shadow:
    0 0 6px rgba(255,255,255,.35),
    0 0 14px rgba(255,255,255,.12);

  pointer-events: none;
  z-index: 999999;

  transform: translateZ(0);
  will-change: transform, opacity;
}