@charset "UTF-8";

:root {
	--dark_blue: #192f60;
	--normal_blue: #274a78;
	--light_blue: #007bbb;
}

.info {
	color: #ffdb4f;
	text-shadow: 1px 1px 0 #000000;
}

.warning {
	color: #a22041;
	text-shadow: 1px 1px 0 #000000;
}

.error {
	color: #ff0000
	font-weight: bold;
	text-shadow: 1px 1px 0 #000000;
}

a:link, a:visited, a:hover, a:active {
	color: var(--normal_blue);
	text-decoration: none;
}

a:hover {
	color: #ffffff;
	text-decoration: none;
	animation: softly 0.8s ease-out forwards;
}

h1, h2, h3, h4, h5, h6 {
	font-family: "Midashi Go MB31";
	font-weight: bold;
}

h1 {
	margin: 5px 0px 5px 10px;
	padding: 0px 0px 0px 0px;
	letter-spacing: 0.2em;
	text-shadow:
		 5px  5px 8px #1e50a2,
		-5px  5px 8px #1e50a2,
		-5px -5px 8px #1e50a2,
		 5px -5px 8px #1e50a2
	;
	position: relative;
	color: #4d9bc1;
}

h1 a:link, h1 a:visited, h1 a:hover, h1 a:active {
	color: #ffffff;
	text-decoration: none;
}

h1 a:hover {
	color: #ffffff;
}

@media screen and (min-width: 1000px) {
	h1 {
		font-size: 5em;
	}
}

@media screen and (max-width: 999px) {
	h1 {
		font-size: 2em;
	}
}

h2 {
	display: inline-block;
	min-width: 10em;
	margin: 20px 0px 0px 20px;
	padding: 10px 30px 10px 30px;
	text-align: center;
	font-size: 1em;
	color: #ffffff;
	background-color: var(--normal_blue);
	border-width: 0px;
	border-style: dashed;
	border-color: #ffffff;
	border-radius: 8px 8px 0px 0px;
}

h3 {
	max-width: 60%;
	text-align: left;
	font-size: 1.0em;
	color: var(--normal_blue);
	background: linear-gradient(90deg, #ffffff, transparent);
	border-width: 0px 0px 15px 0px;
	border-style: solid;
	border-color: var(--normal_blue);
	border-image: linear-gradient(90deg, var(--normal_blue), transparent) 1;
}

@media screen and (min-width: 1000px) {
	h3 {
		margin: 30px 0px 10px -60px;
		padding: 6px 20px 6px 80px;
	}
}

@media screen and (max-width: 999px) {
	h3 {
		margin: 30px 0px 10px -20px;
		padding: 6px 20px 6px 60px;
	}
}

h4 {
	margin: 20px 0px 20px 0px;
	padding: 10px 0px 10px 45px;
	letter-spacing: 0.1em;
	vertical-align: middle;
	background-image: url("../image/icon_h_internal.png");
	background-repeat: no-repeat;
	background-position: left;
}

h4 a {
	display: inline-block;
	min-width: 200px;
	padding: 10px 25px 10px 25px;
	color: #ffffff;
	text-align: center;
	text-decoration: none;
	background-color: var(--light_blue);
	box-shadow: 4px 4px 0 #000000;
}

h4 a:link, h4 a:visited, h4 a:hover, h4 a:active {
	color: #ffffff;
	text-decoration: none;
}

h5 {}

h6 {}

ul {
	list-style-type: decimal;
}

blockquote {
	margin: 0px;
	padding: 0px;
}

table {
	width: stretch;
	width: -webkit-fill-available; /* Chrome, Safari */
	width: -moz-available;         /* Firefox */
}

table caption {
	letter-spacing: 1em;
	margin: 0px 2px 0px 2px;
	color: #ffffff;
	border-width: 1px;
	border-style: solid;
	border-color: var(--light_blue);
	border-radius: 10px 10px 0px 0px;
	background-color: var(--normal_blue);
}

table thead tr th {
	margin: 0px;
	padding: 5px;
	color: #ffffff;
	text-align: center;
	font-weight: bold;
	border-width: 1px;
	border-style: solid;
	border-color: var(--light_blue);
	background-color: var(--dark_blue);
}

table tr {
	background-color: #ffffff;
}

table tr:nth-child(odd) {
    background-color: #ddeeff;
}

@media screen and (min-width: 1000px) {
	table tbody tr td {
		min-width: 7em;
		padding: 10px;
	}
}

@media screen and (max-width: 999px) {
	table tbody tr td {
		min-width: 4em;
		padding: 3px;
	}
}

table tbody tr td {
	border: 1px dashed #666699;
}

table tbody tr td.genre {
	color: #ffffff;
	background-color: var(--normal_blue);
}

td.genre a:link, td.genre a:visited, td.genre a:hover, td.genre a:active {
	color: #ffffff;
}

form label {
	padding: 10px 0px 0px 0px;
	font-weight: bold;
}

textarea {
	width: stretch;
	width: -webkit-fill-available; /* Chrome, Safari */
	width: -moz-available;         /* Firefox */
}

input#title, input#author, input#url {
	width: stretch;
	width: -webkit-fill-available; /* Chrome, Safari */
	width: -moz-available;         /* Firefox */
}

input.submit {
	margin: 20px 0px 0px 0px;
}

input.submit, button.submit {
	min-width: 200px;
	padding: 5px;
	color:#ffffff;
	font-weight: bold;
	border-width: 1px;
	border-style: solid;
	border-color: var(--light_blue);
	border-radius: 10px;
	background-color: var(--light_blue);
}

input.submit:hover, button.submit:hover {
	color: #ffffff;
	background-color: var(--dark_blue);
}





body {
	margin: 0px;
	padding: 0px;
	color: #ffffff;
	line-height: 1.5;
	font-size: medium;
	background-color: #000000;
	background-image: url("../image/background_body3.jpg"), url("../image/background_body2.png"), url("../image/background_body.png");
	background-repeat: no-repeat, no-repeat, repeat;
	background-position: left top, left bottom, left top;
}

@media screen and (min-width: 1000px) {
	.contents {
		padding: 0px 40px 0px 40px;
		background-image: url("../image/background_main2.png");
		background-repeat: no-repeat;
		background-position: right 0px bottom 0px;
	}
}

header {
	margin: 0px;
	padding: 0px;
	color: #ffffff;
	border: 0px solid #000000;
}

header .title {
	margin: 0px;
	padding: 0px;
	background-image: url("../image/title.jpg");
	background-size: contain;
	background-repeat: no-repeat;
	background-position: right;
}

@media screen and (min-width: 1000px) {
	header .title {
		min-height: 400px;
	}
}

@media screen and (max-width: 999px) {
	header .title {
		max-height: 400px;
	}
}

header h1 .seventh {
	color: #ffff00;
}

header .english {
	margin: 0px 0px 0px 20px;
	padding: 0px 0px 10px 0px;
	letter-spacing: 0.3em;
	font-size: 0.8em;
	text-shadow:
		 4px  4px 5px #1e50a2,
		-4px  4px 5px #1e50a2,
		-4px -4px 5px #1e50a2,
		 4px -4px 5px #1e50a2
	;
}

@media screen and (min-width: 1000px) {
	header .description {
		margin: 40px 0px 0px 0px;
		padding: 0px 0px 0px 40px;
		font-size: 1.2em;
		text-shadow:
			 2px  2px 0 #000000,
			-2px  2px 0 #000000,
			-2px -2px 0 #000000,
			 2px -2px 0 #000000
		;
	}

	header nav {
		margin: 0px -40px 0px -40px;
	}
}

@media screen and (max-width: 999px) {
	header .description {
		display: none;
	}

	header nav {
		margin: 0px;
	}
}

header nav > h2 {
	display: none;
}

header nav.menu ul {
	display: flex;
	justify-content: center;
	align-items: stretch;
	margin: 0px;
	padding: 0px;
	list-style-type: none;
}

header nav.menu ul li {
	flex-grow: 1;
	position: relative;
	margin: 0px;
	padding: 10px 0px 10px 0px;
	color: var(--dark_blue);
	text-align: center;
	font-size: 0.8em;
	font-weight: bold;
	border-width: 0px 2px 0px 0px;
	border-style: dotted;
	border-color: var(--dark_blue);
	background-color: #ffffff;
}

@media screen and (min-width: 1000px) {
	header nav.menu ul li:after {
		position: absolute;
		content: "";
		top: 0;
		bottom: 0;
		right: 9px;
		width: 9px;
		height: 9px;
		margin: auto;
		border-top: 2px solid var(--dark_blue);
		border-right: 2px solid var(--dark_blue);
		transform: rotate(45deg);
		box-sizing: border-box;
	}
}

header nav.menu ul li:last-child {
	flex-grow: 1;
	border: 0px solid #000000;
}

header nav.menu li a:link, header nav.menu li a:visited, header nav.menu li h1 a:hover, header nav.menu li h1 a:active {
	color: var(--dark_blue);
	text-decoration: none;
}

header nav.menu li:hover a {
	color: #ffffff;
	text-decoration: none;
}

header nav.menu li:hover {
	animation: softly 0.8s ease-in forwards;
}





main {
	margin: 8px 0px 0px 0px;
	padding: 0px;
	min-height: 550px;
	color: #000000;
	letter-spacing: 0.1em;
	background-color: transparent;
}

main section {
	margin: 0px 0px 10px 0px;
	background-color: #f0f0f0;
	background-image: url("../image/background_main.jpg");
	background-repeat: repeat;
	border-width: 1px;
	border-style: solid;
	border-color: #f0f0f0;
}

@media screen and (min-width: 1000px) {
	main section {
		padding: 8px 30px 8px 30px;
		border-radius: 8px;
	}

	main p {
		font-size: 1.2em;
	}

	main td {
		font-size: 1.2em;
	}
}

@media screen and (max-width: 999px) {
	main section {
		padding: 8px;
	}

	main p {
		font-size: 1em;
	}

	main td {
		font-size: 1em;
	}
}

main p {
	padding: 5px;
	border: 1px dotted #dfdfdf;
}

main p:hover {
	border: 1px dashed var(--normal_blue);
	padding: 5px;
	background-image: url("../image/background_main3.jpg");
	background-repeat: repeat;
}

main td:hover {
	background-image: url("../image/background_main3.jpg");
	background-repeat: repeat;
}

main td.genre:hover {
	animation: softly 0.8s ease-out forwards;
}

main .note article {
	margin: 0px 0px 50px 0px;
}

.twitter-tweet {
	position: relative;
	transform: scale(1.0);
	transform-origin: left top;
}

#pageback {
	margin: 50px auto 50px auto;
	padding: 0px 0px 0px 25px;
	max-width: 345px;
	font-size: 1.6em;
	color: #ffffff;
	font-weight: bold;
	text-align: center;
	border: 0px solid none;
	background-image: url("../image/icon_h_internal");
	background-repeat: no-repeat;
}

#pageback a {
	display: inline-block;
	width: 300px;
	min-width: 300px;
	border-color: #000000;
	background-color: var(--light_blue);
	box-shadow: 4px 4px 0 #000000;
}

#pageback a:link, #pageback a:visited, #pageback a:hover, #pageback a:active {
	color: #ffffff;
}

#image_selection {
	text-align: center;
	font-weight: bold;
}

#image_selection a {
	display: inline-block;
	min-width: 8em;
	margin: 8px;
	padding: 8px 0px 8px 0px;
	border-color: #000000;
	background-color: var(--light_blue);
	box-shadow: 4px 4px 0 #000000;
}

#image_selection a:link, #image_selection a:visited, #image_selection a:hover, #image_selection a:active {
	color: #ffffff;
}

#image_selection a:hover {
	animation: softly 0.8s ease-out forwards;
}

@media screen and (min-width: 1000px) {
	.contents {
		display: flex;
		justify-content: start;
		align-items: start;
		flex-wrap: wrap;
	}

	header {
		width: stretch;
		order: 0;
		flex-grow: 3;
	}

	aside {
		order: 2;
		flex-grow: 1;
		position: sticky;
		min-width: 330px;
		max-width: 330px;
		width: 330px;
		top: 30px;
		right: 0px;
		z-index: 20;
		margin: 40px 0px auto 40px;
		padding: 0px;
		color: var(--normal_blue);
		border-width: 0px;
		border-color: #f0f0f0;
		border-style: solid;
	}

	aside h2 {
		margin: 0px;
		padding: 0px;
		width: stretch;
		width: -webkit-fill-available; /* Chrome, Safari */
		width: -moz-available;         /* Firefox */
		font-size: 1.0em;
		color: #ffffff;
		text-align: center;
		border: 1px solid var(--normal_blue);
		border-radius: 8px 8px 0px 0px;
		background-color: var(--normal_blue);
	}

	aside section {
		border-radius: 0px 0px 8px 8px;
	}

	aside ul {
		text-align: center;
	}

	main {
		order: 1;
		flex-grow: 1;
		position: relative;
		z-index: 10;
		width: calc(100% - 440px);
		top: 0px;
	}

	footer {
		order: 4;
		width: 100%;
	}
}

@media screen and (max-width: 999px) {
	aside {
		order: 1;
		width: 100%;
	}

	aside section {
		border-radius: 0px;
	}

	aside ul li {
		color: #006699;
	}

	main {
		order: 2;
		width: 100%;
	}
}

aside section {
	background-color: #ffffff;
}

aside h3 {
	min-width: 100%;
	margin: 0px 5px 5px 5px;
	padding: 3px;
	text-align: center;
	border-width: 0px 0px 1px 0px;
	border-style: solid;
	border-color: var(--dark_blue);
	border-image: linear-gradient(90deg, #ffffff 10%, var(--dark_blue), transparent 90%) 1;
}

aside ul {
	margin: 0px;
	padding: 20px;
	list-style: none;
}

aside ul li {
	padding: 5px;
	text-decoration: underline;
}

footer {
	min-height: 250px;
	margin: 0px 0px 0px 0px;
	padding: 10px 10px 10px 10px;
	text-align: center;
	font-size: 0.7em;
	color: #ffffff;
}

#pagetop {
	display: inline-block;
	position: fixed;
	margin: 0px;
	padding: 8px;
	z-index: 2500;
	letter-spacing: 0.5em;
	text-align: center;
	vertical-align: top;
	color: #000000;
	background-color: #ffffff;
	border-width: 10px;
	border-style: solid;
	border-color: var(--normal_blue);
	border-radius: 50%;
}

@media screen and (min-width: 1000px) {
	#pagetop {
		right: 20px;
		bottom: 20px;
		width: 100px;
		font-size: 0.4em;
	}
}

@media screen and (max-width: 999px) {
	#pagetop {
		transform: scale(0.6);
		transform-origin: right bottom;
		right: 10px;
		bottom: 10px;
		font-size: 0.6em;
	}
}

@keyframes softly {
	0% {
		background-image: linear-gradient(90deg, var(--dark_blue), transparent 0%);
	}
	10% {
		background-image: linear-gradient(90deg, var(--dark_blue), #006696 10%);
	}
	20% {
		background-image: linear-gradient(90deg, var(--dark_blue), #006494 20%);
	}
	30% {
		background-image: linear-gradient(90deg, var(--dark_blue), #006292 30%);
	}
	40% {
		background-image: linear-gradient(90deg, var(--dark_blue), #006090 40%);
	}
	50% {
		background-image: linear-gradient(90deg, var(--dark_blue), #005a8a 50%);
	}
	60% {
		background-image: linear-gradient(90deg, var(--dark_blue), #005686 60%);
	}
	70% {
		background-image: linear-gradient(90deg, var(--dark_blue), #005080 70%);
	}
	80% {
		background-image: linear-gradient(90deg, var(--dark_blue), #004a7a 80%);
	}
	90% {
		background-image: linear-gradient(90deg, var(--dark_blue), #004676 90%);
	}
	100% {
		background-image: linear-gradient(90deg, var(--dark_blue), var(--dark_blue));
	}
}
