/* Minimal NitroJen base. Opt in with class="nj" on a root element. */
.nj { font-family: var(--nj-font-ui); font-size: var(--nj-body-size); line-height: var(--nj-body-lh); color: var(--nj-text); background: var(--nj-bg); -webkit-font-smoothing: antialiased; }
.nj *, .nj *::before, .nj *::after { box-sizing: border-box; }
.nj a { color: var(--nj-text-link); text-underline-offset: 3px; }
.nj a:hover { color: var(--nj-primary-pressed); }
.nj :focus-visible { outline: 2px solid var(--nj-focus); outline-offset: 2px; box-shadow: var(--nj-ring-focus); }
.nj ::selection { background: var(--nj-violet-100); }
@keyframes nj-pop { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
@keyframes nj-rise { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@keyframes nj-fade { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .nj *, .nj *::before, .nj *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; } }
