  /* ── Base & Utilities ── */
  *, *::before, *::after { box-sizing: border-box; }
  html { scroll-behavior: smooth; scroll-padding-top: 80px; }
  body { overflow-x: hidden; }

  ::selection { background: #f9c3ce; color: #5a0015; }

  /* ── Navbar ── */
  #navbar {
    background: transparent;
    transition: background 0.4s ease, box-shadow 0.4s ease, backdrop-filter 0.4s ease;
  }
  #navbar.scrolled {
    background: rgba(255, 251, 245, 0.9);
    backdrop-filter: blur(20px);
    box-shadow: 0 1px 0 rgba(128, 0, 32, 0.08), 0 4px 20px rgba(0,0,0,0.06);
  }
  #navbar.scrolled .font-display { color: #5a0015; }

  /* ── Floating Cards Animation ── */
  .floating-card {
    animation: float 4s ease-in-out infinite;
  }
  .floating-card:nth-child(2) {
    animation-delay: -2s;
  }
  @keyframes float {
    0%, 100% { transform: translateY(0px); }
    50% { transform: translateY(-10px); }
  }

  /* ── Room Cards ── */
  .room-card {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.6s ease, transform 0.6s ease;
  }
  .room-card.visible {
    opacity: 1;
    transform: translateY(0);
  }

  /* ── Amenity Cards ── */
  .amenity-card {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.5s ease, transform 0.5s ease;
  }
  .amenity-card.visible {
    opacity: 1;
    transform: translateY(0);
  }

  /* ── Gallery Items ── */
  .gallery-item {
    opacity: 0;
    transform: scale(0.95);
    transition: opacity 0.6s ease, transform 0.6s ease;
  }
  .gallery-item.visible {
    opacity: 1;
    transform: scale(1);
  }

  /* ── Section Reveals ── */
  .reveal {
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 0.8s ease, transform 0.8s ease;
  }
  .reveal.visible {
    opacity: 1;
    transform: translateY(0);
  }

  /* ── Mobile Menu ── */
  #mobileMenu {
    animation: slideDown 0.3s ease forwards;
  }
  #mobileMenu.hidden {
    animation: slideUp 0.3s ease forwards;
  }
  @keyframes slideDown {
    from { opacity: 0; transform: translateY(-10px); }
    to { opacity: 1; transform: translateY(0); }
  }
  @keyframes slideUp {
    from { opacity: 1; transform: translateY(0); }
    to { opacity: 0; transform: translateY(-10px); }
  }

  /* ── Stagger delays ── */
  .stagger-1 { transition-delay: 0.1s; }
  .stagger-2 { transition-delay: 0.2s; }
  .stagger-3 { transition-delay: 0.3s; }
  .stagger-4 { transition-delay: 0.4s; }

  /* ── Smooth focus styles ── */
  input:focus, textarea:focus {
    outline: none;
  }

  /* ── Subtle gradient border on hover ── */
  .room-card:hover {
    border-color: rgba(128, 0, 32, 0.15);
  }

  /* ── Print styles ── */
  @media print {
    #navbar, .floating-card { display: none; }
    body { background: white; }
  }
