/* 颜色变量 */
:root {
    --quote-left-color: #dadde1;

    /* alerts color */
    --primary-color: #007acc;
}

[data-theme="dark"] {
    --quote-left-color: #606770;
}

.markdown-content {
  line-height: 1.85;
}

.markdown-content h1 {
  padding: 0.5rem 0;
  font-size: 2rem;
  font-weight: 700;
  margin: 2rem 0 1rem;
  border-bottom: none;
  position: relative;
  padding-bottom: 0.6rem;
}

.markdown-content h1::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 1px;
  background: linear-gradient(to right, var(--text-color), transparent);
}

.markdown-content h2 {
  padding: 0.4rem 0;
  font-size: 1.75rem;
  font-weight: 700;
  margin: 1.8rem 0 1rem;
  border-bottom: none;
  position: relative;
  padding-bottom: 0.5rem;
}

.markdown-content h2::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 1px;
  background: linear-gradient(to right, var(--text-color), transparent);
  opacity: 0.5;
}

.markdown-content h3 {
  font-size: 1.5rem;
  font-weight: 600;
  margin: 1.5rem 0 0.8rem;
}

.markdown-content h4 {
  font-size: 1.25rem;
  font-weight: 600;
  margin: 1.2rem 0 0.6rem;
}

.markdown-content h5 {
  font-size: 1.1rem;
  font-weight: 600;
  margin: 1rem 0 0.5rem;
}

.markdown-content h6 {
  font-size: 1rem;
  font-weight: 600;
  margin: 1rem 0 0.5rem;
}

.markdown-content p {
  margin: 0.8rem 0;
  text-align: justify;
}

.markdown-content {
  color: var(--text-color);
}

.markdown-content p a,
.markdown-content li a,
.markdown-content h2 a,
.markdown-content h3 a,
.markdown-content table a {
  color: inherit;
  /* transition: color 0.3s ease; */
  text-decoration: none;
  position: relative;
  display: inline-block;
}
    
.markdown-content p a::before,
.markdown-content li a::before,
.markdown-content h2 a::before,
.markdown-content h3 a::before,
.markdown-content table a::before {
  content: "";
  position: absolute;
  bottom: 4px;
  left: 0;
  width: 100%;
  border-bottom-style: dotted;
  border-bottom-width: 2px;
  /* background: currentColor; */
  transition: transform 0.3s ease;
  transform-origin: right;
  transform: scaleX(1);
}
    
.markdown-content p a:hover,
.markdown-content li a:hover,
.markdown-content h2 a:hover,
.markdown-content h3 a:hover,
.markdown-content table a:hover {
  color: var(--link-color);
}
    
.markdown-content p a:hover::before,
.markdown-content li a:hover::before,
.markdown-content h2 a:hover::before,
.markdown-content h3 a:hover::before,
.markdown-content table a:hover::before {
  transform-origin: right;
  transform: scaleX(0);
}

.markdown-content strong {
  font-weight: 700;
}

.markdown-content em {
  font-style: italic;
}

.markdown-content ul {
  margin: 1rem 0;
  padding-left: 1.5rem;
  list-style-type: disc;
}

.markdown-content ol {
  margin: 1rem 0;
  padding-left: 1.5rem;
  list-style-type: decimal;
}

.markdown-content li {
  margin: 0.3rem 0;
}

.markdown-content li::marker {
  transition: color 0.2s ease;
}

.markdown-content li:hover::marker {
  color: var(--link-color);
}

.markdown-content li > ul,
.markdown-content li > ol {
  margin: 0;
}

.markdown-content blockquote {
  font-family: "LXGW Bright Medium";
  margin: 1.5rem 0;
  padding: 0.75rem 1.2rem;
  border-left: 3px solid var(--link-color);
  background-color: rgba(0, 0, 0, 0.025);
  color: var(--text-color-70);
  border-radius: 0 6px 6px 0;
  transition: border-color 0.3s ease;
}

[data-theme="dark"] .markdown-content blockquote {
  background-color: rgba(255, 255, 255, 0.04);
  color: #aaa;
  border-left-color: var(--link-color);
}

.markdown-content p code,
.markdown-content li code,
.markdown-content h2 code,
.markdown-content h3 code,
.markdown-content table code {
  padding: 0.2rem 0.4rem;
  background-color: rgba(0, 0, 0, 0.05);
  border-radius: 4px;
  font-family: 'JetBrains Mono Variable', ui-monospace;
  font-size: 0.9em;
}


[data-theme="dark"] .markdown-content p code,
[data-theme="dark"] .markdown-content li code,
[data-theme="dark"] .markdown-content h2 code,
[data-theme="dark"] .markdown-content h3 code,
[data-theme="dark"] .markdown-content table code {
  background-color: rgba(255, 255, 255, 0.1);
}

.markdown-content pre {
  margin-top: 0.5rem !important;
  margin-bottom: 0.5rem !important;
  padding: 1rem;
  padding-top: 2.5rem;
  overflow: auto;
  background-color: rgba(0, 0, 0, 0.05);
  border-radius: 10px;
  font-family: 'JetBrains Mono Variable', ui-monospace;
  line-height: 1.5;
  position: relative;
  border: 1px solid rgba(0, 0, 0, 0.08);
}

.markdown-content pre::before {
  content: "";
  position: absolute;
  top: 0.75rem;
  left: 1rem;
  width: 0.65rem;
  height: 0.65rem;
  border-radius: 50%;
  background: #ff5f57;
  box-shadow: 1.25rem 0 0 #febc2e, 2.5rem 0 0 #28c840;
}

[data-theme="dark"] .markdown-content pre {
  background-color: rgba(0, 0, 0, 0.35);
  border-color: rgba(255, 255, 255, 0.06);
}

[data-theme="dark"] .markdown-content pre::before {
  background: #ff5f57;
  box-shadow: 1.25rem 0 0 #febc2e, 2.5rem 0 0 #28c840;
  opacity: 0.85;
}

.markdown-content pre code {
  padding: 0;
  background: none;
  font-size: 0.9rem;
}

[data-theme="dark"] .markdown-content pre code {
  padding: 0;
  background: none;
  font-size: 0.9rem;
}

.markdown-content hr {
  margin: 2.5rem 0;
  border: none;
  height: 1px;
  background: linear-gradient(to right, transparent, var(--text-color), transparent);
  opacity: 0.3;
}

.markdown-content table {
  width: 100%;
  margin: 1.5rem 0;
  border-collapse: collapse;
  border-spacing: 0;
}

.markdown-content tbody tr {
  transition: background-color 0.2s ease;
}

.markdown-content tbody tr:hover {
  background-color: var(--button-hover-color)
}

.markdown-content th,
.markdown-content td {
  padding: 0.5rem 1rem;
  border: 1px solid var(--border-color);
}

.markdown-content th {
  font-weight: 600;
  background-color: rgba(0, 0, 0, 0.03);
}

[data-theme="dark"] .markdown-content th {
  background-color: rgba(255, 255, 255, 0.05);
}

.markdown-content img {
  max-width: 100%;
  height: auto;
  margin: 1rem auto;
  display: block;
  border-radius: 6px;
}

.note, .tip, .warning, .important, .caution {
  padding: 0.5rem 1rem;
  border-radius: 0.25rem;
  margin: 1rem 0;
  /* border-left: 6px solid; */
}

.note {
  border-color: #757575; /* Indigo */
  background: #eeeeee;
}

.tip {
  border-color: #009400; /* Emerald */
  background: #e6f6e6;
}

.important {
  border-color: #4cb3d4; /* Red */
  background: #eef9fd;
}

.warning {
  border-color: #e6a700; /* Amber */
  background: #fff7ed;
}

.caution {
  border-color: #e13238; /* Yellow */
  background: #ffebec;
}

[data-theme="dark"] .note {
  border-color: #757575; /* Indigo */
  background: #2d2d2d;
}

[data-theme="dark"] .tip {
  border-color: #009400; /* Emerald */
  background: #1a2e1a;
}

[data-theme="dark"] .important {
  border-color: #4cb3d4; /* Red */
  background: #1a2d33;
}

[data-theme="dark"] .warning {
  border-color: #e6a700; /* Amber */
  background: #332a00;
}

[data-theme="dark"] .caution {
  border-color: #e13238; /* Yellow */
  background: #3b1d1e;
}

.admonition-title {
  font-weight: bold;
  font-size: large;
  margin-bottom: 0.5rem;
  display: flex;
  align-items: center;
}

.note .admonition-title      { color: #474747; }
.tip .admonition-title       { color: #003100; }
.important .admonition-title { color: #193c47; }
.warning .admonition-title   { color: #92400e; }
.caution .admonition-title   { color: #4b1113; }

[data-theme="dark"] .note .admonition-title      { color: #c7c7c7; }
[data-theme="dark"] .tip .admonition-title       { color: #a8e6a8; }
[data-theme="dark"] .important .admonition-title { color: #a3d9e9; }
[data-theme="dark"] .warning .admonition-title   { color: #f2d680; }
[data-theme="dark"] .caution .admonition-title   { color: #f2a0a3; }

.admonition-title::before {
  display: inline-block;
  width: 18px;
  height: 18px;
  margin-right: 8px;
  vertical-align: middle;
  background-size: contain;
  background-repeat: no-repeat;
  content: "";
}

.note .admonition-title::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23757575'%3E%3Cpath d='M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z'%3E%3C/path%3E%3C/svg%3E");
}
.tip .admonition-title::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23009400'%3E%3Cpath d='M8 1.5c-2.363 0-4 1.69-4 3.75 0 .984.424 1.625.984 2.304l.214.253c.223.264.47.556.673.848.284.411.537.896.621 1.49a.75.75 0 0 1-1.484.211c-.04-.282-.163-.547-.37-.847a8.456 8.456 0 0 0-.542-.68c-.084-.1-.173-.205-.268-.32C3.201 7.75 2.5 6.766 2.5 5.25 2.5 2.31 4.863 0 8 0s5.5 2.31 5.5 5.25c0 1.516-.701 2.5-1.328 3.259-.095.115-.184.22-.268.319-.207.245-.383.453-.541.681-.208.3-.33.565-.37.847a.751.751 0 0 1-1.485-.212c.084-.593.337-1.078.621-1.489.203-.292.45-.584.673-.848.075-.088.147-.173.213-.253.561-.679.985-1.32.985-2.304 0-2.06-1.637-3.75-4-3.75ZM5.75 12h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1 0-1.5ZM6 15.25a.75.75 0 0 1 .75-.75h2.5a.75.75 0 0 1 0 1.5h-2.5a.75.75 0 0 1-.75-.75Z'%3E%3C/path%3E%3C/svg%3E");
}
.important .admonition-title::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%234cb3d4'%3E%3Cpath d='M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v9.5A1.75 1.75 0 0 1 14.25 13H8.06l-2.573 2.573A1.458 1.458 0 0 1 3 14.543V13H1.75A1.75 1.75 0 0 1 0 11.25Zm1.75-.25a.25.25 0 0 0-.25.25v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25Zm7 2.25v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 9a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z'%3E%3C/path%3E%3C/svg%3E");
}
.warning .admonition-title::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23e6a700'%3E%3Cpath d='M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z'%3E%3C/path%3E%3C/svg%3E");
}
.caution .admonition-title::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23e13238'%3E%3Cpath d='M4.47.22A.749.749 0 0 1 5 0h6c.199 0 .389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749 0 0 1-.22.53l-4.25 4.25A.749.749 0 0 1 11 16H5a.749.749 0 0 1-.53-.22L.22 11.53A.749.749 0 0 1 0 11V5c0-.199.079-.389.22-.53Zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5ZM8 4a.75.75 0 0 1 .75.75v3.5a.75.75 0 0 1-1.5 0v-3.5A.75.75 0 0 1 8 4Zm0 8a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z'%3E%3C/path%3E%3C/svg%3E");
}


/* 音乐卡片样式 */
.card-music {
    display: block;
    width: 100%;
    max-width: 400px;
    margin: 1.5rem auto;
    border-radius: 12px;
    /* box-shadow: 0 4px 12px var(--shadow-color); */
    text-decoration: none;
    transition: all 0.8s ease !important; 
    border: 1px solid var(--button-border-color);
    overflow: hidden;
    position: relative;
}

.card-music:hover {
    box-shadow: 0 8px 20px var(--shadow-color);
    /* transform: translateY(-3px); */
    border-color: var(--link-color);
}

.music-card {
    display: flex;
    padding: 16px;
    gap: 16px;
    align-items: center;
}

.music-cover-wrapper {
    width: 80px;
    height: 80px;
    flex-shrink: 0;
    position: relative;
}

.music-cover {
    width: 100%;
    height: 100%;
    border-radius: 8px;
    background-size: cover;
    background-position: center;
    background-color: var(--button-hover-color);
    transition: all 0.3s ease;
}

/* 添加网易云音乐图标样式 */
.music-card::before {
    content: "";
    position: absolute;
    top: 15px;
    right: 15px;
    width: 24px;
    height: 24px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ff2822' %3E%3Cpath d='M13.046 9.388a4 4 0 0 0-.66.19c-.809.312-1.447.991-1.666 1.775a2.3 2.3 0 0 0-.074.81a1.85 1.85 0 0 0 .764 1.35a1.483 1.483 0 0 0 2.01-.286c.406-.531.355-1.183.24-1.636c-.098-.387-.22-.816-.345-1.249a65 65 0 0 1-.269-.954m-.82 10.07c-3.984 0-7.224-3.24-7.224-7.223c0-.98.226-3.02 1.884-4.822A7.2 7.2 0 0 1 9.502 5.6a.792.792 0 1 1 .587 1.472a5.62 5.62 0 0 0-2.795 2.462a5.54 5.54 0 0 0-.707 2.7a5.645 5.645 0 0 0 5.638 5.638c1.844 0 3.627-.953 4.542-2.428c1.042-1.68.772-3.931-.627-5.238a3.3 3.3 0 0 0-1.437-.777c.172.589.334 1.18.494 1.772c.284 1.12.1 2.181-.519 2.989c-.39.51-.956.888-1.592 1.064a3.04 3.04 0 0 1-2.58-.44a3.45 3.45 0 0 1-1.44-2.514c-.04-.467.002-.93.128-1.376c.35-1.256 1.356-2.339 2.622-2.826a5.5 5.5 0 0 1 .823-.246l-.134-.505c-.37-1.371.25-2.579 1.547-3.007a2.4 2.4 0 0 1 1.025-.105c.792.09 1.476.592 1.709 1.023c.258.507-.096 1.153-.706 1.153a.8.8 0 0 1-.54-.213c-.088-.08-.163-.174-.259-.247a.83.83 0 0 0-.632-.166a.81.81 0 0 0-.634.551c-.056.191-.031.406.02.595c.07.256.159.597.217.82c1.11.098 2.162.54 2.97 1.296c1.974 1.844 2.35 4.886.892 7.233c-1.197 1.93-3.509 3.177-5.889 3.177zM0 12c0 6.627 5.373 12 12 12s12-5.373 12-12S18.627 0 12 0S0 5.373 0 12'/%3E%3C/svg%3E");
    background-size: contain;
    background-repeat: no-repeat;
    z-index: 2;
}

[data-theme="dark"] .music-card::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23c20c0c' %3E%3Cpath d='M13.046 9.388a4 4 0 0 0-.66.19c-.809.312-1.447.991-1.666 1.775a2.3 2.3 0 0 0-.074.81a1.85 1.85 0 0 0 .764 1.35a1.483 1.483 0 0 0 2.01-.286c.406-.531.355-1.183.24-1.636c-.098-.387-.22-.816-.345-1.249a65 65 0 0 1-.269-.954m-.82 10.07c-3.984 0-7.224-3.24-7.224-7.223c0-.98.226-3.02 1.884-4.822A7.2 7.2 0 0 1 9.502 5.6a.792.792 0 1 1 .587 1.472a5.62 5.62 0 0 0-2.795 2.462a5.54 5.54 0 0 0-.707 2.7a5.645 5.645 0 0 0 5.638 5.638c1.844 0 3.627-.953 4.542-2.428c1.042-1.68.772-3.931-.627-5.238a3.3 3.3 0 0 0-1.437-.777c.172.589.334 1.18.494 1.772c.284 1.12.1 2.181-.519 2.989c-.39.51-.956.888-1.592 1.064a3.04 3.04 0 0 1-2.58-.44a3.45 3.45 0 0 1-1.44-2.514c-.04-.467.002-.93.128-1.376c.35-1.256 1.356-2.339 2.622-2.826a5.5 5.5 0 0 1 .823-.246l-.134-.505c-.37-1.371.25-2.579 1.547-3.007a2.4 2.4 0 0 1 1.025-.105c.792.09 1.476.592 1.709 1.023c.258.507-.096 1.153-.706 1.153a.8.8 0 0 1-.54-.213c-.088-.08-.163-.174-.259-.247a.83.83 0 0 0-.632-.166a.81.81 0 0 0-.634.551c-.056.191-.031.406.02.595c.07.256.159.597.217.82c1.11.098 2.162.54 2.97 1.296c1.974 1.844 2.35 4.886.892 7.233c-1.197 1.93-3.509 3.177-5.889 3.177zM0 12c0 6.627 5.373 12 12 12s12-5.373 12-12S18.627 0 12 0S0 5.373 0 12'/%3E%3C/svg%3E");
}

.music-info {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.music-header {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.music-title {
    font-weight: 600;
    color: var(--text-color);
    font-size: 1rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.music-artist {
    color: var(--text-color-70);
    font-size: 0.9rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}


[data-theme="dark"] .music-title {
    color: #ffffff;
}

[data-theme="dark"] .music-artist {
    color: #aaa;
}

.fetch-error {
  background-color: #ffe6e6;
  border: 1px solid #ffcccc;
}

[data-theme="dark"] .fetch-error {
  background-color: #4d2626;
  border-color: #733030;
}


/* GitHub Card Styles */
.card-github {
    display: block;
    padding: 16px;
    border-radius: 8px;
    /* box-shadow: 0 4px 12px var(--shadow-color); */
    text-decoration: none;
    transition: all 0.8s ease !important;
    border: 1px solid var(--button-border-color);
    max-width: 500px;
    margin: 1rem auto;
    width: 100%;
}

.card-github:hover {
    box-shadow: 0 6px 16px var(--shadow-color);
    /* transform: translateY(-2px); */
    border-color: var(--link-color);
}

.card-github .gc-titlebar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 8px;
}

.card-github .gc-titlebar-left {
    display: flex;
    align-items: center;
    flex: 1;
}

.card-github .gc-owner {
    display: flex;
    align-items: center;
    gap: 6px;
}

.card-github .gc-avatar {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background-size: cover;
    background-position: center;
    background-color: var(--button-hover-color);
}

.card-github .gc-user {
    font-weight: 600;
    color: var(--text-color);
}

.card-github .gc-divider {
    margin: 0 6px;
    color: var(--text-color-70);
}

.card-github .gc-repo {
    font-weight: 600;
    color: var(--link-color);
}

.card-github .github-logo {
    width: 24px;
    height: 24px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='%230a0a0a' d='M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z'/%3E%3C/svg%3E");
    background-size: contain;
    background-repeat: no-repeat;
}

[data-theme="dark"] .card-github .github-logo {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='%23aaaaaa' d='M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z'/%3E%3C/svg%3E");
}

.card-github .gc-description {
    color: var(--text-color-70);
    font-size: 0.9em;
    margin-bottom: 12px;
    line-height: 1.4;
}

.card-github .gc-infobar {
    display: flex;
    gap: 16px;
    font-size: 0.85em;
    color: var(--text-color-70);
}


.card-github .gc-stars::before {
    content: "";
    display: inline-block;
    width: 16px;
    height: 16px;
    margin-right: 4px;
    vertical-align: text-bottom;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' height='16' viewBox='0 0 16 16' version='1.1' width='16'%3E%3Cpath fill='%23666666' d='M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694Z'%3E%3C/path%3E%3C/svg%3E");
    background-size: contain;
    background-repeat: no-repeat;
}

[data-theme="dark"] .card-github .gc-stars::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' height='16' viewBox='0 0 16 16' version='1.1' width='16'%3E%3Cpath fill='%23aaaaaa' d='M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694Z'%3E%3C/path%3E%3C/svg%3E");
}

.card-github .gc-forks::before {
    content: "";
    display: inline-block;
    width: 16px;
    height: 16px;
    margin-right: 4px;
    vertical-align: text-bottom;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' height='16' viewBox='0 0 16 16' version='1.1' width='16'%3E%3Cpath fill='%23666666' d='M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75v-.878a2.25 2.25 0 1 1 1.5 0v.878a2.25 2.25 0 0 1-2.25 2.25h-1.5v2.128a2.251 2.251 0 1 1-1.5 0V8.5h-1.5A2.25 2.25 0 0 1 3.5 6.25v-.878a2.25 2.25 0 1 1 1.5 0ZM5 3.25a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Zm6.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Zm-3 8.75a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Z'%3E%3C/path%3E%3C/svg%3E");
    background-size: contain;
    background-repeat: no-repeat;
}

[data-theme="dark"] .card-github .gc-forks::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' height='16' viewBox='0 0 16 16' version='1.1' width='16'%3E%3Cpath fill='%23aaaaaa' d='M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75v-.878a2.25 2.25 0 1 1 1.5 0v.878a2.25 2.25 0 0 1-2.25 2.25h-1.5v2.128a2.251 2.251 0 1 1-1.5 0V8.5h-1.5A2.25 2.25 0 0 1 3.5 6.25v-.878a2.25 2.25 0 1 1 1.5 0ZM5 3.25a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Zm6.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Zm-3 8.75a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Z'%3E%3C/path%3E%3C/svg%3E");
}

.card-github .gc-license {
    margin-left: auto;
    padding: 2px 8px;
    border-radius: 10px;
    font-size: 0.8em;
    background: var(--button-hover-color);
}

.card-github .gc-language {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 10px;
    font-size: 0.8em;
    background: var(--button-hover-color);
    margin-left: 8px;
}

.no-styling {
    text-decoration: none;
    color: inherit;
}

.fetch-error {
    opacity: 0.5;
    border: 1px solid #ff6b6b;
}

.quote {
    font-family: "LXGW Bright Medium";
    position: relative;
    padding: 0 3rem;
	  margin: 3.5rem 0;
    line-height: 1.6;
    text-align: center;
}

div.quote::before, 
div.quote::after {
    position: absolute;
    display: block;
    height: 3em;
    width: 100%;
    margin: 0 -3rem;
    background-repeat: no-repeat;
    background-size: 22px 22px;
    content: "";
}

.quote::before {
    top: -1.25em;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' height='16' viewBox='0 0 24 24' version='1.1' width='16'%3E%3Cpath fill='%23666666' d='M6.5 10c-.223 0-.437.034-.65.065c.069-.232.14-.468.254-.68c.114-.308.292-.575.469-.844c.148-.291.409-.488.601-.737c.201-.242.475-.403.692-.604c.213-.21.492-.315.714-.463c.232-.133.434-.28.65-.35l.539-.222l.474-.197l-.485-1.938l-.597.144c-.191.048-.424.104-.689.171c-.271.05-.56.187-.882.312c-.318.142-.686.238-1.028.466c-.344.218-.741.4-1.091.692c-.339.301-.748.562-1.05.945c-.33.358-.656.734-.909 1.162c-.293.408-.492.856-.702 1.299c-.19.443-.343.896-.468 1.336c-.237.882-.343 1.72-.384 2.437c-.034.718-.014 1.315.028 1.747c.015.204.043.402.063.539l.025.168l.026-.006A4.5 4.5 0 1 0 6.5 10m11 0c-.223 0-.437.034-.65.065c.069-.232.14-.468.254-.68c.114-.308.292-.575.469-.844c.148-.291.409-.488.601-.737c.201-.242.475-.403.692-.604c.213-.21.492-.315.714-.463c.232-.133.434-.28.65-.35l.539-.222l.474-.197l-.485-1.938l-.597.144c-.191.048-.424.104-.689.171c-.271.05-.56.187-.882.312c-.317.143-.686.238-1.028.467c-.344.218-.741.4-1.091.692c-.339.301-.748.562-1.05.944c-.33.358-.656.734-.909 1.162c-.293.408-.492.856-.702 1.299c-.19.443-.343.896-.468 1.336c-.237.882-.343 1.72-.384 2.437c-.034.718-.014 1.315.028 1.747c.015.204.043.402.063.539l.025.168l.026-.006A4.5 4.5 0 1 0 17.5 10'%3E%3C/path%3E%3C/svg%3E");
    background-position: 0 -4px;
}

.quote::after {
    bottom: -1.25em;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' height='16' viewBox='0 0 24 24' version='1.1' width='16'%3E%3Cpath fill='%23666666' d='m21.95 8.721l-.025-.168l-.026.006A4.5 4.5 0 1 0 17.5 14c.223 0 .437-.034.65-.065c-.069.232-.14.468-.254.68c-.114.308-.292.575-.469.844c-.148.291-.409.488-.601.737c-.201.242-.475.403-.692.604c-.213.21-.492.315-.714.463c-.232.133-.434.28-.65.35l-.539.222l-.474.197l.484 1.939l.597-.144c.191-.048.424-.104.689-.171c.271-.05.56-.187.882-.312c.317-.143.686-.238 1.028-.467c.344-.218.741-.4 1.091-.692c.339-.301.748-.562 1.05-.944c.33-.358.656-.734.909-1.162c.293-.408.492-.856.702-1.299c.19-.443.343-.896.468-1.336c.237-.882.343-1.72.384-2.437c.034-.718.014-1.315-.028-1.747a7 7 0 0 0-.063-.539m-11 0l-.025-.168l-.026.006A4.5 4.5 0 1 0 6.5 14c.223 0 .437-.034.65-.065c-.069.232-.14.468-.254.68c-.114.308-.292.575-.469.844c-.148.291-.409.488-.601.737c-.201.242-.475.403-.692.604c-.213.21-.492.315-.714.463c-.232.133-.434.28-.65.35l-.539.222c-.301.123-.473.195-.473.195l.484 1.939l.597-.144c.191-.048.424-.104.689-.171c.271-.05.56-.187.882-.312c.317-.143.686-.238 1.028-.467c.344-.218.741-.4 1.091-.692c.339-.301.748-.562 1.05-.944c.33-.358.656-.734.909-1.162c.293-.408.492-.856.702-1.299c.19-.443.343-.896.468-1.336c.237-.882.343-1.72.384-2.437c.034-.718.014-1.315-.028-1.747a8 8 0 0 0-.064-.537'%3E%3C/path%3E%3C/svg%3E");
    background-position: 100% 30px;
}

.quote right {
	text-align: right;
	display: block;
}

.quote left {
	text-align: left;
	display: block;
}

.spoiler {
  filter: blur(5px);
  background-color: rgba(128, 128, 128, 0.2);
  border-radius: 3px;
  transition: filter 0.4s ease, background-color 0.4s ease;
  cursor: pointer;
  padding: 0 2px;
}

@media (hover: hover) {
  .spoiler:not(.revealed):hover {
    filter: blur(0);
    background-color: transparent;
  }
}

.spoiler.revealed {
  filter: blur(0) !important;
  background-color: transparent !important;
}

ruby {
  ruby-align: center;
  margin: 0 2px;
  ruby-position: over;
}

rt {
  font-size: 0.65em;  
  color: #888;   
  user-select: none;  
  transform: translateY(-2px); 
}

.rainbow-text {
  background: linear-gradient(
    to right,
    #ef5350, #f48fb1, #7e57c2, #2196f3, #26c6da, #43a047, #eeff41, #f9a825, #ef5350
  );
  background-clip: text;
  -webkit-background-clip: text;
  color: transparent;
  background-size: 200% auto;
  font-weight: bold;
  animation: rainbow-animation 3s linear infinite;
  display: inline-block;
}

@keyframes rainbow-animation {
  0% { background-position: 0% center; }
  100% { background-position: 200% center; }
}

[data-theme='dark'] .rainbow-text {
  filter: brightness(1.2);
}

.typst-render {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  margin: 2rem 0;
  width: 100%;
}

.typst-render .typst-title {
  margin-top: 0.8rem;
  font-size: 0.9rem;
  color: #666;
  font-family: 'Times New Roman', Times, serif;
}

.markdown-content .code-block-wrapper {
  position: relative !important;
  width: 100%;
}

.markdown-content pre {
  margin-top: 0 !important;
  overflow-x: auto;
}

.markdown-content .copy-btn {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 20;
  padding: 6px;
  background: rgba(40, 44, 52, 0.8);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 6px;
  cursor: pointer;
  color: #ccc;
  opacity: 0;
  transition: all 0.2s ease-in-out;
  display: flex;
  align-items: center;
  justify-content: center;
}

.markdown-content .code-block-wrapper:hover .copy-btn {
  opacity: 1;
}

@media (hover: none) {
  .markdown-content .copy-btn {
    opacity: 1;
  }
}

.markdown-content .copy-btn .icon-check {
  display: none;
}

.markdown-content .copy-btn.copied .icon-copy {
  display: none;
}

.markdown-content .copy-btn.copied .icon-check {
  display: block;
  color: #4caf50;
}

.markdown-content .copy-btn:hover {
  background: rgba(255, 255, 255, 0.2);
  color: #fff;
}
