/*
Theme Name: Vega
Author: Theme Design Studio
Author URI: https://vega-theme.demo
Description: 现代、优雅、高性能 WordPress 主题。支持多种布局、深色模式、自定义色彩。
Version: 1.0.0
License: GNU General Public License v3.0
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: 简约, 两栏, 浮动侧栏, 文章目录, 自适应, 夜间模式, 可自定义
*/

@charset "utf-8";

/* ============================================
   Design Tokens / CSS Variables
   ============================================ */
:root {
	/* Primary color system - elegant indigo-violet */
	--themecolor: #7c3aed;
	--themecolor-R: 124;
	--themecolor-G: 58;
	--themecolor-B: 237;
	--themecolor-H: 262;
	--themecolor-S: 83;
	--themecolor-L: 58;
	--themecolor-rgbstr: var(--themecolor-R), var(--themecolor-G), var(--themecolor-B);
	--themecolor-dark0: hsl(var(--themecolor-H), calc(var(--themecolor-S) * 1%), max(calc(var(--themecolor-L) * 1% - 2.5%), 0%));
	--themecolor-dark: hsl(var(--themecolor-H), calc(var(--themecolor-S) * 1%), max(calc(var(--themecolor-L) * 1% - 5%), 0%));
	--themecolor-dark2: hsl(var(--themecolor-H), calc(var(--themecolor-S) * 1%), max(calc(var(--themecolor-L) * 1% - 10%), 0%));
	--themecolor-dark3: hsl(var(--themecolor-H), calc(var(--themecolor-S) * 1%), max(calc(var(--themecolor-L) * 1% - 15%), 0%));
	--themecolor-light: hsl(var(--themecolor-H), calc(var(--themecolor-S) * 1%), min(calc(var(--themecolor-L) * 1% + 10%), 100%));
	--themecolor-gradient: linear-gradient(135deg, #667eea 0%, #7c3aed 50%, #a855f7 100%);

	--color-tint-70:
		calc(var(--themecolor-R) + (255 - var(--themecolor-R)) * 0.7),
		calc(var(--themecolor-G) + (255 - var(--themecolor-G)) * 0.7),
		calc(var(--themecolor-B) + (255 - var(--themecolor-B)) * 0.7);
	--color-tint-78:
		calc(var(--themecolor-R) + (255 - var(--themecolor-R)) * 0.78),
		calc(var(--themecolor-G) + (255 - var(--themecolor-G)) * 0.78),
		calc(var(--themecolor-B) + (255 - var(--themecolor-B)) * 0.78);
	--color-tint-80:
		calc(var(--themecolor-R) + (255 - var(--themecolor-R)) * 0.8),
		calc(var(--themecolor-G) + (255 - var(--themecolor-G)) * 0.8),
		calc(var(--themecolor-B) + (255 - var(--themecolor-B)) * 0.8);
	--color-tint-82:
		calc(var(--themecolor-R) + (255 - var(--themecolor-R)) * 0.82),
		calc(var(--themecolor-G) + (255 - var(--themecolor-G)) * 0.82),
		calc(var(--themecolor-B) + (255 - var(--themecolor-B)) * 0.82);
	--color-tint-86:
		calc(var(--themecolor-R) + (255 - var(--themecolor-R)) * 0.86),
		calc(var(--themecolor-G) + (255 - var(--themecolor-G)) * 0.86),
		calc(var(--themecolor-B) + (255 - var(--themecolor-B)) * 0.86);
	--color-tint-92:
		calc(var(--themecolor-R) + (255 - var(--themecolor-R)) * 0.92),
		calc(var(--themecolor-G) + (255 - var(--themecolor-G)) * 0.92),
		calc(var(--themecolor-B) + (255 - var(--themecolor-B)) * 0.92);
	--color-tint-95:
		calc(var(--themecolor-R) + (255 - var(--themecolor-R)) * 0.95),
		calc(var(--themecolor-G) + (255 - var(--themecolor-G)) * 0.95),
		calc(var(--themecolor-B) + (255 - var(--themecolor-B)) * 0.95);
	--color-shade-70:
		calc(30 * 0.7 + var(--themecolor-R) * (1 - 0.7)),
		calc(30 * 0.7 + var(--themecolor-G) * (1 - 0.7)),
		calc(30 * 0.7 + var(--themecolor-B) * (1 - 0.7));
	--color-shade-75:
		calc(30 * 0.75 + var(--themecolor-R) * (1 - 0.75)),
		calc(30 * 0.75 + var(--themecolor-G) * (1 - 0.75)),
		calc(30 * 0.75 + var(--themecolor-B) * (1 - 0.75));
	--color-shade-80:
		calc(30 * 0.8 + var(--themecolor-R) * (1 - 0.8)),
		calc(30 * 0.8 + var(--themecolor-G) * (1 - 0.8)),
		calc(30 * 0.8 + var(--themecolor-B) * (1 - 0.8));
	--color-shade-82:
		calc(30 * 0.82 + var(--themecolor-R) * (1 - 0.82)),
		calc(30 * 0.82 + var(--themecolor-G) * (1 - 0.82)),
		calc(30 * 0.82 + var(--themecolor-B) * (1 - 0.82));
	--color-shade-86:
		calc(30 * 0.86 + var(--themecolor-R) * (1 - 0.86)),
		calc(30 * 0.86 + var(--themecolor-G) * (1 - 0.86)),
		calc(30 * 0.86 + var(--themecolor-B) * (1 - 0.86));
	--color-shade-90:
		calc(30 * 0.9 + var(--themecolor-R) * (1 - 0.9)),
		calc(30 * 0.9 + var(--themecolor-G) * (1 - 0.9)),
		calc(30 * 0.9 + var(--themecolor-B) * (1 - 0.9));
	--color-shade-94:
		calc(30 * 0.94 + var(--themecolor-R) * (1 - 0.94)),
		calc(30 * 0.94 + var(--themecolor-G) * (1 - 0.94)),
		calc(30 * 0.94 + var(--themecolor-B) * (1 - 0.94));
	--color-shade-96:
		calc(30 * 0.96 + var(--themecolor-R) * (1 - 0.96)),
		calc(30 * 0.96 + var(--themecolor-G) * (1 - 0.96)),
		calc(30 * 0.96 + var(--themecolor-B) * (1 - 0.96));
	--color-tint-blue:
		calc(204 * 0.6 + var(--themecolor-R) * (1 - 0.6)),
		calc(226 * 0.6 + var(--themecolor-G) * (1 - 0.6)),
		calc(255 * 0.6 + var(--themecolor-B) * (1 - 0.6));

	/* Surface colors */
	--color-background: #f1f5f9;
	--color-foreground: #ffffff;
	--color-widgets: #ffffff;
	--color-widgets-disabled: #e2e8f0;
	--color-border: #cbd5e1;
	--color-border-on-foreground: #e2e8f0;
	--color-border-on-foreground-deeper: #cbd5e1;
	--color-text-deeper: #0f172a;
	--color-text: #334155;
	--color-text-secondary: #64748b;
	--color-selection: #c4b5fd;

	/* Shadows */
	--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
	--shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.07), 0 2px 4px -2px rgb(0 0 0 / 0.05);
	--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.08), 0 4px 6px -4px rgb(0 0 0 / 0.04);
	--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.04);

	/* Radius */
	--radius-sm: 6px;
	--radius-md: 10px;
	--radius-lg: 16px;
	--radius-xl: 24px;

	/* Transitions */
	--transition-fast: 150ms cubic-bezier(0.4, 0, 0.2, 1);
	--transition-base: 250ms cubic-bezier(0.4, 0, 0.2, 1);
	--transition-slow: 350ms cubic-bezier(0.4, 0, 0.2, 1);

	/* Typography */
	--font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
	--font-serif: 'Noto Serif SC', 'Georgia', 'Times New Roman', serif;
	--font-mono: 'JetBrains Mono', 'Fira Code', 'Consolas', monospace;
}

/* ============================================
   Dark Mode
   ============================================ */
html.darkmode body {
	--color-background: #0f172a;
	--color-foreground: #1e293b;
	--color-widgets: #334155;
	--color-widgets-disabled: #1e293b;
	--color-border: #475569;
	--color-border-on-foreground: #334155;
	--color-border-on-foreground-deeper: #475569;
	--color-text-deeper: #f1f5f9;
	--color-text: #cbd5e1;
	--color-text-secondary: #94a3b8;
	--color-darkmode-toolbar: 15, 23, 42;
	--color-darkmode-banner: #0f172a;
	--color-selection: #3b2f6b;
	--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.3);
	--shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.4);
	--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.4);
	--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.5);
}

html.darkmode.amoled-dark body,
html.darkmode.amoled-dark.immersion-color body {
	--color-background: #000000;
	--color-foreground: #0a0a0a;
	--color-widgets: #111111;
	--color-widgets-disabled: #1a1a1a;
	--color-border: #222222;
	--color-border-on-foreground: #1a1a1a;
	--color-border-on-foreground-deeper: #222222;
	--color-text-deeper: #ffffff;
	--color-text: #cccccc;
	--color-text-secondary: #888888;
	--color-darkmode-toolbar: 0, 0, 0;
	--color-darkmode-banner: #000000;
	--color-selection: #2a1f4a;
}

/* Immersion color */
html.immersion-color body {
	--color-background: rgb(var(--color-tint-86));
	--color-foreground: rgb(var(--color-tint-92));
	--color-widgets: rgb(var(--color-tint-95));
	--color-widgets-disabled: rgb(var(--color-tint-86));
	--color-border: rgb(var(--color-tint-78));
	--color-border-on-foreground: rgb(var(--color-tint-86));
	--color-border-on-foreground-deeper: rgb(var(--color-tint-80));
	--color-text-deeper: rgb(var(--color-shade-82));
	--color-text: rgb(var(--color-shade-70));
	--color-text-secondary: rgb(var(--color-shade-60));
}

/* ============================================
   Base / Reset
   ============================================ */
*, *::before, *::after {
	box-sizing: border-box;
}

html {
	font-size: 16px;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	scroll-behavior: smooth;
}

body {
	margin: 0;
	padding: 0;
	background: var(--color-background);
	color: var(--color-text);
	font-family: var(--font-sans);
	font-size: 1rem;
	line-height: 1.7;
	overflow-x: hidden;
	transition: background var(--transition-base), color var(--transition-base);
}

::selection {
	background: var(--color-selection);
	color: var(--color-text-deeper);
}

a {
	color: var(--themecolor);
	text-decoration: none;
	transition: color var(--transition-fast);
}

a:hover {
	color: var(--themecolor-dark);
	text-decoration: none;
}

img {
	max-width: 100%;
	height: auto;
}

h1, h2, h3, h4, h5, h6 {
	color: var(--color-text-deeper);
	font-weight: 700;
	line-height: 1.3;
	margin-top: 0;
}

/* ============================================
   Layout
   ============================================ */
#__layout {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 20px;
}

.content-area {
	max-width: 780px;
	margin: 0 auto;
	padding: 0;
}

@media (max-width: 768px) {
	.content-area {
		padding: 0 16px;
	}
}

/* ============================================
   Banner / Hero
   ============================================ */
.banner {
	position: relative;
	background: var(--themecolor-gradient);
	padding: 80px 0 60px;
	margin-bottom: -40px;
	overflow: hidden;
}

.banner::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: radial-gradient(ellipse at 20% 50%, rgba(255,255,255,0.15) 0%, transparent 60%),
				radial-gradient(ellipse at 80% 20%, rgba(167, 139, 250, 0.3) 0%, transparent 50%);
	pointer-events: none;
}

.banner h1, .banner .banner-title {
	color: #fff;
	font-size: 2.5rem;
	font-weight: 800;
	letter-spacing: -0.02em;
	text-shadow: 0 2px 10px rgba(0,0,0,0.15);
	position: relative;
	z-index: 1;
}

.banner .banner-subtitle {
	color: rgba(255,255,255,0.85);
	font-size: 1.1rem;
	margin-top: 8px;
	position: relative;
	z-index: 1;
}

/* Banner sizes */
.banner-mini .banner {
	padding: 40px 0 30px;
}

.no-banner .banner {
	display: none;
}

.banner-as-cover .banner {
	min-height: 100vh;
	display: flex;
	align-items: center;
	justify-content: center;
}

/* ============================================
   Cards
   ============================================ */
.card {
	background: var(--color-foreground);
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-sm);
	transition: box-shadow var(--transition-base), transform var(--transition-base);
}

.card:hover {
	box-shadow: var(--shadow-md);
}

.bg-white {
	background: var(--color-foreground) !important;
}

.bg-gradient-secondary {
	background: linear-gradient(135deg, var(--themecolor-light), var(--themecolor)) !important;
}

.shadow-sm {
	box-shadow: var(--shadow-sm) !important;
}

.shadow-lg {
	box-shadow: var(--shadow-lg) !important;
}

.shadow-sm:hover {
	box-shadow: var(--shadow-md) !important;
}

.border-0 {
	border: none !important;
}

/* ============================================
   Posts / Articles
   ============================================ */
.post {
	margin-bottom: 24px;
	border-radius: var(--radius-md);
	overflow: hidden;
}

.post.card {
	border: none;
	background: var(--color-foreground);
}

.post-header {
	padding: 32px 32px 0;
	position: relative;
}

.post-header.text-center {
	text-align: center;
}

.post-header-with-thumbnail {
	padding: 0;
}

.post-thumbnail {
	width: 100%;
	height: 240px;
	object-fit: cover;
	border-radius: var(--radius-md) var(--radius-md) 0 0;
}

.post-header-text-container {
	padding: 32px 32px 0;
}

.post-title {
	color: var(--color-text-deeper);
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1.3;
	display: block;
	transition: color var(--transition-fast);
}

.post-title:hover {
	color: var(--themecolor);
}

.post-full .post-title {
	font-size: 2rem;
	letter-spacing: -0.01em;
}

.post-meta {
	color: var(--color-text-secondary);
	font-size: 0.875rem;
	margin-top: 12px;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	justify-content: center;
}

.post-meta-devide {
	opacity: 0.4;
}

.post-content {
	padding: 24px 32px 32px;
	color: var(--color-text);
	font-size: 1rem;
	line-height: 1.8;
}

.post-content p {
	margin: 0 0 1.2em;
}

.post-content img {
	border-radius: var(--radius-sm);
	margin: 1.5em 0;
}

.post-tags {
	padding: 0 32px 24px;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
}

.post-tags .fa-tags {
	color: var(--color-text-secondary);
	font-size: 0.875rem;
}

.tag, .badge {
	display: inline-block;
	padding: 4px 12px;
	font-size: 0.75rem;
	font-weight: 600;
	border-radius: 9999px;
	letter-spacing: 0.01em;
	transition: all var(--transition-fast);
}

.badge-secondary {
	background: var(--color-widgets-disabled);
	color: var(--color-text-secondary);
}

.tag:hover, .badge:hover {
	transform: translateY(-1px);
}

.post-meta-detail-tag {
	background: linear-gradient(135deg, var(--themecolor-light), var(--themecolor));
	color: #fff !important;
}

.post-meta-detail-tag:hover {
	box-shadow: 0 4px 12px rgba(124, 58, 237, 0.3);
}

/* Post preview (homepage) */
.post-preview {
	cursor: pointer;
}

.post-preview .post-content {
	max-height: 120px;
	overflow: hidden;
	position: relative;
}

.post-preview .post-content::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 60px;
	background: linear-gradient(transparent, var(--color-foreground));
}

/* Password form */
.post-password-form-text {
	margin-bottom: 16px;
	color: var(--color-text-secondary);
}

.post-password-form-input {
	margin: 0 auto 16px;
}

.input-group {
	display: flex;
	align-items: center;
}

.input-group-alternative {
	background: var(--color-background);
	border-radius: var(--radius-sm);
	padding: 2px;
}

.input-group-prepend {
	padding: 0 12px;
	color: var(--color-text-secondary);
}

.input-group .form-control {
	flex: 1;
	border: none;
	background: transparent;
	padding: 10px 12px;
	color: var(--color-text);
	font-size: 0.9rem;
	outline: none;
}

.form-control:focus {
	outline: none;
}

/* Inline code */
.post-content code {
	font-family: var(--font-mono);
	font-size: 0.85em;
	background: var(--color-widgets-disabled);
	padding: 2px 8px;
	border-radius: 4px;
	color: var(--color-text-deeper);
}

/* ============================================
   Post Navigation
   ============================================ */
.post-navigation {
	display: flex;
	margin-bottom: 24px;
	padding: 20px 24px;
	border-radius: var(--radius-md);
	background: var(--color-foreground);
}

.post-navigation-item {
	flex: 1;
}

.post-navigation-next {
	text-align: right;
}

.page-navigation-extra-text {
	display: block;
	color: var(--color-text-secondary);
	font-size: 0.8rem;
	margin-bottom: 4px;
}

.post-navigation-item a {
	color: var(--color-text-deeper);
	font-weight: 600;
	transition: color var(--transition-fast);
}

.post-navigation-item a:hover {
	color: var(--themecolor);
}

/* ============================================
   Related Posts
   ============================================ */
.related-posts {
	margin-bottom: 24px;
	padding: 20px 24px;
	border-radius: var(--radius-md);
	background: var(--color-foreground);
}

.post-comment-title {
	font-size: 1.2rem;
	font-weight: 700;
	color: var(--color-text-deeper);
	display: flex;
	align-items: center;
	gap: 8px;
}

.related-post-card {
	display: inline-block;
	width: 180px;
	margin: 8px;
	vertical-align: top;
	position: relative;
	border-radius: var(--radius-sm);
	overflow: hidden;
	transition: transform var(--transition-fast);
}

.related-post-card:hover {
	transform: translateY(-4px);
}

.related-post-card-container {
	padding: 16px;
	background: linear-gradient(135deg, var(--themecolor-light), var(--themecolor));
	min-height: 100px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

.related-post-title {
	color: #fff;
	font-size: 0.9rem;
	font-weight: 600;
	line-height: 1.4;
}

.related-post-arrow {
	color: rgba(255,255,255,0.7);
	align-self: flex-end;
}

.related-post-thumbnail {
	width: 100%;
	height: 100px;
	object-fit: cover;
}

/* ============================================
   Page Information Card
   ============================================ */
.page-information-card-container {
	max-width: 780px;
	margin: 0 auto 24px;
	padding: 0;
}

@media (max-width: 768px) {
	.page-information-card-container {
		padding: 0 16px;
	}
}

.page-information-card {
	border-radius: var(--radius-md);
	padding: 28px 32px;
	color: #fff;
}

.page-information-card .text-black {
	color: #fff !important;
}

.page-information-card h3 {
	font-size: 1.5rem;
	font-weight: 700;
	color: #fff !important;
}

/* ============================================
   Buttons
   ============================================ */
.btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 20px;
	font-size: 0.875rem;
	font-weight: 600;
	border-radius: var(--radius-sm);
	border: none;
	cursor: pointer;
	transition: all var(--transition-fast);
	text-decoration: none;
	line-height: 1.4;
}

.btn:hover {
	transform: translateY(-1px);
	box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}

.btn-primary {
	background: var(--themecolor-gradient);
	color: #fff;
}

.btn-outline-primary {
	background: transparent;
	color: var(--themecolor);
	border: 2px solid var(--themecolor);
}

.btn-outline-primary:hover {
	background: var(--themecolor);
	color: #fff;
}

.btn-secondary {
	background: var(--color-widgets-disabled);
	color: var(--color-text);
}

.btn-icon {
	padding: 8px 12px;
}

.btn-icon-only {
	width: 40px;
	height: 40px;
	padding: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
}

.btn-lg {
	padding: 14px 28px;
	font-size: 1rem;
}

.btn-sm {
	padding: 6px 14px;
	font-size: 0.8rem;
}

.btn-block {
	width: 100%;
	justify-content: center;
}

.btn-info {
	background: #6366f1;
	color: #fff;
}

.btn-danger {
	background: #ef4444;
	color: #fff;
}

.btn-success {
	background: #10b981;
	color: #fff;
}

.btn-warning {
	background: #f59e0b;
	color: #fff;
}

.btn-default {
	background: var(--color-widgets-disabled);
	color: var(--color-text);
}

.btn-white {
	background: #fff;
	color: var(--color-text-deeper);
}

/* ============================================
   Forms
   ============================================ */
.form-group {
	margin-bottom: 16px;
}

.form-control {
	width: 100%;
	padding: 10px 16px;
	font-size: 0.9rem;
	color: var(--color-text);
	background: var(--color-foreground);
	border: 2px solid var(--color-border-on-foreground);
	border-radius: var(--radius-sm);
	transition: border-color var(--transition-fast);
	outline: none;
}

.form-control:focus {
	border-color: var(--themecolor);
}

.form-control-alternative {
	background: var(--color-background);
	border: none;
	border-radius: 9999px;
	padding: 10px 18px;
}

/* ============================================
   Page Navigation (Pagination)
   ============================================ */
.pagination, .page-links {
	display: flex;
	justify-content: center;
	gap: 6px;
	margin: 32px 0;
}

.page-numbers, .page-links a, .page-links span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 12px;
	background: var(--color-foreground);
	color: var(--color-text);
	border-radius: var(--radius-sm);
	font-size: 0.875rem;
	font-weight: 500;
	transition: all var(--transition-fast);
	box-shadow: var(--shadow-sm);
}

.page-numbers.current, .page-links .current {
	background: var(--themecolor-gradient);
	color: #fff;
	box-shadow: 0 4px 12px rgba(124, 58, 237, 0.3);
}

.page-numbers:hover, .page-links a:hover {
	transform: translateY(-2px);
	box-shadow: var(--shadow-md);
}

/* ============================================
   Search
   ============================================ */
.search-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 16px;
}

.custom-control {
	display: flex;
	align-items: center;
	gap: 6px;
}

.custom-control-input {
	accent-color: var(--themecolor);
}

.custom-control-label {
	font-size: 0.875rem;
	color: rgba(255,255,255,0.9);
}

/* ============================================
   Donate
   ============================================ */
.post-donate {
	text-align: center;
	padding: 20px 32px 32px;
	position: relative;
}

.donate-btn {
	position: relative;
}

.donate-qrcode {
	position: absolute;
	bottom: calc(100% + 12px);
	left: 50%;
	transform: translateX(-50%);
	padding: 12px;
	border-radius: var(--radius-sm);
	display: none;
}

.donate-qrcode img {
	width: 180px;
	height: 180px;
}

.donate-btn:hover + .donate-qrcode {
	display: block;
}

/* ============================================
   Share
   ============================================ */
#share_container {
	position: fixed;
	bottom: 24px;
	right: 24px;
	z-index: 100;
}

#share {
	display: none;
	gap: 8px;
	flex-direction: column;
	margin-bottom: 12px;
}

#share_container.opened #share {
	display: flex;
}

#share_show {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: var(--themecolor-gradient);
	color: #fff;
	box-shadow: 0 4px 16px rgba(124, 58, 237, 0.3);
	cursor: pointer;
	transition: transform var(--transition-fast);
}

#share_show:hover {
	transform: scale(1.1);
}

/* ============================================
   Siderbar (Leftbar)
   ============================================ */
#sidebar_mask {
	display: none;
}

.leftbar {
	width: 260px;
	position: fixed;
	top: 0;
	left: 0;
	bottom: 0;
	overflow-y: auto;
	padding: 16px;
	background: transparent;
	z-index: 100;
}

.leftbar .card {
	margin-bottom: 16px;
	border-radius: var(--radius-md);
	overflow: hidden;
}

.leftbar-banner {
	background: var(--themecolor-gradient);
	padding: 24px 20px;
	text-align: center;
}

.leftbar-banner-title {
	font-size: 1.3rem;
	font-weight: 700;
	color: #fff;
	display: block;
}

.leftbar-banner-subtitle {
	font-size: 0.85rem;
	color: rgba(255,255,255,0.8);
	display: block;
	margin-top: 6px;
}

#leftbar_announcement .leftbar-announcement-body {
	background: var(--themecolor-gradient);
	padding: 20px;
}

.leftbar-announcement-title {
	font-size: 1rem;
	font-weight: 700;
	margin-bottom: 8px;
}

.leftbar-announcement-content {
	font-size: 0.85rem;
	line-height: 1.6;
	opacity: 0.9;
}

/* Leftbar menu */
.leftbar-menu {
	list-style: none;
	padding: 0;
	margin: 0;
}

.leftbar-menu-item {
	border-bottom: 1px solid var(--color-border-on-foreground);
}

.leftbar-menu-item:last-child {
	border-bottom: none;
}

.leftbar-menu-item a {
	display: block;
	padding: 12px 20px;
	color: var(--color-text);
	font-size: 0.9rem;
	font-weight: 500;
	transition: all var(--transition-fast);
}

.leftbar-menu-item a:hover {
	background: var(--color-background);
	color: var(--themecolor);
	padding-left: 24px;
}

.leftbar-menu-item.current > a {
	color: var(--themecolor);
	font-weight: 600;
	background: rgba(124, 58, 237, 0.06);
	border-left: 3px solid var(--themecolor);
	padding-left: 17px;
}

.leftbar-menu-subitem {
	background: var(--color-background);
	border-radius: 0;
}

.leftbar-menu-haschildren > a::after {
	content: '▾';
	float: right;
	font-size: 0.75rem;
	opacity: 0.5;
}

/* Leftbar search */
.leftbar-search-button {
	padding: 16px 20px;
}

.leftbar-search-button .btn {
	position: relative;
}

#leftbar_search_input {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	opacity: 0;
	cursor: pointer;
}

/* Leftbar tabs */
.nav-wrapper {
	padding-top: 5px;
}

.nav-pills {
	display: flex;
	list-style: none;
	padding: 0;
	margin: 0;
}

.nav-pills .nav-item {
	flex: 1;
}

.nav-pills .nav-link {
	display: block;
	text-align: center;
	padding: 10px 16px;
	font-size: 0.85rem;
	font-weight: 500;
	color: var(--color-text-secondary);
	border-bottom: 2px solid transparent;
	transition: all var(--transition-fast);
	cursor: pointer;
}

.nav-pills .nav-link.active {
	color: var(--themecolor);
	border-bottom-color: var(--themecolor);
}

.nav-pills .nav-link:hover {
	color: var(--color-text-deeper);
}

/* ============================================
   Comments
   ============================================ */
.comments-area {
	margin-bottom: 24px;
	padding: 28px 32px;
	border-radius: var(--radius-md);
	background: var(--color-foreground);
}

.comments-title {
	font-size: 1.2rem;
	font-weight: 700;
	color: var(--color-text-deeper);
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 20px;
}

.comment-list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.comment-list .comment {
	padding: 16px 0;
	border-bottom: 1px solid var(--color-border-on-foreground);
}

.comment-list .comment:last-child {
	border-bottom: none;
}

.comment-author {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 8px;
}

.comment-author img.avatar {
	border-radius: 50%;
	width: 36px;
	height: 36px;
}

.comment-author .fn {
	font-weight: 600;
	font-style: normal;
	color: var(--color-text-deeper);
	font-size: 0.9rem;
}

.comment-metadata {
	font-size: 0.8rem;
	color: var(--color-text-secondary);
	margin-bottom: 8px;
}

.comment-content {
	font-size: 0.9rem;
	line-height: 1.7;
	color: var(--color-text);
}

.comment-content p {
	margin: 0 0 8px;
}

.reply a {
	font-size: 0.8rem;
	color: var(--themecolor);
	font-weight: 500;
}

/* Comment pagination */
.comments-navigation-more {
	text-align: center;
	margin-top: 16px;
}

.comments-navigation-more .btn {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	padding: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

/* ============================================
   Shuoshuo (Status/Thought)
   ============================================ */
.shuoshuo-container {
	margin-bottom: 24px;
}

.shuoshuo-meta {
	padding: 8px 16px;
	font-size: 0.8rem;
	color: var(--color-text-secondary);
	display: flex;
	align-items: center;
	gap: 6px;
	flex-wrap: wrap;
	border-radius: var(--radius-md) var(--radius-md) 0 0;
	background: var(--color-widgets-disabled);
}

.shuoshuo-main {
	padding: 24px 28px;
	border-radius: 0 0 var(--radius-md) var(--radius-md);
}

.shuoshuo-title {
	font-size: 1.2rem;
	font-weight: 600;
	color: var(--color-text-deeper);
	margin-bottom: 12px;
	display: block;
}

.shuoshuo-content {
	font-size: 1rem;
	line-height: 1.8;
	color: var(--color-text);
}

.shuoshuo-preview-container {
	padding: 24px 28px;
	margin-bottom: 16px;
	border-radius: var(--radius-md);
}

.shuoshuo-preview-meta {
	padding: 12px 28px 16px;
	font-size: 0.8rem;
	color: var(--color-text-secondary);
	display: flex;
	align-items: center;
	gap: 6px;
	flex-wrap: wrap;
}

.shuoshuo-preview-link {
	margin: 0 28px 16px;
}

/* ============================================
   Timeline (Archive)
   ============================================ */
.argon-timeline {
	position: relative;
	padding-left: 32px;
}

.argon-timeline::before {
	content: '';
	position: absolute;
	left: 10px;
	top: 0;
	bottom: 0;
	width: 2px;
	background: linear-gradient(to bottom, var(--themecolor), transparent);
}

.argon-timeline-node {
	position: relative;
	margin-bottom: 20px;
}

.argon-timeline-node::before {
	content: '';
	position: absolute;
	left: -26px;
	top: 8px;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--themecolor);
	border: 2px solid var(--color-foreground);
	box-shadow: 0 0 0 3px var(--themecolor);
}

.argon-timeline-time {
	font-size: 0.85rem;
	color: var(--color-text-secondary);
	margin-bottom: 8px;
	font-weight: 600;
}

.argon-timeline-card {
	padding: 12px 18px;
	border-radius: var(--radius-sm);
	font-size: 0.9rem;
}

.archive-timeline-year {
	font-size: 1.4rem;
	font-weight: 700;
	color: var(--themecolor) !important;
}

.archive-timeline-year a {
	color: var(--themecolor);
}

.archive-timeline-month {
	font-size: 1rem;
	color: var(--color-text-deeper);
}

.archive-timeline-title a {
	color: var(--color-text);
	font-weight: 500;
	transition: color var(--transition-fast);
}

.archive-timeline-title a:hover {
	color: var(--themecolor);
}

/* ============================================
   Footer
   ============================================ */
.site-footer {
	margin-top: 32px;
	padding: 24px 32px;
	text-align: center;
	font-size: 0.875rem;
	color: var(--color-text-secondary);
	border-radius: var(--radius-md);
	background: var(--color-foreground);
}

.site-footer a {
	color: var(--themecolor);
	font-weight: 500;
}

/* ============================================
   No Results
   ============================================ */
.no-results {
	text-align: center;
	padding: 48px 32px;
}

.no-results .post-title {
	font-size: 1.5rem;
	color: var(--color-text-deeper);
	margin-bottom: 12px;
}

/* ============================================
   Toolbar / Navbar
   ============================================ */
.toolbar {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 1000;
	background: rgba(255, 255, 255, 0.85);
	backdrop-filter: blur(20px);
	-webkit-backdrop-filter: blur(20px);
	border-bottom: 1px solid rgba(203, 213, 225, 0.3);
	padding: 0 20px;
	height: 56px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	transition: transform var(--transition-base);
}

html.darkmode .toolbar {
	background: rgba(15, 23, 42, 0.85);
	border-bottom-color: rgba(71, 85, 105, 0.3);
}

.toolbar-blur .toolbar {
	backdrop-filter: blur(30px);
	-webkit-backdrop-filter: blur(30px);
}

.toolbar a {
	color: var(--color-text);
	font-size: 0.875rem;
	font-weight: 500;
}

.toolbar a:hover {
	color: var(--themecolor);
}

.toolbar .toolbar-logo {
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--color-text-deeper);
}

.navbar-absolute .toolbar {
	position: absolute;
	background: transparent;
	border-bottom: none;
}

.navbar-absolute .toolbar a {
	color: rgba(255, 255, 255, 0.9);
}

/* ============================================
   Highlight / Code Blocks
   ============================================ */
pre {
	background: var(--color-widgets-disabled);
	border-radius: var(--radius-sm);
	padding: 16px 20px;
	overflow-x: auto;
	font-family: var(--font-mono);
	font-size: 0.85rem;
	line-height: 1.6;
	border: 1px solid var(--color-border-on-foreground);
}

pre code {
	background: none !important;
	padding: 0 !important;
}

/* ============================================
   Gutenberg / Block Editor
   ============================================ */
.wp-block-quote {
	border-left: 4px solid var(--themecolor);
	margin: 1.5em 0;
	padding: 12px 20px;
	background: var(--color-background);
	border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
}

.wp-block-pullquote {
	border-top: 3px solid var(--themecolor);
	border-bottom: 3px solid var(--themecolor);
	padding: 24px;
	margin: 1.5em 0;
	text-align: center;
}

.wp-block-table table {
	width: 100%;
	border-collapse: collapse;
}

.wp-block-table td, .wp-block-table th {
	padding: 10px 14px;
	border: 1px solid var(--color-border);
}

.wp-block-table th {
	background: var(--themecolor-gradient);
	color: #fff;
	font-weight: 600;
}

.wp-block-button .wp-block-button__link {
	display: inline-block;
	padding: 10px 24px;
	border-radius: var(--radius-sm);
	background: var(--themecolor-gradient);
	color: #fff !important;
	font-weight: 600;
	text-decoration: none;
}

.wp-block-separator {
	border: none;
	border-top: 2px solid var(--color-border);
	margin: 2em 0;
}

/* ============================================
   Animations
   ============================================ */
@keyframes fadeInUp {
	from {
		opacity: 0;
		transform: translateY(20px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes fadeIn {
	from { opacity: 0; }
	to { opacity: 1; }
}

@keyframes slideInLeft {
	from {
		opacity: 0;
		transform: translateX(-20px);
	}
	to {
		opacity: 1;
		transform: translateX(0);
	}
}

@keyframes pulse {
	0%, 100% { opacity: 1; }
	50% { opacity: 0.5; }
}

.post, .card {
	animation: fadeInUp 0.4s ease-out both;
}

.post:nth-child(1) { animation-delay: 0.05s; }
.post:nth-child(2) { animation-delay: 0.1s; }
.post:nth-child(3) { animation-delay: 0.15s; }
.post:nth-child(4) { animation-delay: 0.2s; }
.post:nth-child(5) { animation-delay: 0.25s; }

/* ============================================
   Scrollbar
   ============================================ */
::-webkit-scrollbar {
	width: 6px;
	height: 6px;
}

::-webkit-scrollbar-track {
	background: transparent;
}

::-webkit-scrollbar-thumb {
	background: var(--color-border);
	border-radius: 3px;
}

::-webkit-scrollbar-thumb:hover {
	background: var(--color-text-secondary);
}

/* ============================================
   Loading / Spinner
   ============================================ */
.loading-container {
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 60px 20px;
}

.loading-spinner {
	width: 36px;
	height: 36px;
	border: 3px solid var(--color-border);
	border-top-color: var(--themecolor);
	border-radius: 50%;
	animation: spin 0.8s linear infinite;
}

@keyframes spin {
	to { transform: rotate(360deg); }
}

/* ============================================
   Responsive
   ============================================ */
@media (max-width: 1024px) {
	.leftbar {
		width: 240px;
		padding: 12px;
	}

	.content-area {
		max-width: 100%;
		padding: 0 16px;
	}
}

@media (max-width: 768px) {
	.leftbar {
		width: 100%;
		position: relative;
		padding: 0;
		margin-bottom: 16px;
	}

	.leftbar .card {
		margin-bottom: 12px;
	}

	.banner {
		padding: 60px 0 40px;
	}

	.banner h1, .banner .banner-title {
		font-size: 1.8rem;
	}

	.post-header {
		padding: 24px 20px 0;
	}

	.post-header-text-container {
		padding: 24px 20px 0;
	}

	.post-content {
		padding: 16px 20px 24px;
	}

	.post-tags {
		padding: 0 20px 16px;
	}

	.post-full .post-title {
		font-size: 1.5rem;
	}

	.post-thumbnail {
		height: 180px;
	}

	.page-information-card {
		padding: 20px 24px;
	}

	.post-navigation {
		flex-direction: column;
		gap: 12px;
	}

	.post-navigation-next {
		text-align: left;
	}

	.related-post-card {
		width: 150px;
	}

	.comments-area {
		padding: 20px 20px;
	}

	#share_container {
		bottom: 16px;
		right: 16px;
	}

	.site-footer {
		padding: 20px;
	}
}

@media (max-width: 480px) {
	.banner {
		padding: 48px 0 32px;
	}

	.banner h1, .banner .banner-title {
		font-size: 1.5rem;
	}

	.post-thumbnail {
		height: 140px;
	}

	.related-post-card {
		width: 130px;
	}
}

/* ============================================
   Utility Classes
   ============================================ */
.text-center { text-align: center; }
.text-white { color: #fff; }
.text-black { color: var(--color-text-deeper); }
.mt-0 { margin-top: 0; }
.mt-3 { margin-top: 16px; }
.mb-0 { margin-bottom: 0; }
.mb-3 { margin-bottom: 16px; }
.mr-1 { margin-right: 8px; }
.mr-2 { margin-right: 12px; }
.ml-1 { margin-left: 8px; }
.d-inline-block { display: inline-block; }
.opacity-8 { opacity: 0.8; }
.position-relative { position: relative; }
.overflow-hidden { overflow: hidden; }
