/* ═══════════════════════════════════════════════
   AnimPro – CSS
   ═══════════════════════════════════════════════ */

/* ── Custom Cursor ───────────────────────────── */
.anim-pro-cursor-outer {
    position: fixed;
    top: 0;
    left: 0;
    width: var(--anim-cursor-size, 40px);
    height: var(--anim-cursor-size, 40px);
    border: 2px solid var(--anim-cursor-color, #6c63ff);
    border-radius: 50%;
    pointer-events: none;
    z-index: 999999;
    transform: translate(-50%, -50%);
    transition: transform 0.12s ease, width 0.2s ease, height 0.2s ease, opacity 0.2s ease, background 0.2s ease;
    will-change: transform;
}

.anim-pro-cursor-dot {
    position: fixed;
    top: 0;
    left: 0;
    width: var(--anim-cursor-dot-size, 8px);
    height: var(--anim-cursor-dot-size, 8px);
    background: var(--anim-cursor-color, #6c63ff);
    border-radius: 50%;
    pointer-events: none;
    z-index: 999999;
    transform: translate(-50%, -50%);
    transition: transform 0.05s ease;
    will-change: transform;
}

.anim-pro-cursor-outer.is-hovering {
    width: calc(var(--anim-cursor-size, 40px) * 1.5);
    height: calc(var(--anim-cursor-size, 40px) * 1.5);
    background: rgba(108, 99, 255, 0.1);
    border-color: var(--anim-cursor-color, #6c63ff);
}

.anim-pro-cursor-outer.is-clicking {
    transform: translate(-50%, -50%) scale(0.8);
}

body.anim-pro-cursor-active * {
    cursor: none !important;
}

/* ── Parallax ─────────────────────────────────── */
.anim-pro-parallax {
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    overflow: hidden;
    position: relative;
    will-change: background-position;
}

/* ── Tilt ─────────────────────────────────────── */
.anim-pro-tilt {
    transform-style: preserve-3d;
    transform: perspective(1000px);
    will-change: transform;
}

/* ── Section wrapper ──────────────────────────── */
.anim-pro-section {
    position: relative;
}

/* ── Custom animations (extend AOS) ──────────── */
[data-aos="bounce"] {
    transform: translateY(-30px);
    opacity: 0;
    transition-timing-function: cubic-bezier(0.34, 1.56, 0.64, 1);
}
[data-aos="bounce"].aos-animate {
    transform: translateY(0);
    opacity: 1;
}

[data-aos="rotate-in"] {
    transform: rotate(-20deg) scale(0.8);
    opacity: 0;
}
[data-aos="rotate-in"].aos-animate {
    transform: rotate(0deg) scale(1);
    opacity: 1;
}

/* ── Responsive ───────────────────────────────── */
@media (max-width: 768px) {
    .anim-pro-cursor-outer,
    .anim-pro-cursor-dot {
        display: none;
    }
}
