@charset "utf-8";
* {
	margin: 0;
	padding: 0;
	box-sizing: border-box
}
body {
	font-family: "黑体";
	background: #fff;
	color: #2c3e50;
	font-size: 16px;
	line-height: 1.6
}
textarea {
	resize: none
}
svg:not(:root) {
	overflow: hidden
}
a {
	outline: 0;
	background: 0 0;
	color: inherit;
	transition: all .3s ease
}
a:hover {
	color: #2563eb
}
a, a:link, a:visited {
	text-decoration: none
}
h1, h2, h3, h4, h5, h6 {
	font-family: "黑体";
	color: #282828
}
h1 {
	font-size: 32px
}
h2 {
	font-size: 22px;
	font-weight: 600
}
h3 {
	font-size: 18px
}
h4 {
	font-size: 16px
}
h5 {
	font-size: 14px
}
h6 {
	font-size: 12px
}
p {
	font-size: 15px
}
span {
	font-size: 14px
}
input {
	border: none;
	background: 0 0;
	outline: 0
}
img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	pointer-events: none;
	user-select: none
}
ol, ul {
	margin: 0;
	padding: 0;
	list-style: none
}
.row {
	margin-bottom: 30px
}
.row:last-child {
	margin-bottom: 0
}
.row > h2 {
	margin-bottom: 20px
}
.text p {
	font-size: 18px;
	margin-bottom: 20px;
	line-height: 1.8
}
.text p:last-child {
	margin-bottom: 0
}
.icon {
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}
.grid {
	display: grid;
	gap: 20px
}
.card {
	padding: 25px;
	border-radius: 12px;
	background: #f2f6fe
}
.overlay {
	position: absolute;
	top: 0;
	left: 0;
	bottom: 0;
	right: 0;
	width: 100%;
	height: 100%;
	background: #000;
	opacity: .3;
	transition: opacity .3s ease
}
.popup {
	position: fixed;
	top: 0;
	left: 0;
	bottom: 0;
	right: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(0, 0, 0, .9);
	cursor: pointer;
	z-index: 10000
}
.popup-photo .popup-content {
	color: #fff;
	cursor: pointer;
	text-align: center
}
.popup-photo .popup-content img {
	max-width: 100%;
	max-height: 70vh;
	border-radius: 12px
}
.popup-photo .popup-content h2 {
	margin-top: 20px;
	color: #fff
}
.popup-photo .popup-content p {
	margin-top: 10px;
	opacity: .6
}
.progress {
	margin-bottom: 20px;
}
.progress:last-child {
	margin-bottom: 0
}
.progress .progress-text {
	display: flex;
	margin-bottom: 5px;
	justify-content: space-between
}
.progress .progress-bar-outer {
	height: 8px;
	background: #e8e8e8;
	border-radius: 6px;
	overflow: hidden
}
.progress .progress-bar-inner {
	height: 100%;
	background: #2563eb;
	border-radius: 6px;
	transition: width .6s ease
}
.progress .is-success .progress-bar-inner {
	background: #2aae67
}
.progress .is-danger .progress-bar-inner {
	background: #f55555
}
.progress .is-warning .progress-bar-inner {
	background: #ffa500
}
.page {
	width: 950px;
	min-height: 100vh;
	margin: 0 auto
}
.header {
	margin-bottom: 30px
}
.header .logo {
	padding: 50px;
	text-align: center
}
.header .logo h1 {
	font-weight: 300;
	letter-spacing: 3px
}
.header .logo p {
	margin-top: 10px;
	color: #778b9e
}
.menu {
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1px solid #e3e6e9;
	border-radius: 12px
}
.menu ul {
	display: flex;
	flex-wrap: wrap
}
.menu ul li a {
	display: block;
	padding: 15px 20px
}
.menu ul li a:hover {
	color: #2563eb
}
.menu ul li a.is-active {
	position: relative;
	color: #2563eb
}
.menu ul li a.is-active:after {
	position: absolute;
	content: "";
	left: 50%;
	bottom: 0;
	width: 20%;
	height: 3px;
	background: #2563eb;
	border-radius: 3px;
	transform: translateX(-50%)
}
.footer {
	margin-top: 30px
}
.footer .links {
	width: 100%;
	padding: 20px;
	border: 1px solid #e3e6e9;
	border-radius: 12px
}
.footer .links h3 {
	margin-bottom: 15px;
	line-height: 1
}
.footer .links .link-items {
	display: flex;
	flex-wrap: wrap;
	gap: 20px
}
.footer .links .link-items a {
	color: #778b9e;
	font-size: 14px;
	transition: color .3s
}
.footer .links .link-items a:hover {
	color: #2563eb
}
.footer .copyright {
	padding: 30px;
	color: #778b9e;
	text-align: center;
	line-height: 1
}
.footer .copyright ul li {
	font-size: 15px
}
.footer .copyright ul li {
	margin-bottom: 20px
}
.footer .copyright ul li:last-child {
	margin-bottom: 0
}
.footer .copyright ul li:first-child {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px
}
.footer .copyright ul li a {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 5px
}
.footer .copyright ul li img {
	width: 16px;
	height: auto
}
.main {
	display: flex;
	flex-wrap: wrap;
	gap: 30px
}
/***** 首页轮播图 *****/
.carousel {
	position: relative;
	width: 100%;
	height: 380px;
	border-radius: 12px;
	overflow: hidden
}
.carousel .carousel-slides {
	position: relative;
	width: 100%;
	height: 100%
}
.carousel .carousel-slides .carousel-slide {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	opacity: 0;
	transition: opacity .6s ease
}
.carousel .carousel-slides .carousel-slide.is-active {
	opacity: 1
}
.carousel .carousel-slides .carousel-slide .carousel-thumb {
	width: 100%;
	height: 100%
}
.carousel .carousel-slides .carousel-slide .carousel-caption {
	position: absolute;
	left: 0;
	bottom: 0;
	right: 0;
	padding-top: 50px;
	padding-left: 30px;
	padding-bottom: 30px;
	padding-right: 30px;
	background: linear-gradient(transparent, rgba(0, 0, 0, .3))
}
.carousel .carousel-slides .carousel-slide .carousel-caption .title {
	margin-bottom: 15px;
	line-height: 1
}
.carousel .carousel-slides .carousel-slide .carousel-caption .title h2 {
	color: #fff;
	font-size: 26px
}
.carousel .carousel-slides .carousel-slide .carousel-caption .desc p {
	color: #fff;
	opacity: .6
}
.carousel .carousel-dots {
	position: absolute;
	display: flex;
	left: 50%;
	bottom: 20px;
	transform: translateX(-50%);
	gap: 10px
}
.carousel .carousel-dots .dot {
	width: 8px;
	height: 8px;
	background: rgba(255, 255, 255, .6);
	border-radius: 50%;
	cursor: pointer;
	transition: all .3s
}
.carousel .carousel-dots .dot.is-active {
	background: #fff;
	transform: scale(1.2)
}
.carousel .carousel-nav {
	position: absolute;
	display: flex;
	top: 50%;
	width: 50px;
	height: 50px;
	color: #fff;
	background: rgba(255, 255, 255, .3);
	border-radius: 50%;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transform: translateY(-50%);
	transition: all .3s ease;
	overflow: hidden;
	opacity: 0
}
.carousel .carousel-nav:hover {
	background: rgba(255, 255, 255, .6)
}
.carousel .carousel-nav .icon {
	width: 18px;
	height: 18px
}
.carousel .carousel-prev {
	left: 50px
}
.carousel .carousel-next {
	right: 50px
}
.carousel:hover .carousel-nav {
	opacity: 1
}
.carousel:hover .carousel-prev {
	left: 15px
}
.carousel:hover .carousel-next {
	right: 15px
}

/***** 文章列表 *****/
.content {
	flex: 1
}
.article ul {
	display: flex;
	flex-flow: column;
	gap: 30px
}
.article-item {
	display: flex;
	align-items: center;
	gap: 20px;
}
.article-item .article-thumb {
	flex-shrink: 0;
	width: 200px;
	height: 150px;
	border-radius: 12px;
	overflow: hidden
}
.article-item .article-thumb a {
	position: relative;
	display: block;
	width: 100%;
	height: 100%
}
.article-item .article-thumb a:hover .overlay {
	opacity: 0
}
.article-item .article-text {
	flex: 1;
	min-width: 0
}
.article-item .article-text .title {
	margin-bottom: 5px
}
.article-item .article-text .title a {
	transition: color .3s ease
}
.article-item .article-text .title a:hover {
	color: #2563eb;
}
.article-item .article-text .meta {
	margin-bottom: 10px;
	color: #778b9e;
	font-size: 14px
}
.article-item .article-text .meta a:hover {
	color: #2563eb
}
.article-item .article-text .excerpt p:first-child {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	text-overflow: ellipsis
}
/***** 侧边栏 *****/
.sidebar {
	display: flex;
	flex-direction: column;
	width: 280px;
	gap: 30px
}
.sidebar .widget {
	border-radius: 12px
}
.sidebar .widget .widget-title {
	position: relative;
	margin-bottom: 10px
}
.sidebar .widget .widget-title span {
	position: relative;
	z-index: 1
}
/***** 侧边栏 *** 作者 *****/
.sidebar .widget-author {
	display: flex;
	flex-flow: column;
	padding: 30px 20px;
	border: 1px solid #e3e6e9;
	text-align: center;
	align-items: center;
	justify-content: center
}
.sidebar .widget-author .author-avatar {
	margin-bottom: 10px
}
.sidebar .widget-author .author-avatar a {
	display: block;
	width: 96px;
	height: 96px;
	border-radius: 100%;
	overflow: hidden
}
.sidebar .widget-author .author-name {
	margin-bottom: 10px;
	text-align: center
}
.sidebar .widget-author .author-name a {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 5px
}
.sidebar .widget-author .author-name .icon {
	width: 22px;
	height: 22px
}
.sidebar .widget-author .author-desc {
	margin-bottom: 20px;
	color: #718096
}
.sidebar .widget-author .author-social {
	display: flex;
	justify-content: center;
	gap: 12px
}
.sidebar .widget-author .author-social a {
	display: flex;
	width: 40px;
	height: 40px;
	color: #fff;
	border-radius: 50%;
	align-items: center;
	justify-content: center;
	transition: all .3s ease;
	overflow: hidden;
}
.sidebar .widget-author .author-social a:hover {
	transform: translateY(-3px);
	box-shadow: 0 2px 10px rgba(102, 126, 234, .3)
}
/***** 侧边栏 *** 分类 *****/
.sidebar .widget-category ul li {
	margin-bottom: 10px;
	border: 1px solid #e3e6e9;
	border-radius: 12px;
	position: relative;
	overflow: hidden
}
.sidebar .widget-category ul li:last-child {
	margin-bottom: 0
}
.sidebar .widget-category ul li a {
	display: flex;
	padding: 10px 12px;
	align-items: center;
	justify-content: space-between;
	transition: all .3s ease
}
.sidebar .widget-category ul li a:hover {
	padding-left: 15px;
	color: #2563eb;
	background: #e9effd
}
.sidebar .widget-category ul li a .title {
	color: #2c3e50
}
.sidebar .widget-category ul li a .count {
	padding: 2px 10px;
	color: #718096;
	background: #e9effd;
	font-size: 12px;
	border-radius: 8px;
	transition: all .3s ease
}
.sidebar .widget-category ul li a:hover .count {
	color: #fff;
	background: #2563eb;
	transition: all .3s ease
}
/***** 侧边栏 *** 相册 *****/
.sidebar .widget-photos .thumb {
	width: 100%;
	height: 120px
}
.sidebar .widget-photos ul li {
	margin-bottom: 20px
}
.sidebar .widget-photos a {
	position: relative;
	display: flex;
	border-radius: 12px;
	overflow: hidden
}
.sidebar .widget-photos .title {
	position: absolute;
	display: flex;
	top: 0;
	left: 0;
	bottom: 0;
	right: 0;
	color: #fff;
	align-items: center;
	justify-content: center
}
.sidebar .widget-photos .title span {
	padding: 6px 20px;
	color: #fff;
	font-size: 13px;
	border: 1px solid #fff;
	border-radius: 20px;
	transition: all .3s ease
}
.sidebar .widget-photos a:hover .overlay {
	opacity: .1
}
.sidebar .widget-photos a:hover .title span {
	color: #282828;
	background: #fff
}
/***** 页面 *****/
.main>.title {
	margin-top: 30px;
	margin-bottom: 30px;
	width: 100%;
	text-align: center
}

/***** 博客页面 *****/
.page-blog .banner {
	position: relative;
	display: flex;
	flex-direction: column;
	width: 100%;
	height: 290px;
	margin-bottom: 30px;
	background: #2563eb;
	border: 1px solid #e3e6e9;
	border-radius: 12px;
	align-items: center;
	justify-content: center;
	overflow: hidden
}
.page-blog .banner .banner-flash {
	position: absolute;
	top: 0;
	left: 0;
	bottom: 0;
	right: 0
}
.page-blog .banner .banner-flash .not-support {
	position: absolute;
	display: flex;
	top: 0;
	left: 0;
	bottom: 0;
	right: 0;
	background: #9d3a3c;
	flex-wrap: wrap;
	flex-direction: column;
	text-align: center;
	align-items: center;
	justify-content: center;
	gap: 10px;
	z-index: 1
}
.page-blog .banner .banner-flash .not-support .flash-logo {
	width: 50px;
	height: 50px;
	margin-bottom: 10px;
	border-radius: 12px;
	overflow: hidden
}
.page-blog .banner .banner-flash .not-support .flash-text {
	margin-bottom: 20px
}
.page-blog .banner .banner-flash .not-support .flash-text p {
	color: #fff;
	font-size: 16px
}
.page-blog .banner .banner-flash .not-support .flash-get {
	border: 1px solid #fff;
	border-radius: 50px;
	overflow: hidden
}
.page-blog .banner .banner-flash .not-support .flash-get a {
	display: block;
	padding: 8px 16px;
	color: #fff;
	font-size: 14px
}
.page-blog .banner .banner-flash .not-support .flash-get a:hover {
	color: #9d3a3c;
	background: #fff
}
.page-blog .banner .banner-content {
	position: relative
}
.page-blog .banner .banner-content h1 {
	color: #fff;
	font-weight: 300;
	letter-spacing: 3px
}
/***** 相册页面 *****/
.page-photos .photos {
	grid-template-columns: repeat(4, 1fr)
}
.page-photos .photos .photo-item {
	position: relative;
	height: 200px;
	background: #f2f6fe;
	border: 1px solid #e3e6e9;
	border-radius: 12px;
	cursor: pointer;
	transition: all .3s ease;
	overflow: hidden
}
.page-photos .photos .photo-item:hover {
	transform: translateY(-3px)
}
.page-photos .photos .photo-item.photo-tall {
	height: 300px
}
.page-photos .photos .photo-item.photo-wide {
	grid-column: span 2
}
.page-photos .photos .photo-item .photo-thumb {
	width: 100%;
	height: 100%
}
.page-photos .photos .photo-item .photo-thumb .overlay {
	opacity: .2
}
.page-photos .photos .photo-item .photo-thumb:hover .overlay {
	opacity: 0
}
.page-photos .photos .photo-item .photo-info {
	position: absolute;
	bottom: 0;
	width: 100%;
	padding: 15px;
	background: rgba(0, 0, 0, .3);
	line-height: 1
}
.page-photos .photos .photo-item .photo-info h4 {
	margin-bottom: 10px;
	color: #fff
}
.page-photos .photos .photo-item .photo-info p {
	color: #fff;
	opacity: .6
}
/***** 关于页面 *****/
.page-about .profile {
	position: relative;
	padding: 50px;
	color: #fff;
	line-height: 1;
	overflow: hidden
}
.page-about .profile .card-thumb {
	position: absolute;
	top: 0;
	left: 0;
	bottom: 0;
	right: 0;
	filter: blur(8px)
}
.page-about .profile .card-header {
	display: flex;
	margin-bottom: 30px;
	align-items: center;
	gap: 20px
}
.page-about .profile .card-header .author-avatar {
	position: relative;
	width: 100px;
	height: 100px;
	border: 6px solid rgba(255, 255, 255, .3);
	border-radius: 50%;
	overflow: hidden
}
.page-about .profile .card-header .author-info {
	position: relative;
	color: #fff
}
.page-about .profile .card-header .author-info .author-name {
	position: relative;
	display: flex;
	margin-bottom: 15px;
	align-items: center;
	gap: 5px
}
.page-about .profile .card-header .author-info .author-name .icon {
	width: 26px;
	height: 26px
}
.page-about .profile .card-header .author-info .author-name .name h2 {
	color: #fff
}
.page-about .profile .card-header .author-info .author-desc {
	margin-bottom: 15px;
	font-size: 16px
}
.page-about .profile .card-header .author-info .author-location {
	display: flex;
	align-items: center;
	gap: 5px;
	opacity: .8
}
.page-about .profile .card-header .author-info .author-location .icon {
	width: 16px;
	height: 16px
}
.page-about .profile .card-body .stats {
	grid-template-columns: repeat(4, 1fr)
}
.page-about .profile .card-body .stats .stat-item {
	position: relative;
	display: flex;
	flex-flow: column;
	padding: 20px 15px;
	background: rgba(255, 255, 255, .1);
	border-radius: 12px;
	align-items: center;
	gap: 30px;
	transition: all .3s ease
}
.page-about .profile .card-body .stats .stat-item:hover {
	background: rgba(255, 255, 255, .2);
	transform: translateY(-3px)
}
.page-about .profile .card-body .stats .stat-item .icon {
	width: 30px;
	height: 30px;
	overflow: hidden
}
.page-about .profile .card-body .stats .stat-item .count h1 {
	color: #fff
}
.page-about .profile .card-body .stats .stat-item .label {
	opacity: .85
}
.page-about .skills {
	grid-template-columns: repeat(3, 1fr)
}
.page-about .skills .card-header {
	display: flex;
	margin-bottom: 15px;
	align-items: center;
	gap: 5px
}
.page-about .skills .card-header .icon {
	width: 22px;
	height: 22px;
	overflow: hidden
}
.page-about .timeline {
	position: relative;
	padding-left: 30px
}
.page-about .timeline:before {
	position: absolute;
	content: "";
	top: 0;
	left: 10px;
	bottom: 0;
	width: 2px;
	background: #2563eb
}
.page-about .timeline .timeline-item {
	position: relative;
	margin-bottom: 30px;
	padding-left: 30px
}
.page-about .timeline .timeline-item:last-child {
	margin-bottom: 0
}
.page-about .timeline .timeline-item .timeline-marker {
	position: absolute;
	top: 30px;
	left: -25px;
	width: 12px;
	height: 12px;
	background: #fff;
	border: 3px solid #2563eb;
	border-radius: 50%
}
.page-about .timeline .timeline-item .timeline-wrapper {
	padding: 20px;
	background: #f2f6fe;
	border-radius: 12px
}
.page-about .timeline .timeline-item .timeline-header {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 5px
}
.page-about .timeline .timeline-item .timeline-header .timeline-timestamp {
	color: #2563eb;
	font-size: 14px;
	font-weight: 500
}
.page-about .timeline .timeline-item .timeline-body span {
	display: block;
	margin-bottom: 10px;
	color: #778b9e
}
.page-about .edu {
	display: flex;
	border: 1px solid #e3e6e9;
	align-items: flex-start;
	gap: 20px
}
.page-about .edu .card-header .icon {
	width: 55px;
	height: 55px;
	border-radius: 12px
}
.page-about .edu .card-body h3 {
	margin-bottom: 5px
}
.page-about .edu .card-body span {
	display: block;
	margin-bottom: 10px;
	color: #2563eb
}
.page-about .hobby {
	grid-template-columns: repeat(4, 1fr)
}
.page-about .hobby .hobby-item {
	display: flex;
	padding: 25px 15px;
	background: #f2f6fe;
	border-radius: 12px;
	flex-flow: column;
	text-align: center;
	align-items: center;
	justify-content: center;
	transition: all .3s ease
}
.page-about .hobby .hobby-item:hover {
	background: #e9effd;
	transform: translateY(-5px)
}
.page-about .hobby .hobby-item .icon {
	height: 60px;
	width: 60px;
	margin-bottom: 15px;
	border-radius: 50%
}
.page-about .hobby .hobby-item .title {
	margin-bottom: 10px
}
.page-about .contact {
	grid-template-columns: repeat(2, 1fr)
}
.page-about .contact .contact-item {
	padding: 20px;
	background: #f2f6fe;
	border-radius: 12px;
	transition: all .3s ease
}
.page-about .contact .contact-item:hover {
	background: #e9effd;
	transform: translateX(5px)
}
.page-about .contact .contact-item a {
	display: flex;
	align-items: center;
	gap: 15px
}
.page-about .contact .contact-item .icon {
	width: 50px;
	height: 50px;
	border-radius: 10px
}
.page-about .contact .contact-item .title {
	color: #778b9e
}
/***** 链接页面 *****/
.page-links .links {
	grid-template-columns: repeat(3, 1fr)
}
.page-links .links .link-item {
	display: block;
	padding: 25px;
	border: 1px solid #e3e6e9;
	border-radius: 12px;
	transition: all .3s ease
}
.page-links .links .link-item:hover {
	border-color: #2563eb;
	box-shadow: 0 8px 25px rgba(37, 99, 235, .2);
	transform: translateY(-3px)
}
.page-links .links .link-item .icon {
	margin-bottom: 10px;
	width: 50px;
	height: 50px;
	border: 1px solid #e3e6e9;
	border-radius: 12px
}
.page-links .links .link-item .title {
	margin-bottom: 5px
}
.page-links .links .link-item .desc {
	color: #778b9e
}
/***** 归档页面 *****/
.page-archive .archive {
	padding: 30px;
	background: #fff;
	border: 1px solid #e3e6e9;
	border-radius: 12px;
}
.page-archive .archive .card-header {
	display: flex;
	margin-bottom: 30px;
	padding-bottom: 20px;
	border-bottom: 1px solid #e3e6e9;
	line-height: 1;
	align-items: center;
	gap: 10px
}
.page-archive .archive .card-header .icon {
	width: 22px;
	height: 22px
}
.page-archive .archive .card-header .year {
	display: flex;
	align-items: center;
	gap: 10px
}
.page-archive .archive .card-body .group {
	margin-bottom: 30px
}
.page-archive .archive .card-body .group:last-child {
	margin-bottom: 0
}
.page-archive .archive .card-body .group .group-header {
	display: flex;
	margin-bottom: 30px;
	line-height: 1;
	align-items: center;
	gap: 5px;
}
.page-archive .archive .card-body .group .group-header .icon {
	width: 20px;
	height: 20px
}
.page-archive .archive .card-body .group .group-header .month {
	display: flex;
	align-items: center;
	gap: 10px
}
.page-archive .archive .card-body .group .group-header .month span {
	font-size: 13px
}
.page-archive .archive .card-body .group .group-body ul {
	display: flex;
	flex-direction: column;
	gap: 30px
}
.page-archive .archive .card-body .group .group-body ul li {
	display: flex;
	align-items: center;
	gap: 10px;
	transition: all .6s ease
}
.page-archive .archive .card-body .group .group-body ul li:last-child {
	border-bottom: none
}
.page-archive .archive .card-body .group .group-body ul li:hover {
	padding-left: 10px;
	transition: all .6s ease
}
.page-archive .archive .card-body .group .group-body .article-date {
	min-width: 60px;
	font-size: 13px
}
.page-archive .archive .card-body .group .group-body .article-title {
	flex: 1;
	font-size: 16px;
	transition: color .3s ease
}
.page-archive .archive .card-body .group .group-body .article-title:hover {
	color: #2563eb
}
.page-archive .archive .card-body .group .group-body .article-category {
	padding: 5px 10px;
	font-size: 12px;
	border-radius: 6px
}
.page-archive .archive .card-body .group .group-body .article-category.blue {
	color: #0379ff;
	background: #ebf8ff
}
.page-archive .archive .card-body .group .group-body .article-category.green {
	color: #38b2ac;
	background: #e6fffa
}
.page-archive .archive .card-body .group .group-body .article-category.red {
	color: #e53e3e;
	background: #fff5f5
}
.page-article .article-detail {
	border-radius: 12px;
	overflow: hidden
}
.page-article .article-header {
	margin-top: 30px;
	margin-bottom: 30px
}
.page-article .article-header .article-title {
	position: relative;
	margin-bottom: 15px;
	color: #fff
}
.page-article .article-header .article-banner {
	position: relative;
	padding-left: 50px;
	padding-top: 60px;
	padding-right: 50px;
	padding-bottom: 50px;
	border-radius: 12px;
	overflow: hidden
}
.page-article .article-header .article-banner .article-thumb {
	position: absolute;
	top: 0;
	left: 0;
	bottom: 0;
	right: 0;
	filter: blur(2px)
}
.page-article .article-header .article-banner .article-title h1 {
	color: #fff
}
.page-article .article-header .article-banner .article-meta {
	position: relative;
	color: #bfcbd9;
	font-size: 14px
}
.page-article .article-header .article-banner .article-meta a:hover {
	color: #fff
}
.page-article .article-header .article-banner .article-title h1 {
	color: #fff
}
.page-article .article-header .article-banner .article-meta a:hover {
	color: #fff
}
.page-article .article-header > .article-meta {
	position: relative;
	padding-bottom: 20px;
	color: #778b9e;
	font-size: 14px;
	border-bottom: 1px solid #e3e6e9
}
.page-article .article-header > .article-meta a:hover {
	color: #2563eb
}
.page-article .article-body p {
	margin-bottom: 30px;
	font-size: 16px;
	line-height: 2.2
}
.page-article .article-body h3 {
	margin-bottom: 20px
}
.page-article .article-body .list {
	margin-bottom: 30px
}
.page-article .article-body .list li {
	margin-bottom: 30px
}
.page-article .article-body .list li:last-child {
	margin-bottom: 0
}
.page-article .article-body .book-item {
	padding: 20px;
	margin-bottom: 30px;
	background: #f2f6fe;
	border-left: 5px solid #2563eb
}
.page-article .article-body .book-item h4 {
	margin-bottom: 5px
}
.page-article .article-body .book-item p {
	color: #778b9e;
	font-size: 14px;
	margin: 0
}
.page-article .article-body .book-item span {
	display: inline-block;
	margin-bottom: 15px;
	padding: 2px 10px;
	color: #fff;
	background: #2563eb;
	border-radius: 6px
}
.page-article .article-body .counter {
	counter-reset: step
}
.page-article .article-body .counter.counter-item {
	position: relative;
	margin-bottom: 25px;
	padding-left: 50px
}
.page-article .article-body .counter.counter-item::before {
	position: absolute;
	display: flex;
	counter-increment: step;
	content: counter(step);
	top: 0;
	left: 0;
	width: 32px;
	height: 32px;
	color: #fff;
	background: #2563eb;
	border-radius: 50%;
	align-items: center;
	justify-content: center;
	font-weight: 600
}
.page-article .article-body .counter.counter-item h4 {
	margin-bottom: 8px
}
.page-article .article-body .counter.counter-item p {
	margin: 0;
	color: #778b9e
}
.page-article .article-body .code {
	margin-bottom: 30px;
	background: #0d1117;
	border-radius: 12px;
	overflow: hidden
}
.page-article .article-body .code .code-header {
	display: flex;
	padding: 12px 16px;
	background: #161b22;
	border-bottom: 1px solid #30363d;
	align-items: center;
	justify-content: space-between
}
.page-article .article-body .code .code-header .dots {
	display: flex;
	gap: 6px
}
.page-article .article-body .code .code-header .dot {
	width: 12px;
	height: 12px;
	border-radius: 50%
}
.page-article .article-body .code .code-header .red {
	background: #ff5f56
}
.page-article .article-body .code .code-header .yellow {
	background: #ffbd2e
}
.page-article .article-body .code .code-header .green {
	background: #27c93f
}
.page-article .article-body .code .code-header .badge {
	padding: 2px 10px;
	color: #7d8590;
	background: hsla(0, 0%, 100%, .05);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .5px;
	border-radius: 6px;
	text-transform: uppercase
}
.page-article .article-body .code .code-body {
	padding: 30px
}
.page-article .article-body .code .code-body pre code.hljs {
	display: block;
	overflow-x: auto
}
.page-article .article-body .code .code-body .hljs {
	color: #d8d8d8
}
.page-article .article-body .code .code-body .hljs::selection {
	background: #282829
}
.page-article .article-body .code .code-body .hljs-comment {
	color: #778b9e
}
.page-article .article-body .code .code-body .hljs-tag {
	color: #b8b8b8
}
.page-article .article-body .code .code-body .hljs-operator, .page-article .article-body .code .code-body .hljs-punctuation, .page-article .article-body .code .code-body .hljs-subst {
	color: #d8d8d8
}
.page-article .article-body .code .code-body .hljs-operator {
	opacity: .7
}
.page-article .article-body .code .code-body .hljs-bullet, .page-article .article-body .code .code-body .hljs-deletion, .page-article .article-body .code .code-body .hljs-name, .page-article .article-body .code .code-body .hljs-selector-tag, .page-article .article-body .code .code-body .hljs-template-variable, .page-article .article-body .code .code-body .hljs-variable {
	color: #ab4642
}
.page-article .article-body .code .code-body .hljs-attr, .page-article .article-body .code .code-body .hljs-link, .page-article .article-body .code .code-body .hljs-literal, .page-article .article-body .code .code-body .hljs-number, .page-article .article-body .code .code-body .hljs-symbol, .page-article .article-body .code .code-body .hljs-variable.constant_ {
	color: #dc9656
}
.page-article .article-body .code .code-body .hljs-class .hljs-title, .page-article .article-body .code .code-body .hljs-title, .page-article .article-body .code .code-body .hljs-title.class_ {
	color: #f7ca88
}
.page-article .article-body .code .code-body .hljs-strong {
	font-weight: 700;
	color: #f7ca88
}
.page-article .article-body .code .code-body .hljs-addition, .page-article .article-body .code .code-body .hljs-code, .page-article .article-body .code .code-body .hljs-string, .page-article .article-body .code .code-body .hljs-title.class_.inherited__ {
	color: #a1b56c
}
.page-article .article-body .code .code-body .hljs-built_in, .page-article .article-body .code .code-body .hljs-doctag, .page-article .article-body .code .code-body .hljs-keyword.hljs-atrule, .page-article .article-body .code .code-body .hljs-quote, .page-article .article-body .code .code-body .hljs-regexp {
	color: #86c1b9
}
.page-article .article-body .code .code-body .hljs-attribute, .page-article .article-body .code .code-body .hljs-function .hljs-title, .page-article .article-body .code .code-body .hljs-section, .page-article .article-body .code .code-body .hljs-title.function_, .page-article .article-body .code .code-body .ruby .hljs-property {
	color: #7cafc2
}
.page-article .article-body .code .code-body .diff .hljs-meta, .page-article .article-body .code .code-body .hljs-keyword, .page-article .article-body .code .code-body .hljs-template-tag, .page-article .article-body .code .code-body .hljs-type {
	color: #ba8baf
}
.page-article .article-body .code .code-body .hljs-emphasis {
	color: #ba8baf;
}
.page-article .article-body .code .code-body .hljs-meta, .page-article .article-body .code .code-body .hljs-meta .hljs-keyword, .page-article .article-body .code .code-body .hljs-meta .hljs-string {
	color: #a16946
}
.page-article .article-body .code .code-body .hljs-meta .hljs-keyword, .page-article .article-body .code .code-body .hljs-meta-keyword {
	font-weight: 700
}
.page-article .article-body mark {
	padding: 5px 10px;
	margin-left: 5px;
	margin-right: 5px;
	color: #0379ff;
	background: #ebf8ff;
	border-radius: 6px
}
.page-article .article-body .tip-box {
	padding: 15px 20px;
	margin-bottom: 30px;
	background: #e9effd;
	border-radius: 12px;
	line-height: 2.2;
}