/* LeetCode and Rap destinations: grouped, collapsible code and lyrics inside an atlas leaf page. */
.catalog { margin:46px 0 0; }
.catalog-head h2 { margin:0 0 10px; font-size:clamp(1.5rem,2.6vw,2.1rem); font-weight:500; letter-spacing:-.03em; }
.catalog-rule, .catalog-source, .catalog-empty { max-width:78ch; margin:0 0 10px; color:var(--muted); line-height:1.6; }
.catalog-rule strong { color:var(--tone,var(--text)); font-weight:650; }
.catalog-source code { font:13px Consolas,"Cascadia Mono",monospace; }
.catalog-index { margin:18px 0 6px; border:1px solid var(--line); border-radius:6px; background:#ffffff05; }
.catalog-index summary { padding:10px 14px; cursor:pointer; font-weight:650; }
.catalog-index ol { columns:3 260px; column-gap:28px; margin:0; padding:6px 14px 14px 36px; font-size:14px; line-height:1.7; }
.catalog-index a { color:var(--link); }
.catalog-group { margin:30px 0 10px; padding-bottom:6px; border-bottom:1px solid var(--line); color:var(--tone,var(--text)); font-size:13px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.catalog-item { margin:0 0 8px; border:1px solid var(--line); border-radius:6px; background:var(--panel); scroll-margin-top:90px; }
.catalog-item > summary { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 14px; padding:12px 16px; cursor:pointer; }
.catalog-item > summary:focus-visible { outline:2px solid var(--tone,var(--link)); outline-offset:2px; }
.catalog-item[open] > summary { border-bottom:1px solid var(--line); }
.catalog-title { font-weight:650; overflow-wrap:anywhere; }
.catalog-meta { color:var(--muted); font-size:13px; overflow-wrap:anywhere; }
.catalog-code, .catalog-lyrics { margin:0; padding:16px 18px; max-height:70vh; overflow:auto; background:#090b14; color:#e6e7f2; tab-size:4; }
.catalog-code { font:13px/1.55 Consolas,"Cascadia Mono",monospace; white-space:pre; }
.catalog-lyrics { font:15px/1.7 "Segoe UI",system-ui,sans-serif; white-space:pre-wrap; overflow-wrap:anywhere; }
.catalog-links { display:flex; flex-wrap:wrap; gap:16px; margin:0; padding:10px 16px; font-size:14px; }
.catalog-links a { color:var(--link); }
.catalog-links span { color:var(--muted); }
.catalog-item .catalog-empty { padding:12px 16px 0; }
@media print { .catalog-item { break-inside:avoid; } .catalog-code, .catalog-lyrics { max-height:none; } }
