/* /static/css/main.css */

body {
    font-family: sans-serif;
    margin: 0;
    padding: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    background-color: #f0f0f0; /* Light grey background */
    overflow: hidden; /* Prevent scrollbars during animation */
}

.container {
    text-align: center;
    position: relative; /* For absolute positioning of animation elements */
}

h1 {
    font-size: 3em;
    margin-bottom: 0.5em;
    color: #333;
}

h3 {
    font-size: 1.5em;
    color: #555;
    margin-bottom: 2em;
}

.social-links {
    display: flex;
    justify-content: center;
    gap: 20px; /* Space between icons */
}

.social-links a {
    color: #333;
    font-size: 1.5em;
    transition: color 0.3s ease; /* Smooth color transition on hover */
    text-decoration: none; /* Remove underlines from links */
}

.social-links a:hover {
    color: #007bff; /* Example hover color */
}

/* Animation-related styles (optional, but good for visual feedback) */
#ai-text {
    display: inline-block; /* Allows for transformations */
    animation: pulse 2s infinite alternate; /* Example animation */
}


@keyframes pulse {
    from {
        transform: scale(1);
        color: #aff1a1;
    }
    to {
        transform: scale(1.1);
        color: #34a347; /* Example color change */
    }
}

.transform-element {
    position: fixed;            /* drift across the viewport */
    left: 0;
    top: 0;
    width: 20px;
    height: 20px;
    background-color: #3498db;
    border-radius: 50%;
    opacity: 0; /* Initially hidden */
    pointer-events: none;
    will-change: transform, opacity;
    /* runs ONCE, then `animationend` fires so JS can remove it */
    animation: transformAnimation 5s ease-in-out forwards;
}

/* Drift toward a per-element random destination (--tx, --ty), set in JS.
   CSS calc() can't use random(), so the randomness comes from main.js. */
@keyframes transformAnimation {
    0% {
      opacity: 0;
      transform: translate(0, 0) scale(0);
    }
    25% {
        opacity: 0.8;
        transform: translate(calc(var(--tx, 0px) * 0.25), calc(var(--ty, 0px) * 0.25)) scale(1);
    }
    50% {
        opacity: 1;
        transform: translate(calc(var(--tx, 0px) * 0.5), calc(var(--ty, 0px) * 0.5)) scale(0.5);
        background-color: #40db32; /*Change color*/
    }
    75% {
        opacity: 0.8;
        transform: translate(calc(var(--tx, 0px) * 0.75), calc(var(--ty, 0px) * 0.75)) scale(1);
    }
    100% {
      opacity: 0;
      transform: translate(var(--tx, 0px), var(--ty, 0px)) scale(0);
    }
}

/* --- TVS TriUnity banner (kept so the landing button stays styled) ---
   Sized ~4x the original (font + padding) for a bold hero call-to-action. */
.triunity-banner {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    text-align: center;
    max-width: 92vw;
    line-height: 1.15;
    gap: 2.4rem;                 /* was 0.6rem */
    padding: 3.6rem 7.2rem;      /* was 0.9rem 1.8rem */
    border-radius: 22px;
    background: linear-gradient(120deg, #144f92, #1f6fc4);
    color: #fff;
    font-weight: 700;
    font-size: 4rem;             /* 4x the ~1rem default */
    text-decoration: none;
    box-shadow: 0 14px 40px rgba(20, 79, 146, 0.35);
    border: 3px solid rgba(244, 124, 34, 0.7);
    transition: transform 0.18s ease, box-shadow 0.18s ease;
}
.triunity-banner:hover {
    transform: translateY(-3px) scale(1.02);
    box-shadow: 0 18px 48px rgba(244, 124, 34, 0.4);
}
.triunity-banner i { color: #f47c22; }

/* Keep the larger banner from overflowing small screens. */
@media (max-width: 768px) {
    .triunity-banner {
        font-size: 2rem;
        gap: 1.2rem;
        padding: 1.8rem 2.4rem;
    }
}
