/*
 * Pure CSS linear visual novel tool.
 *
 * Copyright 2015 Kevin Lange
 *
 * <!- Insert BSD license here -->
 *
 */

@font-face {
	font-family: 'VTC Letterer pro';
	font-style: normal;
	font-weight: 400;
	src: url(assets/ui/fonts/VTC_letterer_pro.ttf);
}

body {
	padding: 0px;
	margin: 0px;
	width: 100%;
	height: 100%;
	background: #000;
	overflow: hidden;
	font-family: 'VTC Letterer pro';
}

/*
 * The viewport holds all the frames.
 * It should fill screen.
 */
div.viewport {
	padding: 0px;
	position: absolute;
	left: 0px;
	right: 0px;
	top: 0px;
	bottom: 0px;
	overflow: hidden;
}

/*
 * The stage contains all of the elements that should
 * apppear on screen together. Usually, a frame
 * will have two stages - a previous viewpoint to
 * transition from, and the actual contents of the
 * current frame. Timed transitions might use three
 * stages - previous content, the content to automatically
 * transition away from, and the content for the "next"
 * frame after the transition.
 */
div.stage {
	position: absolute;
	left: 0px;
	top: 0px;
	width: 100vw;
	height: 100vh;
	padding: 0;
	margin: 0;
	overflow: hidden;
}

/*
 * Character positioning.
 */

img.pirogoeth {
	height: 100%;
}

.center-character {
	text-align: center;
	width: 100%;
	height: 100%;
	position: absolute;
	bottom: 0;
	left: 0;
}

.right-character {
	text-align: right;
	width: 100%;
	height: 100%;
	position: absolute;
	bottom: 0;
	left: 0;
}

.left-character {
	text-align: left;
	width: 100%;
	height: 100%;
	position: absolute;
	bottom: 0;
	left: 0;
}

/*
 * Scene overlays.
 */
.overlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

.screen-color-10 { background-color: rgba(0,0,0,0.1); }
.screen-color-20 { background-color: rgba(0,0,0,0.2); }
.screen-color-30 { background-color: rgba(0,0,0,0.3); }
.screen-color-40 { background-color: rgba(0,0,0,0.4); }
.screen-color-50 { background-color: rgba(0,0,0,0.5); }
.screen-color-60 { background-color: rgba(0,0,0,0.6); }
.screen-color-70 { background-color: rgba(0,0,0,0.7); }
.screen-color-80 { background-color: rgba(0,0,0,0.8); }
.screen-color-90 { background-color: rgba(0,0,0,0.9); }

/*
 * Animations
 */
.slide-from-right {
	animation: slide-from-right 1s 1;
	-webkit-animation: slide-from-right 1s 1;
}
.fade-in {
	animation: fade-in 0.5s 1;
	-webkit-animation: fade-in 0.5s 1;
}
.fade-in-slow {
	animation: fade-in 5s 1;
	-webkit-animation: fade-in 5s 1;
}
.shake {
	animation: shake-it 0.1s 3 linear alternate;
	-webkit-animation: shake-it 0.1s 3 linear alternate;
}

/*
 * Traditional VN dialogue boxes.
 */
.sayscreen-border {
	/*
	 * This should be customized to the theme of
	 * the VN, and also probably to the individual
	 * character that the dialogue is for.
	 *
	 * This default is black, semi-transparent, with
	 * orange borders. This is what dialogue in the
	 * Megatokyo Visual Novel is supposed to look like.
	 */
	background-color: rgba(0,0,0,0.75);
	border-radius: 2vh;
	border: solid;
	border-color: #ffc137;
	border-width: 0.5vh;
}
div.sayscreen-holder {
	position: absolute;
	bottom: 1%;
	left: 11.5%;
	width: 75%;
	height: 25%;
	padding: 0%;
}
div.sayscreen-character {
	/* This is whre the character name appears. */
	padding-left: 0.7vh;
	padding-top: 0.3vh;
	color: #ff8400;
	font-size: 5vh;
}
div.sayscreen {
	height: 70%;
}
div.sayscreen-title {
	height: 20%;
	width: 25vh;
	margin-bottom: 0.4vh;
}
div.sayscreen-text {
	/* This is where the text shows up */
	padding: 2vh;
	color: #FFFFFF;
	font-size: 5vh;
}

/*
 * Wordbubbles.
 * These are primarily for speech for the protagonist.
 */
div.wordbubble {
	color: #000;
	font-size: 5vh;
	width: 30%;
	text-align: center;
	bottom: 1%;
	left: 35%;
	position: absolute;

	background-color: #fff;
	border: 1vh solid #000;
	border-radius: 100%;
}
div.wordbubble-character {
	color: #000;
	font-size: 5vh;
	width: 30%;
	text-align: center;
	position: absolute;
	top: 30vh;
	left: 10vh;

	background-color: #fff;
	border: 1vh solid #000;
	border-radius: 100%;
}
div.wordbubble-text {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
}
div.wordbubble-content {
	padding: 6vh;
}

/*
 * Wordboxes are the same as bubbles,
 * but formatted as boxes instead.
 */
div.wordbox {
	color: #000;
	font-size: 5vh;
	width: 30%;
	border: 1vh solid #000;
	background-color: #fff;
	text-align: center;
	bottom: 1%;
	left: 35%;
	position: absolute;
	border-radius: 1vh;
}
.wordbox-content {
	padding: 2vh;
}

/*
 * Animation keyframe definitions.
 */
@keyframes slide-from-right {
	0% { left: 60%; opacity: 0.0; }
	100% { left: 40%; opacity: 1.0; }
}
@-webkit-keyframes slide-from-right {
	0% { left: 60%; opacity: 0.0; }
	100% { left: 40%; opacity: 1.0; }
}

@keyframes fade-in {
	0% { opacity: 0.0; }
	100% { opacity: 1.0; }
}
@-webkit-keyframes fade-in {
	0% { opacity: 0.0; }
	100% { opacity: 1.0; }
}

@keyframes shake-it {
	0% { top: -10vh; }
	100% { top: 10vh; }
}
@-webkit-keyframes shake-it {
	0% { top: -5vh; }
	100% { top: 5vh; }
}

/*
 * Centered white text.
 * This can be used for title screens,
 * or for internal dialogue of the protagonist
 * to describe the scene. Use with a black or
 * otherwise dark background.
 */
.centered-white-text {
	position: absolute;
	font-size: 5vh;
	color: #fff;
	left: 0px;
	right: 0px;
	bottom: 2vh;
	text-align: center;
	padding: 10vh;
	padding-left: 30vh;
	padding-right: 30vh;
	line-height: 5vh;
}
.centered-white-text > a {
	color: #fff;
}
.centered-white-text.vertical-one-line {
	bottom: 47.55vh;
	padding: 0;
}
.centered-white-text.vertical-two-line {
	bottom: 45vh;
	padding: 0;
}
.centered-white-text.vertical-three-line {
	bottom: 42.5vh;
	padding: 0;
}
.centered-white-text.vertical-four-line {
	bottom: 40.0vh;
	padding: 0;
}
.centered-white-text.vertical-five-line {
	bottom: 37.5vh;
	padding: 0;
}

/*
 * These are the critical controls
 * for the VN and control how transition
 * elements are formatted and frames get
 * displayed. Don't mess with them unless you
 * know what you are doing.
 */
.frame > form {
	position: absolute;
	display: block;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
}
.frame > form > button {
	position: absolute;
	display: block;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	opacity: 0.0;
}
.frame > a.framelink {
	position: absolute;
	display: block;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	opacity: 0.0;
}

audio {
	position: absolute;
	left: 0;
	top: 0;
	background-color: #fff;
}

#preload {
	position: absolute;
	left: 0;
	top: 0;
	width: 1;
	height 1;
	opacity: 0.0;
}

.frame {
	display: none;
}

:target {
	display: block;
}

