/* Redlands — The Project Book. Public stylesheet.
   Design: Project Book Mockups (direction B), 31 Aug 2026.
   Type: Source Serif 4 at 32 (titles), 19 (headings), 15.5 (reading).
   DM Sans at 13 and 12.5 (UI, meta, captions).
   Slate ink #2b3542, body #3d4854, muted #66727e, faint #939ca6, line #e3e7ea.
   Coral #cf5a44 for links and actions only, never for status. */
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Source+Serif+4:ital,opsz,wght@0,8..60,400;0,8..60,600;1,8..60,400&display=swap');

:root {
    --pb-ink:       #2b3542;
    --pb-body:      #3d4854;
    --pb-mid:       #525f6b;
    --pb-muted:     #66727e;
    --pb-faint:     #939ca6;
    --pb-line:      #e3e7ea;
    --pb-line-soft: #eef1f3;
    --pb-chip:      #eef1f3;
    --pb-card:      #fafbfb;
    --pb-coral:     #cf5a44;
    --pb-coral-dk:  #b04834;
    --pb-ui:        'DM Sans', system-ui, sans-serif;
    --pb-serif:     'Source Serif 4', Georgia, serif;
}

*, *::before, *::after { box-sizing:border-box; margin:0; padding:0; }
html { -webkit-font-smoothing:antialiased; }
body { font-family:var(--pb-serif); background:#fff; color:var(--pb-body); overflow-x:hidden; }
a { color:var(--pb-coral); }
a:hover { color:var(--pb-coral-dk); }

/* ── Header ── */
.pb-header { display:flex; justify-content:space-between; align-items:baseline; padding:22px 56px; border-bottom:1px solid var(--pb-line); }
.pb-brand { font:600 19px var(--pb-serif); color:var(--pb-ink); text-decoration:none; }
.pb-brand:hover { color:var(--pb-ink); }
.pb-nav { display:flex; gap:30px; align-items:baseline; font:500 13px var(--pb-ui); color:var(--pb-muted); }
.pb-nav a { color:var(--pb-muted); text-decoration:none; }
.pb-nav a:hover { color:var(--pb-ink); }
.pb-nav a.is-active { color:var(--pb-ink); box-shadow:0 2px 0 var(--pb-ink); padding-bottom:5px; }
a.pb-private, .pb-private { display:inline-flex; align-items:center; gap:5px; color:var(--pb-faint); font:500 12.5px var(--pb-ui); text-decoration:none; }
a.pb-private:hover { color:var(--pb-mid); }
.pb-private svg { flex:none; }

/* ── Footer ── */
.pb-footer { border-top:1px solid var(--pb-line); margin-top:72px; padding:28px 56px; display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; font:12.5px var(--pb-ui); color:var(--pb-faint); }
.pb-footer a { color:var(--pb-faint); text-decoration:none; }
.pb-footer a:hover { color:var(--pb-coral); }

/* ── Shared page furniture ── */
.pb-title { font:600 32px var(--pb-serif); color:var(--pb-ink); }
.pb-subline { margin:8px 0 0; font:13px var(--pb-ui); color:var(--pb-muted); }
.pb-crumb { margin:0 0 14px; font:13px var(--pb-ui); color:var(--pb-muted); }
.pb-crumb a { text-decoration:none; }
.pb-h2 { font:600 19px var(--pb-serif); color:var(--pb-ink); }
.pb-bullets { margin:0; padding:0 0 0 18px; display:flex; flex-direction:column; gap:6px; font:15.5px/1.5 var(--pb-serif); color:var(--pb-body); }
.pb-prose p { margin:0 0 14px; font:15.5px/1.6 var(--pb-serif); color:var(--pb-body); }
.pb-prose p:last-child { margin-bottom:0; }
.pb-sidehead { margin:0 0 12px; font:500 12.5px var(--pb-ui); color:var(--pb-faint); letter-spacing:.06em; text-transform:uppercase; }
.pb-action { font:500 13px var(--pb-ui); text-decoration:none; }

/* ── Status chips ── */
.chip { display:inline-flex; align-items:center; gap:6px; font:500 12.5px var(--pb-ui); color:var(--pb-mid); background:var(--pb-chip); border-radius:999px; padding:2px 10px; white-space:nowrap; }
.chip .dot { width:6px; height:6px; border-radius:999px; flex:none; }
.chip-idea .dot { border:1.5px solid var(--pb-faint); }
.chip-current_plan .dot { background:#33404d; }
.chip-quoted .dot { background:#7b8794; }
.chip-committed .dot { background:#55636f; }
.chip-done { color:var(--pb-ink); background:#e6eaec; }
.chip-done .tick { font-size:10px; line-height:1; }
.chip-parked { color:var(--pb-faint); background:#f4f6f7; }
.chip-parked .dot { border:1.5px dashed #b6bec6; }
.chip-public { color:var(--pb-muted); background:none; border:1px solid #d7dce0; padding:1px 9px; }

/* ── Plan item marks ── */
.plan-items { list-style:none; padding-left:2px; }
.plan-items li { position:relative; padding-left:20px; }
.item-mark { position:absolute; left:0; top:.42em; width:8px; height:8px; border-radius:999px; display:inline-block; }
.item-mark-current   { background:#33404d; }
.item-mark-idea      { border:1.5px solid var(--pb-faint); }
.item-mark-quoted    { background:#7b8794; }
.item-mark-committed { background:#55636f; }
.item-mark-parked    { border:1.5px dashed #b6bec6; }
.item-mark-done { background:none; width:auto; height:auto; top:0; font-size:11px; line-height:inherit; color:#1b6e3c; font-family:var(--pb-ui); font-weight:700; }
.item-mark-open { background:none; width:auto; height:auto; top:0; font-size:11.5px; line-height:inherit; color:var(--pb-faint); font-family:var(--pb-ui); font-weight:700; }
li.item-open { color:var(--pb-muted); }
li.item-done { color:var(--pb-muted); }
li.item-parked { color:var(--pb-faint); }

/* ── The journey (front page feed) ── */
.journey-wrap { max-width:720px; margin:0 auto; padding:0 24px 72px; }
.journey-layout { display:grid; grid-template-columns:230px minmax(0,720px); gap:80px; justify-content:center; padding:44px 56px 72px; }
.journey-index { padding-top:6px; }
.journey-tagline { margin:8px 0 0; font:italic 15.5px var(--pb-serif); color:var(--pb-muted); }
.journey-hero { padding:0 0 26px; border-bottom:1px solid var(--pb-line); margin-bottom:10px; }
.nice-section-head { font:600 19px var(--pb-serif); margin:44px 0 0; }
.nice-section-head:first-of-type { margin-top:8px; }
.nice-section-head a { color:var(--pb-ink); text-decoration:none; }
.nice-section-head a:hover { color:var(--pb-coral); }
.journey-sub { display:flex; align-items:baseline; gap:14px; margin:44px 0 6px; flex-wrap:wrap; }
.journey-sub h2 { margin:0 auto 0 0; font:600 19px var(--pb-serif); color:var(--pb-ink); }
.filter-row--tight .filter-chip { font-size:12.5px; padding:3px 12px; }

/* ── The current plan panel ── */
.plan-panel { background:var(--pb-card); border:1px solid var(--pb-line); border-radius:6px; padding:24px 28px 26px; }
.plan-panel-head { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:16px; }
.plan-grid { display:grid; grid-template-columns:16px 1fr; gap:9px 12px; font:15.5px/1.5 var(--pb-serif); color:var(--pb-body); }
.plan-mark { display:flex; justify-content:center; padding-top:7px; }
.plan-mark .pm-dot { width:7px; height:7px; border-radius:999px; background:#33404d; display:block; }
.plan-mark .pm-hollow { background:none; border:1.5px solid var(--pb-faint); }
.plan-mark .pm-dashed { background:none; border:1.5px dashed #b6bec6; }
.plan-mark .pm-quoted { background:#7b8794; }
.plan-mark .pm-committed { background:#55636f; }
.plan-mark-done { padding-top:0; text-align:center; font:600 13px/1.7 var(--pb-ui); color:#4c7a5a; display:block; }
.plan-mark-open { padding-top:0; text-align:center; font:600 14px/1.6 var(--pb-ui); color:var(--pb-faint); display:block; }
.plan-text.is-muted { color:var(--pb-muted); }
.plan-key { margin:14px 0 0; font:12.5px var(--pb-ui); color:var(--pb-faint); }
.journey-index a.is-current { font-weight:600; color:var(--pb-ink); border-left:2px solid var(--pb-ink); margin-left:-12px; padding-left:10px; }
.journey-topic-head { padding:18px 0 10px; }
.journey-feed .feed-item:first-child { border-top:none; padding-top:14px; }
.listing-hero { padding:40px 0 8px; }
.listing-tagline { font:italic 15.5px var(--pb-serif); color:var(--pb-muted); }
.feed-item { padding:32px 0; border-top:1px solid var(--pb-line-soft); }
.feed-item:last-child { border-bottom:1px solid var(--pb-line-soft); }
.feed-item--change { padding:24px 0; }
.feed-meta { display:flex; align-items:baseline; gap:8px; font:500 12.5px var(--pb-ui); color:var(--pb-faint); margin-bottom:12px; flex-wrap:wrap; }
.feed-date { font-weight:600; color:var(--pb-ink); }
.feed-meta-right { margin-left:auto; display:inline-flex; gap:6px; align-items:baseline; }
.feed-change-link { font-weight:600; text-decoration:none; }
.clip-caption { margin:9px 0 0; font:12.5px/1.5 var(--pb-ui); color:var(--pb-muted); }
.feed-journal { display:flex; gap:20px; align-items:flex-start; }
.feed-journal-text { flex:1; min-width:0; }
.feed-journal-text h2 { margin:0 0 6px; font:600 19px var(--pb-serif); }
.feed-journal-text h2 a { color:var(--pb-ink); text-decoration:none; }
.feed-journal-text h2 a:hover { color:var(--pb-coral); }
.feed-journal-text p { margin:0; font:15.5px/1.5 var(--pb-serif); color:var(--pb-muted); }
.feed-journal-thumb { flex:none; width:150px; }
.feed-journal-thumb img { width:150px; height:100px; object-fit:cover; border-radius:4px; display:block; border:1px solid var(--pb-line); }
.feed-entry-title { margin:2px 0 14px; font:600 19px var(--pb-serif); }
.feed-entry-title a { color:var(--pb-ink); text-decoration:none; }
.feed-entry-title a:hover { color:var(--pb-coral); }
.feed-entry-body p { font-size:15.5px; }
/* Full-bleed blocks stay inside the feed column */
.journey-feed .post-image--full-bleed { position:static; left:auto; right:auto; width:auto; margin-left:0; margin-right:0; }
.journey-feed .post-image--full-bleed img { border-radius:4px; }
.feed-item .ctitle { margin:0; font:15.5px/1.5 var(--pb-serif); color:var(--pb-ink); }
.feed-item .cwhy { margin:4px 0 0; font:13px/1.5 var(--pb-ui); color:var(--pb-faint); }

/* ── Filter chips ── */
.filter-row { display:flex; flex-wrap:wrap; gap:8px; }
.filter-chip { font:500 13px var(--pb-ui); color:var(--pb-mid); border:1px solid #d7dce0; border-radius:999px; padding:4px 14px; text-decoration:none; }
.filter-chip:hover { color:var(--pb-ink); border-color:var(--pb-faint); }
.filter-chip.is-active { color:#fff; background:var(--pb-ink); border-color:var(--pb-ink); }

/* ── The plan (overview, direction B) ── */
.plan-layout { display:grid; grid-template-columns:230px minmax(0,720px); gap:80px; justify-content:center; padding:44px 56px 64px; }
.plan-index { position:sticky; top:24px; align-self:start; display:flex; flex-direction:column; gap:2px; padding-top:64px; }
.plan-index a { font:500 13px/2.1 var(--pb-ui); color:var(--pb-muted); text-decoration:none; display:inline-flex; align-items:center; gap:6px; }
.plan-index a:hover { color:var(--pb-ink); }
.topic-section { display:flex; flex-direction:column; gap:8px; padding:26px 0; border-top:1px solid var(--pb-line); scroll-margin-top:24px; }
.topic-section-head { display:flex; justify-content:space-between; align-items:baseline; gap:12px; }
.topic-section .pb-bullets { margin:6px 0 4px; }
.topic-detail { border-top:1px dashed var(--pb-line); margin-top:8px; padding-top:14px; }
.topic-detail .open-line { margin:8px 0 0; font:13px var(--pb-ui); color:var(--pb-muted); }
.topic-locked { font:15.5px/1.45 var(--pb-serif); color:var(--pb-muted); font-style:italic; }

/* ── Topic page ── */
.topic-layout { display:grid; grid-template-columns:minmax(0,760px) 300px; gap:88px; justify-content:center; padding:44px 56px 64px; }
.topic-titlerow { display:flex; align-items:baseline; gap:16px; flex-wrap:wrap; }
.topic-byline { margin:10px 0 0; font:13px var(--pb-ui); color:var(--pb-faint); }
.topic-main h2 { margin:40px 0 12px; font:600 19px var(--pb-serif); color:var(--pb-ink); }
.topic-figures { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.pb-figure { margin:0; }
.pb-figure img { width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:4px; display:block; border:1px solid var(--pb-line); }
.pb-figure figcaption { margin-top:8px; font:12.5px/1.5 var(--pb-ui); color:var(--pb-muted); }
.topic-side { display:flex; flex-direction:column; gap:28px; padding-top:78px; }
.rest-item { border-left:2px solid var(--pb-line); padding-left:14px; }
.rest-item a { font:600 13px var(--pb-ui); text-decoration:none; }
.rest-item p { margin:3px 0 0; font:15.5px/1.4 var(--pb-serif); color:var(--pb-body); }
.glossary-card { background:var(--pb-card); border:1px solid var(--pb-line); border-radius:6px; padding:16px 18px; }
.glossary-card p { margin:0; font:13px/1.6 var(--pb-ui); color:var(--pb-muted); }
.glossary-card b { color:var(--pb-ink); font-weight:600; }

/* ── Changes log ── */
.changes-wrap { max-width:1000px; margin:0 auto; padding:44px 56px 64px; }
.changes-head { display:grid; grid-template-columns:70px 110px 130px 1fr auto; gap:0 22px; align-items:baseline; padding:14px 0 10px; border-bottom:1px solid var(--pb-line); font:500 12.5px var(--pb-ui); color:var(--pb-faint); letter-spacing:.04em; text-transform:uppercase; }
.change-row { display:grid; grid-template-columns:70px 110px 130px 1fr auto; gap:0 22px; align-items:baseline; padding:20px 0; border-bottom:1px solid var(--pb-line-soft); }
.change-row .cid { font:600 13px var(--pb-ui); text-decoration:none; }
.change-row .cmeta { font:13px var(--pb-ui); color:var(--pb-muted); }
.change-row .ctitle { margin:0; font:15.5px/1.5 var(--pb-serif); color:var(--pb-ink); }
.change-row .cwhy { margin:4px 0 0; font:13px/1.5 var(--pb-ui); color:var(--pb-faint); }

/* ── Plans and renders ── */
.plans-wrap { max-width:1180px; margin:0 auto; padding:44px 56px 72px; }
.plans-wrap h2 { margin:0 0 18px; font:600 19px var(--pb-serif); color:var(--pb-ink); }
.plans-grid { display:grid; grid-template-columns:1fr 1fr; gap:28px; margin-bottom:52px; }
.plans-grid .pb-figure img { aspect-ratio:auto; }
.plans-grid .pb-figure figcaption { margin-top:9px; }

/* ── Journal ── */
.journal-wrap { max-width:1180px; margin:0 auto; padding:44px 56px 72px; }
.journal-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin-top:34px; }
.journal-card { display:flex; flex-direction:column; gap:12px; }
.journal-card img, .journal-card .card-noimg { width:100%; aspect-ratio:3/2; object-fit:cover; border-radius:4px; display:block; background:var(--pb-line-soft); border:1px solid var(--pb-line); }
.journal-card .card-meta { display:flex; align-items:center; gap:10px; font:500 12.5px var(--pb-ui); color:var(--pb-faint); }
.journal-card .card-meta .meta-right { margin-left:auto; }
.journal-card h2 { margin:0; font:600 19px var(--pb-serif); }
.journal-card h2 a { color:var(--pb-ink); text-decoration:none; }
.journal-card h2 a:hover { color:var(--pb-coral); }
.journal-card .card-excerpt { margin:0; font:15.5px/1.5 var(--pb-serif); color:var(--pb-muted); }

/* ── Journal entry ── */
.entry-wrap { max-width:680px; margin:0 auto; padding:48px 24px 72px; }
.entry-meta { display:flex; align-items:center; gap:10px; font:500 12.5px var(--pb-ui); color:var(--pb-faint); flex-wrap:wrap; }
.entry-meta .meta-right { margin-left:auto; display:inline-flex; align-items:center; gap:5px; }
.entry-title { margin:14px 0 28px; font:600 32px/1.2 var(--pb-serif); color:var(--pb-ink); }
.entry-nav { display:flex; justify-content:space-between; margin-top:44px; padding-top:20px; border-top:1px solid var(--pb-line); font:500 13px var(--pb-ui); }
.entry-nav a { text-decoration:none; }

/* Post body blocks (rendered from block JSON) */
.post-body h2 { margin:2.2em 0 .6em; font:600 19px var(--pb-serif); color:var(--pb-ink); }
.post-body p { margin:0 0 18px; font:15.5px/1.7 var(--pb-serif); color:var(--pb-body); }
.post-image { margin:0 0 32px; }
.post-image img, .post-image picture { display:block; max-width:100%; height:auto; border-radius:4px; }
.post-image figcaption { margin-top:9px; font:12.5px/1.5 var(--pb-ui); color:var(--pb-muted); }
.post-image--full-bleed { position:relative; left:50%; right:50%; width:100vw; margin-left:-50vw; margin-right:-50vw; }
.post-image--full-bleed img { border-radius:0; width:100%; }
.post-image--full-bleed figcaption { text-align:center; padding:0 24px; }
.post-image--lead img { width:100%; }
.post-gallery { margin:0 0 32px; }
.post-gallery .gallery-grid { display:grid; gap:6px; }
.post-gallery--two-up .gallery-grid { grid-template-columns:repeat(2,1fr); }
.post-gallery--three-up .gallery-grid { grid-template-columns:repeat(3,1fr); }
.post-gallery--masonry .gallery-grid { display:block; columns:2; column-gap:6px; }
.gallery-item { overflow:hidden; border-radius:4px; aspect-ratio:4/3; }
.gallery-item picture { display:block; width:100%; height:100%; }
.gallery-item img { display:block; width:100%; height:100%; object-fit:cover; }
.post-gallery--masonry .gallery-item { aspect-ratio:auto; break-inside:avoid; margin-bottom:6px; }
.post-gallery--masonry .gallery-item picture { height:auto; }
.post-gallery--masonry .gallery-item img { height:auto; object-fit:initial; }
.post-gallery figcaption { margin-top:9px; font:12.5px/1.5 var(--pb-ui); color:var(--pb-muted); }
.post-quote { margin:0 0 32px; padding:4px 0 4px 22px; border-left:2px solid var(--pb-ink); }
.post-quote p { font-style:italic; font-size:17px; color:var(--pb-ink); margin:0 0 .4em; }
.post-quote cite { font:12.5px var(--pb-ui); color:var(--pb-faint); font-style:normal; }
hr.post-divider { border:none; border-top:1px solid var(--pb-line); margin:36px auto; width:120px; }
.post-youtube { margin:0 0 32px; }
.youtube-facade { position:relative; padding-top:56.25%; background-size:cover; background-position:center; border-radius:4px; cursor:pointer; }
.youtube-play { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:64px; height:64px; background:rgba(43,53,66,.8); border:none; border-radius:50%; cursor:pointer; }
.youtube-play::after { content:''; display:block; width:0; height:0; border-style:solid; border-width:12px 0 12px 22px; border-color:transparent transparent transparent #fff; position:absolute; top:50%; left:52%; transform:translate(-50%,-50%); }
.post-youtube figcaption { margin-top:9px; font:12.5px/1.5 var(--pb-ui); color:var(--pb-muted); }

/* ── Timeline ── */
.tl-wrap { max-width:860px; margin:0 auto; padding:44px 56px 72px; }
.tl-phase { display:grid; grid-template-columns:170px 24px 1fr; gap:0 20px; }
.tl-when { text-align:right; padding-top:2px; font:500 13px var(--pb-ui); color:var(--pb-ink); }
.tl-spine { display:flex; flex-direction:column; align-items:center; }
.tl-dot { width:10px; height:10px; border-radius:999px; background:#33404d; margin-top:5px; flex:none; }
.tl-dot--open { background:none; border:1.5px solid var(--pb-faint); }
.tl-line { width:1px; flex:1; background:var(--pb-line); }
.tl-body { padding-bottom:40px; }
.tl-body h2 { margin:0 0 8px; font:600 19px var(--pb-serif); color:var(--pb-ink); }
.tl-body .pb-bullets { gap:5px; }

/* ── Clip groups (nice things) ── */
.clip-group { padding:20px 0; border-top:1px solid var(--pb-line); }
.clip-group:last-of-type { border-bottom:1px solid var(--pb-line); }
.clip-group-head { display:flex; align-items:baseline; gap:8px; font:500 12.5px var(--pb-ui); color:var(--pb-faint); margin-bottom:12px; }
.clip-group-head .clip-date { color:var(--pb-ink); font-weight:600; }
.clip-topic { color:var(--pb-faint); text-decoration:none; }
.clip-topic:hover { color:var(--pb-coral); }
.clip-tag { font:500 11.5px var(--pb-ui); color:var(--pb-mid); border:1px solid #d7dce0; border-radius:999px; padding:1px 9px; text-decoration:none; margin-right:2px; }
.clip-tag:hover { color:var(--pb-ink); border-color:var(--pb-faint); }
.clip-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.clip-grid--two { grid-template-columns:repeat(2,1fr); }
.clip-grid--one { grid-template-columns:1fr; }
.clip-item img { aspect-ratio:4/3; }
.clip-grid--inspiration .clip-item img { aspect-ratio:1/1; }
.clip-grid--one .clip-item img { aspect-ratio:16/9; object-fit:cover; }
.clip-grid--plan .clip-item img, .clip-grid--one.clip-grid--plan .clip-item img { aspect-ratio:auto; max-height:620px; object-fit:contain; background:var(--pb-card); }

/* ── Lately (plan page activity strip) ── */
.lately-list { display:flex; flex-direction:column; }
.lately-row { display:flex; align-items:baseline; gap:14px; padding:7px 0; border-top:1px solid var(--pb-line-soft); }
.lately-row:first-child { border-top:none; }
.lately-date { font:500 12.5px var(--pb-ui); color:var(--pb-faint); width:52px; flex:none; }
.lately-kind { font:600 10.5px var(--pb-ui); text-transform:uppercase; letter-spacing:.05em; color:var(--pb-faint); width:56px; flex:none; }
.lately-label { font:500 13px var(--pb-ui); color:var(--pb-ink); text-decoration:none; }
.lately-label:hover { color:var(--pb-coral); }

/* ── Static pages / errors ── */
.static-article { max-width:680px; margin:0 auto; padding:48px 24px 80px; }
.static-article h1 { font:600 32px var(--pb-serif); color:var(--pb-ink); margin-bottom:1.2rem; }
.static-article p { margin-bottom:1.1em; font:15.5px/1.7 var(--pb-serif); }
.error-page { max-width:480px; margin:80px auto; padding:0 24px; }
.error-page h1 { font:600 19px var(--pb-serif); color:var(--pb-ink); margin-bottom:.5rem; }
.error-page p { font:15.5px/1.6 var(--pb-serif); color:var(--pb-muted); }

/* ── Lightbox ── */
#lightbox { position:fixed; inset:0; z-index:9999; display:flex; align-items:center; justify-content:center; opacity:0; pointer-events:none; transition:opacity .2s; }
#lightbox.is-open { opacity:1; pointer-events:all; }
.lb-backdrop { position:absolute; inset:0; background:rgba(23,29,37,.94); }
.lb-stage { position:relative; z-index:1; max-width:90vw; max-height:90vh; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; }
.lb-img { display:block; max-width:90vw; max-height:85vh; object-fit:contain; border-radius:4px; }
.lb-close { position:absolute; top:16px; right:20px; z-index:2; background:none; border:none; color:#fff; font-size:1.5rem; line-height:1; cursor:pointer; opacity:.65; padding:6px; }
.lb-close:hover { opacity:1; }
.lb-prev, .lb-next { position:absolute; top:50%; transform:translateY(-50%); z-index:2; background:none; border:none; color:#fff; font-size:3rem; line-height:1; cursor:pointer; opacity:.55; padding:20px 16px; transition:opacity .15s; }
.lb-prev { left:0; } .lb-next { right:0; }
.lb-prev:hover, .lb-next:hover { opacity:1; }
.lb-caption { color:rgba(255,255,255,.78); font:13px/1.45 var(--pb-ui); text-align:center; max-width:min(600px, 84vw); margin:0; }

/* ── Mobile ── */
@media (max-width:900px) {
    .pb-header { padding:16px 20px; align-items:center; }
    .pb-nav { gap:16px; flex-wrap:wrap; }
    .pb-footer { padding:24px 20px; }
    .plan-layout { display:block; padding:28px 20px 40px; }
    .plan-index { display:none; }
    .topic-section { border:1px solid var(--pb-line); border-radius:6px; padding:18px 20px; margin-bottom:14px; }
    .topic-section + .topic-section { border-top:1px solid var(--pb-line); }
    .topic-layout { display:block; padding:26px 20px 48px; }
    .topic-side { padding-top:36px; }
    .topic-figures { grid-template-columns:1fr; }
    .changes-wrap, .plans-wrap, .journal-wrap, .tl-wrap { padding:28px 20px 48px; }
    .changes-head { display:none; }
    .change-row { grid-template-columns:1fr auto; gap:4px 16px; }
    .change-row .cid { grid-row:1; }
    .plans-grid { grid-template-columns:1fr; }
    .journal-grid { grid-template-columns:1fr; }
    .journey-wrap { padding:0 16px 48px; }
    .journey-layout { display:block; padding:28px 16px 48px; }
    .journey-index { position:static; display:flex; flex-direction:row; flex-wrap:wrap; gap:2px 14px; padding-top:0; margin-bottom:20px; }
    .journey-index .pb-sidehead { width:100%; margin-bottom:4px; }
    .feed-journal { flex-direction:column-reverse; }
    .feed-journal-thumb, .feed-journal-thumb img { width:100%; height:auto; }
    .entry-wrap { padding:28px 20px 48px; }
    .tl-phase { grid-template-columns:16px 1fr; }
    .tl-when { grid-column:2; text-align:left; padding-bottom:6px; }
    .tl-spine { grid-column:1; grid-row:1 / span 2; }
    .tl-body { grid-column:2; }
    .clip-grid { grid-template-columns:1fr 1fr; }
    .post-gallery--three-up .gallery-grid { grid-template-columns:1fr 1fr; }
    .post-gallery--masonry .gallery-grid { columns:1; }
}

/* ── Print ── */
@media print {
    .pb-header, .pb-footer, .entry-nav, #lightbox, .youtube-play { display:none !important; }
    @page { margin:20mm 18mm; }
    body { background:#fff; color:#000; font-size:11pt; line-height:1.6; }
    .entry-wrap, .topic-layout, .changes-wrap, .tl-wrap, .plans-wrap { max-width:100%; padding:0; margin:0; display:block; }
    .entry-title, .pb-title { font-size:22pt; margin-bottom:6pt; }
    .post-body p { font-size:11pt; margin:0 0 9pt; orphans:3; widows:3; }
    .post-image, .post-gallery, .pb-figure { break-inside:avoid; margin:12pt 0; }
    .post-image--full-bleed { margin-left:0; margin-right:0; left:0; width:100%; }
    .post-image img { border-radius:0; }
    .post-youtube .youtube-facade { display:none; }
    .post-youtube::before { content:"Video: https://youtu.be/" attr(data-video-id); font-size:9pt; color:#555; display:block; }
    a[href]::after { content:" (" attr(href) ")"; font-size:8pt; color:#555; }
    .pb-nav a::after, .entry-nav a::after, .filter-chip::after { content:none; }
    h1, h2, h3 { break-after:avoid; }
}
