/* Back to top */
.back-to-top {
  position: fixed;
  right: 28px;
  bottom: 28px;
  z-index: 50;
  width: 48px;
  height: 48px;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 50%;
  background: rgba(255,255,255,.76);
  color: #182018;
  font-size: 1.2rem;
  font-weight: 700;
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  box-shadow: 0 10px 28px rgba(20,35,25,.14);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  transition: opacity .25s ease, visibility .25s ease, transform .25s ease, background .25s ease;
}

.back-to-top.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.back-to-top:hover {
  transform: translateY(-3px);
  background: rgba(255,255,255,.94);
}

.back-to-top:focus-visible {
  outline: 3px solid rgba(80,145,100,.35);
  outline-offset: 3px;
}

.dark-mode .back-to-top {
  border-color: rgba(255,255,255,.12);
  background: rgba(25,31,27,.78);
  color: #f3f5f1;
  box-shadow: 0 10px 28px rgba(0,0,0,.24);
}

.dark-mode .back-to-top:hover {
  background: rgba(35,43,37,.94);
}

@media (max-width: 640px) {
  .back-to-top {
    right: 18px;
    bottom: 18px;
    width: 44px;
    height: 44px;
  }
}

/* Global back button */
.site-back {
  position: fixed;
  left: 28px;
  bottom: 28px;
  z-index: 50;
  width: 48px;
  height: 48px;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 50%;
  background: rgba(255,255,255,.76);
  color: #182018;
  font-size: 1.2rem;
  font-weight: 700;
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  box-shadow: 0 10px 28px rgba(20,35,25,.14);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  transition: opacity .25s ease, visibility .25s ease, transform .25s ease, background .25s ease;
}

.site-back.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.site-back:hover {
  transform: translateY(-3px);
  background: rgba(255,255,255,.94);
}

.site-back:focus-visible {
  outline: 3px solid rgba(80,145,100,.35);
  outline-offset: 3px;
}

.dark-mode .site-back {
  border-color: rgba(255,255,255,.12);
  background: rgba(25,31,27,.78);
  color: #f3f5f1;
  box-shadow: 0 10px 28px rgba(0,0,0,.24);
}

.dark-mode .site-back:hover {
  background: rgba(35,43,37,.94);
}

@media (max-width: 640px) {
  .site-back {
    left: 18px;
    bottom: 18px;
    width: 44px;
    height: 44px;
  }
}
/* Jekyll Markdown content */
.article-content h6{color:var(--muted)}
.article-content ul,.article-content ol{margin:0 0 1.35em;padding-left:1.55em}
.article-content li{margin:.35em 0}
.article-content pre{overflow:auto;margin:1.5em 0;padding:18px 20px;border:1px solid var(--line);border-radius:14px;background:rgba(20,30,22,.06)}
.dark-mode .article-content pre{background:rgba(0,0,0,.22)}
.article-content code{font-family:"Cascadia Code",Consolas,monospace;font-size:.92em}
.article-content :not(pre)>code{padding:.18em .38em;border-radius:6px;background:rgba(79,123,89,.10);color:var(--accent)}
.article-content pre code{padding:0;background:none;color:inherit}
.article-content table{width:100%;margin:1.5em 0;border-collapse:collapse;font-size:.94em}
.article-content th,.article-content td{padding:10px 12px;border:1px solid var(--line);text-align:left}
.article-content th{background:rgba(79,123,89,.08)}
.article-content img{display:block;margin:1.5em auto}
.article-content hr{margin:2.2em 0;border:0;border-top:1px solid var(--line)}

/* Automatic tags */
.tag-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:-12px 0 24px}
.tag-bar-label{font-size:12px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-right:4px}
.tag-filter{border:1px solid var(--line);background:var(--surface);color:var(--muted);padding:9px 14px;border-radius:999px;font-size:13px;font-weight:700;cursor:pointer;transition:all .2s ease;backdrop-filter:blur(10px)}
.tag-filter:hover{transform:translateY(-1px);color:var(--text);border-color:rgba(79,123,89,.35)}
.tag-filter.active{background:var(--text);color:var(--bg);border-color:var(--text)}
.article-tags{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin:-28px 0 38px}
.article-tags span{display:inline-flex;padding:6px 10px;border-radius:999px;background:rgba(79,123,89,.10);color:var(--accent);font-size:12px;font-weight:800}
@media(max-width:640px){.tag-bar{margin-top:-10px}.tag-filter{padding:7px 11px;font-size:12px}}

/* giscus comments */
.giscus-wrap{margin-top:48px;padding-top:32px;border-top:1px solid var(--line)}
.giscus-wrap .giscus{width:100%}
.giscus-wrap iframe{width:100%}
