/* Shared theme styles — loaded by every view. */

body { font-family: 'Archivo', sans-serif; }

.display { font-size: clamp(2.75rem, 9vw, 7.5rem); line-height: 0.95; letter-spacing: -0.02em; }
.display-sm { font-size: clamp(2rem, 5vw, 4rem); line-height: 1; letter-spacing: -0.02em; }

/* Theme-forced imagery */
.bw { filter: grayscale(1) contrast(1.05); }
.nda-img { filter: grayscale(1) blur(14px); transform: scale(1.12); }

/* Flow chart */
.flow-box { border: 1px solid #141414; padding: .65rem .85rem; font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; text-align: center; }
.flow-tech { display: block; margin-top: .25rem; font-family: 'Fraunces', serif; font-style: italic; text-transform: none; letter-spacing: 0; font-size: .78rem; color: #8A8A85; }

/* Page entrance */
main { animation: fadeIn .5s ease; }
@keyframes fadeIn { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }

@media (prefers-reduced-motion: reduce) {
  main { animation: none; }
  * { animation: none !important; transition-duration: 0.01ms !important; }
  html { scroll-behavior: auto; }
}

:focus-visible { outline: 2px solid #141414; outline-offset: 4px; }
[aria-current="page"] { color: #141414; border-bottom: 1px solid #141414; }
