/* ==========================================================================
   Ghosted by My Landlord — gbml-oldweb theme
   Forked from Ghost's Journal theme. Hand-authored plain CSS, no build step.
   ========================================================================== */

:root {
    --gbml-page-bg: #D9D5C6;
    --gbml-ink: #1C1C1C;
    --gbml-link: #0000CC;
    --gbml-link-visited: #551A8B;
    --gbml-link-hover: #CC0000;

    --gbml-border: #7A7660;
    --gbml-border-light: #9A9682;
    --gbml-panel-border: #ACA899;
    --gbml-rule: #C9C6B4;
    --gbml-rule-warm: #D8CBB4;

    --gbml-cream: #F4F2E7;
    --gbml-cream-dark: #E3E0D0;
    --gbml-cream-darker: #E6E3D2;
    --gbml-white: #FFFFFF;

    --gbml-blue-1: #2C5FCC;
    --gbml-blue-2: #1B4BB0;
    --gbml-blue-3: #153D96;
    --gbml-blue-ink: #12224F;
    --gbml-blue-pale: #B9CDF5;
    --gbml-blue-paler: #D8E3F8;

    --gbml-brown-1: #9E5A1E;
    --gbml-brown-2: #7C4212;
    --gbml-brown-border: #5E3210;
    --gbml-brown-ink: #8A4B14;
    --gbml-brown-pale: #EBD3B4;
    --gbml-brown-text: #4A3B2A;
    --gbml-brown-text-2: #443626;
    --gbml-brown-meta: #8A7457;

    --gbml-green-1: #79C05A;
    --gbml-green-2: #4E9D31;
    --gbml-green-3: #3B871F;
    --gbml-green-border: #2A6B18;

    --gbml-btn-bg: #ECE9D8;
    --gbml-btn-border: #8A8778;
    --gbml-btn-border-dark: #6E6C5C;
    --gbml-btn-active-bg: #FCFBF4;

    --gbml-text-body: #3B3B32;
    --gbml-text-strong: #26261F;
    --gbml-text-muted: #6B6857;
    --gbml-text-mutedmore: #5A5748;
    --gbml-text-faint: #8A8778;

    --gbml-lcd-green: #7CE07C;
    --gbml-lcd-bg: #06130A;
    --gbml-lcd-border: #0B2A6B;
    --gbml-lcd-panel: #0A1F52;

    --font-ui: Verdana, Geneva, sans-serif;
    --font-body: Georgia, 'Times New Roman', serif;
    --font-mono: 'Courier New', monospace;
}

/* ---------- Olive/Homestead skin ----------
   Visitor-chosen alternate to the default blue XP skin above (see the skin switcher
   in the footer). Overrides only the "accent identity" variables — banner/box-head
   gradient, link colors, and the LCD odometer readout — everything else (page
   background, borders, panel neutrals) stays shared between both skins. Variable
   NAMES stay the same as the :root defaults above (--gbml-blue-*, --gbml-lcd-*) even
   though their values are olive/amber here, not blue — that's intentional, they're
   role names ("primary accent", "readout color"), not literal color descriptions. */
:root[data-theme="olive"] {
    --gbml-link: #5C4A1E;
    --gbml-link-visited: #7A5C3E;
    --gbml-link-hover: #A6401C;

    --gbml-blue-1: #5D6B2F;
    --gbml-blue-2: #46531F;
    --gbml-blue-3: #333D16;
    --gbml-blue-ink: #262E10;
    --gbml-blue-pale: #D7DFAE;
    --gbml-blue-paler: #E9EEDA;

    --gbml-lcd-green: #FFB000;
    --gbml-lcd-bg: #1A0F00;
    --gbml-lcd-border: #6B3F00;
    --gbml-lcd-panel: #2B1800;
}

* { box-sizing: border-box; }

html, body {
    margin: 0;
    padding: 0;
    background: var(--gbml-page-bg);
    color: var(--gbml-ink);
    font-family: var(--font-ui);
    -webkit-font-smoothing: antialiased;
}

body { min-height: 100vh; }

img { max-width: 100%; display: block; }

a {
    color: var(--gbml-link);
    text-decoration: underline;
}
a:visited { color: var(--gbml-link-visited); }
a:hover { color: var(--gbml-link-hover); }

input, button, textarea { font-family: var(--font-ui); }

.gbml-page { min-height: 100vh; padding: 0 0 40px; }

.gbml-wrap { max-width: 1000px; margin: 0 auto; padding: 0 16px; }

.gbml-top-spacer { height: 14px; }

/* ---------- Banner ---------- */

.gbml-banner {
    border: 1px solid var(--gbml-border);
    border-top-color: var(--gbml-border-light);
    background: linear-gradient(180deg, var(--gbml-blue-1) 0%, var(--gbml-blue-2) 42%, var(--gbml-blue-3) 100%);
    position: relative;
    overflow: hidden;
}
.gbml-banner::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(255,255,255,.28) 0%, rgba(255,255,255,0) 46%);
    pointer-events: none;
}
.gbml-banner-inner {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    padding: 22px 24px 18px;
}
.gbml-kicker {
    font-size: 11px;
    letter-spacing: .14em;
    color: var(--gbml-blue-pale);
    text-transform: uppercase;
    margin-bottom: 8px;
}
.gbml-sitetitle {
    margin: 0;
    font-size: 34px;
    line-height: 1.1;
    font-weight: bold;
    letter-spacing: -.01em;
}
.gbml-sitetitle a {
    color: var(--gbml-white);
    text-decoration: none;
    text-shadow: 1px 1px 0 rgba(0,0,0,.45);
}
.gbml-tagline {
    margin: 10px 0 0;
    font-family: var(--font-body);
    font-size: 15px;
    font-style: italic;
    color: var(--gbml-blue-paler);
}
.gbml-banner-counter {
    display: flex;
    flex-direction: column;
    gap: 6px;
    align-items: flex-end;
    padding-bottom: 4px;
}
.gbml-counter-label {
    font-size: 11px;
    color: var(--gbml-blue-pale);
}
.gbml-footer .gbml-counter-label { color: var(--gbml-text-muted); font-size: 10.5px; }

/* ---------- Odometer ---------- */

.gbml-odometer {
    border: 1px solid var(--gbml-lcd-border);
    background: var(--gbml-lcd-panel);
    padding: 5px 9px;
    display: flex;
    gap: 3px;
}
.gbml-odometer span {
    font-family: var(--font-mono);
    font-size: 14px;
    color: var(--gbml-lcd-green);
    background: var(--gbml-lcd-bg);
    padding: 1px 4px;
    border: 1px solid #123;
}
.gbml-footer .gbml-odometer {
    padding: 3px 5px;
    gap: 2px;
}
.gbml-footer .gbml-odometer span {
    font-size: 12px;
    padding: 0 3px;
    border: none;
}

/* ---------- Toolbar / nav ---------- */

.gbml-toolbar {
    border: 1px solid var(--gbml-border);
    border-top: none;
    background: linear-gradient(180deg, var(--gbml-cream) 0%, var(--gbml-cream-dark) 100%);
    padding: 7px 8px;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
}
.gbml-toolbar-nav { display: contents; }
.gbml-toolbar-nav .nav {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    list-style: none;
    margin: 0;
    padding: 0;
}
.gbml-toolbar-nav .nav li { display: contents; }
.gbml-toolbar-nav .nav a {
    display: inline-block;
    font-family: var(--font-ui);
    font-size: 12.5px;
    padding: 6px 16px;
    text-decoration: none;
    white-space: nowrap;
    color: var(--gbml-ink);
    background: var(--gbml-btn-bg);
    border: 1px solid;
    border-color: var(--gbml-white) var(--gbml-btn-border) var(--gbml-btn-border) var(--gbml-white);
    box-shadow: 0 0 0 1px var(--gbml-btn-border-dark);
}
.gbml-toolbar-nav .nav a:hover { filter: brightness(1.04); }
.gbml-toolbar-nav .nav a:visited { color: var(--gbml-ink); }
.gbml-toolbar-nav .nav .nav-current a {
    color: var(--gbml-blue-ink);
    font-weight: bold;
    background: var(--gbml-btn-active-bg);
    border-color: var(--gbml-btn-border) var(--gbml-white) var(--gbml-white) var(--gbml-btn-border);
}
.gbml-toolbar-spacer { flex: 1 1 40px; }

.gbml-search-box {
    display: flex;
    gap: 5px;
    align-items: center;
}
.gbml-search-field {
    width: 120px;
    font-size: 12px;
    padding: 3px 5px;
    border: 1px solid #7F7C68;
    border-top-color: #5C5A4C;
    border-left-color: #5C5A4C;
    background: var(--gbml-white);
    color: var(--gbml-text-mutedmore);
    text-align: left;
    cursor: text;
}
.gbml-search-go {
    font-size: 11px;
    padding: 3px 9px;
    background: var(--gbml-btn-bg);
    border: 1px solid;
    border-color: var(--gbml-white) var(--gbml-btn-border) var(--gbml-btn-border) var(--gbml-white);
    box-shadow: 0 0 0 1px var(--gbml-btn-border-dark);
    cursor: pointer;
}

/* ---------- Columns layout ---------- */

.gbml-columns {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    margin-top: 16px;
    align-items: flex-start;
}
.gbml-main { flex: 1 1 420px; min-width: 0; }

/* ---------- Panels (home sections) ---------- */

.gbml-intro {
    border: 1px solid var(--gbml-panel-border);
    background: var(--gbml-white);
    padding: 26px 30px;
}
.gbml-intro p {
    margin: 0;
    font-family: var(--font-body);
    font-size: 17px;
    line-height: 1.7;
    color: var(--gbml-text-strong);
    max-width: 62ch;
}

.gbml-panel {
    border: 1px solid var(--gbml-panel-border);
    border-top: none;
    background: var(--gbml-white);
    padding: 24px 30px 28px;
}
.gbml-panel--videos { background: #FAF9F3; }

.gbml-panel-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    border-bottom: 1px solid var(--gbml-rule);
    padding-bottom: 8px;
    margin-bottom: 20px;
}
.gbml-panel-title {
    margin: 0;
    font-size: 14px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--gbml-blue-3);
}
.gbml-panel--notebook .gbml-panel-head { border-bottom-color: var(--gbml-rule-warm); }
.gbml-panel--notebook .gbml-panel-title { color: var(--gbml-brown-ink); }
.gbml-panel-head a { font-size: 11px; }
.gbml-panel-note { font-size: 11px; color: var(--gbml-text-muted); }

.gbml-essay-list { display: flex; flex-direction: column; gap: 22px; }
.gbml-essay-row { display: grid; grid-template-columns: 88px minmax(0,1fr); gap: 16px; align-items: start; }
.gbml-essay-date { font-size: 11px; color: var(--gbml-text-muted); padding-top: 3px; line-height: 1.5; }
.gbml-essay-body { min-width: 0; }
.gbml-essay-link {
    font-family: var(--font-ui);
    font-size: 15px;
    font-weight: bold;
    line-height: 1.45;
}
.gbml-essay-dek {
    margin: 6px 0 0;
    font-family: var(--font-body);
    font-size: 15px;
    line-height: 1.6;
    color: var(--gbml-text-body);
    max-width: 64ch;
}

.gbml-notebook-entry-list { display: flex; flex-direction: column; gap: 14px; }
.gbml-notebook-entry-row { display: grid; grid-template-columns: 88px minmax(0,1fr); gap: 16px; }
.gbml-notebook-entry-link {
    font-family: var(--font-body);
    font-size: 17px;
    font-weight: normal;
    color: var(--gbml-brown-ink);
    text-decoration: underline;
}
.gbml-notebook-entry-link:visited { color: var(--gbml-brown-ink); }
.gbml-notebook-entry-meta { font-size: 11px; color: var(--gbml-text-muted); margin-left: 8px; }

/* ---------- Video grid ---------- */

.gbml-video-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
    gap: 18px;
}
.gbml-video-thumb {
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--gbml-btn-border);
    background: repeating-linear-gradient(135deg, #E7E4D6 0 7px, #DCD9C9 7px 14px);
    aspect-ratio: 16 / 9;
    text-decoration: none;
    overflow: hidden;
    position: relative;
}
.gbml-video-thumb img { width: 100%; height: 100%; object-fit: cover; }
.gbml-video-thumb-label {
    font-family: var(--font-mono);
    font-size: 10px;
    color: var(--gbml-border);
    letter-spacing: .04em;
}
.gbml-video-title {
    display: block;
    margin-top: 8px;
    font-size: 12.5px;
    line-height: 1.45;
    font-weight: bold;
}
.gbml-video-meta { font-size: 11px; color: var(--gbml-text-muted); margin-top: 4px; }

/* ---------- Get it by email ---------- */

.gbml-getbyemail {
    border: 1px solid var(--gbml-border);
    border-top: none;
    background: linear-gradient(180deg, var(--gbml-cream) 0%, var(--gbml-cream-darker) 100%);
    padding: 26px 30px;
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
    align-items: flex-start;
    justify-content: space-between;
}
.gbml-getbyemail-text { max-width: 44ch; }
.gbml-getbyemail-text h2 { margin: 0 0 8px; font-size: 16px; color: var(--gbml-blue-3); }
.gbml-getbyemail-text p {
    margin: 0;
    font-family: var(--font-body);
    font-size: 15px;
    line-height: 1.6;
    color: var(--gbml-text-body);
}

/* ---------- Subscribe control (shared) ---------- */

.gbml-subscribe-form {
    display: flex;
    gap: 7px;
    align-items: stretch;
    text-decoration: none;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}
.gbml-subscribe-form--full { min-width: 280px; }
.gbml-subscribe-input {
    flex: 1;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    padding: 6px 8px;
    border: 1px solid #7F7C68;
    border-top-color: #5C5A4C;
    border-left-color: #5C5A4C;
    background: var(--gbml-white);
    color: var(--gbml-text-mutedmore);
    box-sizing: border-box;
}
.gbml-subscribe-input svg { width: 14px; height: 14px; flex-shrink: 0; }
.gbml-subscribe-input span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gbml-subscribe-btn {
    font-family: var(--font-ui);
    font-size: 12px;
    font-weight: bold;
    color: var(--gbml-white);
    text-shadow: 1px 1px 0 rgba(0,0,0,.35);
    padding: 6px 16px;
    border: 1px solid var(--gbml-green-border);
    background: linear-gradient(180deg, var(--gbml-green-1) 0%, var(--gbml-green-2) 45%, var(--gbml-green-3) 100%);
    white-space: nowrap;
    display: flex;
    align-items: center;
    max-width: 100%;
    box-sizing: border-box;
}
.gbml-subscribe-form:hover .gbml-subscribe-btn { filter: brightness(1.06); }
.gbml-subscribe-form--compact { flex-direction: column; max-width: 100%; }
.gbml-subscribe-form--compact .gbml-subscribe-btn { font-size: 11.5px; padding: 5px 10px; justify-content: center; width: 100%; }
.gbml-subscribe-form--compact .gbml-subscribe-input { font-size: 12px; padding: 5px 7px; }
.gbml-subscribe-form.is-member .gbml-subscribe-btn { background: var(--gbml-btn-bg); color: var(--gbml-ink); text-shadow: none; border-color: var(--gbml-btn-border); justify-content: center; }

.gbml-box-copy {
    margin: 0 0 10px;
    font-family: var(--font-body);
    font-size: 13.5px;
    line-height: 1.55;
    color: var(--gbml-text-body);
}

/* ---------- Sidebar ---------- */

.gbml-sidebar {
    flex: 0 1 232px;
    width: 232px;
    max-width: 100%;
    display: flex;
    flex-direction: column;
    gap: 14px;
    min-width: 0;
}
.gbml-box { border: 1px solid var(--gbml-border); background: var(--gbml-cream); }
.gbml-box-head {
    background: linear-gradient(180deg, var(--gbml-blue-1) 0%, var(--gbml-blue-3) 100%);
    padding: 6px 10px;
    font-size: 11.5px;
    font-weight: bold;
    color: var(--gbml-white);
    text-shadow: 1px 1px 0 rgba(0,0,0,.4);
}
.gbml-box-body { padding: 14px 14px 16px; }
.gbml-box-links { padding: 12px 14px 14px; display: flex; flex-direction: column; gap: 8px; }
.gbml-box-links .nav { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.gbml-box-links .nav a { font-size: 12px; }
.gbml-box-links > a { font-size: 12px; }

/* ---------- Footer ---------- */

.gbml-footer {
    margin-top: 16px;
    border: 1px solid var(--gbml-border);
    background: linear-gradient(180deg, var(--gbml-cream) 0%, var(--gbml-cream-dark) 100%);
    padding: 16px 20px;
    display: flex;
    flex-wrap: wrap;
    gap: 14px 24px;
    align-items: center;
    justify-content: space-between;
}
.gbml-footer-info { font-size: 11px; color: var(--gbml-text-mutedmore); line-height: 1.6; }
.gbml-footer-right { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; }
.gbml-footer-counter { display: flex; gap: 8px; align-items: center; }
.gbml-viewport-badge {
    border: 1px solid var(--gbml-btn-border);
    background: var(--gbml-btn-bg);
    padding: 4px 9px;
    font-size: 10.5px;
    color: var(--gbml-text-mutedmore);
}

.gbml-skin-switcher {
    display: flex;
    align-items: center;
    gap: 6px;
    border: 1px solid var(--gbml-btn-border);
    background: var(--gbml-btn-bg);
    padding: 4px 8px 4px 9px;
    font-size: 10.5px;
    color: var(--gbml-text-mutedmore);
}
.gbml-skin-switcher label { white-space: nowrap; }
.gbml-skin-select {
    font-family: var(--font-ui);
    font-size: 10.5px;
    color: var(--gbml-ink);
    background: var(--gbml-white);
    border: 1px solid #7F7C68;
    border-top-color: #5C5A4C;
    border-left-color: #5C5A4C;
    padding: 2px 3px;
    cursor: pointer;
}

/* ---------- Buttons (pager, tag pills) ---------- */

.gbml-btn {
    display: inline-block;
    font-size: 11px;
    padding: 5px 12px;
    background: var(--gbml-btn-bg);
    border: 1px solid;
    border-color: var(--gbml-white) var(--gbml-btn-border) var(--gbml-btn-border) var(--gbml-white);
    box-shadow: 0 0 0 1px var(--gbml-btn-border-dark);
    text-decoration: none;
    color: var(--gbml-ink);
    cursor: pointer;
}
.gbml-btn:visited { color: var(--gbml-ink); }
.gbml-btn.is-disabled { color: var(--gbml-text-faint); cursor: default; }

/* ---------- Archive (Articles / tag / author) ---------- */

.gbml-archive {
    border: 1px solid var(--gbml-panel-border);
    background: var(--gbml-white);
    padding: 26px 30px 34px;
}
.gbml-archive-title { margin: 0 0 6px; font-size: 20px; color: var(--gbml-blue-3); }
.gbml-archive-intro {
    margin: 0 0 24px;
    font-family: var(--font-body);
    font-size: 15px;
    line-height: 1.6;
    color: var(--gbml-text-body);
    max-width: 60ch;
}
.gbml-tag-label {
    font-size: 11px;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--gbml-blue-3);
    margin-bottom: 8px;
}

.gbml-tag-pills { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 26px; }
.gbml-pill {
    font-size: 11px;
    text-decoration: none;
    color: var(--gbml-blue-3);
    padding: 4px 10px;
    background: var(--gbml-btn-bg);
    border: 1px solid;
    border-color: var(--gbml-white) var(--gbml-btn-border) var(--gbml-btn-border) var(--gbml-white);
    box-shadow: 0 0 0 1px var(--gbml-btn-border-dark);
}
.gbml-pill:visited { color: var(--gbml-blue-3); }
.gbml-pill:hover { background: #F6F4E9; }
.gbml-pill.is-current { font-weight: bold; background: var(--gbml-btn-active-bg); }

.gbml-archive-list .gbml-essay-row { grid-template-columns: 88px minmax(0,1fr) 96px; }
.gbml-essay-length { font-size: 11px; color: var(--gbml-text-faint); text-align: right; padding-top: 3px; }

.gbml-month-header {
    font-size: 12px;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--gbml-text-muted);
    border-bottom: 1px solid var(--gbml-rule);
    padding-bottom: 6px;
    margin: 0 0 16px;
}
.gbml-month-header + .gbml-essay-row,
.gbml-archive-list .gbml-essay-row { margin-bottom: 18px; }

.gbml-pager {
    display: flex;
    gap: 8px;
    align-items: center;
    border-top: 1px solid var(--gbml-rule);
    padding-top: 18px;
    margin-top: 12px;
}
.gbml-pager-status { font-size: 11px; color: var(--gbml-text-muted); }
.gbml-pager-spacer { flex: 1; }

.gbml-author-head { display: flex; gap: 16px; align-items: center; margin-bottom: 24px; }
.gbml-author-image { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; }
.gbml-author-social { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin-top: 8px; font-size: 12px; }
.gbml-author-social svg { width: 16px; height: 16px; }

/* ---------- Video archive ---------- */

.gbml-video-grid--archive { margin-top: 8px; }

/* ---------- Post / Page ---------- */

.gbml-post, .gbml-page {
    border: 1px solid var(--gbml-panel-border);
    background: var(--gbml-white);
}
.gbml-post-header {
    border-bottom: 1px solid #DCD9C9;
    padding: 28px 34px 22px;
}
.gbml-page .gbml-post-header { padding: 28px 34px 0; border-bottom: none; }
.gbml-post-kicker {
    font-size: 11px;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--gbml-blue-3);
    margin-bottom: 12px;
}
.gbml-post-kicker a { color: var(--gbml-blue-3); }
.gbml-post-title {
    margin: 0 0 12px;
    font-family: var(--font-body);
    font-size: 32px;
    line-height: 1.22;
    font-weight: normal;
    color: var(--gbml-text-strong);
    max-width: 30ch;
}
.gbml-notebook-post-title { color: var(--gbml-brown-ink); }
.gbml-post-standfirst {
    margin: 0 0 16px;
    font-family: var(--font-body);
    font-size: 18px;
    font-style: italic;
    line-height: 1.55;
    color: #4A4A3E;
    max-width: 52ch;
}
.gbml-post-meta { font-size: 11px; color: var(--gbml-text-muted); }

.gbml-post-body { padding: 26px 34px 34px; }
.gbml-page .gbml-content { padding: 26px 34px 34px; }
.gbml-page .gh-article-image { margin: 0 34px; width: calc(100% - 68px); }

.gh-article-image { margin-bottom: 8px; }
.gh-article-image img { border: 1px solid var(--gbml-btn-border); }
.gh-article-image figcaption { font-size: 11px; color: var(--gbml-text-muted); margin-top: 6px; margin-bottom: 26px; }

.gbml-content {
    font-family: var(--font-body);
    font-size: 17.5px;
    line-height: 1.75;
    color: var(--gbml-text-strong);
    max-width: 64ch;
}
.gbml-content p { margin: 0 0 20px; }
.gbml-content blockquote {
    margin: 26px 0;
    padding: 16px 22px;
    border-left: 4px solid #245EDC;
    background: #F4F5FA;
    font-size: 19px;
    line-height: 1.6;
    color: #1E2B4F;
}
.gbml-content h2, .gbml-content h3, .gbml-content h4 {
    font-family: var(--font-ui);
    font-size: 15px;
    color: var(--gbml-blue-3);
    margin: 30px 0 12px;
}
.gbml-content ul, .gbml-content ol { margin: 0 0 20px; padding-left: 24px; }
.gbml-content li { margin-bottom: 8px; }
.gbml-content img { border: 1px solid var(--gbml-btn-border); margin: 20px 0; }
.gbml-content figcaption { font-size: 11px; color: var(--gbml-text-muted); margin-top: 6px; }
.gbml-content a { color: var(--gbml-link); }
.gbml-content a:visited { color: var(--gbml-link-visited); }

/* Koenig editor card width variants */
.gbml-content .kg-width-wide {
    max-width: 900px;
    width: 900px;
    margin-left: 50%;
    transform: translateX(-50%);
}
.gbml-content .kg-width-full {
    max-width: 100vw;
    width: 100vw;
    margin-left: 50%;
    transform: translateX(-50%);
}
.gbml-content .kg-width-wide img,
.gbml-content .kg-width-full img { width: 100%; }

.gbml-notebook-content {
    font-size: 18px;
    line-height: 1.85;
}

.gbml-post-tags {
    margin-top: 32px;
    padding-top: 18px;
    border-top: 1px solid #DCD9C9;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}
.gbml-post-tags-label { font-size: 11px; color: var(--gbml-text-muted); margin-right: 4px; }
.gbml-post-tags a {
    font-size: 11px;
    text-decoration: none;
    color: var(--gbml-blue-3);
    padding: 3px 9px;
    background: var(--gbml-btn-bg);
    border: 1px solid;
    border-color: var(--gbml-white) var(--gbml-btn-border) var(--gbml-btn-border) var(--gbml-white);
}
.gbml-post-tags a:visited { color: var(--gbml-blue-3); }

.gbml-comments { padding: 26px 34px 0; }

.gbml-post-nav {
    border-top: 1px solid var(--gbml-panel-border);
    background: var(--gbml-cream);
    display: grid;
    grid-template-columns: 1fr 1fr;
}
.gbml-post-nav-prev a { border-right: 1px solid #DCD9C9; }
.gbml-post-nav a {
    display: block;
    padding: 16px 22px;
    text-decoration: none;
}
.gbml-post-nav-next { text-align: right; }
.gbml-post-nav-label { display: block; font-size: 11px; color: var(--gbml-text-muted); margin-bottom: 5px; }
.gbml-post-nav-title { display: block; font-size: 13px; line-height: 1.45; color: var(--gbml-link); }

/* ---------- Video essay post ---------- */

.gbml-video-post-thumb {
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--gbml-btn-border);
    background: repeating-linear-gradient(135deg, #E7E4D6 0 7px, #DCD9C9 7px 14px);
    aspect-ratio: 3 / 1.35;
    margin-bottom: 16px;
    position: relative;
    overflow: hidden;
}
.gbml-video-post-thumb img { width: 100%; height: 100%; object-fit: cover; }
.gbml-video-play {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 48px;
    color: rgba(255,255,255,.85);
    text-shadow: 0 2px 6px rgba(0,0,0,.5);
}
.gbml-video-watch-btn { margin-bottom: 26px; font-size: 13px; padding: 8px 18px; }

/* ---------- Video favorite post (compact link-card) ---------- */

.gbml-video-favorite-post .gbml-post-title a { color: inherit; text-decoration: none; }
.gbml-video-favorite-post .gbml-post-title a:hover { color: var(--gbml-link-hover); }
.gbml-video-favorite-note {
    font-family: var(--font-body);
    font-size: 17px;
    line-height: 1.7;
    color: var(--gbml-text-strong);
    max-width: 64ch;
    margin: 0 0 20px;
}

/* ---------- Notebook archive (tag-notebook) ---------- */

.gbml-notebook-archive {
    border: 1px solid var(--gbml-panel-border);
    background: #FFFDF7;
}
.gbml-notebook-banner {
    background: linear-gradient(180deg, var(--gbml-brown-1) 0%, var(--gbml-brown-2) 100%);
    border-bottom: 1px solid var(--gbml-brown-border);
    padding: 20px 30px;
}
.gbml-notebook-banner .gbml-tag-label { color: var(--gbml-brown-pale); letter-spacing: .14em; margin-bottom: 6px; }
.gbml-notebook-title {
    margin: 0;
    font-size: 24px;
    color: var(--gbml-white);
    text-shadow: 1px 1px 0 rgba(0,0,0,.4);
}
.gbml-notebook-body { padding: 24px 30px 32px; }
.gbml-notebook-intro {
    margin: 0 0 26px;
    font-family: var(--font-body);
    font-size: 16px;
    font-style: italic;
    line-height: 1.65;
    color: var(--gbml-brown-text);
    max-width: 56ch;
}
.gbml-notebook-list { display: flex; flex-direction: column; }
.gbml-notebook-row { border-top: 1px solid #E4D8C2; padding: 20px 0; }
.gbml-notebook-row-head {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: baseline;
    justify-content: space-between;
}
.gbml-notebook-row-head .gbml-notebook-entry-link { font-size: 20px; }
.gbml-notebook-row-meta { font-size: 11px; color: var(--gbml-brown-meta); }
.gbml-notebook-dek {
    margin: 8px 0 0;
    font-family: var(--font-body);
    font-size: 15px;
    line-height: 1.65;
    color: var(--gbml-brown-text-2);
    max-width: 62ch;
}
.gbml-notebook-archive .gbml-pager { padding: 0; border: none; margin-top: 10px; }

/* ---------- Search overlay tweak (Ghost's built-in search) ---------- */

[data-ghost-search] { font-family: var(--font-ui); }

/* ---------- Member CTA / lightbox: keep Journal defaults functional, restyle to fit ---------- */

.gh-cta {
    font-family: var(--font-body);
    text-align: center;
    padding: 24px;
    margin-top: 20px;
    border-top: 1px solid var(--gbml-rule);
}
.gh-cta-title { font-family: var(--font-ui); color: var(--gbml-blue-3); }
.gh-cta-actions { display: flex; gap: 10px; justify-content: center; margin-top: 12px; }
.gh-cta-actions .gh-btn, .gh-cta-actions .gh-primary-btn {
    font-family: var(--font-ui);
    font-size: 12px;
    font-weight: bold;
    color: var(--gbml-white);
    padding: 7px 16px;
    border: 1px solid var(--gbml-green-border);
    background: linear-gradient(180deg, var(--gbml-green-1) 0%, var(--gbml-green-2) 45%, var(--gbml-green-3) 100%);
    cursor: pointer;
}
.gh-cta-link { font-size: 12px; color: var(--gbml-text-muted); align-self: center; }

/* ---------- Responsive ---------- */

@media (max-width: 860px) {
    .gbml-columns { flex-direction: column; }
    .gbml-sidebar { width: 100%; flex-basis: auto; flex-direction: row; flex-wrap: wrap; }
    .gbml-sidebar .gbml-box { flex: 1 1 220px; }
}

@media (max-width: 640px) {
    .gbml-sitetitle { font-size: 26px; }
    .gbml-banner-inner { padding: 18px 16px 14px; }
    .gbml-intro, .gbml-panel, .gbml-archive, .gbml-getbyemail { padding: 18px 18px 22px; }
    .gbml-post-header, .gbml-post-body { padding-left: 20px; padding-right: 20px; }
    .gbml-essay-row, .gbml-archive-list .gbml-essay-row { grid-template-columns: 1fr; gap: 4px; }
    .gbml-essay-length { text-align: left; }
    .gbml-post-nav { grid-template-columns: 1fr; }
    .gbml-post-nav-prev a { border-right: none; border-bottom: 1px solid #DCD9C9; }
    .gbml-post-nav-next { text-align: left; }
    .gbml-sidebar { flex-direction: column; }
}
