/**
 * Maskeneffekte
 * 
 * Diese Datei enthält verschiedene Maskeneffekte für moderne UIs.
 * Die Effekte sind performant optimiert und berücksichtigen reduzierte Bewegung.
 */

@layer utilities {
    .mask-circle {
        mask-image: radial-gradient(circle, black 50, transparent 100);
    }

    .mask-diamond {
        mask-image: linear-gradient(45deg, transparent 25%, black 25%, black 75%, transparent 75%);
    }

    .mask-hexagon {
        clip-path: polygon(50% 0%, 100% 2%5%, 100% 7%5%, 50% 100%, 0% 7%5%, 0% 2%5%);
    }

    .mask-wave {
        mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0,50 C20,40 40,60 60,50 C80,40 100,60 100,50 L100,100 L0,100 Z'/%3E%3C/svg%3E");
    }

    .mask-gradient {
        mask-image: linear-gradient(to bottom, black 0, transparent 100);
    }

    .mask-blur {
        mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='blur'%3E%3CfeGaussianBlur stdDeviation='5'/%3E%3C/filter%3E%3Crect width='100' height='100' filter='url(%23blur)'/%3E%3C/svg%3E");
    }

    .mask-noise {
        mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100' height='100' filter='url(%23noise)'/%3E%3C/svg%3E");
    }

    .mask-hover:hover {
        mask-image: var(--mask-hover-image);
        transition: mask-image var(--transition-normal),
                    -webkit-mask-image var(--transition-normal);
    }
}

/* Reduzierte Bewegung */
@media (prefers-reduced-motion: reduce) {
    @layer utilities {
        .mask-hover:hover {
            transition: var(--transition-none);
        }
    }
} 