/* ============================================================
   ReadyForTheNet.org — site.css
   Tom Golway personal brand site
   Palette: deep navy, teal accent, warm off-white, gold highlight
   ============================================================ */

/* --- Reset & base ----------------------------------------- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  /* Palette */
  --navy:        #0C1E35;
  --navy-mid:    #132A47;
  --teal:        #1D9E75;
  --teal-dark:   #0F6E56;
  --teal-light:  #E1F5EE;
  --teal-border: #9FE1CB;
  --gold:        #C9A84C;
  --white:       #FAF8F4;
  --off-white:   #F2EFE9;
  --bg-chrome:   #EDE9E2;
  --border:      #E2E6EC;
  --border-mid:  #CBD2DC;
  --text-primary:   #1A2333;
  --text-secondary: #5A6678;
  --text-muted:     #8A97A8;

  /* Type */
  --font-display: Georgia, 'Times New Roman', serif;
  --font-body:    -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
  --font-mono:    'Courier New', Courier, monospace;

  /* Spacing */
  --page-px: 40px;
  --section-gap: 64px;

  /* Radii */
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 12px;

  /* Transitions */
  --ease: 0.18s ease;
}

html { font-size: 16px; scroll-behavior: smooth; }

body {
  font-family: var(--font-body);
  color: var(--text-primary);
  background: var(--white);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  padding-bottom: 60px;
  padding-top: 60px;
}

img { max-width: 100%; display: block; }
a { color: var(--teal-dark); text-decoration: none; }
a:hover { text-decoration: underline; }

/* --- Utility ---------------------------------------------- */
.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
.eyebrow { font-size:11px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--teal); }
.section-divider { border:none; border-top:1px solid var(--border); margin: var(--section-gap) 0; }
.tag {
  display:inline-block; font-size:11px; padding:3px 10px;
  border:1px solid var(--border); border-radius:20px;
  color:var(--text-secondary); background:var(--white);
}
.tag.green { background:var(--teal-light); color:var(--teal-dark); border-color:var(--teal-border); }
.tag.gold { background:#FBF4E3; color:#8A6420; border-color:#E8D4A0; }

/* --- Buttons ---------------------------------------------- */
.btn {
  display:inline-flex; align-items:center; gap:7px;
  font-size:13px; font-family:var(--font-body);
  padding:9px 20px; border-radius:var(--radius-md);
  border:1px solid transparent; cursor:pointer;
  transition:background var(--ease), border-color var(--ease), color var(--ease);
  text-decoration:none; white-space:nowrap;
}
.btn-primary { background:var(--teal-dark); color:var(--white); border-color:var(--teal-dark); }
.btn-primary:hover { background:#0A5843; border-color:#0A5843; text-decoration:none; color:var(--white); }
.btn-secondary { background:var(--white); color:var(--text-primary); border-color:var(--border-mid); }
.btn-secondary:hover { border-color:var(--teal); color:var(--teal-dark); text-decoration:none; }
.btn-ghost { background:transparent; color:var(--teal-dark); border-color:transparent; padding-left:0; padding-right:0; }
.btn-ghost:hover { text-decoration:underline; }
.btn-sm { font-size:12px; padding:6px 14px; }

/* --- Navigation ------------------------------------------- */
.site-nav {
  position:fixed; top:0; left:0; right:0; z-index:100;
  display:flex; align-items:center; justify-content:space-between;
  padding:0 var(--page-px);
  height:60px;
  background:var(--bg-chrome);
  border-bottom:1px solid var(--border-mid);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}
.nav-brand {
  font-family:var(--font-display);
  font-size:30px; font-weight:700;
  color:var(--navy); letter-spacing:.01em;
  text-decoration:none;
  flex-shrink:0;
  display:flex; align-items:center; gap:15px;
}
.nav-brand img {
  height:36px; width:36px; object-fit:cover;
  border-radius:4px; display:block; flex-shrink:0;
}
.nav-brand span { color:var(--teal); }
.nav-links { display:flex; gap:4px; }
.nav-links a {
  font-size:13px; color:var(--text-secondary);
  padding:6px 12px; border-radius:var(--radius-sm);
  transition:color var(--ease), background var(--ease);
  text-decoration:none;
}
.nav-links a:hover { color:var(--text-primary); background:rgba(0,0,0,0.05); }
.nav-links a.active { color:var(--teal-dark); font-weight:500; }
.nav-cta { flex-shrink:0; }

/* Mobile nav toggle (hidden on desktop) */
.nav-toggle {
  display:none; background:none; border:none; cursor:pointer;
  padding:6px; color:var(--text-primary);
}
.nav-toggle svg { display:block; }
.nav-mobile {
  display:none; position:fixed; top:60px; left:0; right:0; bottom:0;
  background:var(--white); z-index:99; overflow-y:auto;
  padding:24px var(--page-px);
  flex-direction:column; gap:4px;
  border-top:1px solid var(--border);
}
.nav-mobile.open { display:flex; }
.nav-mobile a {
  font-size:16px; color:var(--text-primary); padding:12px 0;
  border-bottom:1px solid var(--border); text-decoration:none;
}
.nav-mobile a.active { color:var(--teal-dark); font-weight:500; }

/* --- Page wrapper ----------------------------------------- */
.page-wrap { max-width:1100px; margin:0 auto; padding:0 var(--page-px); }
.page-wrap-wide { max-width:1260px; margin:0 auto; padding:0 var(--page-px); }

/* --- Page header (inner pages) ---------------------------- */
.page-header {
  padding:52px var(--page-px) 40px;
  border-bottom:1px solid var(--border);
  background:var(--white);
}
.page-header .eyebrow { margin-bottom:10px; }
.page-header h1 {
  font-family:var(--font-display);
  font-size:clamp(24px,4vw,36px);
  font-weight:400; line-height:1.2;
  color:var(--navy); margin-bottom:12px;
}
.page-header p {
  font-size:15px; color:var(--text-secondary);
  line-height:1.75; max-width:580px;
}

/* --- Section titles --------------------------------------- */
.section-head {
  display:flex; align-items:baseline; justify-content:space-between;
  margin-bottom:24px;
}
.section-head h2 {
  font-family:var(--font-display);
  font-size:20px; font-weight:400; color:var(--navy);
}
.section-head a { font-size:13px; color:var(--teal-dark); }
.section-head a:hover { text-decoration:underline; }

/* --- Stat cards ------------------------------------------- */
.stat-grid { display:grid; grid-template-columns:repeat(4, 1fr); gap:12px; }
.stat-card {
  padding:18px 20px;
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  background:var(--off-white);
}
.stat-card .num {
  font-family:var(--font-display);
  font-size:28px; color:var(--navy); line-height:1;
}
.stat-card .label { font-size:12px; color:var(--text-secondary); margin-top:4px; }

/* --- Book cards ------------------------------------------- */
.books-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:16px; }
.book-card {
  border:1px solid var(--border); border-radius:var(--radius-lg);
  overflow:hidden; background:var(--white);
  transition:box-shadow var(--ease), transform var(--ease);
}
.book-card:hover { box-shadow:0 4px 20px rgba(0,0,0,0.09); transform:translateY(-2px); }
.book-spine {
  height:112px; display:flex; align-items:flex-end; padding:16px;
}
.book-spine-title { font-family:var(--font-display); font-size:14px; color:#fff; line-height:1.3; font-weight:400; }
.book-spine-sub { font-size:10px; color:rgba(255,255,255,.7); margin-top:3px; }
.book-body { padding:14px 16px 16px; }
.book-year { font-size:10px; color:var(--text-muted); text-transform:uppercase; letter-spacing:.07em; margin-bottom:5px; }
.book-desc { font-size:12px; color:var(--text-secondary); line-height:1.6; }
.book-link { margin-top:12px; }

/* --- Paper list items ------------------------------------- */
.paper-list { display:flex; flex-direction:column; gap:10px; }
.paper-item {
  display:flex; align-items:flex-start; gap:16px;
  padding:16px 18px;
  border:1px solid var(--border); border-radius:var(--radius-lg);
  background:var(--white);
  transition:border-color var(--ease);
}
.paper-item:hover { border-color:var(--teal-border); }
.paper-icon { font-size:20px; color:var(--teal); flex-shrink:0; margin-top:1px; }
.paper-title { font-size:14px; font-weight:500; color:var(--text-primary); margin-bottom:4px; line-height:1.4; }
.paper-meta { font-size:12px; color:var(--text-secondary); line-height:1.5; }
.paper-tags { margin-top:8px; display:flex; gap:6px; flex-wrap:wrap; }

/* --- Podcast cards ---------------------------------------- */
.podcast-list { display:flex; flex-direction:column; gap:14px; }
.pod-card {
  display:grid; grid-template-columns:80px 1fr auto;
  gap:20px; align-items:start;
  padding:20px 22px;
  border:1px solid var(--border); border-radius:var(--radius-lg);
  background:var(--white);
  transition:border-color var(--ease);
}
.pod-card:hover { border-color:var(--teal-border); }
.pod-thumb {
  width:80px; height:80px; border-radius:var(--radius-md);
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.pod-thumb svg { width:32px; height:32px; stroke:#fff; fill:none; stroke-width:1.5; }
.pod-ep { font-size:10px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--text-muted); margin-bottom:5px; }
.pod-title { font-size:14px; font-weight:500; color:var(--text-primary); margin-bottom:6px; line-height:1.4; }
.pod-desc { font-size:12px; color:var(--text-secondary); line-height:1.65; margin-bottom:10px; }
.pod-tags { display:flex; gap:6px; flex-wrap:wrap; }
.pod-actions { display:flex; flex-direction:column; gap:8px; align-items:flex-end; }
.pod-dur { font-size:11px; color:var(--text-muted); text-align:right; margin-top:2px; }

/* Platform strip */
.platforms-strip {
  display:flex; align-items:center; gap:16px; flex-wrap:wrap;
  padding:16px 20px; margin-top:8px;
  border:1px solid var(--border); border-radius:var(--radius-lg);
  background:var(--off-white);
}
.platforms-label { font-size:12px; color:var(--text-secondary); white-space:nowrap; }
.platform-btns { display:flex; gap:8px; flex-wrap:wrap; }
.platform-btn {
  font-size:11px; padding:5px 14px;
  border:1px solid var(--border-mid); border-radius:20px;
  color:var(--text-secondary); background:var(--white); cursor:pointer;
  transition:border-color var(--ease), color var(--ease);
}
.platform-btn:hover { border-color:var(--teal); color:var(--teal-dark); }

/* --- Badge rows (hero) ------------------------------------ */
.badge-row {
  display:flex; align-items:flex-start; gap:14px;
  padding:14px 16px;
  border:1px solid var(--border); border-radius:var(--radius-lg);
  background:var(--off-white);
}
.badge-icon { font-size:20px; color:var(--teal); flex-shrink:0; margin-top:1px; }
.badge-text { font-size:12px; color:var(--text-secondary); line-height:1.55; }
.badge-text strong { font-weight:500; color:var(--text-primary); }

/* --- Speaking cards --------------------------------------- */
.speaking-card {
  padding:16px 18px; margin-bottom:10px;
  border:1px solid var(--border); border-radius:var(--radius-lg);
  background:var(--off-white);
}
.speaking-event { font-size:13px; font-weight:500; color:var(--text-primary); margin-bottom:3px; }
.speaking-detail { font-size:12px; color:var(--text-secondary); line-height:1.5; }

/* --- Blog items ------------------------------------------- */
.blog-items { display:flex; flex-direction:column; }
.blog-item {
  padding:16px 0;
  border-bottom:1px solid var(--border);
}
.blog-item:last-child { border-bottom:none; }
.blog-date { font-size:10px; color:var(--text-muted); text-transform:uppercase; letter-spacing:.07em; margin-bottom:5px; }
.blog-title { font-size:14px; font-weight:500; color:var(--text-primary); margin-bottom:4px; line-height:1.4; }
.blog-title a { color:inherit; }
.blog-title a:hover { color:var(--teal-dark); text-decoration:none; }
.blog-excerpt { font-size:12px; color:var(--text-secondary); line-height:1.6; }

/* --- Patent cards ----------------------------------------- */
.patent-card {
  padding:20px 22px;
  border:1px solid var(--border); border-radius:var(--radius-lg);
  background:var(--white); margin-bottom:12px;
  transition:border-color var(--ease);
}
.patent-card:hover { border-color:var(--teal-border); }
.patent-num { font-family:var(--font-mono); font-size:11px; color:var(--text-muted); margin-bottom:6px; }
.patent-title { font-size:15px; font-weight:500; color:var(--text-primary); margin-bottom:6px; }
.patent-desc { font-size:13px; color:var(--text-secondary); line-height:1.65; margin-bottom:10px; }
.patent-meta { display:flex; gap:10px; flex-wrap:wrap; }

/* --- CTA strip -------------------------------------------- */
.cta-strip {
  background:var(--navy); color:var(--white);
  padding:52px var(--page-px); text-align:center;
}
.cta-strip h2 {
  font-family:var(--font-display);
  font-size:clamp(20px,3vw,28px); font-weight:400;
  color:var(--white); margin-bottom:10px;
}
.cta-strip p { font-size:14px; color:rgba(255,255,255,.72); max-width:460px; margin:0 auto 24px; line-height:1.75; }
.cta-strip .btn-primary { background:var(--teal); border-color:var(--teal); }
.cta-strip .btn-primary:hover { background:var(--teal-dark); border-color:var(--teal-dark); }
.cta-strip .btn-secondary { border-color:rgba(255,255,255,.35); color:var(--white); background:transparent; }
.cta-strip .btn-secondary:hover { border-color:rgba(255,255,255,.7); }
.cta-actions { display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }

/* --- Footer ----------------------------------------------- */
.site-footer {
  position:fixed; bottom:0; left:0; right:0; z-index:90;
  padding:14px var(--page-px);
  border-top:1px solid var(--border-mid);
  display:flex; align-items:center; justify-content:space-between;
  flex-wrap:wrap; gap:16px;
  background:var(--bg-chrome);
}
.footer-copy { font-family:var(--font-display); font-size:14px; color:var(--navy); }
.footer-links { display:flex; gap:20px; flex-wrap:wrap; }
.footer-links a { font-size:13px; color:var(--text-secondary); text-decoration:none; transition:color var(--ease); }
.footer-links a:hover { color:var(--teal-dark); }

/* --- About / profile layout ------------------------------- */
.about-grid { display:grid; grid-template-columns:280px 1fr; gap:48px; padding:48px 0; }
.about-sidebar {}
.about-avatar {
  width:160px; height:160px; border-radius:50%;
  background:linear-gradient(135deg,var(--navy-mid),#1D4E7A);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display); font-size:48px; color:#fff;
  margin-bottom:20px;
}
.about-name { font-family:var(--font-display); font-size:20px; color:var(--navy); margin-bottom:4px; }
.about-role { font-size:13px; color:var(--text-secondary); margin-bottom:16px; line-height:1.5; }
.about-socials { display:flex; flex-direction:column; gap:8px; }
.about-socials a {
  font-size:13px; color:var(--text-secondary);
  display:flex; align-items:center; gap:8px;
}
.about-socials a:hover { color:var(--teal-dark); }
.about-content h2 {
  font-family:var(--font-display); font-size:20px; font-weight:400;
  color:var(--navy); margin:32px 0 12px;
}
.about-content h2:first-child { margin-top:0; }
.about-content p { font-size:14px; color:var(--text-secondary); line-height:1.8; margin-bottom:12px; }
.about-content ul { font-size:14px; color:var(--text-secondary); line-height:1.8; padding-left:20px; margin-bottom:12px; }
.framework-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:20px 0; }
.framework-card {
  padding:16px; border:1px solid var(--border);
  border-radius:var(--radius-md); background:var(--off-white);
}
.framework-card h3 { font-size:13px; font-weight:500; color:var(--teal-dark); margin-bottom:4px; }
.framework-card p { font-size:12px; color:var(--text-secondary); line-height:1.55; }

/* --- Responsive ------------------------------------------- */
@media (max-width: 900px) {
  :root { --page-px: 24px; }
  .books-grid { grid-template-columns:1fr 1fr; }
  .stat-grid { grid-template-columns:1fr 1fr; }
  .about-grid { grid-template-columns:1fr; }
  .about-sidebar { display:flex; align-items:center; gap:24px; }
  .about-avatar { width:80px; height:80px; font-size:28px; margin-bottom:0; flex-shrink:0; }
  .pod-card { grid-template-columns:64px 1fr; }
  .pod-actions { display:none; }
}
@media (max-width: 640px) {
  .nav-links, .nav-cta { display:none; }
  .nav-toggle { display:block; }
  .books-grid { grid-template-columns:1fr; }
  .stat-grid { grid-template-columns:1fr 1fr; }
  .framework-grid { grid-template-columns:1fr; }
  .site-footer { flex-direction:column; text-align:center; }
  .footer-links { justify-content:center; }
}

/* --- Reduced motion --------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration:0.01ms !important; animation-duration:0.01ms !important; }
}

/* --- Filter sidebar (all pages) --------------------------- */
.page-layout {
  display:grid;
  grid-template-columns:220px 1fr;
  gap:0;
  min-height:calc(100vh - 60px);
}
.filter-sidebar {
  position:sticky;
  top:60px;
  height:calc(100vh - 60px);
  overflow-y:auto;
  padding:28px 20px;
  border-right:1px solid var(--border);
  background:var(--bg-chrome);
  flex-shrink:0;
}
.filter-sidebar-title {
  font-size:11px; font-weight:700;
  text-transform:uppercase; letter-spacing:.1em;
  color:var(--text-muted); margin-bottom:14px;
  padding-bottom:8px; border-bottom:1px solid var(--border);
}
.filter-group { margin-bottom:24px; }
.filter-group-label {
  font-size:11px; font-weight:600;
  text-transform:uppercase; letter-spacing:.08em;
  color:var(--text-muted); margin-bottom:8px; display:block;
}
.filter-btn {
  display:block; width:100%;
  font-size:13px; text-align:left;
  padding:7px 10px; margin-bottom:4px;
  border:1px solid transparent;
  border-radius:var(--radius-md);
  background:transparent; color:var(--text-secondary);
  cursor:pointer; transition:all var(--ease);
  font-family:var(--font-body);
}
.filter-btn:hover { background:var(--off-white); color:var(--text-primary); border-color:var(--border); }
.filter-btn.active { background:var(--teal-light); color:var(--teal-dark); border-color:var(--teal-border); font-weight:500; }
.page-content { padding:48px 40px; min-width:0; }

@media (max-width:860px) {
  .page-layout { grid-template-columns:1fr; }
  .filter-sidebar { display:none; }
  .page-content { padding:32px var(--page-px); }
}

/* --- Tabs (content pages) --------------------------------- */
.tab-bar {
  display:flex; gap:4px; margin-bottom:32px;
  border-bottom:1px solid var(--border);
}
.tab-btn {
  font-size:14px; padding:10px 20px; font-family:var(--font-body);
  border:none; background:none; cursor:pointer;
  color:var(--text-secondary); border-bottom:2px solid transparent;
  margin-bottom:-1px; transition:color var(--ease), border-color var(--ease);
}
.tab-btn:hover { color:var(--text-primary); }
.tab-btn.active { color:var(--teal-dark); border-bottom-color:var(--teal-dark); font-weight:500; }
.tab-panel { display:none; }
.tab-panel.active { display:block; }

/* --- Entry type labels ------------------------------------ */
.entry-label {
  display:inline-block; font-size:10px; font-weight:600;
  letter-spacing:.08em; text-transform:uppercase;
  padding:3px 10px; border-radius:20px; margin-bottom:8px;
}
/* Published */
.entry-label.book       { background:#D4E6F7; color:#0C447C; }
.entry-label.paper      { background:#C8EDE2; color:#085041; }
.entry-label.essay      { background:#F3E8FF; color:#6B21A8; }
/* Stream */
.entry-label.book-review { background:#FBF4E3; color:#8A6420; }
.entry-label.creative   { background:#E8F0FE; color:#2B5CB8; }
.entry-label.reflection { background:#F3E8FF; color:#6B21A8; }
/* Work in Progress */
.entry-label.ideas      { background:#FBF4E3; color:#8A6420; }
.entry-label.research   { background:#C8EDE2; color:#085041; }
.entry-label.development { background:#E1F5EE; color:#0F6E56; }
/* Blog */
.entry-label.ai         { background:#F3E8FF; color:#6B21A8; border:1px solid #D8B4FE; }
.entry-label.technology { background:#C8EDE2; color:#085041; border:1px solid #9FE1CB; }
.entry-label.science    { background:#D4E6F7; color:#0C447C; border:1px solid #A8CBF0; }
.entry-label.leadership { background:#FBF4E3; color:#8A6420; border:1px solid #E8D4A0; }
.entry-label.society    { background:#FFE8E8; color:#991B1B; border:1px solid #FCA5A5; }
.entry-label.philosophy { background:#E8F0FE; color:#2B5CB8; border:1px solid #AABFF7; }
/* IP */
.entry-label.cloud      { background:#E8F0FE; color:#2B5CB8; }
.entry-label.security   { background:#FFE8E8; color:#991B1B; }
.entry-label.blockchain { background:#F5E4BC; color:#8A6420; }
.entry-label.ai         { background:#F3E8FF; color:#6B21A8; }
/* Media */
.entry-label.podcast    { background:#D4E6F7; color:#0C447C; }
.entry-label.speaking   { background:#E1F5EE; color:#0F6E56; }

/* --- Stream / content entry format (all pages) ------------ */
.stream-entry {
  padding:28px 0;
  border-bottom:1px solid var(--border);
}
.stream-entry:first-child { padding-top:0; }
.stream-entry:last-child  { border-bottom:none; }
.entry-meta { display:flex; align-items:center; gap:10px; margin-bottom:12px; flex-wrap:wrap; }
.entry-date { font-size:11px; color:var(--text-muted); }
.entry-title {
  font-family:var(--font-display);
  font-size:20px; font-weight:400; color:var(--navy);
  line-height:1.35; margin-bottom:10px;
}
.entry-title a { color:inherit; text-decoration:none; }
.entry-title a:hover { color:var(--teal-dark); }
.entry-body { font-size:14px; color:var(--text-secondary); line-height:1.8; }
.entry-body p + p { margin-top:10px; }
.entry-footer { margin-top:16px; display:flex; align-items:center; gap:14px; }
.read-time { font-size:11px; color:var(--text-muted); }

/* --- Published works entry layout ------------------------- */
.published-entry {
  padding:28px 0;
  border-bottom:1px solid var(--border);
}
.published-entry:first-child { padding-top:0; }
.published-entry:last-child  { border-bottom:none; }
.published-top {
  display:grid;
  grid-template-columns:72px 1fr;
  gap:16px;
  align-items:start;
  margin-bottom:16px;
}
.published-cover {
  width:72px; flex-shrink:0;
  border-radius:var(--radius-md);
  overflow:hidden;
  box-shadow:0 2px 12px rgba(0,0,0,0.15);
}
.published-cover img {
  width:100%; height:auto; display:block;
}
.published-cover-placeholder {
  width:72px; height:96px;
  border-radius:var(--radius-md);
  display:flex; align-items:flex-end; padding:12px;
  box-shadow:0 2px 12px rgba(0,0,0,0.15);
}
.published-cover-placeholder span {
  font-family:var(--font-display);
  font-size:8px; color:#fff; line-height:1.3;
}
.published-meta { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin:6px 0 8px; }
.published-date { font-size:12px; color:var(--text-muted); }
.published-topics { display:flex; gap:6px; flex-wrap:wrap; margin:6px 0 12px; }
.published-desc { font-size:14px; color:var(--text-secondary); line-height:1.8; margin-bottom:14px; }
.published-desc p + p { margin-top:8px; }

@media (max-width:640px) {
  .published-top { grid-template-columns:60px 1fr; gap:12px; }
  .published-cover, .published-cover-placeholder { width:60px; }
  .published-cover-placeholder { height:80px; }
}

/* --- Two-column content page layout ----------------------- */
.content-layout {
  display:grid;
  grid-template-columns:260px 1fr;
  min-height:calc(100vh - 60px);
  align-items:start;
}
.content-sidebar {
  position:sticky;
  top:60px;
  height:calc(100vh - 60px);
  overflow-y:auto;
  padding:36px 28px 36px 40px;
  border-right:1px solid var(--border);
  background:var(--bg-chrome);
}
.content-sidebar .page-eyebrow {
  font-size:11px; font-weight:600; letter-spacing:.12em;
  text-transform:uppercase; color:var(--teal); margin-bottom:10px;
}
.content-sidebar h1 {
  font-family:var(--font-display);
  font-size:22px; font-weight:400; color:var(--navy);
  line-height:1.25; margin-bottom:12px;
}
.content-sidebar .page-desc {
  font-size:13px; color:var(--text-secondary);
  line-height:1.7; margin-bottom:28px;
}
.sidebar-nav { display:flex; flex-direction:column; gap:4px; }
.sidebar-nav-btn {
  display:block; width:100%; text-align:left;
  font-size:13px; font-family:var(--font-body);
  padding:8px 12px;
  border:1px solid transparent;
  border-radius:var(--radius-md);
  background:transparent; color:var(--text-secondary);
  cursor:pointer; transition:all var(--ease);
}
.sidebar-nav-btn:hover {
  background:var(--off-white);
  color:var(--text-primary);
  border-color:var(--border);
}
.sidebar-nav-btn.active {
  background:var(--teal-light);
  color:var(--teal-dark);
  border-color:var(--teal-border);
  font-weight:500;
}
.content-main {
  padding:36px 40px;
  min-width:0;
}
@media (max-width:860px) {
  .content-layout { grid-template-columns:1fr; }
  .content-sidebar {
    position:static; height:auto;
    border-right:none; border-bottom:1px solid var(--border);
    padding:24px var(--page-px);
  }
  .sidebar-nav { flex-direction:row; flex-wrap:wrap; }
  .content-main { padding:24px var(--page-px); }
}

/* --- Entry type badge (stream style) --------------------- */
.entry-type {
  display:inline-block;
  font-size:10px; font-weight:600; letter-spacing:.1em; text-transform:uppercase;
  padding:3px 10px; border-radius:20px;
}
.entry-type.book       { background:#D4E6F7; color:#0C447C; border:1px solid #A8CBF0; }
.entry-type.paper      { background:#C8EDE2; color:#085041; border:1px solid #9FE1CB; }
.entry-type.essay      { background:#F3E8FF; color:#6B21A8; border:1px solid #D8B4FE; }
.entry-type.book-review { background:#FBF4E3; color:#8A6420; border:1px solid #E8D4A0; }
.entry-type.creative   { background:#E8F0FE; color:#2B5CB8; border:1px solid #AABFF7; }
.entry-type.reflection { background:#F3E8FF; color:#6B21A8; border:1px solid #D8B4FE; }
.entry-type.ideas      { background:#FBF4E3; color:#8A6420; border:1px solid #E8D4A0; }
.entry-type.research   { background:#C8EDE2; color:#085041; border:1px solid #9FE1CB; }
.entry-type.development { background:#E1F5EE; color:#0F6E56; border:1px solid #9FE1CB; }
.entry-type.leadership { background:#D4E6F7; color:#0C447C; border:1px solid #A8CBF0; }
.entry-type.technology { background:#C8EDE2; color:#085041; border:1px solid #9FE1CB; }
.entry-type.governance { background:#FFE8E8; color:#991B1B; border:1px solid #FCA5A5; }
.entry-type.cloud      { background:#E8F0FE; color:#2B5CB8; border:1px solid #AABFF7; }
.entry-type.security   { background:#FFE8E8; color:#991B1B; border:1px solid #FCA5A5; }
.entry-type.blockchain { background:#F5E4BC; color:#8A6420; border:1px solid #E8D4A0; }
.entry-type.ai         { background:#F3E8FF; color:#6B21A8; border:1px solid #D8B4FE; }
.entry-type.podcast    { background:#D4E6F7; color:#0C447C; border:1px solid #A8CBF0; }
.entry-type.speaking   { background:#E1F5EE; color:#0F6E56; border:1px solid #9FE1CB; }

/* --- Concepts page: grouped sections ----------------------- */
.concepts-group-heading {
  font-family:var(--font-display);
  font-size:15px; font-weight:600; letter-spacing:.04em;
  text-transform:uppercase; color:var(--teal-dark);
  margin:40px 0 4px;
  padding-bottom:8px;
  border-bottom:2px solid var(--teal-border);
}
.concepts-group-heading:first-child { margin-top:0; }

.sidebar-nav-group-label {
  font-size:11px; font-weight:600; letter-spacing:.08em;
  text-transform:uppercase; color:var(--text-muted);
  margin:18px 0 6px; padding:0 12px;
}
.sidebar-nav-group-label:first-child { margin-top:0; }

/* Blog label colours */
.entry-type.ai         { background:#F3E8FF; color:#6B21A8; border:1px solid #D8B4FE; }
.entry-type.technology { background:#C8EDE2; color:#085041; border:1px solid #9FE1CB; }
.entry-type.science    { background:#D4E6F7; color:#0C447C; border:1px solid #A8CBF0; }
.entry-type.leadership { background:#FBF4E3; color:#8A6420; border:1px solid #E8D4A0; }
.entry-type.society    { background:#FFE8E8; color:#991B1B; border:1px solid #FCA5A5; }
.entry-type.philosophy { background:#E8F0FE; color:#2B5CB8; border:1px solid #AABFF7; }

/* --- Blog entries — tighter vertical spacing -------------- */
.blog-entry.stream-entry {
  padding:16px 0;
}
.blog-entry .entry-meta { margin-bottom:6px; }
.blog-entry .entry-title { font-size:17px; margin-bottom:6px; line-height:1.3; }
.blog-entry .entry-body  { font-size:13px; margin-bottom:8px; }
.blog-entry .entry-body p { margin:0; }
.blog-entry .entry-footer { margin-top:8px; }

/* --- Blog pagination panels ------------------------------- */
.blog-tab-panel { display:none; }
.blog-tab-panel.active { display:block; }

/* --- Podcast episode layout with image ------------------- */
.podcast-episode-layout {
  display:grid;
  grid-template-columns:120px 1fr;
  gap:20px;
  align-items:start;
  margin-top:8px;
}
.podcast-episode-image {
  width:120px; height:120px;
  border-radius:var(--radius-md);
  overflow:hidden;
  flex-shrink:0;
  box-shadow:0 2px 10px rgba(0,0,0,0.15);
}
.podcast-episode-image img {
  width:100%; height:100%; object-fit:cover; display:block;
}
.podcast-episode-thumb {
  /* gradient fallback when no image available */
}
@media (max-width:600px) {
  .podcast-episode-layout { grid-template-columns:80px 1fr; gap:14px; }
  .podcast-episode-image  { width:80px; height:80px; }
}

/* --- Blog inline Read more link --------------------------- */
.blog-read-more {
  display:inline;
  font-size:inherit;
  font-family:var(--font-body);
  font-weight:500;
  color:#fff;
  background:var(--teal);
  padding:1px 8px 2px;
  border-radius:4px;
  text-decoration:none;
  white-space:nowrap;
  margin-left:4px;
  vertical-align:baseline;
}
.blog-read-more:hover {
  background:var(--teal-dark);
  color:#fff;
}

/* --- Active nav link -------------------------------------- */
.site-nav .nav-active,
.nav-mobile .nav-active { color:var(--teal-dark); font-weight:600; }

/* --- About page bio bullet indentation -------------------- */
#about-bio ul {
  margin: 10px 0 16px 0;
  padding-left: 24px;
  list-style: disc;
}
#about-bio ul li {
  margin-bottom: 10px;
  line-height: 1.7;
  font-size: 14px;
  color: var(--text-secondary);
}
#about-bio h2, #about-bio h3 {
  color: var(--navy);
  font-family: var(--font-display);
}
#about-bio p {
  font-size: 14px;
  color: var(--text-secondary);
  line-height: 1.8;
  margin-bottom: 12px;
}

/* --- Contact page ----------------------------------------- */
.contact-page-wrap {
  max-width: 600px;
}
.contact-heading {
  font-family: var(--font-display);
  font-size: 28px;
  font-weight: 400;
  color: var(--navy);
  margin-bottom: 16px;
}
.contact-intro {
  font-size: 15px;
  color: var(--text-secondary);
  line-height: 1.8;
  margin-bottom: 40px;
}
.contact-form-styled {
  display: flex;
  flex-direction: column;
  gap: 28px;
}
.cfield {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.clabel {
  font-size: 14px;
  font-weight: 600;
  color: var(--navy);
  letter-spacing: 0.01em;
}
.clabel-note {
  font-weight: 400;
  color: var(--text-muted);
  font-size: 12px;
}
.cinput {
  width: 100%;
  padding: 14px 16px;
  font-size: 15px;
  font-family: var(--font-body);
  color: var(--text-primary);
  background: var(--white);
  border: 1.5px solid var(--border);
  border-radius: var(--radius-md);
  transition: border-color var(--ease), box-shadow var(--ease);
  box-sizing: border-box;
}
.cinput:focus {
  outline: none;
  border-color: var(--teal);
  box-shadow: 0 0 0 3px rgba(29,158,117,0.12);
}
.cinput::placeholder { color: var(--text-muted); }
textarea.cinput {
  resize: vertical;
  min-height: 160px;
  line-height: 1.7;
}
select.cinput { cursor: pointer; }
.cf-wordcount {
  font-size: 11px;
  color: var(--text-muted);
  text-align: right;
  margin-top: 4px;
}
.contact-submit {
  align-self: flex-start;
  padding: 14px 36px;
  font-size: 15px;
}

/* --- Contact form status messages ------------------------- */
.cf-status {
  margin-top: 16px;
  font-size: 14px;
  line-height: 1.6;
  padding: 12px 16px;
  border-radius: var(--radius-md);
  display: none;
}
.cf-status:not(:empty) { display: block; }
.cf-success {
  background: #C8EDE2;
  color: #085041;
  border: 1px solid #9FE1CB;
}
.cf-error {
  background: #FEE2E2;
  color: #B91C1C;
  border: 1px solid #FCA5A5;
}

/* --- Podcast inline audio player -------------------------- */
.podcast-inline-player {
  margin-top: 12px;
  padding: 12px 16px;
  background: var(--bg-chrome);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
}
.podcast-inline-player audio {
  width: 100%;
  border-radius: 6px;
  accent-color: var(--teal);
}
.podcast-play-btn {
  cursor: pointer;
  border: none;
}
