/* Shared interaction styles extracted from pages */
/* Cursor */
.cursor-dot, .cursor-outline { position: fixed; pointer-events: none; z-index: 9999; mix-blend-mode: difference; }
.cursor-dot { width: 8px; height: 8px; border-radius: 50%; background: #0D3BBD; transform: translate(-50%, -50%); transition: transform 160ms ease-out, background 160ms ease; }
.cursor-outline { width: 44px; height: 44px; border-radius: 50%; border: 1.5px solid rgba(13,59,189,0.9); transform: translate(-50%, -50%); transition: transform 260ms ease-out, border-color 160ms ease; }
.cursor-hover .cursor-dot { transform: translate(-50%, -50%) scale(1.6); background: #B6FF00; }
.cursor-hover .cursor-outline { transform: translate(-50%, -50%) scale(1.2); border-color: rgba(177,248,0,0.95); }
.cursor-logo { position: fixed; width: 72px; height: auto; pointer-events: none; z-index: 10000; transform: translate(-50%, -50%); transition: transform 220ms ease, opacity 180ms; opacity: 0.98; will-change: transform, opacity; }
.cursor-hidden { opacity: 0 !important; transform: translate(-50%, -50%) scale(0.6) !important; }

/* Reveal on scroll */
.reveal { opacity: 0; transform: translateY(10px) scale(0.998); transition: opacity 220ms cubic-bezier(.2,.9,.2,1), transform 220ms cubic-bezier(.2,.9,.2,1); will-change: opacity, transform; }
.reveal.in-view { opacity: 1; transform: none; }

/* Card lift */
.group { transition: transform 280ms cubic-bezier(.2,.9,.2,1), box-shadow 280ms; transform-origin: center; }
.group:hover { transform: translateY(-6px) scale(1.01); }

/* Hero micro-parallax */
.hero-parallax { will-change: transform; transition: transform 300ms linear; }
.hero-grid { will-change: background-position; }

/* Image overlay */
.aspect-video { position: relative; overflow: hidden; }
.aspect-video img { transition: transform 220ms cubic-bezier(.2,.9,.2,1), filter 180ms ease; will-change: transform; }
.aspect-video .overlay { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.28) 100%); opacity: 0; transition: opacity 320ms ease; }
.group:hover .aspect-video .overlay { opacity: 1; }
.group:hover .aspect-video img { transform: scale(1.02); }
