/* Recommendations share the site's glass controls; editorial quotes add a
   distinct voice without turning professional references into product ratings. */
.recommendations {
 position:relative; isolation:isolate; background:#0e1721 url('assets/dark-ribbon.svg') 75% 0/cover no-repeat;
 border-top:1px solid #a8bed51c; border-bottom:1px solid #a8bed51c;
}
.recommendations .section-heading { align-items:end; gap:40px; }
.recommendations .section-heading h2 { font-size:clamp(36px,4.2vw,68px); max-width:1000px; letter-spacing:-.055em; line-height:1.12; }
.recommendations .section-heading>p { max-width:300px; padding-left:26px; border-left:1px solid #bed6f03b; }
.recommendations-featured { display:grid; grid-template-columns:1.18fr 1fr; gap:16px; align-items:start; }
.recommendations-supporting { display:grid; gap:16px; min-width:0; }
.recommendation-card {
 position:relative; isolation:isolate; min-width:0; padding:22px; border:1px solid #c3dbef52; border-radius:22px;
 background:linear-gradient(130deg,#c7e4ff15,#537a980b 46%,#b5d9ff0d);
 box-shadow:0 16px 36px #0002,inset 0 1px 0 #d6eaff33,inset 0 -1px 0 #b6d7f515;
 -webkit-backdrop-filter:blur(12px) saturate(110%); backdrop-filter:blur(12px) saturate(110%);
 transition:border-color 350ms ease,box-shadow 350ms ease;
}
.recommendation-card::before {
 content:""; position:absolute; z-index:-1; inset:0; border-radius:inherit; pointer-events:none;
 background:radial-gradient(ellipse at var(--hover-x,18%) var(--hover-y,0%),#d5ebff10,transparent 65%);
}
.recommendation-card--featured { padding:26px; min-height:100%; display:flex; flex-direction:column; }
.rec-topic { margin:0 0 14px; font-size:10px; line-height:1.5; font-weight:650; letter-spacing:.12em; color:#bfd0e4; }
.rec-quote { margin:0 0 18px; padding:0; color:#f1f4f8; font-family:Georgia,'Times New Roman',serif; font-size:20px; line-height:1.4; font-weight:400; }
.rec-quote p { margin:0; }
.rec-quote p+p { margin-top:16px; }
.rec-quote p:first-child::before { content:'“'; }
.rec-quote p:last-child::after { content:'”'; }
.recommendation-card--featured .rec-quote { font-size:clamp(22px,1.5vw,26px); margin-bottom:24px; }
.rec-author { display:flex; align-items:center; gap:12px; padding-top:14px; border-top:1px solid #bdd5f02b; }
.recommendation-card--featured .rec-author { margin-top:auto; }
.rec-monogram { display:grid; place-items:center; width:38px; height:38px; flex:0 0 38px; border-radius:50%; font-size:12px; color:#d8e7f8; border:1px solid #c2d9f14d; background:linear-gradient(130deg,#c3dfff28,#7c9bb40e); box-shadow:inset 0 1px 0 #e1efff21; }
.rec-author h3 { margin:0 0 3px; font-size:15px; font-weight:550; letter-spacing:-.02em; line-height:1.4; }
.rec-author h3 a { color:#edf3fc; text-decoration:none; }
.rec-author h3 a:hover { text-decoration:underline; text-underline-offset:4px; }
.rec-author p { margin:0; font-size:12px; line-height:1.6; color:#afc0d5; }
.rec-provenance { margin:10px 0 12px; font-size:11px; line-height:1.6; color:#a7b9cd; }
.rec-provenance time { white-space:nowrap; }
.rec-details { overflow-anchor:none; }
body .rec-details>summary { display:flex; width:fit-content; max-width:100%; margin-left:auto; min-height:44px; padding:10px 18px; gap:14px; font-size:13px; text-align:left; cursor:pointer; list-style:none; }
.recommendations summary::-webkit-details-marker { display:none; }
.recommendations summary::marker { content:''; }
.recommendations summary svg { flex:0 0 18px; width:18px; height:18px; transition:transform 320ms var(--control-ease); }
.recommendations details[open]>summary svg { transform:rotate(180deg); }
.rec-body { padding-top:26px; font-size:15px; line-height:1.85; color:#c2cdda; }
.rec-body h4 { margin:0 0 18px; font-size:11px; font-weight:600; letter-spacing:.09em; text-transform:uppercase; color:#b1c6e0; }
.rec-body>p { margin:0 0 18px; }
.rec-original { margin:20px 0; border-top:1px solid #a9c4e327; }
.rec-original>summary { display:flex; align-items:center; gap:18px; justify-content:space-between; padding:14px 4px; min-height:48px; color:#c8dcf3; cursor:pointer; list-style:none; font-size:13px; }
.rec-original>div { border-left:2px solid #8eacca5c; padding:0 0 0 18px; font-size:14px; }
.rec-source-link { display:inline-flex; align-items:center; gap:10px; min-height:44px; color:#bed2ec; font-size:13px; text-decoration:underline; text-underline-offset:5px; text-decoration-color:#8ca6c660; transition:color 240ms ease; }
.rec-source-link:hover { color:#f0f6ff; text-decoration-color:currentColor; }
#recommendations-list { position:relative; }
.recommendations-more { margin-top:20px; overflow-anchor:none; }
body .recommendations-more>summary { display:flex; width:fit-content; max-width:100%; margin:0 auto; cursor:pointer; list-style:none; min-height:48px; padding:12px 24px; font-size:14px; }
.recommendations-remaining { padding-top:20px; }
.recommendations-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; align-items:stretch; }
/* Equal closed rows follow their content rather than a fixed card height. */
.recommendations-grid>.recommendation-card { display:flex; flex-direction:column; }
.recommendations-grid .rec-author { margin-top:auto; }
.recommendations-remaining>button { display:flex; margin:26px auto 0; }
.recommendations-remaining>button svg { transform:rotate(180deg); }
.recommendations-source { display:flex; width:fit-content; margin:14px auto 0; }
.profile-intro .rec-jump { display:flex; width:fit-content; margin-top:18px; color:#bcd3ef; font-size:14px; text-underline-offset:5px; min-height:44px; align-items:center; gap:18px; }
@media(hover:hover) and (pointer:fine) {
 .recommendation-card:hover { border-color:#c3dbef73; box-shadow:0 16px 36px #0002,inset 0 1px 0 #e5f2ff4a,inset 0 -1px 0 #b6d7f520; }
}
@media(max-width:1000px) {
 .recommendations .section-heading { display:block; }
 .recommendations .section-heading>p { border:0; padding:0; max-width:560px; margin-top:22px; }
 .recommendations-featured { grid-template-columns:1fr; }
 .recommendations-supporting { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .recommendation-card--featured { min-height:0; }
 .recommendation-card--featured .rec-quote { font-size:23px; margin-bottom:20px; }
}
@media(max-width:640px) {
 .recommendations-featured,.recommendations-supporting,.recommendations-grid { grid-template-columns:1fr; gap:14px; }
 .recommendation-card,.recommendation-card--featured { padding:20px; border-radius:20px; }
 .recommendations .section-heading h2 { font-size:36px; }
 .rec-quote,.recommendation-card--featured .rec-quote { font-size:20px; line-height:1.4; }
 .rec-topic { font-size:9px; margin-bottom:14px; }
 .rec-author h3 { font-size:15px; }
 body .rec-details>summary { margin-left:0; min-height:48px; padding:12px 18px; font-size:12px; gap:14px; }
 .rec-body { font-size:14px; }
 .rec-provenance { font-size:10px; }
}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))) { .recommendation-card { background:#182635; } }
@media(prefers-reduced-transparency:reduce),(prefers-contrast:more) {
 .recommendation-card { background:#182635; backdrop-filter:none; -webkit-backdrop-filter:none; border-color:#9db3ce; }
}
@media(prefers-reduced-motion:reduce) {
 .recommendation-card,.recommendations summary svg,.rec-source-link { transition:none; }
}
