/* ==========================================================================
   EASY3D — Cyberpunk Laser Border Beam Effect
   A glowing neon beam (cyan -> purple) racing around card borders on hover
   ========================================================================== */

@property --beam-angle {
    syntax: '<angle>';
    initial-value: 0deg;
    inherits: false;
}

@keyframes borderBeamRotate {
    0% { --beam-angle: 0deg; }
    100% { --beam-angle: 360deg; }
}

.product-card,
.print-card,
.tech-card,
.model-card,
.price-card,
.profile-card {
    position: relative !important;
}

.product-card::before,
.print-card::before,
.tech-card::before,
.model-card::before,
.price-card::before,
.profile-card::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    padding: 1.5px;
    background: conic-gradient(
        from var(--beam-angle),
        transparent 0deg,
        transparent 280deg,
        #00e5ff 325deg,
        #b388ff 352deg,
        transparent 360deg
    );
    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    mask-composite: exclude;
    pointer-events: none;
    z-index: 10;
    opacity: 0;
    transition: opacity 0.4s cubic-bezier(0.16, 1, 0.3, 1);
    animation: borderBeamRotate 3s linear infinite;
    animation-play-state: paused;
    will-change: opacity;
    filter: drop-shadow(0 0 6px rgba(0, 229, 255, 0.8));
}

.product-card:hover::before,
.print-card:hover::before,
.tech-card:hover::before,
.model-card:hover::before,
.price-card:hover::before,
.profile-card:hover::before {
    opacity: 1;
    animation-play-state: running;
}

.product-card:hover,
.print-card:hover,
.tech-card:hover,
.model-card:hover,
.price-card:hover,
.profile-card:hover {
    border-color: rgba(0, 229, 255, 0.35) !important;
    box-shadow: 0 20px 45px rgba(0, 0, 0, 0.7), 0 0 25px rgba(0, 229, 255, 0.15) !important;
    transform: translateY(-5px);
}
