/* Custom Styles for Notório Saber Modernization */

:root {
    --primary-green: #10b981;
    --primary-yellow: #f59e0b;
    --primary-blue: #3b82f6;
    --bg-dark: #000000;
    --bg-card: #0a0a0c;
    --border-color: rgba(255, 255, 255, 0.1);
}

@keyframes fadeInUp {
    0% { opacity: 0; transform: translateY(30px); }
    100% { opacity: 1; transform: translateY(0); }
}

@keyframes blurIn {
    0% { opacity: 0; filter: blur(15px); transform: scale(0.95); }
    100% { opacity: 1; filter: blur(0); transform: scale(1); }
}

@keyframes beam-spin {
    to { transform: rotate(360deg); }
}

@keyframes lines-slide {
    0% { background-position: 0 0; }
    100% { background-position: 24px 0; }
}

@keyframes marquee {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

.scroll-item {
    animation-duration: 0.8s;
    animation-fill-mode: both;
    animation-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.scroll-fade-up { animation-name: fadeInUp; }
.scroll-blur-in { animation-name: blurIn; }

.delay-100 { animation-delay: 100ms; }
.delay-200 { animation-delay: 200ms; }
.delay-300 { animation-delay: 300ms; }
.delay-500 { animation-delay: 500ms; }

/* Custom Utilities */
.glass {
    background: rgba(10, 10, 12, 0.8);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid var(--border-color);
}

.border-gradient-green::before {
    content: "";
    position: absolute;
    inset: 0;
    padding: 1px;
    border-radius: inherit;
    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    background: linear-gradient(135deg, var(--primary-green), transparent, var(--primary-green));
    pointer-events: none;
}

.border-gradient-yellow::before {
    content: "";
    position: absolute;
    inset: 0;
    padding: 1px;
    border-radius: inherit;
    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    background: linear-gradient(135deg, var(--primary-yellow), transparent, var(--primary-yellow));
    pointer-events: none;
}

.border-gradient-blue::before {
    content: "";
    position: absolute;
    inset: 0;
    padding: 1px;
    border-radius: inherit;
    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    background: linear-gradient(135deg, var(--primary-blue), transparent, var(--primary-blue));
    pointer-events: none;
}

.animate-marquee {
    display: flex;
    width: max-content;
    animation: marquee 30s linear infinite;
}

.scrollbar-hide::-webkit-scrollbar {
    display: none;
}

.scrollbar-hide {
    -ms-overflow-style: none;
    scrollbar-width: none;
}

/* Custom Typography */
.font-oswald { font-family: 'Oswald', sans-serif !important; }
.font-sans { font-family: 'Inter', sans-serif !important; }

/* Beam Effect */
.beam-container {
    position: relative;
    overflow: hidden;
}

.beam {
    position: absolute;
    inset: -100%;
    background: conic-gradient(from 0deg, transparent 0 300deg, var(--beam-color, #3b82f6) 360deg);
    animation: beam-spin 3s linear infinite;
}

/* Premium Border Beam Effect on Hover */
.border-beam-wrapper {
    position: absolute;
    inset: 0;
    border-radius: inherit;
    pointer-events: none;
    overflow: hidden;
    z-index: 20;
    opacity: 0;
    transition: opacity 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    padding: 1.5px; /* Border thickness */
    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
}

.group:hover .border-beam-wrapper,
.sticky-card.active-beam .border-beam-wrapper {
    opacity: 1;
}

.border-beam-spin {
    position: absolute;
    inset: -250%;
    background: conic-gradient(from 0deg, transparent 0 280deg, var(--beam-color, #3b82f6) 360deg);
    animation: beam-spin 5s linear infinite;
    will-change: transform;
}

