.pulse-glow {
  color: #00bfff;
  text-shadow: 0 0 8px rgba(0, 191, 255, 0.158);
  animation: pulseGlow 2.5s ease-in-out infinite;
}

/* ==== Blog Post Styles ==== */
#post{
  padding-top: var(--space-md);
  padding-bottom: var(--space-lg);
  overflow: hidden;
}

/* Post container */
.post{
  max-width: 850px;
  margin: 0 auto;
  background: var(--bg-colour-2);
  box-shadow: var(--shadow);
  border-radius: 8px;
  overflow: hidden;
}

/* Header */
.post-header{
  padding: clamp(1rem, 2.5vw, 1.5rem);
  background: var(--bg-colour-1);
  border-bottom: 1px solid rgba(0,0,0,.06);
}

.post-title{
  margin: 0 0 .35rem 0;
  text-align: left;
}

.post-subtitle{
  margin: 0 0 .75rem 0;
  color: var(--text-colour-1);
  opacity: .9;
}

.post-meta{
  display: flex; 
  flex-wrap: wrap;
  gap: .5rem .65rem;
  align-items: center; 
  font-size: .95rem;
}

.post-category{
  color: var(--main-brand-blue);
  text-decoration: none;
  font-weight: 600;
}
.post-meta .dot{ 
  opacity: .5; 
}

/* Hero */
.post-hero{
  margin: 0; 
  background: var(--bg-colour-2);
}

.post-hero img{
  display: block; width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  background: linear-gradient(180deg,#9aa3ad33,#6b728033);
}

.post-hero figcaption{
  font-size: .9rem; opacity: .75;
  padding: .5rem clamp(1rem, 2.5vw, 1.5rem);
}

.post-layout{
  display: grid;
  grid-template-columns: 1fr;       /* mobile */
  gap: clamp(1rem, 2vw, 1.5rem);
  padding: clamp(1rem, 2.5vw, 1.5rem);
  background: var(--bg-colour-2);
}

/* Body content */
.post-body h2{ 
  margin-top: 1.4rem;
  margin-bottom: 0.5rem;
  color: var(--main-brand-blue);
}
.post-body h3{ 
  margin-top: .75rem;
  margin-bottom: 0.5rem; 
}
.post-body p{ 
  color: var(--text-colour-1); 
  opacity: .95;
  padding-bottom: 20px;
}

.post-body ul, .post-body ol{ 
  padding-left: 1.2rem; 
}

.post-body blockquote{
  margin: 1rem 0;
  padding: .9rem 1rem;
  border-left: 4px solid var(--main-brand-blue);
  background: var(--bg-colour-1);
  border-radius: 6px;
}

.post-image{
  margin: 1rem 0;
  background: var(--bg-colour-1);
  border: 1px solid rgba(0,0,0,.06);
  border-radius: 8px; overflow: hidden;
}

.post-image img{
  display:block; 
  width:100%; 
  aspect-ratio: 16 / 9; 
  object-fit: cover;
  background: linear-gradient(180deg,#9aa3ad33,#6b728033);
}

.post-image figcaption{ 
  padding:.5rem .75rem; 
  font-size:.9rem; 
  opacity:.75; 
}

/* Callouts */
.post-callout{
  margin: 1rem 0;
  padding: .9rem 1rem;
  border-radius: 8px;
  border: 1px solid rgba(0,0,0,.06);
}
.post-callout.note{ 
  background: rgba(0,191,255,.08); 
}
.post-callout.warning{ 
  background: rgba(255,165,0,.11); 
}

/* Footer */
.post-footer{
  border-top: 1px solid rgba(0,0,0,.06);
  background: var(--bg-colour-1);
  padding: clamp(1rem, 2.5vw, 1.5rem);
}
.author-card{
  display: flex; 
  gap: .8rem; 
  align-items: center; 
}
.author-avatar{
  width: 40px; 
  height: 40px; 
  border-radius: 50%;
  background: linear-gradient(180deg,#9aa3ad33,#6b728033);
  flex: 0 0 40px;
}
.author-name{ 
  margin: 0 0 .15rem 0; 
}

.post-nav{
  display: flex; justify-content: space-between; gap: .6rem; flex-wrap: wrap;
}

/* Code */
.code-block{
  margin: 1rem 0;
  padding: .85rem 1rem;
  background: #0b0b0b15;
  border-radius: 8px;
  overflow: auto;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size: .95rem;
}
