/**
	* ========================================================
	* GRID
	* ========================================================
**/
.col {
	align-items: flex-start;
	background: var(--background);
	background-clip: padding-box;
	display: flex;
	flex-direction: column;
	flex-wrap: wrap;
	justify-content: space-between;
	margin: 0 2vw;
	padding: 1rem;
}
.col:nth-of-type(2) {
	margin-top: 1rem;
}
.col > * {
	width: 100%;
}
.col .col {
	margin-left: 0;
	margin-right: 0;
	padding-left: 0;
	padding-right: 0;
}
@media(min-width: 800px) {
	.col {
		flex-direction: row;
	}
	.c1 > * {
		width: calc(100%);
	}
	.c1 > * + * {
		margin-top: 3rem;
	}
	.c2 > * {
		width: calc((100% - (3rem * 1)) * (1/2));
	}
	.c3 > * {
		width: calc((100% - (3rem * 2)) * (1/3));
	}
	.c4 > * {
		width: calc((100% - (3rem * 3)) * (1/4));
	}
	.c3-AAB > :nth-child(odd), .c3-ABB > :nth-child(even) {
		width: calc((100% - (3rem * 1)) * (2/3));
	}
	.c3-AAB > :nth-child(even), .c3-ABB > :nth-child(odd) {
		width: calc((100% - (3rem * 1)) * (1/3));
	}
	.c4-AAAB > :nth-child(odd), .c4-ABBB > :nth-child(even) {
		width: calc((100% - (3rem * 1)) * (3/4));
	}
	.c4-AAAB > :nth-child(even), .c4-ABBB > :nth-child(odd) {
		width: calc((100% - (3rem * 1)) * (1/4));
	}
	.c4-ABBC > :nth-child(odd) {
		max-width: 200px;
		width: calc((100% - (3rem * 1)) * (1/4));
	}
	.c4-ABBC > :nth-child(even) {
		flex-grow: 1;
		margin-left: 3rem;
		margin-right: 3rem;
		width: calc((100% * (2 / 4)) - (3rem * 2));
	}
}

/**
	* ========================================================
	* RESETS
	* ========================================================
	*/
	* {
		box-sizing: border-box;
		margin: 0;
		padding: 0;
		position: relative;
		vertical-align: middle;
	}
	img[src=""] {
		display: none;
	}

/**
	* =======================================================
	* GENERAL HELPER CLASSES
	* =======================================================
	*/
	body:not(.body--signed-in)  .any--signed-in-only,
	body:not(.body--signed-out) .any--signed-out-only {
		display: none;
	}
	.flex, .any--flex {
		display: flex;
	}
	.any--flex-grow {
		flex-grow: 1;
		max-width: 100%;
	}
	.any--flex-space-between {
		justify-content: space-between;
	}
	.any--float-right {
		float: right;
	}
	.any--note {
		vertical-align: text-top;
	}
	.tag, .any__tag, .any__note, .any__code, code {
		background: var(--background--bold);
		border-radius: 0;
		display: inline-block;
		font-family: monospace, "brackets", メイリオ, Meiryo, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", Osaka, "ＭＳ Ｐゴシック", "MS PGothic", serif;
		font-size: 0.9em;
		line-height: 1;
		padding: 0.25rem;
		vertical-align: text-top;
	}
	.any__tag, .tag {
		color: var(--text--faint);
		cursor: pointer;
		user-select: none;
	}
	.tag:hover, .any__tag:hover {
		color: var(--text);
	}
	.tag--selected, .any__tag--selected, :checked + .tag, :checked + .any__tag {
		background: var(--interactive--faint);
		color: var(--background);
	}
	.any__tag--selected:hover {
		color: var(--background--faint);
	}
	.any--hidden {
		display: none !important;
	}
	.any--margin {
		margin-bottom: 3rem;
	}
	.any--align-center {
		text-align: center;
	}
	.any--align-right {
		text-align: right;
	}
	.any--no-wrap {
		max-width: 100%;
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
	}
	.any--fade-in {
		animation: fade-in 0.2s backwards;
	}
	.any--fade-out {
		animation: fade-out 0.2s forwards;
	}
	.any--pulse {
		animation: pulse 0.2s 1;
	}
	@keyframes pulse {
		0% {
			opacity: 1;
		}
		50% {
			opacity: 0;
		}
		100% {
			opacity: 1;
		}
	}
	@keyframes fade-in {
		0% {
			opacity: 0;
		}
		100% {
			opacity: 1;
		}
	}
	@keyframes fade-out {
		0% {
			opacity: 1;
		}
		100% {
			opacity: 0;
		}
	}
	.any__obscure::before {
		background-image: linear-gradient(to bottom right, var(--background) 1px, transparent 0);
		background-size: 3px 3px;
		bottom: 0;
		content: "";
		left: 0;
		position: absolute;
		right: 0;
		top: 0;
	}
	.any__obscure--fade::before {
		background-image:
			linear-gradient(to bottom, rgba(var(--rgb__background--faint), 0.75), var(--background--faint)),
			linear-gradient(to bottom right, var(--background) 1px, transparent 0);
		background-size: 100% 100%, 3px 3px;
	}
	.any__obscure--faint::before {
		background-color: rgba(var(--rgb__background--faint), 0.75);
	}
	.any__partial, .any__partial--horizontal {
		overflow: hidden;
	}
	.any__partial::after, .any__partial--horizontal::after {
		background-image: linear-gradient(to top, var(--background--faint) 1rem, transparent 50%);
		bottom: 0;
		content: "";
		display: block;
		left: -1px;
		pointer-events: none;
		position: absolute;
		right: -1px;
		top: 0;
	}
	.any__partial {
		max-height: 10rem;
	}
	.any__partial--horizontal {
		max-width: 100%;
		white-space: nowrap;
	}
	.any__partial--horizontal::after {
		background-image: linear-gradient(to left, var(--background--faint) 1rem, transparent 50%);
	}
	.any__partial-input:checked ~ .any__partial-label {
		display: none;
	}
	.any__partial-input:checked ~ .any__partial,
	.any__partial-input:checked ~ .any__partial--horizontal {
		overflow: visible;
	}
	.any__partial-input:checked ~ .any__partial {
		max-height: none;
	}
	.any__partial-input:checked ~ .any__partial--horizontal {
		max-width: none;
		white-space: normal;
	}
	.any__partial-input:checked ~ .any__partial::after,
	.any__partial-input:checked ~ .any__partial--horizontal::after {
		display: none;
	}



/**
	* ========================================================
	* SYMBOLS
	* ========================================================
	*/
	.symbol__container {
		height: 0;
		overflow: hidden;
		position: absolute;
		width: 0;
	}
	[class*="symbol__"]::before,
	.artist:not(.artist--no-symbol)::before,
	.company::before, .text a[href^="/labels/"]:not([href$="/labels/"])::before,
	.loading::before,
	.user::before, .text a[href^="/user/"]:not([href$="/user/"])::before {
		background: currentColor;
		content: "";
		display: inline-block;
		height: 1.5ex;
		margin-right: 3px;
		opacity: 0.5;
		vertical-align: middle;
		vertical-align: baseline;
		width: 1.5ex;
	}
	.symbol--right {
		align-items: center;
		display: inline-flex;
	}
	.symbol--right::before {
		margin-left: 3px;
		order: 2;
	}
	.symbol--standalone::before {
		margin-right: 0;
		opacity: 1;
	}
	.symbol__success::before {
		color: var(--attention--faint);
		opacity: 1;
	}
	.symbol__loading::before, .loading::before, [data-status="loading"]::before {
		animation: rotation 1s infinite linear;
		margin: 0;
		opacity: 1;
	}
	@keyframes rotation {
		from {
			transform: rotate(0);
		}
		to {
			transform: rotate(359deg);
		}
	}



/**
	* ========================================================
	* FONTS
	* ========================================================
	*/
	@font-face {
		font-family: "brackets";
		src: url("/style/font-brackets.ttf") format("truetype");
		font-weight: normal;
		font-style: normal;
		unicode-range: U+02D0, U+300C-300D, U+3010-3011, U+300E-300F, U+3014-3015;
	}
	html {
		font-size: 16px;
	}
	body {
		color: var(--text);
		font-family: "brackets", tahoma, メイリオ, Meiryo, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
		font-size: 1rem;
		line-height: normal;
	}
	.any--jp, .any--ja {
		font-size: 0.9em;
	}
	.any--weaken, .any--weaken-color {
		color: var(--text--faint);
	}
	.any--weaken, .any--weaken-size {
		font-size: 0.8em;
		font-weight: normal;
	}
	a:hover .any--weaken {
		color: inherit;
	}
	p > a,
	li > a {
		vertical-align: top;
	}



/**
	* ========================================================
	* LINKS
	* ========================================================
	*/
	a {
		border-color: var(--interactive--faint);
		color: var(--interactive--faint);
		text-decoration: none;
	}
	a:hover {
		border-color: var(--interactive);
		color: var(--interactive);
		cursor: pointer;
	}
	a:hover img {
		opacity: 0.75;
	}
	.a--inherit {
		background-image: linear-gradient(var(--background--bold), var(--background--bold));
		background-position: bottom;
		background-repeat: repeat-x;
		background-size: 1px 1px;
		border-color: inherit;
		color: inherit;
	}
	.a--inherit:hover {
		background-image: linear-gradient(var(--interactive), var(--interactive));
		border-color: var(--interactive);
		color: var(--interactive);
	}
	.a--alt:hover {
		border-color: var(--text);
		color: var(--text);
	}
	.a--outlined {
		background-image: none;
		border-color: currentColor;
		border-style: solid;
		border-width: 2px;
		padding-left: 3px;
		padding-right: 3px;
	}
	.a--outlined:hover {
		background-image: none;
	}
	.a--padded {
		background-image: none;
		display: inline-block;
		padding: 0.5rem;
	}
	.a--padded:hover {
		background-image: none;
	}
	.a--rh:hover {
		background: var(--attention--faint);
		color: var(--background);
	}



/**
	* ========================================================
	* HEADERS
	* ========================================================
	*/
	h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
		color: var(--text);
		font-weight: bold;
		line-height: normal;
		margin: 0;
		padding: 0;
	}
	h1, .h1 {
		/*color: var(--attention--faint);*/
		font-size: 1.75rem;
		margin-bottom: 3rem;
		margin-bottom: 1rem;
	}
	h2, .h2 {
		/*color: var(--text--faint);*/
		font-size: 1.25rem;
		/*padding: 1rem;*/
		margin-bottom: 1rem;
		padding-top: 0;
	}
	/*h2::before, .h2::before {
		background: var(--attention--faint);
		background-clip: content-box;
		bottom: 1rem;
		content: "";
		display: inline-block;
		left: 0;
		position: absolute;
		top: 0;
		width: 3px;
	}*/
	h3, .h3 {
		/*color: var(--text--faint);*/
		font-size: 1rem;
		font-weight: normal;
		font-weight: bold;
		padding: 1rem 0;
		padding-top: 0;
	}
	.text h2, .text .h2, .text h3, .text .h3 {
		padding-left: 0;
		padding-right: 0;
	}
	.text h3::before, .text .h3::before, .text h2::before, .text .h2::before {
		display: none;
	}
	/*h3::before, .h3::before {
		background: var(--text--faint);
		background-clip: content-box;
		bottom: 1rem;
		content: "";
		display: inline-block;
		left: 0;
		position: absolute;
		top: 0;
		width: 1px;
	}*/
	.h3--compact {
		padding: 0.5rem;
		padding-top: 0;
	}
	.h3--compact::before {
		bottom: 0.5rem;
	}
	h4, .h4 {
		color: var(--attention--faint);
		font-family: monospace, "brackets", メイリオ, Meiryo, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", Osaka, "ＭＳ Ｐゴシック", "MS PGothic", serif;
		font-size: 1rem;
		text-transform: uppercase;
		font-weight: normal;
	}
	.h5, h5, .input__label {
		color: var(--text--faint);
		font-family: monospace, "brackets", メイリオ, Meiryo, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", Osaka, "ＭＳ Ｐゴシック", "MS PGothic", serif;
		font-size: 0.8rem;
		letter-spacing: 1px;
		text-transform: uppercase;
	}



/**
	* ========================================================
	* LANGUAGE SELECTOR
	* ========================================================
	*/
	#language-en:checked ~ .underhead__wrapper [for="language-en"],
	#language-ja:checked ~ .underhead__wrapper [for="language-ja"] {
		color: var(--text);
	}
	#language-en:checked ~ .underhead__wrapper [for="language-en"]::before,
	#language-ja:checked ~ .underhead__wrapper [for="language-ja"]::before {
		clip-path: url(#symbol__checked);
	}

	#language-ja:checked ~ * .any--en {
		display: none;
	}
	#language-ja:checked ~ * .any--ja {
		color: inherit;
		display: initial !important;
		font-size: inherit;
	}



/**
	* ========================================================
	* LAYOUT - HEAD
	* ========================================================
	*/
	body {
		background-color: var(--background--faint);
	}


/**
	* ========================================================
	* LAYOUT - BODY
	* ========================================================
	*/
	.content__background {
		background-position: center;
		background-size: cover;
		height: 300px;
		left: 0;
		position: absolute;
		right: 0;
		top: 0;
		z-index: -1;
	}



/**
	* ========================================================
	* LAYOUT - SUBNAV
	* ========================================================
	*/
	.subhead__container {
		margin-top: -3rem;
	}
	.subhead__inner {
		align-items: flex-start;
		display: flex !important;
		flex-wrap: wrap;
		justify-content: space-between;
		margin-bottom: 2rem;
		top: -2px;
	}
	.breadcrumb__container {
		flex-grow: 1000; /* arbitrary large number */
		flex-shrink: 0;
		margin-bottom: 1rem;
		max-width: 100%;
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;

		list-style-type: none;
	}
	.subnav__inner {
		border: 1px solid var(--attention--faint);
		border-radius: 0;
		flex-grow: 1;
		flex-shrink: 0;
		max-width: 100%;
		width: auto;
	}
	.breadcrumb__item {
		border: none;
		display: inline;
		margin: 0;
		padding: 0;
		text-indent: none;
	}
	.breadcrumb__item::before {
		padding-right: 0;
	}
	.breadcrumb__item:first-of-type::before {
		content: none;
	}
	.breadcrumb__item:first-of-type a {
		background: var(--attention--faint);
		border-radius: 0;
	}
	.breadcrumb__item:first-of-type a:not(:hover) {
		color: var(--background--faint);
	}
	.breadcrumb__item:nth-of-type(n+2) a {
		padding-left: 0;
		padding-right: 0;
	}
	.subnav {
		color: var(--attention--faint);
		width: auto;
	}
	.subnav a:not(:hover) {
		color: var(--attention--faint);
	}



/**
	* ========================================================
	* TEXT CONTAINERS
	* ========================================================
	*/
	.text {
		background: var(--background);
		border: 1px solid var(--background);
		border-radius: 0;
		line-height: 1.5;
		margin: 0;
		/*margin-bottom: 3rem;
		padding: 1rem;*/
		margin-bottom: 0;
		word-break: break-word;
	}
	.text--outlined {
		background: transparent;
		padding: 0.5rem;
	}
	.text--error {
		border-color: var(--accent);
		padding: 0.5rem;
	}
	.text--error.symbol__error::before {
		color: var(--accent);
	}
	.text--notice {
		padding: 0.5rem;
		border-color: var(--interactive--faint);
	}