body { font-family: 'Source Sans 3', system-ui, sans-serif; }
.font-display { font-family: 'Bricolage Grotesque', system-ui, sans-serif; }
.nav-link { display: inline-block; padding: .4rem .2rem; border-bottom: 2px solid transparent; }
.nav-link:hover, .nav-link[aria-current="page"] { border-bottom-color: #f5a623; }
a:focus-visible, button:focus-visible { outline: 2px solid #f5a623; outline-offset: 2px; }
.reveal { opacity: 0; transform: translateY(16px); transition: opacity .6s ease, transform .6s ease; }
.reveal.is-visible { opacity: 1; transform: none; }
.prose-tp p { margin-top: 1rem; line-height: 1.75; }
.prose-tp h2 { font-family: 'Bricolage Grotesque', sans-serif; font-weight: 700; font-size: 1.75rem; color: #0f3d3e; margin-top: 2.5rem; }
.prose-tp h3 { font-family: 'Bricolage Grotesque', sans-serif; font-weight: 600; font-size: 1.25rem; color: #0f3d3e; margin-top: 1.75rem; }
.prose-tp ul { list-style: disc; padding-left: 1.4rem; margin-top: 1rem; }
.prose-tp li { margin-top: .4rem; line-height: 1.7; }
.prose-tp a { color: #b45309; text-decoration: underline; }
.prose-tp table { width: 100%; margin-top: 1.25rem; border-collapse: collapse; font-size: .95rem; }
.prose-tp th, .prose-tp td { border: 1px solid rgba(15,61,62,.2); padding: .6rem .75rem; text-align: left; }
.prose-tp th { background: #0f3d3e; color: #fffaf0; }
.prose-tp ol { list-style: decimal; padding-left: 1.4rem; margin-top: 1rem; }
.prose-tp strong { color: #0f3d3e; }
.prose-tp .table-wrap { overflow-x: auto; }
.prose-tp .callout { margin-top: 1.5rem; padding: 1rem 1.25rem; border-left: 4px solid #f5a623; background: #fff; border-radius: .5rem; }
.prose-tp .callout p:first-child { margin-top: 0; }
.prose-tp .callout-title { font-family: 'Bricolage Grotesque', sans-serif; font-weight: 700; color: #0f3d3e; }
.prose-tp .faq details { background: #fff; border: 1px solid rgba(15,61,62,.15); border-radius: .75rem; padding: .9rem 1.1rem; margin-top: .75rem; }
.prose-tp .faq summary { cursor: pointer; font-weight: 700; color: #0f3d3e; }
.prose-tp .faq details[open] summary { margin-bottom: .25rem; }
.prose-tp .faq details p:first-of-type { margin-top: .5rem; }
.prose-tp a.btn-sun { display: inline-block; background: #f5a623; color: #0f3d3e; font-weight: 700; border-radius: 9999px; padding: .75rem 2rem; text-decoration: none; transition: background .2s; }
.prose-tp a.btn-sun:hover { background: #fbbf24; }
@media (prefers-reduced-motion: reduce) { .reveal { opacity: 1; transform: none; transition: none; } }
