/* ==========================================================================
   BASE.CSS
   Resets, variables, fonts, global text styles
   ========================================================================== */

/* ==========================================================================
   Fonts - Loaded via HTML preconnect and link for better performance
   ========================================================================== */

/* ==========================================================================
   Reset
   ========================================================================== */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    font-family: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

body,
input,
select,
textarea,
button {
    font-family: inherit;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;

    text-rendering: optimizeLegibility;
}

/* ==========================================================================
   CSS Variables
   ========================================================================== */
:root {
    --bg-body: #13141a;
    --bg-header: #1a1b21;
    --text-primary: #edeef3;
    --text-secondary: #60646c;
    --border-radius: 1rem;
}

/* ==========================================================================
   Global Body Styles
   ========================================================================== */
body {
    background-color: var(--bg-body);
    color: var(--text-primary);
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

main {
    flex: 1 0 auto;
    width: 100%;
}

/* ==========================================================================
   Custom Scrollbar
   ========================================================================== */
::-webkit-scrollbar {
    width: 10px;
    height: 10px;
}

::-webkit-scrollbar-track,
::-webkit-scrollbar-corner {
    background: var(--bg-body);
}

::-webkit-scrollbar-thumb {
    background: var(--text-secondary);
    border: 2px solid var(--bg-body);
    border-radius: 5px;
}

::-webkit-scrollbar-thumb:hover {
    background: #86868b;
}

/* Firefox scrollbar */
* {
    scrollbar-width: thin;
    scrollbar-color: var(--text-secondary) var(--bg-body);
}

/* ==========================================================================
   Loading States & Animations
   ========================================================================== */

/* Skeleton loading animation */
@keyframes skeleton-pulse {

    0%,
    100% {
        opacity: 1;
    }

    50% {
        opacity: 0.4;
    }
}

.animate-pulse {
    animation: skeleton-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

/* ==========================================================================
   Documentation Styles
   ========================================================================== */
.prose a {
    color: #60a5fa;
    /* Tailwind blue-400 */
    text-decoration: underline;
    text-underline-offset: 2px;
}

.prose a:hover {
    color: #93c5fd;
    /* Tailwind blue-300 */
}

/* Highlighted terms in docs */
.docs-highlight {
    color: var(--text-primary);
    font-weight: 600;
}

a.docs-highlight {
    color: #60a5fa;
    /* Tailwind blue-400 */
    text-decoration: underline;
    text-underline-offset: 2px;
}

a.docs-highlight:hover {
    color: #93c5fd;
    /* Tailwind blue-300 */
}

/* Animation Utilities */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.animate-fade-in-up {
    animation: fadeInUp 0.8s ease-out forwards;
    opacity: 0;
}

.delay-100 {
    animation-delay: 0.1s;
}

.delay-200 {
    animation-delay: 0.2s;
}

.delay-300 {
    animation-delay: 0.3s;
}