@font-face {
	font-family: Scratch;
	src: url(scratch-pixel-font.otf.woff2);
}

:root {
	--base-800: oklch(26.8% 0.007 34.298);
	--base-600: oklch(44.4% 0.011 73.639);
	--base-400: oklch(70.9% 0.01 56.259);
	--base-300: oklch(86.9% 0.005 56.366);
	--base-200: oklch(92.3% 0.003 48.717);
	--base-100: oklch(97% 0.001 106.424);
	--base-50: oklch(98.5% 0.001 106.423);
	/* lime accent colour */
	--accent-700: oklch(53.2% 0.157 131.589);
	--accent-600: oklch(64.8% 0.2 131.684);
	--accent-500: oklch(76.8% 0.233 130.85);
	--accent-400: oklch(84.1% 0.238 128.85);
	--accent-300: oklch(89.7% 0.196 126.665);
	--accent-200: oklch(93.8% 0.127 124.321);
	--accent-100: oklch(96.7% 0.067 122.328);
	/* teal accent colour */
	/*
	--accent-700: oklch(51.1% 0.096 186.391);
	--accent-600: oklch(60% 0.118 184.704);
	--accent-500: oklch(70.4% 0.14 182.503);
	--accent-400: oklch(77.7% 0.152 181.912);
	--accent-300: oklch(85.5% 0.138 181.071);
	--accent-200: oklch(91% 0.096 180.426);
	--accent-100: oklch(95.3% 0.051 180.801);
	*/
	--success-400: oklch(84.1% 0.238 128.85);
	--success-300: oklch(89.7% 0.196 126.665);
	--success-200: oklch(93.8% 0.127 124.321);
	--success-100: oklch(96.7% 0.067 122.328);
	--error-400: oklch(70.4% 0.191 22.216);
	--error-300: oklch(80.8% 0.114 19.571);
	--error-200: oklch(88.5% 0.062 18.334);
	--error-100: oklch(93.6% 0.032 17.717);
}

body {
	background-color: var(--base-50);
}

* {
	box-sizing: border-box;
	font-size: 16px;
	line-height: 1.5;
	font-family: Scratch, Sans-Serif;
	font-weight: normal;
	margin: 0;
	padding: 0;
	image-rendering: pixelated;
}

::selection {
	color: var(--base-800);
	background-color: var(--accent-300);
}

p, div, h1, h2, input, textarea {
	color: var(--base-800);
}

p {
	margin: 12px 0;
}

h1 {
	font-size: 24px;
	font-weight: normal;
}

h2 {
	font-weight: normal;
	padding: 8px;
	border-top: 2px solid var(--accent-400);
	border-bottom: 2px solid var(--accent-400);
	background-color: var(--accent-200);
	color: var(--accent-700);
}

ul li {
	list-style-type: none;
}

a:link,
a:visited,
a:focus,
a:hover {
	color: var(--accent-500);
	text-decoration: none;
}

em {
	font-style: normal;
	color: var(--accent-700);
}

button {
	background-color: var(--base-100);
	color: var(--base-800);
	padding: 8px;
	border: 2px solid var(--base-300);
	border-radius: 0;
}

button:hover {
	background-color: var(--base-200);
}

button#add-person {
	background-color: var(--success-100);
	border-color: var(--success-300);
}

button#add-person:hover {
	background-color: var(--success-200);
}

button.remove-person {
	background-color: var(--error-100);
	border-color: var(--error-300);
}

button.remove-person:hover {
	background-color: var(--error-200);
}

input,
textarea {
	padding: 4px 6px;
	border: 2px solid var(--base-300);
	border-radius: 0;
}

input[type="text"],
input[type="number"],
textarea {
	width: 95%;
}

input[type="text"],
input[type="number"] {
	margin-top: 4px;
}

.guests {
	border-top: 2px solid var(--base-300);
	padding: 0;
	border-spacing: 0;
	border-collapse: collapse;
	margin-bottom: 12px;
}

.guests td,
.guests th {
	border-bottom: 2px solid var(--base-200);
}

.guests tr:last-child td {
	border-bottom: 2px solid var(--base-300);
}

.guests tr:nth-child(odd) {
	background-color: var(--base-100);
}

.guests tr:first-child {
	background-color: var(--base-200);
}

.guests tr th:first-child,
.guests tr td:first-child {
	padding-left: 12px;
}

.guests tr th:last-child,
.guests tr td:last-child {
	padding-right: 12px;
}

.guests .absent {
	position: relative;
	text-decoration: line-through;
}

.guests th {
	text-align: left;
}

.guests th.child,
.guests td.child {
	display: none;
}

.guests td.child,
.guests td.photo {
	text-align: center;
}

.guests td.age {
	text-align: right;
}

.block {
	display: block;
	margin-bottom: 8px;
	hyphens: auto;
}

.checkbox-container,
.radio-button-container {
	display: block;
	position: relative;
	padding-left: 26px;
	cursor: pointer;
	user-select: none;
}

.checkbox-container input,
.radio-button-container input {
	position: absolute;
	opacity: 0;
	cursor: pointer;
}

.checkbox-container .checkmark,
.radio-button-container .checkmark {
	position: absolute;
	top: 2px;
	left: 0;
	height: 20px;
	width: 20px;
	border: 2px solid var(--base-300);
}

.checkbox-container .checkmark:after {
	content: 'x';
	color: var(--base-400);
	position: absolute;
	top: -7px;
	left: 3px;
	display: none;
}

.checkbox-container input:checked ~ .checkmark:after {
	display: block;
}

.radio-button-container .checkmark {
	border-radius: 50%;
}

.radio-button-container .checkmark:after {
	content: '';
	position: absolute;
	top: 3px;
	left: 3px;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background-color: var(--base-400);
	display: none;
}

.radio-button-container input:checked ~ .checkmark:after {
	display: block;
}

.body-container {
	max-width: 640px;
}

ul.flashes li {
	border-top: 2px solid var(--base-300);
	border-bottom: 2px solid var(--base-300);
	background-color: var(--base-100);
	margin-top: 8px;
	padding: 4px 8px;
}

ul.flashes li.success {
	border-color: var(--success-400);
	background-color: var(--success-100);
}

ul.flashes li.error {
	border-color: var(--error-400);
	background-color: var(--error-100);
}

ul.date-location li {
	padding: 4px;
}

.timeline-container {
	background-image: url('dom-jana.png');
	background-repeat: no-repeat;
	background-position: right bottom;
	image-rendering: pixelated;
}

ul.timeline {
	display: table;
}

ul.timeline li {
	display: table-row;
}

ul.timeline li span {
	display: table-cell;
	padding: 4px 0;
}

ul.timeline li span.time {
	color: var(--accent-700);
	text-align: right;
	padding-right: 8px;
}

ul.timeline li span.event {
	vertical-align: bottom;
}

ul.fuck li {
	margin-bottom: 12px;
}

ul.fuck span.question {
	display: block;
	color: var(--accent-700);
}

.hidden, .person.template {
	display: none;
}

#name-container,
#people-container-container,
p.add-person,
p.submit {
}

#people-container {
	display: inline-block;
	text-align: left;
}

#people-container.hidden {
	display: none;
}

.person {
	position: relative;
	display: grid;
	grid-template-areas: 'photo' 'fields';
	margin-top: 16px;
	padding: 8px;
	border: 2px solid var(--base-300);
	width: 92%;
}

.person p.remove-person {
	position: absolute;
	top: 16px;
	right: -32px;
}

.person button.remove-person {
	border-left: none;
}

.person .photo {
	grid-area: photo;
	text-align: center !important;
}

.person .form-fields {
	grid-area: fields;
}

.no-margin {
	margin: 0;
}

/* Filepond stuff */

.file-container {
	width: 120px;
	height: 120px;
	margin: 0;
	padding-right: 16px;
}

.filepond--drop-label {
	font-size: 16px !important;
	color: var(--base-800) !important;
	background-color: var(--base-100) !important;
	border: 2px solid var(--base-300) !important;
}

.filepond--drop-label:hover {
	background-color: var(--base-200) !important;
}

.filepond--image-preview-wrapper {
	border: 2px solid var(--base-300) !important;
}

.filepond--image-preview {
	background: none !important;
}

.filepond--image-preview-overlay-idle {
	color: transparent !important;
}

.filepond--credits,
.filepond--file-info {
	display: none !important;
}

/* Media queries */

@media only screen and (max-width: 640px) {
	h1 {
		margin-top: 16px;
	}

	.body-container {
		margin: 0 8px;
	}

	.guests th,
	.guests td{
		padding: 2px 4px;
	}
}

@media only screen and (min-width: 641px) {
	.body-container {
		margin: 0 50px;
	}

	.guests th,
	.guests td{
		padding: 4px 8px;
	}

	.person .photo {
		grid-area: 1 / span 1;
		max-width: 120px;
	}

	.person .form-fields {
		grid-area: 1 / span 1;
	}
}

@media only screen and (min-width: 800px) {
	.body-container {
		margin: 0 100px;
	}

	.guests th,
	.guests td {
		padding: 4px 12px;
	}

	.guests th.child,
	.guests td.child {
		display: table-cell;
	}
}

@media only screen and (min-width: 900px) {
	.body-container {
		margin: 0 150px;
	}

	.guests th,
	.guests td {
		padding: 4px 16px;
	}
}

@media only screen and (min-width: 1000px) {
	.body-container {
		margin: 0 200px;
	}

	.guests th,
	.guests td {
		padding: 4px 24px;
	}
}

@media only screen and (min-width: 1200px) {
	.body-container {
		margin: 0 300px;
	}
}

@media only screen and (max-height: 599px) {
	h1,
	h2 {
		margin: 8px 0 4px 0;
	}
}

@media only screen and (min-height: 600px) {
	h1 {
		margin: 24px 0 16px 0;
	}

	h2 {
		margin: 24px 0 12px 0;
	}
}
