[x-cloak] { display: none !important; }
html { scroll-behavior: smooth; scroll-padding-top: 80px; }
body { font-family: "Be Vietnam Pro", system-ui, sans-serif; -webkit-font-smoothing: antialiased; }

.reveal { opacity: 0; transform: translateY(24px); transition: opacity .7s ease, transform .7s ease; }
.reveal.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .reveal { opacity: 1; transform: none; transition: none; } html { scroll-behavior: auto; } }

.eyebrow { letter-spacing: .22em; text-transform: uppercase; font-size: .75rem; font-weight: 600; color: #c9a04f; }
.title-line { position: relative; display: inline-block; padding-bottom: .6rem; }
.title-line::after { content: ""; position: absolute; left: 0; bottom: 0; width: 56px; height: 3px; border-radius: 3px; background: #c9a04f; }
.text-center .title-line::after, .title-line.center::after { left: 50%; transform: translateX(-50%); }

.prose-hp p { margin: 0 0 1rem; line-height: 1.8; }
.prose-hp h2, .prose-hp h3 { font-weight: 700; color: #0f4540; margin: 1.6rem 0 .7rem; line-height: 1.35; }
.prose-hp h2 { font-size: 1.45rem; } .prose-hp h3 { font-size: 1.2rem; }
.prose-hp ul, .prose-hp ol { margin: 0 0 1rem 1.2rem; line-height: 1.8; }
.prose-hp ul { list-style: disc; } .prose-hp ol { list-style: decimal; }
.prose-hp li::marker { color: #1f8676; }
.prose-hp a { color: #136b5f; text-decoration: underline; }
.prose-hp img { border-radius: .75rem; margin: 1rem 0; max-width: 100%; height: auto; }
.prose-hp blockquote { border-left: 3px solid #c9a04f; padding: .4rem 1rem; color: #475569; font-style: italic; margin: 1rem 0; }
.prose-hp table { width: 100%; border-collapse: collapse; margin: 1rem 0; font-size: .95rem; }
.prose-hp th, .prose-hp td { border: 1px solid #e2e8f0; padding: .5rem .7rem; text-align: left; }
.prose-hp strong { color: #0b3532; }

.hero-slide { transition: opacity 1.2s ease, transform 7s ease; }
.no-scrollbar::-webkit-scrollbar { display: none; } .no-scrollbar { scrollbar-width: none; }
.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; }
.pulse-ring { position: relative; }
.pulse-ring::before { content: ""; position: absolute; inset: 0; border-radius: 9999px; background: inherit; animation: ring 1.8s ease-out infinite; z-index: -1; }
@keyframes ring { 0% { transform: scale(1); opacity: .6; } 100% { transform: scale(1.7); opacity: 0; } }
