/* [hidden] hide BBCode */
.hidebox {
	font-weight: normal;
	background-color: #c5e3bf;
	border: 1px solid #72b173;
	border-radius: 4px;
	position: relative;
	margin: 5px 0;
	padding: 39px 19px 14px;
}

.hidebox_title {
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 12px;
	font-weight: bold;
	border: 1px solid #72b173;
	border-radius: 4px 0;
	color: #2f4f2f;
	position: absolute;
	top: -1px;
	left: -1px;
	padding: 5px 12px;
}

.hidebox_hidden {
	background-color: #f2dede;
	border-color: #ebccd1;
	color: #80001c;
}

.hidebox_visible {
	color: #2f4f2f;
}

/* [spoil] spoiler BBCode */
.spoilbtn:hover {
	color: #d31141 !important;
}

/* [fade] fade text in/out effect */
.fadeEffect {
	-moz-animation: fade 2s infinite;
	-webkit-animation: fade 2s infinite;
	animation: fade 2s infinite;
}

@-webkit-keyframes fade {
	50% {
		opacity: 0;
	}
}

@keyframes fade {
	50% {
		opacity: 0;
	}
}

/* video player styling */
.auto-video {
	max-width: 100%;
}

/* Site custom BBCodes */
.abbc3-audio {
	display: inline-block;
	max-width: 100%;
	min-width: 18rem;
	vertical-align: middle;
}

.abbc3-video,
.abbc3-bilibili,
.abbc3-peertube {
	display: block;
	width: 100%;
	max-width: 640px;
	margin: 1em 0;
	background: #000000;
}

.abbc3-video,
.abbc3-bilibili,
.abbc3-peertube {
	aspect-ratio: 16 / 9;
	height: auto;
}

.abbc3-legend {
	width: auto;
	margin: 1em 0;
	border: 2px solid #4682b4;
	border-radius: 4px;
	padding: 10px;
}

.abbc3-legend legend {
	border: 2px solid #4682b4;
	border-radius: 4px;
	padding: 4px 8px;
	color: #004000;
	font-weight: bold;
}

.abbc3-alert,
.abbc3-callout {
	margin: 1em 0;
	border: 1px solid #9bbad8;
	border-left-width: 4px;
	border-radius: 4px;
	padding: 0.75em 1em;
	background: #eef6ff;
	color: #17324d;
}

.abbc3-alert-success,
.abbc3-callout-notice,
.abbc3-callout-tips {
	border-color: #76a982;
	background: #edf8ef;
	color: #1f4d2a;
}

.abbc3-alert-error,
.abbc3-callout-error {
	border-color: #c76060;
	background: #fff0f0;
	color: #6f1e1e;
}

.abbc3-callout-warn {
	border-color: #d0a048;
	background: #fff8e8;
	color: #684800;
}

.abbc3-callout-sc_blue {
	border-color: #5f88bf;
	background: #eef5ff;
	color: #1c416f;
}

.abbc3-heading {
	margin: 1em 0 0.45em;
	font-weight: bold;
	line-height: 1.25;
}

.abbc3-heading-2 {
	font-size: 1.5em;
}

.abbc3-heading-3 {
	font-size: 1.25em;
}

.abbc3-heading-4 {
	font-size: 1.1em;
}

.abbc3-center {
	display: block;
	text-align: center;
}

.abbc3-paper {
	position: relative;
	margin: 1em 0;
	border: 1px solid #d5c9aa;
	border-radius: 4px;
	padding: 1em 1.25em;
	background: #fffdf4 repeating-linear-gradient(to bottom, transparent 0, transparent 1.85em, rgba(167, 139, 83, 0.18) 1.9em);
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
	color: #2d2618;
}

.abbc3-paper p {
	margin: 0;
}

.abbc3-paper-left {
	text-align: left;
}

.abbc3-paper-center {
	text-align: center;
}

.abbc3-paper-right {
	text-align: right;
}

.abbc3-paper-justify {
	text-align: justify;
}

.abbc3-float-image {
	max-width: min(45%, 320px);
	height: auto;
	margin-bottom: 0.5em;
}

.abbc3-float-image-left {
	float: left;
	margin-right: 1em;
}

.abbc3-float-image-right {
	float: right;
	margin-left: 1em;
}

.abbc3-inline-code {
	border: 1px solid #d2d2d2;
	border-radius: 3px;
	padding: 0.1em 0.3em;
	background: #f6f6f6;
	font-family: monospace;
}

.abbc3-rule {
	clear: both;
	margin: 1.2em 0;
	border: 0;
	border-top: 1px solid #b4bac0;
}

.abbc3-space {
	white-space: pre;
}

.abbc3-mdui-icon,
.material-icons {
	font-family: "Material Icons", sans-serif;
	font-weight: normal;
	font-style: normal;
	line-height: 1;
	text-transform: none;
	letter-spacing: normal;
	word-wrap: normal;
	white-space: nowrap;
	direction: ltr;
}

.abbc3-mdui-container {
	margin: 1em 0;
	padding: 1em;
	background-position: center;
	background-size: cover;
}

.abbc3-abbr {
	border-bottom: 1px dotted currentColor;
	cursor: help;
	text-decoration: none;
}

.abbc3-mark {
	border-radius: 2px;
	padding: 0 0.15em;
	background: #fff3a3;
	color: inherit;
}

.abbc3-gallery {
	display: flex;
	gap: 0.75em;
	margin: 1em 0;
}

.abbc3-gallery-column {
	display: flex;
	flex: 1 1 0;
	flex-direction: column;
	gap: 0.75em;
	min-width: 0;
}

.abbc3-gallery-item {
	position: relative;
	overflow: hidden;
	border-radius: 4px;
	line-height: 0;
}

.abbc3-gallery-item img {
	display: block;
	width: 100%;
	height: auto;
}

.abbc3-gallery-overlay {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	padding: 0.6em 0.75em;
	background: rgba(0, 0, 0, 0.62);
	color: #ffffff;
	line-height: 1.4;
}

.abbc3-details {
	margin: 1em 0;
	border: 1px solid #d0d7de;
	border-radius: 4px;
	padding: 0.75em 1em;
	background: #fbfbfb;
}

.abbc3-summary {
	cursor: pointer;
	font-weight: bold;
}

.abbc3-summary-content {
	margin-top: 0.75em;
}

.abbc3-codepen {
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 300px;
	margin: 1em 0;
	border: 1px solid #d0d7de;
	border-radius: 4px;
	padding: 1em;
}

.font_ij,
.abbc3-ij,
.abbc3-cj {
	font-family: "ABBC3 IJ", "Hiragino Mincho ProN", "Yu Mincho", serif;
}

.ijp_outer,
.abbc3-ijr {
	background-color: #f4eedc;
	border: 2px solid #a9c5de;
	display: inline-block;
	line-height: 1;
	margin: 0;
	padding: 0;
	text-align: center;
	vertical-align: middle;
}

.ijr_main,
.ijp_main {
	display: block;
	font-size: 30px;
	height: 30px;
	line-height: 1;
	overflow: hidden;
}

.ijr_main .font_ij,
.ijp_main .font_ij {
	line-height: 1;
}

.ijr_bottom,
.ijp_bottom {
	color: #3c8f71;
	display: block;
	font-size: 12px;
	line-height: 20px;
}

.abbc3-ijr .ijr_bottom,
.ijr_bottom {
	height: 0;
	opacity: 1;
	overflow: hidden;
	transform: none;
}

.abbc3-glyphwiki {
	display: inline-block;
	max-width: 100%;
	height: auto;
	vertical-align: middle;
}

.abbc3-svg-render {
	display: inline-block;
	max-width: 100%;
	height: auto;
	vertical-align: middle;
}

.abbc3-xq {
	margin: 1em 0;
}

@media screen and (max-width: 700px) {
	.abbc3-audio {
		min-width: 0;
		width: 100%;
	}

	.abbc3-float-image {
		float: none;
		display: block;
		max-width: 100%;
		margin-right: 0;
		margin-left: 0;
	}

	.abbc3-gallery {
		flex-direction: column;
	}
}

/* Pipe Table styling */
.pipe-table {
	margin-bottom: 0.813rem;
}

.pipe-table th,
.pipe-table td {
	padding: 0 12px;
}

.pipe-table th {
	background-color: #0076b1;
	color: #ffffff;
}

.pipe-table tr:hover {
	background-color: #f5f5f5;
}

/* Marquee styling */
.abbc3-marquee {
	overflow: hidden;
}

.abbc3-marquee-left {
	text-align: center;
	-webkit-transform: translateX(100%);
	-moz-transform: translateX(100%);
	transform: translateX(100%);
	-webkit-animation: marquee-x 10s linear normal infinite;
	-moz-animation: marquee-x 10s linear normal infinite;
	animation: marquee-x 10s linear normal infinite;
}

.abbc3-marquee-right {
	text-align: center;
	-webkit-transform: translateX(-100%);
	-moz-transform: translateX(-100%);
	transform: translateX(-100%);
	-webkit-animation: marquee-x 10s linear reverse infinite;
	-moz-animation: marquee-x 10s linear reverse infinite;
	animation: marquee-x 10s linear reverse infinite;
}

.abbc3-marquee-up {
	height: 20em;
	-webkit-transform: translateY(100%);
	-moz-transform: translateY(100%);
	transform: translateY(100%);
	-webkit-animation: marquee-y 5s linear normal infinite;
	-moz-animation: marquee-y 5s linear normal infinite;
	animation: marquee-y 5s linear normal infinite;
}

.abbc3-marquee-down {
	height: 20em;
	-webkit-transform: translateY(-100%);
	-moz-transform: translateY(-100%);
	transform: translateY(-100%);
	-webkit-animation: marquee-y 5s linear reverse infinite;
	-moz-animation: marquee-y 5s linear reverse infinite;
	animation: marquee-y 5s linear reverse infinite;
}

@keyframes marquee-x {
	0% {
		-webkit-transform: translateX(100%);
		-moz-transform: translateX(100%);
		transform: translateX(100%);
	}

	100% {
		-webkit-transform: translateX(-100%);
		-moz-transform: translateX(-100%);
		transform: translateX(-100%);
	}
}

@keyframes marquee-y {
	0% {
		-webkit-transform: translateY(100%);
		-moz-transform: translateY(100%);
		transform: translateY(100%);
	}

	100% {
		-webkit-transform: translateY(-100%);
		-moz-transform: translateY(-100%);
		transform: translateY(-100%);
	}
}
