/*--------------------------------------------------------------------
         GE RICCI MAIN STYLES
         By Ge Ricci, 2019
-------------------------------------------------------------------- */
@import "vars.css";

/* ------------------------------ RESET ---------------------------- */

html, body, div, span,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, font, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var, main, figure,
dl, dt, dd, ol, ul, li, details, figcaption, summary,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td {
	margin: 0;
	padding: 0;
	border: 0;
}

article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section {
    display: block;
}

body {overflow-y: scroll;}

/* --------------------------------------------------------------------------- */
/* -------------------------- THEME'S DEFAULT VALUES ------------------------- */
/* --------------------------------------------------------------------------- */
/* Generated by Font Squirrel (http://www.fontsquirrel.com) */

@font-face {
    font-family: 'lorabold';
    src: url('lora-bold-webfont.woff2') format('woff2'),
         url('lora-bold-webfont.woff') format('woff');
    font-weight: normal;
    font-style: normal;
		font-display: swap;
}

@font-face {
    font-family: 'loraitalic';
    src: url('lora-italic-webfont.woff2') format('woff2'),
         url('lora-italic-webfont.woff') format('woff');
    font-weight: normal;
    font-style: normal;
		font-display: swap;
}

@font-face {
    font-family: 'loraregular';
    src: url('lora-regular-webfont.woff2') format('woff2'),
         url('lora-regular-webfont.woff') format('woff');
    font-weight: normal;
    font-style: normal;
		font-display: swap;
}

@font-face {
    font-family: 'metropolisblack';
    src: url('metropolis-black-webfont.woff2') format('woff2'),
         url('metropolis-black-webfont.woff') format('woff');
    font-weight: normal;
    font-style: normal;
		font-display: swap;
}

@font-face {
    font-family: 'metropolislight';
    src: url('metropolis-light-webfont.woff2') format('woff2'),
         url('metropolis-light-webfont.woff') format('woff');
    font-weight: normal;
    font-style: normal;
		font-display: swap;
}


body {
	font: 100%/1 var(--stack);
	color: var(--body-text);
	background-color: var(--body-bg);
	-webkit-text-size-adjust: 100%;
	-webkit-font-smoothing: antialiased;
}

h1 {
	font-size: 0.9em;
	width: 18%;
	max-width: 110px;
	min-width: 60px;

	a {display: block;}
	a:focus {
		outline-offset: -2px;
    border-radius: 100%;
	}
}

.p-author span {display: none;}

h2, h3, h4, h5 {
	font-family: var(--stack-h);
	font-weight: normal;
	line-height: 1.1;
	letter-spacing: -0.05em;
}
h3, h4, h5 {margin: 2em 0 1em;}

	h2 .p-category, h3 .p-category, h4 .p-category, h5 .p-category {
		display: block;
		font-size: 50%;
		margin: -1.3em 0 0.3em;
	}

h2 {font-size: 1.6em;}
	h2 span {
		display: block;
		margin-bottom: 0.5rem;
	}

h3 {
	font-size: 1.1em;
	font-size: calc(1.5vmax + 0.9rem);
}

h4 {
	font-size: 1em;
	font-size: calc(0.8vmax + 0.9rem);
}

h5 {
	font-size: 0.95em;
}

p, li, dt, dd {font-size: 1em;}
li {line-height: 1.3; padding: 3px 0;}
li li {font-size: 100%;}
li dt, li dd {font-size: 100%;}

code {font-size: 120%;}

dt {font-family: var(--stack-b);}

p + ul {margin: 0.5em 0;}

a {color: #000; background: transparent;}
a:visited {color: #555; background: transparent;}
a:hover {text-decoration: none;}

a:focus {
	outline: 2px solid var(--hot-color);
	outline-offset: 2px;
}

abbr {border-bottom: 1px dotted #CCC; cursor: help;}
hr {display: none;}
img {max-width: 100%; border: none;}


strong {
    font-family: var(--stack-b);
    font-weight: normal;
    font-style: normal;
}
em {
    font-family: var(--stack-i);
    font-weight: normal;
    font-style: normal;
}

pre {
	overflow: auto;
	max-width: 60em;
	font-size: 1.2em;
	line-height: 1.2;
	color: var(--n-s-dark);
	background: var(--n-light);
	padding: 1em 1.5em;
	margin: 2em 0;
	opacity: .7;
}

cite {
	font-size: 60%;
	font-style: normal;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

blockquote {position: relative; margin: 5vmax 5vmax 5vmax 8vmax;}
blockquote::before {
	content: "“";
	position: absolute;
	top: -0.4em;
	left: -0.8em;
	font-size: 500%;
	font-family: var(--stack-h);
	color: var(--hot-color);
}
	blockquote p {font-size: 1.1em;}
	blockquote footer {text-align: left; padding-top: 1rem;}

quote {
	font-family: var(--stack-i);
}
	quote::before, quote::after {content: "\"";}

q {font-family: var(--stack-i);}

del {background-color: rgba(204, 0, 0, 0.2)}
ins {text-decoration: none; background-color: rgba(125, 244, 92, 0.5);}

.zoom-in {cursor: zoom-in;}

/* --------------------------------------------------------------------------- */
/* ------------------------------- PAGE STRUCTURE ---------------------------- */
/* --------------------------------------------------------------------------- */


#container {
	max-width: 1400px;
	margin: 0 10% 2rem;
}
	#container > header {
		display: flex;
		justify-content: space-between;
		align-items: center;
		padding-bottom: 2vmax;
		margin: 2vmax 0;
	}

footer {
	font-family: var(--stack-bq);
	text-align: center;
	padding: 2rem 0;

	p {
		font-size: 0.75em;
		line-height: 1.55;
		margin-top: 1rem;		
	}

	p:not(.no-ai) {
		max-width: max-content;
		padding-top: calc(1rem + 1vw);
    	margin: calc(1rem + 1vw) auto;
		border-top: 1px solid var(--n-medium);
	}

	p.no-ai {
		max-width: 33em;
		margin: 1rem auto;
	}
}

	footer li {
		display: inline-block;
		position: relative;
		list-style-type: none;
		font-size: 0.8em;
	}

		footer li + li::before {
			content: "";
			display: inline-block;
			width: 0.5em;
			height: 0.5em;
			background-color: var(--n-dark);
			margin: 0 0.7em 0 0.5em;
		}


/* --------------------------------------------------------------------------- */
/* ----------------------------------- NAVIGATION ---------------------------- */
/* --------------------------------------------------------------------------- */

/* Skip nav */
.k-skip {display: inline;}

	.k-skip a {
		position: absolute;
		overflow: hidden;
		left: -10000px;
		top: auto;
		width: 1px;
		height: 1px;
	}
	.k-skip a:focus {position: static; width: auto; height: auto;}

nav {
	position: fixed;
	width: 100%;
	bottom: 0;
	left: 0;
	z-index: 10;
}

	nav h2 {font-size: 0.8em;}

	nav ul {
		display: flex;
		justify-content: space-between;
		flex-wrap: wrap;
		letter-spacing: -0.05em;
		color: var(--text-inv);
		background-color: var(--n-dark);
		padding: 0 5%;
		box-shadow: 0 -3px 1px rgba(0,0,0,.3);
	}
	nav li {
		list-style-type: none;
		font: 0.95em/1 var(--stack-h);
		text-transform: lowercase;
	}

	nav	a, nav a:visited, nav a:active {
		display: block;
		position: relative;
		text-decoration: none;
		color: var(--text-inv);
		background-color: var(--n-dark);
		padding: 1em;
	}
	nav	a::before {
		content: "";
		display: block;
		position: absolute;
		top: 0.4em;
		left: 12px;
		width: 3px;
		height: 1.5em;
		background-color: var(--hot-color);
		transform: scale(.1);
		opacity: 0;
		transition: all .2s;
	}

	nav	a:hover::before, nav	a:focus::before, nav a[aria-current]::before {
		transform: scale(1) rotate(45deg);
		opacity: 1;
	}

	nav a:focus {
		outline-offset: -12px;
	}

	p.top a, p.top a:visited {
		display: block;
		position: fixed;
		right: 0;
		bottom: 0;
		font: 0.7em var(--stack-bq);
		text-decoration: none;
		color: var(--text-inv);
		background-color: var(--n-dark);
		padding: 0.3em;
	}

div.twitter {
	max-width: 55rem;
	text-align: center;
	background-color: var(--n-light);
	padding: 1rem;
  	margin: calc(2rem + 1vw) auto 2rem;
}

	div.twitter p {font: 0.85em var(--stack-bq);}


/* --------------------------------------------------------------------------- */
/* ----------------------------------- ARTICLES ------------------------------ */
/* --------------------------------------------------------------------------- */

article.h-entry header {
	max-width: 48em;
	margin-bottom: 5vmax;
}
article.h-entry h2 {
	letter-spacing: -0.05em;
	margin-bottom: 0.3em;
}

.publish-date {
	font: calc(0.2vmax + 0.75rem)/1 var(--stack-bq);
	text-transform: uppercase;
}

.e-content {
	max-width: 55rem;
	line-height: 1.58;
	margin: 0 0 0 auto;
	transition: all .2s;
}
	.e-content p {margin-bottom: 0.85em;}
	.e-content li {margin-bottom: 0.5em;}

	.e-content a {
		text-decoration-color: var(--hot-color);
		text-decoration-thickness: 4px;
	}

	.e-content > ul {margin: 2vmax;}
	li ul {margin: 1rem;}

div.summary {
	max-width: 75vw;
	letter-spacing: -0.05em;
	margin: 0 0 5vmax;
	transition: all .2s;
}
	div.summary p {
		max-width: 25em;
		font: 1em/calc(1.6em + (1.5 - 1.4) * ((100vw - 21em)/(35 - 15))) var(--stack-bq);
	}
	div.summary strong {font-family: var(--stack-h);}

/* Entries */

article.k-entry:first-of-type {margin-top: 5vmax;}
article.k-entry +  article.k-entry {
	padding-top: 2vmax;
	margin-top: 2vmax;
	border-top: 1px solid var(--n-medium);
}

article.k-entry h3 {
	font-size: calc(1vmax + 0.9rem);
	margin: 0 0 0.5em;
}
	article.k-entry h3 a {
		display: block;
		text-decoration: none;
	}
		article.k-entry .publish-date {margin-bottom: 1em;}

div.p-summary p, div.p-summary li {
	font-family: var(--stack-bq);
	font-size: calc(0.4vmax + 0.75rem);
}

figure.restraint {
	max-width: 250px;
}

figure, p.illustration {
	position: relative; 
	margin: calc(2rem + 1vw) 0;
}

article > p.illustration img.scramble {
	object-fit: none;
}

	figure p {margin-bottom: 1em;}
	figure img {vertical-align: bottom;}

p.illustration.f-bottom img {object-position: bottom;}

p.illustration.owa {text-align: right;}

figcaption {
	font: 0.8em/1.45 var(--stack-bq);
	margin-top: 1rem;
}
	figcaption small {
		display: block;
		position: absolute;
		top: -18px;
		right: 0;
		font-size: 70%;
	}

figure.verse {text-align: left;}
figure.verse:nth-child(odd) {text-align: right;}
figure.verse figcaption {margin: 0;}

div.highlight {position: relative; margin: 5vmax;}
div.highlight::after {
    content: "";
    display: inline-block;
    position: absolute;
    top: -8px;
    left: -14px;
    width: 4px;
    height: 50%;
    background: var(--hot-color);
}
div.highlight p {font-family: var(--stack-bq);}

	.e-content div.highlight + p {margin-top: 0.85em;}

	dl.proper {margin: 2vmax;}

	div.example {margin: 2vmax;}

	.contrast img {
		border: 1px solid var(--n-medium);
	}


/* --------------------------------------------------------------------------- */
/* ------------------------------------- GENERAL ----------------------------- */
/* --------------------------------------------------------------------------- */

figure.highlight figcaption {
	font: 1.2em var(--stack-h);
	margin-bottom: 1em;
}

ul.palette {
	display: flex;
	flex-wrap: wrap;	
	list-style-type: none;
}

	ul.palette li + li {margin: 0 1rem 1rem 0;}
	ul.palette li {
		flex-basis: 100px;
		text-align: center;
		padding: 95px 0 0;
		margin: 0 1rem 1rem 0;
		border-radius: 0.3em;
	}

	ul.palette .stamp {
	  display: block;
		font: 0.7em var(--stack-bq);
	  background-color: var(--body-bg);
	  padding: 0.3em 0.5em;
	}

figure.webstories ul.palette li {
	border-radius: 0;
}
figure.webstories ul.palette .stamp {
	padding: 0.3rem 0;
}

.no-display {
	position: absolute;
	width: 1px;
	height: 1px;
	left: -5000px;
	overflow: hidden;
}

div.note p {
	font: 90% var(--stack-bq);
	border-top: 1px solid var(--n-medium);
	padding-top: 1em;
	margin-bottom: 4rem;
}

ul.next-list li {padding-left: 0.5em;}
	ul.next-list li::marker {
		display: inline-block;
		content: "\21AC ";
		padding-right: 1em;
	}


/* --------------------------------------------------------------------------- */
/* ------------------------------------- WORK -------------------------------- */
/* --------------------------------------------------------------------------- */

.category {
	display: block;
	font: 70% var(--stack-bq);
}

div.list-of-works {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 230px));
    gap: 7vw;
		margin: 7vh 15% 0;
}

div.list-of-works figure {
	margin-bottom: 0;

	a {display: block;}
}

figure.work figcaption {
	text-align: center;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	margin-top: 1rem;

	& span {display: block;}
}

figure.work img {
	object-fit: cover;
	object-position: center;
	width: 250px;
}


/* Thumbs */
.list-of-works.thumbs {
	text-align: center;
	background: var(--n-light);
	padding-top: 0.3rem;
	margin-top: 3vmax;
}
.list-of-works.thumbs li {
	display: inline-block;
	width: 45%;
	margin: 1%;
}
.list-of-works.thumbs li img {
	box-shadow: 0 0 2px rgba(0,0,0,.5);
}

ul.images-list {list-style-type: none;}
	ul.images-list li {font-family: var(--stack-bq);}
	ul.images-list li + li {margin-top: 2rem;}
	ul.images-list img {display: block;}

	ul.images-list dt {
		font-size: 1.1em;
		font-size: calc(1.5vmax + 0.9rem);
		font-family: var(--stack-h);
	}
	ul.images-list dd:first-of-type {
		margin: 1rem 0 2rem;
		border-left: 5px solid var(--n-dark);
	}

	ul.images-list dd:first-of-type img {margin-left: 1rem;}
	ul.images-list q {
		display: block;
		color: var(--n-s-dark);
		margin-bottom: 0.8em;
	}

/* div.transitions-enabled figure {
	overflow: hidden;
	width: 230px;
	height: 230px;
	margin-top: 0;

	figcaption {
		box-sizing: border-box;
		display: flex;
		flex-direction: column;
		width: 230px;
		height: 230px;
		text-align: left;
		text-transform: initial;
		background-color: var(--body-bg);
		padding: 1rem;
		transition: all 0.5s cubic-bezier(.48,-0.28,.41,1.4);

		p {
			margin-top: auto;
		}

		a {
			display: block;
			margin-top: 0.5em;
		}
	}
} */

/* div.transitions-enabled figure:hover figcaption, 
	div.transitions-enabled figure:focus figcaption {
	transform: translateY(-233px);
} */



/* --------------------------------------------------------------*/
/* ---------------------------- HOME ----------------------------*/
/* --------------------------------------------------------------*/

#home #container {width: 80%; margin: 5vh auto;}
#home h1 {
	width: 100%;
	max-width: 530px;
	margin: 0 auto 2.5vmax auto;
}

div.site-id {
	display: flex;
	flex-flow: column;	
	text-align: center;
	margin-bottom: 7vmax;

	& div.content {letter-spacing: -0.05em;}

	& div.content p:first-of-type {
		font: calc((0.6em * 2) + 1vw) var(--stack-bq);
	}
	& div.content p:last-of-type {
		font: calc((0.8em * 2) + 2vw)/1.1 var(--stack-h);
		margin-top: 0.5em;
	}
}

section.featuring {
	position: relative;
	background-color: var(--n-dark);
	padding: 5vmax;
}

	section.featuring h2 {
		font-size: calc(2vmax + 0.75rem);
		line-height: 1.2;
		color: var(--text-inv);
		background-color: var(--n-dark);
		margin-bottom: 1em;
	}
		section.featuring h2 span {
			display: block;
			font-size: 70%;
		}

	section.featuring p.illustration {
		position: static; 
		max-width: 310px;
		margin-bottom: 0;
	}
		section.featuring p.illustration img {max-height: 100%;}

	section.featuring a {
		display: block;
		text-decoration: none;
		color: var(--text-inv);
		background-color: var(--n-dark);
	}
	section.featuring a::after {
		display: block;
		position: absolute;
		content: "";
		width: 100%;
		height: 100%;
		top: 0;
		left: 0;
	}

	/* Logo */

	#letter-g {fill: #c98428; transition: all 3s;}
	#g-shadow {fill: #9e5a10; transition: all 3s;}
	#swirls {opacity: 1; transition: all 4s;}
	#drop {transform: translate(0, 0); transition: 3s;}
	#things {transform: translate(0, 0); transition: 3s;}
	.cls-1 {opacity: 0; transition: 2s;}

/* -------------------- SPECIFICS ------------------------ */

.illustrations p {
	background-color: #B9E4AF;
	padding: calc(1.5rem + 1vw);
	margin-bottom: calc(2rem + 1vw);
}


div.two-4-three {margin-bottom: 1rem;}

div.show p {margin-bottom: 2rem;}
	div.show div.two-4-three {margin-bottom: 2rem;}

div.e-content.inn .introduction {margin-bottom: 2rem;}
div.e-content.inn figure img {border: 1px solid var(--n-s-medium);}

p.apple {
	position: relative;
	width: 30px;
	height: 30px;
	color: #FFF;
	background: #C33;
	border-radius: 30px;
}
p.apple::before {
	position: absolute;
	top: -5px;
	left: 13px;
	width: 3px;
	height: 10px;
	content: "branch";
	text-indent: -9000px;
	background: #000;
}
p.apple::after {
	position: absolute;
	top: -5px;
	left: 16px;
	width: 10px;
	height: 10px;
	content: "leave";
	text-indent: -9000px;
	background: #80ff00;
	border-radius: 16px;
	-moz-transform: skewX(-15deg);
	-ms-transform: skewX(-15deg);
	-o-transform: skewX(-15deg);
	-webkit-transform: skewX(-15deg);
	transform: skewX(-15deg);
}
	p.apple strong {
		position: absolute;
		text-indent: -9000px;
	}

/* --- WEB MENTIONS --- */

aside:not(:empty) {
	position: relative;
	font-family: var(--stack-bq);
	background-color: var(--n-light);
	padding: 1.5rem;
	margin-top: 2rem;
}

aside:not(:empty)::before {
	content: "Web Mentions";
	position: absolute;
	left: -4.5rem;
	top: 4em;
	transform: rotate(-90deg);
}

aside strong {
	font-family: var(--stack-h);
}
aside h3 {font-size: 1.3em; margin: 0 0 1rem;}
aside ul + h3 {margin-top: 1.5rem;}
aside p, aside li {font-size: 0.9rem;}

ul.likes, ul.retweets {
  display: flex;
  flex-wrap: wrap;
  list-style-type: none;
}
	ul.likes li, ul.retweets li {width: 40px;}
	aside img {border-radius: 100%; border: 2px solid #000;}

	ul.replies li {
		display: grid;
		grid-template-columns: 50px auto;
		grid-template-rows: auto auto;
		gap: 0.5rem 1rem;
		line-height: 1.5;
	}
	ul.replies li + li {
		padding-top: 1rem;
		margin-top: 1rem;
		border-top: 1px dotted var(--n-dark);
	}

	ul.replies img {grid-row-start: 1; grid-row-end: 3;}
	ul.replies p {margin: 0;}
