  /* ─── Base ─── */
  *, *::before, *::after { box-sizing: border-box; }
  html { scroll-behavior: smooth; }
  body { margin: 0; }

  ::selection { background: #c94f22; color: #fefaf5; }

  /* ─── Typography helpers ─── */
  .label {
    font-family: 'Instrument Sans', sans-serif;
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.15em;
    text-transform: uppercase;
  }

  /* ─── Buttons ─── */
  .btn-primary {
    display: inline-flex;
    align-items: center;
    background: #c94f22;
    color: #fefaf5;
    font-family: 'Instrument Sans', sans-serif;
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    padding: 14px 28px;
    border: none;
    cursor: pointer;
    transition: background 0.3s ease, transform 0.2s ease;
  }
  .btn-primary:hover { background: #a53b18; transform: translateY(-1px); }

  .btn-secondary {
    display: inline-flex;
    align-items: center;
    background: transparent;
    color: #fefaf5;
    font-family: 'Instrument Sans', sans-serif;
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    padding: 14px 28px;
    border: 1px solid rgba(254,250,245,0.3);
    cursor: pointer;
    transition: border-color 0.3s ease, background 0.3s ease;
  }
  .btn-secondary:hover { border-color: rgba(254,250,245,0.7); background: rgba(254,250,245,0.05); }

  /* ─── Nav ─── */
  #nav { background: transparent; }
  #nav.scrolled {
    background: rgba(254,250,245,0.95);
    backdrop-filter: blur(12px);
    box-shadow: 0 1px 0 rgba(0,0,0,0.06);
  }
  #nav.scrolled .nav-link { color: #6b3b25; }
  #nav.scrolled .nav-link:hover { color: #c94f22; }

  /* ─── Hero ─── */
  .hero-bg { will-change: transform; }
  .hero-img { will-change: transform; }

  /* ─── Room cards ─── */
  .room-card {
    background: #fefaf5;
    padding: 16px;
    transition: box-shadow 0.4s ease, transform 0.4s ease;
  }
  .room-card:hover {
    box-shadow: 0 20px 60px rgba(0,0,0,0.08);
    transform: translateY(-4px);
  }

  /* ─── Reveal animations ─── */
  .reveal {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.7s ease, transform 0.7s ease;
  }
  .reveal.visible {
    opacity: 1;
    transform: translateY(0);
  }

  /* ─── Mobile menu ─── */
  #mobile-menu.open { opacity: 1; pointer-events: all; }
  .mobile-link { opacity: 0; transform: translateY(12px); transition: opacity 0.4s ease, transform 0.4s ease; }
  #mobile-menu.open .mobile-link { opacity: 1; transform: translateY(0); }
  #mobile-menu.open .mobile-link:nth-child(1) { transition-delay: 0.05s; }
  #mobile-menu.open .mobile-link:nth-child(2) { transition-delay: 0.1s; }
  #mobile-menu.open .mobile-link:nth-child(3) { transition-delay: 0.15s; }
  #mobile-menu.open .mobile-link:nth-child(4) { transition-delay: 0.2s; }
  #mobile-menu.open .mobile-link:nth-child(5) { transition-delay: 0.25s; }

  .menu-line { transition: transform 0.3s ease, opacity 0.3s ease; }
  #menu-btn.active .menu-line:first-child { transform: translateY(4px) rotate(45deg); }
  #menu-btn.active .menu-line:last-child { transform: translateY(-4px) rotate(-45deg); }
