@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@900&display=swap');
*{
	font-size: 1em;
	cursor:url(resources/arrow.cur),auto;
}
html{
	word-break: break-word;
	--text-shadow: 
	-.1em -.1em black,
	.1em -.1em black,
	-.1em .1em black,
	.1em .1em black,
	0 -.1em black,
	0 .1em black,
	-.1em 0 black,
	.1em 0 black;
}
body{
	margin:0;
	padding:0;
	border:0;
	font:normal 16px 'Noto Sans SC', monospace, sans-serif;
	color: #ddd;
	background-color: #222;
	display: grid;
	grid-template-areas:
	"header header"
	"nav nav"
	"main sidebar"
	"footer footer";
	grid-template-columns: minmax(350px, 3fr) minmax(300px, 1fr);
}
header{
	grid-area: header;
	height: 200px;
	padding: 50px;
	box-sizing: border-box;
	background-color: #fbf6f1;
	background-image: url(resources/banner.webp);
	background-repeat: no-repeat;
	background-position: right;
}
nav{
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	justify-content: space-evenly;
	gap: 1em 2em;
	grid-area: nav;
	position: relative;
	margin: 0 auto 50px;
	padding: 1em 2em;
	background-color: #254a72;
	box-shadow: 0 0 0 5px #2a619c inset;
	border: 3px solid black;
	border-top: none;
}
nav::after{
	content: "";
	position: absolute;
	bottom: -53px;
	width: 151px;
	height: 66px;
	background-image: url(resources/town_defense.webp);
}
nav a:hover{
	filter: brightness(1.1);
}
main{
	grid-area: main;
	padding: 1em;
}
#sidebar{
	grid-area: sidebar;
	padding: 1em;
}
#sidebar #taglist{
    display: flex;
    flex-wrap: wrap;
    flex-direction: column;
    justify-content: center;
    align-content: center;
    gap: 1em;
}
#sidebar #taglist h2{
	flex-basis: 100%;
}
footer{
	grid-area: footer;
	padding: 1em;
	text-align: center;
	background-color: #201e1a;
	box-shadow: 0 3px 0 0 #2c281f inset;
	border-top: 3px solid black;
}
footer a{
	white-space: nowrap;
}
img{
	max-width: 100%;
}
h1, h2{
	font-weight: normal;
	text-align: center;
}
h1{
	font-size: 2em;
}
h2{
	font-size: 1.5em;
}
a{
	color: inherit;
	text-decoration-thickness: 1px;
}
a:hover, a:focus{
	text-decoration-style: double;
}
form{
	margin: 0;
}
form label{
	display: block;
	margin-top: 1em;
}
form label + *{
	width: 100%;
}
button, a.button{
	display: inline-block;
	padding: .5em 1em calc(0.5em + 6px);
	margin: 1em;
	border: 3px solid black;
	background-color: hsl(220deg 50% 50%);
	box-shadow:
	0 -6px 0 0 hsl(220deg 50% 35%) inset,
	0 -6px 0 3px hsl(220deg 50% 65%) inset,
	0 0 0 3px hsl(220deg 50% 65%) inset;
	color: inherit;
	text-align: center;
	font-family: 'Noto Sans SC', monospace, sans-serif;
}
:is(button, a.button):hover{
	filter: brightness(1.1);
}

#sidebar #user_area{
	position: relative;
	background-color: #5c533c;
	border: 3px solid black;
	box-shadow:
	0 -6px 0 0 #302d29 inset,
	0 0 0 3px #6e6346 inset,
	0 -6px 0 3px #6e6346 inset;
}
#sidebar #user_area .avatar{
	position: relative;
	display: inline-block;
	padding: 10px;
	margin: 10px;
}
#sidebar #user_area .avatar::after{
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	background-image:
	url(resources/avatar_top_left.png),
	url(resources/avatar_top_right.png),
	url(resources/avatar_bottom_right.png),
	url(resources/avatar_bottom_left.png);
	background-position:
	top left,
	top right,
	bottom right,
	bottom left;
	background-repeat: no-repeat, no-repeat, no-repeat, no-repeat;
}
#sidebar #user_area .avatar img{
	display: block;
	border: 2px solid;
}
#sidebar #user_area p{
	margin: 1em;
}
#sidebar #user_area #logout{
	position: absolute;
	background-image: url(resources/close_banner.png);
	width: 76px;
	height: 111px;
	top: -7px;
	right: -10px;
}
#sidebar #user_area #logout:hover{
	filter: brightness(1.1);
}

.info{
	position: relative;
	padding: 1em 1em calc(1em + 5px);
	margin: 1em auto;
	width: max-content;
	border: 3px solid black;
	box-shadow: 0 -5px 0 #8c7c5e inset;
	background-image: linear-gradient(#bcaa7f, #d1c096);
	color: #222;
}
.info::before{
	content: "";
	left: .5em;
	top: -1em;
	width: calc(100% - 1em);
	height: 43px;
	position: absolute;
	background-image:
	url(resources/nail.png),
	url(resources/nail.png);
	background-position:
	top left,
	top right;
	background-repeat: no-repeat;
}
.info p{
	margin: 0.5em;
}

.mod_list{
	text-align: center;
}
.mod_list a{
	position: relative;
	display: inline-block;
	width: 250px;
	max-width: calc(100vw - 4em);
	height: 250px;
	max-height: calc(100vw - 4em);
	margin: 1em;
	background-color: #047;
	background-image:
	linear-gradient(rgba(255,255,255,.1) 1px, transparent 1px), 
	linear-gradient(90deg, rgba(255,255,255,0.1) 1px, transparent 1px), 
	linear-gradient(rgba(255,255,255,.1) 0px, transparent 1px), 
	linear-gradient(90deg, rgba(255,255,255,.1) 0px, transparent 1px);
	background-size: 100px 100px, 100px 100px, 20px 20px, 20px 20px;
	background-position: center;
}
.mod_list a > *{
	position: absolute;
	box-sizing: border-box;
}
.mod_list a img{
	object-fit: cover;
}
.mod_list a img:nth-of-type(2){
	left: 0;
	top: 0;
	width: 25%;
	height: 25%;
	opacity: 0;
}
.mod_list a div{
	bottom: 0;
	width: 100%;
	margin: 0;
	padding: 0.5em;
	background-color: #000c;
	opacity: 0;
}
.mod_list a:hover :is(img:nth-of-type(2), div){
	opacity: 1;
}

.authors_list{
	text-align: center;
	background-color: #8c7c5e;
	border: 3px solid black;
}
.authors_list a{
	position: relative;
	display: inline-grid;
	grid-template-areas:
	"img name"
	"img div";
	align-items: center;
	column-gap: 1em;
	padding: 1em;
	margin: 1em;
	background-color: #ae9c76;
	text-decoration: none;
	border: 2px solid black;
}
.authors_list a:hover::after{
	content: "";
	position: absolute;
	left: -8px;
	top: -8px;
	width: calc(100% + 16px);
	height: calc(100% + 16px);
	background-image:
	url(resources/frame_top_left.png),
	url(resources/frame_top_right.png),
	url(resources/frame_bottom_right.png),
	url(resources/frame_bottom_left.png);
	background-position:
	top left,
	top right,
	bottom right,
	bottom left;
	background-repeat: no-repeat, no-repeat, no-repeat, no-repeat;
}
.authors_list a > img{
	grid-area: img;
	border: 2px solid;
}
.authors_list a > span{
	grid-area: name;
	min-width: 160px;
	text-shadow: var(--text-shadow);
	color: #febe00;
}
.authors_list a > div{
	grid-area: div;
}
.authors_list a div div{
	position: relative;
	display: inline-block;
	margin: 0 1em;
}
.authors_list a div span{
	position: absolute;
	right: -.5em;
	bottom: 0;
	text-shadow: var(--text-shadow);
}

@media only screen and (max-width: 700px) {
	body{
		grid-template-areas:
		"header"
		"nav"
		"main"
		"sidebar"
		"footer";
		grid-template-columns: auto;
	}
	header{
		padding: 50px 0;
		text-align: center;
	}
	header img{
		max-width: 100vw;
	}
	main{
		padding: 0;
	}
	#sidebar #taglist{
		flex-direction: row;
	}
}