/* ==========================================================
   THEME: blocks — cream background, thick black outlines, bold
   solid color-blocked folder cards, black pill-shaped links.
   Inspired by bold, playful "unit card" brand systems: flat
   saturated color fields, heavy black borders, no gradients,
   no glow — everything reads as cut paper stacked on cream.
   ========================================================== */

[data-theme="blocks"] {
    --bl-cream: #f1e8d9;
    --bl-cream-dim: #e7dcc8;
    --bl-ink: #15171a;
    --bl-ink-soft: #4a473e;
    --bl-line: #15171a;

    /* Tints of the shared accent palette, partway between the
       original saturated colors and fully pastel — the panels are
       a full-bleed background behind black text here (unlike the
       other themes, which only use these as small accents), so
       they need some headroom for legibility, but not too much. */
    --c-magenta: #ff5c96;
    --c-cyan: #3de8d3;
    --c-amber: #ffbd52;
    --c-violet: #a67dff;
}

[data-theme="blocks"] body {
    background: var(--bl-cream);
    background-image: none;
    color: var(--bl-ink);
    font-family: 'Inter', sans-serif;
}

[data-theme="blocks"] a:focus-visible,
[data-theme="blocks"] button:focus-visible {
    outline-color: var(--bl-ink);
    outline-offset: 2px;
}

[data-theme="blocks"] header {
    margin-bottom: 18px;
    padding-bottom: 14px;
    border-bottom: 3px solid var(--bl-ink);
}

[data-theme="blocks"] h1 {
    font-family: var(--font-title);
    font-weight: 900;
    text-transform: none;
    font-size: clamp(2.3rem, 7vw, 3.4rem);
    line-height: 0.95;
    letter-spacing: -0.01em;
    display: block;
    padding: 0;
    border-radius: 0;
    background: none;
    color: var(--bl-ink);
}

[data-theme="blocks"] .cursor {
    background: var(--bl-ink);
    display: none;
} 

[data-theme="blocks"] .subtitle {
    font-family: 'Inter', sans-serif;
    /* font-style: italic; */
    color: var(--bl-ink-soft);
    font-size: 0.98rem;
    line-height: 1.6;
    max-width: 88ch;
    margin-top: 12px;
    white-space: pre-line;
}

/* Folder cards — each one a solid flat color block, stacked, with
   a thick black border. Label sits above its chips instead of
   beside them, so each card reads like a standalone tile. */
[data-theme="blocks"] #dynamic-index {
    display: grid;
    gap: 12px;
}

[data-theme="blocks"] #dynamic-index .group {
    display: block;
    background: var(--accent, var(--bl-cream-dim));
    border: 3px solid var(--bl-line);
    border-radius: 18px;
    padding: 12px 20px;
    margin: 0;
}

/* Category carries clear top-level authority: a rule under a
   large uppercase label, like a section divider in a zine. */
[data-theme="blocks"] #dynamic-index h2 {
    font-family: var(--font-title);
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0;
    font-size: 1.25rem;
    color: var(--bl-ink);
    padding: 6px 0 10px;
    margin: 0 0 10px;
    border-bottom: 3px solid var(--bl-ink);
}
[data-theme="blocks"] #dynamic-index h2::before {
    content: "";
}

[data-theme="blocks"] #dynamic-index li:not(:last-child)::after {
    content: "\2022";
    color: var(--bl-ink);
    opacity: 0.4;
    margin: 0 16px;
}

/* Links stay flat and plain — a lighter, mixed-case sans instead
   of the heavy all-caps display face, which reads more clearly
   against the saturated panels without needing any shadow. */
[data-theme="blocks"] #dynamic-index a {
    padding: 4px 2px;
    border: none;
    border-bottom: 3px solid transparent;
    border-radius: 0;
    background: none;
    font-family: 'Inter', sans-serif;
    font-weight: 700;
    text-transform: none;
    font-size: 1.05rem;
    letter-spacing: 0;
    color: var(--bl-ink);
}

[data-theme="blocks"] #dynamic-index a:hover,
[data-theme="blocks"] #dynamic-index a:focus-visible {
    color: var(--bl-ink);
    background: none;
    border-bottom-color: var(--bl-ink);
}

[data-theme="blocks"] footer {
    font-family: 'IBM Plex Mono', monospace;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    font-size: 0.72rem;
    border-top: 3px solid var(--bl-ink);
    color: var(--bl-ink-soft);
}

@media (max-width: 560px) {
    [data-theme="blocks"] #dynamic-index .group {
        padding: 12px 16px;
    }
    [data-theme="blocks"] #dynamic-index h2 {
        font-size: 1.55rem;
    }
    [data-theme="blocks"] #dynamic-index a {
        font-size: 1.3rem;
        padding: 6px 2px;
    }
    [data-theme="blocks"] #dynamic-index li:not(:last-child)::after {
        margin: 0 12px;
    }
}
