/* color palette: https://coolors.co/23f0c7-ef767a-7765e3-6457a6-ffe347 */

@import url('/static/fonts/Route159/Route159.css');
@import url('/static/fonts/Lora/Lora.css');
@import url('/static/fonts/Playfair_Display/PlayfairDisplay.css');

/*
 * == Global ==
 */

 html, body {
 	margin: 0;
 	padding: 0;
 	background: #F4F4F4;
 	color: #242424;
 	font-family: "Route159", serif;
 }

 a, a:visited {
 	color: #7765E3;
 	text-decoration: none;
 }

 small {
 	margin-left: 1em;
 	color: rgba(36, 36, 36, 0.6);
 	font-size: 0.75em;
 	word-wrap: break-word;
 	word-break: break-all;
 }

 .center {
 	text-align: center;
 	font-weight: bold;
 	opacity: 0.6;
 	padding: 5em;
 }

 .spaced {
 	margin: 4rem 0;
 }

 .cards.spaced {
     margin: 1rem 0 5rem;
 }

 .banner {
 	background: #DADADA;
 	padding-top: 2em;
 	padding-bottom: 1em;
 	margin: 3em 0px;
 }

/*
 * == Header ==
 */

 header {
 	background: #ECECEC;
 }
 header #content {
 	display: flex;
 	align-content: center;
 	justify-content: space-between;
 }

 header nav#menu {
 	position: relative;
 	display: none;
 	transform: skewX(-15deg);
 	left: -1em;
 	padding: 1em 1em 1em 2em;
 	background: #7765E3;
 	align-self: flex-start;
 }
 header nav#menu a {
 	transform: skewX(15deg);
 	display: flex;
 	flex-direction: column;
 	align-items: center;
 	justify-content: center;
 	width: 1.4em;
 	height: 1.4em;
 	margin: 0;
 	padding: 0;
 	color: #ECECEC;
 	font-size: 1.33em;
 }

 header nav {
 	display: flex;
 	flex-direction: row;
 	align-items: center;
 }
 header nav hr {
 	height: 100%;
 	width: 0.2em;
 	background: #7765E3;
 	border: none;
 	transform: skewX(-15deg);
 }
 header nav a {
 	display: flex;
 	align-items: center;
 	position: relative;
 	align-self: stretch;
 	margin: 0;
 	padding: 0 2em;
 	font-size: 1em;
 }
 header nav a.title {
 	margin: 0;
 	padding: 0.5em 2em;
 	font-size: 1.75em;
 	text-align: center;
 }
 header nav a i { font-size: 1.2em; }

 /* Only enable label animations on normal screens. */
 @media screen and (min-width: 900px) {
 	header nav a i {
 		transition: all 0.2s ease;
 		margin: 0;
 	}

 	header nav a:hover i { margin-bottom: 0.75em; }

 	header nav a .mobile-label {
 		transition: all 0.2s ease;
 		display: block;
 		position: absolute;
 		left: 50%;
 		transform: translate(-50%, 0);
 		opacity: 0;
 		font-size: 0.9em;
 		white-space: nowrap;
 	}
 	header nav a:hover .mobile-label {
 		opacity: 1;
 		transform: translate(-50%, 80%);
 	}
 	header nav a img + .mobile-label { display: none; }
 }

/*
 * == Main ==
 */

 body > main > * {
 	padding: 0 20%;
 }

 main h1 {
 	font-family: "Route159";
 	font-size: 2.5em;
 	font-weight: 300;
 }
 main h1.article {
 	max-width: 40rem;
 	margin: 1em auto 0.5em;
 	font-family: "Playfair Display", serif;
 	font-size: 2.5em;
 	font-weight: normal;
 }

 main h2 {
 	font-family: "Route159";
 	font-size: 1.75em;
 	font-weight: 300;
 }

/*
 * == Article ==
 */

 /* Author */

 main .article-info {
 	max-width: 40rem;
 	margin: 0 auto 3em;
 	font-size: 0.95em;
 	font-weight: 400;
 }
 main .article-info .author { font-weight: 600; }
 main .article-info .author a { font-weight: 600; }

 /* Article */

 main article {
 	max-width: 40rem;
 	margin: 2.5em auto;
 	font-family: "Lora", serif;
 	font-size: 1.2em;
 	line-height: 1.7em;
 }

 main a:hover {
         text-decoration: underline;
 }

 article img {
 	display: block;
 	margin: 3em auto;
 	max-width: 100%;
 }

 article pre {
 	padding: 1em;
 	background: #DADADA;
 	overflow: auto;
 	border-radius: 5px;
 }

 /* Article.Meta */

 main .article-meta, main .article-meta button {
 	padding: 0;
 	font-size: 1.1em;
 	margin-top: 10%;
 }
 main .article-meta > * { margin: 0 20%; }

main .article-meta > p {
    margin: 2em 20%;
 	font-size: 0.9em;
}

/** Tags **/

main .article-meta .tags {
    list-style: none;
    display: inline-block;
    padding: 0px;
    margin-bottom: 2em;
}

main .article-meta .tags li {
    display: inline-block;
    background: #DADADA;
    padding: 0px;
    margin-right: 10px;
    border-radius: 3px;
    transition: all 0.2s ease-in;
}

main .article-meta .tags li:hover {
    background: #BBB;
}

main .article-meta .tags li a {
    display: inline-block;
    padding: 10px 20px;
    color: #242424;
}


 /* ~ Likes ~ */

 main .article-meta .likes p,
 main .article-meta .reshares p { display: inline-block; margin: 0; }

 /* Like / Reshare button */

 main .article-meta .actions {
 	display: flex;
 	flex-direction: row;
 	justify-content: space-around;
 }

 main .article-meta .likes,
 main .article-meta .reshares {
 	display: flex;
 	flex-direction: column;
 	align-items: center;
 	padding: 0.5em 0;
 }

 main .article-meta .likes > p,
 main .article-meta .reshares > p {
 	font-size: 1.5em;
 }

 main .article-meta .likes .action,
 main .article-meta .reshares .action {
 	display: flex;
 	flex-direction: column;
 	align-items: center;
 	justify-content: center;
 	margin: 0;
 	padding: 0;
 	background: none;
 	color: #242424;
 	border: none;
 	font-size: 1.1em;
 }

 main .article-meta .likes > p,
 main .article-meta .likes .action:hover { color: #E92F2F; }
 main .article-meta .reshares > p,
 main .article-meta .reshares .action:hover { color: #7765E3; }

 main .article-meta .likes .action svg.feather,
 main .article-meta .reshares .action i {
 	transition: background 0.1s ease-in;
 	display: flex;
 	align-items: center;
 	justify-content: center;

 	margin: 0.5em 0;
 	width: 2.5em;
 	height: 2.5em;

 	border-radius: 50%;
 }

 main .article-meta .likes .action svg.feather {
 	padding: 0.7em;
 	box-sizing: border-box;
 	color: #E92F2F;
 	fill: none;
 	border: solid #E92F2F thin;
 }
 main .article-meta .likes .action:hover svg.feather {
 	background: rgba(233, 47, 47, 0.15);
 }

 main .article-meta .reshares .action i {
 	color: #7765E3;
 	border: solid #7765E3 thin;
 	font-weight: 600;
 }
 main .article-meta .reshares .action:hover i {
 	background: rgba(119, 101, 227, 0.15);
 }

 main .article-meta .likes .action.liked svg.feather { background: #E92F2F; fill: currentColor; }
 main .article-meta .likes .action.liked:hover svg.feather {
 	background: rgba(233, 47, 47, 0.25);
 	color: #E92F2F;
 }
 main .article-meta .reshares .action.reshared i { background: #7765E3; }
 main .article-meta .reshares .action.reshared:hover i {
 	background: rgba(119, 101, 227, 0.25);
 	color: #7765E3;
 }

 main .article-meta .likes .action.liked svg.feather,
 main .article-meta .reshares .action.reshared i {
 	color: #F4F4F4;
 	font-weight: 900;
 }

 /* ~ Comments ~ */

 main .article-meta .comments { margin: 0; }
 main .article-meta .comments > * { margin-left: 20%; margin-right: 20%; }

 .comments h2 {
 	color: #7765E3;
 	font-size: 1.5em;
 	font-weight: 600;
 }

 /* New comment */

 main .article-meta .comments form input[type="submit"]
 { font-size: 1em; }

 /* Comment / Respond button */

 main .article-meta .comments a.button:before {
 	color: #7765E3;
 	padding: 0.5em;
 }
 main .article-meta .comments a.button {
 	display: inline-block;
 	padding: 0;
 	background: none;
 	color: #242424;
 	border: none;
 }
 main .article-meta .comments a.button:hover { color: #7765E3; }

 /* Comment button only */
 main .article-meta .comments > a.button { margin-bottom: 1em; }

 /* == List == */

 main .article-meta .comments .list {
 	display: grid;
 	margin: 0;
 	padding: 0 20%;
 	background: #ECECEC;
 }

 /* ~ Comment ~ */

 .comments .list .comment {
 	padding: 2em;
 	font-size: 1em;
 }

 .comments .list > .comment {
 	border: none;
 }

 .comments .list .comment .author {
 	display: flex;
 	flex-direction: row;
 	align-items: center;
 	align-content: center;
 }
 .comments .list .comment .author * {
 	transition: all 0.1s ease-in;
 }
 .comments .list .comment .author .display-name {
 	color: #242424;
 }
 .comments .list .comment .author:hover .display-name { color: #7765E3; }
 .comments .list .comment .author:hover small { opacity: 1; }

 .comments .list .comment .text {
 	padding: 1.25em 0;
 	font-family: "Lora", serif;
 	font-size: 1.1em;
 	line-height: 1.4em;
 	text-align: left;
 }

/*
 * == Form ==
 */

 label {
 	display: block;
 	margin: 2em auto 1em;
 	font-size: 1.2em;
 	max-width: 40rem;
 }
 input, textarea {
 	transition: all 0.1s ease-in;
 	display: block;
 	width: 100%;
 	max-width: 40rem;
 	margin: auto;
 	padding: 1em;
 	box-sizing: border-box;

 	background: #F4F4F4;
 	color: #242424;
 	border: none;
 	border: solid #DADADA thin;
 	border-radius: 0.5em;

 	font-size: 1.2em;
 	font-weight: 400;
 }
 form input[type="submit"] { margin: 2em auto; }
 input:focus, textarea:focus {
 	background: #FAFAFA;
 	border-color: #7765E3;
 }

 textarea {
 	resize: vertical;

 	font-family: "Lora", serif;
 	font-size: 1.1em;
 	line-height: 1.5em;
 }

 input[type="checkbox"] {
 	display: inline;
 	margin: initial;
 	min-width: initial;
 	width: initial;
 }

/** Inline forms (containing only CSRF token and a <submit>, for protected links) **/

form.inline {
    display: inline;
    margin: 0px;
    padding: 0px;
    width: auto;
}

form.inline input[type="submit"] {
    display: inline-block;
    color: #7765E3;
    cursor: pointer;
    font-size: 1em;
    width: auto;
}

form.inline input[type="submit"]:not(.button) {
    margin: 0;
    border: none;
}

form.inline input[type="submit"]:not(.button) {
    background: transparent;
    color: #7765E3;
}

 /* Button & Submit */

 .button, input[type="submit"], button {
 	transition: all 0.1s ease-in;
 	display: inline-block;

 	border-radius: 0.5em;
 	margin: 0.5em auto;
 	padding: 0.75em 1em;

 	background: transparent;
 	color: #7765E3;
 	border: 1px solid #7765E3;

 	cursor: pointer;
 }
 input[type="submit"] { display: block; }
 .button:hover, input[type="submit"]:hover {
 	background: #7765E399;
 	color: white;
 }

.button.destructive {
    color: #ef767a;
    border-color: #ef767a;
}

.button.destructive:hover {
    background: #ef767a99;
    color: white;
}

 /* Errors */

 p.error {
 	color: #ef767a;
 	font-weight: bold;
 	max-width: 40rem;
 	margin: 1em auto;
 }

/*
 * == New post ==
 */

 form.new-post .title {
 	margin: 0 auto;
 	padding: 0.75em 0;

 	background: none;
 	border: none;

 	font-family: "Playfair Display", serif;
 	font-size: 2em;
 	text-align: left;
 }
 form.new-post textarea {
 	min-height: 20em;
 	overflow-y: hidden;
 	resize: none;
 	box-sizing: content-box;
 }
 form.new-post input[type="submit"] {
 	background: #ECECEC;
 	color: #242424;
 	border: none;

 	font-family: "Playfair Display", serif;
 	font-size: 1.5em;
 }
 form.new-post input[type="submit"]:hover { background: #DADADA; }

/*
 * == User ==
 */

 .user h1 {
 	display: flex;
 	flex-direction: row;
 	align-items: center;
    margin: 0px;
 }
 .badge {
 	margin-right: 1em;
 	padding: 0.35em 1em;

 	background: #F4F4F4;
 	color: #7765E3;
 	border: 1px solid #7765E3;
 	border-radius: 1em;

 	font-size: 1rem;
 }

/*
 * == Blog index ==
 */

 .cards {
 	display: flex;
 	flex-direction: row;
 	flex-wrap: wrap;
 	padding: 0 5%;
 }
 .card {
 	flex: 1;
 	display: flex;
 	flex-direction: column;

 	min-width: 17.5em;
 	min-height: 17.5em;
 	margin: 1em;
 	padding: 1em;
 	box-sizing: border-box;

 	background: #E3E3E3;

 	text-overflow: ellipsis;
 }
 .list .card {
 	/* TODO */
 	background: 0;
 	margin: 2em 0;
 	padding: 0;
 	min-height: 0;
 }

 /* ~ Card content ~ */

 /* Title */

 .card h3 {
 	margin: 0.75em 0;
 	font-family: "Playfair Display", serif;
 	font-size: 1.75em;
 	font-weight: normal;
 }
 .card h3 a { transition: color 0.1s ease-in; color: #242424; }
 .card h3 a:hover { color: #7765E3; }

 /* Content */

 .card main {
 	flex: 1;

 	font-family: "Lora", serif;
 	font-size: 1em;
 	line-height: 1.25em;
 	text-align: left;
 	overflow: hidden;
 }

 /* Presentation */
 .presentation > h2, .presentation > a {
 	text-align: center;
 }

 .presentation > a {
 	font-size: 1.2em;
 	margin: 1em;
 }

 /* Stats */
 .stats {
 	display: flex;
 	justify-content: space-around;
 	margin: 2em;
 }

 .stats > div {
 	display: flex;
 	flex-direction: column;
 	justify-content: center;
 	align-items: center;
 }

 .stats em {
 	text-align: center;
 	font-weight: bold;
 }

  /*== Pagination ==*/
  .pagination {
    display: flex;
    justify-content: space-evenly;
}

.pagination > * {
    padding: 2em;
}

/*== Flex boxes ==*/
.flex {
    display: flex;
    flex-direction: row;
    align-items: center;
}

.flex .grow {
    flex: 1;
}

.flex.vertical {
    flex-direction: column;
    justify-content: space-around;
    align-items: flex-start;
}

.flex.vertical small {
    margin: initial;
}

.left-icon {
    align-self: center;
    padding: 1em;
    background: #DADADA;
    border-radius: 50px;
    margin: 1em;
    margin-right: 2em;
}

/*== Footer ==*/
body > footer {
    display: flex;
    align-content: center;
    justify-content: space-between;
    background: #ECECEC;
    padding: 0 20%;
    margin-top: 5em;
}

body > footer * {
    margin: 5em 0;
}

/** Medias **/

figure {
    text-align: center;
    margin: 2em;
    max-width: 100%;
    width: auto;
    height: auto;
}

figure > * {
    max-width: 100%;
}

figcaption {
    padding: 1em;
}

.preview {
    display: block;
    max-width: 100px;
    max-height: 100px;
    width: auto;
    height: auto;
    margin-right: 20px;
}

/** Avatars **/

.avatar {
    background-position: center;
    background-size: cover;
    border-radius: 100%;
}

.avatar.small {
    width: 50px;
    height: 50px;
}

.avatar.medium {
    width: 100px;
    height: 100px;
    margin: 20px;
}

.avatar.padded {
    margin-right: 2rem;
}

/** Tabs **/

.tabs {
   border-bottom: 1px solid #DADADA;
   padding: 0px;
   margin: auto 20% 2em;
   overflow: auto;
   display: flex;
}

.tabs a {
   display: inline-block;
   color: #242424;
   padding: 1em;
}

.tabs a.selected {
   color: #7765E3;
   border-bottom: 1px solid #7765E3;
}

.user-summary {
   margin: 2em 0px;
}

/* ================= *
 *   Small Screens   *
 * ================= */

 @media screen and (max-width: 900px) {
 	header {
 		flex-direction: column;
 	}

 	header nav#menu {
 		display: inline-flex;
 	}

 	header #content {
 		display: none;
 		text-align: center;
 	}

 	@keyframes menuOpening {
 		from {
 			transform: scaleX(0);
 			transform-origin: left;
 			opacity: 0;
 		}

 		to {
 			transform: scaleX(1);
 			transform-origin: left;
 			opacity: 1;
 		}
 	}

 	header:focus-within #content, #content.show {
 		position: fixed;
 		display: flex;
 		flex-direction: column;
 		justify-content: flex-start;

 		top: 0;
 		left: 0;
 		width: 100%;
 		height: 100%;
 		box-sizing: border-box;

 		animation: 0.2s menuOpening;
 	}
 	header:focus-within #content::before, #content.show::before {
 		content: "";
 		position: absolute;
 		transform: skewX(-10deg);
 		top: 0;
 		left: -20%;
 		width: 100%;
 		height: 100%;

 		z-index: -10;

 		background: #7765E3;
 	}
 	header:focus-within #content > nav, #content.show > nav {
 		flex-direction: column;
 		align-items: flex-start;
 	}
 	header:focus-within #content > nav a, #content.show > nav a {
 		display: flex;
 		flex-direction: row;
 		align-items: center;
 		margin: 0;
 		padding: 1rem 1.5rem;
 		color: #F4F4F4;
 		font-size: 1.4em;
 		font-weight: 300;
 	}
    header:focus-within #content > nav a > *:first-child,
    #content.show > nav a > *:first-child { width: 3rem; }
    header:focus-within #content > nav a > img:first-child,
    #content.show > nav a > img:first-child { height: 3rem; }
    header:focus-within #content > nav a > *:last-child,
    #content.show > nav a > *:last-child { margin-left: 1rem; }
 	header:focus-within #content > nav a.title, #content.show > nav a.title {
 		font-size: 1.8em;
 	}
 	header:focus-within #content > nav hr, #content.show > nav hr {
 		display: block;
 		margin: 0;
 		width: 100%;
 		border: solid #F4F4F4 0.1rem;
 	}
 	header:focus-within #content > nav a .mobile-label, #content.show > nav a .mobile-label {
 		display: initial;
 	}

 	body > main > * {
 		padding: 0 5%;
 	}
 	main .article-meta > * { margin: 0 5%; }

 	main .article-meta > p {
 		margin: 2em 5%;
 		font-size: 0.9em;
 	}
 	main .article-meta .comments > * { margin-left: 5%; margin-right: 5%; }

 	.card {
 		min-width: 80%;
 		min-height: 80%;
    }

    .tabs {
        margin: auto 0px 2em;
    }

    .stats { flex-direction: column; }
    body > footer {
        flex-direction: column;
        align-items: center;
    }
    body > footer * { margin: 1em auto; }

    .flex.wrap { flex-direction: column; }
 }
