* {
	box-sizing: border-box;
}

html, body {
	position: relative;
	overscroll-behavior: none;
	scroll-behavior: smooth;
}

body {
	color: #333;
	margin: 0;
	padding: 0;
	font-size: 18px;
	line-height: 1.7;
	box-sizing: border-box;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
}

body::-webkit-scrollbar {
  width: 6px;
}
 
body::-webkit-scrollbar-track {
  background: none;
}
 
body::-webkit-scrollbar-thumb {
	background: #9a324a;
}

main {
	padding: 4rem 5rem 4rem 0;
	margin-left: 25vw;
}

article {
	margin: auto;
	max-width: 750px;
	padding-right: 13rem;
}

article p {
	position: relative;
  margin-bottom: 1.7em;
}

article a {
	color: #333;
	text-decoration: underline;
}

aside {
	position: fixed;
  padding: 2rem;
  width: 22rem;
  top: 0;
  left: 0;
	bottom: 0;
	z-index: 1;
	background: #9a324a;
	color: white;
	display: flex;
	flex-direction: column;
}

h1 {
	font-weight: 0;
	line-height: 1;
	font-size: 3rem;
	letter-spacing: .05em;
	text-transform: uppercase;
	margin: 0
}

a {
	color: inherit;
}

a:hover {
	text-decoration: underline;
}

a:visited {
	color: inherit;
}

.blockout {
	background: white;
	transition: background .1s;
	text-decoration: none;
	font-weight: 600;
}

.blockout:hover {
	background: transparent
}

svg {
	width: 100%
}

hr {
	margin: 2rem 0;
	border-width: 0;
  border-top: 1px solid #ffffff55;
}

hr.dark {
	border-color: #333;
	opacity: .33;
}

p + hr.dark {
	margin: 4rem 0;
}

label {
	display: block;
	font-size: 15px;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-weight: 600;
	width: 160px
}

form input,
form label,
form textarea {
	width: 100%;
	border-radius: 0
}

input, button, select, textarea {
	font-family: inherit;
	font-size: inherit;
	-webkit-padding: 0.4em 0;
	padding: 0.4em;
	margin: 0 0 0.5em 0;
	box-sizing: border-box;
	border: 1px solid #ccc;
	border-radius: 2px;
}

input:disabled {
	color: #ccc;
}

textarea,
input[type="text"] {
	background: #fffe;
	border: none
}

textarea:focus,
textarea:focus-visible,
input:focus,
input:focus-visible {
	outline: none;
	background: white
}

input[type="checkbox"] {
	position: absolute;
	left: 0;
	opacity: 0.01
}

input[type="checkbox"] + label {
	position: relative;
	padding-left: 2.3em;
	line-height: 1.7;
	cursor: pointer;
	user-select: none;
}

input[type="checkbox"] + label:before {
	content: '';
  top: 0;
	left: 0;
  width: 1.4em;
  height: 1.4em;
	position: absolute;
  background: #ffffff55;
  border-radius: .2em;
  transition: all .275s;
}

input[type="checkbox"]:checked + label:before {
	background: #3df599
}


.toggles label:nth-of-type(odd) {
	width: 170px;
}

.toggles label:nth-of-type(even) {
	width: 100px;
}

button {
	color: inherit;
	background-color: #f4f4f4;
	outline: none;
	margin-left: -1px;
	border-radius: 0;
	background: none;
	font-weight: bold;
	padding: .5em .75em;
	font-size: 20px;
	margin-bottom: 0;
	opacity: 0.5;
	border-color: transparent;
	transition: all .2s;
	cursor: pointer;
	width: 100%
}

button:hover {
	opacity: 0.9;
	background: #ffffff22;
}

button.border,
button.active,
button:focus {
	opacity: 1;
	border-color: white;
}

button.red.border,
button.red.active,
button.red:focus {
	opacity: 1;
	color: white;
	background: #9a324a;
	letter-spacing: .1em;
	text-transform: uppercase;
	border-radius: 5px;
}

.range {
	color: #eeeeeeaa;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: .15em;
	user-select: none;
}

.annotation {
	position: absolute;
	top: .25rem;
	width: 200px;
	left: calc(100% + 5rem);
	user-select: none;
	font-size: 12px;
	opacity: .33;
}

.button-row {
	display: grid;
	justify-items: center;
	grid-template-columns: repeat(5, 1fr);
	column-gap: 0;
	row-gap: 0;
}

.button-row > * {
	flex: 1
}

.flex {
	display: flex;
	width: 100%
}

.flex-col {
	display: flex;
	flex-direction: column;
}

.flex-center {
	align-items: center;
	justify-content: center;
}

.text-center {
	text-align: center;
}

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

.py-4 {
	padding-top: 1rem;
	padding-bottom: 1rem
}

.p-4 {
	padding: 1rem
}

.py-4:first-child {
	padding-top: 0
}

.w-full {
	width: 100%
}

.select-none {
	user-select: none
}

.cursor-ptr {
	cursor: pointer;
}

.inset-0 {
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
}

.upper {
	font-size: 14px;
	letter-spacing: .1em;
	font-weight: 600;
	text-transform: uppercase;
}

.bare,
.bare:hover {
	text-decoration: none;
}

.dragging {
	cursor: grabbing!important;
	user-select: none;
}

nav {
	font-size: 12px;
	letter-spacing: .1em;
	font-weight: 600;
	text-transform: uppercase;
	display: flex;
	flex-wrap: wrap;
	margin-top: 1.25rem;
}

nav a {
	white-space: nowrap;
	margin-right: 1rem;
	text-decoration: none;
}

#coffee {
	background: #9a324a;
	border-radius: 2px;
	text-align: center;
	padding: .25rem .5rem;
	position: fixed;
	right: 1rem;
	top: 1rem;
	width: 120px;
	font-size: 11px;
	white-space: normal;
	transition: background .5s;
}

#coffee:hover {
	text-decoration: none;	
	background: #a84c60;
}

.scroller {
	overflow-y: auto;
  padding: 0;
  margin: -1rem -1.5rem;
  position: relative;
  flex: 1;
}

.scroller-inner {
	position: absolute;
  bottom: 0;
  top: 0;
  left: 0;
  right: 0;
	padding: 1rem;
}

.scroller-inner > *:last-child {
	padding-bottom: 1.5rem
}

.scroller::-webkit-scrollbar {
  width: 4px;
}
 
.scroller::-webkit-scrollbar-track {
  background: none;
}
 
.scroller::-webkit-scrollbar-thumb {
	background: #ffffff55;
	border-radius: 2px
}

#introduction h2 {
	margin-top: 0;
	font-size: 2.5em;
	position: relative;
}

#introduction h2 .annotation{
	top: unset;
	bottom: 1rem;
	font-weight: 400;
}

#tooltip {
	position: fixed;
	background: #9a324a;
	padding: .5rem 1rem;
	text-transform: uppercase;
	letter-spacing: .1em;
	font-size: 14px;
	font-weight: 600;
	z-index: 200;
	color: white;
	transform: translate(-50%, -110%);
	box-shadow: 0 0 1rem #fff8;
	pointer-events: none;
	white-space: nowrap;
}

#formsubmit {
	background: white;
	color: #9a324a;
	padding: .5rem 1.5rem;
	font-weight: 500;
	text-align: center;
}

.highlight p,
.highlight h2 {
	background: #3df59922
}

article p,
article h2 {
	transition: background .2s;
}

.btn-red {
	opacity: 1;
	z-index: 10;
	color: white;
	font-size: 1rem;
	cursor: pointer;
	text-align: center;
	background: #9a324a;
	padding: 1rem;
	transition: all .3s;
}

#introduction + .btn-red {
	margin-top: 1rem
}

.btn-red:hover {
	background: #a84c60;
}

@media (max-width: 1350px) {
	
	main {
		margin-left: 22rem;
		padding: 4rem 0;
	}
	
	article {
		max-width: 600px;
		padding-right: 0;
	}
	
	#introduction .annotation {
		display: none;
	}
	
	.annotation {
		position: unset;
		display: block;
		margin-top: .5rem;
		width: auto;
	}
	
}

@media (max-width: 1000px) {
	
	main {
		padding: 7rem 1rem 4rem;
		margin-left: 0
	}
	
	article {
		padding: 0
	}
	
	aside {
		right: 0;
		width: auto;
		height: 4rem;
		bottom: unset;
		padding: .5rem 1rem;
		flex-direction: column;
		transition: all .3s;
		justify-content: space-between;
	}
	
	aside.active {
		height: 100vh;
	}
	
	h1 {
		white-space: nowrap;
		width: unset;
		font-size: 1.5rem;
	}
	
	#title {
		display: flex;
		justify-content: space-between;
		align-items: center;
		width: 100%;
	}
	
	#title svg {
		width: 50px;
		height: auto;
	}
	
	.scroller {
		background: #9a314a;
	}
	
	.scroller-inner {
		padding: 0 2rem;
		max-width: 500px;
		margin: auto;
	}
	
	.modal .scroller-inner {
		padding: 0;
		margin: auto;	
	}
	
	#coffee {
		display: none;
	}
		
	.active #coffee {
		display: block;
		left: 0.75rem;
		right: unset;
		background: #a84c60;
		width: 235px;
		font-size: 12px;
		line-height: 3;
		border-radius: 0;
	}
	
	.btn-red:hover {
		background: #9a324a;
	}
	
	.blockout {
		background: none;
	}
	
}
