.blog-logo { display: block; width: 200px; max-width: 100%; height: auto; }
.blog-heading { margin-bottom: 2rem; color: var(--color-text); }
.blog-heading h1, .journal-post h1 { font-family: 'Montserrat', sans-serif; font-size: clamp(1.8rem, 5vw, 2.8rem); line-height: 1.2; margin-bottom: 1rem; }
.blog-intro { font-size: 1.1rem; }
.journal-list { display: grid; gap: 2rem; }
.journal-card, .journal-post { background: #fff; border-radius: var(--radius-default); box-shadow: var(--shadow-small); overflow: hidden; min-width: 0; overflow-wrap: anywhere; }
.journal-card-content, .journal-post { padding: clamp(1rem, 4vw, 2.5rem); }
.journal-card h2 { font-family: 'Montserrat', sans-serif; line-height: 1.3; margin: .5rem 0 1rem; }
.journal-card h2 a { color: var(--color-text); text-decoration: none; }
.blog-meta { color: #666; font-size: .9rem; margin-bottom: .75rem; }
.blog-cover { display: block; width: 100%; height: auto; max-height: 440px; object-fit: cover; }
.journal-post .blog-cover { margin: 1.5rem 0; border-radius: 8px; }
.blog-back, .blog-read-more { display: inline-flex; align-items: center; min-height: 44px; color: #0056b3; }
.blog-back { margin-bottom: 1rem; }
.blog-read-more { margin-top: .75rem; }
.blog-prose { margin-top: 2rem; line-height: 1.8; }
.blog-prose p, .blog-prose ul, .blog-prose ol, .blog-prose blockquote { margin-bottom: 1.25rem; }
.blog-prose h2, .blog-prose h3 { margin: 2rem 0 .75rem; line-height: 1.3; }
.blog-prose ul, .blog-prose ol { padding-left: 1.5rem; }
.blog-prose img { max-width: 100%; height: auto; }
.blog-prose blockquote { border-left: 3px solid var(--color-primary); padding-left: 1rem; }
.blog-prose pre, .blog-prose table { display: block; max-width: 100%; overflow-x: auto; }
.blog-prose a { color: #0056b3; }
a:focus-visible { outline: 3px solid #0056b3; outline-offset: 4px; }

.blog-coming-soon { max-width: 800px; margin: 0 auto; padding: clamp(1.5rem, 5vw, 4rem); text-align: center; }
.blog-coming-soon h1 { font-family: 'Montserrat', sans-serif; font-size: clamp(1.8rem, 5vw, 2.6rem); line-height: 1.25; margin-bottom: 1.5rem; }
.blog-login-button { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: .75rem 1.25rem; margin-top: 1.5rem; border: 0; border-radius: 8px; background: #0056b3; color: white; font: inherit; text-decoration: none; cursor: pointer; }
.blog-login-dialog { margin: auto; width: min(480px, calc(100% - 2rem)); max-height: calc(100% - 2rem); overflow: auto; padding: 2rem; border: 0; border-radius: 16px; line-height: 1.6; }
.blog-login-dialog::backdrop { background: rgba(0,0,0,.55); }
.blog-login-dialog h2 { margin-bottom: 1rem; }
.blog-dialog-close { margin-top: 1rem; min-height: 44px; padding: .5rem 1rem; background: transparent; border: 1px solid #bbb; border-radius: 8px; font: inherit; cursor: pointer; }

#blogGate[hidden], #blogUnlocked[hidden] { display: none !important; }
#blogPasswordForm label { display: block; margin-top: 1rem; }
#blogPassword { width: 100%; min-height: 44px; padding: .75rem; border: 1px solid #bbb; border-radius: 8px; font: inherit; }
#blogLoginError { color: #a32020; margin-top: .75rem; }
