.programs { display: grid; grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr)); gap: 1rem; list-style: none; margin: 0; padding: 0; }
.prog { position: relative; padding: 2rem 1.4rem 1.3rem; background: linear-gradient(180deg, var(--card-top), var(--card-bottom)); border: 1px solid var(--card-line); border-radius: var(--radius); backdrop-filter: blur(4px); box-shadow: var(--card-shadow); display: flex; flex-direction: column; gap: .8rem; overflow: hidden; }
.prog::before { content: ""; position: absolute; left: 1.4rem; top: 1.2rem; width: 2.2rem; height: 2px; border-radius: 2px; background: var(--c, var(--accent)); }
.prog .icon { width: 64px; height: 48px; color: var(--c, var(--accent)); }
.prog h3 { font-family: var(--font-display); font-weight: var(--display-weight); font-size: 1.95rem; line-height: 1.1; margin: 0; }
.prog .eq { font-family: var(--font-mono); font-size: .78rem; color: var(--muted); background: var(--surface-2); border-radius: 6px; padding: .45rem .6rem; overflow-x: auto; white-space: nowrap; }
.prog .sum { color: var(--text-2); font-size: .95rem; }
.prog .sum p { margin: 0; }
.prog .n { font-family: var(--font-mono); font-size: .72rem; color: var(--dim); }
.prog ol { list-style: none; margin: .2rem 0 0; padding: 0; border-top: 1px solid var(--line); }
.prog li { padding: .55rem 0; border-bottom: 1px solid var(--line); font-size: .86rem; line-height: 1.35; }
.prog li a:hover { color: var(--accent-ink); }
.prog li .yr { font-family: var(--font-mono); font-size: .68rem; color: var(--dim); display: block; margin-top: .15rem; }
.mf-themes .summaries { margin: 1.4rem 0 0; display: flex; gap: 1.6rem; flex-wrap: wrap; font-size: .9rem; color: var(--muted); }
.mf-themes .summaries a { color: var(--text); }
.mf-themes .summaries a:hover { color: var(--accent-ink); }
