:root {
    --brand-primary: #8b5cf6;
    --brand-secondary: #0ea5e9;
    --brand-accent: #f472b6;
    --brand-dark: #0f172a;
    --brand-muted: #475569;
    --brand-surface: rgba(255, 255, 255, 0.92);
}
* {
    box-sizing: border-box;
}
body {
    font-family: "Space Grotesk", "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    color: var(--brand-dark);
    background:
        radial-gradient(circle at 15% 15%, rgba(79, 70, 229, 0.28), transparent 52%),
        radial-gradient(circle at 85% 0%, rgba(236, 72, 153, 0.28), transparent 45%),
        #030712;
    min-height: 100vh;
    line-height: 1.8em;
    margin: 0;
    position: relative;
    overflow-x: hidden;
    cursor: default;
}
mark {
    padding: 0;
    border-radius: 4px;
}
body::before,
body::after {
    content: "";
    position: fixed;
    width: 55vw;
    height: 55vw;
    pointer-events: none;
    filter: blur(65px);
    opacity: 0.4;
    z-index: -1;
}
body::before {
    left: -10vw;
    top: -15vw;
    background: radial-gradient(circle, rgba(14, 165, 233, 0.4), transparent 65%);
}
body::after {
    right: -18vw;
    bottom: -20vw;
    background: radial-gradient(circle, rgba(244, 114, 182, 0.4), transparent 65%);
}
::selection {
    background: rgba(139, 92, 246, 0.3);
    color: var(--brand-dark);
}
a {
    color: var(--brand-primary);
    transition: color 0.25s ease;
}
a:hover {
    color: var(--brand-accent);
}
header.bg-dark {
    background: linear-gradient(125deg, rgba(15, 23, 42, 0.95), rgba(37, 99, 235, 0.85));
    border-bottom: 1px solid rgba(255, 255, 255, 0.2);
    box-shadow: 0 20px 60px rgba(2, 6, 23, 0.4);
}
header h1 {
    font-weight: 700;
    letter-spacing: 0.08em;
}
header .lead {
    color: rgba(255, 255, 255, 0.8);
}
.navbar {
    background: rgba(0, 0, 1, 0.5) !important;
    backdrop-filter: blur(12px);
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    position: sticky;
    top: 0;
    z-index: 1000;
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);
}
.navbar .navbar-brand {
    font-weight: 700;
    letter-spacing: 0.15em;
}
.navbar .nav-link {
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: 0.8rem;
    color: rgba(255, 255, 255, 0.8);
    position: relative;
    transition: color 0.3s ease;
}
.navbar .nav-link::after {
    content: "";
    position: absolute;
    left: 0.75rem;
    right: 0.75rem;
    bottom: 0.35rem;
    height: 2px;
    border-radius: 2px;
    background: linear-gradient(90deg, transparent, var(--brand-accent), transparent);
    opacity: 0;
    transition: opacity 0.3s ease;
}
.navbar .nav-link:hover,
.navbar .nav-link.active {
    color: #fff;
}
.navbar .nav-link:hover::after,
.navbar .nav-link.active::after {
    opacity: 1;
}
.navbar-search {
    position: relative;
    width: 44px;
    max-width: min(480px, 100%);
    overflow: visible;
    transition: width 0.3s ease;
}
.navbar-search.is-expanded {
    width: min(480px, 100%);
}
.navbar-search.shortcut-activated {
    box-shadow: 0 0 0 3px rgba(139, 92, 246, 0.25), 0 18px 30px rgba(0, 0, 0, 0.25);
    transition: box-shadow 0.25s ease;
}
.navbar-search.shortcut-activated input[type="search"] {
    animation: search-focus-glow 0.4s ease;
}
@keyframes search-focus-glow {
    0% { box-shadow: 0 0 0 0 rgba(139, 92, 246, 0.5); }
    70% { box-shadow: 0 0 0 6px rgba(139, 92, 246, 0.2); }
    100% { box-shadow: 0 0 0 0 rgba(139, 92, 246, 0); }
}
.navbar-search input[type="search"] {
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.25);
    color: #fff;
    padding-left: 2.5rem;
    backdrop-filter: blur(8px);
    width: 100%;
    opacity: 0;
    cursor: pointer;
    transition: opacity 0.2s ease, padding 0.3s ease;
}
.navbar-search.is-expanded input[type="search"],
.navbar-search input[type="search"].has-value {
    opacity: 1;
    cursor: text;
}
.navbar-search input[type="search"]::placeholder {
    color: rgba(255, 255, 255, 0.65);
    letter-spacing: 0.04em;
}
.navbar-search-icon {
    position: absolute;
    left: 0.85rem;
    top: 50%;
    transform: translateY(-50%);
    color: rgba(255, 255, 255, 0.7);
    pointer-events: none;
    font-size: 0.9rem;
}
.navbar-search-results {
    position: absolute;
    top: calc(100% + 0.5rem);
    left: 0;
    right: 0;
    background: rgba(7, 11, 23, 0.98);
    border-radius: 16px;
    border: 1px solid rgba(255, 255, 255, 0.12);
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.35);
    padding: 0.75rem;
    display: none;
    z-index: 1050;
    max-height: min(70vh, calc(100vh - 120px));
    overflow-y: auto;
}
.navbar-search-results.show {
    display: block;
}
.navbar-search-results ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 0.35rem;
}
.navbar-search-results a {
    display: flex;
    gap: 0.65rem;
    align-items: center;
    text-decoration: none;
    padding: 0.55rem 0.65rem;
    border-radius: 12px;
    color: #e2e8f0;
    transition: background 0.2s ease, transform 0.2s ease;
}
.navbar-search-results a:hover,
.navbar-search-results a:focus {
    background: linear-gradient(120deg, rgba(139, 92, 246, 0.18), rgba(14, 165, 233, 0.18));
    transform: translateX(3px);
    color: #fff;
}
.navbar-search-results a.is-active {
    background: linear-gradient(120deg, rgba(139, 92, 246, 0.24), rgba(14, 165, 233, 0.24));
    color: #fff;
    box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.12);
}
.navbar-search-results .result-title {
    font-weight: 700;
    display: block;
}
.navbar-search-results .result-image {
    flex: 0 0 60px;
    height: 60px;
    overflow: hidden;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.06);
    display: flex;
    align-items: center;
    justify-content: center;
}
.navbar-search-results .result-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.navbar-search-results .result-body {
    flex: 1;
    min-width: 0;
}
.navbar-search-results .result-meta {
    font-size: 0.82rem;
    color: rgba(226, 232, 240, 0.8);
}
.navbar-search-results .result-excerpt {
    display: none;
    color: rgba(226, 232, 240, 0.7);
    font-size: 0.85rem;
}
.navbar-search-results .empty-state {
    color: rgba(226, 232, 240, 0.7);
    padding: 0.25rem 0.5rem;
    font-size: 0.9rem;
}
.navbar-search-results .error-state {
    color: #fecdd3;
    font-weight: 600;
}
.main-content {
    background: var(--brand-surface);
    border-radius: 32px;
    padding: clamp(2rem, 4vw, 3.5rem);
    box-shadow: 0 40px 80px rgba(15, 23, 42, 0.25);
    border: 1px solid rgba(255, 255, 255, 0.35);
    backdrop-filter: blur(20px);
}
.main-content img {
    max-width: 100%;
    border-radius: 1rem;
    box-shadow: 0 20px 35px rgba(15, 23, 42, 0.15);
}
.post-actual-content *:first-child img { display: none; }
.featured-post {
    background: linear-gradient(135deg, rgba(139, 92, 246, 0.18), rgba(14, 165, 233, 0.12));
    border-radius: 24px;
    padding: 2rem;
    box-shadow: 0 35px 70px rgba(15, 23, 42, 0.2);
}
.featured-image-frame {
    border-radius: 24px;
    padding: 0.4rem;
    background: linear-gradient(135deg, rgba(139, 92, 246, 0.8), rgba(14, 165, 233, 0.8));
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4);
}
.featured-image-frame img {
    border-radius: 20px;
    width: 100%;
    aspect-ratio: 3 / 2;
    height: auto;
    object-fit: cover;
    box-shadow: none;
    display: block;
}
.featured-copy h2 {
    font-weight: 700;
}
.featured-copy .text-muted {
    text-transform: uppercase;
    letter-spacing: 0.15em;
    font-size: 0.85rem;
    color: var(--brand-muted) !important;
    font-weight: 600;
}
.featured-copy .btn-primary {
    align-self: flex-start;
    margin-top: 1rem;
}
.tag-pill {
    display: inline-flex;
    align-items: center;
    padding: 0.25rem 0.75rem;
    border-radius: 999px;
    background: rgba(139, 92, 246, 0.12);
    color: var(--brand-primary);
    font-size: 0.62rem;
    letter-spacing: 0.15em;
    text-decoration: none;
    text-transform: uppercase;
    font-weight: 600;
}
.tag-pill + .tag-pill {
    margin-left: 0.35rem;
}
.post-card-tags .tag-pill + .tag-pill {
    margin-left: 0;
}
.post-card {
    border: none;
    border-radius: 24px;
    background: #fff;
    cursor: pointer;
    overflow: hidden;
    position: relative;
    box-shadow: 0 20px 50px rgba(15, 23, 42, 0.15);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.post-card::after {
    content: "";
    position: absolute;
    inset: 10px;
    border-radius: 20px;
    border: 1px solid transparent;
    background: linear-gradient(135deg, rgba(139, 92, 246, 0.35), rgba(14, 165, 233, 0.25));
    opacity: 0;
    transition: opacity 0.3s ease;
    z-index: 0;
}
.post-card:hover {
    transform: translateY(-6px) scale(1.01);
    box-shadow: 0 25px 65px rgba(15, 23, 42, 0.25);
}
.post-card:hover::after {
    opacity: 0.4;
}
.post-card-image-link {
    display: block;
}
.post-card-image {
    height: 180px;
    object-fit: cover;
    width: 100%;
    border-top-left-radius: 24px;
    border-top-right-radius: 24px;
}
.post-card .card-body {
    position: relative;
    z-index: 1;
}
.post-card-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-bottom: 0.75rem;
}
.post-card-anchor {
    text-decoration: none;
    color: inherit;
    display: block;
}
.post-card-title {
    font-weight: 700;
    font-size: 1.15rem;
    margin-bottom: 0.35rem;
    color: var(--brand-dark);
}
.card-date {
    color: var(--brand-muted);
    font-size: 0.82rem;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    margin-bottom: 0.75rem;
}
.fas.fa-calendar-alt {
    display: inline-block;
    width: 1em;
    height: 1em;
    margin-right: 0.35rem;
    background-image: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iODAiIGhlaWdodD0iODAiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iIzM0M0M1NCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB0cmFuc2Zvcm09InJvdGF0ZSgwIDAgMCkiPgo8cGF0aCBkPSJNNy4xODUzNSAxMi43NUM3LjE4NTM1IDEyLjMwODIgNy41NDM1MiAxMS45NSA3Ljk4NTM1IDExLjk1SDcuOTk1MzVDOC40MzcxOCAxMS45NSA4Ljc5NTM1IDEyLjMwODIgOC43OTUzNSAxMi43NUM4Ljc5NTM1IDEzLjE5MTggOC40MzcxOCAxMy41NSA3Ljk5NTM1IDEzLjU1SDcuOTg1MzVDNy41NDM1MiAxMy41NSA3LjE4NTM1IDEzLjE5MTggNy4xODUzNSAxMi43NVoiIGZpbGw9IiMzNDNDNTQiPjwvcGF0aD4KPHBhdGggZD0iTTcuOTg1MzUgMTUuOTVDNy41NDM1MiAxNS45NSA3LjE4NTM1IDE2LjMwODIgNy4xODUzNSAxNi43NUM3LjE4NTM1IDE3LjE5MTggNy41NDM1MiAxNy41NSA3Ljk4NTM1IDE3LjU1SDcuOTk1MzVDOC40MzcxOCAxNy41NSA4Ljc5NTM1IDE3LjE5MTggOC43OTUzNSAxNi43NUM4Ljc5NTM1IDE2LjMwODIgOC40MzcxOCAxNS45NSA3Ljk5NTM1IDE1Ljk1SDcuOTg1MzVaIiBmaWxsPSIjMzQzQzU0Ij48L3BhdGg+CjxwYXRoIGQ9Ik0xMS4xOTUxIDEyLjc1QzExLjE5NTEgMTIuMzA4MiAxMS41NTMzIDExLjk1IDExLjk5NTEgMTEuOTVIMTIuMDA1MUMxMi40NDY5IDExLjk1IDEyLjgwNTEgMTIuMzA4MiAxMi44MDUxIDEyLjc1QzEyLjgwNTEgMTMuMTkxOCAxMi40NDY5IDEzLjU1IDEyLjAwNTEgMTMuNTVIMTEuOTk1MUMxMS41NTMzIDEzLjU1IDExLjE5NTEgMTMuMTkxOCAxMS4xOTUxIDEyLjc1WiIgZmlsbD0iIzM0M0M1NCI+PC9wYXRoPgo8cGF0aCBkPSJNMTEuOTk1MSAxNS45NUMxMS41NTMzIDE1Ljk1IDExLjE5NTEgMTYuMzA4MiAxMS4xOTUxIDE2Ljc1QzExLjE5NTEgMTcuMTkxOCAxMS41NTMzIDE3LjU1IDExLjk5NTEgMTcuNTVIMTIuMDA1MUMxMi40NDY5IDE3LjU1IDEyLjgwNTEgMTcuMTkxOCAxMi44MDUxIDE2Ljc1QzEyLjgwNTEgMTYuMzA4MiAxMi40NDY5IDE1Ljk1IDEyLjAwNTEgMTUuOTVIMTEuOTk1MVoiIGZpbGw9IiMzNDNDNTQiPjwvcGF0aD4KPHBhdGggZD0iTTE1LjIwNDkgMTIuNzVDMTUuMjA0OSAxMi4zMDgyIDE1LjU2MzEgMTEuOTUgMTYuMDA0OSAxMS45NUgxNi4wMTQ5QzE2LjQ1NjcgMTEuOTUgMTYuODE0OSAxMi4zMDgyIDE2LjgxNDkgMTIuNzVDMTYuODE0OSAxMy4xOTE4IDE2LjQ1NjcgMTMuNTUgMTYuMDE0OSAxMy41NUgxNi4wMDQ5QzE1LjU2MzEgMTMuNTUgMTUuMjA0OSAxMy4xOTE4IDE1LjIwNDkgMTIuNzVaIiBmaWxsPSIjMzQzQzU0Ij48L3BhdGg+CjxwYXRoIGQ9Ik0xNi4wMDQ5IDE1Ljk1QzE1LjU2MzEgMTUuOTUgMTUuMjA0OSAxNi4zMDgyIDE1LjIwNDkgMTYuNzVDMTUuMjA0OSAxNy4xOTE4IDE1LjU2MzEgMTcuNTUgMTYuMDA0OSAxNy41NUgxNi4wMTQ5QzE2LjQ1NjcgMTcuNTUgMTYuODE0OSAxNy4xOTE4IDE2LjgxNDkgMTYuNzVDMTYuODE0OSAxNi4zMDgyIDE2LjQ1NjcgMTUuOTUgMTYuMDE0OSAxNS45NUgxNi4wMDQ5WiIgZmlsbD0iIzM0M0M1NCI+PC9wYXRoPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTguNzUgMi43NUM4Ljc1IDIuMzM1NzkgOC40MTQyMSAyIDggMkM3LjU4NTc5IDIgNy4yNSAyLjMzNTc5IDcuMjUgMi43NVYzLjc1SDUuNUM0LjI1NzM2IDMuNzUgMy4yNSA0Ljc1NzM2IDMuMjUgNlYxOUMzLjI1IDIwLjI0MjYgNC4yNTczNiAyMS4yNSA1LjUgMjEuMjVIMTguNUMxOS43NDI2IDIxLjI1IDIwLjc1IDIwLjI0MjYgMjAuNzUgMTlWNkMyMC43NSA0Ljc1NzM2IDE5Ljc0MjYgMy43NSAxOC41IDMuNzVIMTYuNzVWMi43NUMxNi43NSAyLjMzNTc5IDE2LjQxNDIgMiAxNiAyQzE1LjU4NTggMiAxNS4yNSAyLjMzNTc5IDE1LjI1IDIuNzVWMy43NUg4Ljc1VjIuNzVaTTE5LjI1IDguMjVWNkMxOS4yNSA1LjU4NTc5IDE4LjkxNDIgNS4yNSAxOC41IDUuMjVINS41QzUuMDg1NzkgNS4yNSA0Ljc1IDUuNTg1NzkgNC43NSA2VjguMjVIMTkuMjVaTTQuNzUgOS43NUgxOS4yNVYxOUMxOS4yNSAxOS40MTQyIDE4LjkxNDIgMTkuNzUgMTguNSAxOS43NUg1LjVDNS4wODU3OSAxOS43NSA0Ljc1IDE5LjQxNDIgNC43NSAxOVY5Ljc1WiIgZmlsbD0iIzM0M0M1NCI+PC9wYXRoPgo8L3N2Zz4=');
    background-position: center center;
    background-size: 130% 130%;
}
p {
    line-height: 1.8em;
    color: var(--brand-muted);
}
.btn-primary {
    border: none;
    border-radius: 999px;
    background: linear-gradient(120deg, var(--brand-primary), var(--brand-secondary));
    box-shadow: 0 15px 35px rgba(79, 70, 229, 0.35);
    text-transform: uppercase;
    letter-spacing: 0.15em;
    padding: 0.65rem 1.8rem;
    font-weight: 600;
}
.btn-primary:hover {
    background: linear-gradient(120deg, var(--brand-secondary), var(--brand-accent));
}
.btn-outline-primary {
    border-radius: 999px;
    color: var(--brand-primary);
    border: 1px solid rgba(139, 92, 246, 0.5);
}
.btn-outline-primary:hover {
    color: #fff;
    background: var(--brand-primary);
    border-color: var(--brand-primary);
}
.pagination-controls {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 1rem;
    margin: 1.5rem 0 1.25rem;
    font-size: 1.1rem;
}
.pagination-group {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}
.pagination-page-select {
    display: flex;
    align-items: center;
    justify-content: center;
}
select {
    border-radius: 999px;
    border: 1px solid rgba(15, 23, 42, 0.15);
    padding: 0.35rem 1.5rem 0.35rem 0.75rem;
    box-shadow: 0 5px 15px rgba(15, 23, 42, 0.1);
}
.pagination-page-select select {
    background: #fff;
    font-weight: 700;
    color: var(--brand-dark);
    padding: 0.5rem 1.75rem 0.5rem 0.9rem;
}
footer.bg-dark {
    background: linear-gradient(135deg, rgba(2, 6, 23, 0.95), rgba(30, 64, 175, 0.9));
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    box-shadow: 0 -20px 60px rgba(2, 6, 23, 0.55);
}
footer a {
    color: var(--brand-secondary);
    text-decoration: none;
}
footer a:hover {
    color: var(--brand-accent);
}
.footer-tag-select {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-top: 0.75rem;
}
.footer-tag-select label {
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-size: 0.8rem;
    font-weight: 700;
    color: rgba(255, 255, 255, 0.85);
    margin: 0;
}
.footer-tag-select select {
    background: rgba(255, 255, 255, 0.95);
    color: var(--brand-dark);
    min-width: 220px;
}
@media (max-width: 992px) {
    .featured-post {
        padding: 1.5rem;
    }
    .main-content {
        padding: 1.5rem;
    }
}

.branch {
    display: none;
}

.branch.opened {
    display: block;
}
