GET routes are not protected against CSRF. This commit changes the needed URLs to POST and replace simple links with forms. Thanks @fdb-hiroshima for noticing it!
		
			
				
	
	
		
			933 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			CSS
		
	
	
	
	
	
			
		
		
	
	
			933 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			CSS
		
	
	
	
	
	
/* 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;
 | 
						|
 }
 | 
						|
 | 
						|
 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; }
 | 
						|
 }
 |