body {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Apple SD Gothic Neo", "Noto Sans KR", sans-serif;
}

/* ---- Profile sidebar ---- */
@media (min-width: 768px) {
  .sidebar-sticky { position: sticky; top: 2rem; }
}
.sidebar-avatar, .sidebar-avatar-fallback {
  width: 88px;
  height: 88px;
}
.sidebar-avatar { object-fit: cover; }
.sidebar-avatar-fallback {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto;
  background: var(--bs-primary);
  color: #fff;
  font-size: 2rem;
  font-weight: 700;
}
.sidebar-tagline { margin-top: .15rem; }

.sidebar-nav { display: flex; flex-direction: column; gap: .15rem; }
.sidebar-nav-link {
  display: flex;
  align-items: center;
  gap: .6rem;
  padding: .5rem .75rem;
  border-radius: .5rem;
  color: var(--bs-secondary-color);
  text-decoration: none;
}
.sidebar-nav-link .bi { font-size: 1.05em; width: 1.1em; text-align: center; }
.sidebar-nav-link .badge { margin-left: auto; }
.sidebar-nav-link:hover { background: var(--bs-tertiary-bg); color: var(--bs-body-color); }
.sidebar-nav-link.active {
  background: var(--bs-tertiary-bg);
  color: var(--bs-link-color);
  font-weight: 600;
}
.sidebar-nav-link.active .badge { color: var(--bs-link-color); }

.sidebar-social { display: flex; gap: 1rem; justify-content: center; }
.sidebar-social a { color: var(--bs-secondary-color); font-size: 1.2rem; }
.sidebar-social a:hover { color: var(--bs-body-color); }

/* ---- Top breadcrumb ---- */
.content-topbar { color: var(--bs-secondary-color); }
.content-topbar a:hover { color: var(--bs-body-color); }

/* ---- Search box (Pagefind) ---- */
.search-box {
  --pagefind-ui-scale: 0.8;
  --pagefind-ui-primary: var(--bs-body-color);
  --pagefind-ui-text: var(--bs-body-color);
  --pagefind-ui-background: var(--bs-body-bg);
  --pagefind-ui-border: var(--bs-border-color);
  --pagefind-ui-border-width: 1px;
  --pagefind-ui-border-radius: 2rem;
  --pagefind-ui-font: inherit;
  width: 100%;
  max-width: 260px;
  position: relative;
  z-index: 10;
}
.search-box .pagefind-ui__search-input { padding-left: 2.2rem; }
.search-box .pagefind-ui__search-clear { top: 0; }

/* Float results over the page instead of growing the topbar and pushing
   the content below it down. */
.search-box .pagefind-ui__drawer {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  margin-top: .5rem;
  background: var(--bs-body-bg);
  border: 1px solid var(--bs-border-color);
  border-radius: .75rem;
  padding: .75rem;
  box-shadow: 0 8px 24px rgba(0, 0, 0, .12);
  max-height: 70vh;
  overflow-y: auto;
}

/* ---- Post list / post meta ---- */
.post-item-title { color: var(--bs-link-color); }
.post-item-meta { display: flex; flex-direction: column; align-items: flex-start; gap: .35rem; }
.post-item-meta .bi { font-size: .9em; }
.post-item-meta-row { display: flex; flex-wrap: wrap; align-items: center; gap: .15rem .5rem; }

/* ---- Post content (raw HTML rendered from Notion blocks) ---- */
.post-content { margin-top: 1.5rem; }
.post-content > *:first-child { margin-top: 0; }
.post-content img { max-width: 100%; border-radius: .5rem; }
.post-content pre { background: var(--bs-tertiary-bg); padding: .9rem 1rem; border-radius: .5rem; overflow-x: auto; }
.post-content code { background: var(--bs-tertiary-bg); padding: .1rem .35rem; border-radius: .25rem; font-size: .88em; }
.post-content pre code { background: none; padding: 0; }
.post-content blockquote { border-left: 3px solid var(--bs-primary); margin: 1rem 0; padding: .1rem 1rem; color: var(--bs-secondary-color); }
.post-content hr { margin: 1.75rem 0; }
.post-content table { width: 100%; border-collapse: collapse; margin: 1rem 0; }
.post-content th, .post-content td { border: 1px solid var(--bs-border-color); padding: .5rem; text-align: left; }

/* ---- Notion block types without a natural Bootstrap equivalent ---- */
.callout { display: flex; gap: .6rem; background: var(--bs-tertiary-bg); border-radius: .5rem; padding: .9rem; margin: 1rem 0; }
.bookmark { display: block; border: 1px solid var(--bs-border-color); border-radius: .5rem; padding: .75rem; text-decoration: none; word-break: break-all; margin: 1rem 0; }
.pdf-embed { width: 100%; height: 480px; border: 1px solid var(--bs-border-color); border-radius: .5rem; margin: 1rem 0; }
.file-attachment { display: inline-flex; align-items: center; gap: .4rem; border: 1px solid var(--bs-border-color); border-radius: .5rem; padding: .6rem .9rem; text-decoration: none; color: var(--bs-body-color); margin: 1rem 0; }
.math-block { overflow-x: auto; margin: 1rem 0; }
figure { margin: 1rem 0; }
figcaption { color: var(--bs-secondary-color); font-size: .85rem; text-align: center; margin-top: .4rem; }
