@charset "utf-8";

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&display=swap');

body,div,pre,p,blockquote,form,ul,ol,li,fieldset,input,textarea,select,option,dl,dt,dd,h1,h2,h3,h4,h5,h6,table,th,td,embed,object {margin:0;padding:0;}
body,div,pre,p,blockquote,form,ul,ol,li,fieldset,input,textarea,select,option,dl,dt,dd,h1,h2,h3,h4,h5,h6,table,embed,object {vertical-align:baseline;}
article,aside,details,figcaption,figure,footer,header,menu,nav,section,main {display:block;margin:0;padding:0;}
html {
	scrollbar-width: thin;
	scrollbar-color: #484 #efe;
}
body {
	background: url(../images/bg.jpg) no-repeat center / cover;
	background-attachment: fixed;
	font-family: "Noto Sans JP", sans-serif;
	font-optical-sizing: auto;
	font-weight: 400;
	font-style: normal;
	scrollbar-width: thin;
	scrollbar-color: #484 #efe;
}
a {
	color: #484;
}

@keyframes rot {
	from {
		transform: rotateX(90deg);
	}
	to {
		transform: rotateX(0);
	}
}

main {
	margin: 20px auto;
	box-sizing: border-box;
	padding: 20px;
	max-width: 960px;
	border-radius: 20px;
	background: rgba(255,255,255,0.7);
	line-height: 1.8;
	text-align: justify;
	min-height: calc(100vh - 40px);
	animation: rot 1s ease-in-out forwards;
	&>:last-child {
		margin-bottom: 0;
	}
	h1 {
		text-align: center;
		margin-bottom: 40px;
		font-size: 45px;
		font-weight: 700;
	}
	h2 {
		margin-block: 30px;
		font-size: 28px;
		time {
			font-size: 55%;
			margin-right: 20px;
			vertical-align: middle;
		}
		span.mark {
			border-radius: 5px;
			padding: 5px;
			font-size: 15px;
			background-color: #fff;
			vertical-align: middle;
			font-weight: normal;
			white-space: nowrap;
		}
	}
	h3 {
		margin-block: 20px;
		font-size: 24px;
		&.q::before {
			content: 'Q. ';
		}
	}
	p {
		margin-bottom: 1.5em;
		font-size: 18px;
		&.lastupdate {
			text-align: right;
		}
	}
	ul,
	ol {
		margin-bottom: 1.5em;
		font-size: 18px;
		margin-left: 30px;
		li {
			margin-bottom: 1em;
		}
	}
	dt {
		margin-bottom: 5px;
		font-size: 18px;
	}
	dd {
		margin-bottom: 1.5em;
		font-size: 18px;
	}
	select {
		padding: 10px;
		font-size: 18px;
		box-sizing: border-box;
	}
	input[type="text"],
	input[type="email"] {
		padding: 10px;
		font-size: 18px;
		box-sizing: border-box;
		width: 100%;
	}
	textarea {
		padding: 10px;
		font-size: 18px;
		box-sizing: border-box;
		width: 100%;
		height: 200px;
		line-height: 1.5;
	}
	input[type="submit"],
	button {
		padding: 10px;
		font-size: 18px;
		box-sizing: border-box;
		width: 100%;
		background: #ff8;
		appearance: none;
		border-radius: 50px;
		border: none;
	}
	summary {
		margin-block: 30px;
		font-size: 28px;
		cursor: pointer;
		time {
			font-size: 55%;
			margin-right: 20px;
			vertical-align: middle;
		}
	}
	details {
		border-bottom: 1px solid #484;
	}
}
aside {
	opacity: 0;
	transform: rotateX(90deg);
	transition-property: transform, opacity, display;
	transition-duration: 1s;
	transition-behavior: allow-discrete;
	margin: auto;
	background: #ff8;
	padding: 20px;
	border: none;
	border-radius: 20px;
	&:popover-open {
		opacity: 1;
		transform: rotateX(0);
	}
	ul {
		margin-left: 20px;
		font-size: 16px;
		line-height: 1.5;
	}
}
footer {
	button {
		position: fixed;
		left: 0;
		right: 0;
		bottom: 10px;
		margin: auto;
		appearance: none;
		width: 40px;
		height: 40px;
		background: #ff8;
		border-radius: 20px;
		border: none;
		padding: 0;
		outline: none;
		transition: 0.3s;
		cursor: pointer;
		&::before,
		&::after {
			content: '';
			display: block;
			background: #000;
			position: absolute;
			top: 20px;
			border-radius: 3px;
			width: 3px;
			height: 3px;
		}
		&::before {
			left: 11px;
		}
		&::after {
			right: 11px;
		}
		&:hover {
			transform: scale(1.2);
		}
		svg {
			path {
				fill: none;
			}
			text {
				fill: #000;
				font-size: 6px;
				letter-spacing: 0.25em;
			}
		}
	}
}
@media screen and (min-width: 1000px) {
	aside {
		width: 800px;
	}
}
@media screen and (max-width: 999px) {
	main {
		margin-inline: 20px;
		h1 {
			font-size: 32px;
		}
		iframe {
			width: 100%;
		}
	}
}
