  :root{ scroll-behavior:smooth; }
  html{scroll-behavior:smooth;}
  body{ background:#FBF9F6; color:#211E1C; font-family:'Manrope',sans-serif; }
  .font-serif-i{ font-family:'Cormorant Garamond', serif; font-style:italic; }

  /* ---------- reveal on scroll ---------- */
  .reveal{ opacity:0; transform:translateY(28px); transition:opacity .9s cubic-bezier(.16,.8,.24,1), transform .9s cubic-bezier(.16,.8,.24,1); }
  .reveal.is-visible{ opacity:1; transform:none; }
  .reveal-scale{ opacity:0; transform:scale(.96); transition:opacity 1s ease, transform 1.1s cubic-bezier(.16,.8,.24,1); }
  .reveal-scale.is-visible{ opacity:1; transform:scale(1); }
  @media (prefers-reduced-motion: reduce){
    .reveal, .reveal-scale{ transition:none !important; opacity:1 !important; transform:none !important; }
    .arc-draw{ stroke-dashoffset:0 !important; }
  }

  /* ---------- image placeholders ---------- */
  .img-ph{ position:relative; overflow:hidden; background:linear-gradient(135deg,#F7ECE9 0%,#E9DCC9 100%); display:flex; align-items:center; justify-content:center; }
  .img-ph::before{ content:''; position:absolute; inset:0; background-image:radial-gradient(circle at 1px 1px, rgba(33,30,28,.06) 1px, transparent 0); background-size:16px 16px; opacity:.6; }
  .img-ph .ph-label{ position:relative; z-index:1; font-size:.68rem; letter-spacing:.18em; text-transform:uppercase; color:rgba(33,30,28,.5); border:1px solid rgba(33,30,28,.22); padding:.55rem 1.1rem; border-radius:999px; background:rgba(255,255,255,.55); backdrop-filter:blur(2px); white-space:nowrap; }
  .img-ph.dark{ background:linear-gradient(135deg,#3A3532 0%,#211E1C 100%); }
  .img-ph.dark::before{ background-image:radial-gradient(circle at 1px 1px, rgba(255,255,255,.06) 1px, transparent 0); }
  .img-ph.dark .ph-label{ color:rgba(255,255,255,.6); border-color:rgba(255,255,255,.25); background:rgba(255,255,255,.06); }

  /* ---------- nav ---------- */
  #navbar{ transition:background-color .5s ease, box-shadow .5s ease, backdrop-filter .5s ease, padding .4s ease; }
  #navbar.scrolled{ background-color:rgba(251,249,246,.92); backdrop-filter:blur(10px); box-shadow:0 1px 0 rgba(33,30,28,.06), 0 10px 30px -20px rgba(33,30,28,.25); }
  .nav-link{ position:relative; }
  .nav-link::after{ content:''; position:absolute; left:0; right:0; bottom:-6px; height:1px; background:#AD8A54; transform:scaleX(0); transform-origin:left; transition:transform .35s cubic-bezier(.16,.8,.24,1); }
  .nav-link:hover::after{ transform:scaleX(1); }

  .underline-link{ position:relative; display:inline-flex; align-items:center; gap:.4rem; }
  .underline-link::after{ content:''; position:absolute; left:0; right:0; bottom:-4px; height:1px; background:currentColor; opacity:.5; transform:scaleX(0); transform-origin:left; transition:transform .4s cubic-bezier(.16,.8,.24,1); }
  .underline-link:hover::after{ transform:scaleX(1); }
  .underline-link svg{ transition:transform .35s cubic-bezier(.16,.8,.24,1); }
  .underline-link:hover svg{ transform:translate(3px,-3px); }

  .btn-primary{ background:#211E1C; color:#FBF9F6; transition:background-color .35s ease, transform .35s ease; }
  .btn-primary:hover{ background:#3A3532; transform:translateY(-2px); }
  .btn-gold{ background:#AD8A54; color:#FBF9F6; transition:background-color .35s ease, transform .35s ease; }
  .btn-gold:hover{ background:#96754A; transform:translateY(-2px); }

  .arc-draw{ stroke-dasharray:340; stroke-dashoffset:340; animation:drawArc 1.8s cubic-bezier(.65,0,.35,1) .3s forwards; }
  @keyframes drawArc{ to{ stroke-dashoffset:0; } }

  .card-lift{ transition:transform .5s cubic-bezier(.16,.8,.24,1), box-shadow .5s ease; }
  .card-lift:hover{ transform:translateY(-6px); box-shadow:0 24px 48px -28px rgba(33,30,28,.28); }

  .zoom-wrap{ overflow:hidden; }
  .zoom-img{ transition:transform 1.1s cubic-bezier(.16,.8,.24,1); }
  .zoom-wrap:hover .zoom-img{ transform:scale(1.06); }

  .ghost-num{ font-family:'Cormorant Garamond',serif; font-weight:500; color:transparent; -webkit-text-stroke:1px rgba(33,30,28,.18); line-height:1; }

  .filter-btn.active{ background:#211E1C; color:#FBF9F6; }

  ::selection{ background:#E9DCC9; color:#211E1C; }

  .divider-gold{ height:1px; background:linear-gradient(90deg, transparent, rgba(173,138,84,.5), transparent); }

  /* whatsapp float */
  #wa-float{ transition:transform .3s cubic-bezier(.16,.8,.24,1); }
  #wa-float:hover{ transform:scale(1.06); }
  #wa-tooltip{ opacity:0; transform:translateX(8px); transition:opacity .3s ease, transform .3s ease; pointer-events:none; }
  #wa-float:hover #wa-tooltip{ opacity:1; transform:translateX(0); }

  .count-num{ font-variant-numeric:tabular-nums; }

  .mobile-menu{ transition:transform .45s cubic-bezier(.16,.8,.24,1); transform:translateX(100%); pointer-events:none; overflow-y:auto; -webkit-overflow-scrolling:touch; box-shadow:-12px 0 40px -20px rgba(33,30,28,.25); background-color:#FBF9F6 !important; }
  .mobile-menu.is-open{ transform:translateX(0); pointer-events:auto; }

  input:focus-visible, button:focus-visible, a:focus-visible{ outline:2px solid #AD8A54; outline-offset:3px; }
