body{
    background-color: #000044;
}
button, input{
	-webkit-appearance: none !important;
	border-radius: 0 !important;
}
/* ページ共通 */
/* ヘッダー */
.header{
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 70px;
    background-color: #000033;
}
.header.hide{
    display: none;
}
.header ul{
    align-items: center;
    display: flex;
    justify-content: space-around;
    margin: 0 auto;
    padding: 0 3vw;
    width: 94vw;    
}
.header li{
    list-style: none;
    text-align: center;
}
.header li:first-of-type{
}
.header li:nth-of-type(2){
    line-height: 0.5;
}
.header li:nth-of-type(2) img{
    width: 60vw;
    height: auto;
}
.header li:last-of-type{
}
.header-message{
   font-size: x-small;
   color: #fff;
   padding: 0px;
   margin: 0px;
}
.point{
	font-size: large;
	position: fixed;
	top: 3.2vh;
	left: 48vw;
}
.apply-button{
    background-color: #f63;
    border: 1px solid #000;
    border-radius: 5px !important;
    color: #fff;
    padding: 5px 10px;
}
.history-button{
    background-color: #C71585;
    border: 1px solid #000;
    border-radius: 5px !important;
    color: #fff;
    padding: 5px 10px;
}

/* メイン */
.wrapper{

    padding: 0vh 0;
    width: 100vw;

    background-color: #000044;
}
.wrapper.side{
    padding: 0;
}
/* フッター */
.footer{
    background-color: #333;
    bottom: 0;
    display: flex;
    justify-content: space-around;
    list-style: none;
    height: calc(80vh / 12);
    margin: 0;
    padding: 0;
    position: fixed;
    text-align: center;
    width: 100%;	
}
.footer.hide{
    display: none;
}

.footer li{
	position: relative;
	height: calc(80vh / 12);
        width: calc(100vh / 12);
}
.footer button{
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translateY(-50%) translateX(-50%);
	width: 85%;
	height: 85%;
	border: none;
	background-color: #333;
        margin: 3px;

}
.footer img{
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translateY(-50%) translateX(-50%);
	width: 80%;
	height: auto;
}
.back-button,
.prev-button{
    user-select: none;
}
.toppage-button{
    background-color: #000099;
    border: 1px solid #000;
    border-radius: 5px !important;
    color: #fff;
    padding: 6px 20px;
    margin: 0 auto;
}
.scan{
        bottom: 13vw;
	cursor: pointer;
	position: fixed;
	right: 9vw;
	width: 25vw;
}
.scan.hide{
	display: none;
}
.scan img{
	height: auto;
	width: 100%;
}
/* トップページ */
.toppage-iframe-wrapper{
	height: 75vh;
	margin-top: 10vh;
	width: 100%;
}
.toppage-iframe{
	border: none;
	height: 100%;
	width: 100%;
}
.video-player{
	display: none;
	position: fixed;
	/*transform: translateY(-50%);*/
}
.video-player.show{
	display: block;
	top: 0;
}
.video-player.show-short{
	display: block;
	top: 0;
}
/* QRコードリーダー */
.wrapper.wrapper-reader{
    position: static;
    height: 100vh;
}
.reader {
    background-color: #555;
    position: fixed;
    width: 100%;
    height: 100%;
    text-align: center;
}
.reader img{
    margin: 0 auto;
}
.reader-video {
    margin: 30vw auto 5vw;
    background-color: #000;
    width: 90vw;
    height: 90vw;
    object-fit: fill;
}
.reader-message{
	color: #fff;
}
.cover-img{
	width: 60vw;
	height: auto;
	display: none;
}
.cover-img.show{
	display: block;
}
.scan-button{
	background-color: #BAD3FF;
	border: none;
	display: none;
	margin: 0 auto;
}
.scan-button.show{
	display: block;
}
.scan-button-img{
	width: 50vw;
	height: auto;
}
/* loader */
.loader,
.loader:after {
       border-radius: 50%;
       width: 5em;
       height: 5em;
}
.loader {
	margin: 3vw auto;
	font-size: 10px;
	position: relative;
	text-indent: -9999em;
	border-top: 1.1em solid rgba(255, 255, 255, 0.2);
	border-right: 1.1em solid rgba(255, 255, 255, 0.2);
	border-bottom: 1.1em solid rgba(255, 255, 255, 0.2);
	border-left: 1.1em solid #ffffff;
	-webkit-transform: translateZ(0);
	-ms-transform: translateZ(0);
	transform: translateZ(0);
	-webkit-animation: load8 1.1s infinite linear;
	animation: load8 1.1s infinite linear;
}
.loader-wrapper{
	display: none;
        width: 100%;
        height: 100%;
        top: 0;
        left: 0;
}
.loader-wrapper.fixed{
	background-color: rgba(0, 0, 0, 0.5);
        position: fixed;
}
.loader-wrapper.show{
	display: block;
}
.loader-history{
        top:calc(50% - 14em/2);
}

@-webkit-keyframes load8 {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}
@keyframes load8 {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}
.qrreader-back{
	background-color: #333;
	border: none;
	color: #fff;
	position: fixed;
	right: 0;
	top: 10vw;
	height: 40px;
	width: 80px;
}
.howtouse-site{
    background-color: #f00;
    border-radius: 5px;
    color: #fff;
    font-size: 18px;
    padding: 18px 0;
    text-decoration: none;
    display: inline-block;
    white-space: pre-wrap;
    width: 85%;
    padding: 0.7em 0.3em;	
}

/* コンテンツページ */
.wrapper.contents{
	padding-bottom: 15vh;
	position: static;
}
.youtube-wrapper{
    display: none;
}
.youtube-wrapper.show{
    display: block;
}
.contents-iframe-wrapper{
    display: none;
}
.contents-iframe-wrapper.show{
    display: block;
}
.youtube{
    width: 100%;
    height: calc(100vw * 9/ 16);
}
.thumbnail{
    position: absolute;
    top: 10vh;
    left: 0;
    width: 100%;
    height: calc(100vw * 9 / 16);
    background: linear-gradient(#0c3a7b, #1657a9);
    z-index: 10;
    opacity: 0.1;
    
}
.play {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: calc(100vw * 18 / 32);
    opacity: 0.1;
}
.contents-text-wrapper{
    display: none;
    position: fixed;
    z-index: 11;
    text-align: center;
    top: 20vh;
    width: 100%;
}
.contents-text-wrapper.show{
    display: block;
}
.contents-text-wrapper > div{
    background-color: rgba(153, 204, 255, 0.8);
    border: 1px solid #808080;
    border-radius: 20px;
    width: 45vw;
    margin: 0 auto;
    padding: 15px 5px;
    text-align: center;
}
.contents-iframe{
    width: 100%;
    height: 90vh;
    overflow:hidden;
}
.close{
    margin-top: 20px;
}
.contents-site-wrapper{
    margin-top: 100px;
    display: none;
}
.contents-site-wrapper.show{
    display: block;
    text-align: center;
}
.contents-site{
    background-color: #5D99FF;
    border-radius: 5px;
    color: #fff;
    font-weight: bold;
    font-size: 18px;
    padding: 18px 0;
    text-decoration: none;
    display: inline-block;
	white-space: pre-wrap;
    width: 85%;
	box-shadow: 0px 0px 0px 5px #dfefff;
	border: dashed 1px white;
	padding: 0.7em 0.3em;
	
}
.contents-site-link{
	display: inline-block;
	margin-top: 10px;
}
.contents-site-banner-text{
	background-color: #000;
    border-radius: 5px;
    color: #fff;
    margin: 10px;
    padding: 10px;
    text-align: center;
    border: 1px solid #000;
    display: inline-block;
	min-width: 50vw;
	max-width: calc(100vw - 10px);
	width: auto;
}
.contents-site-link img{
	height: auto;
	width: 100%;
}

.contents-site-banner-wrapper{
    margin-top: 20px;
}
.toppage-button-wrapper{
    text-align: center;
}
.toppage-button-wrapper.fixed{
    position: fixed;
    bottom: 10vh;
    left: 50%;
    transform: translateX(-50%);
}
.toppage-button-wrapper.margin-top{
	margin-top: 100px;
}
.blank-contents{
	display: none;
}
.blank-contents.show{
	display: block;
	height: 50vw;
}
/* 履歴ページ */
.wrapper.wrapper-history{
    height: 90vh;
    padding: 0;
    margin-top: 0;
}
.history-wrapper{
    height: 90vh;
    overflow-y: scroll;
}
.history{
    background-color: #EEEEEE;
    border-collapse: collapse;
    margin: 15px auto;
    width: 98%;
    margin-bottom: 8vh;
}
.history,
.history tr,
.history td{
    border: 1px solid #000;
    font-size: 12px;
    word-break : break-all;
}
.history tr:nth-of-type(5n + 1) td,
.history tr:nth-of-type(5n - 3) td:first-of-type{
    border-bottom: 2px solid #000;
}
.history tr:first-of-type td{
    font-size: 18px;
    color: #000;
}
.history tr:not(:first-of-type) td{
    color: #f03;
}
.history tr .img-cell{
	height: calc(25vw - 10px);
    width: 25vw;
}
.history tr .title-cell{
	height: calc(25vw * 0.2 - 10px);
    width: 25vw;
}
.history tr .delete-cell{
	height: calc(25vw * 0.2 - 10px);
    width: 50vw;
}
.history tr .url{
	height: calc(25vw * 0.6 - 10px);
}
.history td{
    padding: 5px;
}
.img-cell{
	text-align: center;
    width: 30%;
}
.img-cell img{
    width: 100%;
    height: auto;
}
.history-delete-button-cell{
	text-align: center;
}
.history-delete-button{
    background-color: #999;
    border: 1px solid #000;
    border-radius: 3px !important;
    color: #fff;
    width: 30%;
}
.history-footer{
    background-color: #000044;
    bottom: 0px;
    height: 55px;
    padding: 0;
    position: fixed;
    margin: 0;
    width: 100%;
}
.history-footer.side{
    height: 15vh;
}
.history-footer li{
    margin-top: 1vh;
    list-style: none;
}
.history-footer li:first-of-type{
    text-align: center;
}
.history-footer li:not(:first-of-type){
    margin-left: 5vw;
}



body{
	padding: 0px;
	margin: 0px;
}

img{
	padding: 0px;
	margin: 0px;
	vertical-align: bottom;
}
div,p{
	padding: 0px;
	margin: 0px;
}
ul{
	list-style: none;
	margin: 0;
	padding: 0;
}
input[type="text" i] {
	padding: 0;
}
button, input, select, textarea {
	font-family : inherit;
}
.box2 {
    display: inline-block;
    width: 60%;
    padding: 0.6em 0 ;
    margin: 1.0em 0 0 0;
    font-weight: bold;
    color: #4682b4;/*文字色*/
    background: #FFF;
    border: solid 2.0px #0000CD;/*線*/
    border-radius: 10px;/*角の丸み*/
}
.box3 {
	background-color: #00CCCC;
	padding:0.5em;
	padding-top: 3vw;
	text-align: left;
}
.setting{
	background-color: #00CCCC;
	padding:0.9em;
	padding-top: 5vw;
}
.introduced,
.introduce{
	display: flex;
	flex-wrap: nowrap;
	justify-content: space-between;
	margin: 0 auto 2vw;
	width: 100%;
}
.introduced button{
	color: #000;
}
.introduced button,
.introduce button,
.exit{
	border: 1px solid #000;
	border-radius: 10px;
	display: none;
	font-size: 16px;
	height: calc(7vw + 6px);
	width: 100%;
}
.exit{
	background-color: #BBB;
	color: #fff;
	display: inline-block;
	margin-left: 35vw;
	width: 20vw;
}
.introduced button{
	background-color: #fc0;
}
.introduce button{
	background-color: #f03;
	color: #fff;
}
.introduced button.show,
.introduce button.show{
	display: block;
}

.introduced input[type="text"]{
	background-color: #fc0;
	border: solid 1px #000;
	border-radius: 10px;
	font-size: 16px;
	height: calc(7vw + 4px);
	text-align: center;
	width: 18vw;
}
.introduced li,
.introduce li{
	height: 7vw;
	padding: 0;
}
.introduced li span,
.introduce li span{
	line-height: calc(7vw + 4px);
	text-align: center;
}
.introduced li:first-of-type,
.introduce li:first-of-type{
	border: 1px solid #000;
	border-radius: 10px;
	padding: 2px 4px;
	width: 30%;
}
.introduced li:first-of-type{
	background-color: #fc0;
}
.introduce li:first-of-type{
	background-color: #f03;
	color: #fff;
}
.introduced li:nth-of-type(2),
.introduce li:nth-of-type(2){
	width: 20%;
}
.introduce li:nth-of-type(2) p{
	background-color: #f03;
	border: solid 1px #000;
	border-radius: 10px;
	color: #fff;
	height: calc(7vw + 4px);
	line-height: calc(7vw + 4px);
	margin: 0;
	text-align: center;
	width: 18vw;
}
.introduced li:nth-of-type(3),
.introduced li:nth-of-type(4),
.introduce li:nth-of-type(3),
.introduce li:nth-of-type(4){
	width: 20%;
}
.setting p{
	margin: 0 5vw 2vw;
	text-align: left;
}
.current-status{
	background-color: #ccc;
	border: solid 1px #000;
	border-radius: 10px;
	margin: 0 auto;
	padding: 10px;
	width: 85%;
}
.notice{
	font-size: small;
}
.mesbox{
/*visibility: visible;*/
    display:block;
    position: fixed;
    width: calc(100vw / 3);
    margin-top: 50vh;
}
.mesbox{
/*visibility: hidden;*/
    display: none;
}
.ok-wrapper{
	background-color: #F9F8E9;
	height: 100vh;
}
.thankyou-wrapper{
	background-color: #e0ffff;
	height: 100vh;
}
/* キャラカメ */
body.characame-body{
	background-color: #000;
}
.characame-container{
}
.characame-video{
	margin: 10px auto;
	visibility: hidden;
}
.characame-canvas{
	position: absolute;
	top: 20px;
	left: 0;
	z-index: 1;
	pointer-events: none;
	margin: 0 auto;
}
.characame-wrapper{
	position: relative;
	margin: 10px auto;
}
.characame-download{
	display: none;
}
.characame-button-container{
	position: relative;
}
.characame-text-container{
	text-align: center;
}
.characame-text-container{
	margin-bottom: 10px;
}
.characame-text-container span{
	color: #fc3;
}
.characame-snap{
	width: 80px;
	height: 80px;
	background-color: #fff; 
	border-radius: 50% !important;
	position: relative;
	padding: 0;
	border: none;
	cursor: pointer;
	outline: none;
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
}
.characame-snap::before {
	content: '';
	width: 60px;
	height: 60px;
	background-color: #fff;
	border: 5px solid #000;
	border-radius: 50%;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}
.change-camera{
	background-color: #333;
	border: none;
	border-radius: 50% !important;
	padding: 15px;
	transform: translateY(-50%);
	position: absolute;
	right: 10%;
	transform: translateY(20%);
	cursor: pointer;
}
.change-camera i{
	color: #fff;
}
.characame-torchbutton-container{
	height: 60px;
}
.characame-torchbutton-container button{
	margin-left: 20px;
	width: 60px;
	cursor: pointer;
}
.characame-torchbutton-container img{
	height: auto;
	width: 100%;
}
.return-toppage{
	position: absolute;
	left: 10%;
	transform: translateY(20%);
	cursor: pointer;
	color: #fff;
	background-color: #333;
	padding: 10px;
	border: none;
}
.custom-warning-overlay{
	position: fixed;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100vh;
	background-color: rgba(255, 255, 255, 0.9);
	display: flex;
	justify-content: center;
	align-items: center;
	z-index: 9999;
}
.custom-warning{
	background-color: #a00;
	display: flex;
	flex-direction: column;
	justify-content: space-evenly;
	align-items: center;
	text-align: center;
	position: relative;
	width: 90vw;
	height: 70vh;
}
.custom-warning p{
	color: #fff;
	font-size: x-large;
	padding: 0 10px;
}
.custom-warning button{
	background-color: #0a0;
	border: none;
	color: #000;
	font-size: x-large;
	padding: 10px;
}
@media only screen and (min-width: 600px) {
    body {
        background-color: darkgray;
    }
	.mesbox{
	/*visibility: visible;*/
		display:block;
		position: fixed;
		width: calc(100vw / 3);
		margin-top: 50vh;
	}
	#mesl{
		left: 0;
		font-size:30px;
		text-align: right;
	}
	#mesr{
		right: 0;
		font-size:30px;
		text-align: left;
	}
	
    #wrapper {
		background-color: #000044;
        max-width: 550px;
        margin: 0 auto;
    }
	#wrapper.contents{
		margin-top: 90px;		
	}
	.reader{
		max-width: 550px;
	}
	.reader-video{
		margin: 120px 0 30px;
		max-height: 500px;
		max-width: 550px;
	}
	.qrreader-back{
		right: calc(50% - 250px);
		top: 250px;
		z-index: 10;
	}
	.ok-wrapper,
	.thankyou-wrapper{
		margin: 0 auto;
		max-width: 550px;
	}
    .header {
        position: fixed;
        height: 90px;
        max-width: 550px;
        left: 50%;
        transform: translateX(-50%);
        width: 100%;
    }
	.header ul {
        width: 94%;
        padding: 0 3%;
    }
	.header li:nth-of-type(1),
	.header li:nth-of-type(3) {
		width: 80px;
	}
	.header li:nth-of-type(2) img{
		width: 95%;
	}
	.point{
		font-size: x-large;
		left: 50%;
		top: 40px;
	}
	.footer{
		position: static;
	}
	.contents-text-wrapper {
		width: 250px;
	}
	.contents-text-wrapper > div {
        left: 50%;
		top: 150px;
		position: inherit;
        transform: translateX(-50%);
		width: 250px;
	}
	.contents-site-wrapper {
		margin-top: 90px;
	}
	.contents-site-banner-text {
		min-width: 250px;
	}	
	.history-footer {
        max-width: 600px;
	}
	.history tr .img-cell {
		height: 120px;
		width: 125px;
	}
	.history tr .title-cell {
		height: 20px;
		width: 125px;
	}
	.history tr .delete-cell {
		height: calc(125px * 0.2 - 10px);
		width: 250px;
	}	
	.history-footer{
		position: static;
	}
	.characame-canvas{
		left: 50%;
		transform: translateX(-50%);
	}
	body.characame-body{
		background-color: darkgray;		
	}
	#wrapper.characame-wrapper{
		background-color: #000;
		height: 100vh;
	}
	.custom-warning-overlay{
		max-width: 550px;
		left: 50%;
		top: 50%;
        transform: translateX(-50%) translateY(-50%);
	}
	.custom-warning{
		width: 90%;
	}
}