/* Supplementary animations — counter, parallax helpers */
@keyframes count-pop{from{transform:translateY(16px);opacity:0;}to{transform:translateY(0);opacity:1;}}
.counter.is-in{animation:count-pop 700ms var(--ease-out) both;}

.parallax{transition:transform .3s linear;will-change:transform;}

/* Cursor magnet dot */
.cursor-dot{
    position:fixed;top:0;left:0;z-index:1000;
    width:10px;height:10px;border-radius:50%;
    background:var(--gold-500);pointer-events:none;
    transform:translate(-50%,-50%);
    mix-blend-mode:difference;opacity:0;
    transition:opacity .3s ease;
}
@media (hover:hover){.cursor-dot{opacity:.8;}}
@media (max-width:900px){.cursor-dot{display:none;}}

/* Image reveal */
.img-reveal{position:relative;overflow:hidden;}
.img-reveal img{transform:scale(1.08);transition:transform 1.6s var(--ease-out);}
.img-reveal.is-in img{transform:scale(1);}
.img-reveal::before{
    content:"";position:absolute;inset:0;background:var(--ink-900);
    transform:scaleX(1);transform-origin:right;
    transition:transform 1s var(--ease-out);z-index:1;
}
.img-reveal.is-in::before{transform:scaleX(0);transform-origin:left;}
