/* Base styles */
@font-face {
	font-family: "Limkin";
	src: url("/assets/fonts/TMTLimkinVF.ttf") format(truetype),
		 url("/assets/fonts/TMTLimkinVF.woff") format(woff),
		 url("/assets/fonts/TMTLimkinVF.woff2") format(woff2);
	font-weight: 100 900;
}
:root {
	--red: #FF734D;
	--blue: #5ADDE8;
	--purple: #A690FC;
	--yellow: #fcc03a;
	--pink: #F3A8DD;
	--green: #98DB6B;
	--off-white: #fafafa;
	--lighter-gray: #f5f5f5;
	--light-gray: #e5e5e5;
	--dark-gray: #444444;
	--off-black: #222222;
	--primary: var(--light-gray);
	--border: 2px;
}
@font-face {
	font-family: 'Geist Mono';
	src: url('/assets/fonts/GeistMono-VariableFont_wght.ttf') format('truetype');
	font-weight: 100 900;
}
* {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}
body {
	font-family: "Limkin", serif;
	font-variation-settings: "wght" 400, "SRFF" 100;
	color: var(--off-black);
	background-color: var(--off-white);
	text-wrap: pretty;
}
.container {
	width: 100vw;
	height: 100dvh;
	position: relative;
	overflow: hidden;
}

/* Intro */
.intro {
	width: 100vw;
	height: 100dvh;
	transition: transform 1s, background-color 1.5s;
	padding: calc(30px + calc(var(--border) * 4));
	background-color: var(--primary);
}
.intro-content {
	width: 100%;
	height: 100%;
	border: calc(var(--border) * 3) double var(--off-black);
	transition: background-color 3s;
	background-color: var(--primary);
	position: relative;
	overflow: hidden;
}
.intro-main {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	gap: 30px;
	text-align: center;
	padding: 20px;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}
.intro-title {
	font-size: 48px;
	line-height: 1em;
	background-color: var(--off-white);
	border: calc(var(--border) * 3) double var(--off-black);
	font-variation-settings: "wght" 300, "SRFF" 100;
	padding: .4em .4em .25em .4em;
	transform: translateY(120px);
	transition: transform 1s;
	font-family: 'Limkin', serif;
}
.intro-title strong {
	font-variation-settings: "wght" 600, "SRFF" 100;
}
.intro-subtitle {
	font-size: 24px;
	line-height: 1.2em;
	font-variation-settings: "wght" 300, "SRFF" 50;
	transform: translateY(120px);
	transition: transform 1s, opacity 1s;
	opacity: 0;
}
.intro-menu-border {
	border: var(--border) solid var(--off-black);
	padding: var(--border);
	transform: translateY(120px);
	opacity: 0;
	pointer-events: none;
	transition: transform 1s, opacity 1s;
}
.intro-menu {
	display: flex;
	align-items: stretch;
	justify-content: center;
	flex-direction: column;
	border: var(--border) solid var(--off-black);
	padding: var(--border);
	gap: var(--border);
}
.intro-menu button {
	font-size: 12px;
	font-family: "Limkin", serif;
	font-variation-settings: "wght" 650, "SRFF" 50;
	text-transform: uppercase;
	color: var(--off-white);
	transition: color .2s, opacity .2s, background-color .2s;
	background-color: var(--off-black);
	border: unset;
	min-height: 30px;
	cursor: pointer;
	padding: .5em 20px .2em 20px;
	letter-spacing: .03em;
}
.intro-menu button:hover {
	color: var(--off-black);
	background-color: var(--off-white);
}
.intro-menu button:active {
	opacity: .5;
}

/* About info */
.about-container {
	position: absolute;
	top: 0;
	left: 0;
	transform: translate(0%, 100%);
	overflow: hidden;
	width: 100vw;
	height: 100dvh;
	transition: transform 1s, background-color 1.5s;
	background-color: var(--primary);
}
.about {
	display: flex;
	align-items: center;
	flex-direction: column;
	gap: 10px;
	padding: 60px;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: calc(100% - calc(30px + calc(var(--border) * 5)));
	overflow-y: scroll;
	border: calc(var(--border) * 3) double var(--off-black);
}
.about-title {
	font-size: 36px;
	line-height: 1.2em;
	background-color: var(--off-white);
	text-align: center;
	border: calc(var(--border) * 3) double var(--off-black);
	font-variation-settings: "wght" 300, "SRFF" 100;
	padding: .4em .4em .25em .4em;
	font-family: 'Limkin', serif;
}
.about-title strong {
	font-variation-settings: "wght" 600, "SRFF" 100;
}
.about-subtitle {
	font-size: 24px;
	line-height: 1.2em;
	text-align: center;
	font-variation-settings: "wght" 300, "SRFF" 50;
	padding: 20px 0;
}
.about-sections {
	margin: auto 0;
	width: 100%;
	max-width: 800px;
	border: var(--border) solid var(--off-black);
	padding: var(--border);
	display: flex;
	flex-direction: column;
	gap: var(--border);
}
.about-section {
	width: 100%;
	max-width: 800px;
}
.about-heading {
	font-size: 18px;
	line-height: 1.2em;
	text-align: center;
	padding: var(--border);
	background-color: var(--off-black);
	font-variation-settings: "wght" 300, "SRFF" 50;
	position: sticky;
	top: calc(-60px - var(--border));
}
.about-heading-content {
	border: var(--border) solid var(--primary);
	border-color: var(--primary);
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--off-white);
	fill: var(--off-white);
	padding: 15px;
	gap: 20px;
	background-color: var(--off-black);
	cursor: pointer;
	transition: border-color 1s, background-color .2s, color .2s, fill .2s, opacity .2s;
}
.about-heading-content span {
	padding-top: .2em;
}
.about-heading-content svg {
	height: 15px;
	transition: transform .2s;
}
.about-section[data-active="1"] .about-heading {
	border-bottom: var(--border) solid var(--off-black);
	margin-bottom: calc(var(--border) * -1);
}
.about-section[data-active="1"] .about-heading-content {
	margin-bottom: calc(var(--border) * -1);
}
.about-section[data-active="1"] .about-heading-content svg {
	transform: rotate(180deg);
}
.about-heading-content:hover {
	background-color: var(--primary);
	color: var(--off-black);
	fill: var(--off-black);
}
.about-heading-content:active {
	opacity: 0.5;
}
.about-content {
	padding: calc(30px + calc(var(--border) * 4));
	border: calc(var(--border) * 3) double var(--off-black);
	background-color: var(--off-white);
	display: flex;
	align-items: start;
	font-size: 16px;
	line-height: 1.4em;	
	gap: 40px;
	font-variation-settings: "wght" 300, "SRFF" 100;
	flex-direction: column;
}
.about-section[data-active="0"] .about-content {
	display: none;
}
.about-content strong {
	font-variation-settings: "wght" 600, "SRFF" 100;
}
.about-content a {
	color: var(--off-black);
}
.about-content a:hover {
	text-decoration: none;
}
.about-content a:active {
	opacity: .5;
}
.about-subsection {
	display: flex;
	align-items: start;
	flex-direction: column;
	gap: 20px;
}
.about-subheading {
	font-size: 12px;
	line-height: 1.2em;
	letter-spacing: .02em;
	text-transform: uppercase;
	border-bottom: calc(var(--border) * 3) double var(--off-black);
	color: var(--off-black);
	font-variation-settings: "wght" 650, "SRFF" 50;
}
.about-list {
	display: flex;
	flex-direction: column;
	border: calc(var(--border) * 3) double var(--off-black);
	gap: var(--border);
	background-color: var(--primary);
	padding: var(--border);
	transition: background-color 2s;
}
.about-list-item {
	background-color: var(--off-black);
	display: flex;
	gap: 20px;
	padding: 20px;
	width: 100%;
	align-items: center;
}
.about-number {
	flex: 0 0 30px;
	background-color: var(--primary);
	width: 30px;
	height: 30px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--off-black);
	font-size: 12px;
	font-variation-settings: "wght" 600, "SRFF" 100;
	padding-top: .15em;
	transition: background-color 1s;
}
.about-list p {
	padding-top: .2em;
	color: var(--off-white);
}
.about-code {
	font-family: "Geist Mono", monospace;
	font-size: 12px;
}
.about-nav-container {
	z-index: 9;
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	padding: var(--border);
	border: var(--border) solid var(--off-black);
	background-color: var(--primary);
	display: flex;
	align-items: stretch;
	justify-content: stretch;
	-webkit-user-select: none; /* Safari */
	-ms-user-select: none; /* IE 10 and IE 11 */
	user-select: none; /* Standard syntax */
	transition: background-color 1s;
}
.about-nav {
	flex-grow: 1;
	max-width: calc(100vw - calc(var(--border) * 4));
	border: var(--border) solid var(--off-black);
	background-color: var(--off-black);
	font-size: 12px;
	text-transform: uppercase;
	text-align: center;
	display: flex;
	flex: 1 0 auto;
	gap: var(--border);
	font-variation-settings: "wght" 650, "SRFF" 50;
}
.about-nav-link {
	flex: 1 1 0px;
	height: 30px;
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: var(--primary);
	color: var(--off-black);
	fill: var(--off-black);
	transition: color .2s, fill .2s, background-color .5s, opacity .2s, border .2s;
	cursor: pointer;
	padding: 0 5px 0 5px;
	overflow: hidden;
}
.about-nav-link p {
	line-height: 1.2em;
	letter-spacing: .03em;
	padding: .6em 1em .4em 1em;
}
.about-nav-link svg {
	width: 10px;
}
.about-nav-link:hover {
	background-color: var(--off-black);
	color: var(--off-white);
	fill: var(--off-white);
}
.about-nav-link:active {
	opacity: .5;
}

/* Main screen */
.main {
	width: 100vw;
	height: 100dvh;
	transition: transform 1s;
	position: absolute;
	top: 0;
	left: 0;
	transform: translate(0%, 100%);
	background-color: var(--off-black);
}

/* Navigation */
.nav-container {
	z-index: 1;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	padding: var(--border);
	border: var(--border) solid var(--off-black);
	background-color: var(--primary);
	display: flex;
	align-items: stretch;
	justify-content: stretch;
	-webkit-user-select: none; /* Safari */
	-ms-user-select: none; /* IE 10 and IE 11 */
	user-select: none; /* Standard syntax */
	transition: background-color 1s;
}
.nav-bottom {
	top: unset;
	bottom: 0;
}
.nav {
	flex-grow: 1;
	max-width: calc(100vw - calc(var(--border) * 4));
	border: var(--border) solid var(--off-black);
	background-color: var(--off-black);
	font-size: 12px;
	text-transform: uppercase;
	text-align: center;
	display: flex;
	flex: 1 0 auto;
	gap: var(--border);
	font-variation-settings: "wght" 650, "SRFF" 50;
}
.nav-link {
	flex: 1 1 0px;
	height: 30px;
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: var(--primary);
	color: var(--off-black);
	fill: var(--off-black);
	transition: color .2s, fill .2s, background-color .2s, opacity .2s, border .2s;
	cursor: pointer;
	padding: 0 5px 0 5px;
	overflow: hidden;
}
.nav-link p {
	line-height: 1.2em;
	letter-spacing: .03em;
	padding: .6em 1em .4em 1em;
}
.nav-link svg {
	width: 10px;
}
.nav-link:hover {
	background-color: var(--off-black);
	color: var(--off-white);
	fill: var(--off-white);
}
.nav-link:active {
	opacity: .5;
}
.nav-link-anthology[data-active="0"] {
	display: none;
}

/* Toggles */
.toggle-container {
	position: absolute;
	top: calc(30px + calc(var(--border) * 5));
	right: 0;
	height: calc(100% - calc(calc(30px + calc(var(--border) * 5)) * 2));
	padding: var(--border);
	display: flex;
	align-items: stretch;
	justify-content: stretch;
	text-transform: uppercase;
	text-align: center;
	line-height: 1em;
	letter-spacing: .03em;
	word-spacing: .3em;
	text-orientation: mixed;
	writing-mode: vertical-rl;
	border: var(--border) solid var(--off-black);
	background-color: var(--primary);
	z-index: 9;
	-webkit-user-select: none; /* Safari */
	-ms-user-select: none; /* IE 10 and IE 11 */
	user-select: none; /* Standard syntax */
}
.toggle {
	flex-grow: 1;
	border: var(--border) solid var(--off-black);
	background-color: var(--off-black);
	text-transform: uppercase;
	text-align: center;
	display: flex;
	align-items: stretch;
	justify-content: stretch;
}
.toggle-text {
	width: 30px;
	flex-grow: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: var(--primary);
	color: var(--off-black);
	fill: var(--off-black);
	font-variation-settings: "wght" 650, "SRFF" 50;
	transition: color .2s, fill .2s, background-color .2s, opacity .2s, border .2s;
	cursor: pointer;
	padding: 0 5px 0 5px;
}
.toggle-text p {
	font-size: 12px;
	line-height: 1.2em;
	letter-spacing: .05em;
	padding: 1.2em .6em 1.2em .4em;
	word-spacing: .3em;
}
.toggle-text svg {
	width: 10px;
	transform: rotate(180deg);
}
.toggle-text:hover {
	background-color: var(--off-black);
	color: var(--off-white);
	fill: var(--off-white);
}
.toggle-flip {
	right: unset;
	left: 0;
	transform-origin: center;
	transform: rotate(180deg);
}
.toggle-text:active {
	opacity: .5;
}
.toggle-text[data-active="1"] {
	background-color: var(--off-black);
	color: var(--off-white);
	fill: var(--off-white);
}
.toggle-text[data-active="1"]:hover {
	background-color: var(--primary);
	color: var(--off-black);
	fill: var(--off-black);
}
.toggle-text[data-active="1"] svg {
	transform: rotate(0deg);
}

/* Story view */
.story {
	z-index: 1;
	background-color: var(--off-black);
	position: absolute;
	top: calc(30px + calc(var(--border) * 5));
	left: calc(30px + calc(var(--border) * 5));
	width: 400px;
	height: calc(100% - calc(calc(30px + calc(var(--border) * 5)) * 2));
	display: flex;
	transition: transform .5s;
	display: flex;
	flex-direction: column;
	padding: var(--border);
	gap: var(--border);
}
.story[data-active="0"] {
	transform: translateX(-100%);
}
.story-content {
	padding: var(--border);
	border: var(--border) solid var(--primary);
	flex-grow: 1;
	padding: 20px;
	display: flex;
	align-items: start;
	justify-content: start;
	flex-direction: column;
	gap: 40px;
	overflow-y: scroll;
	background-color: var(--off-black);
	color: var(--off-white);
}
.story-block {
	display: flex;
	flex-direction: column;
	align-items: start;
	gap: 15px;
}
.story-caption {
	font-size: 12px;
	line-height: 1.2em;
	letter-spacing: .02em;
	text-transform: uppercase;
	border-bottom: calc(var(--border) * 3) double var(--primary);
	color: var(--primary);
	font-variation-settings: "wght" 650, "SRFF" 50;
}
.story-lines {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	font-variation-settings: "wght" 500, "SRFF" 100;
}
.story-lines-number {
	width: 60px;
	aspect-ratio: 1/1;
	border-radius: 50%;
	background-color: var(--primary);
	color: var(--off-black);
	font-size: 28px;
	display: flex;
	align-items: center;
	justify-content: center;
	padding-top: .1em;
	line-height: 1.1em;
	font-family: 'Limkin', serif;
}
.story-lines-text {
	font-size: 18px;
	color: var(--primary);
	line-height: 1.2em;
	letter-spacing: .03em;
	padding-top: .2em;
	text-transform: uppercase;
	font-variation-settings: "wght" 650, "SRFF" 50;
}
.story-title {
	font-size: 42px;
	line-height: 1.1em;
	/* font-variation-settings: "wght" 200, "SRFF" 100; */
	font-family: 'Limkin', serif;
}
.story-desc {
	font-size: 16px;
	line-height: 1.4em;	
	font-variation-settings: "wght" 300, "SRFF" 100;
}
.story-links {
	display: flex;
	gap: calc(var(--border) * 3);
	list-style-type: none;
	flex-wrap: wrap;
}
.story-link {
	font-size: 12px;
	line-height: 1.2em;
	letter-spacing: .03em;
	color: var(--off-white);
	text-decoration: none;
	text-transform: uppercase;
	height: 30px;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: .6em .6em .4em .6em;
	border: 1px solid var(--off-white);
	background-color: var(--off-black);
	font-variation-settings: "wght" 500, "SRFF" 50;
	transition: opacity .2s, background-color .2s, color .2s;
	cursor: pointer;
}
.story-link:hover {
	color: var(--off-black);
	background-color: var(--off-white);
}
.story-link:active {
	opacity: .5;
}
.anthology-content {
	display: flex;
	flex-direction: column;
	gap: var(--border);
	background-color: var(--off-black);
}
.anthology-content[data-active="0"] {
	display: none;
}
.anthology-border {
	border: var(--border) solid var(--primary);
	padding: var(--border);
	background-color: var(--off-black);
}
.anthology-info {
	display: flex;
	background-color: var(--primary);
	flex-direction: column;
	padding: 20px;
	align-items: center;
	justify-content: center;
	text-align: center;
	gap: 12px;
}
.anthology-subheading {
	font-size: 12px;
	line-height: 1.2em;
	letter-spacing: .02em;
	text-transform: uppercase;
	border-bottom: calc(var(--border) * 3) double var(--off-black);
	color: var(--off-black);
	font-variation-settings: "wght" 650, "SRFF" 50;
}
.anthology-heading {
	padding-top: 4px;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	color: var(--off-black);
	font-size: 24px;
	font-family: 'Limkin', serif;
	line-height: 1.1em;
}
.anthology-entry {
	font-variation-settings: "wght" 400, "SRFF" 50;
	text-align: center;
	font-size: 14px;
	letter-spacing: .03em;
	line-height: 1em;
}
.anthology-links {
	background-color: var(--primary);
	display: flex;
	flex-wrap: wrap;
	gap: var(--border);
	padding: var(--border);
	border: var(--border) solid var(--primary);
	background-color: var(--off-black);
}
.anthology-link {
	flex: 1 1 0px;
	height: 30px;
	background-color: var(--off-white);
	color: var(--off-black);
	text-transform: uppercase;
	display: flex;
	padding: 0 5px 0 5px;
	font-variation-settings: "wght" 650, "SRFF" 50;
	align-items: center;
	justify-content: center;
	text-align: center;
	cursor: pointer;
	text-decoration: none;
	fill: var(--off-black);
	transition: fill .2s, color .2s, background-color .2s, opacity .2s;
}
.anthology-link p {
	padding: .6em .6em .4em .6em;
	font-size: 12px;
	line-height: 1.2em;
	letter-spacing: .03em;
}
.anthology-link svg {
	width: 10px;
}
.anthology-link:hover {
	background-color: var(--off-black);
	color: var(--off-white);
	fill: var(--off-white);
}
.anthology-link:active {
	opacity: .5;
}
.story-flash {
	position: fixed;
	width: calc(100% - calc(calc(30px + calc(var(--border) * 6)) * 2));
	height: calc(100% - calc(calc(30px + calc(var(--border) * 6)) * 2));
	top: calc(30px + calc(var(--border) * 6));
	left: calc(30px + calc(var(--border) * 6));
	pointer-events: none;
	z-index: 99999;
	opacity: 0;
	background-color: var(--primary);
	transition: opacity .5s;
}

/* HTML preview */
.preview {
	position: absolute;
	top: calc(30px + calc(var(--border) * 5));
	left: calc(30px + calc(var(--border) * 5));
	right: calc(30px + calc(var(--border) * 5));
	bottom: calc(30px + calc(var(--border) * 5));
	background-color: var(--primary);
	border: var(--border) solid var(--off-black);
	padding: var(--border);
	transition: left .5s, right .5s;
}
.preview[data-story="1"] {
	left: calc(400px + calc(30px + calc(var(--border) * 4)));
}
.preview[data-code="1"] {
	right: calc(400px + calc(30px + calc(var(--border) * 4)));
}
.preview-iframe {
	width: 100%;
	height: 100%;
	overflow: scroll;
	border: var(--border) solid var(--off-black);
	background-color: white;
}

/* Code view */
.code {
	position: absolute;
	z-index: 1;
	top: calc(30px + calc(var(--border) * 5));
	right: calc(30px + calc(var(--border) * 5));
	height: calc(100% - calc(calc(30px + calc(var(--border) * 5)) * 2));
	width: 400px;
	display: flex;
	gap: var(--border);
	background-color: var(--off-black);
	flex-direction: column;
	border: var(--border) solid var(--off-black);
	transition: transform .5s;
}
.code[data-active="0"] {
	transform: translateX(100%);
}
.code-library-container {
	display: flex;
	align-items: stretch;
	justify-content: stretch;
	border: var(--border) solid var(--primary);
	background-color: var(--off-black);
	padding: var(--border);
	position: relative;
}
.code-library-container[data-active="0"] {
	display: none;
}
.code-library {
	height: 30px;
	flex-grow: 1;
	background-color: var(--off-white);
	color: var(--off-black);
	text-transform: uppercase;
	font-size: 12px;
	font-variation-settings: "wght" 650, "SRFF" 50;
	line-height: 1em;
	letter-spacing: .03em;
	padding-top: .18em;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	cursor: pointer;
	text-decoration: none;
	transition: color .2s, background-color .2s, opacity .2s;
}
.code-library:hover {
	background-color: var(--off-black);
	color: var(--off-white);
}
.code-library:active {
	opacity: .5;
}
.code-editor-language {
	font-size: 10px;
	text-orientation: mixed;
	writing-mode: vertical-rl;
	letter-spacing: .05em;
	color: var(--off-black);
	cursor: help;
	position: sticky;
	top: 0;
	left: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	line-height: 1em;
	width: 20px;
	padding-right: .15em;
	text-align: center;
	background-color: var(--primary);
	transform: rotate(-180deg);
	letter-spacing: .06em;
	text-transform: uppercase;
	position: relative;
	font-variation-settings: "wght" 750, "SRFF" 50;
	transition: background-color .2s, color .2s;
}
@keyframes tooltip-horizontal {
	0% {
		transform: translate(-50%, 2%);
	}
	100% {
		transform: translate(-50%, 0%);
	}
}
@keyframes tooltip-vertical {
	0% {
		transform: translate(2%, 50%) rotate(180deg);
	}
	100% {
		transform: translate(0%, 50%) rotate(180deg);
	}
}
.code-tooltip {
	width: 100%;
	line-height: 1.4em;
	text-transform: none;
	letter-spacing: 0;
	font-size: 14px;
	background-color: var(--off-black);
	padding: 10px 10px 8px 10px;
	position: absolute;
	color: var(--off-white);
	pointer-events: none;
	display: none;
	width: 300px;
	text-align: left;
	z-index: 9;
	writing-mode: horizontal-tb;
	font-variation-settings: "wght" 300, "SRFF" 100;
	border: calc(var(--border) * 3) double var(--primary);
}
.code-tooltip::before {
	content: "";
	position: absolute;
	border-width: 10px;
	border-style: solid;
}
.code-tooltip strong {
	font-variation-settings: "wght" 650, "SRFF" 50;
	color: var(--primary);
}
.code-library:hover .code-tooltip {
	top: calc(100% + 10px);
	left: 50%;
	transform: translateX(-50%);
	display: block;
	animation: tooltip-horizontal 1s infinite alternate ease-in-out;
}
.code-library:hover .code-tooltip::before {
	bottom: calc(100% + calc(var(--border) * 3));
	left: 50%;
	transform: translateX(-50%);
	border-color: transparent transparent var(--primary) transparent;
}
.code-editor-language:hover .code-tooltip {
	left: calc(100% + calc(var(--border) * 3));
	bottom: 50%;
	transform: translateY(50%) rotate(180deg);
	display: block;
	animation: tooltip-vertical 1s infinite alternate ease-in-out;
}
.code-editor-language:hover .code-tooltip::before {
	left: calc(100% + calc(var(--border) * 3));
	top: 50%;
	transform: translateY(-50%);
	border-color: transparent transparent transparent var(--primary);
}
.code-editor-border {
	flex: 1 1 0;
	min-width: 0;
	min-height: 0;
	display: flex;
	border: var(--border) solid var(--primary);
}
.code-editor-container {
	flex: 1 1 0;
	min-width: 0;
	min-height: 0;
	background-color: var(--primary);
	gap: var(--border);
	display: grid;
	grid-template-rows: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr);
	position: relative;
}
.code-editor {
	background-color: var(--off-black);
	padding: var(--border);
	display: flex;
	flex: 1 1 0;
	min-width: 0;
	min-height: 0;
}
.code-editor[data-fullscreen="true"] {
	position: absolute;
	width: 100%;
	height: 100%;
	z-index: 999;
}
.code-editor-plaintext {
	flex: 1 1 0;
	min-width: 0;
	min-height: 0;
	cursor: text;
	display: flex;
	position: relative;
}
.code-editor-plaintext-options {
	position: absolute;
	bottom: 0;
	right: 0;
	z-index: 99;
	display: inline-flex;
	align-items: flex-end;
	flex-direction: column;
	gap: var(--border);
	padding: var(--border);
	background-color: var(--off-black);
	border: var(--border) solid var(--primary);
	opacity: .5;
	transition: opacity .2s;
}
.code-editor-plaintext-options:hover {
	opacity: 1;
}
.code-editor-plaintext-options button {
	fill: var(--off-black);
	background-color: var(--off-white);
	width: 20px;
	height: 20px;
	border: unset;
	cursor: pointer;
	padding: 3px;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background-color .2s, opacity .2s, fill .2s;
}
.code-editor-plaintext-options button:hover {
	background-color: var(--off-black);
	fill: var(--off-white);
}
.code-editor-plaintext-options button:active {
	opacity: .5;
}
.code-editor-plaintext-options button svg {
	height: 100%;
	width: 100%;
}
.code-links {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	gap: var(--border);
	border: var(--border) solid var(--primary);
	padding: var(--border);
	background-color: var(--off-black);
}
.code-link {
	height: 30px;
	background-color: var(--off-white);
	color: var(--off-black);
	fill: var(--off-black);
	text-transform: uppercase;
	font-size: 12px;
	line-height: 1.2em;
	letter-spacing: .03em;
	padding: 0 5px;
	gap: 3px;
	display: flex;
	font-variation-settings: "wght" 650, "SRFF" 50;
	align-items: center;
	justify-content: center;
	text-align: center;
	cursor: pointer;
	text-decoration: none;
	transition: color .2s, fill .2s, background-color .2s, opacity .2s;
}
.code-link p {
	padding: .6em 0 .4em 0;
	font-size: 12px;
	line-height: 1.2em;
	letter-spacing: .03em;
}
.code-link svg {
	width: 13px;
}
.code-link:hover {
	background-color: var(--off-black);
	color: var(--off-white);
	fill: var(--off-white);
}
.code-link:active {
	opacity: .5;
}

/* CodeMirror theme */
.CodeMirror {
	flex-grow: 1;
	height: 100% !important;
	overflow: scroll;
}
.CodeMirror * {
	font-family: "Geist Mono", monospace;
	font-size: 12px;
}
.cm-s-ssbs.CodeMirror { background: var(--off-black); color: var(--off-white); }
.cm-s-ssbs div.CodeMirror-selected { background: #111; }
.cm-s-ssbs .CodeMirror-line::selection, .cm-s-ssbs .CodeMirror-line > span::selection, .cm-s-ssbs .CodeMirror-line > span > span::selection { background: #333; }
.cm-s-ssbs .CodeMirror-line::-moz-selection, .cm-s-ssbs .CodeMirror-line > span::-moz-selection, .cm-s-ssbs .CodeMirror-line > span > span::-moz-selection { background: #333; }
.cm-s-ssbs .CodeMirror-gutters { background: var(--off-black); border-right: 1px solid var(--off-white); }
.cm-s-ssbs .CodeMirror-guttermarker { color: var(--red); }
.cm-s-ssbs .CodeMirror-guttermarker-subtle { color: #333; }
.cm-s-ssbs .CodeMirror-linenumber { color: var(--off-white); }

.cm-s-ssbs .CodeMirror-cursor { border-left: var(--border) solid var(--off-white); }

.cm-s-ssbs span.cm-comment { color: #999; }
.cm-s-ssbs span.cm-atom { color: var(--blue); }
.cm-s-ssbs span.cm-number { color: var(--blue); }

.cm-s-ssbs span.cm-property, .cm-s-ssbs span.cm-attribute { color: var(--green); }
.cm-s-ssbs span.cm-keyword { color: var(--red); }
.cm-s-ssbs span.cm-string { color: var(--yellow); }

.cm-s-ssbs span.cm-variable { color: var(--green); }
.cm-s-ssbs span.cm-variable-2 { color: var(--purple); }
.cm-s-ssbs span.cm-def { color: var(--pink); }
.cm-s-ssbs span.cm-bracket { color: #d6d5d4; }
.cm-s-ssbs span.cm-tag { color: var(--red); }
.cm-s-ssbs span.cm-link { color: var(--blue); }
.cm-s-ssbs span.cm-error { background: var(--off-white); color: var(--off-black); }

.cm-s-ssbs .CodeMirror-activeline-background { background: #111; }
.cm-s-ssbs .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }

/* Story catalog */
.catalog {
	width: 100vw;
	height: 100dvh;
	position: absolute;
	top: 0;
	left: 0;
	transition: transform 1s;
	transform: translate(0%, 100%);
	background-color: var(--off-black);
}

/* Return to story */
.return-container {
	z-index: 1;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	padding: var(--border);
	border: var(--border) solid var(--off-black);
	background-color: var(--off-white);
	display: flex;
	align-items: stretch;
	justify-content: stretch;
	-webkit-user-select: none; /* Safari */
	-ms-user-select: none; /* IE 10 and IE 11 */
	user-select: none; /* Standard syntax */
}
.return {
	flex-grow: 1;
	border: var(--border) solid var(--off-black);
	background-color: var(--off-black);
	font-size: 12px;
	text-transform: uppercase;
	text-align: center;
	gap: var(--border);
}
.return-link {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0 5px 0 5px;
	height: 30px;
	background-color: var(--off-white);
	gap: 5px;
	color: var(--off-black);
	fill: var(--off-black);
	font-variation-settings: "wght" 650, "SRFF" 50;
	transition: color .2s, fill .2s, background-color .2s, opacity .2s, border .2s;
	cursor: pointer;
}
.return-link p {
	line-height: 1.2em;
	letter-spacing: .03em;
	padding: .6em .6em .4em .6em;
}
.return-link svg {
	width: 10px;
}
.return-link:hover {
	background-color: var(--off-black);
	color: var(--off-white);
	fill: var(--off-white);
}
.return-link:active {
	opacity: .5;
}

/* Catalog controls toggle */
.catalog-toggle-container {
	position: absolute;
	top: calc(30px + calc(var(--border) * 5));
	left: 0;
	transform-origin: center;
	transform: rotate(180deg);
	height: calc(100% - calc(30px + calc(var(--border) * 5)));
	padding: var(--border);
	display: flex;
	align-items: stretch;
	justify-content: stretch;
	text-transform: uppercase;
	text-align: center;
	text-orientation: mixed;
	writing-mode: vertical-rl;
	border: var(--border) solid var(--off-black);
	background-color: var(--off-white);
	z-index: 9;
	-webkit-user-select: none; /* Safari */
	-ms-user-select: none; /* IE 10 and IE 11 */
	user-select: none; /* Standard syntax */
}
.catalog-toggle {
	flex-grow: 1;
	border: var(--border) solid var(--off-black);
	background-color: var(--off-black);
	text-transform: uppercase;
	text-align: center;
	display: flex;
	align-items: stretch;
	justify-content: stretch;
}
.catalog-toggle-text {
	width: 30px;
	flex-grow: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: var(--off-white);
	color: var(--off-black);
	fill: var(--off-black);
	font-variation-settings: "wght" 650, "SRFF" 50;
	transition: color .2s, fill .2s, background-color .2s, opacity .2s, border .2s;
	cursor: pointer;
}
.catalog-toggle-text p {
	font-size: 12px;
	line-height: 1.2em;
	letter-spacing: .05em;
	padding: 1.2em .6em 1.2em .4em;
	word-spacing: .3em;
}
.catalog-toggle-text svg {
	width: 10px;
	transform: rotate(180deg);
}
.catalog-toggle-text:hover {
	background-color: var(--off-black);
	color: var(--off-white);
	fill: var(--off-white);
}
.catalog-toggle-text:active {
	opacity: .5;
}
.catalog-toggle-text[data-active="1"] {
	background-color: var(--off-black);
	color: var(--off-white);
	fill: var(--off-white);
}
.catalog-toggle-text[data-active="1"]:hover {
	background-color: var(--off-white);
	color: var(--off-black);
	fill: var(--off-black);
}
.catalog-toggle-text[data-active="1"] svg {
	transform: rotate(0deg);
}

/* Catalog filters and sorting */
.controls {
	position: absolute;
	left: calc(30px + calc(var(--border) * 5));
	width: 400px;
	height: calc(100% - calc(30px + calc(var(--border) * 5)));
	top: calc(30px + calc(var(--border) * 5));
	display: flex;
	background-color: var(--off-white);
	border: var(--border) solid var(--off-black);
	padding: var(--border);
	transition: transform .5s;
}
.controls[data-active="0"] {
	transform: translateX(-100%);
}
.controls-content {
	flex-grow: 1;
	background-color: var(--off-white);
	border: var(--border) solid var(--off-black);
	padding: 20px;
	display: flex;
	overflow-y: scroll;
	flex-direction: column;
	gap: 40px;
}
.controls-section {
	display: flex;
	flex-direction: column;
	align-items: start;
	gap: 20px;
}
[data-storyonly="0"] {
	display: none !important;
}
.controls-subsection {
	width: 100%;
	display: flex;
	flex-direction: column;
	align-items: start;
	gap: calc(var(--border) * 3);
}
.controls-heading {
	font-size: 12px;
	line-height: 1.2em;
	text-transform: uppercase;
	border-bottom: calc(var(--border) * 3) double var(--off-black);
	color: var(--off-black);
	font-variation-settings: "wght" 650, "SRFF" 50;
}
.controls-subheading {
	font-size: 12px;
	line-height: 1.2em;
	letter-spacing: .02em;
	text-transform: uppercase;
	color: var(--off-black);
	font-variation-settings: "wght" 650, "SRFF" 50;
	display: flex;
	align-items: center;
	gap: 8px;
}
.controls-subheading svg {
	fill: var(--off-black);
	height: 20px;
}
.controls-subheading span {
	padding-top: .2em;
}
.controls-options {
	display: flex;
	gap: calc(var(--border) * 3);
	list-style-type: none;
	flex-wrap: wrap;
}
.controls-option {
	font-size: 12px;
	height: 30px;
	display: flex;
	align-items: center;
	justify-content: center;
	line-height: 1.2em;
	letter-spacing: .03em;
	color: var(--off-black);
	text-decoration: none;
	text-transform: uppercase;
	padding: .6em .6em .4em .6em;
	border: 1px solid var(--off-black);
	background-color: var(--off-white);
	font-variation-settings: "wght" 500, "SRFF" 50;
	transition: opacity .2s, background-color .2s, color .2s;
	cursor: pointer;
}
.controls-option:hover {
	color: var(--off-white);
	background-color: var(--off-black);
}
.controls-option:active {
	opacity: .5;
}
.controls-option[data-active="1"] {
	background-color: var(--off-black);
	color: var(--off-white);
}
#option-20less {
	border: 3px double var(--pink);
}
#option-20less:hover {
	color: var(--off-black);
	background-color: var(--pink);
}
#option-20less[data-active="1"] {
	color: var(--off-black);
	background-color: var(--pink);
}
#option-21to40 {
	border: 3px double var(--green);
}
#option-21to40:hover {
	color: var(--off-black);
	background-color: var(--green);
}
#option-21to40[data-active="1"] {
	color: var(--off-black);
	background-color: var(--green);
}
#option-41to60 {
	border: 3px double var(--blue);
}
#option-41to60:hover {
	color: var(--off-black);
	background-color: var(--blue);
}
#option-41to60[data-active="1"] {
	color: var(--off-black);
	background-color: var(--blue);
}
#option-61to80 {
	border: 3px double var(--yellow);
}
#option-61to80:hover {
	color: var(--off-black);
	background-color: var(--yellow);
}
#option-61to80[data-active="1"] {
	color: var(--off-black);
	background-color: var(--yellow);
}
#option-81to100 {
	border: 3px double var(--purple);
}
#option-81to100:hover {
	color: var(--off-black);
	background-color: var(--purple);
}
#option-81to100[data-active="1"] {
	color: var(--off-black);
	background-color: var(--purple);
}
#option-100more {
	border: 3px double var(--red);
}
#option-100more:hover {
	color: var(--off-black);
	background-color: var(--red);
}
#option-100more[data-active="1"] {
	color: var(--off-black);
	background-color: var(--red);
}
.controls-clear {
	position: sticky;
	bottom: 0;
	font-size: 12px;
	line-height: 1em;
	letter-spacing: .03em;
	color: var(--off-white);
	text-decoration: none;
	text-transform: uppercase;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: calc(30px + calc(var(--border) * 3));
	padding-top: .2em;
	border: calc(var(--border) * 3) double var(--off-black);
	background-color: var(--off-black);
	text-align: center;
	font-variation-settings: "wght" 650, "SRFF" 50;
	transition: background-color .2s, color .2s;
	cursor: pointer;
}
.controls-clear:hover {
	background-color: var(--off-white);
	color: var(--off-black);
}
.controls-clear[data-active="0"] {
	display: none;
}
.storytype {
	width: 100%;
}
.storytype-options {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: calc(var(--border) * 3);
}
.storytype-option {
	border: calc(var(--border) * 3) double var(--off-black);
	display: flex;
	color: var(--off-black);
	fill: var(--off-black);
	background-color: var(--off-white);
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 20px;
	padding: 20px 10px;
	cursor: pointer;
	text-transform: uppercase;
	font-size: 14px;
	font-variation-settings: "wght" 650, "SRFF" 50;
	transition: fill .2s, color .2s, background-color .2s, opacity .2s;
}
.storytype-option svg {
	width: 60px;
	height: 60px;
}
.storytype-option:hover {
	color: var(--off-white);
	fill: var(--off-white);
	background-color: var(--off-black);
}
.storytype-option:active {
	opacity: .5;
}
.storytype-option[data-active="1"] {
	color: var(--off-white);
	fill: var(--off-white);
	background-color: var(--off-black);
}
.search {
	width: 100%;
	flex-grow: 1;
	height: 30px;
	padding: .65em .6em .4em .6em;
	line-height: 1.2em;
	border-radius: 0;
	background-color: var(--off-white);
	color: var(--off-black);
	font-family: "Limkin", serif;
	font-size: 12px;
	font-variation-settings: "wght" 500, "SRFF" 50;
	outline: none;
	border: 1px solid var(--off-black);
}

/* Stories index */
.index {
	position: absolute;
	left: calc(400px + calc(30px + calc(var(--border) * 4)));
	top: calc(30px + calc(var(--border) * 5));
	right: 0;
	height: calc(100% - calc(30px + calc(var(--border) * 5)));
	background-color: var(--off-white);
	display: flex;
	background-color: var(--off-white);
	border: var(--border) solid var(--off-black);
	padding: var(--border);
	transition: left .5s;
}
.index[data-controls="0"] {
	left: calc(30px + calc(var(--border) * 5));
}
#index[data-view="story"] [data-type="anthology"] {
	display: none !important;
}
#index[data-view="anthology"] [data-type="story"] {
	display: none !important;
}
.index-flash {
	position: absolute;
	width: calc(100% - 4px);
	height: calc(100% - 4px);
	top: var(--border);
	left: var(--border);
	pointer-events: none;
	z-index: 9;
	opacity: 0;
	background-color: rgb(100,100,100);
	transition: opacity .5s;
}
.index-items {
	flex-grow: 1;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	grid-auto-rows: max-content;
	align-content: start;
	overflow-y: scroll;
	border: var(--border) solid var(--off-black);
	background-color: var(--off-black);
	padding: 20px;
	gap: calc(var(--border) * 3);
}
.index-item {
	display: flex;
	border: calc(var(--border) * 3) double var(--off-white);
	color: var(--off-white);
	background-color: var(--off-black);
	min-height: 300px;
	overflow: hidden;
	cursor: pointer;
	padding: var(--border);
	transition: background-color .2s, opacity .2s;
}
.index-item[data-active="0"] {
	display: none;
}
.index-item[data-search="0"] {
	display: none !important;
}
.index-item[data-type="anthology"] {
	min-height: 400px;
}
.index-item[data-category="20less"] {
	border: calc(var(--border) * 3) double var(--pink);
}
.index-item[data-category="21to40"] {
	border: calc(var(--border) * 3) double var(--green);
}
.index-item[data-category="41to60"] {
	border: calc(var(--border) * 3) double var(--blue);
}
.index-item[data-category="61to80"] {
	border: calc(var(--border) * 3) double var(--yellow);
}
.index-item[data-category="81to100"] {
	border: calc(var(--border) * 3) double var(--purple);
}
.index-item[data-category="100more"] {
	border: calc(var(--border) * 3) double var(--red);
}
.index-item:hover {
	background-color: var(--off-white);
}
.index-item[data-category="20less"]:hover {
	background-color: var(--pink);
}
.index-item[data-category="21to40"]:hover {
	background-color: var(--green);
}
.index-item[data-category="41to60"]:hover {
	background-color: var(--blue);
}
.index-item[data-category="61to80"]:hover {
	background-color: var(--yellow);
}
.index-item[data-category="81to100"]:hover {
	background-color: var(--purple);
}
.index-item[data-category="100more"]:hover {
	background-color: var(--red);
}
.index-item:active {
	opacity: .5;
}
.index-item-lines {
	flex: 0 1 0px;
	padding: 0 20px;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	text-align: center;
	gap: 10px;
	background-color: var(--off-white);
}
.index-item[data-category="20less"] .index-item-lines {
	background-color: var(--pink);
}
.index-item[data-category="21to40"] .index-item-lines {
	background-color: var(--green);
}
.index-item[data-category="41to60"] .index-item-lines {
	background-color: var(--blue);
}
.index-item[data-category="61to80"] .index-item-lines {
	background-color: var(--yellow);
}
.index-item[data-category="81to100"] .index-item-lines {
	background-color: var(--purple);
}
.index-item[data-category="100more"] .index-item-lines {
	background-color: var(--red);
}
.index-item-lines-text {
	font-size: 12px;
	color: var(--off-black);
	line-height: 1em;
	letter-spacing: .03em;
	padding-top: .2em;
	text-transform: uppercase;
	font-variation-settings: "wght" 650, "SRFF" 50;
}
.index-item-lines-text-mobile {
	display: none;
}
.index-item-lines-number {
	width: 60px;
	font-size: 28px;
	border-radius: 50%;
	background-color: var(--off-black);
	color: var(--off-white);
	aspect-ratio: 1/1;
	display: flex;
	align-items: center;
	justify-content: center;
	padding-top: .1em;
	line-height: 1.1em;
	font-family: 'Limkin', serif;
}
.index-item[data-category="20less"] .index-item-lines-number {
	color: var(--pink);
}
.index-item[data-category="21to40"] .index-item-lines-number {
	color: var(--green);
}
.index-item[data-category="41to60"] .index-item-lines-number {
	color: var(--blue);
}
.index-item[data-category="61to80"] .index-item-lines-number {
	color: var(--yellow);
}
.index-item[data-category="81to100"] .index-item-lines-number {
	color: var(--purple);
}
.index-item[data-category="100more"] .index-item-lines-number {
	color: var(--red);
}
.index-item-info {
	flex: 1 0 0px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: start;
	padding: 20px;
}
.index-item-title {
	display: block;
	font-size: 24px;
	color: var(--off-white);
	transition: color .2s;
	/* font-variation-settings: "wght" 300, "SRFF" 100; */
	line-height: 1.1em;
	font-family: 'Limkin', serif;
}
.index-item:hover .index-item-title {
	color: var(--off-black);
}
.index-item-authors {
	padding: 15px 0 20px 0;
	font-size: 12px;
	color: var(--off-white);
	letter-spacing: .05em;
	text-transform: uppercase;
	font-variation-settings: "wght" 650, "SRFF" 50;
	transition: color .2s;
}
.index-item:hover .index-item-authors {
	color: var(--off-black) !important;
}
.index-item[data-category="20less"] .index-item-authors {
	color: var(--pink);
}
.index-item[data-category="21to40"] .index-item-authors {
	color: var(--green);
}
.index-item[data-category="41to60"] .index-item-authors {
	color: var(--blue);
}
.index-item[data-category="61to80"] .index-item-authors {
	color: var(--yellow);
}
.index-item[data-category="81to100"] .index-item-authors {
	color: var(--purple);
}
.index-item[data-category="100more"] .index-item-authors {
	color: var(--red);
}
.index-item-tags {
	display: flex;
	gap: calc(var(--border) * 3);
	list-style-type: none;
	flex-wrap: wrap;
}
.index-item-tag {
	font-size: 10px;
	line-height: 1.2em;
	letter-spacing: .05em;
	color: var(--off-black);
	text-decoration: none;
	text-transform: uppercase;
	padding: .6em .6em .45em .6em;
	background-color: var(--off-white);
	font-variation-settings: "wght" 600, "SRFF" 50;
	transition: color .2s, background-color .2s;
}
.index-item:hover .index-item-tag {
	background-color: var(--off-black);
	color: var(--off-white);
}
.index-item-anthology {
	margin-bottom: 20px;
	font-size: 12px;
	line-height: 1.2em;
	letter-spacing: .02em;
	text-transform: uppercase;
	border-bottom: calc(var(--border) * 3) double var(--off-white);
	color: var(--off-white);
	font-variation-settings: "wght" 650, "SRFF" 50;
	transition: border-bottom .2s, color .2s;
}
.index-item[data-category="20less"] .index-item-anthology {
	color: var(--pink);
	border-bottom: calc(var(--border) * 3) double var(--pink);
}
.index-item[data-category="21to40"] .index-item-anthology {
	color: var(--green);
	border-bottom: calc(var(--border) * 3) double var(--green);
}
.index-item[data-category="41to60"] .index-item-anthology {
	color: var(--blue);
	border-bottom: calc(var(--border) * 3) double var(--blue);
}
.index-item[data-category="61to80"] .index-item-anthology {
	color: var(--yellow);
	border-bottom: calc(var(--border) * 3) double var(--yellow);
}
.index-item[data-category="81to100"] .index-item-anthology {
	color: var(--purple);
	border-bottom: calc(var(--border) * 3) double var(--purple);
}
.index-item[data-category="100more"] .index-item-anthology {
	color: var(--red);
	border-bottom: calc(var(--border) * 3) double var(--red);
}
.index-item:hover .index-item-anthology {
	border-bottom: calc(var(--border) * 3) double var(--off-black);
	color: var(--off-black);
}
.index-item-stories {
	padding-top: 20px;
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
	list-style-type: none;
	flex-wrap: wrap;
}
.index-item-story {
	width: 100%;
	display: flex;
	align-items: center;
	gap: 8px;
}
.index-item-story-lines {
	flex: 0 0 40px;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background-color: var(--off-white);
	display: flex;
	color: var(--off-black);
	align-items: center;
	justify-content: center;
	text-align: center;
	transition: background-color .2s, color .2s;
}
.index-item-story-lines p {
	padding-top: .2em;
	line-height: 1.2em;
	font-size: 14px;
	letter-spacing: .03em;
	font-variation-settings: "wght" 500, "SRFF" 50;
}
.index-item-story[data-category="20less"] .index-item-story-lines {
	background-color: var(--pink);
}
.index-item-story[data-category="21to40"] .index-item-story-lines {
	background-color: var(--green);
}
.index-item-story[data-category="41to60"] .index-item-story-lines {
	background-color: var(--blue);
}
.index-item-story[data-category="61to80"] .index-item-story-lines {
	background-color: var(--yellow);
}
.index-item-story[data-category="81to100"] .index-item-story-lines {
	background-color: var(--purple);
}
.index-item-story[data-category="100more"] .index-item-story-lines {
	background-color: var(--red);
}
.index-item:hover .index-item-story-lines {
	background-color: var(--off-black);
	color: var(--off-white);
}
.index-item-story-title {
	padding-top: .2em;
	text-transform: uppercase;
	line-height: 1.2em;
	color: var(--off-white);
	transition: color .2s;
	font-size: 12px;
	letter-spacing: .03em;
	font-variation-settings: "wght" 600, "SRFF" 50;
}
.index-item-story[data-category="20less"] .index-item-story-title {
	color: var(--pink);
}
.index-item-story[data-category="21to40"] .index-item-story-title {
	color: var(--green);
}
.index-item-story[data-category="41to60"] .index-item-story-title {
	color: var(--blue);
}
.index-item-story[data-category="61to80"] .index-item-story-title {
	color: var(--yellow);
}
.index-item-story[data-category="81to100"] .index-item-story-title {
	color: var(--purple);
}
.index-item-story[data-category="100more"] .index-item-story-title {
	color: var(--red);
}
.index-item:hover .index-item-story-title {
	color: var(--off-black);
}
.index-empty {
	position: absolute;
	top: 0;
	left: 0;
	text-align: center;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 18px;
	padding: 20px;
	width: 100%;
	height: 100%;
	color: var(--off-white);
	pointer-events: none;
	font-variation-settings: "wght" 300, "SRFF" 100;
}
.index-empty[data-active="0"] {
	display: none;
}

/* Mobile styles */
@media screen and (max-width: 800px) {
	.about-list-item {
		flex-direction: column;
	}
	.preview {
		transition: unset;
	}
	.code {
		width: calc(100vw - calc(30px + calc(var(--border) * 5)));
		transition: none;
	}
	.code[data-active="0"] {
		transform: translateX(100%);
	}
	.code[data-active="1"] {
		z-index: 9;
	}
	.code-editor-language {
		cursor: default;
	}
	.code-tooltip {
		display: none !important;
	}
	.story {
		width: calc(100vw - calc(30px + calc(var(--border) * 5)));
		transition: none;
	}
	.story[data-active="0"] {
		transform: translateX(-100%);
	}
	.story[data-active="1"] {
		z-index: 99;
	}
	.controls {
		width: calc(100vw - calc(30px + calc(var(--border) * 5)));
		transition: none;
	}
	.controls[data-active="0"] {
		transform: translateX(-100%);
	}
	.controls[data-active="1"] {
		z-index: 99;
	}
	.index {
		transition: unset;
	}
	.story-flash {
		width: calc(100% - calc(30px + calc(var(--border) * 7)));
	}
}
@media screen and (max-width: 600px) {
	.intro {
		padding: 10px;
	}
	.intro-title {
		font-size: 20px;
		padding: .6em .6em .4em .6em;
	}
	.intro-subtitle {
		font-size: 16px;
		font-variation-settings: "wght" 400, "SRFF" 50;
	}
	.about {
		padding: 40px 10px 80px 10px;
		margin-top: calc(var(--border) * -1);
		height: calc(100% + calc(var(--border) * 2));
		margin-left: calc(var(--border) * -1);
		width: calc(100% + calc(var(--border) * 2));
	}
	.about-title {
		font-size: 20px;
		padding: .6em .6em .4em .6em;
	}
	.about-subtitle {
		font-size: 16px;
		font-variation-settings: "wght" 400, "SRFF" 50;
	}
	.about-heading {
		top: calc(-40px - var(--border));
		font-size: 14px;
	}
	.about-heading-content {
		padding: 10px;
	}
	.about-content {
		padding: 20px;
		font-variation-settings: "wght" 350, "SRFF" 100;
	}
	.about-subsection {
		font-size: 14px;
	}
	.index-item {
		flex-direction: column;
	}
	.index-item-lines {
		padding: 20px;
		flex-direction: row;
	}
	.index-item-lines-text-desktop {
		display: none;
	}
	.index-item-lines-text-mobile {
		display: block;
	}
}