/* Hallmark · checked: 2026-10-25 · genre: editorial (inferred)
 * floor: 0 FAIL · fixed: 2a, 7a, 10a, 19, 26, 27, 30a, 34, 40, 44d, 48, 54, 63, 73 · structural: printed in handoff (8, 44c, 58, 77, 79)
 * built: the project · redesign: polish · v2.0.0 */

:root {
    --cc-green: #03a87c;
    --cc-green-deep: #029b73;
    --cc-green-ink: #027a5a;
    --cc-hero-from: #053f33;
    --cc-hero-to: #046a54;
    --cc-hero-gold: #ffd89b;
    --cc-text: #495057;
    --cc-muted: #5c646b;
    --cc-surface: #f8f9fa;
    --cc-paper: #fdfefe;
    --cc-on-dark: #fdfefe;
    --cc-danger: #dc3545;
    --cc-grey: #6c757d;

    --cc-green-05: rgba(3, 168, 124, 0.05);
    --cc-green-08: rgba(3, 168, 124, 0.08);
    --cc-green-10: rgba(3, 168, 124, 0.1);
    --cc-green-15: rgba(3, 168, 124, 0.15);
    --cc-green-20: rgba(3, 168, 124, 0.2);
    --cc-green-25: rgba(3, 168, 124, 0.25);
    --cc-green-40: rgba(3, 168, 124, 0.4);
    --cc-green-50: rgba(3, 168, 124, 0.5);
    --cc-green-60: rgba(3, 168, 124, 0.6);
    --cc-grey-05: rgba(108, 117, 125, 0.05);
    --cc-grey-10: rgba(108, 117, 125, 0.1);
    --cc-grey-15: rgba(108, 117, 125, 0.15);
    --cc-grey-20: rgba(108, 117, 125, 0.2);
    --cc-danger-15: rgba(220, 53, 69, 0.15);
    --cc-surface-95: rgba(248, 249, 250, 0.95);
    --cc-line-05: rgba(0, 0, 0, 0.05);
    --cc-line-10: rgba(0, 0, 0, 0.1);
    --cc-line-15: rgba(0, 0, 0, 0.15);
    --cc-shadow-sm: rgba(0, 0, 0, 0.1);
    --cc-shadow-md: rgba(0, 0, 0, 0.2);
    --cc-shadow-lg: rgba(0, 0, 0, 0.3);
    --cc-white-10: rgba(253, 254, 254, 0.1);
    --cc-white-15: rgba(253, 254, 254, 0.15);
    --cc-white-20: rgba(253, 254, 254, 0.2);
    --cc-white-25: rgba(253, 254, 254, 0.25);
    --cc-white-50: rgba(253, 254, 254, 0.5);
    --cc-hero-card: rgba(4, 38, 31, 0.72);
    --cc-cat-java: #f89820;
    --cc-cat-flutter: #5aa9e6;
    --cc-cat-devops: #7ea6f5;
    --cc-cat-ai: #ff8a8a;
    --cc-cat-architecture: #4ecdc4;
}

html,
body {
    overflow-x: clip;
}

/* Keyboard focus, instant, visible on every surface */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible {
    outline: 2px solid var(--cc-green-ink);
    outline-offset: 2px;
    transition: none;
}

.hero-section a:focus-visible,
.hero-section button:focus-visible {
    outline-color: var(--cc-hero-gold);
}

.btn:active,
.category-tag:active,
.theme-dropdown-btn:active,
.theme-option:active,
.read-more-link:active {
    transform: translateY(1px);
}

.btn:disabled,
.btn.disabled,
button:disabled {
    cursor: not-allowed;
    opacity: 0.55;
}

/* Theme rules (.theme-modern h1, p) outrank the hero tokens; restate them on dark */
.theme-modern .hero-section .hero-title,
.theme-classic .hero-section .hero-title,
.theme-modern .hero-section .hero-subtitle,
.theme-classic .hero-section .hero-subtitle,
.theme-modern .hero-section .featured-post-excerpt,
.theme-classic .hero-section .featured-post-excerpt {
    color: var(--cc-on-dark);
}

.theme-modern .hero-section .hero-title .text-gradient,
.theme-classic .hero-section .hero-title .text-gradient {
    color: var(--cc-hero-gold);
}

/* Cap the hero at wide screens so the gutters grow, not the measure */
.hero-section > .container-fluid {
    max-width: 1520px;
    margin-inline: auto;
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.001ms !important;
        scroll-behavior: auto !important;
    }

    .floating-code,
    .scroll-indicator {
        animation: none;
    }
}
