.nav-toggle,
.search-toggle,
.theme-toggle,
.lang-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border: 1px solid var(--line);
    background: color-mix(in srgb, var(--surface-2) 76%, transparent);
    color: var(--text);
    border-radius: 999px;
    padding: 8px 12px;
    font-size: var(--text-sm);
    font-weight: 650;
    min-height: 42px;
    flex-shrink: 0;
}

.nav-toggle {
    display: none;
}

.theme-toggle {
    width: 42px;
    padding-inline: 0;
}

.tool-icon {
    font-size: 0.95rem;
    line-height: 1;
}

.tool-label {
    line-height: 1;
}

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    border-radius: 999px;
    padding: 11px 18px;
    font-size: var(--text-sm);
    font-weight: 750;
    border: 1px solid transparent;
    transition: transform 0.18s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.btn:hover {
    transform: translateY(-2px);
}

.btn-primary {
    color: #031016;
    background: linear-gradient(130deg, var(--primary-strong), var(--primary));
    box-shadow: 0 10px 26px color-mix(in srgb, var(--primary) 45%, transparent);
}

.btn-secondary {
    color: #2b1600;
    background: linear-gradient(130deg, #ffd889, var(--secondary));
}

.btn-ghost {
    color: var(--text);
    background: transparent;
    border-color: var(--line);
}

.hero-card,
.story-card,
.panel,
.list-shell,
.article-panel,
.toc,
.meta-card {
    border: 1px solid var(--line);
    background: color-mix(in srgb, var(--surface) 92%, transparent);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-soft);
}

.promo-grid,
.newsletter-grid {
    padding: var(--space-6);
    border: 1px solid var(--line);
    background: color-mix(in srgb, var(--surface) 92%, transparent);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-soft);
    align-items: center;
}

.hero-card {
    padding: var(--space-6);
    display: grid;
    gap: var(--space-4);
}

.hero-title {
    font-size: clamp(38px, 5vw, 58px);
}

.hero-subtitle {
    max-width: 64ch;
}

.hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
}

.story-card {
    overflow: hidden;
    display: grid;
    min-height: 100%;
    transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.story-card:hover {
    transform: translateY(-5px);
    border-color: color-mix(in srgb, var(--primary) 40%, var(--line));
    box-shadow: var(--shadow-float);
}

.media-frame {
    aspect-ratio: 16 / 9;
    width: 100%;
    overflow: hidden;
    background: linear-gradient(160deg, var(--surface-2), var(--surface-3));
}

.media-frame img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.card-body {
    padding: var(--space-5);
    display: grid;
    gap: var(--space-3);
}

/* Keep card excerpts tight and uniform */
.card-body p {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    width: fit-content;
    border-radius: 999px;
    padding: 5px 10px;
    font-size: var(--text-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #041119;
    background: linear-gradient(130deg, var(--secondary), #ffd889);
}

.meta-row {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    align-items: center;
    font-size: var(--text-xs);
    color: var(--muted);
}

.meta-row .dot::before {
    content: '•';
    margin-right: var(--space-2);
}

.list-shell {
    padding: var(--space-5);
}

.list-browser {
    display: grid;
    gap: var(--space-5);
}

.explorer-toolbar {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) repeat(2, minmax(140px, 220px));
    gap: var(--space-3);
}

.explorer-toolbar.explorer-toolbar-no-type {
    grid-template-columns: minmax(220px, 1fr) minmax(160px, 220px);
}

.explorer-toolbar input,
.explorer-toolbar select {
    width: 100%;
    padding: 10px 12px;
}

.pagination {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    justify-content: center;
}

.pagination button {
    min-width: 38px;
    height: 38px;
    padding: 0 10px;
    border-radius: 999px;
    border: 1px solid var(--line);
    background: color-mix(in srgb, var(--surface-2) 72%, transparent);
    color: var(--text);
    font-weight: 700;
}

.pagination button[aria-current='page'] {
    color: #031016;
    background: linear-gradient(130deg, var(--primary-strong), var(--primary));
    border-color: transparent;
}

.state {
    border: 1px dashed var(--line);
    border-radius: var(--radius-md);
    padding: var(--space-5);
    text-align: center;
    color: var(--muted);
    background: color-mix(in srgb, var(--surface-2) 64%, transparent);
}

.state-error {
    border-color: color-mix(in srgb, var(--danger) 55%, var(--line));
    color: color-mix(in srgb, var(--danger) 75%, var(--text));
}

.loading-dots::after {
    content: '';
    display: inline-block;
    width: 1.2em;
    text-align: left;
    animation: dots 1.2s infinite;
}

@keyframes dots {
    0% { content: ''; }
    33% { content: '.'; }
    66% { content: '..'; }
    100% { content: '...'; }
}

.ad-slot {
    border: 1px dashed var(--line);
    border-radius: var(--radius-md);
    padding: var(--space-3) var(--space-4);
    font-size: var(--text-xs);
    color: var(--muted);
    background: repeating-linear-gradient(
        45deg,
        color-mix(in srgb, var(--surface-2) 78%, transparent),
        color-mix(in srgb, var(--surface-2) 78%, transparent) 10px,
        transparent 10px,
        transparent 20px
    );
}

.article-meta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    margin-top: var(--space-3);
    font-size: var(--text-sm);
    color: var(--muted);
}

.article-panel {
    padding: var(--space-6);
}

.article-panel .featured-image {
    border-radius: var(--radius-md);
    margin-bottom: var(--space-5);
}

.article-panel .content {
    display: grid;
    gap: var(--space-4);
}

.article-panel .content h2,
.article-panel .content h3,
.article-panel .content h4 {
    margin-top: var(--space-4);
}

.article-panel .content p,
.article-panel .content li,
.article-panel .content blockquote {
    color: color-mix(in srgb, var(--text) 88%, var(--muted));
}

.article-panel .content a {
    color: var(--primary-strong);
    text-decoration: underline;
    text-decoration-thickness: 1.5px;
}

.toc,
.meta-card {
    padding: var(--space-4);
}

.toc ul {
    margin: var(--space-3) 0 0;
    padding-left: var(--space-5);
    display: grid;
    gap: var(--space-2);
}

.toc a {
    color: var(--muted);
    font-size: var(--text-sm);
}

.toc a:hover {
    color: var(--text);
}

.notice {
    padding: var(--space-3) var(--space-4);
    border-radius: var(--radius-sm);
    border: 1px solid color-mix(in srgb, var(--secondary) 70%, var(--line));
    background: color-mix(in srgb, var(--secondary) 12%, transparent);
    color: color-mix(in srgb, var(--text) 72%, var(--secondary));
}

.affiliate-box {
    border-radius: var(--radius-sm);
    border: 1px solid color-mix(in srgb, var(--primary) 60%, var(--line));
    background: color-mix(in srgb, var(--primary) 13%, transparent);
    padding: var(--space-4);
    font-size: var(--text-sm);
    color: color-mix(in srgb, var(--text) 84%, var(--primary));
}

.tag-row {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.tag-chip {
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 6px 10px;
    font-size: var(--text-xs);
    color: var(--muted);
}

.form-feedback {
    margin: 2px 0 0;
    min-height: 18px;
    font-size: var(--text-xs);
}

.form-feedback.success {
    color: var(--success);
}

.form-feedback.error {
    color: var(--danger);
}

.social-links {
    margin-top: var(--space-4);
    display: flex;
    gap: var(--space-2);
    flex-wrap: wrap;
}

.social-links a {
    padding: 7px 10px;
    border-radius: 999px;
    font-size: var(--text-xs);
    border: 1px solid var(--line);
    color: var(--muted);
}

.social-links a:hover {
    color: var(--text);
    border-color: color-mix(in srgb, var(--primary) 40%, var(--line));
}

.newsletter {
    padding: 0;
    margin-top: var(--space-4);
}

.promo-band {
    padding: var(--space-8) 0 var(--space-3);
}

.site-footer {
    margin-top: var(--space-6);
    padding: var(--space-4) 0 var(--space-7);
    border-top: 0;
    background: transparent;
}

.footer-shell {
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    padding: var(--space-7) var(--space-6) var(--space-5);
    background:
        radial-gradient(circle at 10% -20%, color-mix(in srgb, var(--primary) 22%, transparent), transparent 46%),
        linear-gradient(165deg, color-mix(in srgb, var(--surface) 96%, transparent), color-mix(in srgb, var(--surface-2) 92%, transparent));
    box-shadow: var(--shadow-soft);
}

.footer-grid {
    align-items: start;
}

.footer-bottom {
    padding: var(--space-5) 0 0;
    margin-top: var(--space-6);
}

.promo-actions {
    display: grid;
    align-content: center;
    gap: var(--space-3);
}

.newsletter-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: var(--space-2);
    align-items: start;
}

.newsletter-form .form-feedback {
    grid-column: 1 / -1;
}

.footer-brand {
    margin-bottom: var(--space-3);
}

.reveal-item {
    opacity: 0;
    transform: translateY(12px);
    transition: opacity 0.35s ease, transform 0.35s ease;
}

.reveal-item.is-visible {
    opacity: 1;
    transform: translateY(0);
}

@media (max-width: 880px) {
    .nav-toggle {
        display: inline-flex;
    }

    .explorer-toolbar {
        grid-template-columns: 1fr;
    }

    .newsletter-form {
        grid-template-columns: 1fr;
    }

    .promo-grid,
    .newsletter-grid {
        padding: var(--space-5);
    }

    .footer-shell {
        padding: var(--space-6) var(--space-4);
    }
}
