    *,
    *::before,
    *::after {
      box-sizing: border-box;
      margin: 0;
      padding: 0;
    }

    :root {
      --bg: #0f0e0c;
      --surface: #1c1916;
      --surface2: #252118;
      --cream: #f0ead8;
      --cream2: #d4c9ae;
      --accent: #e07d3c;
      --accent2: #4e8c6a;
      --muted: #6b6358;
      --radius: 18px;
      --tab-h: 72px;
      --safe-bottom: env(safe-area-inset-bottom, 0px);
    }

    html {
      scroll-behavior: smooth;
      background: var(--bg);
    }

    body {
      background: var(--bg);
      color: var(--cream);
      font-family: 'DM Sans', sans-serif;
      font-weight: 300;
      overflow-x: hidden;
      padding-bottom: calc(var(--tab-h) + var(--safe-bottom) + 10px);
    }

    .page {
      display: none;
      min-height: 100svh;
    }

    .page.active {
      display: block;
    }

    /* ══ HOME ══ */
    .home-hero {
      min-height: 100svh;
      display: flex;
      flex-direction: column;
      justify-content: flex-end;
      padding: 0 0 2.5rem;
      position: relative;
      overflow: hidden;
    }

    .home-bg {
      position: absolute;
      inset: 0;
      background:
        radial-gradient(ellipse at 70% 20%, rgba(224, 125, 60, 0.18) 0%, transparent 55%),
        radial-gradient(ellipse at 20% 80%, rgba(78, 140, 106, 0.12) 0%, transparent 50%),
        linear-gradient(180deg, #0f0e0c 0%, #1a1612 100%);
    }

    .home-bg::after {
      content: '';
      position: absolute;
      inset: 0;
      background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
      opacity: 0.4;
      pointer-events: none;
    }

    .home-content {
      position: relative;
      z-index: 2;
      padding: 0 1.5rem;
    }

    .home-pill {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      background: rgba(224, 125, 60, 0.12);
      border: 1px solid rgba(224, 125, 60, 0.25);
      border-radius: 100px;
      padding: 0.35rem 0.85rem;
      font-size: 0.68rem;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      color: var(--accent);
      margin-bottom: 1.25rem;
      opacity: 0;
      animation: fadeUp 0.6s ease forwards 0.3s;
    }

    .home-pill .dot {
      width: 5px;
      height: 5px;
      background: var(--accent);
      border-radius: 50%;
      animation: pulse 2s ease infinite;
    }

    .home-title {
      font-family: 'Syne', sans-serif;
      font-weight: 800;
      font-size: clamp(3.8rem, 18vw, 6rem);
      line-height: 0.92;
      letter-spacing: -0.03em;
      color: var(--cream);
      opacity: 0;
      animation: fadeUp 0.7s ease forwards 0.45s;
    }

    .home-title em {
      font-family: 'Instrument Serif', serif;
      font-style: italic;
      font-weight: 400;
      color: var(--accent);
    }

    .home-sub {
      margin-top: 1.25rem;
      font-size: 0.9rem;
      line-height: 1.7;
      color: var(--muted);
      max-width: 280px;
      opacity: 0;
      animation: fadeUp 0.7s ease forwards 0.6s;
    }

    .home-stats {
      display: flex;
      gap: 2rem;
      margin-top: 2.5rem;
      opacity: 0;
      animation: fadeUp 0.7s ease forwards 0.75s;
    }

    .stat-item {
      display: flex;
      flex-direction: column;
      gap: 2px;
    }

    .stat-num {
      font-family: 'Syne', sans-serif;
      font-weight: 700;
      font-size: 1.6rem;
      color: var(--cream);
      line-height: 1;
    }

    .stat-label {
      font-size: 0.62rem;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      color: var(--muted);
    }

    .home-scroll-hint {
      position: absolute;
      bottom: 90px;
      right: 1.5rem;
      writing-mode: vertical-rl;
      font-size: 0.6rem;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      color: var(--muted);
      display: flex;
      align-items: center;
      gap: 0.5rem;
      opacity: 0;
      animation: fadeUp 0.7s ease forwards 1s;
    }

    .home-scroll-hint::after {
      content: '';
      display: block;
      width: 1px;
      height: 36px;
      background: linear-gradient(to bottom, var(--accent), transparent);
    }

    .section-top {
      display: flex;
      align-items: baseline;
      justify-content: space-between;
      padding: 2rem 1.5rem 1rem;
    }

    .section-top h2 {
      font-family: 'Syne', sans-serif;
      font-weight: 700;
      font-size: 1.3rem;
      color: var(--cream);
    }

    .section-top h2 em {
      font-family: 'Instrument Serif', serif;
      font-style: italic;
      font-weight: 400;
      color: var(--accent);
    }

    .section-top .count {
      font-size: 0.7rem;
      letter-spacing: 0.15em;
      color: var(--muted);
      text-transform: uppercase;
    }

    /* Members scroll */
    .members-scroll {
      overflow-x: auto;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: none;
      padding: 0.5rem 1.5rem 1.5rem;
      display: flex;
      gap: 1rem;
    }

    .members-scroll::-webkit-scrollbar {
      display: none;
    }

    .member-card {
      flex: 0 0 200px;
      background: var(--surface);
      border-radius: var(--radius);
      overflow: hidden;
      position: relative;
      border: 1px solid rgba(255, 255, 255, 0.04);
      transition: transform 0.2s ease;
    }

    .member-card:active {
      transform: scale(0.97);
    }

    .member-img-wrap {
      position: relative;
      aspect-ratio: 3/4;
      overflow: hidden;
    }

    .member-img-wrap::after {
      content: '';
      position: absolute;
      inset: 0;
      background: linear-gradient(to top, rgba(15, 14, 12, 0.85) 0%, transparent 50%);
    }

    .member-photo {
      width: 100%;
      height: 100%;
      object-fit: cover;
      filter: saturate(85%);
    }

    .member-num {
      position: absolute;
      top: 10px;
      right: 12px;
      font-family: 'Syne', sans-serif;
      font-size: 0.7rem;
      color: rgba(240, 234, 216, 0.5);
      z-index: 2;
    }

    .member-info {
      position: absolute;
      bottom: 0;
      left: 0;
      right: 0;
      padding: 1rem;
      z-index: 2;
    }

    .member-name {
      font-family: 'Syne', sans-serif;
      font-weight: 700;
      font-size: 1.05rem;
      color: var(--cream);
      line-height: 1;
    }

    .member-role {
      font-size: 0.6rem;
      letter-spacing: 0.15em;
      text-transform: uppercase;
      color: var(--accent);
      margin-top: 3px;
    }

    .member-desc-full {
      padding: 0.9rem 1rem 1.1rem;
      font-size: 0.8rem;
      line-height: 1.65;
      color: var(--muted);
    }

    .member-photo-placeholder {
      width: 100%;
      height: 100%;
      background: var(--surface2);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 2.5rem;
      opacity: 0.3;
    }

    /* ══ MOTOS PAGE ══ */
    .page-header {
      padding: 2rem 1.5rem 1.5rem;
    }

    .page-header .tag {
      font-size: 0.62rem;
      letter-spacing: 0.25em;
      text-transform: uppercase;
      color: var(--accent);
      margin-bottom: 0.5rem;
    }

    .page-header h1 {
      font-family: 'Syne', sans-serif;
      font-weight: 800;
      font-size: 2.2rem;
      line-height: 1;
      letter-spacing: -0.02em;
    }

    .page-header h1 em {
      font-family: 'Instrument Serif', serif;
      font-style: italic;
      font-weight: 400;
      color: var(--accent);
    }

    .page-header p {
      margin-top: 0.5rem;
      font-size: 0.85rem;
      color: var(--muted);
    }

    /* ── Motos scroll (même style que membres) ── */
    .motos-scroll {
      overflow-x: auto;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: none;
      padding: 0.5rem 1.5rem 1.5rem;
      display: flex;
      gap: 1rem;
    }

    .motos-scroll::-webkit-scrollbar {
      display: none;
    }

    .moto-card {
      flex: 0 0 210px;
      background: var(--surface);
      border-radius: var(--radius);
      overflow: hidden;
      position: relative;
      border: 1px solid rgba(255, 255, 255, 0.04);
      transition: transform 0.2s ease;
    }

    .moto-card:active {
      transform: scale(0.97);
    }

    .moto-img-wrap {
      position: relative;
      aspect-ratio: 3/4;
      overflow: hidden;
    }

    .moto-img-wrap::after {
      content: '';
      position: absolute;
      inset: 0;
      background: linear-gradient(to top, rgba(15, 14, 12, 0.88) 0%, rgba(15, 14, 12, 0.1) 55%, transparent 100%);
    }

    .moto-card-photo {
      width: 100%;
      height: 100%;
      object-fit: cover;
      filter: saturate(80%) brightness(0.9);
      transition: transform 0.4s ease, filter 0.3s ease;
    }

    .moto-card:active .moto-card-photo {
      transform: scale(1.04);
      filter: saturate(100%) brightness(1);
    }

    .moto-card-num {
      position: absolute;
      top: 10px;
      right: 12px;
      font-family: 'Syne', sans-serif;
      font-size: 0.7rem;
      color: rgba(240, 234, 216, 0.5);
      z-index: 2;
    }

    .moto-card-change {
      position: absolute;
      top: 10px;
      left: 12px;
      background: rgba(15, 14, 12, 0.55);
      border: 1px solid rgba(224, 125, 60, 0.35);
      border-radius: 100px;
      padding: 0.22rem 0.5rem;
      font-size: 0.55rem;
      letter-spacing: 0.15em;
      text-transform: uppercase;
      color: var(--accent);
      z-index: 4;
      cursor: pointer;
      backdrop-filter: blur(4px);
      transition: background 0.2s;
    }

    .moto-card-change:active {
      background: rgba(224, 125, 60, 0.25);
    }

    .moto-card-change input {
      display: none;
    }

    .moto-card-info {
      position: absolute;
      bottom: 0;
      left: 0;
      right: 0;
      padding: 1rem;
      z-index: 2;
    }

    .moto-card-owner {
      font-size: 0.58rem;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      color: var(--accent);
      margin-bottom: 2px;
    }

    .moto-card-name {
      font-family: 'Syne', sans-serif;
      font-weight: 700;
      font-size: 1.05rem;
      color: var(--cream);
      line-height: 1;
    }

    .moto-card-body {
      padding: 0.9rem 1rem 1.1rem;
      font-size: 0.8rem;
      line-height: 1.65;
      color: var(--muted);
    }

    /* ══ MAISON PAGE ══ */
    .maison-header .tag {
      color: var(--accent2);
    }

    .maison-header h1 em {
      color: var(--accent2);
    }

    .maison-big-card {
      margin: 0 1.5rem;
      background: var(--surface);
      border-radius: var(--radius);
      overflow: hidden;
      border: 1px solid rgba(255, 255, 255, 0.04);
    }

    .maison-photo-area {
      position: relative;
      aspect-ratio: 4/3;
      overflow: hidden;
      background: var(--surface2);
    }

    /* VIDEO CABANE */

    .maison-photo-area {
      position: relative;
      overflow: hidden;
      background: black;
    }

    /* vidéo */
    .maison-video {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center;
      display: block;
    }

    /* 📱 TELEPHONE = style TikTok plein écran */
    @media (max-width:768px) {

      .maison-photo-area {
        height: 100vh;
        aspect-ratio: auto;
      }

      .maison-video {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center;
        display: block;
        transform: scaleX(-1);
      }
    }

    /* 💻 PC = vidéo dans la carte */
    @media (min-width:769px) {

      .maison-photo-area {
        aspect-ratio: 4/3;
        height: auto;
      }

      .maison-video {
        width: 100%;
        height: 100%;
        object-fit: cover;
      }

    }

    .maison-upload-overlay {
      display: none !important;
    }

    .maison-photo-area::after {
      content: '';
      position: absolute;
      inset: 0;
      background: linear-gradient(to top, rgba(15, 14, 12, 0.5) 0%, transparent 60%);
      pointer-events: none;
    }

    .maison-upload-overlay {
      position: absolute;
      inset: 0;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 1rem;
      z-index: 4;
    }

    .maison-upload-overlay label {
      position: absolute;
      inset: 0;
      cursor: pointer;
      z-index: 5;
    }

    .maison-upload-overlay input {
      display: none;
    }

    .house-big {
      font-size: 3.5rem;
      opacity: 0.2;
    }

    .maison-upload-overlay p {
      font-family: 'Instrument Serif', serif;
      font-style: italic;
      font-size: 1.1rem;
      color: var(--muted);
    }

    .maison-upload-overlay span {
      font-size: 0.62rem;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      color: rgba(107, 99, 88, 0.7);
      border: 1px dashed rgba(107, 99, 88, 0.4);
      padding: 0.4rem 0.8rem;
      border-radius: 100px;
    }

    .maison-body {
      padding: 1.25rem 1.5rem 1.75rem;
    }

    .maison-quote {
      font-family: 'Instrument Serif', serif;
      font-style: italic;
      font-size: 1.1rem;
      color: var(--cream2);
      line-height: 1.5;
    }

    .maison-quote::before {
      content: '\201C';
      color: var(--accent2);
    }

    .maison-quote::after {
      content: '\201D';
      color: var(--accent2);
    }

    .maison-meta {
      display: flex;
      gap: 1.5rem;
      margin-top: 1.2rem;
      padding-top: 1.2rem;
      border-top: 1px solid rgba(255, 255, 255, 0.06);
    }

    .maison-meta-item {
      display: flex;
      flex-direction: column;
      gap: 2px;
    }

    .maison-meta-val {
      font-family: 'Syne', sans-serif;
      font-weight: 700;
      font-size: 1.3rem;
      color: var(--cream);
    }

    .maison-meta-key {
      font-size: 0.6rem;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      color: var(--muted);
    }

    .moments-section {
      padding: 2rem 1.5rem 1rem;
    }

    .moments-section h3 {
      font-family: 'Syne', sans-serif;
      font-weight: 700;
      font-size: 1rem;
      color: var(--cream);
      margin-bottom: 1rem;
    }

    .moments-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 6px;
    }

    .moment-cell {
      aspect-ratio: 1;
      border-radius: 10px;
      background: var(--surface2);
      overflow: hidden;
      position: relative;
      cursor: pointer;
    }

    .moment-cell img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }

    .moment-add {
      display: flex;
      align-items: center;
      justify-content: center;
      border: 1.5px dashed rgba(255, 255, 255, 0.1);
    }

    .moment-add label {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 100%;
      height: 100%;
      cursor: pointer;
      font-size: 1.5rem;
      opacity: 0.3;
    }

    .moment-add label input {
      display: none;
    }

    /* ══ BOTTOM NAV ══ */
    .bottom-nav {
      position: fixed;
      bottom: 0;
      left: 0;
      right: 0;
      height: calc(var(--tab-h) + var(--safe-bottom));
      background: rgba(15, 14, 12, 0.92);
      backdrop-filter: blur(20px) saturate(180%);
      -webkit-backdrop-filter: blur(20px) saturate(180%);
      border-top: 1px solid rgba(255, 255, 255, 0.06);
      display: flex;
      align-items: flex-start;
      padding-top: 10px;
      z-index: 100;
    }

    .nav-item {
      flex: 1;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 4px;
      cursor: pointer;
      padding: 4px 0;
      position: relative;
      -webkit-tap-highlight-color: transparent;
      user-select: none;
    }

    .nav-icon {
      font-size: 1.35rem;
      transition: transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1);
    }

    .nav-label {
      font-size: 0.58rem;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      color: var(--muted);
      transition: color 0.2s;
    }

    .nav-dot {
      width: 4px;
      height: 4px;
      border-radius: 50%;
      background: var(--accent);
      opacity: 0;
      transition: opacity 0.2s;
      position: absolute;
      top: 2px;
    }

    .nav-item.active .nav-dot {
      opacity: 1;
    }

    .nav-item.active .nav-icon {
      transform: scale(1.15) translateY(-2px);
    }

    .nav-item.active .nav-label {
      color: var(--accent);
    }

    .nav-item:not(.active) .nav-icon {
      opacity: 0.45;
    }

    a {
      color: white;
    }

    .maison-hero-photo {
      width: 100%;
      height: 100%;
      display: block;
      object-fit: cover;
      object-position: center;
    }

    .member-info a {
      margin-top: 2px;
      display: inline-block;
      font-size: 0.65rem;
      color: var(--accent);
      text-decoration: none;
      opacity: 0.8;
    }

    .member-info a:hover {
      opacity: 1;
    }

    .nav-item {
      text-decoration: none;
      color: inherit;
    }

    .member-desc-full a{
      display: inline-block;
      margin-top: 10px;
    }

    @media (max-width:768px) {
      .maison-photo-area {
        height: auto !important;
        aspect-ratio: 1 / 1 !important;
        overflow: hidden;
        background: var(--surface2);
      }

      .maison-hero-photo {
        width: 100%;
        height: 100%;
        display: block;
        object-fit: cover;
        object-position: center;
      }
    }

    @keyframes fadeUp {
      from {
        opacity: 0;
        transform: translateY(16px);
      }

      to {
        opacity: 1;
        transform: translateY(0);
      }
    }

    @keyframes pulse {

      0%,
      100% {
        opacity: 1;
      }

      50% {
        opacity: 0.4;
      }
    }

    @media (max-width: 768px) {
      .home-hero {
        min-height: auto;
        padding: 1.2rem 0 1rem;
        justify-content: flex-start;
      }

      .home-title {
        font-size: clamp(2.6rem, 14vw, 4rem);
      }

      .home-scroll-hint {
        display: none;
      }

      .section-top {
        padding-top: 1rem;
      }
    }