/* Base : variables, reset, fond, section générique, animations — hudled landing */

  :root {
    --black: #080a0d;
    --deep: #0c0f14;
    --panel: #111520;
    --border: #1e2535;
    --led: #00ffe0;
    --led2: #00b8ff;
    --led3: #ff3c6e;
    --led4: #ffe000;
    --text: #e8eaf0;
    --muted: #5a6480;
    --mono: 'Share Tech Mono', monospace;
    --display: 'Bebas Neue', sans-serif;
    --body: 'DM Sans', sans-serif;
  }

  *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

  html { scroll-behavior: smooth; }

  body {
    background: var(--black);
    color: var(--text);
    font-family: var(--body);
    font-weight: 300;
    overflow-x: hidden;
  }

  /* ─── NOISE TEXTURE ─── */
  body::before {
    content: '';
    position: fixed;
    inset: 0;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
    pointer-events: none;
    z-index: 999;
    opacity: .5;
  }

/* ─── SECTION BASE ─── */
  section {
    padding: 120px 48px;
    max-width: 1280px;
    margin: 0 auto;
  }

  .section-label {
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: 4px;
    text-transform: uppercase;
    color: var(--led);
    margin-bottom: 16px;
  }

  .section-title {
    font-family: var(--display);
    font-size: clamp(48px, 5vw, 72px);
    line-height: 1;
    letter-spacing: 2px;
    color: var(--text);
  }

  .section-desc {
    margin-top: 20px;
    max-width: 640px;
    font-family: var(--body);
    font-size: 15px;
    font-weight: 300;
    color: var(--muted);
    line-height: 1.8;
  }
  .section-desc strong { color: var(--text); font-weight: 500; }

  /* ─── ANIMATIONS ─── */
  @keyframes fadeInUp {
    from { opacity: 0; transform: translateY(24px); }
    to { opacity: 1; transform: translateY(0); }
  }

  @keyframes bounce {
    0%, 100% { transform: translateX(-50%) translateY(0); }
    50% { transform: translateX(-50%) translateY(8px); }
  }

  @keyframes pulse-glow {
    0%, 100% { opacity: .8; }
    50% { opacity: 1; filter: drop-shadow(0 0 60px rgba(0,255,224,.6)); }
  }

  /* plus d'animation de lueur : façade blanche statique comme le boîtier 3D */
