.site-title a {
    display: inline-block;
    overflow: hidden;
    white-space: nowrap;
    border-right: 3px solid var(--accent-orange);
    width: 0;
    animation: typing 0.5s steps(7, end) forwards, blink-caret .75s step-end infinite;
    border-bottom: 0 !important;
}

@keyframes typing {
    from { width: 0 }
    to { width: 100% }
}
@keyframes blink-caret {
    from, to { border-right-color: transparent }
    50% { border-right-color: var(--accent-orange) }
}

@media (min-width: 768px) {

    @keyframes pulse-system {
        0% {
            box-shadow: 0 0 4px var(--accent-orange);
        }
        50% {
            box-shadow: 0 0 10px var(--accent-orange);
        }
        100% {
            box-shadow: 0 0 4px var(--accent-orange);
        }
    }

    .card:hover, .action-card.upgraded, .page_chat input:focus, .button.btn-action-mini:hover {
        animation: pulse-system 1s ease-in-out infinite;
    }

    .quote-ia, .page_profile .avatar {
        position: relative;
        animation: glitch 1.5s ease-in-out forwards;
    }

    @keyframes glitch {
        0% { transform: none; filter: none; opacity: 0; }
        10% { opacity: 1; }
        20% { transform: translate(1px, -1px) skew(0.5deg); filter: contrast(150%) brightness(110%); }
        40% { transform: translate(-2px, 1px) skew(-0.5deg); filter: hue-rotate(20deg); }
        60% { transform: translate(1px, 2px); filter: grayscale(0.5); }
        80% { transform: translate(-1px, -2px); filter: blur(0.5px); }
        100% { transform: none; filter: none; }
    }
}

section > * {
    transition: transform 0.1s ease;
    transform: translate(var(--shake-x, 0), var(--shake-y, 0));
}

#ia-fade {
    position: fixed;
    inset: 0;
    background: #000;
    color: var(--accent-glow);
    font-family: monospace;
    font-size: 12px;
    line-height: 1.2;
    overflow: hidden;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.5s ease;
    z-index: 9999;
    padding: 2rem;
}

#ia-fade.visible {
    opacity: 1;
    pointer-events: auto;
}

#ia-fade::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, transparent, rgba(0,0,0,0.8));
    pointer-events: none;
}

#ia-code {
    white-space: pre-wrap;
    animation: scroll-code 3s linear infinite;
}

@keyframes flicker-dark {
    0%, 100% { filter: brightness(1); }
    48% { filter: brightness(0.4); }
    50% { filter: brightness(0.2); }
    52% { filter: brightness(0.6); }
    54% { filter: brightness(0.3); }
    56%, 98% { filter: brightness(1); }
}

body {
    animation: flicker 10s infinite;
}