/* Simple standalone pages (404, privacidade). Builds on styles.css tokens. */
html { scroll-snap-type: none; }
.sub { min-height: 100vh; min-height: 100svh; display: flex; flex-direction: column; }
.sub main { flex: 1; padding: calc(var(--nav) + clamp(32px, 8vh, 80px)) 0 clamp(40px, 8vh, 80px); }
.sub .footer { margin-top: auto; }

/* 404 */
.notfound { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.notfound main { display: flex; align-items: center; }
.notfound__pet { width: clamp(72px, 12vh, 104px); height: auto; margin: 0 auto 20px; animation: nf-bob 3.2s ease-in-out infinite; }
.notfound h1 { font-family: var(--display); font-weight: 600; font-size: clamp(32px, 5vw, 56px); line-height: 1.05; letter-spacing: -.035em; margin: 14px auto 16px; max-width: 16ch; }
.notfound p.lead { color: var(--muted); max-width: 42ch; margin: 0 auto 32px; }
@keyframes nf-bob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }

/* Long-form text */
.prose { max-width: 68ch; }
.prose h1 { font-family: var(--display); font-weight: 600; font-size: clamp(32px, 4.4vw, 48px); line-height: 1.06; letter-spacing: -.035em; margin: 14px 0 12px; }
.prose .updated { color: var(--muted); font-size: 14px; margin-bottom: clamp(28px, 5vh, 44px); }
.prose h2 { font-family: var(--display); font-weight: 600; font-size: 21px; letter-spacing: -.015em; margin: 36px 0 10px; }
.prose p, .prose li { color: var(--fg-2); }
.prose p + p { margin-top: 12px; }
.prose ul { margin: 10px 0 0; padding-left: 20px; }
.prose li + li { margin-top: 6px; }
.prose a { color: var(--accent); }
.prose strong { color: var(--fg); font-weight: 600; }

@media (prefers-reduced-motion: reduce) { .notfound__pet { animation: none; } }
