/* ================= PAGE TRANSITION OVERLAY ================= */
/* default state = covering the viewport (no flash on first paint); JS lifts it away once ready */
.page-transition{
  position:fixed;inset:0;z-index:600;background:#000;
  transform:translateY(0);pointer-events:none;
}
.page-transition.reveal{transform:translateY(-100%);transition:transform .55s cubic-bezier(.76,0,.24,1);}
.page-transition.cover{transform:translateY(0);transition:transform .45s cubic-bezier(.76,0,.24,1);}

/* ================= CUSTOM CURSOR ================= */
@media (hover:hover) and (pointer:fine){
  html.has-cursor, html.has-cursor body{cursor:none;}
  .cursor-dot,.cursor-ring{
    position:fixed;top:0;left:0;z-index:999;pointer-events:none;
    border-radius:50%;
    transform:translate(-50%,-50%);
    will-change:transform;
  }
  .cursor-dot{width:6px;height:6px;background:#fff;mix-blend-mode:difference;transition:opacity .2s;}
  .cursor-ring{
    width:38px;height:38px;border:1.5px solid #fff;mix-blend-mode:difference;
    transition:width .25s,height .25s,opacity .2s;
  }
  .cursor-ring.hovering{width:64px;height:64px;background:rgba(255,255,255,.2);}
  .cursor-dot.hidden-cursor,.cursor-ring.hidden-cursor{opacity:0;}
}

/* ================= SCROLL TEXT REVEAL ================= */
.tr-mask{display:inline-block;overflow:hidden;vertical-align:top;}
.tr-word{
  display:inline-block;transform:translateY(115%);
  transition:transform .8s cubic-bezier(.16,1,.3,1);
  transition-delay:calc(var(--tr-i, 0) * 60ms);
}
.text-reveal.inview .tr-word{transform:translateY(0);}

/* ================= MAGNETIC / HOVER-GROW ================= */
.work-item-block .thumbnail,
.director-card .thumb{
  transition:transform .6s cubic-bezier(.16,1,.3,1);
}
.work-item-block:hover .thumbnail{transform:scale(1.04);}
.director-card:hover .thumb{transform:scale(1.03);}

.get-in-touch, .playpause{
  transition:transform .35s cubic-bezier(.16,1,.3,1), opacity .2s, background .2s, color .2s, border-color .2s;
}
