/* /Components/Layout/MainLayout.razor.rz.scp.css */
.site[b-cjnuoeihv4] {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    color: var(--color-text, #0f172a);
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
}

/* ───────── Header ───────── */

.site__header[b-cjnuoeihv4] {
    position: sticky;
    top: 0;
    z-index: 50;
    border-bottom: 1px solid rgba(226, 232, 240, 0.6);
    background: rgba(255, 255, 255, 0.78);
    backdrop-filter: saturate(180%) blur(14px);
    -webkit-backdrop-filter: saturate(180%) blur(14px);
}

.site__header-inner[b-cjnuoeihv4] {
    max-width: var(--page-width);
    margin: 0 auto;
    padding: 16px var(--page-padding-x);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}

.site__brand[b-cjnuoeihv4] {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--color-text);
    text-decoration: none;
    font-weight: 700;
    font-size: 17px;
    letter-spacing: -0.01em;
}

.site__brand-mark[b-cjnuoeihv4] {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: conic-gradient(from 200deg, var(--color-primary), var(--color-accent), var(--color-primary));
    box-shadow: 0 4px 12px rgba(79, 70, 229, 0.35);
}

/* Phase 28 — operator-uploaded brand logo. Sized to match the decorative .brand-mark
   so the header/footer layouts stay visually balanced whether the admin has picked a
   logo or not. object-fit keeps non-square assets in proportion. */
.site__brand-logo[b-cjnuoeihv4] {
    width: 22px;
    height: 22px;
    object-fit: contain;
    border-radius: 4px;
}

.site__brand-name[b-cjnuoeihv4] {
    line-height: 1;
}

.site__brand-accent[b-cjnuoeihv4] {
    color: var(--color-primary);
}

.site__nav[b-cjnuoeihv4] {
    display: flex;
    align-items: center;
}

/* Phase 47a — nav list replaced the bare anchor row; reset bullets + reuse the
   flex layout the old .site__nav had so spacing & alignment stay identical. */
.site__nav-list[b-cjnuoeihv4] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    align-items: center;
    gap: 28px;
}

.site__nav-item[b-cjnuoeihv4] {
    position: relative;
    display: flex;
    align-items: center;
}

.site__nav-link[b-cjnuoeihv4] {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--color-text-muted);
    text-decoration: none;
    font-size: 14px;
    font-weight: 500;
    padding: 6px 0;
    transition: color 140ms ease;
    cursor: pointer;
}

.site__nav-link:hover[b-cjnuoeihv4] {
    color: var(--color-text);
}

.site__nav-link--group[b-cjnuoeihv4] {
    cursor: default;
}

.site__nav-icon[b-cjnuoeihv4] {
    display: inline-flex;
    width: 18px;
    height: 18px;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    line-height: 1;
}

.site__nav-link--active[b-cjnuoeihv4] {
    color: var(--color-text);
}

.site__nav-link--active[b-cjnuoeihv4]::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -2px;
    height: 2px;
    border-radius: 2px;
    background: linear-gradient(90deg, var(--color-primary), var(--color-accent));
}

/* Phase 47a — drop-down sub-menus for items with Children. Hidden by default,
   revealed on hover/focus-within so the trigger area stays clickable on touch
   devices via :focus. CSS-only baseline; JS enhancement can come later. */
.site__nav-submenu[b-cjnuoeihv4] {
    position: absolute;
    top: 100%;
    left: 0;
    margin: 0;
    padding: 8px 0;
    min-width: 200px;
    list-style: none;
    background: var(--color-surface, #fff);
    border: 1px solid var(--color-border, rgba(0, 0, 0, 0.08));
    border-radius: 8px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
    opacity: 0;
    visibility: hidden;
    transform: translateY(4px);
    transition: opacity 140ms ease, transform 140ms ease, visibility 140ms;
    z-index: 50;
}

.site__nav-item--has-children:hover > .site__nav-submenu[b-cjnuoeihv4],
.site__nav-item--has-children:focus-within > .site__nav-submenu[b-cjnuoeihv4] {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.site__nav-item--has-children > .site__nav-link[b-cjnuoeihv4]::after,
.site__nav-item--has-children > .site__nav-link--group[b-cjnuoeihv4]::after {
    content: "▾";
    margin-left: 4px;
    font-size: 10px;
    opacity: 0.7;
}

.site__nav-subitem[b-cjnuoeihv4] {
    display: block;
}

.site__nav-link--child[b-cjnuoeihv4] {
    display: flex;
    padding: 8px 16px;
    font-size: 14px;
    white-space: nowrap;
}

.site__nav-link--child:hover[b-cjnuoeihv4] {
    background: var(--color-surface-muted, rgba(0, 0, 0, 0.04));
}

.site__cta[b-cjnuoeihv4] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: var(--color-text);
    color: #fff;
    text-decoration: none;
    font-size: 13px;
    font-weight: 600;
    padding: 9px 16px;
    border-radius: 999px;
    transition: background-color 140ms ease, transform 140ms ease;
}

.site__cta:hover[b-cjnuoeihv4] {
    background: var(--color-primary);
    transform: translateY(-1px);
}

@media (max-width: 760px) {
    .site__nav[b-cjnuoeihv4] { display: none; }
    .site__cta[b-cjnuoeihv4] {
        padding: 8px 12px;
        font-size: 12px;
    }
}

/* ───────── Main ───────── */

.site__main[b-cjnuoeihv4] {
    flex: 1;
    width: 100%;
    margin: 0 auto;
    padding: 56px 0 80px;
}

/* ───────── Footer ───────── */

.site__footer[b-cjnuoeihv4] {
    margin-top: 80px;
    background: linear-gradient(180deg, transparent 0%, rgba(238, 242, 255, 0.6) 100%);
    border-top: 1px solid var(--color-border);
}

/* Phase 51c — auto-hide the CMS footer when the imported page body brings its
   own. Without this, bundle-driven Marketing pages render a doubled footer
   (their own + our CMS legal-column). `:has()` is supported in Chrome 105+,
   Safari 15.4+, Firefox 121+ — covers ~97% of traffic. The JS-fallback at
   the body of MainLayout.razor handles older browsers + the same case where
   the bundle injects its footer after page load.

   Phase 48 — exception: when the operator has explicitly curated a footer via
   /footer admin (marked with --operator), the CMS footer wins over the bundle's.
   The intent signal of "I configured this" beats the heuristic. The next rule
   hides the bundle's own footer in that case so we still avoid doubled chrome. */
.site:has(.site__main footer) > .site__footer:not(.site__footer--operator)[b-cjnuoeihv4],
.site:has(.site__main [data-nexo-footer]) > .site__footer:not(.site__footer--operator)[b-cjnuoeihv4] {
    display: none !important;
}

/* Phase 48 — symmetric rule: when the CMS footer is operator-curated, suppress
   the bundle's own <footer> / [data-nexo-footer] instead. The site author cared
   enough to fill in /footer, so that's the canonical footer; the bundle's was
   only there because the imported HTML happened to include one.

   `::deep` is critical here: Razor scoped CSS otherwise appends the scope
   attribute to the LAST simple selector (`footer[b-xxx]` / `[data-nexo-footer][b-xxx]`),
   which would only match elements rendered by MainLayout itself. The bundle
   footer is rendered from imported HTML and carries no scope attribute, so the
   rule would silently no-op. `::deep` anchors the scope on `.site__main` (which
   IS MainLayout-owned) and leaves `footer` / `[data-nexo-footer]` un-scoped,
   so they match the bundle element. */
.site:has(> .site__footer.site__footer--operator) .site__main[b-cjnuoeihv4]  footer,
.site:has(> .site__footer.site__footer--operator) .site__main[b-cjnuoeihv4]  [data-nexo-footer] {
    display: none !important;
}

.site__footer-inner[b-cjnuoeihv4] {
    max-width: var(--page-width);
    margin: 0 auto;
    padding: 56px var(--page-padding-x) 32px;
    display: grid;
    /* Phase 50c — brand on the left, legal column on the right. auto-fit
       collapses the second track when there are no legal pages yet, so the
       brand block spans full-width on a brand-new site without leaving an
       empty gutter behind. */
    grid-template-columns: 2fr repeat(auto-fit, minmax(180px, 1fr));
    gap: 48px;
    align-items: start;
}

/* Tablet-ish viewports: brand spans full width, legal column wraps under it.
   Single rule covers everything from 481px down to 760px since the footer is
   now a two-column max instead of four. */
@media (max-width: 760px) and (min-width: 481px) {
    .site__footer-inner[b-cjnuoeihv4] {
        grid-template-columns: 1fr;
        gap: 32px;
        padding: 48px var(--page-padding-x) 28px;
    }
    .site__footer-tagline[b-cjnuoeihv4] {
        max-width: 560px;
    }
}

/* Real-phone viewports: single column, one block per heading. */
@media (max-width: 480px) {
    .site__footer-inner[b-cjnuoeihv4] {
        grid-template-columns: 1fr;
        gap: 28px;
        padding: 40px var(--page-padding-x) 24px;
    }
}

.site__footer-col--brand .site__brand[b-cjnuoeihv4] {
    margin-bottom: 12px;
}

.site__footer-tagline[b-cjnuoeihv4] {
    margin: 0;
    color: var(--color-text-muted);
    font-size: 14px;
    line-height: 1.6;
    max-width: 380px;
}

.site__footer-heading[b-cjnuoeihv4] {
    margin: 0 0 12px;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--color-text-muted);
}

.site__footer-list[b-cjnuoeihv4] {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 8px;
}

.site__footer-list a[b-cjnuoeihv4] {
    color: var(--color-text);
    text-decoration: none;
    font-size: 14px;
    transition: color 140ms ease;
}

.site__footer-list a:hover[b-cjnuoeihv4] {
    color: var(--color-primary);
}

.site__footer-base[b-cjnuoeihv4] {
    max-width: var(--page-width);
    margin: 0 auto;
    padding: 16px var(--page-padding-x) 32px;
    color: var(--color-text-soft);
    font-size: 12px;
    border-top: 1px solid var(--color-border);
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px 18px;
    text-align: center;
}

.site__footer-cookie-button[b-cjnuoeihv4] {
    border: 0;
    padding: 0;
    background: transparent;
    color: var(--color-text-muted);
    font: inherit;
    text-decoration: underline;
    text-underline-offset: 3px;
    cursor: pointer;
}

.site__footer-cookie-button:hover[b-cjnuoeihv4],
.site__footer-cookie-button:focus-visible[b-cjnuoeihv4] {
    color: var(--color-primary);
}
/* /Components/Newsletter/NewsletterSubscription.razor.rz.scp.css */
/* Scoped styles for the newsletter signup island.
   Phase 73 — self-contained card. The island embeds on authored landing pages
   whose bundle CSS (a) paints a dark hero background, (b) overrides the global
   design tokens (--color-surface / --color-text / --color-text-muted) to dark
   values, and (c) resets <input>/<button> defaults (Tailwind preflight). The
   previous styling assumed a LIGHT page and relied on `.btn`/`.btn-primary`
   classes that PublicWeb never actually defines — so on the dark hero the form
   collapsed to empty/invisible boxes (input text, "Abonnieren" button and
   consent copy all vanished). Mirror the forms.css strategy: the form carries
   its own surface + palette + render-critical !important, so it is readable and
   operable regardless of the host background. */

.nl-form[b-2lit5gf8if] {
    --nl-fg: #0f172a;
    --nl-fg-muted: #475569;
    --nl-border: #e2e8f0;
    --nl-border-focus: #2563eb;
    --nl-surface: #ffffff;
    --nl-input-bg: #ffffff;
    --nl-primary: #2563eb;
    --nl-primary-hover: #1d4ed8;
    --nl-success-bg: #ecfdf5;
    --nl-success-fg: #065f46;
    --nl-success-border: #6ee7b7;
    --nl-error-bg: #fef2f2;
    --nl-error-fg: #991b1b;
    --nl-error-border: #fecaca;

    display: flex !important;
    flex-direction: column;
    gap: 14px;
    max-width: 520px;
    padding: 24px !important;
    border: 1px solid var(--nl-border) !important;
    border-radius: 12px !important;
    background: var(--nl-surface) !important;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
    color: var(--nl-fg) !important;
    /* Pin the sans stack: a bundle whose base font is monospace would otherwise
       leak into the consent/label text. */
    font-family: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
    box-sizing: border-box;
}

.nl-form *[b-2lit5gf8if],
.nl-form *[b-2lit5gf8if]::before,
.nl-form *[b-2lit5gf8if]::after {
    box-sizing: border-box;
}

.nl-row[b-2lit5gf8if] {
    display: flex;
    gap: 8px;
    align-items: stretch;
}

.nl-row[b-2lit5gf8if]  input[type="email"] {
    appearance: none;
    -webkit-appearance: none;
    flex: 1 1 auto;
    min-width: 0;
    width: 100%;
    padding: 11px 13px !important;
    font: inherit;
    border: 1px solid var(--nl-border) !important;
    border-radius: 8px !important;
    background: var(--nl-input-bg) !important;
    color: var(--nl-fg) !important;
}

.nl-row[b-2lit5gf8if]  input[type="email"]::placeholder {
    color: var(--nl-fg-muted);
    opacity: 0.7;
}

.nl-row[b-2lit5gf8if]  input[type="email"]:focus-visible {
    outline: none;
    border-color: var(--nl-border-focus) !important;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.18);
}

/* The markup carries `class="btn btn-primary"`, but PublicWeb defines neither —
   style the submit button directly so it never depends on those classes. */
.nl-row button[b-2lit5gf8if] {
    appearance: none !important;
    -webkit-appearance: none !important;
    flex: 0 0 auto;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    padding: 11px 20px !important;
    border: 1px solid var(--nl-primary) !important;
    border-radius: 8px !important;
    background: var(--nl-primary) !important;
    color: #ffffff !important;
    font: inherit;
    font-weight: 600 !important;
    line-height: 1.2 !important;
    white-space: nowrap;
    cursor: pointer;
}

.nl-row button:hover:not(:disabled)[b-2lit5gf8if] {
    background: var(--nl-primary-hover) !important;
    border-color: var(--nl-primary-hover) !important;
}

.nl-row button:disabled[b-2lit5gf8if] {
    opacity: 0.7;
    cursor: wait;
}

.nl-check[b-2lit5gf8if] {
    display: flex;
    gap: 8px;
    align-items: flex-start;
    font-size: 0.85rem;
    line-height: 1.45;
    color: var(--nl-fg-muted) !important;
}

.nl-check[b-2lit5gf8if]  input[type="checkbox"] {
    margin-top: 2px;
    flex: 0 0 auto;
    accent-color: var(--nl-primary);
}

.nl-check[b-2lit5gf8if]  a {
    color: var(--nl-primary) !important;
    text-decoration: underline;
}

/* Authored bundles ship their OWN `.nl-success { display:none }` (revealed via a
   `.show` class their mockup JS toggles) — a class-name collision with this island,
   which renders `.nl-success` WITHOUT `.show`. Without an explicit display here the
   bundle's `display:none` wins and the confirmation never shows (the "empty box").
   Force visibility + render-critical !important so the host bundle can neither hide
   nor recolour the status messages — same strategy as the form elements above. */
.nl-success[b-2lit5gf8if] {
    display: block !important;
    margin: 0;
    padding: 12px 14px !important;
    border-radius: 8px;
    background: var(--nl-success-bg) !important;
    color: var(--nl-success-fg) !important;
    border: 1px solid var(--nl-success-border) !important;
    font-weight: 500;
}

.nl-error[b-2lit5gf8if] {
    display: block !important;
    margin: 0;
    padding: 12px 14px !important;
    border-radius: 8px;
    background: var(--nl-error-bg) !important;
    color: var(--nl-error-fg) !important;
    border: 1px solid var(--nl-error-border) !important;
    font-size: 0.85rem;
}

.cf-turnstile[b-2lit5gf8if] {
    min-height: 65px;
}

/* OS dark-mode opt-in — the card flips to a dark surface so it never looks like a
   harsh white slab for users who prefer dark. (The authored hero is dark by its
   own bundle CSS regardless of this; here the card stays legible either way.) */
@media (prefers-color-scheme: dark) {
    .nl-form[b-2lit5gf8if] {
        --nl-fg: #f1f5f9;
        --nl-fg-muted: #94a3b8;
        --nl-border: #334155;
        --nl-border-focus: #60a5fa;
        --nl-surface: #0f172a;
        --nl-input-bg: #1e293b;
        --nl-success-bg: rgba(110, 231, 183, 0.1);
        --nl-success-fg: #6ee7b7;
        --nl-success-border: rgba(110, 231, 183, 0.3);
        --nl-error-bg: rgba(252, 165, 165, 0.1);
        --nl-error-fg: #fca5a5;
        --nl-error-border: rgba(252, 165, 165, 0.3);
    }
}
/* /Components/Pages/Article.razor.rz.scp.css */
/* Article-kind container. Wider than --prose-width (720px) — operator-reported
   the prose width felt email-narrow for landing-page-adjacent articles (download
   summaries, briefings). 960px keeps lines readable while giving the page room
   to breathe. --prose-width stays the right call for actual reading-flow surfaces
   (.article-shell 404 page below, blog index lede). */

.article[b-dcf00j661d] {
    max-width: 960px;
    margin: 0 auto;
    padding: 0 var(--page-padding-x);
}

.article-shell[b-dcf00j661d] {
    max-width: var(--prose-width);
    margin: 0 auto;
    padding: 0 var(--page-padding-x);
}

/* ───────── Header ───────── */

.article__header[b-dcf00j661d] {
    margin-bottom: 40px;
    padding-bottom: 28px;
    border-bottom: 1px solid var(--color-border);
}

.article__back[b-dcf00j661d] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--color-text-muted);
    text-decoration: none;
    font-size: 13px;
    font-weight: 500;
    margin-bottom: 28px;
    transition: color 140ms ease, transform 140ms ease;
}

.article__back:hover[b-dcf00j661d] {
    color: var(--color-primary);
    transform: translateX(-2px);
}

.article__eyebrow[b-dcf00j661d] {
    display: inline-flex;
    align-items: center;
    padding: 5px 12px;
    border-radius: 999px;
    background: var(--color-primary-soft);
    color: var(--color-primary);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.article__title[b-dcf00j661d] {
    margin: 18px 0 16px;
    font-size: clamp(32px, 5vw, 46px);
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: -0.025em;
    color: var(--color-text);
}

.article__byline[b-dcf00j661d] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.article__author-avatar[b-dcf00j661d] {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-accent) 100%);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 16px;
    box-shadow: var(--shadow-sm);
}

.article__author-block[b-dcf00j661d] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.article__author[b-dcf00j661d] {
    font-size: 14px;
    font-weight: 600;
    color: var(--color-text);
}

.article__byline-meta[b-dcf00j661d] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--color-text-muted);
    font-size: 13px;
    font-variant-numeric: tabular-nums;
}

.article__byline-meta span[aria-hidden][b-dcf00j661d] {
    opacity: 0.5;
}

/* ───────── Body ───────── */

.article__body[b-dcf00j661d] {
    font-size: 18px;
    line-height: 1.75;
    color: var(--color-text);
}

/* ───────── Footer ───────── */

.article__footer[b-dcf00j661d] {
    margin-top: 56px;
    padding-top: 28px;
    border-top: 1px solid var(--color-border);
}

.article__tags[b-dcf00j661d] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 32px;
}

.article__tag[b-dcf00j661d] {
    background: var(--color-tag-bg);
    color: var(--color-tag-text);
    border-radius: 999px;
    padding: 6px 14px;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.01em;
    text-decoration: none;
    transition: background 140ms ease, color 140ms ease;
}

.article__tag:hover[b-dcf00j661d] {
    background: var(--color-primary);
    color: #fff;
}

.article__cta[b-dcf00j661d] {
    display: flex;
    justify-content: center;
}

.article__cta-back[b-dcf00j661d] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 24px;
    border-radius: 999px;
    background: var(--color-text);
    color: #fff;
    text-decoration: none;
    font-size: 14px;
    font-weight: 600;
    transition: background-color 140ms ease, transform 140ms ease;
}

.article__cta-back:hover[b-dcf00j661d] {
    background: var(--color-primary);
    transform: translateY(-1px);
}

/* ───────── 404 ───────── */

.article-missing[b-dcf00j661d] {
    text-align: center;
    padding: 80px 24px 64px;
}

.article-missing__code[b-dcf00j661d] {
    display: inline-block;
    font-size: 88px;
    font-weight: 900;
    letter-spacing: -0.04em;
    line-height: 1;
    background: linear-gradient(120deg, var(--color-primary) 0%, var(--color-accent) 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    margin-bottom: 16px;
}

.article-missing h1[b-dcf00j661d] {
    font-size: 28px;
    font-weight: 700;
    margin: 0 0 12px;
}

.article-missing p[b-dcf00j661d] {
    color: var(--color-text-muted);
    margin: 0 0 8px;
}

.article-missing__back[b-dcf00j661d] {
    color: var(--color-primary);
    font-weight: 600;
    text-decoration: none;
}

.article-missing__back:hover[b-dcf00j661d] { text-decoration: underline; }

/* ───────── Page kind on /{Slug} (Phase 14d follow-up #4) ─────────
   Custom Pages reach the catch-all /{Slug} route and render with the same layout
   tokens as /about, /contact, /imprint (StaticPage.razor). Duplicated here rather
   than promoted to global CSS — Blazor scoped CSS auto-attributes don't propagate
   across components, and the Phase 14c convention is to keep duplicate stylesheets
   local to the components that use them. */

.static-page[b-dcf00j661d] {
    max-width: 720px;
    margin: 0 auto;
    padding: 56px var(--page-padding-x) 96px;
}

/* Phase 59 — the Page-kind header rules were removed: Article.razor no longer emits the
   CMS heading for the Page kind (imported bodies carry their own). Wrapper + body remain. */

.static-page__body[b-dcf00j661d] {
    font-size: 17px;
    line-height: 1.7;
    color: var(--color-text);
}
/* /Components/Pages/Blog.razor.rz.scp.css */
/* Phase 55a — scoped styles for the Blog index. Mirrors Topics/Topic patterns;
   scoped CSS doesn't share rules across components, so the grid + skeleton
   rules are repeated here intentionally. */

.blog-hero[b-sfdje4jqvd] {
    max-width: var(--page-width);
    margin: 32px auto 24px;
    padding: 0 var(--page-padding-x);
}

.blog-hero__inner[b-sfdje4jqvd] { display: block; }

.blog-hero__eyebrow[b-sfdje4jqvd] {
    display: inline-block;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--color-text-muted);
    margin-bottom: 8px;
}

.blog-hero__title[b-sfdje4jqvd] {
    margin: 0 0 12px;
    font-size: clamp(32px, 4.5vw, 44px);
    font-weight: 800;
    letter-spacing: -0.025em;
    color: var(--color-text);
    line-height: 1.1;
}

.blog-hero__lead[b-sfdje4jqvd] {
    margin: 0;
    color: var(--color-text-muted);
    font-size: 16px;
    line-height: 1.6;
    max-width: 720px;
}

.blog-hero__back[b-sfdje4jqvd] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 16px;
    color: var(--color-text-muted);
    text-decoration: none;
    font-size: 14px;
    font-weight: 600;
}

.blog-hero__back:hover[b-sfdje4jqvd] { color: var(--color-text); }

.blog[b-sfdje4jqvd] {
    max-width: var(--page-width);
    margin: 0 auto;
    padding: 0 var(--page-padding-x) 64px;
}

.blog__header[b-sfdje4jqvd] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    margin: 8px 0 28px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--color-border);
}

.blog__heading[b-sfdje4jqvd] {
    font-size: 22px;
    font-weight: 700;
    letter-spacing: -0.01em;
    margin: 0;
}

.blog__count[b-sfdje4jqvd] {
    color: var(--color-text-muted);
    font-size: 13px;
    font-variant-numeric: tabular-nums;
}

.blog__grid[b-sfdje4jqvd] {
    display: grid;
    grid-template-columns: 1fr;
    gap: 28px;
}

@media (min-width: 760px) {
    .blog__grid[b-sfdje4jqvd] { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 1080px) {
    .blog__grid[b-sfdje4jqvd] { grid-template-columns: repeat(3, 1fr); }
}

.blog__empty[b-sfdje4jqvd] {
    text-align: center;
    padding: 64px 24px;
    border: 1px dashed var(--color-border-strong);
    border-radius: var(--radius-lg);
    background: var(--color-surface);
}

.blog__empty p[b-sfdje4jqvd] { margin: 0 0 4px; }

.blog__skeleton[b-sfdje4jqvd] {
    display: grid;
    grid-template-columns: 1fr;
    gap: 28px;
}

@media (min-width: 760px) {
    .blog__skeleton[b-sfdje4jqvd] { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 1080px) {
    .blog__skeleton[b-sfdje4jqvd] { grid-template-columns: repeat(3, 1fr); }
}

.blog__skel-card[b-sfdje4jqvd] {
    height: 320px;
    border-radius: var(--radius-lg);
    background: linear-gradient(90deg, var(--color-surface) 0%, var(--color-surface-soft) 50%, var(--color-surface) 100%);
    background-size: 200% 100%;
    animation: blog-skel-b-sfdje4jqvd 1.4s ease-in-out infinite;
}

@keyframes blog-skel-b-sfdje4jqvd {
    0% { background-position: 100% 0; }
    100% { background-position: -100% 0; }
}

.blog__pager[b-sfdje4jqvd] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 24px;
    margin-top: 48px;
    padding-top: 24px;
    border-top: 1px solid var(--color-border);
}

.blog__pager-link[b-sfdje4jqvd] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    color: var(--color-text);
    text-decoration: none;
    font-size: 14px;
    font-weight: 600;
    background: var(--color-surface);
}

.blog__pager-link:hover[b-sfdje4jqvd] {
    background: var(--color-surface-soft);
    border-color: var(--color-border-strong);
}

.blog__pager-link--disabled[b-sfdje4jqvd] {
    color: var(--color-text-muted);
    background: transparent;
    border-color: var(--color-border);
    cursor: not-allowed;
    opacity: 0.55;
    pointer-events: none;
}

.blog__pager-current[b-sfdje4jqvd] {
    color: var(--color-text-muted);
    font-size: 13px;
    font-variant-numeric: tabular-nums;
}
/* /Components/Pages/Home.razor.rz.scp.css */
/* ───────── Hero ───────── */

.hero[b-ifzjw8g8i7] {
    position: relative;
    max-width: var(--page-width);
    margin: 0 auto 64px;
    padding: 56px var(--page-padding-x) 64px;
    overflow: hidden;
}

.hero__inner[b-ifzjw8g8i7] {
    position: relative;
    z-index: 1;
    max-width: 760px;
}

.hero__eyebrow[b-ifzjw8g8i7] {
    display: inline-flex;
    align-items: center;
    padding: 6px 14px;
    border-radius: 999px;
    background: var(--color-primary-soft, #eef2ff);
    color: var(--color-primary, #4338ca);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.hero__title[b-ifzjw8g8i7] {
    margin: 22px 0 18px;
    font-size: clamp(40px, 6vw, 64px);
    font-weight: 800;
    line-height: 1.05;
    letter-spacing: -0.03em;
    color: var(--color-text);
}

.hero__title-accent[b-ifzjw8g8i7] {
    background: linear-gradient(120deg, var(--color-primary, #4f46e5) 0%, var(--color-accent, #f97316) 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    /* fallback for browsers without bg-clip support */
    background-color: var(--color-primary, #4f46e5);
}

.hero__lead[b-ifzjw8g8i7] {
    max-width: 600px;
    margin: 0 0 28px;
    color: var(--color-text-muted);
    font-size: 18px;
    line-height: 1.6;
}

.hero__chips[b-ifzjw8g8i7] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.hero__chip[b-ifzjw8g8i7] {
    display: inline-flex;
    align-items: center;
    padding: 7px 14px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.7);
    border: 1px solid var(--color-border);
    color: var(--color-text);
    text-decoration: none;
    font-size: 13px;
    font-weight: 500;
    transition: border-color 140ms ease, background-color 140ms ease, color 140ms ease, transform 140ms ease;
}

.hero__chip:hover[b-ifzjw8g8i7] {
    border-color: var(--color-primary);
    background: var(--color-primary-soft);
    color: var(--color-primary);
    transform: translateY(-1px);
}

.hero__decor[b-ifzjw8g8i7] {
    position: absolute;
    top: 50%;
    right: -120px;
    width: 360px;
    height: 360px;
    transform: translateY(-50%);
    border-radius: 50%;
    background:
        radial-gradient(closest-side, rgba(79, 70, 229, 0.18), transparent 70%),
        radial-gradient(closest-side at 70% 30%, rgba(249, 115, 22, 0.18), transparent 70%);
    filter: blur(20px);
    pointer-events: none;
    z-index: 0;
}

@media (max-width: 760px) {
    .hero[b-ifzjw8g8i7] { padding-top: 32px; padding-bottom: 32px; margin-bottom: 32px; }
    .hero__decor[b-ifzjw8g8i7] { display: none; }
}

/* ───────── Articles section ───────── */

.home[b-ifzjw8g8i7] {
    max-width: var(--page-width);
    margin: 0 auto;
    padding: 0 var(--page-padding-x);
}

.home__header[b-ifzjw8g8i7] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    margin-bottom: 28px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--color-border);
}

.home__heading[b-ifzjw8g8i7] {
    font-size: 22px;
    font-weight: 700;
    letter-spacing: -0.01em;
    margin: 0;
}

.home__count[b-ifzjw8g8i7] {
    color: var(--color-text-muted);
    font-size: 13px;
    font-variant-numeric: tabular-nums;
}

.home__grid[b-ifzjw8g8i7] {
    display: grid;
    grid-template-columns: 1fr;
    gap: 28px;
}

@media (min-width: 760px) {
    .home__grid[b-ifzjw8g8i7] {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 1080px) {
    .home__grid[b-ifzjw8g8i7] {
        grid-template-columns: repeat(3, 1fr);
    }
}

/* ───────── Empty + skeleton states ───────── */

.home__empty[b-ifzjw8g8i7] {
    text-align: center;
    padding: 64px 24px;
    border: 1px dashed var(--color-border-strong);
    border-radius: var(--radius-lg);
    background: var(--color-surface);
    color: var(--color-text);
}

.home__empty p[b-ifzjw8g8i7] { margin: 0 0 4px; }
.home__empty-sub[b-ifzjw8g8i7] { color: var(--color-text-muted); font-size: 14px; }

.home__skeleton[b-ifzjw8g8i7] {
    display: grid;
    grid-template-columns: 1fr;
    gap: 28px;
}
@media (min-width: 760px) { .home__skeleton[b-ifzjw8g8i7] { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1080px) { .home__skeleton[b-ifzjw8g8i7] { grid-template-columns: repeat(3, 1fr); } }

.home__skel-card[b-ifzjw8g8i7] {
    height: 280px;
    border-radius: var(--radius-lg);
    background: linear-gradient(90deg, #f1f5f9 0%, #e2e8f0 50%, #f1f5f9 100%);
    background-size: 200% 100%;
    animation: home-shimmer-b-ifzjw8g8i7 1.4s linear infinite;
}

@keyframes home-shimmer-b-ifzjw8g8i7 {
    0%   { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}
/* /Components/Pages/Search.razor.rz.scp.css */
.search-header[b-cnl7uij2tg] {
    max-width: var(--page-width);
    margin: 32px auto 24px;
    padding: 0 var(--page-padding-x);
}

.search-header__eyebrow[b-cnl7uij2tg] {
    display: inline-block;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--color-text-muted);
    margin-bottom: 8px;
}

.search-header__title[b-cnl7uij2tg] {
    margin: 0 0 20px;
    font-size: clamp(32px, 4.5vw, 44px);
    font-weight: 800;
    letter-spacing: -0.025em;
    color: var(--color-text);
    line-height: 1.1;
}

.search-form[b-cnl7uij2tg] {
    display: flex;
    gap: 8px;
    max-width: 720px;
}

.search-form__input[b-cnl7uij2tg] {
    flex: 1;
    padding: 12px 16px;
    font-size: 16px;
    border: 1px solid var(--color-border, #cbd5e1);
    border-radius: 999px;
    background: #fff;
    color: var(--color-text);
    transition: border-color 140ms ease, box-shadow 140ms ease;
}

.search-form__input:focus[b-cnl7uij2tg] {
    outline: none;
    border-color: var(--color-primary, #4f46e5);
    box-shadow: 0 0 0 4px rgba(79, 70, 229, 0.15);
}

.search-form__submit[b-cnl7uij2tg] {
    padding: 12px 22px;
    background: var(--color-primary, #4f46e5);
    color: #fff;
    border: 0;
    border-radius: 999px;
    font-weight: 600;
    cursor: pointer;
    transition: background 140ms ease, transform 140ms ease;
}

.search-form__submit:hover[b-cnl7uij2tg] {
    background: var(--color-primary-hover, #4338ca);
    transform: translateY(-1px);
}

.search-shell[b-cnl7uij2tg] {
    max-width: var(--prose-width);
    margin: 0 auto;
    padding: 40px var(--page-padding-x) 80px;
    color: var(--color-text-muted);
}

.search-hint[b-cnl7uij2tg] {
    text-align: center;
}

.search-empty[b-cnl7uij2tg] {
    text-align: center;
}

.search-empty a[b-cnl7uij2tg] {
    color: var(--color-primary, #4338ca);
    font-weight: 600;
    text-decoration: none;
}

.search-empty a:hover[b-cnl7uij2tg] { text-decoration: underline; }

.search-results[b-cnl7uij2tg] {
    max-width: var(--page-width);
    margin: 0 auto;
    padding: 12px var(--page-padding-x) 80px;
}

.search-results__count[b-cnl7uij2tg] {
    margin: 0 0 24px;
    color: var(--color-text-muted);
    font-size: 14px;
}
/* /Components/Pages/StaticPage.razor.rz.scp.css */
.static-page-shell[b-aiq926q85h] {
    max-width: 720px;
    margin: 0 auto;
    padding: 80px var(--page-padding-x);
    color: var(--color-text-muted);
}

.static-page-missing[b-aiq926q85h] {
    text-align: center;
}

.static-page-missing__code[b-aiq926q85h] {
    display: inline-block;
    color: var(--color-text-muted);
    font-family: "JetBrains Mono", monospace;
    font-size: 13px;
    letter-spacing: 0.16em;
    margin-bottom: 12px;
}

.static-page-missing__back[b-aiq926q85h] {
    color: var(--color-primary, #4338ca);
    font-weight: 600;
    text-decoration: none;
}

.static-page[b-aiq926q85h] {
    max-width: 720px;
    margin: 0 auto;
    padding: 56px var(--page-padding-x) 96px;
}

/* Phase 59 — the Page header rules were removed: StaticPage.razor no longer emits the
   CMS heading for about/contact/imprint (authored bodies carry their own). Wrapper + body remain. */

.static-page__body[b-aiq926q85h] {
    font-size: 17px;
    line-height: 1.7;
    color: var(--color-text);
}
/* /Components/Pages/Tag.razor.rz.scp.css */
.tag-shell[b-copp82079c] {
    max-width: var(--prose-width);
    margin: 0 auto;
    padding: 80px var(--page-padding-x);
    color: var(--color-text-muted);
    text-align: center;
}

.tag-missing__code[b-copp82079c] {
    display: inline-block;
    margin-bottom: 8px;
    padding: 4px 12px;
    border-radius: 999px;
    background: var(--color-surface-soft, #eef2ff);
    color: var(--color-primary);
    font-family: "JetBrains Mono", monospace;
    font-size: 14px;
}

.tag-missing__back[b-copp82079c] {
    color: var(--color-primary, #4338ca);
    font-weight: 600;
    text-decoration: none;
}

.tag-missing__back:hover[b-copp82079c] { text-decoration: underline; }

.tag-header[b-copp82079c] {
    max-width: var(--page-width);
    margin: 32px auto 24px;
    padding: 0 var(--page-padding-x);
}

.tag-header__eyebrow[b-copp82079c] {
    display: inline-block;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--color-text-muted);
    margin-bottom: 8px;
}

.tag-header__title[b-copp82079c] {
    margin: 0 0 12px;
    font-size: clamp(32px, 4.5vw, 44px);
    font-weight: 800;
    letter-spacing: -0.025em;
    color: var(--color-text);
    line-height: 1.1;
}

.tag-header__lead[b-copp82079c] {
    margin: 0;
    color: var(--color-text-muted);
    font-size: 16px;
    line-height: 1.6;
}

.tag-header__lead code[b-copp82079c] {
    background: var(--color-surface-soft, #eef2ff);
    color: var(--color-primary);
    padding: 1px 6px;
    border-radius: 4px;
    font-family: "JetBrains Mono", monospace;
    font-size: 0.92em;
}

.tag-list[b-copp82079c] {
    max-width: var(--page-width);
    margin: 0 auto;
    padding: 0 var(--page-padding-x) 80px;
}
/* /Components/Pages/Tags.razor.rz.scp.css */
.tags-header[b-fu6j9kagrg] {
    max-width: var(--page-width);
    margin: 32px auto 24px;
    padding: 0 var(--page-padding-x);
}

.tags-header__eyebrow[b-fu6j9kagrg] {
    display: inline-block;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--color-text-muted);
    margin-bottom: 8px;
}

.tags-header__title[b-fu6j9kagrg] {
    margin: 0 0 12px;
    font-size: clamp(32px, 4.5vw, 44px);
    font-weight: 800;
    letter-spacing: -0.025em;
    color: var(--color-text);
    line-height: 1.1;
}

.tags-header__lead[b-fu6j9kagrg] {
    margin: 0;
    color: var(--color-text-muted);
    font-size: 16px;
    line-height: 1.6;
    max-width: 640px;
}

.tags-cloud[b-fu6j9kagrg] {
    max-width: var(--page-width);
    margin: 0 auto;
    padding: 12px var(--page-padding-x) 80px;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: baseline;
}

.tags-cloud__chip[b-fu6j9kagrg] {
    display: inline-flex;
    align-items: baseline;
    gap: 6px;
    background: var(--color-tag-bg, #eef2ff);
    color: var(--color-tag-text, #4338ca);
    padding: 6px 14px;
    border-radius: 999px;
    text-decoration: none;
    font-weight: 600;
    line-height: 1.2;
    transition: background 140ms ease, color 140ms ease, transform 140ms ease;
}

.tags-cloud__chip:hover[b-fu6j9kagrg] {
    background: var(--color-primary, #4f46e5);
    color: #fff;
    transform: translateY(-1px);
}

.tags-cloud__count[b-fu6j9kagrg] {
    font-size: 11px;
    font-weight: 700;
    background: rgba(0, 0, 0, 0.08);
    color: inherit;
    padding: 1px 6px;
    border-radius: 999px;
}

.tags-cloud__chip:hover .tags-cloud__count[b-fu6j9kagrg] {
    background: rgba(255, 255, 255, 0.18);
}

.tags-empty[b-fu6j9kagrg] {
    max-width: var(--prose-width);
    margin: 0 auto;
    padding: 40px var(--page-padding-x) 80px;
    color: var(--color-text-muted);
    text-align: center;
}

.tags-empty__back[b-fu6j9kagrg] {
    color: var(--color-primary, #4338ca);
    font-weight: 600;
    text-decoration: none;
}

.tags-empty__back:hover[b-fu6j9kagrg] { text-decoration: underline; }
/* /Components/Pages/Topic.razor.rz.scp.css */
.topic-shell[b-o97k1xvezy] {
    max-width: var(--page-width);
    margin: 0 auto;
    padding: 80px var(--page-padding-x);
    color: var(--color-text-muted);
}

.topic-missing[b-o97k1xvezy] {
    text-align: center;
}

.topic-missing__code[b-o97k1xvezy] {
    display: inline-block;
    color: var(--color-text-muted);
    font-family: "JetBrains Mono", monospace;
    font-size: 13px;
    letter-spacing: 0.16em;
    margin-bottom: 12px;
}

.topic-missing__back[b-o97k1xvezy] {
    color: var(--color-primary, #4338ca);
    font-weight: 600;
    text-decoration: none;
}

.topic-hero[b-o97k1xvezy] {
    position: relative;
    max-width: var(--page-width);
    margin: 0 auto 48px;
    padding: 56px var(--page-padding-x) 40px;
    overflow: hidden;
    border-radius: var(--radius-lg);
}

.topic-hero--with-cover[b-o97k1xvezy] {
    color: #fff;
    margin-top: 24px;
}

.topic-hero__cover[b-o97k1xvezy] {
    position: absolute;
    inset: 0;
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
    z-index: 0;
}

.topic-hero--with-cover[b-o97k1xvezy]::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(15, 23, 42, 0.78) 0%, rgba(30, 64, 175, 0.55) 100%);
    z-index: 0;
}

.topic-hero__inner[b-o97k1xvezy] {
    position: relative;
    z-index: 1;
    max-width: 720px;
}

.topic-hero__back[b-o97k1xvezy] {
    color: inherit;
    font-size: 13px;
    text-decoration: none;
    opacity: 0.78;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-bottom: 18px;
}

.topic-hero__back:hover[b-o97k1xvezy] { opacity: 1; }

.topic-hero__eyebrow[b-o97k1xvezy] {
    display: inline-flex;
    align-items: center;
    padding: 6px 14px;
    border-radius: 999px;
    background: var(--color-primary-soft, #eef2ff);
    color: var(--color-primary, #4338ca);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.topic-hero--with-cover .topic-hero__eyebrow[b-o97k1xvezy] {
    background: rgba(255, 255, 255, 0.18);
    color: #fff;
}

.topic-hero__title[b-o97k1xvezy] {
    margin: 18px 0 14px;
    font-size: clamp(34px, 5vw, 52px);
    font-weight: 800;
    line-height: 1.05;
    letter-spacing: -0.03em;
}

.topic-hero__lead[b-o97k1xvezy] {
    margin: 0;
    font-size: 17px;
    line-height: 1.6;
    max-width: 640px;
    color: inherit;
    opacity: 0.92;
}

.topic-hero:not(.topic-hero--with-cover) .topic-hero__lead[b-o97k1xvezy] {
    color: var(--color-text-muted);
    opacity: 1;
}

.topic-hero:not(.topic-hero--with-cover) .topic-hero__title[b-o97k1xvezy] {
    color: var(--color-text);
}

.topic[b-o97k1xvezy] {
    max-width: var(--page-width);
    margin: 0 auto;
    padding: 0 var(--page-padding-x) 64px;
}

.topic__header[b-o97k1xvezy] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    margin-bottom: 28px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--color-border);
}

.topic__heading[b-o97k1xvezy] {
    font-size: 22px;
    font-weight: 700;
    letter-spacing: -0.01em;
    margin: 0;
}

.topic__count[b-o97k1xvezy] {
    color: var(--color-text-muted);
    font-size: 13px;
}

.topic__empty[b-o97k1xvezy] {
    text-align: center;
    padding: 64px 24px;
    border: 1px dashed var(--color-border-strong);
    border-radius: var(--radius-lg);
    background: var(--color-surface);
}

.topic__empty p[b-o97k1xvezy] { margin: 0 0 4px; }
.topic__empty-sub[b-o97k1xvezy] { color: var(--color-text-muted); font-size: 14px; }

/* Same grid as Home.razor.css — scoped CSS doesn't share rules across components. */
.home__grid[b-o97k1xvezy] {
    display: grid;
    grid-template-columns: 1fr;
    gap: 28px;
}

@media (min-width: 760px) {
    .home__grid[b-o97k1xvezy] { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 1080px) {
    .home__grid[b-o97k1xvezy] { grid-template-columns: repeat(3, 1fr); }
}
/* /Components/Pages/Topics.razor.rz.scp.css */
.topics-hero[b-877v1mba7w] {
    max-width: var(--page-width);
    margin: 0 auto 48px;
    padding: 56px var(--page-padding-x) 32px;
}

.topics-hero__inner[b-877v1mba7w] {
    max-width: 720px;
}

.topics-hero__eyebrow[b-877v1mba7w] {
    display: inline-flex;
    align-items: center;
    padding: 6px 14px;
    border-radius: 999px;
    background: var(--color-primary-soft, #eef2ff);
    color: var(--color-primary, #4338ca);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.topics-hero__title[b-877v1mba7w] {
    margin: 18px 0 14px;
    font-size: clamp(36px, 5vw, 52px);
    font-weight: 800;
    line-height: 1.05;
    letter-spacing: -0.03em;
    color: var(--color-text);
}

.topics-hero__lead[b-877v1mba7w] {
    margin: 0;
    color: var(--color-text-muted);
    font-size: 17px;
    line-height: 1.6;
    max-width: 640px;
}

.topics[b-877v1mba7w] {
    max-width: var(--page-width);
    margin: 0 auto;
    padding: 0 var(--page-padding-x) 64px;
}

.topics__header[b-877v1mba7w] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    margin-bottom: 28px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--color-border);
}

.topics__heading[b-877v1mba7w] {
    font-size: 22px;
    font-weight: 700;
    letter-spacing: -0.01em;
    margin: 0;
}

.topics__count[b-877v1mba7w] {
    color: var(--color-text-muted);
    font-size: 13px;
    font-variant-numeric: tabular-nums;
}

.topics__grid[b-877v1mba7w] {
    display: grid;
    grid-template-columns: 1fr;
    gap: 24px;
}

@media (min-width: 760px) {
    .topics__grid[b-877v1mba7w] { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 1080px) {
    .topics__grid[b-877v1mba7w] { grid-template-columns: repeat(3, 1fr); }
}

.topic-card[b-877v1mba7w] {
    display: flex;
    flex-direction: column;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    transition: border-color 140ms ease, transform 140ms ease, box-shadow 140ms ease;
}

.topic-card:hover[b-877v1mba7w] {
    border-color: var(--color-primary, #4f46e5);
    transform: translateY(-2px);
    box-shadow: 0 16px 32px rgba(15, 23, 42, 0.08);
}

.topic-card__cover[b-877v1mba7w] {
    aspect-ratio: 16 / 9;
    position: relative;
    overflow: hidden;
}

.topic-card__cover img[b-877v1mba7w] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.topic-card__cover-mark[b-877v1mba7w] {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: rgba(255, 255, 255, 0.92);
    font-size: 64px;
    font-weight: 800;
    letter-spacing: -0.04em;
    text-shadow: 0 2px 12px rgba(15, 23, 42, 0.18);
}

.topic-card__body[b-877v1mba7w] {
    padding: 20px 22px 24px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.topic-card__title[b-877v1mba7w] {
    margin: 0;
    font-size: 19px;
    font-weight: 700;
    letter-spacing: -0.01em;
}

.topic-card__excerpt[b-877v1mba7w] {
    margin: 0;
    color: var(--color-text-muted);
    font-size: 14px;
    line-height: 1.55;
}

.topic-card__cta[b-877v1mba7w] {
    margin-top: 10px;
    color: var(--color-primary, #4338ca);
    font-size: 13.5px;
    font-weight: 600;
}

.topics__empty[b-877v1mba7w] {
    text-align: center;
    padding: 64px 24px;
    border: 1px dashed var(--color-border-strong);
    border-radius: var(--radius-lg);
    background: var(--color-surface);
    color: var(--color-text);
}

.topics__skeleton[b-877v1mba7w] {
    display: grid;
    grid-template-columns: 1fr;
    gap: 24px;
}
@media (min-width: 760px) { .topics__skeleton[b-877v1mba7w] { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1080px) { .topics__skeleton[b-877v1mba7w] { grid-template-columns: repeat(3, 1fr); } }

.topics__skel-card[b-877v1mba7w] {
    height: 240px;
    border-radius: var(--radius-lg);
    background: linear-gradient(90deg, #f1f5f9 0%, #e2e8f0 50%, #f1f5f9 100%);
    background-size: 200% 100%;
    animation: topics-shimmer-b-877v1mba7w 1.4s linear infinite;
}

@keyframes topics-shimmer-b-877v1mba7w {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}
/* /Components/Presentation/PresentationPage.razor.rz.scp.css */
.ps-page[b-bfkr7fqjip] {
    display: flex;
    flex-direction: column;
    /* Section-level renderers each manage their own background colour, so the page
       itself stays transparent. */
}

.ps-fallback[b-bfkr7fqjip] {
    padding: clamp(64px, 12vw, 160px) clamp(20px, 5vw, 48px);
    background: linear-gradient(135deg, #f1f5f9 0%, #e0e7ff 100%);
    text-align: center;
}

.ps-fallback__inner[b-bfkr7fqjip] {
    max-width: 640px;
    margin: 0 auto;
}

.ps-fallback__title[b-bfkr7fqjip] {
    margin: 0;
    font-size: clamp(28px, 5vw, 44px);
    color: #0f172a;
    font-weight: 700;
}
/* /Components/Presentation/Sections/ArticleListSectionRenderer.razor.rz.scp.css */
.ps-articlelist[b-uzgbaj7h2b] {
    padding: clamp(48px, 8vw, 96px) clamp(20px, 5vw, 48px);
    background: white;
}

.ps-articlelist__inner[b-uzgbaj7h2b] {
    max-width: 1180px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 28px;
}

.ps-articlelist__title[b-uzgbaj7h2b] {
    margin: 0;
    font-size: clamp(24px, 4vw, 36px);
    color: #0f172a;
    font-weight: 700;
    text-align: center;
}

.ps-articlelist__grid[b-uzgbaj7h2b] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 24px;
}

.ps-articlelist__empty[b-uzgbaj7h2b] {
    text-align: center;
    color: #94a3b8;
    font-style: italic;
}
/* /Components/Presentation/Sections/CtaSectionRenderer.razor.rz.scp.css */
.ps-cta[b-sqckaddl2d] {
    padding: clamp(48px, 8vw, 96px) clamp(20px, 5vw, 48px);
    background: linear-gradient(120deg, #4f46e5 0%, #7c3aed 100%);
    color: white;
}

.ps-cta__inner[b-sqckaddl2d] {
    max-width: 720px;
    margin: 0 auto;
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: 14px;
    align-items: center;
}

.ps-cta__title[b-sqckaddl2d] {
    margin: 0;
    font-size: clamp(24px, 4vw, 36px);
    font-weight: 700;
}

.ps-cta__body[b-sqckaddl2d] {
    margin: 0;
    font-size: clamp(15px, 2vw, 18px);
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.92);
}

.ps-cta__button[b-sqckaddl2d] {
    margin-top: 8px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 14px 28px;
    background: white;
    color: #4f46e5;
    font-weight: 700;
    border-radius: 999px;
    text-decoration: none;
    transition: transform 0.15s ease;
}

.ps-cta__button:hover[b-sqckaddl2d] {
    transform: translateY(-2px);
}
/* /Components/Presentation/Sections/DocumentListSectionRenderer.razor.rz.scp.css */
.ps-doc-list[b-c5d3rrxb45] {
    padding: 48px 0;
}

.ps-doc-list__inner[b-c5d3rrxb45] {
    width: min(100% - 2 * var(--page-padding-x, 24px), var(--page-width, 1120px));
    margin: 0 auto;
}

.ps-doc-list__title[b-c5d3rrxb45] {
    font-size: 28px;
    margin: 0 0 24px;
}

.ps-doc-list__items[b-c5d3rrxb45] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 16px;
}

.ps-doc-list__card[b-c5d3rrxb45] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px 18px;
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: var(--radius-md, 12px);
    background: #fff;
    text-decoration: none;
    color: inherit;
    box-shadow: var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, 0.05));
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.ps-doc-list__card:hover[b-c5d3rrxb45] {
    border-color: var(--color-accent, #4f6bed);
    box-shadow: var(--shadow-md, 0 4px 16px rgba(0, 0, 0, 0.08));
}

.ps-doc-list__icon[b-c5d3rrxb45] {
    font-size: 22px;
    line-height: 1;
}

.ps-doc-list__label[b-c5d3rrxb45] {
    flex: 1;
    font-weight: 600;
    font-size: 15px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ps-doc-list__kind[b-c5d3rrxb45] {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.04em;
    color: var(--color-text-muted, #64748b);
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: 999px;
    padding: 2px 8px;
}
/* /Components/Presentation/Sections/FeatureGridSectionRenderer.razor.rz.scp.css */
.ps-feature-grid[b-n0kx5bjccl] {
    padding: clamp(48px, 8vw, 96px) clamp(20px, 5vw, 48px);
    background: #f8fafc;
}

.ps-feature-grid__inner[b-n0kx5bjccl] {
    max-width: 1100px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 28px;
}

.ps-feature-grid__title[b-n0kx5bjccl] {
    margin: 0;
    font-size: clamp(24px, 4vw, 36px);
    text-align: center;
    color: #0f172a;
    font-weight: 700;
}

.ps-feature-grid__items[b-n0kx5bjccl] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 20px;
}

.ps-feature-grid__item[b-n0kx5bjccl] {
    padding: 24px;
    background: white;
    border-radius: 14px;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04), 0 8px 24px rgba(15, 23, 42, 0.05);
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.ps-feature-grid__icon[b-n0kx5bjccl] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: linear-gradient(135deg, #6366f1, #8b5cf6);
    color: white;
    font-size: 18px;
}

.ps-feature-grid__item-title[b-n0kx5bjccl] {
    margin: 0;
    font-size: 18px;
    color: #0f172a;
    font-weight: 700;
}

.ps-feature-grid__item-body[b-n0kx5bjccl] {
    margin: 0;
    font-size: 14px;
    line-height: 1.6;
    color: #475569;
}
/* /Components/Presentation/Sections/HeroSectionRenderer.razor.rz.scp.css */
.ps-hero[b-u4vmn80j7h] {
    padding: clamp(48px, 10vw, 120px) clamp(20px, 5vw, 48px);
    background: linear-gradient(135deg, #1e293b 0%, #4338ca 100%);
    color: white;
    text-align: center;
}

.ps-hero--with-bg[b-u4vmn80j7h] {
    background-image: var(--ps-hero-bg), linear-gradient(135deg, rgba(15, 23, 42, 0.6) 0%, rgba(67, 56, 202, 0.4) 100%);
    background-size: cover, auto;
    background-position: center;
    background-blend-mode: overlay;
}

.ps-hero__inner[b-u4vmn80j7h] {
    max-width: 880px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 16px;
    align-items: center;
}

.ps-hero__eyebrow[b-u4vmn80j7h] {
    text-transform: uppercase;
    letter-spacing: 0.18em;
    font-size: 12px;
    font-weight: 700;
    color: rgba(255, 255, 255, 0.75);
}

.ps-hero__title[b-u4vmn80j7h] {
    font-size: clamp(32px, 6vw, 56px);
    line-height: 1.1;
    margin: 0;
    font-weight: 800;
}

.ps-hero__subtitle[b-u4vmn80j7h] {
    font-size: clamp(16px, 2.2vw, 20px);
    line-height: 1.55;
    margin: 0;
    color: rgba(255, 255, 255, 0.9);
    max-width: 640px;
}

.ps-hero__cta[b-u4vmn80j7h] {
    margin-top: 12px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 14px 28px;
    background: white;
    color: #4338ca;
    font-weight: 700;
    border-radius: 999px;
    text-decoration: none;
    transition: transform 0.15s ease;
}

.ps-hero__cta:hover[b-u4vmn80j7h] {
    transform: translateY(-2px);
}
/* /Components/Presentation/Sections/QuoteSectionRenderer.razor.rz.scp.css */
.ps-quote[b-zw1uk9ghr9] {
    padding: clamp(48px, 8vw, 96px) clamp(20px, 5vw, 48px);
    background: #fafafa;
}

.ps-quote__inner[b-zw1uk9ghr9] {
    max-width: 720px;
    margin: 0 auto;
    border-left: 4px solid #4338ca;
    padding: 8px 28px;
}

.ps-quote__text[b-zw1uk9ghr9] {
    margin: 0;
    font-size: clamp(20px, 3vw, 28px);
    line-height: 1.4;
    color: #0f172a;
    font-style: italic;
    font-weight: 500;
}

.ps-quote__attribution[b-zw1uk9ghr9] {
    margin-top: 18px;
    display: flex;
    flex-direction: column;
    gap: 2px;
    font-size: 14px;
}

.ps-quote__author[b-zw1uk9ghr9] {
    font-weight: 700;
    color: #1e293b;
    font-style: normal;
}

.ps-quote__source[b-zw1uk9ghr9] {
    color: #64748b;
}
/* /Components/Presentation/Sections/RichTextSectionRenderer.razor.rz.scp.css */
.ps-richtext[b-sd8owdgk2h] {
    padding: clamp(40px, 6vw, 72px) clamp(20px, 5vw, 48px);
    background: white;
}

.ps-richtext__inner[b-sd8owdgk2h] {
    max-width: 720px;
    margin: 0 auto;
    color: #0f172a;
    font-size: 17px;
    line-height: 1.7;
}

.ps-richtext__inner[b-sd8owdgk2h]  p {
    margin: 0 0 1em;
}

.ps-richtext__inner[b-sd8owdgk2h]  h2 {
    margin: 1.6em 0 0.5em;
    font-size: 24px;
    color: #0f172a;
}

.ps-richtext__inner[b-sd8owdgk2h]  h3 {
    margin: 1.4em 0 0.4em;
    font-size: 20px;
    color: #1e293b;
}

.ps-richtext__inner[b-sd8owdgk2h]  a {
    color: #4338ca;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.ps-richtext__inner[b-sd8owdgk2h]  ul,
.ps-richtext__inner[b-sd8owdgk2h]  ol {
    margin: 0 0 1em 1.2em;
}

.ps-richtext__inner[b-sd8owdgk2h]  img {
    max-width: 100%;
    height: auto;
    border-radius: 10px;
}
/* /Components/Shared/ArticleCard.razor.rz.scp.css */
.card[b-wdf56q776e] {
    display: flex;
    flex-direction: column;
    background: var(--color-surface, #fff);
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: var(--radius-lg, 18px);
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    box-shadow: var(--shadow-sm);
    transition: transform 200ms ease, box-shadow 200ms ease, border-color 200ms ease;
}

.card:hover[b-wdf56q776e] {
    transform: translateY(-2px);
    border-color: rgba(79, 70, 229, 0.4);
    box-shadow: var(--shadow-lg);
}

/* Featured (first card on the home grid) spans both columns at md+ for an
   editorial "lead story" feel. */
.card--featured[b-wdf56q776e] {
    border-color: rgba(79, 70, 229, 0.35);
}

@media (min-width: 760px) {
    .card--featured[b-wdf56q776e] {
        grid-column: span 2;
        flex-direction: row;
    }
    .card--featured .card__cover[b-wdf56q776e] { flex: 1 1 50%; aspect-ratio: auto; min-height: 320px; }
    .card--featured .card__body[b-wdf56q776e]  { flex: 1 1 50%; padding: 32px; justify-content: center; }
    .card--featured .card__title[b-wdf56q776e] { font-size: 26px; }
    .card--featured .card__excerpt[b-wdf56q776e] { display: -webkit-box; -webkit-line-clamp: 4; line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
}

@media (min-width: 1080px) {
    .card--featured[b-wdf56q776e] { grid-column: span 3; }
}

/* ───────── Cover ───────── */

.card__cover[b-wdf56q776e] {
    position: relative;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: var(--color-surface-soft);
}

.card__cover img[b-wdf56q776e] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 400ms ease;
}

.card:hover .card__cover img[b-wdf56q776e] {
    transform: scale(1.03);
}

.card__cover--placeholder[b-wdf56q776e] {
    display: flex;
    align-items: center;
    justify-content: center;
}

.card__cover-mark[b-wdf56q776e] {
    color: rgba(255, 255, 255, 0.92);
    font-size: 80px;
    font-weight: 800;
    letter-spacing: -0.05em;
    text-shadow: 0 4px 24px rgba(0, 0, 0, 0.18);
}

.card__badge[b-wdf56q776e] {
    position: absolute;
    top: 12px;
    left: 12px;
    padding: 4px 10px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.92);
    color: var(--color-primary);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

/* ───────── Body ───────── */

.card__body[b-wdf56q776e] {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 22px;
    flex: 1;
}

.card__tag[b-wdf56q776e] {
    align-self: flex-start;
    padding: 4px 10px;
    border-radius: 999px;
    background: var(--color-tag-bg);
    color: var(--color-tag-text);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.02em;
}

.card__title[b-wdf56q776e] {
    margin: 0;
    font-size: 19px;
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: -0.01em;
    color: var(--color-text);
}

.card__excerpt[b-wdf56q776e] {
    margin: 0;
    color: var(--color-text-muted);
    font-size: 14px;
    line-height: 1.6;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.card__meta[b-wdf56q776e] {
    margin-top: auto;
    padding-top: 12px;
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--color-text-soft);
    font-size: 12px;
    font-variant-numeric: tabular-nums;
}

.card__sep[b-wdf56q776e] { opacity: 0.5; }

.card__arrow[b-wdf56q776e] {
    margin-left: auto;
    color: var(--color-primary);
    font-weight: 600;
    transform: translateX(0);
    transition: transform 200ms ease;
}

.card:hover .card__arrow[b-wdf56q776e] {
    transform: translateX(4px);
}
/* /Components/Shared/BlocksRenderer.razor.rz.scp.css */
.blocks__heading[b-m841iuehkp] {
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.25;
    margin: 36px 0 12px;
    color: var(--color-text);
}

h1.blocks__heading[b-m841iuehkp] { font-size: 30px; }
h2.blocks__heading[b-m841iuehkp] { font-size: 25px; }
h3.blocks__heading[b-m841iuehkp] { font-size: 21px; }
h4.blocks__heading[b-m841iuehkp] { font-size: 18px; }

.blocks__paragraph[b-m841iuehkp] {
    margin: 0 0 22px;
}

.blocks__paragraph a[b-m841iuehkp] {
    color: var(--color-primary, #4f46e5);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    transition: color 120ms ease;
}

.blocks__paragraph a:hover[b-m841iuehkp] {
    color: var(--color-primary-hover, #4338ca);
}

.blocks__paragraph code[b-m841iuehkp] {
    background: var(--color-tag-bg, #eef2ff);
    color: var(--color-tag-text, #4338ca);
    padding: 2px 6px;
    border-radius: 4px;
    font-family: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 0.92em;
}

.blocks__figure[b-m841iuehkp] {
    margin: 36px 0;
}

.blocks__figure img[b-m841iuehkp] {
    max-width: 100%;
    height: auto;
    border-radius: var(--radius-md, 12px);
    display: block;
    box-shadow: var(--shadow-md);
}

.blocks__figure figcaption[b-m841iuehkp] {
    text-align: center;
    color: var(--color-text-muted, #64748b);
    font-size: 14px;
    margin-top: 12px;
    font-style: italic;
}

.blocks__delimiter[b-m841iuehkp] {
    border: 0;
    margin: 48px auto;
    width: 80px;
    height: 4px;
    border-radius: 2px;
    background: linear-gradient(90deg, var(--color-primary) 0%, var(--color-accent) 100%);
    opacity: 0.6;
}

.blocks__empty[b-m841iuehkp],
.blocks__todo[b-m841iuehkp],
.blocks__unknown[b-m841iuehkp] {
    color: var(--color-text-muted, #64748b);
    font-size: 14px;
    padding: 12px;
    border: 1px dashed var(--color-border, #cbd5e1);
    border-radius: 8px;
    margin: 16px 0;
    background: var(--color-surface-soft);
}

/* ───────── File-attach pill (Phase 14a) ───────── */

.blocks__attach[b-m841iuehkp] {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 18px;
    margin: 28px 0;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-surface);
    box-shadow: var(--shadow-sm);
    text-decoration: none;
    color: inherit;
    transition: border-color 140ms ease, box-shadow 140ms ease, transform 140ms ease;
}

.blocks__attach:hover[b-m841iuehkp] {
    border-color: rgba(79, 70, 229, 0.4);
    box-shadow: var(--shadow-md);
    transform: translateY(-1px);
}

.blocks__attach-icon[b-m841iuehkp] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 8px;
    background: var(--color-primary-soft);
    color: var(--color-primary);
    font-size: 20px;
    flex-shrink: 0;
}

.blocks__attach-body[b-m841iuehkp] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    flex: 1;
    min-width: 0;
}

.blocks__attach-title[b-m841iuehkp] {
    font-weight: 600;
    color: var(--color-primary);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 15px;
}

.blocks__attach-meta[b-m841iuehkp] {
    color: var(--color-text-muted);
    font-size: 12px;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    letter-spacing: 0.02em;
}

/* ───────── HTML 1:1 iframe embed (Phase 14d) ───────── */

/* Break out of the 720px prose column to take the full page width (1120px) so HTML
   files render at their authored size instead of stamp-sized. The translate trick
   re-centers the embed even when the parent has a narrower max-width. */
.blocks__html-embed[b-m841iuehkp] {
    margin: 32px 0;
    width: min(100vw - 2 * var(--page-padding-x, 24px), var(--page-width, 1120px));
    position: relative;
    left: 50%;
    transform: translateX(-50%);
}

.blocks__html-embed-title[b-m841iuehkp] {
    font-size: 13px;
    color: var(--color-text-muted, #64748b);
    margin-bottom: 8px;
    font-weight: 500;
}

.blocks__html-embed-frame[b-m841iuehkp] {
    display: block;
    width: 100%;
    /* Default = full browser height, matching what the user sees when opening the HTML
       file standalone in a tab. Keeps "viewport-fitting" embeds (min-height: 100vh slides,
       brochures) at their authored size. html-embed-resize.js only *grows* this when the
       embedded document has more scroll height than the viewport. */
    min-height: 600px;
    height: 100vh;
    border: 0;
    border-radius: var(--radius-md, 12px);
    background: #fff;
    box-shadow: var(--shadow-md, 0 4px 16px rgba(0, 0, 0, 0.06));
}

/* ───────── PDF embed (Phase 86d) ───────── */

.blocks__pdf-embed[b-m841iuehkp] {
    margin: 32px 0;
    width: min(100vw - 2 * var(--page-padding-x, 24px), var(--page-width, 1120px));
    position: relative;
    left: 50%;
    transform: translateX(-50%);
}

.blocks__pdf-embed-title[b-m841iuehkp] {
    font-size: 13px;
    color: var(--color-text-muted, #64748b);
    margin-bottom: 8px;
    font-weight: 500;
}

.blocks__pdf-frame[b-m841iuehkp] {
    display: block;
    width: 100%;
    min-height: 600px;
    height: 85vh;
    border: 0;
    border-radius: var(--radius-md, 12px);
    background: #fff;
    box-shadow: var(--shadow-md, 0 4px 16px rgba(0, 0, 0, 0.06));
}

.blocks__pdf-download[b-m841iuehkp] {
    display: inline-block;
    margin-top: 10px;
    font-size: 14px;
    font-weight: 500;
    color: var(--color-accent, #4f6bed);
    text-decoration: none;
}

.blocks__pdf-download:hover[b-m841iuehkp] {
    text-decoration: underline;
}

/* ───────── List / NestedList (Phase 15a) ───────── */

.blocks__list[b-m841iuehkp] {
    margin: 18px 0 22px;
    padding-left: 28px;
    line-height: 1.7;
}

.blocks__list ol[b-m841iuehkp],
.blocks__list ul[b-m841iuehkp],
ol .blocks__list[b-m841iuehkp],
ul .blocks__list[b-m841iuehkp] {
    /* Nested levels inherit the same line-height/padding without doubling up the top margin. */
    margin: 6px 0;
    padding-left: 24px;
}

.blocks__list li[b-m841iuehkp] {
    margin: 4px 0;
}

/* ───────── Code (Phase 15a) ───────── */

.blocks__code[b-m841iuehkp] {
    background: #0f172a;
    color: #e2e8f0;
    padding: 18px 20px;
    border-radius: var(--radius-md, 12px);
    overflow-x: auto;
    margin: 28px 0;
    font-family: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 14px;
    line-height: 1.6;
    box-shadow: var(--shadow-sm, 0 1px 4px rgba(0, 0, 0, 0.05));
}

.blocks__code code[b-m841iuehkp] {
    background: transparent;
    color: inherit;
    padding: 0;
    font-family: inherit;
    font-size: inherit;
    white-space: pre;
}

/* ───────── Quote (Phase 15a) ───────── */

.blocks__quote[b-m841iuehkp] {
    margin: 32px 0;
    padding: 18px 24px;
    border-left: 4px solid var(--color-primary, #4f46e5);
    background: var(--color-surface-soft, rgba(79, 70, 229, 0.04));
    border-radius: 0 var(--radius-md, 12px) var(--radius-md, 12px) 0;
    color: var(--color-text);
}

.blocks__quote--center[b-m841iuehkp] {
    text-align: center;
    border-left: 0;
    border-radius: var(--radius-md, 12px);
    padding: 24px 28px;
}

.blocks__quote-text[b-m841iuehkp] {
    margin: 0 0 8px;
    font-size: 18px;
    line-height: 1.55;
    font-style: italic;
}

.blocks__quote-cite[b-m841iuehkp] {
    display: block;
    color: var(--color-text-muted, #64748b);
    font-size: 14px;
    font-style: normal;
}

.blocks__quote-cite[b-m841iuehkp]::before { content: "— "; }

/* ───────── Table (Phase 15a) ───────── */

.blocks__table-wrap[b-m841iuehkp] {
    margin: 28px 0;
    overflow-x: auto;
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: var(--radius-md, 12px);
}

.blocks__table[b-m841iuehkp] {
    width: 100%;
    border-collapse: collapse;
    font-size: 15px;
    line-height: 1.5;
}

.blocks__table th[b-m841iuehkp],
.blocks__table td[b-m841iuehkp] {
    padding: 12px 16px;
    border-bottom: 1px solid var(--color-border, #e2e8f0);
    text-align: left;
    vertical-align: top;
}

.blocks__table th[b-m841iuehkp] {
    background: var(--color-surface-soft, #f8fafc);
    font-weight: 600;
    color: var(--color-text);
    border-bottom: 2px solid var(--color-border, #cbd5e1);
}

.blocks__table tbody tr:last-child td[b-m841iuehkp] {
    border-bottom: 0;
}

/* ───────── Embed (Phase 15a) ───────── */

.blocks__embed[b-m841iuehkp] {
    margin: 32px 0;
}

.blocks__embed-frame[b-m841iuehkp] {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    background: #000;
    border-radius: var(--radius-md, 12px);
    overflow: hidden;
    box-shadow: var(--shadow-md, 0 4px 16px rgba(0, 0, 0, 0.08));
}

.blocks__embed-frame iframe[b-m841iuehkp] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

.blocks__embed-caption[b-m841iuehkp] {
    text-align: center;
    color: var(--color-text-muted, #64748b);
    font-size: 14px;
    margin-top: 12px;
    font-style: italic;
}
/* /Components/Shared/CookieConsent.razor.rz.scp.css */
.nexo-cookie-consent[b-soz7ib6knj] {
    position: fixed;
    inset: auto 16px 16px 16px;
    z-index: 2147483000;
    display: block;
}

.nexo-cookie-consent[hidden][b-soz7ib6knj] {
    display: none !important;
}

.nexo-cookie-consent__panel[b-soz7ib6knj] {
    width: min(100%, 980px);
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 20px;
    align-items: end;
    padding: 20px;
    border: 1px solid rgba(203, 213, 225, 0.95);
    border-radius: var(--radius-sm);
    background: rgba(255, 255, 255, 0.98);
    color: var(--color-text);
    box-shadow: 0 20px 50px rgba(15, 23, 42, 0.18), 0 1px 2px rgba(15, 23, 42, 0.08);
}

.nexo-cookie-consent__copy[b-soz7ib6knj] {
    min-width: 0;
}

.nexo-cookie-consent__eyebrow[b-soz7ib6knj] {
    margin: 0 0 6px;
    font-size: 0.76rem;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--color-primary);
}

.nexo-cookie-consent h2[b-soz7ib6knj] {
    margin: 0 0 8px;
    font-size: 1.08rem;
    line-height: 1.25;
}

.nexo-cookie-consent p[b-soz7ib6knj] {
    margin: 0;
    color: var(--color-text-muted);
    line-height: 1.55;
}

.nexo-cookie-consent__option[b-soz7ib6knj] {
    margin-top: 14px;
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 12px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    background: var(--color-surface-soft);
}

.nexo-cookie-consent__option input[b-soz7ib6knj] {
    width: 18px;
    height: 18px;
    margin-top: 2px;
    accent-color: var(--color-primary);
}

.nexo-cookie-consent__option strong[b-soz7ib6knj],
.nexo-cookie-consent__option small[b-soz7ib6knj] {
    display: block;
}

.nexo-cookie-consent__option small[b-soz7ib6knj] {
    margin-top: 3px;
    color: var(--color-text-muted);
    line-height: 1.4;
}

.nexo-cookie-consent__actions[b-soz7ib6knj] {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 10px;
}

.nexo-cookie-consent__button[b-soz7ib6knj] {
    min-height: 42px;
    padding: 0 18px;
    border: 1px solid var(--color-border-strong);
    border-radius: var(--radius-sm);
    background: #fff;
    color: var(--color-text);
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}

.nexo-cookie-consent__button:hover[b-soz7ib6knj] {
    border-color: var(--color-primary);
}

.nexo-cookie-consent__button--primary[b-soz7ib6knj] {
    border-color: var(--color-primary);
    background: var(--color-primary);
    color: #fff;
}

.nexo-cookie-consent__button--primary:hover[b-soz7ib6knj] {
    background: var(--color-primary-hover);
}

@media (max-width: 760px) {
    .nexo-cookie-consent[b-soz7ib6knj] {
        inset: auto 10px 10px 10px;
    }

    .nexo-cookie-consent__panel[b-soz7ib6knj] {
        grid-template-columns: 1fr;
        gap: 16px;
        padding: 16px;
    }

    .nexo-cookie-consent__actions[b-soz7ib6knj] {
        justify-content: stretch;
    }

    .nexo-cookie-consent__button[b-soz7ib6knj] {
        flex: 1 1 100%;
    }
}
/* /Components/Shared/LanguageSwitcher.razor.rz.scp.css */
.lang-switcher[b-1ywl3pnwaw] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.lang-switcher__pill[b-1ywl3pnwaw] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    height: 28px;
    padding: 0 8px;
    border-radius: 999px;
    border: 1px solid transparent;
    background: transparent;
    color: var(--text-muted, #64748B);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.4px;
    text-decoration: none;
    transition: background 0.12s ease, color 0.12s ease, border-color 0.12s ease;
}

.lang-switcher__pill:hover[b-1ywl3pnwaw] {
    color: var(--text, #0F172A);
    background: rgba(15, 23, 42, 0.04);
}

.lang-switcher__pill--active[b-1ywl3pnwaw] {
    background: var(--primary, #2563EB);
    color: #fff;
    border-color: var(--primary, #2563EB);
}

.lang-switcher__pill--active:hover[b-1ywl3pnwaw] {
    background: var(--primary, #2563EB);
    color: #fff;
}
/* /Components/Shared/NexoDebugOverlay.razor.rz.scp.css */
.nexo-debug-overlay[b-yv0weaqb6j] {
    position: fixed;
    top: 16px;
    right: 16px;
    z-index: 99999;
    background: #0f172a;
    color: #f8fafc;
    border: 2px solid #2563eb;
    border-radius: 10px;
    padding: 14px 18px;
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 12px;
    line-height: 1.4;
    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.4);
    max-width: 360px;
}

.nexo-debug-overlay__title[b-yv0weaqb6j] {
    font-weight: 700;
    font-size: 13px;
    color: #60a5fa;
    margin-bottom: 8px;
    padding-bottom: 6px;
    border-bottom: 1px solid rgba(96, 165, 250, 0.3);
}

.nexo-debug-overlay__row[b-yv0weaqb6j] {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 2px 0;
}

.nexo-debug-overlay__row--decision[b-yv0weaqb6j] {
    margin-top: 6px;
    padding-top: 6px;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    font-weight: 600;
}

.nexo-debug-overlay__k[b-yv0weaqb6j] {
    color: #94a3b8;
    flex-shrink: 0;
}

.nexo-debug-overlay__v[b-yv0weaqb6j] {
    text-align: right;
    word-break: break-word;
}

.nexo-debug-overlay__v--yes[b-yv0weaqb6j] { color: #4ade80; }
.nexo-debug-overlay__v--no[b-yv0weaqb6j] { color: #f87171; }
.nexo-debug-overlay__v--fullbleed[b-yv0weaqb6j] { color: #fbbf24; font-weight: 600; }
.nexo-debug-overlay__v--default[b-yv0weaqb6j] { color: #cbd5e1; }

.nexo-debug-overlay__hint[b-yv0weaqb6j] {
    margin-top: 8px;
    padding-top: 6px;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    font-size: 10px;
    color: #64748b;
    font-style: italic;
}
/* /Components/Shared/RelatedArticles.razor.rz.scp.css */
/* Phase 55b — block sits at the bottom of an Article render, after the
   article__footer tags row. Layout intentionally mirrors Home/Topic so a
   reader's eye recognises it as "another article list, same shape". */

.related[b-f63zfrb0ap] {
    max-width: var(--page-width);
    margin: 56px auto 0;
    padding: 32px var(--page-padding-x) 0;
    border-top: 1px solid var(--color-border);
}

.related__header[b-f63zfrb0ap] {
    margin-bottom: 24px;
}

.related__heading[b-f63zfrb0ap] {
    font-size: 22px;
    font-weight: 700;
    letter-spacing: -0.01em;
    margin: 0;
}

.related__grid[b-f63zfrb0ap] {
    display: grid;
    grid-template-columns: 1fr;
    gap: 24px;
}

@media (min-width: 760px) {
    .related__grid[b-f63zfrb0ap] { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 1080px) {
    .related__grid[b-f63zfrb0ap] { grid-template-columns: repeat(3, 1fr); }
}
