    #stl_container {
        position: relative;
    }

    #loading_gif {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        z-index: 1000;
        /* Ensure it's on top of the viewer */
    }
    


    /* ---------- Design tokens ---------- */
    :root {
        --font-sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI",
            Roboto, Ubuntu, Cantarell, "Noto Sans", "Helvetica Neue", Arial,
            "Apple Color Emoji", "Segoe UI Emoji";
        --heading-color: #111827;
        /* slate-900 */
        --muted-color: #6b7280;
        /* violet */
        /* Fluid type scale (mobile → desktop) */
        --h1-size: clamp(2.25rem, 3vw + 1rem, 3.5rem);
        --h2-size: clamp(1.75rem, 2.2vw + 0.9rem, 2.5rem);
        --h3-size: clamp(1.35rem, 1.2vw + 0.8rem, 1.75rem);
        --h4-size: clamp(1.125rem, 0.8vw + 0.75rem, 1.25rem);
    }

    @media (prefers-color-scheme: dark) {
        :root {
            --heading-color: #e5e7eb;
            /* slate-200 */
            --muted-color: #111827;
        }
    }


    :where(h1, h2, h3) {
        font-family: var(--font-sans);
        line-height: 1.12;
        letter-spacing: -0.015em;
        margin-block: 1.25rem 0.75rem;
        /* top / bottom rhythm */
        /*text-wrap: balance;*/
        /* nicer line breaks where supported */
        font-weight: 700;
        scroll-margin-top: 6rem;
    }

    .h1_editor {
        font-size: var(--h3-size);
        margin-block-start: 1.5rem;
        padding: var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);
    }

    .h2_editor {
        font-size: var(--h4-size);
        /* subtle accent rule */
        position: relative;
    }

    h1 {
        font-size: var(--h1-size);
        margin-block-start: 1.5rem;
    }

    h2 {
        font-size: var(--h3-size);
        /* subtle accent rule */
        position: relative;
    }

    h2::after {
        content: "";
        display: block;
        width: 3rem;
        height: 0.25rem;
        margin-top: 0.35rem;
        border-radius: 999px;
        background: var(--accent);
    }

    h3 {
        font-size: var(--h4-size);
        color: var(--muted-color);
        letter-spacing: -0.01em;
    }

.read-more {
    font-weight: bold;      /* Example */
    color: #007bff;         /* Bootstrap blue */
    font-style: italic;
    font-size: 14px;
}


.accordion-button {
    display: block;  /* override Bootstrap flex */
    text-align: left;
}

.accordion-button .desc {
    display: block;  /* ensures new line */
    margin-bottom: 0.25rem;
}

.accordion-button .read-more {
    display: block;
    font-size: 14px;
    font-style: italic;
    color: #007bff;   /* link-like */
}