
:root {
  color-scheme: light dark;
  font-family: 'Inter', sans-serif;
}
html { scroll-behavior: smooth; }
body { margin:0; min-height:100vh; background:#f5fdf7; color:#111827; }
.dark body { background:#031708; color:#e5e7eb; }
body::selection { background:#14532d; color:#dcfce7; }
.skip-link {
  position:absolute; left:-999px; top:auto; width:1px; height:1px; overflow:hidden;
}
.skip-link:focus { position:static; width:auto; height:auto; padding:0.75rem 1rem; margin:0.75rem; background:#14532d; color:#dcfce7; border-radius:0.75rem; z-index:1000; }
.ticker-track { display:inline-flex; animation: ticker 45s linear infinite; }
@keyframes ticker { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.line-clamp-2 { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.line-clamp-3 { display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.skeleton { background: linear-gradient(90deg, #e5e7eb 0%, #f3f4f6 50%, #e5e7eb 100%); background-size:200% 100%; animation: shimmer 1.4s infinite; }
.dark .skeleton { background: linear-gradient(90deg, #1f2937 0%, #374151 50%, #1f2937 100%); background-size:200% 100%; }
@keyframes shimmer { 0%{background-position:200% 0;} 100%{background-position:-200% 0;} }
.prose-article p { margin-bottom: 1.25rem; line-height: 1.9; font-size: 1.05rem; }
.prose-article h2 { font-size: 1.55rem; font-weight: 700; margin: 2rem 0 1rem; }
.fade-in { animation: fadeIn .4s ease both; }
@keyframes fadeIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
button, input, textarea, a { transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease; }
button:focus-visible, a:focus-visible, input:focus-visible, textarea:focus-visible { outline: 3px solid #d1fae5; outline-offset: 3px; }
img { max-width: 100%; height: auto; }
article a.card-link { display: block; color: inherit; text-decoration: none; }
article a.card-link:hover h3, article a.card-link:hover h4 { color: #14532d; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; } }
