.journal-header { max-width: 65ch; margin-bottom: clamp(3rem, 6vw, 5rem); }
.journal-header h1 { margin-bottom: 1.2rem; font-size: clamp(3.3rem, 7vw, 6rem); line-height: 1; letter-spacing: -.035em; }
.journal-header p { margin: 0; color: var(--muted); font-size: clamp(1.1rem, 2vw, 1.35rem); line-height: 1.6; }
.journal-feed { border-top: 1px solid var(--line-strong); }
.journal-entry { display: grid; grid-template-columns: 13rem minmax(0, 1fr); gap: clamp(2rem, 5vw, 5rem); padding-block: 3rem; border-bottom: 1px solid var(--line); }
.journal-entry-meta { color: var(--muted); font-size: .87rem; font-variant-numeric: tabular-nums; }
.journal-entry-meta > a { display: inline-block; padding-block: .35rem; }
.journal-entry-meta a:hover, .journal-entry-body h2 a:hover { color: var(--orange); }
.journal-tags { display: flex; flex-wrap: wrap; gap: .5rem .85rem; margin: .8rem 0 0; padding: 0; list-style: none; font-size: .8rem; }
.journal-tags li { overflow-wrap: anywhere; }
.journal-entry-body { min-width: 0; max-width: 70ch; }
.journal-entry-body h1, .journal-entry-body h2 { margin-bottom: 1.3rem; font-size: clamp(1.65rem, 3vw, 2.5rem); line-height: 1.2; letter-spacing: -.025em; overflow-wrap: anywhere; }
.journal-prose { max-width: none; overflow-wrap: anywhere; }
.journal-prose p { margin-block: 0 1.3rem; }
.journal-prose h2, .journal-prose h3 { margin-top: 2rem; font-size: 1.4rem; }
.journal-prose img { max-width: 100%; height: auto; }
.journal-prose video { display: block; width: 100%; max-width: 100%; height: auto; margin-block: 1rem; background: #040c13; }
.journal-prose blockquote { border-left-width: 1px; font-size: inherit; }
.journal-prose table { display: block; max-width: 100%; overflow-x: auto; }
.journal-permalink { display: inline-block; margin-top: .7rem; padding-block: .4rem; color: var(--muted); text-decoration: underline; text-underline-offset: .25em; font-size: .85rem; }
.journal-permalink:hover { color: var(--orange); }
.journal-first-entry { max-width: 65ch; padding-block: 2rem; border-block: 1px solid var(--line); }
.journal-first-entry h2 { margin-bottom: .8rem; font-size: 1.6rem; }
.journal-first-entry p { margin: 0; color: var(--muted); }
.journal-first-entry a { color: var(--orange); text-decoration: underline; text-underline-offset: .25em; }
.journal-pagination { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; margin-top: 2rem; color: var(--muted); }
.journal-pagination a { color: var(--orange); text-decoration: underline; text-underline-offset: .25em; }
.journal-detail .back-link { display: inline-block; margin-bottom: 2rem; }
.journal-detail .journal-entry { border-top: 1px solid var(--line); }
.journal-code { min-width: 0; margin-block: 1.7rem; border: 1px solid var(--line-strong); background: #07121d; }
.journal-code-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .6rem; padding: .6rem 1rem; border-bottom: 1px solid var(--line); color: var(--muted); font-size: .8rem; }
.journal-code-copy { padding: .45rem .65rem; border: 1px solid var(--line-strong); background: transparent; color: var(--ink); font: inherit; cursor: pointer; }
.journal-code-copy:hover { border-color: var(--orange); color: var(--orange); }
.journal-code-copy:disabled { cursor: wait; }
.journal-prose .journal-code pre { margin: 0; padding: 1.1rem; border: 0; max-width: 100%; }
.journal-prose pre code { color: var(--ink); white-space: pre; line-height: 1.65; }
.journal-prose pre { scrollbar-color: var(--blue) #07121d; scrollbar-width: thin; }
.journal-code-status { width: 100%; }
.journal-code-status:empty { display: none; }
.journal-prose .token.comment, .journal-prose .token.prolog { color: #a8bac7; }
.journal-prose .token.keyword, .journal-prose .token.boolean { color: #ffa56f; }
.journal-prose .token.string, .journal-prose .token.attr-value { color: #a8d5af; }
.journal-prose .token.function, .journal-prose .token.class-name { color: #8ec8f0; }
.journal-prose .token.number, .journal-prose .token.constant { color: #dcc1f2; }
.journal-prose .token.operator, .journal-prose .token.punctuation { color: #d5e1e8; }
@media (max-width: 760px) {
    .journal-entry { grid-template-columns: minmax(0, 1fr); gap: 1.2rem; padding-block: 2rem; }
    .journal-entry-meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: .5rem 1rem; }
    .journal-tags { margin: 0; }
}

/* Journal: compact developer log, separate from the editorial blog. */
.journal-page { --journal-mono: "Cascadia Code", "Cascadia Mono", "SFMono-Regular", Consolas, "Liberation Mono", monospace; padding-top: 3rem; font-family: var(--journal-mono); }
.journal-header { max-width: 75ch; margin-bottom: 2rem; }
.journal-header h1 { font-family: var(--journal-mono); font-size: clamp(1.8rem, 4vw, 2.7rem); letter-spacing: -.025em; }
.journal-header h1::before { content: "// "; color: var(--orange); }
.journal-header p { font-size: .95rem; line-height: 1.75; }
.journal-feed { border: 0; }
.journal-entry { grid-template-columns: 10rem minmax(0, 1fr); gap: 2rem; margin-bottom: 2rem; padding: 1.5rem; border: 1px solid var(--line-strong); background: #08131e; }
.journal-entry-meta { font-family: var(--journal-mono); font-size: .75rem; line-height: 1.8; }
.journal-record-label { display: block; margin-bottom: .65rem; color: #8ec8f0; }
.journal-tags { gap: .4rem .7rem; font-size: .75rem; }
.journal-tags li::before { content: "#"; color: #8ec8f0; }
.journal-entry-body { max-width: 75ch; }
.journal-entry-body .journal-entry-title { margin: 0 0 1.5rem; padding-bottom: 1rem; border-bottom: 1px solid var(--line); font-family: var(--journal-mono); font-size: clamp(1.1rem, 2vw, 1.5rem); line-height: 1.55; font-weight: 600; letter-spacing: -.02em; text-wrap: pretty; }
.journal-entry-title::before { content: "// "; color: #a8d5af; }
.journal-prose { font-family: var(--journal-mono); font-size: .88rem; line-height: 1.85; color: #c9d6df; }
.journal-prose p { margin-bottom: 1rem; }
.journal-prose h2, .journal-prose h3 { margin: 2rem 0 .9rem; font-family: var(--journal-mono); color: #a8d5af; font-size: 1rem; font-weight: 600; line-height: 1.6; letter-spacing: 0; text-wrap: pretty; }
.journal-prose h2::before, .journal-prose h3::before { content: "// "; }
.journal-prose strong { color: var(--ink); font-weight: 600; }
.journal-prose a { color: #8ec8f0; text-decoration: underline; text-underline-offset: .2em; }
.journal-prose :not(pre) > code { padding: .1rem .3rem; background: #122536; color: #ffa56f; font-family: var(--journal-mono); font-size: .95em; }
.journal-prose pre, .journal-prose pre code, .journal-prose pre code span { font-family: var(--journal-mono); font-size: .82rem; font-variant-ligatures: none; }
.journal-prose pre { overflow-x: auto; }
.journal-code { margin-block: 1rem 1.5rem; background: #040c13; }
.journal-code-toolbar { padding: .45rem .75rem; background: #0d1d2b; font-family: var(--journal-mono); font-size: .72rem; }
.journal-code-copy { padding: .4rem .6rem; }
.journal-prose .journal-code pre { padding: 1rem; }
.journal-permalink, .journal-pagination, .journal-detail .back-link { font-family: var(--journal-mono); font-size: .8rem; }
.journal-first-entry h2 { font-family: var(--journal-mono); font-size: 1.2rem; }
@media (max-width: 760px) {
    .journal-page { padding-top: 2rem; }
    .journal-entry { grid-template-columns: minmax(0, 1fr); gap: 1.2rem; padding: 1rem; }
    .journal-entry-meta { padding-bottom: .8rem; border-bottom: 1px solid var(--line); }
    .journal-record-label { width: 100%; margin-bottom: 0; }
    .journal-prose { font-size: .83rem; }
}

/* Journal overview: one compact log line per entry - date and tags left, title right, no excerpt. */
.journal-entry--list { align-items: baseline; margin-bottom: -1px; padding-block: 1.1rem; }
.journal-entry--list .journal-entry-meta > a { padding-block: 0; }
.journal-entry--list .journal-tags { margin-top: .25rem; }
.journal-entry--list .journal-entry-title { margin: 0; padding-bottom: 0; border-bottom: 0; }
.journal-entry--list .journal-entry-title a:hover { color: var(--orange); }
.journal-entry--list + .journal-entry--list { border-top-color: var(--line); }
@media (max-width: 760px) {
    .journal-entry--list { gap: .6rem; padding: 1rem; }
    .journal-entry--list .journal-entry-meta { padding-bottom: 0; border-bottom: 0; }
    .journal-entry--list .journal-tags { margin-top: 0; }
}
