* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
:root {
    --primary: #646cff;
    --primary-dark: #545bdf;
    --secondary: #8b5cf6;
    --dark: #1e1e2e;
    --darker: #171724;
    --dark-light: #252536;
    --gray: #a0a0b0;
    --light: #e2e2e2;
    --success: #64ffa3;
    --danger: #ff6464;
    --warning: #ffb464;
    --card-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
    --transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
}
body {
    font-family: 'Inter', sans-serif;
    background-color: var(--darker);
    color: var(--light);
    line-height: 1.6;
}
.skeleton {
    background: linear-gradient(90deg, var(--dark-light) 25%, var(--dark) 50%, var(--dark-light) 75%);
    background-size: 200% 100%;
    animation: loading 1.5s infinite;
    border-radius: 4px;
}
.skeleton-preview {
    height: 180px;
    width: 100%;
}
.skeleton-text {
    height: 1rem;
    margin-bottom: 0.75rem;
}
.skeleton-text.short {
    width: 60%;
}
.skeleton-text.medium {
    width: 80%;
}
@keyframes loading {
    0% {
        background-position: 200% 0;
    }
    100% {
        background-position: -200% 0;
    }
}
.link {
    font-weight: 500;
    color: #747bff;
    text-decoration: none;
    border-bottom: 1px solid transparent;
    transition: all 0.3s ease;
    padding: 0 2px;
    position: relative;
}

.link:hover {
    color: #8b91ff;
    background: rgba(116, 123, 255, 0.15);
    border-bottom-color: #747bff;
}

.link:focus {
    outline: 1px solid #646cff;
    outline-offset: 1px;
    border-radius: 1px;
}