/* Noise texture overlay */
.noise-overlay::before {
    content: '';
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.03'/%3E%3C/svg%3E");
    opacity: 0.4;
    pointer-events: none;
    z-index: 9999;
}

/* Animated gradient hero background */
.hero-gradient {
    background: linear-gradient(135deg, #0A0F1C 0%, #0D1B2A 25%, #0A0F1C 50%, #071218 75%, #0A0F1C 100%);
    background-size: 400% 400%;
    animation: gradientShift 15s ease infinite;
}

@keyframes gradientShift {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}

/* Glow effects */
.glow-teal {
    box-shadow: 0 0 20px rgba(0, 229, 204, 0.15);
    transition: box-shadow 0.3s ease;
}
.glow-teal:hover {
    box-shadow: 0 0 30px rgba(0, 229, 204, 0.3);
}

.glow-border {
    border: 1px solid rgba(0, 229, 204, 0.1);
    transition: border-color 0.3s ease;
}
.glow-border:hover {
    border-color: rgba(0, 229, 204, 0.25);
}

/* Scroll reveal animation */
.reveal {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.6s ease, transform 0.6s ease;
}
.reveal.visible {
    opacity: 1;
    transform: translateY(0);
}

/* Staggered children */
.reveal-stagger > .reveal:nth-child(1) { transition-delay: 0.1s; }
.reveal-stagger > .reveal:nth-child(2) { transition-delay: 0.2s; }
.reveal-stagger > .reveal:nth-child(3) { transition-delay: 0.3s; }
.reveal-stagger > .reveal:nth-child(4) { transition-delay: 0.4s; }

/* Glassmorphism card */
.glass-card {
    background: rgba(17, 24, 39, 0.7);
    backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, 0.05);
    border-radius: 12px;
}

/* Animated dot grid behind hero */
.dot-grid {
    background-image: radial-gradient(circle, rgba(0, 229, 204, 0.08) 1px, transparent 1px);
    background-size: 32px 32px;
}

/* Form inputs */
.sa-input {
    background: rgba(17, 24, 39, 0.8);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 8px;
    padding: 12px 16px;
    color: #fff;
    width: 100%;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    font-family: 'DM Sans', sans-serif;
}
.sa-input:focus {
    outline: none;
    border-color: #00E5CC;
    box-shadow: 0 0 0 3px rgba(0, 229, 204, 0.1);
}
.sa-input::placeholder {
    color: #6B7280;
}

select.sa-input {
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%236B7280' viewBox='0 0 16 16'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    padding-right: 40px;
}

/* Checkmark animation */
@keyframes checkDraw {
    to { stroke-dashoffset: 0; }
}
.checkmark-circle {
    stroke-dasharray: 166;
    stroke-dashoffset: 166;
    animation: checkDraw 0.6s ease forwards;
}
.checkmark-check {
    stroke-dasharray: 48;
    stroke-dashoffset: 48;
    animation: checkDraw 0.3s 0.4s ease forwards;
}

/* Accordion */
[data-accordion-content] {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
}
