/* Base resets and animations for OpenShield website */

body {
    scroll-behavior: smooth;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* Ensure images within markdown/prose don't break layout */
.prose img {
    border-radius: 0.75rem;
    box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
}

/* Terminal Typing Animation Elements */
.typing-1 {
    display: inline-block;
    overflow: hidden;
    white-space: nowrap;
    animation: typing 0.8s steps(30, end);
}
.typing-2 {
    display: inline-block;
    overflow: hidden;
    white-space: nowrap;
    animation: typing 0.6s steps(40, end);
}
.typing-3 {
    display: inline-block;
    overflow: hidden;
    white-space: nowrap;
    animation: typing 0.8s steps(20, end);
    border-right: 2px solid #3b82f6; /* cursor */
    animation: typing 0.8s steps(20, end), blink-caret .75s step-end infinite;
}

@keyframes typing {
    from { width: 0 }
    to { width: 100% }
}

@keyframes blink-caret {
    from, to { border-color: transparent }
    50% { border-color: #3b82f6; }
}

/* Playground Animations */
@keyframes slide-in-right {
    from {
        opacity: 0;
        transform: translateX(20px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

.animate-slide-in-right {
    animation: slide-in-right 0.4s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes score-pop {
    0% { transform: scale(1); }
    50% { transform: scale(1.1); }
    100% { transform: scale(1); }
}

.animate-score-pop {
    animation: score-pop 0.3s ease-out;
}

/* Hide scrollbars but allow scrolling */
.no-scrollbar::-webkit-scrollbar {
    display: none;
}
.no-scrollbar {
    -ms-overflow-style: none;
    scrollbar-width: none;
}
