/* ===================== Premium mouse cursor ===================== */
body.cursor-active, body.cursor-active a, body.cursor-active button,
body.cursor-active input, body.cursor-active textarea, body.cursor-active select{cursor:none;}
.cursor-dot{
  position:fixed;top:0;left:0;width:7px;height:7px;background:var(--gold);border-radius:50%;
  pointer-events:none;z-index:99998;transform:translate(-50%,-50%);will-change:transform;
}
.cursor-ring{
  position:fixed;top:0;left:0;width:36px;height:36px;border:1.5px solid var(--gold);border-radius:50%;
  pointer-events:none;z-index:99998;transform:translate(-50%,-50%);will-change:left,top,width,height;
  transition:width .3s cubic-bezier(.22,1,.36,1),height .3s cubic-bezier(.22,1,.36,1),
             background .3s,border-color .3s,opacity .3s;
}
.cursor-ring.hover{width:60px;height:60px;background:rgba(201,154,46,.12);}
.cursor-ring.hidden,.cursor-dot.hidden{opacity:0;}

/* ===================== Page transition overlay ===================== */
.page-transition{
  position:fixed;inset:0;background:var(--charcoal,#161310);z-index:999999;
  display:flex;align-items:center;justify-content:center;
  opacity:1;visibility:visible;transition:opacity .45s cubic-bezier(.22,1,.36,1),visibility .45s;
}
.page-transition.hide{opacity:0;visibility:hidden;pointer-events:none;}
.pt-mark{width:46px;height:46px;border:2px solid rgba(201,154,46,.25);border-top-color:var(--gold);
  border-radius:50%;animation:ptspin .85s linear infinite;}
@keyframes ptspin{to{transform:rotate(360deg);}}

/* ===================== Split-word text reveal ===================== */
.split-mask{display:inline-block;overflow:hidden;vertical-align:top;}
.split-word{display:inline-block;opacity:0;transform:translateY(110%);
  transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1),color .3s ease;}
.split-word.in{opacity:1;transform:translateY(0);}
.split-text:hover .split-word{color:var(--gold-deep);}

/* ===================== Scroll-in + hover for body text ===================== */
.text-fade{opacity:0;transform:translateY(16px);transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1);}
.text-fade.in{opacity:1;transform:translateY(0);}
.text-fade, .hover-text{transition:color .3s ease, opacity .7s cubic-bezier(.22,1,.36,1), transform .7s cubic-bezier(.22,1,.36,1);}
.text-fade:hover, .hover-text:hover{color:var(--gold-deep);}

@media(hover:none),(pointer:coarse){
  .cursor-dot,.cursor-ring{display:none;}
}

/* Keep the gold emphasis on the last 3 words of the hero headline */
.hero h1.split-text .split-mask:nth-last-child(-n+3) .split-word{
  color:var(--gold-deep);font-style:italic;
}
