@charset "UTF-8";
/* /assets/css/custom.css */
@font-face {
  font-family: 'HuWenMingChaoTi';
  src: url("/fonts/HuWenMingChaoTi.woff2") format("woff2"), url("/fonts/HuWenMingChaoTi.woff") format("woff");
  font-weight: normal;
  font-style: normal;
  font-display: swap; }

body {
  /* 覆蓋字體 */
  --font-primary: 'HuWenMingChaoTi', Verdana, sans-serif;
  /* 新增：覆蓋主要字體大小 (原默認為 1em) */
  /* 可以試試 1.1em, 1.15em, 1.2em 或 17px, 18px 等 */
  --font-size-primary: 1.15em;
  /* 將這行的值調整到你滿意的大小 */ }

/* center any element with .center-image */
.center-image {
  display: block;
  margin: 0 auto; }

img.img-narrow {
  width: 100%;
  max-width: 420px;
  display: block;
  margin: 1.5rem auto; }

/* 避免日期換行 */
ul.blog-posts li span:first-child {
  white-space: nowrap;
  /* 一行到底 */ }

/* 若仍擠不下，再酌量放寬固定寬度 */
@media (min-width: 640px) {
  ul.blog-posts li span:first-child {
    flex: 0 0 140px; } }

/* ⬇︎手機寬度時，給日期和標題之間加間距 */
@media (max-width: 639px) {
  ul.blog-posts li span:first-child {
    margin-right: 0.5em;
    /* 想大一點就調數值 */ } }

/* 可選：若需調整標題大小，可參考以下示例
   h1 { font-size: 2.2rem; }
   h2 { font-size: 1.8rem; }
*/
/* === Image Lightbox (Click to expand) === */
img:not(.no-zoom) {
  cursor: zoom-in;
  transition: transform 0.2s ease, box-shadow 0.2s ease; }

/* Subtle hover hint (desktop only) */
@media (hover: hover) {
  img:not(.no-zoom):hover {
    transform: scale(1.02);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); } }

img.no-zoom {
  cursor: default; }

/* Lightbox overlay */
.lightbox-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.9);
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
  cursor: zoom-out;
  padding: 20px;
  box-sizing: border-box; }

.lightbox-overlay.active {
  opacity: 1;
  visibility: visible; }

.lightbox-overlay img {
  max-width: 95vw;
  max-height: 95vh;
  object-fit: contain;
  border-radius: 4px;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5);
  transform: scale(0.9);
  transition: transform 0.3s ease;
  cursor: default; }

.lightbox-overlay.active img {
  transform: scale(1); }

/* Close hint */
.lightbox-close {
  position: absolute;
  top: 20px;
  right: 24px;
  color: #fff;
  font-size: 32px;
  font-weight: 300;
  cursor: pointer;
  opacity: 0.7;
  transition: opacity 0.2s ease;
  line-height: 1; }

.lightbox-close:hover {
  opacity: 1; }

/* === Kawaii Peeking Cat (Back-to-top) === */
.kawaii-cat {
  --cat-body: #6f747c;
  --cat-shadow: #5a5f67;
  --cat-stripe: #3e434b;
  --cat-ear: #f4bcb6;
  --cat-nose: #f2a59a;
  --cat-eye: #30353c;
  --tail-duration: 1.8s;
  position: fixed;
  right: 16px;
  bottom: 14px;
  width: 96px;
  height: 78px;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  opacity: 0;
  transform: translateY(12px) scale(0.96);
  transition: opacity 0.24s ease, transform 0.24s ease;
  pointer-events: none;
  z-index: 1000; }

.kawaii-cat.show {
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: auto; }

@media (max-width: 640px) {
  .kawaii-cat {
    right: 10px;
    bottom: 10px;
    width: 88px;
    height: 72px; } }

.kawaii-cat .cat-shell {
  position: relative;
  width: 100%;
  height: 100%;
  font-size: 1px;
  filter: drop-shadow(0 4px 7px rgba(0, 0, 0, 0.18)); }

.kawaii-cat .cat-shell * {
  position: absolute;
  box-sizing: border-box; }

.kawaii-cat .tail {
  right: 10em;
  bottom: 18em;
  width: 18em;
  height: 40em;
  border-radius: 10em 10em 8em 8em;
  border: 1px solid rgba(38, 42, 49, 0.35);
  background: linear-gradient(to bottom, var(--cat-body) 0 7em, var(--cat-stripe) 7em 12em, var(--cat-body) 12em 18em, var(--cat-stripe) 18em 23em, var(--cat-body) 23em 29em, var(--cat-stripe) 29em 34em, var(--cat-body) 34em 100%);
  transform-origin: 50% 94%;
  transform: rotate(10deg);
  box-shadow: inset 0 -2em 0 rgba(0, 0, 0, 0.12);
  animation: tailWag var(--tail-duration) ease-in-out infinite; }

.kawaii-cat .tail::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(to right, rgba(255, 255, 255, 0.12), transparent 48%); }

.kawaii-cat .body {
  left: 50%;
  bottom: 10em;
  width: 66em;
  height: 30em;
  transform: translateX(-50%);
  border-radius: 48% 48% 40% 40% / 75% 75% 35% 35%;
  border: 1px solid rgba(38, 42, 49, 0.35);
  background: linear-gradient(180deg, #7b8089 0%, var(--cat-body) 72%);
  box-shadow: 0 4em 8em rgba(0, 0, 0, 0.16); }

.kawaii-cat .ear {
  top: -7em;
  width: 17em;
  height: 17em;
  border-radius: 48% 48% 20% 20%;
  border: 1px solid rgba(38, 42, 49, 0.35);
  background: var(--cat-body); }

.kawaii-cat .ear::after {
  content: '';
  top: 4em;
  left: 3em;
  width: 10em;
  height: 9em;
  border-radius: 50%;
  background: var(--cat-ear); }

.kawaii-cat .ear-l {
  left: 9em;
  transform: rotate(-10deg); }

.kawaii-cat .ear-r {
  right: 9em;
  transform: rotate(10deg); }

.kawaii-cat .stripe {
  top: 2em;
  width: 4em;
  height: 10em;
  border-radius: 3em;
  background: var(--cat-stripe);
  opacity: 0.88; }

.kawaii-cat .stripe-l {
  left: 25em;
  transform: rotate(-12deg); }

.kawaii-cat .stripe-c {
  left: 31em; }

.kawaii-cat .stripe-r {
  left: 37em;
  transform: rotate(12deg); }

.kawaii-cat .eye {
  top: 14em;
  width: 6.8em;
  height: 6.8em;
  border-radius: 50%;
  background: var(--cat-eye);
  transition: transform 0.14s ease; }

.kawaii-cat .eye::after {
  content: '';
  top: 1.2em;
  left: 1.4em;
  width: 1.8em;
  height: 1.8em;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.7);
  transition: opacity 0.12s ease; }

.kawaii-cat .eye-l {
  left: 19em; }

.kawaii-cat .eye-r {
  right: 19em; }

.kawaii-cat .nose {
  top: 20em;
  left: 50%;
  width: 7em;
  height: 4.5em;
  transform: translateX(-50%);
  border-radius: 50% 50% 65% 65%;
  background: var(--cat-nose); }

.kawaii-cat .paw {
  bottom: -8em;
  width: 22em;
  height: 14em;
  border-radius: 48% 48% 40% 40%;
  border: 1px solid rgba(38, 42, 49, 0.35);
  background: var(--cat-shadow);
  box-shadow: inset 0 -2em 0 rgba(0, 0, 0, 0.12); }

.kawaii-cat .paw::after {
  content: '';
  left: 4.5em;
  right: 4.5em;
  top: 8em;
  height: 1.1em;
  border-radius: 1em;
  background: rgba(47, 52, 60, 0.65); }

.kawaii-cat .paw-l {
  left: 4em; }

.kawaii-cat .paw-r {
  right: 4em; }

.kawaii-cat.is-blink .eye,
.kawaii-cat.is-wink-left .eye-l,
.kawaii-cat.is-wink-right .eye-r {
  transform: scaleY(0.14) translateY(7px); }

.kawaii-cat.is-blink .eye::after,
.kawaii-cat.is-wink-left .eye-l::after,
.kawaii-cat.is-wink-right .eye-r::after {
  opacity: 0; }

.kawaii-cat.is-hop {
  animation: catHop 0.32s ease-out; }

.kawaii-cat:focus-visible {
  outline: 2px solid var(--link-color);
  outline-offset: 4px;
  border-radius: 10px; }

@keyframes tailWag {
  0% {
    transform: rotate(9deg); }
  50% {
    transform: rotate(18deg); }
  100% {
    transform: rotate(9deg); } }

@keyframes catHop {
  0% {
    transform: translateY(0) scale(1); }
  45% {
    transform: translateY(-10px) scale(1.03); }
  100% {
    transform: translateY(0) scale(1); } }

@media (prefers-reduced-motion: reduce) {
  .kawaii-cat,
  .kawaii-cat * {
    animation: none !important;
    transition: none !important; } }

@media print {
  .kawaii-cat {
    display: none !important; } }

.pagination {
  display: flex;
  gap: .5rem;
  flex-wrap: wrap;
  align-items: center; }

.pagination a {
  padding: .1rem .4rem;
  text-decoration: none;
  border-radius: .25rem; }

.pagination a.active {
  font-weight: 700;
  text-decoration: underline; }

.pagination .dots {
  opacity: .6; }

@media (max-width: 600px) {
  .pagination a {
    display: none; }
  .pagination a.active,
  .pagination .prev,
  .pagination .next {
    display: inline-block; } }

/* 让图片永不溢出容器 */
.post-content img,
article img {
  max-width: 100%;
  height: auto; }

/* 手机端：除了 Prev/Next/当前，还显示首末页锚点 */
@media (max-width: 600px) {
  .pagination a {
    display: none; }
  .pagination a.active,
  .pagination .prev,
  .pagination .next,
  .pagination a:first-of-type,
  .pagination a:last-of-type {
    /* 末页 */
    display: inline-block; } }

/* === Hide tags sitewide (post pages & lists) === */
.post-tags,
.tags,
.meta-tags,
.post .meta .tags,
.post-meta .tags,
ul.tags,
nav.tags,
.tag-list,
.taxonomies,
.taxonomy--tags,
article .post-meta a[href^="/tags/"] {
  display: none !important; }

/* 若主题有“Tags:”或“标签：”文字标签 */
.post-meta .label-tags,
.meta .label-tags {
  display: none !important; }

/* === Force-hide any tag links anywhere (catch-all) === */
/* Some pages render a bottom "tag cloud" without wrapper classes.
   The rules below nuke any anchor whose href starts with /tags/,
   plus common containers that might hold only tag links. */
a[href^="/tags/"],
a[href*="/tags/"] {
  display: none !important; }

/* If a paragraph/nav/div is composed of only tag links, hide the whole block (modern browsers) */
:where(p, nav, ul, div):has(> a[href^="/tags/"]) {
  display: none !important; }

/* Extra safety for themes using bespoke names */
.tag-cloud,
.tags-cloud,
.taglist,
.tagsline,
.footer-tags {
  display: none !important; }

/* Font is declared at top of file - removed duplicate declaration */
/* 为 TOC 中的嵌套列表（第二级及更深）添加左侧内边距（实现缩进） */
#TableOfContents ul ul {
  padding-left: 20px;
  /* 你可以调整这个值，比如 1.5em 或 25px */ }

/* 可选：为更深层级添加额外缩进 */
/*
  #TableOfContents ul ul ul {
    padding-left: 20px; /* 再增加 20px 缩进 */
/* } */
/* 可选：调整列表项之间的间距 */
#TableOfContents li {
  margin-bottom: 4px;
  /* 调整垂直间距 */ }
