.ipragma-cms-theme { min-width: 320px; margin: 0; }
.ipragma-cms-theme #app { min-height: 100vh; }
.ipragma-cms-theme .footer-legal-copy > small { display: none; }
/* Keep the Blog signup panel above its sticky hero while scrolling. */
.ipragma-cms-theme .insights-index .insights-subscribe { position: relative; z-index: 2; }
/* Keep article discovery and related links above the sticky article hero. */
.ipragma-cms-theme .insight-article .insight-discovery { position: relative; z-index: 2; }
.site-copyright { display: flex; min-height: 58px; align-items: center; justify-content: space-between; gap: 20px; padding: 12px max(24px, calc((100% - 1240px) / 2)); border-top: 1px solid #ffffff20; background: #0d0b12; color: #b6b0c0; font: 500 12px/1.5 Manrope, sans-serif; }
.site-copyright a { color: #b688ff; font-weight: 700; text-decoration: none; }
.site-copyright a:hover, .site-copyright a:focus-visible { text-decoration: underline; }
.site-noscript { max-width: 720px; margin: 0 auto; padding: 96px 24px; color: #f5f1fb; }
.site-noscript h1 { font-size: clamp(32px, 5vw, 56px); line-height: 1.12; }
.site-noscript p, .site-noscript a { font-size: 16px; line-height: 1.7; }
.site-error-content { min-height: 0; }
.ipragma-cms-theme--error { background: #0d0b12; color: #f5f1fb; }
.ipragma-cms-theme--error .site-copyright { border-color: #ffffff12; }
.error-page { position: relative; display: grid; width: min(1180px, calc(100% - 48px)); grid-template-rows: auto auto; margin: 0 auto; padding: 18px 0 34px; overflow: hidden; color: #f5f1fb; }
.error-page__brand { z-index: 1; display: inline-flex; width: fit-content; align-items: center; gap: 10px; color: #f5f1fb; font: 750 18px/1 Manrope, sans-serif; letter-spacing: -.04em; text-decoration: none; }
.error-page__brand-mark { display: grid; width: 32px; height: 32px; place-items: center; border: 1px solid #a66bff88; border-radius: 11px; background: linear-gradient(145deg, #a662ff33, #522b8433); color: #c59cff; font-size: 20px; font-weight: 800; }
.error-page__content { position: relative; display: flex; max-width: 720px; flex-direction: column; align-items: center; justify-content: flex-start; justify-self: center; padding: 18px 0 8px; text-align: center; }
.error-page__visual { position: relative; display: grid; width: min(240px, 64vw); aspect-ratio: 1; place-items: center; margin: -18px 0 -14px; }
.error-page__visual::before { position: absolute; width: 54%; aspect-ratio: 1; border: 1px solid #b27aff42; border-radius: 50%; background: radial-gradient(circle at 38% 32%, #9b5be52b, #24173418 68%, transparent 70%); box-shadow: 0 0 80px #7137b31c, inset 0 0 36px #a76cff14; content: ''; }
.error-page__orbit { position: absolute; width: 78%; height: 32%; border: 1px solid #b27aff70; border-radius: 50%; transform: rotate(-31deg); }
.error-page__orbit--inner { width: 66%; height: 24%; border-color: #e6d8ff4a; transform: rotate(34deg); }
.error-page__visual-code { position: relative; color: #f6f0ff; font: 700 clamp(66px, 11vw, 104px)/1 Manrope, sans-serif; letter-spacing: -.09em; text-shadow: 0 0 42px #9a5ce577; }
.error-page__visual-spark { position: absolute; width: 7px; height: 7px; border-radius: 50%; background: #c99bff; box-shadow: 0 0 18px 5px #9a5ce566; }
.error-page__visual-spark--one { top: 27%; right: 19%; }
.error-page__visual-spark--two { bottom: 28%; left: 17%; width: 5px; height: 5px; }
.error-page__eyebrow { display: inline-flex; align-items: center; gap: 9px; margin: 0 0 14px; color: #bf91fa; font-size: 12px; font-weight: 750; letter-spacing: .16em; }
.error-page__eyebrow span { width: 7px; height: 7px; border-radius: 50%; background: #a56af4; box-shadow: 0 0 12px #a56af4; }
.error-page h1 { margin: 0; font: 600 clamp(38px, 6vw, 66px)/1.08 Manrope, sans-serif; letter-spacing: -.055em; }
.error-page h1 span { color: #b982ff; }
.error-page__description { max-width: 520px; margin: 16px 0 0; color: #b6b0c0; font-size: 16px; line-height: 1.75; }
.error-page__actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 12px; margin-top: 28px; }
.error-page__primary, .error-page__secondary { display: inline-flex; min-height: 46px; align-items: center; justify-content: center; gap: 14px; border-radius: 999px; font-size: 14px; font-weight: 700; text-decoration: none; transition: background .2s ease, border-color .2s ease, transform .2s ease; }
.error-page__primary { padding: 0 20px; background: #8b4ce6; color: #fff; box-shadow: 0 8px 26px #7137b333; }
.error-page__primary:hover { transform: translateY(-2px); background: #9b5af0; }
.error-page__primary span { font-size: 16px; }
.error-page__secondary { padding: 0 16px; border: 1px solid #ffffff24; color: #ddd5e9; }
.error-page__secondary:hover { border-color: #b982ff77; background: #a56af414; }
.error-page__hint { margin: 22px 0 0; color: #81798d; font-size: 12px; line-height: 1.6; }
@media (max-width: 600px) {
    .site-copyright { align-items: flex-start; flex-direction: column; justify-content: center; gap: 4px; padding: 12px 20px; }
    .error-page { width: min(100% - 36px, 480px); padding: 16px 0 28px; }
    .error-page__content { padding-top: 10px; }
    .error-page__visual { width: min(200px, 62vw); margin: -6px 0 -8px; }
    .error-page h1 { font-size: clamp(38px, 10vw, 54px); }
    .error-page__description { max-width: 420px; font-size: 15px; }
    .error-page__actions { gap: 9px; margin-top: 16px; }
    .error-page__primary, .error-page__secondary { min-height: 44px; font-size: 13px; }
    .error-page__hint { margin-top: 12px; }
}

/* Readable route content remains available before the client application mounts. */
.seo-route-fallback { width: min(100% - 40px, 900px); margin: 0 auto; padding: 36px 0 72px; color: #24212a; font: 400 16px/1.7 Manrope, Arial, sans-serif; }
.seo-route-fallback h1 { max-width: 18ch; margin: 24px 0 14px; font-size: clamp(2rem, 5vw, 3.5rem); line-height: 1.08; }
.seo-route-fallback h2 { margin: 30px 0 10px; font-size: clamp(1.2rem, 3vw, 1.7rem); line-height: 1.2; }
.seo-route-fallback p { max-width: 76ch; margin: 0 0 12px; }
.seo-route-fallback ul { margin: 8px 0 14px; padding-left: 22px; }
.seo-route-fallback a { color: #56339b; text-decoration: underline; text-underline-offset: .15em; }
.seo-route-fallback__breadcrumb ol { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; color: #625d67; font-size: 13px; }
.seo-route-fallback__breadcrumb li + li::before { content: '/'; margin-right: 8px; color: #8d8495; }
.seo-route-fallback__intro { font-size: 1.1rem; }
.seo-route-fallback__links { display: flex; flex-wrap: wrap; gap: 8px 20px; }
