:root{
    --ink:#0B0A09; --gold:#C2A268; --gold-bright:#E0C792; --cream:#F4EFE7;
  }
  html{ scroll-behavior:smooth; }
  body{ font-family:'Hanken Grotesk',sans-serif; background:#0B0A09; color:#F4EFE7; -webkit-font-smoothing:antialiased; }
  ::selection{ background:rgba(194,162,104,0.32); color:#fff; }

  /* Hide scrollbar but keep scroll */
  ::-webkit-scrollbar{ width:9px; height:9px; }
  ::-webkit-scrollbar-track{ background:#0B0A09; }
  ::-webkit-scrollbar-thumb{ background:#2C261E; border-radius:9px; }
  ::-webkit-scrollbar-thumb:hover{ background:#9C7E45; }

  .font-serif{ font-family:'Cormorant Garamond',serif; }
  .eyebrow{ font-family:'Hanken Grotesk',sans-serif; text-transform:uppercase; letter-spacing:0.36em; font-weight:700; font-size:11px; }

  .gold-text{
    background:linear-gradient(180deg,#E8D3A4 0%,#C2A268 55%,#9C7E45 100%);
    -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
  }
  .hairline{ background:linear-gradient(90deg,transparent,rgba(194,162,104,0.55),transparent); }

  /* Cinematic slow zoom */
  @keyframes slowZoom{ 0%{ transform:scale(1.02); } 50%{ transform:scale(1.14); } 100%{ transform:scale(1.02); } }
  .slow-zoom{ animation:slowZoom 34s ease-in-out infinite; }

  /* Film grain overlay */
  .grain::after{
    content:""; position:absolute; inset:0; pointer-events:none; opacity:0.05; mix-blend-mode:overlay;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  }

  /* Scroll reveal */
  .reveal{ opacity:0; transform:translateY(34px); transition:opacity 1.1s cubic-bezier(.16,1,.3,1), transform 1.1s cubic-bezier(.16,1,.3,1); will-change:opacity,transform; }
  .reveal.in{ opacity:1; transform:none; }

  /* Image slot styling on dark */
  image-slot{ --slot-bg:#16130F; }

  /* Pulse dot */
  @keyframes softpulse{ 0%,100%{ opacity:1; transform:scale(1);} 50%{ opacity:.35; transform:scale(.8);} }
  .pulse-dot{ animation:softpulse 2.4s ease-in-out infinite; }

  /* Marquee */
  @keyframes marquee{ 0%{ transform:translateX(0);} 100%{ transform:translateX(-50%);} }
  .marquee-track{ animation:marquee 38s linear infinite; }

  /* Nav link underline */
  .nav-link{ position:relative; }
  .nav-link::after{ content:""; position:absolute; left:0; bottom:-6px; height:1px; width:0; background:#C2A268; transition:width .4s cubic-bezier(.16,1,.3,1); }
  .nav-link:hover::after{ width:100%; }

  /* Button shimmer */
  .btn-gold{ position:relative; overflow:hidden; }
  .btn-gold::before{ content:""; position:absolute; top:0; left:-130%; width:60%; height:100%; transform:skewX(-20deg);
    background:linear-gradient(90deg,transparent,rgba(255,255,255,.45),transparent); transition:left .7s ease; }
  .btn-gold:hover::before{ left:130%; }

  /* Service card hover lift */
  .lift{ transition:transform .6s cubic-bezier(.16,1,.3,1), box-shadow .6s, border-color .6s, background .6s; }

  /* Process spine fade (opacity avoids clobbering Tailwind translate classes) */
  .proc-line{ opacity:0; transition:opacity 1.4s cubic-bezier(.16,1,.3,1); }
  .proc-line.in{ opacity:1; }

  /* Reduce motion */
  @media (prefers-reduced-motion: reduce){
    .slow-zoom{ animation:none; } .reveal{ transition:none; opacity:1; transform:none; }
    .marquee-track{ animation:none; }
  }

  /* Custom range/focus */
  input:focus, textarea:focus, select:focus{ outline:none; }
  .no-tap{ -webkit-tap-highlight-color:transparent; }