:root { color-scheme: light; }
html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; }

::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: #d9d3c7; border-radius: 6px; border: 2px solid #fbf9f4; }
::-webkit-scrollbar-thumb:hover { background: #c7c0b2; }

.font-display { letter-spacing: -0.01em; }

/* Timeline rail */
.rail-line { background: linear-gradient(to bottom, transparent, #ece7dd 8%, #ece7dd 92%, transparent); }

/* Topic node connectors */
.node-lock { filter: grayscale(0.4); opacity: 0.78; }

/* subtle card hover */
.card-hover { transition: transform .18s ease, border-color .18s ease, background-color .18s ease; }
.card-hover:hover { transform: translateY(-2px); border-color: #d8d1c4; }

/* mastery bar */
.mbar { transition: width .5s cubic-bezier(.4,0,.2,1); }

/* fade in */
@keyframes fadeUp { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
.fade-up { animation: fadeUp .35s ease both; }

/* line clamp helper */
.clamp-2 { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.clamp-3 { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }

/* nav active */
.nav-active { background: #e7f0ea; color: #2f6049; }

/* range input */
input[type=range] { accent-color: #3f7d5e; }

/* pretty prose from AI */
.ai-prose p { margin-bottom: .65rem; }
.ai-prose ul { list-style: disc; padding-left: 1.15rem; margin-bottom: .65rem; }
.ai-prose li { margin-bottom: .25rem; }
.ai-prose strong { color: #1c1a17; font-weight: 600; }
.ai-prose h3, .ai-prose h4 { font-weight: 600; margin: .5rem 0 .35rem; }
