/* ==========================================================================
   BRDigital — Motion Layer
   ========================================================================== */

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
}

#page{ transition:opacity .5s ease; }

/* ---- Cursor follower ---- */
.cursor-dot, .cursor-ring{ position:fixed; top:0; left:0; pointer-events:none; z-index:9998; border-radius:50%; transform:translate(-50%,-50%); will-change:transform; }
.cursor-dot{ width:6px; height:6px; background:var(--orange-4); }
.cursor-ring{ width:34px; height:34px; border:1px solid rgba(255,140,26,.5); transition:width .25s,height .25s,border-color .25s,background .25s; }
.cursor-ring.hover{ width:60px; height:60px; background:rgba(255,107,0,.08); border-color:var(--orange-3); }
@media (hover:none){ .cursor-dot,.cursor-ring{ display:none; } }

/* ---- Generic scroll reveal (driven by GSAP, classes toggled via JS) ---- */
.reveal{ opacity:0; transform:translateY(46px); }
.reveal-fade{ opacity:0; }
.reveal-scale{ opacity:0; transform:scale(.92); }
.reveal-left{ opacity:0; transform:translateX(-50px); }
.reveal-right{ opacity:0; transform:translateX(50px); }
.reveal-mask{ overflow:hidden; }
.reveal-mask > *{ display:inline-block; transform:translateY(110%); }

/* ---- Floating elements ---- */
.float-el{ animation:floatY 6s ease-in-out infinite; }
.float-el.delay-1{ animation-delay:1.2s; }
.float-el.delay-2{ animation-delay:2.4s; }
@keyframes floatY{ 0%,100%{ transform:translateY(0);} 50%{ transform:translateY(-18px);} }

/* ---- Pulse glow ---- */
.pulse-glow{ animation:pulseGlow 4s ease-in-out infinite; }
@keyframes pulseGlow{ 0%,100%{ opacity:.5;} 50%{ opacity:1;} }

/* ---- Gradient shift (animated gradients) ---- */
.grad-anim{ background-size:200% 200%; animation:gradShift 8s ease infinite; }
@keyframes gradShift{ 0%{background-position:0% 50%;} 50%{background-position:100% 50%;} 100%{background-position:0% 50%;} }

/* ---- Page loader (non-intro pages) ---- */
.page-loader{ position:fixed; inset:0; z-index:9999; background:var(--bg-void); display:flex; align-items:center; justify-content:center; }
.loader-mark{ width:54px; height:54px; border-radius:16px; background:var(--orange-grad); display:flex; align-items:center; justify-content:center; font-family:var(--f-display); font-weight:800; color:#170b00; animation:loaderPulse 1.1s ease-in-out infinite; }
@keyframes loaderPulse{ 0%,100%{ transform:scale(1); opacity:1;} 50%{ transform:scale(.85); opacity:.6;} }

/* ---- Tilt shadow helper ---- */
[data-tilt]{ transform-style:preserve-3d; }

/* ---- Marquee logos svg tone ---- */
.brand-logo{ filter:grayscale(1) opacity(.55); transition:filter .3s; }
.brand-logo:hover{ filter:grayscale(0) opacity(1); }
