.references-section{background:#fff;color:#1a1a1a;border-top:1px solid #e0e0e0}.references-section>.container{max-width:1200px}.references-subtitle{font-size:18px;line-height:1.7;color:var(--muted);margin:20px 0 0}.reference-hero{margin:0 0 36px;padding:36px 40px;border:1px solid #e0e0e0;border-left:3px solid var(--accent);background:#f8f9fa}.reference-hero blockquote{font-size:clamp(24px,2.7vw,36px);line-height:1.5;letter-spacing:-.025em;margin:20px 0 28px;max-width:980px}.references-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.reference-card{display:flex;flex-direction:column;margin:0;padding:28px;border:1px solid #e0e0e0;border-radius:3px;transition:border-color 400ms var(--motion-ease),box-shadow 400ms var(--motion-ease)}.reference-card blockquote{font-size:18px;line-height:1.7;letter-spacing:0;margin:0 0 28px;font-weight:400}.reference-card figcaption{margin-top:auto}.references-section figcaption strong,.references-section figcaption span{display:block}.references-section figcaption strong{font-size:16px;line-height:1.5}.references-section figcaption span{font-size:14px;line-height:1.6;color:var(--muted);margin-top:5px}.references-section figcaption .reference-relationship{margin-top:12px;color:#3e4b5e}.references-action{text-align:center;margin-top:36px}.references-action button{background:#c4e4f5;border-color:#a8cee3;color:#1a1a1a;cursor:pointer;font-family:inherit}.references-action p{color:var(--muted);font-size:14px;line-height:1.6}.recommendations-dialog{padding:0;border:1px solid #e0e0e0;border-radius:5px;width:min(1000px,calc(100% - 40px));max-height:88vh;max-height:88dvh;color:#1a1a1a;background:#fff;overflow-y:auto;overscroll-behavior:contain}.recommendations-dialog::backdrop{background:rgb(17 24 39 / .6)}.recommendations-shell{padding:0 40px 40px}.recommendations-top{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;position:sticky;top:0;z-index:1;background:#fff;padding:28px 0 20px;border-bottom:1px solid #e0e0e0}.recommendations-top h2{font-size:clamp(25px,4vw,34px);line-height:1.2;margin:10px 0 0;letter-spacing:-.03em}.recommendations-close{flex-shrink:0;width:44px;height:44px;border:1px solid #e0e0e0;border-radius:3px;font-size:28px;line-height:1;background:#fff;cursor:pointer;color:#1a1a1a}.recommendations-shell>p{font-size:14px;line-height:1.7;color:var(--muted)}.recommendations-search{display:block;margin:24px 0 16px;font-size:14px;font-weight:600}.recommendations-search input{display:block;width:100%;margin-top:8px;min-height:48px;padding:12px 14px;font:inherit;font-size:16px;border:1px solid #b8c1cd;border-radius:3px;background:#fff;color:#1a1a1a}.recommendations-filters{display:flex;flex-wrap:wrap;gap:8px}.recommendations-filters button{min-height:44px;padding:10px 16px;font:inherit;font-size:14px;border:1px solid #e0e0e0;border-radius:3px;background:#fff;color:#1a1a1a;cursor:pointer}.recommendations-filters button[aria-pressed=true]{background:#edf5fb;border-color:#49749a;color:#173c65}.recommendations-dialog button:focus-visible,.recommendations-dialog input:focus-visible,.references-action button:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.recommendations-group{margin-top:32px}.recommendations-group>h3{font-size:22px;line-height:1.4;margin:0 0 18px}.recommendation-full{padding:24px 0;border-top:1px solid #e0e0e0}.recommendation-full h4{font-size:19px;margin:0 0 6px}.recommendation-full .recommendation-title{font-size:15px;line-height:1.6;color:#3e4b5e;margin:0}.recommendation-full .recommendation-meta{font-size:14px;line-height:1.7;color:var(--muted);margin:8px 0 20px}.recommendation-full blockquote{font-size:16px;line-height:1.85;letter-spacing:0;font-weight:400;margin:0}.recommendation-full blockquote p{margin:0 0 16px}.recommendations-dialog [hidden]{display:none!important}.recommendations-empty{font-size:16px;padding:20px 0;color:var(--muted)}body.recommendations-open{overflow:hidden}@media(hover:hover){.reference-card:hover{border-color:#9099a4;box-shadow:0 8px 24px #1118270a}.recommendations-close:hover,.recommendations-filters button:hover{border-color:#667384}.references-action button:hover{background:#b2dbf0}}@media(max-width:950px){.references-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.references-grid{grid-template-columns:1fr;gap:18px}.reference-hero{padding:25px 22px}.reference-card{padding:24px}.recommendations-dialog{width:calc(100% - 20px);max-height:94vh;max-height:94dvh}.recommendations-shell{padding:0 20px 24px}.recommendations-top{padding-top:20px}.references-action button{width:100%}}@media(prefers-reduced-motion:reduce){.reference-card{transition:none}}
@media(prefers-reduced-motion:no-preference){.reference-pop-pending{opacity:0}.reference-pop-pending:focus-within{opacity:1}}
@media print{.reference-pop-pending{opacity:1!important}}


.welcome-recommendation{width:min(620px,calc(100% - 32px));max-height:calc(100dvh - 48px);overflow:auto;padding:40px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink);box-shadow:0 24px 80px #11182733}
.welcome-recommendation::backdrop{background:rgb(17 28 47 / .14)}
.welcome-recommendation h2{font-size:16px;line-height:1.5;letter-spacing:0;color:var(--accent);margin:0 0 24px}
.welcome-quote{margin:0 0 32px}
.welcome-quote blockquote{font-size:clamp(22px,4vw,28px);line-height:1.5;letter-spacing:-.02em;margin:0 0 28px}
.welcome-quote figcaption strong,.welcome-quote figcaption span{display:block;font-size:16px;line-height:1.6}
.welcome-quote figcaption span{color:var(--muted);font-size:14px}
.welcome-recommendation .button{font-family:inherit;cursor:pointer;width:100%}
.welcome-recommendation .button:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
@media(max-width:600px){.welcome-recommendation{padding:28px 24px}}
@keyframes welcome-fade-in{from{opacity:0}to{opacity:1}}
@keyframes welcome-fade-out{from{opacity:1}to{opacity:0}}
@media(prefers-reduced-motion:no-preference){
 .welcome-recommendation[open]{animation:welcome-fade-in 1400ms ease-in-out 300ms both}
 .welcome-recommendation[open]::backdrop{animation:welcome-fade-in 1400ms ease-in-out both}
 .welcome-recommendation[open].is-closing,.welcome-recommendation[open].is-closing::backdrop{animation:welcome-fade-out 350ms ease-out both}
}

/* Quiet, editorial treatment for the welcome recommendation. */
.welcome-recommendation{width:min(580px,calc(100% - 32px));padding:44px;background:#f8f9fa;border:1px solid #e3e8ed;border-radius:10px;box-shadow:0 12px 44px rgb(17 28 47 / .1)}
.welcome-recommendation h2{font-size:14px;font-weight:500;color:var(--muted);margin-bottom:28px}
.welcome-quote blockquote{font-size:clamp(21px,3.5vw,25px);line-height:1.65;font-weight:400}
.welcome-recommendation .button{width:auto;min-width:190px;background:#e0edf5;border-color:#cbdfea;color:#111c2f;font-weight:500}
.welcome-recommendation .button:hover{background:#cbdfea}
@media(max-width:600px){.welcome-recommendation{padding:30px 26px}}

/* Non-modal welcome: no scroll lock, backdrop, or focus capture. */
.welcome-recommendation{position:fixed;z-index:1000;top:50%;left:50%;margin:0;transform:translate(-50%,-50%)}
.welcome-recommendation[hidden]{display:none}

/* Follow the quote in reading order, ending with the last word. */
@keyframes quote-word-shimmer{0%,100%{color:#111827;text-shadow:none}45%{color:#779abd;text-shadow:0 0 8px rgb(119 154 189 / .22)}}
@media(prefers-reduced-motion:no-preference){
 .welcome-recommendation[open] .quote-shimmer-word{animation:quote-word-shimmer 650ms ease-in-out var(--word-delay) both}
}

.welcome-actions{display:flex;flex-wrap:wrap;gap:12px}
.welcome-actions .button{flex:1;min-width:190px;text-align:center}

/* Full recommendations are readable directly in the References section. */
.recommendations-inline{max-width:900px;margin:0 auto}
.recommendations-inline [hidden]{display:none!important}
.recommendations-inline .recommendation-full blockquote{line-height:1.8}
.recommendations-inline .recommendation-full{overflow-wrap:anywhere}
.recommendations-inline .recommendations-filters{flex-wrap:wrap}
