.library-page {
    --library-navy: #081b3a;
    --library-blue: #1557d6;
    --library-purple: #6e44d8;
    --library-gold: #c8922d;
    --library-ink: #14213d;
    --library-muted: #5d6980;
    --library-line: #dce4f2;
    --library-soft: #f5f8fe;
    --library-white: #fff;
}

.library-main,
.library-preview-banner,
.library-preview-header {
    color: var(--library-ink);
    font-family: "Open Sans", Arial, Helvetica, sans-serif;
}

.library-main *,
.library-main *::before,
.library-main *::after,
.library-preview-banner *,
.library-preview-header * {
    box-sizing: border-box;
}

.library-main a {
    color: var(--library-blue);
    text-decoration-thickness: .08em;
    text-underline-offset: .18em;
}

.library-main a:hover { color: #0a3c9f; }

.library-main a:focus-visible,
.library-main button:focus-visible,
.library-main summary:focus-visible,
.library-preview-header a:focus-visible {
    outline: 3px solid #f2b84b;
    outline-offset: 3px;
    border-radius: .25rem;
}

.library-main h1,
.library-main h2,
.library-main h3,
.library-main h4,
.library-main h5,
.library-main h6,
.library-main nav,
.library-main button,
.library-main summary,
.library-main .library-button,
.library-main .library-eyebrow,
.library-main .library-article-meta,
.library-main .library-taxonomy-group,
.library-preview-banner,
.library-preview-header {
    font-family: Montserrat, Arial, Helvetica, sans-serif;
}

.library-shell {
    width: min(1180px, calc(100% - 2rem));
    margin-inline: auto;
}

.library-section { padding: clamp(3.5rem, 7vw, 6rem) 0; }
.library-section--soft { background: var(--library-soft); }
.library-section--light { background: var(--library-soft); }
.library-section--ink { color: #fff; background: var(--library-navy); }
.library-section--ink h2,
.library-section--ink .library-eyebrow { color: #fff; }
.library-section--tight { padding-block: 2rem; }

.library-section-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 1.5rem;
    margin-bottom: 2rem;
}

.library-section__head { max-width: 720px; margin-bottom: 2rem; }
.library-section__head h2 { margin: 0; color: var(--library-navy); font-size: clamp(1.65rem, 3vw, 2.35rem); line-height: 1.16; }
.library-section__head > p:last-child { color: var(--library-muted); line-height: 1.65; }
.library-section--ink .library-section__head h2,
.library-section--ink .library-section__head > p:last-child { color: #fff; }

.library-section-heading h2,
.library-prose h2,
.library-article-footer h2 {
    color: var(--library-navy);
    font-size: clamp(1.65rem, 3vw, 2.35rem);
    line-height: 1.16;
    margin: 0;
}

.library-section-heading p { max-width: 42rem; margin: .55rem 0 0; color: var(--library-muted); }
.library-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    margin: 0 0 .8rem;
    color: #4a2aa3;
    font-size: .75rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.library-eyebrow::before {
    width: 1.8rem;
    height: 2px;
    background: linear-gradient(90deg, var(--library-blue), var(--library-purple));
    content: "";
}

.library-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: clamp(5rem, 10vw, 8.5rem) 0 clamp(4rem, 8vw, 7rem);
    color: #fff;
    background:
        radial-gradient(circle at 82% 18%, rgba(141, 111, 255, .35), transparent 28%),
        radial-gradient(circle at 12% 88%, rgba(34, 146, 255, .28), transparent 31%),
        linear-gradient(125deg, #06152e 0%, #102f68 48%, #4a298f 100%);
}

.library-hero::before,
.library-hero::after {
    position: absolute;
    z-index: -1;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 50%;
    content: "";
}

.library-hero::before { width: 33rem; height: 33rem; right: -11rem; top: -16rem; }
.library-hero::after { width: 20rem; height: 20rem; right: 13%; bottom: -14rem; }
.library-hero__content { max-width: 780px; }
.library-hero__grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(260px, .65fr); gap: 2rem; align-items: center; }
.library-hero__visual { position: relative; min-height: 320px; }
.library-hero__visual > span { position: absolute; border: 1px solid rgba(255,255,255,.25); border-radius: 50%; }
.library-hero__visual > span:nth-child(1) { inset: 8% 3%; }
.library-hero__visual > span:nth-child(2) { inset: 22% 17%; }
.library-hero__visual > span:nth-child(3) { inset: 36% 31%; }
.library-hero__compass { position: absolute; inset: 50% auto auto 50%; transform: translate(-50%, -50%); color: #fff; font-weight: 850; letter-spacing: .08em; text-align: center; text-transform: uppercase; }
.library-hero--landing { padding: clamp(3.75rem, 7vw, 5.75rem) 0; }
.library-hero--landing::before,
.library-hero--landing::after { display: none; }
.library-hero--landing .library-hero__grid { grid-template-columns: minmax(0, 1.4fr) minmax(300px, .6fr); gap: clamp(2rem, 5vw, 4.5rem); }
.library-hero--landing h1 { max-width: 13ch; font-size: clamp(2.65rem, 5.5vw, 4.5rem); line-height: 1.02; }
.library-directory { padding: 1.4rem; border: 1px solid rgba(255,255,255,.25); border-radius: 1rem; background: rgba(4,19,45,.42); box-shadow: 0 20px 50px rgba(0,0,0,.18); backdrop-filter: blur(8px); }
.library-directory__title { margin: 0 0 .9rem; color: #fff; font-family: Montserrat, Arial, Helvetica, sans-serif; font-size: .78rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.library-directory ul { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: .55rem; margin: 0; padding: 0; list-style: none; }
.library-directory li { min-width: 0; }
.library-directory a { display: block; height: 100%; padding: .85rem .7rem; border: 1px solid rgba(255,255,255,.16); border-radius: .7rem; color: #fff; background: rgba(255,255,255,.08); text-align: center; text-decoration: none; }
.library-directory a:hover { color: #fff; background: rgba(255,255,255,.15); }
.library-directory strong { display: block; color: #fff; font-family: Montserrat, Arial, Helvetica, sans-serif; font-size: 1.45rem; }
.library-directory span { display: block; margin-top: .2rem; color: #e6ecfb; font-size: .72rem; line-height: 1.35; }
.library-directory__note { display: flex; gap: .55rem; margin: 1rem 0 0; color: #eef3ff; font-size: .82rem; line-height: 1.55; }
.library-directory__note i { margin-top: .2rem; color: #9de6c3; }
.library-index-intro { position: relative; isolation: isolate; overflow: hidden; padding: clamp(2rem, 4vw, 3.25rem) 0 clamp(2.5rem, 5vw, 4rem); border-bottom: 1px solid var(--library-line); background: linear-gradient(135deg, #fff 0%, #f6f9ff 52%, #fbf7ff 100%); }
.library-index-intro::before { position: absolute; z-index: 0; inset: -15%; content: ""; background: radial-gradient(circle at 76% 24%, rgba(122,43,189,.14), transparent 29%), radial-gradient(circle at 18% 82%, rgba(0,124,145,.11), transparent 31%), radial-gradient(circle at 52% 115%, rgba(0,103,177,.08), transparent 34%); transform: translate3d(0,0,0) scale(1.02); animation: library-intro-mesh-float 18s ease-in-out infinite alternate; }
.library-index-intro::after { position: absolute; z-index: 0; width: clamp(18rem, 32vw, 30rem); height: clamp(18rem, 32vw, 30rem); top: 50%; right: clamp(-12rem, -9vw, -5rem); content: ""; border: 1px solid rgba(0,103,177,.13); border-radius: 42% 58% 63% 37% / 45% 38% 62% 55%; background: rgba(255,255,255,.2); box-shadow: 0 0 0 4rem rgba(122,43,189,.025), 0 0 0 8rem rgba(0,124,145,.018); transform: translateY(-50%) rotate(-10deg); animation: library-intro-shape-float 13s ease-in-out infinite alternate; }
.library-index-intro__inner { position: relative; z-index: 1; max-width: 940px; }
.library-index-intro h1 { margin: 0; color: var(--library-navy); font-size: clamp(2.25rem, 4.5vw, 3.75rem); line-height: 1.04; letter-spacing: -.035em; }
.library-index-intro__inner > p:not(.library-eyebrow) { max-width: 760px; margin: 1rem 0 0; color: var(--library-muted); font-size: 1.08rem; line-height: 1.7; }
.library-index-stats { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1.35rem; }
.library-index-stats span { display: inline-flex; align-items: baseline; gap: .35rem; padding: .48rem .68rem; border: 1px solid #d6e0ee; border-radius: .5rem; color: #536179; background: #f8faff; font-family: Montserrat, Arial, Helvetica, sans-serif; font-size: .74rem; }
.library-index-stats strong { color: var(--library-navy); font-size: .92rem; }
.library-accent--blue { --topic-accent: #0067b1; --topic-soft: #e7f3fb; }
.library-accent--violet { --topic-accent: #7a2bbd; --topic-soft: #f2e9fa; }
.library-accent--amber { --topic-accent: #9a6700; --topic-soft: #fff2ce; }
.library-accent--teal { --topic-accent: #007c91; --topic-soft: #e3f5f8; }
.library-accent--rose { --topic-accent: #c02666; --topic-soft: #fce8f1; }
.library-accent--indigo { --topic-accent: #4b5563; --topic-soft: #edf0f3; }
.library-accent--green { --topic-accent: #16805a; --topic-soft: #e4f6ee; }
.library-accent--coral { --topic-accent: #c2412d; --topic-soft: #fcebe7; }
.library-topic-nav { padding: clamp(2.5rem, 5vw, 4rem) 0; border-bottom: 1px solid var(--library-line); background: #f4f7fc; }
.library-topic-nav__heading { margin-bottom: 1.35rem; }
.library-topic-nav__heading .library-eyebrow { margin-bottom: .35rem; }
.library-topic-nav__heading h2 { margin: 0; color: var(--library-navy); font-size: clamp(1.45rem, 2.5vw, 2rem); }
.library-topic-nav__grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: .85rem; }
.library-topic-nav__card { display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: .8rem; align-items: center; min-height: 6.3rem; padding: 1rem; border: 1px solid #d6deeb; border-top: 3px solid var(--topic-accent); border-radius: .75rem; color: var(--library-navy) !important; background: #fff; box-shadow: 0 5px 16px rgba(8,27,58,.04); text-decoration: none !important; transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease; }
.library-topic-nav__card:hover { color: var(--library-navy) !important; border-color: var(--topic-accent); box-shadow: 0 12px 26px rgba(8,27,58,.1); transform: translateY(-3px); }
.library-topic-nav__icon { display: grid; place-items: center; width: 2.65rem; height: 2.65rem; border-radius: .65rem; color: var(--topic-accent); background: var(--topic-soft); font-size: 1rem; transition: transform .2s ease; }
.library-topic-nav__card:hover .library-topic-nav__icon { transform: rotate(-5deg) scale(1.06); }
.library-topic-nav__card small { display: block; margin-bottom: .2rem; color: var(--topic-accent); font-family: Montserrat, Arial, Helvetica, sans-serif; font-size: .65rem; font-style: normal; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.library-topic-nav__card strong { display: block; color: var(--library-navy); font-family: Montserrat, Arial, Helvetica, sans-serif; font-size: .85rem; line-height: 1.35; }
.library-topic-nav__card em { display: block; margin-top: .3rem; color: #6a778e; font-size: .7rem; font-style: normal; }
.library-topic-nav__card > i { color: var(--topic-accent); font-size: .72rem; }
.library-topic-nav__card--guides { background: linear-gradient(145deg, #fff, #f0faf5); }
.library-topic-catalog { background: #fff; }
.library-topic-section { padding: clamp(3rem, 5vw, 4.5rem) 0; scroll-margin-top: 5.5rem; }
.library-topic-section:nth-child(even) { background: #f8faff; }
.library-guides-section { background: linear-gradient(145deg, #f2fbf6, #fff) !important; }
.library-topic-section + .library-topic-section { border-top: 1px solid var(--library-line); }
.library-topic-section__inner { max-width: 1060px; }
.library-topic-section__header { display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 1rem; align-items: center; margin-bottom: 1.5rem; }
.library-topic-section__icon { display: grid; place-items: center; width: 3.25rem; height: 3.25rem; border-radius: .8rem; color: #fff; background: var(--topic-accent); font-size: 1.15rem; box-shadow: 0 9px 22px rgba(8,27,58,.16); }
.library-topic-section__header .library-eyebrow { margin-bottom: .3rem; color: var(--topic-accent); }
.library-topic-section__header h2 { margin: 0; color: var(--library-navy); font-size: clamp(1.45rem, 2.8vw, 2rem); }
.library-topic-section__header p:last-child { max-width: 700px; margin: .45rem 0 0; color: var(--library-muted); line-height: 1.55; }
.library-topic-section__count { padding: .48rem .65rem; border-radius: 999px; color: var(--topic-accent); background: var(--topic-soft); font-family: Montserrat, Arial, Helvetica, sans-serif; font-size: .7rem; font-weight: 800; white-space: nowrap; }
.library-topic-list { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .7rem; margin: 0; padding: 0; list-style: none; }
.library-topic-list li { min-width: 0; animation: library-topic-enter .35s ease both; }
.library-topic-list li:nth-child(2n) { animation-delay: .04s; }
.library-topic-list li:nth-child(3n) { animation-delay: .08s; }
.library-topic-link { display: grid; grid-template-columns: auto auto minmax(0,1fr) auto; gap: .65rem; align-items: center; min-height: 4.65rem; padding: .78rem .85rem; border: 1px solid #d8e1ee; border-left: 3px solid var(--topic-accent); border-radius: .65rem; color: var(--library-navy) !important; background: #fff; text-decoration: none !important; transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease; }
a.library-topic-link:hover { color: var(--library-navy) !important; border-color: var(--topic-accent); box-shadow: 0 8px 20px rgba(8,27,58,.09); transform: translateX(3px); }
.library-topic-link--planned { border-left-color: #c4cedd; background: #fbfcfe; }
.library-topic-link__number { display: grid; place-items: center; width: 1.55rem; height: 1.55rem; border-radius: 50%; color: #fff; background: var(--topic-accent); font-family: Montserrat, Arial, Helvetica, sans-serif; font-size: .65rem; font-weight: 800; }
.library-topic-link--planned .library-topic-link__number { color: #66748a; background: #e4e9f1; }
.library-topic-link__icon { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: .5rem; color: var(--topic-accent); background: var(--topic-soft); }
.library-topic-link__title { color: var(--library-navy); font-family: Montserrat, Arial, Helvetica, sans-serif; font-size: .82rem; font-weight: 700; line-height: 1.4; }
.library-topic-link__status { color: #7a879a; font-family: Montserrat, Arial, Helvetica, sans-serif; font-size: .63rem; font-weight: 750; white-space: nowrap; }
.library-topic-link__status--live { color: var(--topic-accent); }
.library-topic-link__status--live i { margin-left: .25rem; font-size: .58rem; }
.library-guide-topic-link { min-height: 5rem; }
@keyframes library-topic-enter { from { opacity: 0; transform: translateY(7px); } to { opacity: 1; transform: translateY(0); } }
@keyframes library-intro-mesh-float { from { transform: translate3d(-1.5%,0,0) scale(1.02); } to { transform: translate3d(1.5%,-1.5%,0) scale(1.06); } }
@keyframes library-intro-shape-float { from { transform: translate3d(0,-50%,0) rotate(-10deg); } to { transform: translate3d(-1rem,calc(-50% + .6rem),0) rotate(-4deg); } }
.library-category-nav { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 1.5rem; }
.library-category-nav a { display: inline-flex; align-items: center; gap: .55rem; padding: .68rem .9rem; border: 1px solid #cfd9ea; border-radius: .65rem; color: var(--library-navy); background: #fff; font-size: .86rem; font-weight: 750; text-decoration: none; }
.library-category-nav a:hover { color: #0a3c9f; border-color: #9db7e2; background: #f6f9ff; }
.library-category-nav i { color: var(--library-blue); }
.library-category-section { padding: clamp(3.25rem, 6vw, 5.25rem) 0; background: #fff; scroll-margin-top: 6rem; }
.library-category-section + .library-category-section { border-top: 1px solid var(--library-line); background: #f8faff; }
.library-category-section__inner { max-width: 1040px; }
.library-category-header { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 1.2rem; align-items: center; padding-bottom: 2rem; border-bottom: 1px solid var(--library-line); }
.library-category-header__icon { display: grid; place-items: center; width: 3.5rem; height: 3.5rem; border-radius: .85rem; color: #fff; background: linear-gradient(135deg, #1557d6, #2f75e8); font-size: 1.25rem; box-shadow: 0 10px 24px rgba(21,87,214,.18); }
.library-category-section--purple .library-category-header__icon { background: linear-gradient(135deg, #6e44d8, #8c63e8); box-shadow: 0 10px 24px rgba(110,68,216,.18); }
.library-category-header .library-eyebrow { margin-bottom: .35rem; }
.library-category-header h2 { margin: 0; color: var(--library-navy); font-size: clamp(1.65rem, 3vw, 2.25rem); line-height: 1.15; }
.library-category-header p:last-child { max-width: 680px; margin: .55rem 0 0; color: var(--library-muted); line-height: 1.6; }
.library-category-header__link { white-space: nowrap; color: #174fba !important; font-family: Montserrat, Arial, Helvetica, sans-serif; font-size: .86rem; font-weight: 750; text-decoration: none; }
.library-category-block { padding-top: 2.35rem; }
.library-category-block + .library-category-block { margin-top: 2.35rem; border-top: 1px solid var(--library-line); }
.library-category-block__heading { margin-bottom: 1.2rem; }
.library-category-block__heading h3 { margin: 0; color: var(--library-navy); font-size: 1.3rem; }
.library-category-block__heading p { max-width: 700px; margin: .45rem 0 0; color: var(--library-muted); line-height: 1.6; }
.library-category-block__heading--action { display: flex; align-items: end; justify-content: space-between; gap: 1.5rem; }
.library-button--small { flex: 0 0 auto; min-height: 2.65rem; padding: .7rem .9rem; font-size: .82rem; }
.library-guide-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; }
.library-guide-link { display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: .85rem; align-items: center; min-height: 5.2rem; padding: .9rem 1rem; border: 1px solid #d8e1ef; border-left: 3px solid var(--library-blue); border-radius: .7rem; color: var(--library-navy) !important; background: #fff; text-decoration: none !important; transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.library-category-section--purple .library-guide-link { border-left-color: var(--library-purple); }
.library-guide-link:hover { color: var(--library-navy) !important; border-color: #aebfda; box-shadow: 0 8px 20px rgba(8,27,58,.08); transform: translateY(-1px); }
.library-guide-link__icon { display: grid; place-items: center; width: 2.2rem; height: 2.2rem; border-radius: .55rem; color: var(--library-blue); background: #eaf2ff; }
.library-category-section--purple .library-guide-link__icon { color: var(--library-purple); background: #f0ebff; }
.library-guide-link strong { display: block; color: var(--library-navy); font-family: Montserrat, Arial, Helvetica, sans-serif; font-size: .9rem; line-height: 1.35; }
.library-guide-link small { display: -webkit-box; overflow: hidden; margin-top: .28rem; color: var(--library-muted); font-size: .76rem; line-height: 1.45; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.library-guide-link > i { color: #71809a; font-size: .78rem; }
.library-criteria-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .7rem; margin: 0; padding: 0; list-style: none; counter-reset: none; }
.library-criteria-grid li { position: relative; display: grid; grid-template-columns: auto auto minmax(0,1fr); gap: .75rem; align-items: start; min-height: 7rem; padding: 1rem; border: 1px solid #dbe3f0; border-radius: .7rem; background: #fff; }
.library-criterion__number { display: grid; place-items: center; width: 1.65rem; height: 1.65rem; border-radius: 50%; color: #fff; background: var(--library-blue); font-family: Montserrat, Arial, Helvetica, sans-serif; font-size: .7rem; font-weight: 800; }
.library-category-section--purple .library-criterion__number { background: var(--library-purple); }
.library-criteria-grid li > i { width: 1.2rem; margin-top: .22rem; color: #5f6f88; text-align: center; }
.library-criteria-grid h4 { margin: 0; color: var(--library-navy); font-size: .9rem; line-height: 1.35; }
.library-criteria-grid p { margin: .35rem 0 0; color: var(--library-muted); font-size: .78rem; line-height: 1.5; }
.library-index-note { padding: 1.4rem 0; border-top: 1px solid var(--library-line); background: #eef4fc; }
.library-index-note p { display: flex; gap: .75rem; max-width: 960px; margin: 0; color: #4d5b72; font-size: .82rem; line-height: 1.6; }
.library-index-note i { margin-top: .25rem; color: var(--library-blue); }
.library-hero .library-eyebrow { color: #d8cbff; }
.library-hero .library-eyebrow::before { background: #d8cbff; }
.library-hero h1 {
    max-width: 15ch;
    margin: 0;
    color: #fff;
    font-size: clamp(2.65rem, 7vw, 5.5rem);
    line-height: .98;
    letter-spacing: -.045em;
}

.library-hero__lead {
    max-width: 690px;
    margin: 1.5rem 0 0;
    color: #e6ecfb;
    font-size: clamp(1.05rem, 2vw, 1.25rem);
    line-height: 1.7;
}

.library-hero__actions,
.library-cta__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .8rem;
    margin-top: 2rem;
}

.library-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 3rem;
    padding: .8rem 1.1rem;
    border: 1px solid transparent;
    border-radius: .7rem;
    font-weight: 750;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease;
}

.library-button:hover { transform: translateY(-2px); }
.library-main .library-button--primary { color: #fff; background: linear-gradient(110deg, #0d4fc9, #5b35c8); box-shadow: 0 12px 30px rgba(21, 87, 214, .25); }
.library-main .library-button--primary:hover { color: #fff; background: linear-gradient(110deg, #093da0, #4825aa); box-shadow: 0 16px 34px rgba(21, 87, 214, .32); }
.library-main .library-button--secondary { color: var(--library-navy); background: #fff; border-color: var(--library-line); }
.library-main .library-button--secondary:hover { color: #07152f; background: #f3f6fc; }
.library-main .library-button--ghost { color: #fff; border-color: rgba(255,255,255,.58); background: rgba(255,255,255,.1); }
.library-main .library-button--ghost:hover { color: #fff; background: rgba(255,255,255,.2); }

.library-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.15rem; }
.library-card-grid--four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.library-card-grid--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.library-card-grid--visa { grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); }

.library-card {
    position: relative;
    overflow: hidden;
    min-width: 0;
    padding: 1.45rem;
    border: 1px solid var(--library-line);
    border-radius: 1rem;
    background: #fff;
    box-shadow: 0 14px 35px rgba(11, 35, 75, .07);
    transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}

.library-card::after {
    position: absolute;
    right: -3rem;
    bottom: -3rem;
    width: 8rem;
    height: 8rem;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(110,68,216,.12), transparent 67%);
    content: "";
    pointer-events: none;
}

.library-card:hover { transform: translateY(-4px); border-color: #b8c8e6; box-shadow: 0 20px 42px rgba(11, 35, 75, .12); }
.library-card__link { position: relative; z-index: 1; display: block; color: inherit; text-decoration: none; }
.library-card__link:hover { color: inherit; }
.library-card h2,
.library-card h3 { margin: 0; color: var(--library-navy); font-size: 1.18rem; line-height: 1.3; }
.library-card p { margin: .65rem 0 0; color: var(--library-muted); line-height: 1.6; }
.library-card__meta { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 1rem; color: #65728a; font-size: .82rem; }
.library-card__arrow { display: inline-block; margin-top: 1rem; color: var(--library-blue); font-weight: 750; }
.library-card__image { width: calc(100% + 2.9rem); max-width: none; height: 10rem; margin: -1.45rem -1.45rem 1.2rem; object-fit: cover; }
.library-visa-card,
.library-article-card,
.library-journey-card,
.library-related__grid > article {
    position: relative;
    min-width: 0;
    padding: 1.4rem;
    border: 1px solid var(--library-line);
    border-radius: 1rem;
    background: #fff;
    box-shadow: 0 14px 35px rgba(11,35,75,.07);
    transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.library-visa-card:hover,
.library-article-card:hover,
.library-journey-card:hover,
.library-related__grid > article:hover { transform: translateY(-4px); border-color: #b8c8e6; box-shadow: 0 20px 42px rgba(11,35,75,.12); }
.library-visa-card h3,
.library-article-card h3,
.library-journey-card h3,
.library-related__grid h3 { margin: 0; color: var(--library-navy); font-size: 1.18rem; line-height: 1.35; }
.library-visa-card p,
.library-article-card > p:not(.library-article-card__eyebrow),
.library-journey-card p,
.library-related__grid article > p:last-child { color: var(--library-muted); line-height: 1.6; }
.library-visa-card__icon { display: grid; place-items: center; width: 3.35rem; height: 3.35rem; margin-bottom: 1rem; border-radius: .9rem; color: #fff; background: linear-gradient(135deg, var(--library-blue), var(--library-purple)); font-size: 1.25rem; font-weight: 850; }
.library-visa-card__label { margin: 0 0 .45rem !important; color: var(--library-purple) !important; font-family: Montserrat, Arial, Helvetica, sans-serif; font-size: .7rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.library-visa-card__meta { display: inline-flex; align-items: center; gap: .5rem; margin-top: .85rem; color: #174fba; font-family: Montserrat, Arial, Helvetica, sans-serif; font-size: .82rem; font-weight: 750; }
.library-card-arrow { display: inline-block; margin-top: .8rem; color: var(--library-blue); font-size: 1.3rem; }
.library-article-card__eyebrow,
.library-contributor-card__role { margin: 0 0 .55rem; color: var(--library-purple); font-size: .72rem; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.library-article-card__meta { display: flex; justify-content: space-between; gap: .7rem; margin-top: 1rem; color: var(--library-muted); font-size: .82rem; }
.library-article-card--dark { border-color: rgba(255,255,255,.16); color: #fff; background: rgba(255,255,255,.08); box-shadow: none; }
.library-article-card--dark h3 a,
.library-article-card--dark p { color: #fff; }
.library-article-card--dark .library-article-card__eyebrow { color: #cfc2ff; }
.library-journey-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 1rem; }
.library-journey-card__step { display: block; margin-bottom: .8rem; color: var(--library-purple); font-size: 1.6rem; font-weight: 850; }
.library-journey-card__count { display: block; color: var(--library-muted); font-size: .82rem; }
.library-journey-card__link { display: inline-flex; margin-top: 1rem; font-weight: 800; line-height: 1.45; }
.library-visa-card { border-top: 4px solid var(--library-blue); }
.library-visa-card:nth-child(3n+2) { border-top-color: var(--library-purple); }
.library-visa-card:nth-child(3n) { border-top-color: var(--library-gold); }
.library-journey-card__number { display: grid; place-items: center; width: 2.4rem; height: 2.4rem; margin-bottom: 1rem; border-radius: .75rem; color: #fff; background: var(--library-navy); font-weight: 800; }

.library-trust {
    display: grid;
    grid-template-columns: .8fr 1.2fr;
    gap: clamp(2rem, 7vw, 6rem);
    align-items: start;
}

.library-trust__principles { display: grid; gap: 1rem; }
.library-trust__item { padding: 1.2rem 1.3rem; border-left: 3px solid var(--library-purple); background: #fff; box-shadow: 0 10px 30px rgba(8,27,58,.06); }
.library-trust__item h3 { margin: 0 0 .35rem; color: var(--library-navy); }
.library-trust__item p { margin: 0; color: var(--library-muted); line-height: 1.65; }
.library-standards { background: linear-gradient(135deg, #eef5ff, #f8f3ff); }
.library-standards__grid { display: grid; grid-template-columns: 1.2fr .8fr; gap: clamp(2rem,6vw,5rem); align-items: start; }
.library-standards__grid h2 { margin: 0; color: var(--library-navy); font-size: clamp(1.8rem,3vw,2.5rem); }
.library-standards__grid p,
.library-standards__grid li { color: var(--library-muted); line-height: 1.7; }
.library-standards__cards { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 1rem; }
.library-standards__cards article { padding: 1.4rem; border: 1px solid #dbe5f5; border-radius: 1rem; background: rgba(255,255,255,.78); }
.library-standards__cards i { color: var(--library-purple); font-size: 1.35rem; }
.library-standards__cards h3 { margin: .9rem 0 .45rem; color: var(--library-navy); font-size: 1.05rem; }
.library-standards__cards p { margin: 0; color: var(--library-muted); line-height: 1.65; }
.library-standards__disclaimer { margin: 1.3rem 0 0; padding: 1rem 1.15rem; border-left: 3px solid var(--library-gold); color: #46546c; background: rgba(255,255,255,.72); line-height: 1.65; }

.library-breadcrumbs { padding-block: 1.15rem; font-size: .9rem; }
.library-breadcrumbs ol { display: flex; flex-wrap: wrap; gap: .45rem; align-items: center; margin: 0; padding: 0; list-style: none; }
.library-breadcrumbs li:not(:last-child)::after { margin-left: .45rem; color: #98a4b9; content: "/"; }
.library-breadcrumbs [aria-current="page"] { color: var(--library-muted); }

.library-category-hero { padding: clamp(3rem, 7vw, 5.5rem) 0; background: linear-gradient(140deg, #f2f7ff, #f8f4ff); border-block: 1px solid #e3eaf6; }
.library-category-hero__inner { display: grid; grid-template-columns: 1fr auto; gap: 2rem; align-items: end; }
.library-category-hero h1 { margin: 0; color: var(--library-navy); font-size: clamp(2.4rem, 6vw, 4.5rem); line-height: 1; letter-spacing: -.035em; }
.library-category-hero__summary { max-width: 720px; margin: 1.2rem 0 0; color: var(--library-muted); font-size: 1.12rem; line-height: 1.7; }
.library-category-hero__grid { display: grid; grid-template-columns: 1fr auto; gap: 2rem; align-items: center; }
.library-category-hero__grid > div > p:not(.library-eyebrow) { max-width: 720px; color: var(--library-muted); font-size: 1.08rem; line-height: 1.7; }
.library-category-hero__mark { display: grid; place-items: center; width: 8rem; height: 8rem; border: 1px solid #c6d4ec; border-radius: 50%; color: var(--library-purple); background: rgba(255,255,255,.7); font-size: 1.7rem; font-weight: 850; letter-spacing: .1em; }
.library-text-link { display: inline-block; margin-top: 1rem; font-weight: 750; }
.library-back-link { white-space: nowrap; font-weight: 750; }
.library-pillar { display: grid; grid-template-columns: .8fr 1.2fr; gap: 1.5rem; padding: clamp(1.5rem, 4vw, 2.6rem); border-radius: 1.2rem; color: #fff; background: linear-gradient(120deg, var(--library-navy), #173f84 58%, #513097); }
.library-pillar h2 { color: #fff; }
.library-pillar p { color: #dce7fb; line-height: 1.65; }
.library-feature-guide { display: grid; grid-template-columns: 1.2fr .8fr; gap: 2rem; overflow: hidden; padding: clamp(1.5rem,4vw,2.8rem); border-radius: 1.2rem; color: #fff; background: linear-gradient(120deg,var(--library-navy),#173f84 58%,#513097); }
.library-feature-guide h2 { margin: 0; color: #fff; font-size: clamp(1.7rem,3vw,2.5rem); }
.library-feature-guide p { color: #dce7fb; line-height: 1.65; }
.library-feature-guide__pattern { min-height: 200px; border-radius: 1rem; background: radial-gradient(circle at 30% 30%,rgba(255,255,255,.25),transparent 20%), repeating-linear-gradient(135deg,rgba(255,255,255,.08) 0 1px,transparent 1px 16px); }

.library-progress { position: fixed; z-index: 1200; top: 0; left: 0; width: 100%; height: 3px; background: transparent; pointer-events: none; }
.library-progress__bar { display: block; width: 0; height: 100%; background: linear-gradient(90deg, var(--library-blue), var(--library-purple), var(--library-gold)); transform-origin: left center; }
.library-reading-progress { position: fixed; z-index: 1200; top: 0; left: 0; width: 0; height: 3px; background: linear-gradient(90deg,var(--library-blue),var(--library-purple),var(--library-gold)); pointer-events: none; }
.library-article-header { padding: 1rem 0 clamp(2.5rem, 6vw, 4.5rem); border-bottom: 1px solid var(--library-line); background: linear-gradient(180deg, #f8faff, #fff); }
.library-article-header__inner { max-width: 900px; }
.library-article-header h1 { margin: 0; color: var(--library-navy); font-size: clamp(2.4rem, 6.5vw, 4.8rem); line-height: 1.03; letter-spacing: -.04em; }
.library-article-summary { max-width: 780px; margin: 1.3rem 0 0; color: #4d5b73; font-size: clamp(1.08rem, 2vw, 1.28rem); line-height: 1.7; }
.library-article-header__summary { max-width: 780px; margin: 1.3rem 0 0; color: #4d5b73; font-size: clamp(1.08rem,2vw,1.28rem); line-height: 1.7; }
.library-article-meta { display: flex; flex-wrap: wrap; gap: .55rem 1.2rem; margin-top: 1.2rem; color: var(--library-muted); font-size: .88rem; }
.library-meta { display: flex; flex-wrap: wrap; gap: .55rem 1.2rem; margin: 1.35rem 0 0; padding: 0; color: var(--library-muted); font-size: .88rem; list-style: none; }
.library-meta strong { color: var(--library-ink); }
.library-contributor-line { margin-top: 1rem; color: var(--library-muted); }
.library-hero-media { margin: 2rem 0 0; overflow: hidden; border-radius: 1.1rem; box-shadow: 0 22px 45px rgba(8,27,58,.15); }
.library-hero-media img { display: block; width: 100%; height: auto; }
.library-article-hero { margin: 2rem 0 0; overflow: hidden; border-radius: 1.1rem; box-shadow: 0 22px 45px rgba(8,27,58,.15); }
.library-article-hero img { display: block; width: 100%; max-width: 100%; height: auto; object-fit: contain; }
.library-article-hero figcaption { padding: .7rem 1rem; color: var(--library-muted); font-size: .85rem; }
.library-article-taxonomy { display: grid; gap: .7rem; margin-top: 1.15rem; }
.library-taxonomy-group { display: flex; flex-wrap: wrap; align-items: center; gap: .55rem; }
.library-taxonomy-group__label { color: var(--library-muted); font-size: .72rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.library-taxonomy-group ul { display: flex; flex-wrap: wrap; gap: .45rem; margin: 0; padding: 0; list-style: none; }
.library-taxonomy-group li > a,
.library-taxonomy-group li > span { display: inline-flex; padding: .35rem .65rem; border: 1px solid #cfdaf0; border-radius: 999px; color: #33435f; background: #fff; font-size: .78rem; font-weight: 700; line-height: 1.2; text-decoration: none; }
.library-taxonomy-group li > a:hover { color: var(--library-blue); border-color: #9fb7e1; }

.library-article-layout {
    display: grid;
    grid-template-columns: 54px minmax(0, 760px) minmax(220px, 280px);
    gap: clamp(1.5rem, 4vw, 3rem);
    align-items: start;
    padding-block: clamp(2.5rem, 6vw, 5rem);
}

.library-article-main { min-width: 0; }
.library-article-body { min-width: 0; }
.library-article-sidebar { position: sticky; top: 7rem; display: grid; gap: 1.25rem; }
.library-share-rail { position: sticky; top: 7rem; display: grid; gap: .55rem; }
.library-share-column { position: sticky; top: 7rem; }
.library-share { display: grid; gap: .55rem; justify-items: center; }
.library-share__label { color: var(--library-muted); font-size: .72rem; font-weight: 800; text-transform: uppercase; }
.library-share button,
.library-share a { display: grid; place-items: center; width: 2.75rem; height: 2.75rem; border: 1px solid var(--library-line); border-radius: .7rem; color: var(--library-navy); background: #fff; font: inherit; font-size: .8rem; font-weight: 800; text-decoration: none; cursor: pointer; }
.library-share button:hover,
.library-share a:hover { color: var(--library-blue); border-color: #aebfe0; }
.library-share-button {
    display: inline-grid;
    place-items: center;
    min-width: 2.75rem;
    min-height: 2.75rem;
    padding: .55rem;
    border: 1px solid var(--library-line);
    border-radius: .7rem;
    color: var(--library-navy);
    background: #fff;
    font: inherit;
    font-size: .74rem;
    font-weight: 800;
    cursor: pointer;
    text-decoration: none;
}
.library-share-button:hover { color: var(--library-blue); border-color: #aebfe0; }

.library-toc { padding: 1.1rem; border: 1px solid var(--library-line); border-radius: .9rem; background: #fff; }
.library-toc h2 { margin: 0 0 .8rem; color: var(--library-navy); font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; }
.library-toc ol { display: grid; gap: .45rem; margin: 0; padding: 0; list-style: none; }
.library-toc__title { margin: 0 0 .8rem; color: var(--library-navy); font-size: .78rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.library-toc ul { display: grid; gap: .45rem; margin: 0; padding: 0; list-style: none; }
.library-toc a { display: block; padding: .25rem .35rem; border-left: 2px solid transparent; color: var(--library-muted); font-size: .86rem; line-height: 1.35; text-decoration: none; }
.library-toc a[aria-current="location"] { color: var(--library-blue); border-left-color: var(--library-blue); font-weight: 750; }
.library-toc__level-3 a { padding-left: 1rem; }
.library-toc--mobile { display: none; margin-bottom: 1.5rem; padding: 0; }
.library-toc--mobile summary { padding: 1rem; color: var(--library-navy); font-weight: 800; cursor: pointer; }
.library-toc--mobile ol { padding: 0 1rem 1rem; }
.library-mobile-toc { display: none; margin-bottom: 1.5rem; border: 1px solid var(--library-line); border-radius: .85rem; background: #fff; }
.library-mobile-toc summary { padding: 1rem; color: var(--library-navy); font-weight: 800; cursor: pointer; }
.library-mobile-toc .library-toc { border: 0; border-top: 1px solid var(--library-line); border-radius: 0; }

.library-quick-answer,
.library-key-takeaways,
.library-callout,
.library-definition,
.library-quote,
.library-content-cta {
    margin: 0 0 1.6rem;
    padding: 1.4rem;
    border-radius: .9rem;
}
.library-quick-answer { border: 1px solid #bfd2f4; background: #eef5ff; }
.library-quick-answer h2,
.library-key-takeaways h2 { margin: 0 0 .7rem; color: var(--library-navy); font-size: 1.3rem; }
.library-quick-answer p { margin: 0; line-height: 1.7; }
.library-key-takeaways { border-left: 4px solid var(--library-gold); background: #fff9ea; }
.library-key-takeaways ul { margin: 0; padding-left: 1.25rem; }
.library-key-takeaways li + li { margin-top: .45rem; }
.library-callout { border: 1px solid #d8cdf6; background: #f7f3ff; }
.library-callout--warning { border-color: #f0d58e; background: #fff9e9; }
.library-callout--success { border-color: #a8ddc3; background: #effaf4; }
.library-callout__title { margin: 0 0 .45rem; color: var(--library-navy); font-weight: 850; }
.library-callout p { margin: 0; line-height: 1.65; }
.library-callout__body { line-height: 1.65; }
.library-definition { border-left: 4px solid var(--library-blue); background: var(--library-soft); }
.library-definition dt { color: var(--library-navy); font-size: 1.1rem; font-weight: 850; }
.library-definition dd { margin: .4rem 0 0; line-height: 1.7; }
.library-definition__term { margin: 0; color: var(--library-navy); font-size: 1.1rem; font-weight: 850; }
.library-definition__body { margin-top: .4rem; line-height: 1.7; }
.library-quote { margin-inline: 0; border-left: 4px solid var(--library-purple); background: #f8f6fc; }
.library-quote blockquote { margin: 0; color: #273653; font-size: 1.1rem; line-height: 1.7; }
.library-quote figcaption { margin-top: .75rem; color: var(--library-muted); font-size: .88rem; }

.library-prose { color: #23304a; font-size: 1.04rem; line-height: 1.82; }
.library-prose > * + * { margin-top: 1.35rem; }
.library-prose h2,
.library-prose h3 { position: relative; scroll-margin-top: 7.5rem; }
.library-prose h2 { margin-top: 3.2rem; }
.library-prose h3 { margin-top: 2.3rem; color: var(--library-navy); font-size: 1.35rem; line-height: 1.3; }
.library-heading-anchor { margin-left: .4rem; color: #8290a8; font-size: .7em; opacity: 0; text-decoration: none; }
.library-heading-link { margin-left: .4rem; padding: .15rem .3rem; border: 0; color: #8290a8; background: transparent; font: inherit; font-size: .7em; opacity: 0; cursor: pointer; }
.library-prose h2:hover .library-heading-anchor,
.library-prose h3:hover .library-heading-anchor,
.library-heading-anchor:focus,
.library-prose h2:hover .library-heading-link,
.library-prose h3:hover .library-heading-link,
.library-heading-link:focus { opacity: 1; }
.library-prose p { margin-bottom: 0; }
.library-prose li + li { margin-top: .45rem; }
.library-code { padding: .12em .35em; border-radius: .3rem; color: #432b73; background: #f0ebf8; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: .9em; }
.library-table-scroll { overflow-x: auto; margin-block: 1.6rem; border: 1px solid var(--library-line); border-radius: .8rem; }
.library-table-wrap { overflow-x: auto; margin-block: 1.6rem; border: 1px solid var(--library-line); border-radius: .8rem; }
.library-comparison { width: 100%; min-width: 620px; border-collapse: collapse; background: #fff; }
.library-comparison caption { padding: .9rem; color: var(--library-navy); font-weight: 800; text-align: left; }
.library-comparison th,
.library-comparison td { padding: .85rem; border-top: 1px solid var(--library-line); text-align: left; vertical-align: top; }
.library-comparison thead th { color: var(--library-navy); background: #eff4fc; }
.library-table { width: 100%; min-width: 620px; border-collapse: collapse; background: #fff; }
.library-table caption { padding: .9rem; color: var(--library-navy); font-weight: 800; text-align: left; }
.library-table th,
.library-table td { padding: .85rem; border-top: 1px solid var(--library-line); text-align: left; vertical-align: top; }
.library-table thead th { color: var(--library-navy); background: #eff4fc; }
.library-timeline { position: relative; margin: 1.5rem 0; padding-left: 1.7rem; list-style: none; }
.library-timeline::before { position: absolute; left: .35rem; top: .4rem; bottom: .4rem; width: 2px; background: #c9d6eb; content: ""; }
.library-timeline li { position: relative; padding: 0 0 1.25rem .7rem; }
.library-timeline li::before { position: absolute; left: -1.43rem; top: .45rem; width: .7rem; height: .7rem; border: 2px solid #fff; border-radius: 50%; background: var(--library-purple); box-shadow: 0 0 0 2px var(--library-purple); content: ""; }
.library-timeline time { color: var(--library-blue); font-size: .82rem; font-weight: 800; }
.library-checklist { padding: 0; list-style: none; }
.library-checklist li { position: relative; padding-left: 1.9rem; }
.library-checklist__mark { position: absolute; left: 0; top: .05rem; color: #16794b; font-weight: 900; }
.library-figure { margin: 1.7rem 0; }
.library-figure img { display: block; max-width: 100%; height: auto; border-radius: .85rem; }
.library-figure figcaption { margin-top: .6rem; color: var(--library-muted); font-size: .85rem; }

.library-content-cta { border: 1px solid #c9d7ef; background: linear-gradient(135deg, #eef5ff, #f7f1ff); }
.library-content-cta h2,
.library-content-cta h3 { margin: 0; color: var(--library-navy); }
.library-content-cta p { margin: .5rem 0 0; color: var(--library-muted); }
.library-cta {
    position: relative;
    overflow: hidden;
    padding: clamp(2rem, 5vw, 3.5rem);
    border-radius: 1.2rem;
    color: #fff;
    background: linear-gradient(120deg, #071a38, #174785 58%, #58359c);
}
.library-cta h2 { margin: 0; color: #fff; font-size: clamp(1.6rem, 3vw, 2.4rem); }
.library-cta h3 { margin: 0; color: #fff; font-size: 1.35rem; }
.library-cta__eyebrow { margin: 0 0 .5rem; color: #d6c8ff; font-size: .72rem; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.library-cta p { max-width: 680px; margin: .65rem 0 0; color: #dfe9fa; line-height: 1.65; }
.library-cta--compact { padding: 1.2rem; border-radius: .9rem; }
.library-cta--compact h2 { font-size: 1.1rem; }
.library-cta--compact p { font-size: .86rem; }
.library-cta--compact .library-cta__actions { display: grid; margin-top: 1rem; }
.library-cta--compact .library-button { min-height: 2.6rem; font-size: .85rem; }
.library-cta--inline { display: flex; align-items: center; justify-content: space-between; gap: 1.2rem; }
.library-cta--inline .library-button { flex: 0 0 auto; }

.library-article-footer { display: grid; gap: 2.5rem; padding-bottom: 5rem; }
.library-source-list { display: grid; gap: .8rem; padding-left: 1.3rem; }
.library-source-list li { padding-left: .25rem; }
.library-source-list span { display: block; color: var(--library-muted); font-size: .86rem; }
.library-faq-list { display: grid; gap: .75rem; }
.library-faqs__list { display: grid; gap: .75rem; }
.library-faq { border: 1px solid var(--library-line); border-radius: .8rem; background: #fff; }
.library-faq summary { padding: 1rem 1.1rem; color: var(--library-navy); font-weight: 800; cursor: pointer; }
.library-faq__answer { padding: 0 1.1rem 1.1rem; line-height: 1.7; }
.library-faq__answer > :first-child { margin-top: 0; }
.library-contributor-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1rem; }
.library-contributors__grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.library-contributor-card { display: grid; grid-template-columns: auto 1fr; gap: 1rem; padding: 1.2rem; border: 1px solid var(--library-line); border-radius: .9rem; }
.library-contributor-card__photo,
.library-contributor-card__initials { width: 4rem; height: 4rem; border-radius: 50%; object-fit: cover; }
.library-contributor-card__initials { display: grid; place-items: center; color: #fff; background: linear-gradient(135deg, var(--library-blue), var(--library-purple)); font-weight: 850; }
.library-contributor-card h3 { margin: 0; color: var(--library-navy); }
.library-contributor-card p { margin: .3rem 0 0; color: var(--library-muted); line-height: 1.55; }
.library-update-list { margin: 0; padding-left: 1.25rem; }
.library-sources ol,
.library-updates ol { display: grid; gap: .8rem; padding-left: 1.3rem; }
.library-sources li > span { display: block; color: var(--library-muted); font-size: .86rem; }
.library-updates time { color: var(--library-blue); font-weight: 750; }
.library-updates p { margin: .25rem 0 0; }
.library-update-list li + li { margin-top: .85rem; }
.library-update-list time { display: block; color: var(--library-blue); font-weight: 750; }
.library-related-group + .library-related-group { margin-top: 1.5rem; }
.library-related__grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.library-related-group h3 { color: var(--library-navy); }
.library-article-navigation { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1rem; }
.library-article-navigation__link { display: block; padding: 1rem; border: 1px solid var(--library-line); border-radius: .8rem; text-decoration: none; }
.library-article-navigation__link--next { text-align: right; }
.library-article-navigation__previous,
.library-article-navigation__next { display: block; padding: 1rem; border: 1px solid var(--library-line); border-radius: .8rem; text-decoration: none; }
.library-article-navigation__next { text-align: right; }
.library-article-navigation__previous span,
.library-article-navigation__next span { display: block; color: var(--library-muted); font-size: .82rem; }
.library-article-navigation small { display: block; color: var(--library-muted); }
.library-article-navigation strong { color: var(--library-navy); }
.library-disclaimer { padding: 1rem 1.1rem; border-left: 3px solid #8290a8; color: var(--library-muted); background: #f5f7fa; font-size: .88rem; line-height: 1.6; }

/* Article-format preview: scoped to the EB-1A overview until the layout is approved. */
.library-article-page--format-preview .library-article-header { padding-bottom: 2.25rem; }
.library-article-page--format-preview .library-article-header__inner { max-width: 1020px; }
.library-article-page--format-preview .library-article-layout { padding-top: 2.5rem; }
.library-article-page--format-preview .library-article-topic-menu {
    display: grid;
    grid-template-columns: repeat(8, minmax(132px,1fr));
    gap: .55rem;
    width: min(1180px, calc(100vw - 56px));
    margin: 0 0 2rem 50%;
    padding: .7rem;
    overflow: visible;
    border: 1px solid #dce4f1;
    border-radius: 1rem;
    background: rgba(247,249,253,.9);
    transform: translateX(-50%);
}
.library-article-page--format-preview .library-article-topic-menu__card {
    display: grid;
    grid-template-columns: auto minmax(0,1fr);
    gap: .55rem;
    align-items: center;
    min-height: 4rem;
    padding: .55rem .6rem;
    border: 1px solid #dbe3ef;
    border-top: 3px solid var(--topic-accent);
    border-radius: .65rem;
    color: var(--library-navy);
    background: #fff;
    box-shadow: 0 4px 12px rgba(8,27,58,.035);
    text-decoration: none;
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.library-article-page--format-preview .library-article-topic-menu__card:hover {
    color: var(--library-navy);
    border-color: var(--topic-accent);
    box-shadow: 0 8px 18px rgba(8,27,58,.09);
    transform: translateY(-2px);
}
.library-article-page--format-preview .library-article-topic-menu__icon {
    display: grid;
    place-items: center;
    width: 2rem;
    height: 2rem;
    border-radius: .5rem;
    color: var(--topic-accent);
    background: var(--topic-soft);
    font-size: .78rem;
}
.library-article-page--format-preview .library-article-topic-menu small {
    display: block;
    margin-bottom: .12rem;
    color: var(--topic-accent);
    font-family: Montserrat, Arial, Helvetica, sans-serif;
    font-size: .5rem;
    font-weight: 850;
    letter-spacing: .06em;
    line-height: 1.2;
    text-transform: uppercase;
}
.library-article-page--format-preview .library-article-topic-menu strong {
    display: block;
    color: var(--library-navy);
    font-family: Montserrat, Arial, Helvetica, sans-serif;
    font-size: .74rem;
    line-height: 1.25;
}
.library-article-page--format-preview .library-article-meta {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .7rem;
    margin-top: 1.6rem;
}
.library-article-page--format-preview .library-article-meta > span {
    position: relative;
    min-width: 0;
    padding: .8rem .9rem .8rem 1.05rem;
    border: 1px solid #dbe4f3;
    border-radius: .85rem;
    color: #4b5a72;
    background: rgba(255,255,255,.88);
    box-shadow: 0 8px 22px rgba(21,52,99,.055);
    font-size: .78rem;
    font-weight: 650;
    line-height: 1.45;
}
.library-article-page--format-preview .library-article-meta > span::before {
    position: absolute;
    top: .82rem;
    bottom: .82rem;
    left: 0;
    width: 3px;
    border-radius: 99px;
    background: linear-gradient(180deg, var(--library-blue), var(--library-purple));
    content: "";
}
.library-article-page--format-preview .library-article-meta time {
    display: block;
    margin-top: .18rem;
    color: var(--library-navy);
    font-size: .9rem;
    font-weight: 800;
}
.library-article-page--format-preview .library-article-meta > span:first-child,
.library-article-page--format-preview .library-article-meta__reading,
.library-article-page--format-preview .library-article-meta__level {
    display: flex;
    align-items: center;
    min-height: 3.25rem;
    color: var(--library-navy);
    font-size: .9rem;
    font-weight: 800;
}
.library-article-page--format-preview .library-article-meta__level {
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
}
.library-article-page--format-preview .library-article-meta__level small {
    color: #4b5a72;
    font-size: .72rem;
    font-weight: 650;
}
.library-article-page--format-preview .library-article-meta__level strong {
    margin-top: .18rem;
    color: var(--library-navy);
    font-size: .9rem;
}
.library-article-page--format-preview .library-article-taxonomy {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .8rem;
    margin-top: 1rem;
    margin-bottom: 1.15rem;
}
.library-article-page--format-preview .library-taxonomy-group {
    align-content: flex-start;
    padding: 1rem;
    border: 1px solid #d8e2f2;
    border-radius: .95rem;
    background: linear-gradient(145deg, rgba(246,249,255,.96), rgba(255,255,255,.96));
}
.library-article-page--format-preview .library-taxonomy-group__label {
    flex: 0 0 100%;
    margin-bottom: .18rem;
    color: #586983;
}
.library-article-page--format-preview .library-taxonomy-group li > span,
.library-article-page--format-preview .library-taxonomy-group li > a {
    border-color: transparent;
    color: #173f7a;
    background: #eaf2ff;
}
.library-article-page--format-preview .library-taxonomy-group:nth-child(2) li > span,
.library-article-page--format-preview .library-taxonomy-group:nth-child(2) li > a {
    color: #603f8d;
    background: #f3edff;
}
.library-article-page--format-preview .library-article-body > .library-sources,
.library-article-page--format-preview .library-article-body > .library-faqs,
.library-article-page--format-preview .library-article-body > .library-updates,
.library-article-page--format-preview .library-article-body > .library-contributors,
.library-article-page--format-preview .library-article-body > .library-related,
.library-article-page--format-preview .library-article-body > .library-article-navigation,
.library-article-page--format-preview .library-article-body > .library-disclaimer,
.library-article-page--format-preview .library-article-body > .library-cta {
    margin-top: clamp(2rem, 5vw, 3.25rem);
}
.library-article-page--format-preview .library-article-body > .library-sources,
.library-article-page--format-preview .library-article-body > .library-faqs,
.library-article-page--format-preview .library-article-body > .library-updates,
.library-article-page--format-preview .library-article-body > .library-contributors,
.library-article-page--format-preview .library-article-body > .library-related {
    position: relative;
    overflow: hidden;
    padding: clamp(1.35rem, 3vw, 2rem);
    border: 1px solid #dce5f3;
    border-radius: 1.15rem;
    background: #fff;
    box-shadow: 0 16px 42px rgba(16,45,91,.075);
}
.library-article-page--format-preview .library-article-body > .library-sources::before,
.library-article-page--format-preview .library-article-body > .library-faqs::before,
.library-article-page--format-preview .library-article-body > .library-updates::before,
.library-article-page--format-preview .library-article-body > .library-contributors::before,
.library-article-page--format-preview .library-article-body > .library-related::before {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--library-blue), var(--library-purple));
    content: "";
}
.library-article-page--format-preview .library-article-body > .library-faqs::before { background: linear-gradient(90deg, #7b4ec4, #ca62a5); }
.library-article-page--format-preview .library-article-body > .library-updates::before { background: linear-gradient(90deg, #168b83, #65b686); }
.library-article-page--format-preview .library-article-body > .library-contributors::before { background: linear-gradient(90deg, #d08b31, #e5b44f); }
.library-article-page--format-preview .library-article-body > .library-related::before { background: linear-gradient(90deg, #356fd1, #25a8b8); }
.library-article-page--format-preview .library-article-body > section > h2,
.library-article-page--format-preview .library-article-body > .library-disclaimer > h2 {
    margin: 0 0 1.15rem;
    color: var(--library-navy);
    font-size: clamp(1.35rem, 3vw, 1.8rem);
    line-height: 1.25;
}
.library-article-page--format-preview .library-sources ol {
    gap: .7rem;
    margin: 0;
    padding: 0;
    list-style: none;
    counter-reset: library-source;
}
.library-article-page--format-preview .library-sources li {
    position: relative;
    padding: .95rem 1rem .95rem 3.15rem;
    border: 1px solid #e1e8f3;
    border-radius: .8rem;
    background: #f8faff;
    counter-increment: library-source;
}
.library-article-page--format-preview .library-sources li::before {
    position: absolute;
    top: .9rem;
    left: .9rem;
    display: grid;
    place-items: center;
    width: 1.6rem;
    height: 1.6rem;
    border-radius: .45rem;
    color: #fff;
    background: #326dcc;
    content: counter(library-source);
    font-family: Montserrat, Arial, sans-serif;
    font-size: .7rem;
    font-weight: 800;
}
.library-article-page--format-preview .library-sources li > a { font-weight: 800; line-height: 1.45; }
.library-article-page--format-preview .library-sources li > p { margin: .45rem 0 0; color: var(--library-muted); line-height: 1.55; }
.library-article-page--format-preview .library-faqs__list { gap: .7rem; }
.library-article-page--format-preview .library-faq {
    overflow: hidden;
    border-color: #dfe5f0;
    border-radius: .85rem;
    box-shadow: 0 5px 14px rgba(32,53,88,.035);
}
.library-article-page--format-preview .library-faq summary {
    position: relative;
    padding: 1rem 3rem 1rem 1.1rem;
    background: #fbfaff;
    list-style: none;
}
.library-article-page--format-preview .library-faq summary::-webkit-details-marker { display: none; }
.library-article-page--format-preview .library-faq summary::after {
    position: absolute;
    top: 50%;
    right: 1.05rem;
    color: var(--library-purple);
    content: "+";
    font-size: 1.35rem;
    line-height: 1;
    transform: translateY(-50%);
}
.library-article-page--format-preview .library-faq[open] summary::after { content: "\2212"; }
.library-article-page--format-preview .library-faq[open] summary { border-bottom: 1px solid #ebe5f5; background: #f8f4ff; }
.library-article-page--format-preview .library-updates ol { margin: 0; padding: 0; list-style: none; }
.library-article-page--format-preview .library-updates li {
    position: relative;
    padding: .2rem 0 .2rem 1.5rem;
    border-left: 2px solid #b8ded8;
}
.library-article-page--format-preview .library-updates li::before {
    position: absolute;
    top: .45rem;
    left: -.38rem;
    width: .65rem;
    height: .65rem;
    border: 2px solid #fff;
    border-radius: 50%;
    background: #168b83;
    box-shadow: 0 0 0 2px #b8ded8;
    content: "";
}
.library-article-page--format-preview .library-contributor-card { border-color: #eadfcb; background: #fffcf6; }
.library-article-page--format-preview .library-contributors__grid > .library-contributor-card:only-child { grid-column: 1 / -1; }
.library-article-page--format-preview .library-related__grid > article { box-shadow: 0 9px 24px rgba(11,35,75,.055); }
.library-article-page--format-preview .library-article-navigation a {
    position: relative;
    min-height: 100%;
    padding: 1.2rem 1.25rem;
    border-color: #d4e0f1;
    border-radius: 1rem;
    background: linear-gradient(145deg, #f6f9ff, #fff);
    box-shadow: 0 10px 28px rgba(16,45,91,.06);
    transition: border-color .2s ease, box-shadow .2s ease;
}
.library-article-page--format-preview .library-article-navigation a:hover { border-color: #9bb5dc; box-shadow: 0 14px 32px rgba(16,45,91,.1); }
.library-article-page--format-preview .library-article-navigation a:only-child { grid-column: 1 / -1; }
.library-article-page--format-preview .library-article-navigation span { margin-bottom: .4rem; color: #63728a; font-weight: 750; text-transform: uppercase; letter-spacing: .055em; }
.library-article-page--format-preview .library-article-navigation strong { display: block; line-height: 1.45; }
.library-article-page--format-preview .library-disclaimer {
    position: relative;
    padding: 1.35rem 1.45rem 1.35rem 4.15rem;
    border: 1px solid #eadcb9;
    border-left: 1px solid #eadcb9;
    border-radius: 1rem;
    color: #5f563f;
    background: linear-gradient(135deg, #fffaf0, #fffdf8);
    box-shadow: 0 10px 28px rgba(87,64,20,.055);
}
.library-article-page--format-preview .library-disclaimer::before {
    position: absolute;
    top: 1.35rem;
    left: 1.15rem;
    display: grid;
    place-items: center;
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    color: #815a16;
    background: #f5dfaa;
    content: "i";
    font-family: Georgia, serif;
    font-weight: 700;
}
.library-article-page--format-preview .library-disclaimer > h2 { margin-bottom: .45rem; }
.library-article-page--format-preview .library-disclaimer > p { margin: 0; }

.library-empty-state,
.library-error,
.library-status {
    max-width: 680px;
    margin: clamp(4rem, 10vw, 8rem) auto;
    padding: 2rem;
    border: 1px solid var(--library-line);
    border-radius: 1rem;
    text-align: center;
    background: #fff;
}
.library-empty-state h1,
.library-error h1,
.library-status h1 { color: var(--library-navy); }
.library-status > p:not(.library-eyebrow) { color: var(--library-muted); line-height: 1.7; }
.library-preview-banner { padding: .55rem 1rem; color: #fff; background: #7b3f00; font-size: .82rem; font-weight: 750; text-align: center; }
.library-preview-header { padding: 1rem max(1rem,calc((100% - 1180px)/2)); border-bottom: 1px solid var(--library-line); background: #fff; }
.library-preview-header a { color: var(--library-navy); font-size: 1.1rem; font-weight: 850; text-decoration: none; }
.library-preview-header span { color: var(--library-purple); }

.library-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

@media (max-width: 1320px) {
    .library-article-page--format-preview .library-article-topic-menu { width: min(1180px, calc(100vw - 44px)); }
}

@media (max-width: 1180px) {
    .library-article-page--format-preview .library-article-topic-menu {
        grid-template-columns: repeat(4, minmax(0,1fr));
        width: 100%;
        margin-left: 0;
        transform: none;
    }
}

@media (max-width: 1050px) {
    .library-topic-nav__grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .library-card-grid--four { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .library-card-grid--visa { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .library-article-layout { grid-template-columns: minmax(0,1fr) 240px; }
    .library-share-rail,
    .library-share-column { position: static; grid-column: 1 / -1; display: flex; order: -1; }
    .library-share { display: flex; align-items: center; }
}

@media (max-width: 780px) {
    .library-card-grid,
    .library-card-grid--two,
    .library-card-grid--four,
    .library-trust,
    .library-standards__grid,
    .library-feature-guide,
    .library-hero__grid,
    .library-category-hero__grid,
    .library-pillar,
    .library-category-hero__inner,
    .library-contributor-grid,
    .library-contributors__grid,
    .library-related__grid,
    .library-journey-grid,
    .library-standards__cards,
    .library-article-navigation { grid-template-columns: 1fr; }
    .library-guide-list,
    .library-criteria-grid,
    .library-topic-list { grid-template-columns: 1fr; }
    .library-topic-section__header { grid-template-columns: auto minmax(0,1fr); }
    .library-topic-section__count { grid-column: 2; justify-self: start; }
    .library-category-header { grid-template-columns: auto minmax(0,1fr); }
    .library-category-header__link { grid-column: 2; justify-self: start; }
    .library-category-block__heading--action { display: block; }
    .library-category-block__heading--action .library-button { margin-top: 1rem; }
    .library-hero--landing .library-hero__grid { grid-template-columns: 1fr; }
    .library-section-heading { display: block; }
    .library-article-layout { display: block; }
    .library-article-sidebar { display: none; }
    .library-mobile-toc,
    .library-toc--mobile { display: block; }
    .library-share-rail { display: flex; flex-wrap: wrap; margin-bottom: 1.25rem; }
    .library-article-navigation__link--next { text-align: left; }
    .library-article-page--format-preview .library-article-topic-menu { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .library-article-page--format-preview .library-article-meta { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .library-article-page--format-preview .library-article-taxonomy { grid-template-columns: 1fr; }
}

@media (max-width: 520px) {
    .library-shell { width: min(100% - 1.2rem, 1180px); }
    .library-hero__actions,
    .library-cta__actions { display: grid; }
    .library-cta--inline { display: block; }
    .library-cta--inline .library-button { margin-top: 1rem; }
    .library-button { width: 100%; }
    .library-category-nav { display: grid; }
    .library-topic-nav__grid { grid-template-columns: 1fr; }
    .library-topic-section__header { grid-template-columns: 1fr; }
    .library-topic-section__count { grid-column: 1; }
    .library-topic-link { grid-template-columns: auto auto minmax(0,1fr); }
    .library-topic-link__status { grid-column: 3; }
    .library-category-nav a { width: 100%; }
    .library-category-header { grid-template-columns: 1fr; }
    .library-category-header__link { grid-column: 1; }
    .library-category-header__icon { width: 3rem; height: 3rem; }
    .library-criteria-grid li { grid-template-columns: auto minmax(0,1fr); }
    .library-criteria-grid li > i { display: none; }
    .library-directory ul { grid-template-columns: 1fr; }
    .library-card { padding: 1.15rem; }
    .library-card__image { width: calc(100% + 2.3rem); margin: -1.15rem -1.15rem 1rem; }
    .library-contributor-card { grid-template-columns: 1fr; }
    .library-article-page--format-preview .library-article-topic-menu { gap: .4rem; padding: .5rem; }
    .library-article-page--format-preview .library-article-topic-menu__card { min-height: 3.75rem; padding: .5rem; }
    .library-article-page--format-preview .library-article-meta { grid-template-columns: 1fr; }
    .library-article-page--format-preview .library-article-body > .library-sources,
    .library-article-page--format-preview .library-article-body > .library-faqs,
    .library-article-page--format-preview .library-article-body > .library-updates,
    .library-article-page--format-preview .library-article-body > .library-contributors,
    .library-article-page--format-preview .library-article-body > .library-related { padding: 1.15rem; }
}

@media (prefers-reduced-motion: reduce) {
    .library-main *,
    .library-main *::before,
    .library-main *::after,
    .library-preview-header * { scroll-behavior: auto; transition-duration: .01ms; animation-duration: .01ms; animation-iteration-count: 1; }
}

@media print {
    .site-header,
    .site-footer,
    .library-reading-progress,
    .library-share-column,
    .library-share,
    .library-article-sidebar,
    .library-toc--mobile,
    .library-cta,
    .library-article-navigation,
    .library-heading-link,
    .library-preview-banner,
    .library-preview-header { display: none; }
    .library-page { color: #000; background: #fff; }
    .library-shell { width: 100%; }
    .library-article-layout { display: block; padding: 0; }
    .library-article-header { background: #fff; }
    .library-prose { font-size: 11pt; line-height: 1.55; }
    .library-prose a[href^="https://"]::after { content: " (" attr(href) ")"; font-size: .85em; }
}
