@charset "UTF-8";
@import url('//fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;700&display=swap');
:root {
	--base-font-color: #444;		/* 基本文字色 */
	--base-back-color: #c2d2d4;	/* 基本背景色 */
	--base-link-color: #444;		/* 基本リンク文字色 */
	--button-font-color: #333;		/* ボタン文字色 */
	--button-back-color: #fff;		/* ボタン背景色 */
	--button-border-color: #aaa;	/* ボタン枠線色 */
}
html {
	color: var(--base-font-color);
	font-size: 14px;
	font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
}
body {
	position: relative;
	background-color: var(--base-back-color);
}
#loading {
	position: fixed;
	top: 0;
	left: 0;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100vw;
	height: 100vh;
    background-color: #fff;
	opacity: 1;
	transition: opacity .5s;
	transition-delay: .5s;
	z-index: 99;
	pointer-events: none;
}
#loading.loaded {
	opacity: 0;
	pointer-events: none;
}
#loading.transitionend {
	display: none;
}
#loading span {
	transform: translateY(-10dvh);
}
#wrapper {
	/* position: fixed;
	top: 0;
	left: 0; */
	display: flex;
	flex-direction: column;
	width: 100vw;
	/* height: 100dvh; */
	font-size: 1rem;
	background-color: var(--base-back-color);
	/* overflow: hidden; */
}
#landscape {
	display: none;
}
main {
	display: grid;
	grid-template-columns: 1fr;
	grid-template-rows: auto 1fr;
	grid-column-gap: 0;
	grid-row-gap: 0;
	padding: 0;
	width: 100%;
	/* height: 100dvh; */
}
section {
	margin: 0;
	padding: 0 20px;
}
img {
	object-fit: contain;
}
a {
	color: var(--base-link-color);
	text-decoration: none;
	outline: 0 !important;
}
a:hover {
	text-decoration: underline;
}
a.button {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	padding: .5rem .2rem;
	text-align: center;
	color: var(--button-font-color);
	background-color: var(--button-back-color);
	border: 1px solid var(--button-border-color);
	font-size: .8em;
	line-height: 1.1em;
	overflow: hidden;
}
a.button:hover,
a.button.active {
	color: var(--button-back-color);
	background-color: var(--button-font-color);
	text-decoration: none;
}
a[disabled] {
	color: #aaa;
	background-color: #ddd;
	pointer-events: none;
}
header {
	position: relative;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 20px;
	margin: 0;
	padding: 10px;
}
header img {
	width: 100%;
	max-width: calc(100vw - 5px);
	min-height: 25px;
	max-height: 45px;
}
header a:hover {
	opacity: .8;
}