﻿@import url("style.css");
@import url("keyframes.css");
@import url("caststaff.css");
@import url("character.css");
@import url("lightbox.css");
@import url("topics.css");
@import url("stream.css");

/*	.header
============================== */
div.header {
	position:relative;
}
div.header > div > header,
div.header > div > header > div > h1 > span,
div.header > div > header > div > p.date > span,
div.header > div > header > div > div.imgs > span {
	position:relative;
	height:0;
	background-repeat:no-repeat;
	background-size:cover;
}
div.header > div > header > div > h1,
div.header > div > header > div > p.date,
div.header > div > header > div > div.imgs {
	position:absolute;
}
div.header > div > header > div > h1,
div.header > div > header > div > p.date {
	z-index:3;
}
div.header > div > header > div > div.imgs {
	z-index:2;
}
div.header > div > header > div > div.imgs.ph-bg {
	z-index:1;
}
div.header > div > header > div > h1 span,
div.header > div > header > div > p.date span,
div.header > div > header > div > div.imgs span,
div.header > div > header > div > div.imgs img {
	display:block;
}
div.header > div > header > div > h1 span span,
div.header > div > header > div > p.date span span {
	text-indent:110%;white-space:nowrap;overflow:hidden;
}
div.header > div > header > div,
div.header > div > header > div h1 span span,
div.header > div > header > div p.date span span,
div.header > div > header > div > div.imgs span img {
	position: absolute;
	left:0;
	top:0;
	width:100%;
	height:100%;
}
div.header > div > header > div > h1 > span {
	padding-top: -webkit-calc(290 / 980 * 100%);
	padding-top: calc(290 / 980 * 100%);
}
div.header > div > header > div > div.ph-main > span {
	background-position:center bottom;
}
div.header > div > header > div > div.ph-sub > span {
	padding-top: -webkit-calc(334 / 500 * 100%);
	padding-top: calc(334 / 500 * 100%);
}
div.header > div > header > div > div.ph-main {
	right: 0;
	top: 0;
}
div.header > div > header > div > div.ph-sub {
	left: 0;
	bottom: 0;
}
div.header > div > header > div > p.date {
	right: 0;
}
div.header > div > header > div > p.date span.lazy-done {
	background-color:hsla(0,100%,100%,0.65);
}
@media all and (min-width: 1200px) {
div.header > div {
	max-width:1200px;
	margin:0 auto;
}
}
@media all and (min-width: 992px) {
div.header {
	margin-bottom:30px;
}
div.header > div > header {
	padding-top: -webkit-calc(840 / 1200 * 100%);
	padding-top: calc(840 / 1200 * 100%);
}
div.header > div > header > div > div.ph-main > span {
	padding-top: -webkit-calc(690 / 618 * 100%);
	padding-top: calc(690 / 618 * 100%);
}
div.header > div > header > div > h1 {
	width: -webkit-calc((676 * 100) / 1200 * 1%);
	width: calc((676 * 100) / 1200 * 1%);
	left: -webkit-calc((78 * 100) / 1200 * 1%);
	left: calc((78 * 100) / 1200 * 1%);
	top: -webkit-calc((188 * 100) / 840 * 1%);
	top: calc((188 * 100) / 840 * 1%);
}
div.header > div > header > div > div.ph-main {
	width: -webkit-calc((618 * 100) / 1200 * 1%);
	width: calc((618 * 100) / 1200 * 1%);
}
div.header > div > header > div > div.ph-sub {
	width: -webkit-calc((500 * 100) / 1200 * 1%);
	width: calc((500 * 100) / 1200 * 1%);
}
div.header > div > header > div > div.imgs.ph-bg {
	display:none;
}
div.header:after {
	content:"";
	background-color:#538097;
	background-image:url(../img/header_bg_train.jpg);
	background-repeat:no-repeat;
	background-position:center center;
	background-size:cover;
	width:78%;
	height:78%;
	position:absolute;
	left:0;
	bottom:70px;
}
div.header > div > header > div > p.date > span {
	padding-top: -webkit-calc(192 / 1854 * 100%);
	padding-top: calc(192 / 1854 * 100%);
}
div.header > div > header > div > p.date > span.lazy-done {
	background-image:url(../img/header_date.png?0);
}
div.header > div > header > div > p.date {
	bottom: -webkit-calc((40 * 100) / 840 * 1%);
	bottom: calc((40 * 100) / 840 * 1%);
}
div.header > div > header > div > p.date {
	width: -webkit-calc((618 * 100) / 1200 * 1%);
	width: calc((618 * 100) / 1200 * 1%);
}
}
@media all and (max-width: 991.98px) {
div.header {
	margin-bottom:20px;
}
div.header > div > header {
	padding-top: -webkit-calc(1140 / 750 * 100%);
	padding-top: calc(1140 / 750 * 100%);
}
div.header > div > header > div > div.ph-main > span {
	padding-top: -webkit-calc(790 / 675 * 100%);
	padding-top: calc(790 / 675 * 100%);
}
div.header > div > header > div > div.ph-bg > span {
	padding-top: -webkit-calc(536 / 645 * 100%);
	padding-top: calc(536 / 645 * 100%);
	background-image:url(../img/header_bg_train.jpg);
	background-position:left center;
}
div.header > div > header > div > h1 {
	width: -webkit-calc((542 * 100) / 750 * 1%);
	width: calc((542 * 100) / 750 * 1%);
	left: -webkit-calc((104 * 100) / 750 * 1%);
	left: calc((104 * 100) / 750 * 1%);
	top: -webkit-calc((80 * 100) / 1140 * 1%);
	top: calc((80 * 100) / 1140 * 1%);
}
div.header > div > header > div > div.ph-main {
	width: -webkit-calc((675 * 100) / 750 * 1%);
	width: calc((675 * 100) / 750 * 1%);
}
div.header > div > header > div > div.ph-sub {
	width: -webkit-calc((400 * 100) / 750 * 1%);
	width: calc((400 * 100) / 750 * 1%);
}
div.header > div > header > div > div.ph-bg {
	width: -webkit-calc((645 * 100) / 750 * 1%);
	width: calc((645 * 100) / 750 * 1%);
	left: 0;
	bottom: -webkit-calc((88 * 100) / 1140 * 1%);
	bottom: calc((88 * 100) / 1140 * 1%);
}
div.header > div > header > div > p.date > span {
	padding-top: -webkit-calc(444 / 644 * 100%);
	padding-top: calc(444 / 644 * 100%);
}
div.header > div > header > div > p.date > span.lazy-done {
	background-image:url(../img/header_date_smp.png?0);
}
div.header > div > header > div > p.date {
	width: -webkit-calc((322 * 100) / 750 * 1%);
	width: calc((322 * 100) / 750 * 1%);
	bottom: -webkit-calc((45 * 100) / 1140 * 1%);
	bottom: calc((45 * 100) / 1140 * 1%);
}
}


/*	.menu
============================== */
div.menu nav ul {
	display:inline-flex;
}
div.menu nav ul li a {
	text-decoration:none;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	/* background-color:hsla(0,100%,100%,0.75); */
	padding-left:0.75em;
	padding-right:1.25em;
	/* box-shadow:2px 4px 6px hsla(0,0%,0%,.1); */
	border:1px solid #2268a4;
	-webkit-box-sizing:border-box;
	-moz-box-sizing:border-box;
	box-sizing:border-box;
}
div.menu nav ul li a span {
	display:inline-block;
	position:relative;
	margin-right:0.75em;
}
div.menu nav ul li a span:after {
	content: '';
	display: inline-block;
	line-height: 1;
	width: 100%;
	background-color: #2268a4;
	position:absolute;
	top:50%;
	left:0;
}
div.menu nav ul li a span:before {
	content: '';
	width: 70%;
	height: 70%;
	transform: rotate(45deg);
	transform-origin: top right;
	position: absolute;
	top: 50%;
	box-sizing: border-box;
}
div.menu nav ul li a span {
	width:16px;
	height:16px;
}
div.menu nav ul li a span:after {
	height: 2px;
	margin-top:-1px;
}
div.menu nav ul li a span:before {
	border: 2px solid #2268a4;
	border-left: 0;
	border-bottom: 0;
	right: -1px;
}
@media all and (min-width: 992px) {
div.menu nav ul li a {
	font-size:125%;
	height:44px;
	border-radius:22px;
}
}
@media all and (max-width: 991.98px) {
div.menu nav ul li a {
	font-size:112.5%;
	height:44px;
	border-radius:22px;
}
}


@media all and (min-width: 992px) {
div.menu {
	display:flex;
	justify-content:center;
	align-items:center;
}
div.menu nav {
	margin-right:60px;
}
div.menu nav ul li:first-child {
	margin-right:30px;
}
}
@media all and (max-width: 991.98px) {
div.menu nav {
	margin-bottom:30px;
}
div.menu nav ul li:first-child {
	margin-right:10px;
}
}



/*	.unit
============================== */
div.unit {
	text-align:left;
	position:relative;
}
div.unit > article > header {
	text-align:center;
}
@media all and (min-width: 1200px) {
div.unit {
	max-width:1200px;
	margin:0 auto;
}
}
@media all and (min-width: 992px) {
div.unit {
	margin-bottom:120px;
}
}
@media all and (max-width: 991.98px) {
div.unit {
	margin-bottom:80px;
}
}


/*	h2
============================== */
div.unit > article > header h2,
div.story > article > header h2,
div.stream > aside > h2 {
	display:inline-block;
	font-family: "Fredoka", sans-serif;
	font-optical-sizing: auto;
	font-weight:400;
	border:2px solid #000;
}
div.unit > aside,
div.bnr-header > aside {
	text-align:center;
}
@media all and (min-width: 992px) {
div.unit > article > header h2,
div.story > article > header h2,
div.stream > aside > h2 {
	font-size:175%;
	letter-spacing:0.75em;
	text-indent:0.75em;
	padding:0.5em 2em;
	margin-bottom:1.5em;
}
div.bnr-header > aside > h2 {
	font-size:175%;
	padding:0.5em 2em;
	margin-bottom:1.5em;
}
}
@media all and (max-width: 991.98px) {
div.unit > article > header h2,
div.story > article > header h2,
div.stream > aside > h2 {
	font-size:5vw;
	letter-spacing:0.4em;
	text-indent:0.4em;
	padding:0.5em 1.5em;
	margin-bottom:1em;
}
div.about > article > header h2,
div.staffprofile > article > header h2 {
	letter-spacing:0.2em;
	text-indent:0.2em;
}
div.bnr-header > aside > h2 {
	font-size:5vw;
	padding:0.5em 1.5em;
	margin-bottom:1em;
}
}



div.unit > article p.copy,
div.story > article p.copy {
	color:#305e40;
	color:#b24e00;
	text-align:center;
	line-height:1.75;
	margin-bottom:1.25em;
}
div.unit > article p.copy > span,
div.story > article p.copy > span {
	font-weight:700;
	background-image: -webkit-gradient(linear, center top, center bottom, from(transparent), color-stop(0.5, transparent), color-stop(0.5, hsla(195,32%,65%,0.25)), to(hsla(195,32%,65%,0.25)));
	background-image: linear-gradient(transparent 50%, hsla(195,32%,65%,0.25) 50%);
	padding:0 0.25em;
}
@media all and (min-width: 992px) {
div.unit > article p.copy,
div.story > article p.copy {
	font-size:150%;
}
}
@media all and (max-width: 991.98px) {
div.unit > article p.copy,
div.story > article p.copy {
	font-size:112.5%;
}
}




/*	.about
============================== */
div.about > article,
div.staffprofile > article {
	border:2px solid #000;
}
div.about > article {
	background-color:#dbe9ec;
	background-image:url(../img/about_bg.jpg);
	background-size:contain;
	background-position:center bottom;
	background-repeat:no-repeat;
}
@media all and (min-width: 992px) {
div.about,
div.staffprofile {
	padding:0 30px;
}
div.about > article,
div.staffprofile > article {
	border-radius:40px;
}
div.about > article {
	padding:60px 60px 320px;
}
div.staffprofile > article {
	padding:60px;
}
}
@media all and (max-width: 991.98px) {
div.about,
div.staffprofile {
	padding:0 3.125vw;
}
div.about > article,
div.staffprofile > article {
	border-radius:20px;
}
div.about > article {
	padding:30px 3.125vw 140px;
}
div.staffprofile > article {
	padding:30px 3.125vw;
}
}



/*	.story
============================== */
div.story {
	text-align:left;
	position:relative;
}
div.story > article > header {
	text-align:center;
}
@media all and (min-width: 1200px) {
div.story > article {
	max-width:1200px;
	margin:0 auto;
}
}
@media all and (min-width: 992px) {
div.story {
	margin-bottom:120px;
}
div.story > article {
	padding:0 30px 60px;
}
}
@media all and (max-width: 991.98px) {
div.story {
	margin-bottom:80px;
}
div.story > article {
	padding:0 3.125vw 30px;
}
}


/*	.caststaff
============================== */
div.caststaff > article {
	background-color:hsla(0,100%,100%,0.7);
	position:relative;
	z-index:2;
	/**/
	display:flex;
	flex-direction:column;
	align-items:center;
}

div.img-caststaff,
div.img-cast {
	position:absolute;
	z-index:1;
}
div.img-caststaff {
	left:0;
	bottom:0;
}
div.img-cast {
	right:0;
}
div.img-caststaff span,
div.img-caststaff span img,
div.img-cast span,
div.img-cast span img {
	display:block;
}
div.img-caststaff span,
div.img-cast span {
	position:relative;
	height:0;
	background-repeat:no-repeat;
	background-size:cover;
}
div.img-caststaff span {
	padding-top: -webkit-calc(1600 / 925 * 100%);
	padding-top: calc(1600 / 925 * 100%);
}
div.img-cast span {
	padding-top: -webkit-calc(1200 / 880 * 100%);
	padding-top: calc(1200 / 880 * 100%);
}
div.img-caststaff span img,
div.img-cast span img {
	position: absolute;
	left:0;
	top:0;
	width:100%;
	height:100%;
}

@media all and (min-width: 992px) {
div.caststaff {
	padding-bottom:80px;
}
div.caststaff > article {
	padding:60px 0;
}
div.caststaff > article.cast {
	margin:0 16% 60px 8%;
}
div.img-caststaff {
	width:40%;
}
div.caststaff > article.staff {
	margin-right:5%;
	margin-left:25%;
}
div.img-cast {
	width:25%;
	top:200px;
}
}
@media all and (max-width: 991.98px) {
div.caststaff {
	padding-bottom:40px;
}
div.caststaff > article {
	padding:60px 0;
}
div.caststaff > article.cast {
	width:100%;
	margin:0 auto 30px;
}
div.caststaff > article.staff {
	margin-left:23%;
}
div.img-caststaff {
	width:38%;
}
div.img-cast {
	display:none;
	width:30%;
	right:-10%;
	top:9%;
}
}


div.caststaff > article.cast > p {
	text-align:center;
	line-height:2.25;
}
@media all and (min-width: 992px) {
div.caststaff > article.cast > p {
	font-size:150%;
}
}
@media all and (max-width: 991.98px) {
div.caststaff > article.cast > p {
	font-size:3.25vw;
}
}

/*	ul.pics
============================== */
ul.pics {
	display:flex;
	flex-wrap:wrap;
}
ul.pics li span,
ul.pics li img {
	display:block;
}
ul.pics li span {
	position:relative;
	height:0;
	padding-top: -webkit-calc(640 / 980 * 100%);
	padding-top: calc(640 / 980 * 100%);
	background-repeat:no-repeat;
	background-size:cover;
}
ul.pics li span img {
	position: absolute;
	left:0;
	top:0;
	width:100%;
	height:100%;
}
@media all and (min-width: 992px) {
ul.pics li {
	width: 25%;
}
}
@media all and (max-width: 991.98px) {
ul.pics {
	flex-wrap:wrap;
}
ul.pics li {
	width: 50%;
}
}



/*	.character
============================== */

@media all and (min-width: 992px) {
div.character > article {
	padding:0 60px;
}
}
@media all and (max-width: 991.98px) {
div.character > article {
	padding:0 6.25vw;
}
}


/*	.staffprofile
============================== */

div.staffprofile > article > div.inner > section h3 {
	font-weight:400;
	text-align:center;
	margin-bottom:1em;
}
@media all and (min-width: 992px) {
div.staffprofile > article > div.inner {
	display:flex;
	flex-wrap:wrap;
	justify-content:center;
}
div.staffprofile > article > div.inner > * {
	width: -webkit-calc((100% - 60px)/2);
	width: calc((100% - 60px)/2);
}
div.staffprofile > article > div.inner > section:first-child {
	margin-right:60px;
}
div.staffprofile > article > div.inner > section h3 {
	font-size:150%;
}
div.staffprofile > article > div.inner > div {
	margin-top:60px;
}
}
@media all and (max-width: 991.98px) {
div.staffprofile > article > div.inner > section:not(:last-child) {
	margin-bottom:30px;
}
div.staffprofile > article > div.inner > section h3 {
	font-size:4.5vw;
}
div.staffprofile > article > div.inner > div {
	padding-top:30px;
}
}




/*	.ill-footer
============================== */
div.ill-footer span,
div.ill-footer span img {
	display:block;
}
div.ill-footer span {
	position:relative;
	height:0;
	background-repeat:no-repeat;
	background-size:cover;
	background-position:left bottom;
}
div.ill-footer span img {
	position: absolute;
	left:0;
	top:0;
	width:100%;
	height:100%;
}
@media all and (min-width: 992px) {
div.ill-footer:not(:last-child) {
	margin-bottom:80px;
}
div.ill-footer span {
	padding-top: -webkit-calc(412 / 2000 * 100%);
	padding-top: calc(412 / 2000 * 100%);
}
}
@media all and (max-width: 991.98px) {
div.ill-footer:not(:last-child) {
	margin-bottom:40px;
}
div.ill-footer span {
	padding-top: -webkit-calc(650 / 2000 * 100%);
	padding-top: calc(650 / 2000 * 100%);
}
}



/*	.btn
============================== */
div.btn {
/*	text-align:right; */
}
div.btn a {
	text-decoration:none;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	/* background-color:hsla(0,100%,100%,0.75); */
	padding:0 2em;
	/* box-shadow:2px 4px 6px hsla(0,0%,0%,.1); */
	border:1px solid transparent;
	-webkit-box-sizing:border-box;
	-moz-box-sizing:border-box;
	box-sizing:border-box;
}
div.btn a span {
	display:inline-block;
	position:relative;
	margin-right:1em;
}
div.btn a span:after {
	content: '';
	display: inline-block;
	line-height: 1;
	width: 100%;
	background-color: #2268a4;
	position:absolute;
	top:50%;
	left:0;
}
div.btn a span:before {
	content: '';
	width: 70%;
	height: 70%;
	transform: rotate(45deg);
	transform-origin: top right;
	position: absolute;
	top: 50%;
	box-sizing: border-box;
}
div.btn a span {
	width:16px;
	height:16px;
}
div.btn a span:after {
	height: 2px;
	margin-top:-1px;
}
div.btn a span:before {
	border: 2px solid #2268a4;
	border-left: 0;
	border-bottom: 0;
	right: -1px;
}
@media all and (min-width: 992px) {
div.btn a {
	font-size:125%;
	height:44px;
	border-radius:22px;
}
}
@media all and (max-width: 991.98px) {
div.btn a {
	font-size:112.5%;
	height:44px;
	border-radius:22px;
}
}



/*	.bnr
============================== */
div.bnr {
	text-align:left;
	/* background-color:hsla(0,100%,100%,.5); */
}
div.bnr aside ul {
	display: flex;
	flex-wrap: no-wrap;
	justify-content: center;
	flex-direction:column;
	align-items:center;
}
div.bnr aside ul li a, div.bnr aside ul li > span, div.bnr aside ul li a span {
	display:block;
}
div.bnr aside ul li a,
div.bnr aside ul li > span {
	background-size:cover;
	background-repeat:no-repeat;
	position:relative;
	height:0;
	padding-top: -webkit-calc(240 / 800 * 100%);
	padding-top: calc(240 / 800 * 100%);
}
div.bnr-header aside ul li a,
div.bnr aside ul li > span {
	padding-top: -webkit-calc(675 / 1200 * 100%);
	padding-top: calc(675 / 1200 * 100%);
}
div.bnr aside ul li.bnr-x a {
	padding-top: -webkit-calc(360 / 1600 * 100%);
	padding-top: calc(360 / 1600 * 100%);
}
div.bnr aside ul li a span,
div.bnr aside ul li span span {
	position: absolute;
	left:0;
	top:0;
	width:100%;
	height:100%;
	text-indent:110%;white-space:nowrap;overflow:hidden;
}
div.bnr aside ul li a.lazy-done,
div.bnr aside ul li span.lazy-done {
	-webkit-animation: fadeIn 800ms;
	animation: fadeIn 800ms;
	overflow:hidden;
	box-shadow:2px 4px 10px hsla(0,0%,0%,.1);
}
@media all and (min-width: 992px) {
div.bnr {
}
div.bnr aside {
	max-width:1080px;
	margin:0 auto;
}
div.bnr aside ul {
/*	gap:30px; */
}
div.bnr aside ul:not(:last-child) {
	margin-bottom:20px;
}
div.bnr aside ul li {
/*	width:calc((100% - 30px)/2); */
	width:60%;
}
div.bnr aside ul li.bnr-x {
	width:80%;
}
div.bnr aside ul li:nth-child(odd) {
/*	margin-right:30px; */
}
div.bnr aside ul li:not(:last-child) {
	margin-bottom:60px;
}
div.bnr-header {
	padding:60px 0;
}
div.bnr-header aside ul li {
	width: 75%;
}
div.bnr-header aside ul li a.lazy-done {
/*	border-radius:60px; */
}
}
@media all and (max-width: 991.98px) {
div.bnr {
}
div.bnr aside ul {
/*	width:82%;
	margin:0 auto; */
}
div.bnr aside ul:not(:last-child) {
	margin-bottom:10px;
}
div.bnr aside ul li:not(:last-child) {
	margin-bottom:30px;
}
div.bnr aside ul li {
	width:80%;
}
div.bnr aside ul li.bnr-x {
	width:92%;
}
div.bnr-header {
	padding:30px 0;
}
div.bnr-header aside ul {
/*	width: 90%; */
}
div.bnr-header aside ul li a.lazy-done {
/*	border-radius:30px; */
}
}

div.bnr-header aside p {
	text-align:center;
	line-height:1.5;
	margin-top:0.5em;
}
@media all and (min-width: 992px) {
div.bnr-header aside p {
	font-size:112.5%;
}
}
@media all and (max-width: 991.98px) {
div.bnr-header aside p {
	font-size:87.5%;
}
}


/* =================================
	no print
================================= */

@media print {
div.header {
	display:none !important;
}
}