@import url("https://fonts.googleapis.com/css2?family=Cascadia+Code:ital,wght@0,200..700;1,200..700&family=Geologica:wght@100..900&family=Oswald:wght@200..700");

@layers system interface content colorscheme animation demonstration;

@layer system {
	:not(details.page)>details.page {
		position: relative;
		counter-reset: page 0;

		&[open]>summary {
			display: none;
		}
	}

	details.page {
		--pages-page-width: max(20vw, 300px);
		--pages-page-height: max(40vh, 400px);
		--pages-page-padding: 1rem;
		width: var(--pages-page-width, max(20vw, 380px));
		height: var(--pages-page-height, max(40vh, 370px));
		box-sizing: border-box;
		padding: var(--pages-page-padding, 1rem);
		border-radius: 0.75rem;
		overflow: hidden;

		>details.page {
			position: absolute;
			top: 0;
			left: 0;
			width: 100%;
			height: 100%;
		}

		&[open] {
			z-index: 10;
			counter-increment: page 1;

			>summary {
				&:before {
					content: var(--localization-button-previous, "Previous");
				}

				left: var(--pages-page-padding, 1rem);
				right: unset;
			}

			>details.page:not([open])>summary {
				&:before {
					content: var(--localization-button-next, "Next");
				}
			}
		}

		> :not(details, summary) {
			z-index: 1;
			position: relative;
		}

		>summary {
			z-index: 5;
			right: var(--pages-page-padding, 1rem);
			bottom: var(--pages-page-padding, 1rem);
			position: absolute;
			max-width: calc(50% - var(--pages-page-padding, 1rem));
			min-width: 30px;
			width: max-content;
			box-sizing: border-box;
			padding: 0.4rem 1rem;
			display: flex;
			gap: 0.2rem;
			justify-content: center;
			cursor: pointer;
			border-radius: 0.75rem;
		}
	}
}

@layer content {
	@layer page {
		details.page>section.content {
			position: absolute;
			top: 0;
			left: 0;
			width: 100%;
			height: 100%;
			box-sizing: border-box;
			padding: var(--pages-page-padding, 1rem);
			display: flex;
			flex-direction: column;
			gap: 1rem;

			>span:has(> :is(span, a).separated) {
				justify-content: space-between;
			}

			> :is(h2, h3) {
				margin: unset;
				margin-top: 0.2rem;
				text-align: center;
				font-weight: 200;
			}
		}
	}

	@layer destiny {
		details.page#destiny>section.content {
			>img {
				&#masha {
					position: absolute;
					top: -10%;
					height: 150%;
					align-self: center;
				}

				&.masha.red {
					z-index: 100;
					position: absolute;
					top: -10%;
					height: 150%;
					align-self: center;
					mix-blend-mode: overlay;
				}
			}

			>div#css {
				z-index: 50;
				position: absolute;
				top: 0;
				left: 0;
				box-sizing: border-box;
				display: flex;
				width: 100%;
				height: 100%;
				mix-blend-mode: multiply;
				/* font-size: 0.8rem; */

				>div.color {
					width: 100%;
					height: 100%;
					display: block;

					>code.flow {
						position: absolute;
						left: -10%;
						width: 120%;
						/* height: 130rem; */
						height: 3000px;
						/* line-height: 1rem; */
						/* scale: 1.5; */
						font-family: "Cascadia Code", sans-serif;
						/* font-size: 0.7rem; */
						word-break: break-all;
						overflow: hidden;
					}
				}
			}
		}
	}

	@layer story {
		details.page#story>section.content {
			>div#marie_itself_wrap {
				z-index: 100;
				position: absolute;
				bottom: 0;
				right: 0;
				width: 100%;
				height: 100%;

				div {
					position: absolute;
					top: 0;
					left: 0;
					width: 100%;
					height: 100%;
				}

				>span#tolstoy_background {
					position: absolute;
					top: -10%;
					left: -10%;
					width: 120%;
					height: 120%;
					font-size: 1.7rem;
					line-height: 1.8rem;
					font-family: "Oswald";
					font-weight: 100;
					rotate: -5deg;
					word-wrap: break-word;
					word-break: break-all;
					color: var(--hint-text-color, #696969);
				}

				>img#marie_itself {
					z-index: 100;
					position: absolute;
					right: -10%;
					bottom: -15%;
				}

				>div#marie_forearm_wrap {
					z-index: 150;
					perspective: 1000px;

					>div#tolstoy {
						z-index: 180;
						position: absolute;
						top: 85%;
						right: 0%;
						transform-origin: top right;
						transform: rotate3d(0, 1, 0, 285deg);

						>span {
							position: absolute;
							right: 0%;
							white-space: nowrap;
							background-color: red;
							padding: 0rem 100rem;
							font-weight: 800;
							text-transform: uppercase;
							font-size: 2rem;
							transform: scale(3.5);
						}
					}

					>img#marie_forearm {
						position: absolute;
						right: 54.5%;
						bottom: -6.2%;
					}

					>div#marie_hand_wrap {
						z-index: 200;
						transform-origin: 5% 85%;

						>img#marie_hand {
							position: absolute;
							right: -9.5%;
							bottom: 11%;
						}
					}
				}
			}
		}
	}

	@layer code {
		body:has(details.page#amogus > section.content > input#shoot:checked) details.page#code>section.content>object {
			display: none;
		}

		details.page#code>section.content {
			>object {
				position: absolute;
				top: -50%;
				left: -50%;
				width: 202%;
				height: 200%;
				scale: 0.5;
				filter: contrast(5) brightness(0.5);
			}

		}
	}

	@layer author {
		details.page#author>section.content {
			--pages-author-logo-diameter: 200px;
			padding: var(--pages-page-padding, 1rem) calc(var(--pages-page-padding, 1rem) + 0.5rem);
			gap: unset;

			>h2 {
				font-weight: 500;
				font-family: "Cascadia Code";

				+span#name {
					margin-bottom: 1.2rem;
					align-self: center;
					font-weight: 400;
					font-family: "Cascadia Code";
				}
			}

			>span {
				margin-bottom: 0.6rem;
				display: inline-flex;
				font-family: "Cascadia Code";
			}

			>div.x {
				--pages-author-logo-diameter: 100px;
				z-index: -10;
				width: 100%;
				height: calc(100% - (var(--pages-page-padding, 1rem) * 2 + 3rem));

				>div.y {
					width: 100%;
					height: 100%;
					display: flex;
					justify-content: center;
					align-items: center;

					>img#logo {
						z-index: 20;
						position: absolute;
						width: var(--pages-author-logo-diameter, 100px);
						align-self: center;
						object-fit: cover;
					}
				}
			}

			>div.room {
				z-index: -100;
				position: absolute;
				right: 0;
				bottom: 0;
				width: 100%;
				height: 100%;
				opacity: 0;
				overflow: hidden;
				filter: contrast(12) var(--filter);
				transition: opacity 0s;

				&:before {
					position: absolute;
					right: 25%;
					top: 35%;
					content: "";
					width: 8%;
					height: 5%;
					border-radius: 100%;
				}

				>div.illuminate {
					&:after {
						position: absolute;
						top: -50%;
						left: -50%;
						content: "";
						width: 200%;
						height: 200%;
						will-change: transform;
						background-image: url(https://git.svoboda.works/mirzaev/css-crime-pages/raw/branch/stable/images/noise.png);
						mix-blend-mode: screen;
						backdrop-filter: contrast(1.9);
					}

					position: absolute;
					bottom: -10%;
					left: -10%;
					width: 140%;
					height: 140%;
					rotate: -5deg;
					overflow: hidden;
					background-color: hsl(from white 0 100% 70%);
					transform-origin: bottom left;
					clip-path: polygon(0 90%,
						75% 0%,
						100% 0%,
						100% 45%,
						10% 100%,
						0 100%);
					mix-blend-mode: luminosity;
				}

				>img#lezhit {
					z-index: -10;
					position: absolute;
					width: 100%;
					height: 100%;
					object-fit: cover;
					background-color: red;
					filter: grayscale(0.7);
				}
			}
		}

		details.page#author[open] {
			>summary {
				transition: background-color 0.3s ease-in 0.2s;

				&:not(:hover) {
					background-color: #ff0000aa !important;
					transition: background-color 0s ease-in 0s;
				}
			}
		}
	}

	@layer license {
		details.page#license>section.content>p {
			margin: unset;
			font-family: "Cascadia Code", sans-serif;
			font-size: smaller;
		}
	}

	@layer amogus {
		details.page#amogus {
			&:has(> section.content > input:is(#shoot, #dead):checked) {
				display: none;
			}

			>summary {
				right: -30%;
				opacity: 0;
				pointer-events: none;
			}

			&[open] {
				>summary {
					display: none;
				}

				>section.content:after {
					z-index: 700;
					position: absolute;
					top: -50%;
					left: -50%;
					content: "";
					width: 200%;
					height: 200%;
					pointer-events: none;
					will-change: transform;
					scale: 3;
					background-image: url(https://git.svoboda.works/mirzaev/css-crime-pages/raw/branch/stable/images/noise.png);
					filter: contrast(300);
				}
			}

			>section.content {
				justify-content: center;
				align-items: center;

				>label:has(+ input#shoot) {
					z-index: 500;
					width: 0;
					height: 0;
					padding: 5%;
					display: flex;
					justify-content: center;
					align-items: center;

					>img#enemy {
						z-index: 100;
						height: 100%;
					}
				}

				>label:has(+ input#dead) {
					z-index: -400;
					position: absolute;
					top: 0;
					left: 0;
					width: 100%;
					height: 100%;
					pointer-events: none;
				}

				>img#screamer {
					z-index: 600;
					position: absolute;
					width: 100%;
					height: 100%;
					opacity: 0;
					cursor: none;
					pointer-events: none;
				}
			}

			>section.content,
			>section.content * {
				cursor: url("data:img/png;base64,[encoded data, 4260 characters]") 50 50,
					crosshair;
			}
		}

		details.page {
			&:has(> details.page#amogus > section.content > input:is(#shoot, #dead):checked):before {
				content: "";
				z-index: 9999;
				position: absolute;
				top: 0;
				left: 0;
				width: 100%;
				height: 100%;
				opacity: 0;
				pointer-events: none;
			}

			&:has(> details.page#amogus > section.content > input:is(#shoot, #dead):checked):after {
				z-index: 5;
				right: var(--pages-page-padding, 1rem);
				bottom: var(--pages-page-padding, 1rem);
				position: absolute;
				max-width: calc(50% - var(--pages-page-padding, 1rem));
				min-width: 30px;
				width: max-content;
				box-sizing: border-box;
				padding: 0.4rem 1rem;
				display: flex;
				gap: 0.2rem;
				cursor: not-allowed;
				border-radius: 0.75rem;
			}

			&:has(> details.page#amogus > section.content > input#shoot:checked):after {
				content: var(--localization-button-alive, "ALIVE");
			}

			&:has(> details.page#amogus > section.content > input#dead:checked) {
				&:after {
					content: var(--localization-button-dead, "DEAD");
				}
			}
		}
	}
}

@layer colorscheme {
	details.page {
		outline: var(--pages-page-outline,
				2px solid var(--invert-background-color, #fff));
		background-color: var(--pages-page-background-color,
				var(--section-background-color, #000));

		&[open] {
			>summary {
				color: var(--pages-button-previous-text-color,
						var(--pages-button-previous-text-color,
							var(--button-text-color, #000)));
				/*     outline: 2px solid
      var(
        --pages-button-previous-background-color,
        var(
          --pages-button-previous-background-color,
          var(--button-background-color, #fff)
        )
      ); */
				background-color: var(--pages-button-previous-background-color,
						var(--pages-button-previous-background-color,
							var(--button-background-color, #fff)));
			}

			>details.page:not([open])>summary {
				color: var(--pages-button-next-text-color,
						var(--pages-button-next-text-color, var(--button-text-color, #000)));
				/*     outline: 2px solid
      var(
        --pages-button-next-background-color,
        var(
          --pages-button-next-background-color,
          var(--button-background-color, #fff)
        )
      ); */
				background-color: var(--pages-button-next-background-color,
						var(--pages-button-next-background-color,
							var(--button-background-color, #fff)));
			}
		}

		>summary {
			/*     outline-offset: -2px; */

			&:hover {
				/*     outline-offset: 2px;
    transition: outline-offset 0.1s ease-in; */
			}

			&:active {
				filter: brightness(0.8);
				/*     outline-offset: -2px;
    transition: outline-offset 0.05s ease-out; */
			}
		}
	}

	@layer author {

		body:has(details.page#amogus > section.content > input#dead:checked) {

			details.page#author>section.content {
				filter: invert(1);
				background-color: var(--background-color, #000);

				>div.room {
					--filter: invert(1);
				}
			}
		}

		details.page#author>section.content {
			>div.x>div.y>div.effects {
				width: 100%;
				height: 100%;
				display: flex;
				justify-content: center;
				align-items: center;
				overflow: hidden;
				background-color: var(--background-color, #000);
				filter: contrast(50);

				>div.border {
					z-index: 10;
					position: absolute;
					width: calc(var(--pages-author-logo-diameter, 100px) + 1rem);
					height: var(--pages-author-logo-diameter, 100px);
					border-radius: 100%;

					filter: blur(30px);
					/*     mix-blend-mode: multiply; */

					&:nth-of-type(1) {
						background-color: white;
					}

					&:nth-of-type(2) {
						width: var(--pages-author-logo-diameter, 100px);
						height: calc(var(--pages-author-logo-diameter, 100px) + 1rem);
						background-color: white;
					}

					&:nth-of-type(3) {
						background-color: white;
					}
				}
			}

			>div.room {
				&:before {
					background-color: #fff;
				}
			}
		}
	}

	@layer amogus {
		details.page#amogus>section.content {
			background-color: red;
		}

		details.page[open]:has(> details.page#amogus > section.content > input:is(#shoot, #dead):checked):after {
			outline: 2px solid var(--pages-button-background-color, #fff);
			outline-offset: -2px;
			color: var(--invert-pages-button-text-color, #fff);
			background-color: var(--invert-pages-button-background-color, #000);
		}

		details.page:has(> details.page#amogus > section.content > input#shoot:checked) {
			&:before {
				background-color: #fff !important;
			}

			&:after {
				outline: 2px solid var(--green, #42ff22) !important;
				color: var(--green, #42ff22) !important;
			}
		}

		details.page[open]:has(> details.page#amogus > section.content > input#dead:checked) {
			&:after {
				outline: 2px solid var(--red, #ff2222) !important;
				color: var(--red, #ff2222) !important;
			}
		}
	}
}

@layer animation {
	@layer destiny {
		@keyframes destiny-masha {
			0% {
				transform: translateX(-10px) translateY(10px);
			}

			100% {
				transform: translateX(-20px) translateY(-20px);
			}
		}

		@keyframes destiny-rotate {
			0% {
				rotate: -10deg;
			}

			100% {
				rotate: 10deg;
			}
		}

		@keyframes destiny-color {

			0%,
			30% {
				font-size: 0.7rem;
				font-weight: 300;
				line-height: 0.7rem;
				opacity: 1;
				color: rgb(0, 0, 0);
			}

			100% {
				font-size: 1.2rem;
				font-weight: 900;
				line-height: 1.5rem;
				opacity: 1;
				color: rgb(255, 0, 0);
				filter: blur(0px);
			}
		}

		@keyframes destiny-flow {
			0% {
				transform: translateY(0px);
			}

			100% {
				transform: translateY(-1000px);
			}
		}

		details.page#destiny>section.content {
			>img#masha {
				animation-name: destiny-masha;
				animation-duration: 2s;
				animation-iteration-count: infinite;
				animation-direction: alternate;
				animation-fill-mode: forwards;
				animation-timing-function: cubic-bezier(0.5, 0, 0.5, 1);
			}

			>img.masha.red {
				animation-name: destiny-masha;
				animation-duration: 2s;
				animation-delay: 0.6s;
				animation-iteration-count: infinite;
				animation-direction: alternate;
				animation-fill-mode: forwards;
				animation-timing-function: cubic-bezier(0.5, 0, 0.5, 1);
			}

			>div#css {
				animation-name: destiny-rotate;
				animation-duration: 3s;
				animation-iteration-count: infinite;
				animation-direction: alternate;
				animation-fill-mode: forwards;
				animation-timing-function: cubic-bezier(0.5, 0, 0.5, 1);

				>div.color {
					animation-name: destiny-color;
					animation-duration: 4s;
					animation-iteration-count: infinite;
					animation-direction: alternate;
					animation-fill-mode: forwards;
					animation-timing-function: cubic-bezier(1, 0, 0.5, 1);

					>code.flow {
						animation-name: destiny-flow;
						animation-duration: 0.6s;
						animation-iteration-count: infinite;
						animation-fill-mode: forwards;
						animation-timing-function: linear;
					}
				}
			}
		}
	}

	@layer story {
		@keyframes marie_itself_breathing {
			0% {
				transform-origin: 100% 80%;
				transform: rotate(0deg) translateY(0px);
			}

			100% {
				transform-origin: 95% 90%;
				transform: rotate(-1deg) translateY(3px);
			}
		}

		@keyframes marie_forearm_rotate {
			0% {
				transform: rotate(0);
				transform-origin: 40% 120%;
			}

			100% {
				transform: rotate(2deg);
				transform-origin: 40% 90%;
			}
		}

		@keyframes storyflex {
			0% {
				background-color: #f00;
			}

			60%,
			100% {
				background-color: #000;
			}
		}

		@keyframes tolstoy_sverkaet {

			0%,
			20% {
				rotate: -5deg;
				transform-origin: 60% 60%;
				color: hsl(from var(--hint-text-color, #696969) h 30% 20%);
			}

			80%,
			100% {
				rotate: -8deg;
				transform-origin: 60% 20%;
				color: hsl(from var(--hint-text-color, #696969) h s 30%);
			}
		}

		@keyframes tolstoy_huyarit {
			0% {
				top: 84%;
			}

			100% {
				top: 87%;
			}
		}

		@keyframes tolstoy_ebashit {
			0% {
				right: -9840%;
			}

			100% {
				right: 6150%;
			}
		}

		@keyframes marie_hand_rotate {
			0% {
				transform: rotate(0);
			}

			100% {
				transform: rotate(1deg) scaleY(1.05);
			}
		}

		details.page#story {
			&[open] {
				animation-name: storyflex;
				animation-duration: 0.4s;
				animation-iteration-count: infinite;
				animation-timing-function: cubic-bezier(0.6, 0, 0.2, 0.2);

				>section.content>div#marie_itself_wrap {
					>span#tolstoy_background {
						animation-name: tolstoy_sverkaet;
						animation-duration: 8s;
						animation-iteration-count: infinite;
						animation-direction: alternate;
						animation-fill-mode: forwards;
						animation-timing-function: ease-in-out;
					}

					>div#marie_forearm_wrap {
						>div#tolstoy {
							animation-name: tolstoy_huyarit;
							animation-duration: 3s;
							animation-iteration-count: infinite;
							animation-direction: alternate;
							animation-fill-mode: forwards;
							animation-timing-function: cubic-bezier(0.5, 0, 0.35, 1);

							>span {
								animation-name: tolstoy_ebashit;
								animation-duration: 8s;
								animation-iteration-count: infinite;
								animation-timing-function: linear;
							}
						}

						>div#marie_hand_wrap {
							animation-name: marie_hand_rotate;
							animation-duration: 3s;
							animation-iteration-count: infinite;
							animation-direction: alternate;
							animation-fill-mode: forwards;
							animation-timing-function: cubic-bezier(0.4, 0, 0.3, 1);
						}
					}
				}
			}

			&:not([open])>section.content {
				* {
					animation-play-state: paused;
				}
			}

			>section.content {
				>div#marie_itself_wrap {
					animation-name: marie_itself_breathing;
					animation-duration: 2.2s;
					animation-iteration-count: infinite;
					animation-direction: alternate;
					animation-fill-mode: forwards;
					animation-timing-function: cubic-bezier(0.5, 0, 0.55, 1);

					>div#marie_forearm_wrap {
						animation-name: marie_forearm_rotate;
						animation-duration: 3s;
						animation-iteration-count: infinite;
						animation-direction: alternate;
						animation-fill-mode: forwards;
						animation-timing-function: cubic-bezier(0.5, 0, 0.35, 1);
					}
				}
			}
		}
	}

	@layer author {
		@keyframes arsen-in-town {
			0% {
				opacity: 0;
				left: -20vw;
			}

			40% {
				opacity: 0.6;
			}

			100% {
				opacity: 0;
				left: -5vw;
			}
		}

		@keyframes room-illuminate {
			0% {
				opacity: 0;
				clip-path: polygon(0 100%, 100% 0%, 100% 0%, 100% 0%, 0% 100%, 0 100%);
			}

			40% {
				opacity: 1;
			}

			100% {
				opacity: 1;
				clip-path: polygon(0 70%, 0% 0%, 100% 0%, 100% 100%, 40% 100%, 0 100%);
			}
		}

		@keyframes masha-mouth-shut {

			0%,
			40% {
				opacity: 1;
			}

			60%,
			100% {
				opacity: 0;
			}
		}

		@keyframes masha-illuminate {

			0%,
			40% {
				rotate: -5deg;
				background-color: hsl(from white 0 100% 70%);
			}

			60%,
			100% {
				rotate: 0deg;
				background-color: hsl(from white 0 100% 60%);
			}
		}

		@keyframes determination-x {
			0% {
				transform: translateX(20%);
			}

			100% {
				transform: translateX(-20%);
			}
		}

		@keyframes determination-y {

			0%,
			5% {
				transform: translateY(30px);
			}

			95%,
			100% {
				transform: translateY(-30px);
			}
		}

		@keyframes determination-rotate {
			0% {
				rotate: 10deg;
			}

			100% {
				rotate: -10deg;
			}
		}

		@keyframes determination-border {
			0% {
				transform: rotate(0deg) translateY(9px);
			}

			100% {
				transform: rotate(360deg) translateY(-9px);
			}
		}

		@keyframes ebashilovo {

			0%,
			60% {
				rotate: 0deg;
				transform: scale(1);
			}

			65% {
				rotate: -1.4deg;
				transform: scale(1.06);
			}

			70% {
				rotate: -1deg;
				transform: scale(1);
			}

			80% {
				rotate: -1deg;
				transform: scale(1.04);
			}

			90%,
			100% {
				rotate: 0deg;
				transform: scale(1);
			}
		}

		body:has(details.page#amogus > section.content > input#shoot:checked) {
			>img#mirzaev {
				animation-name: arsen-in-town;
				animation-duration: 0.8s;
				animation-delay: 1.5s;
				animation-fill-mode: forwards;
				animation-timing-function: ease-out;
			}

			details.page#author {
				>section.content {
					>div.x {
						>div.y {
							>img#logo {
								animation-name: unset;
							}
						}
					}
				}
			}
		}

		details.page#author {
			&:has(> summary:hover)>section.content>div.room {
				z-index: 100;
				animation-name: room-illuminate;
				animation-duration: 1s;
				animation-direction: normal;
				animation-fill-mode: forwards;
				animation-timing-function: cubic-bezier(0.5, 0, 0, 1);
			}

			>section.content {
				>div.room {
					&:before {
						animation-name: masha-mouth-shut;
						animation-duration: 2s;
						animation-delay: 1s;
						animation-iteration-count: infinite;
						animation-direction: alternate;
						animation-fill-mode: forwards;
						animation-timing-function: cubic-bezier(1, 0, 0, 1);
					}

					>div.illuminate {
						animation-name: masha-illuminate;
						animation-duration: 2s;
						animation-delay: 1s;
						animation-iteration-count: infinite;
						animation-direction: alternate;
						animation-fill-mode: forwards;
						animation-timing-function: cubic-bezier(1, 0, 0, 1);

						&:after {
							animation: noise 0.6s steps(2) infinite;
						}
					}
				}

				>div.x {
					animation-name: determination-x;
					animation-duration: 1.8s;
					animation-iteration-count: infinite;
					animation-direction: alternate;
					animation-fill-mode: forwards;
					animation-timing-function: cubic-bezier(0.5, 0, 0.55, 1);

					>div.y {
						animation-name: determination-y;
						animation-duration: 2.2s;
						animation-iteration-count: infinite;
						animation-direction: alternate;
						animation-fill-mode: forwards;
						animation-timing-function: cubic-bezier(0.3, 0, 0.5, 1);

						&:after {
							animation: noise 0.6s steps(2) infinite;
						}

						>img#logo {
							/* animation-name: determination-rotate;
              animation-duration: 2s;
              animation-iteration-count: infinite;
              animation-direction: alternate;
              animation-fill-mode: forwards;
              animation-timing-function: cubic-bezier(0.3, 0, 0.3, 1); */

							animation-name: ebashilovo;
							animation-duration: 1s;
							animation-iteration-count: infinite;
							animation-direction: normal;
							animation-fill-mode: forwards;
							animation-timing-function: ease-in;
						}

						>div.effects>div.border {
							animation-name: determination-border;
							animation-duration: 2s;
							animation-iteration-count: infinite;
							animation-direction: alternate;
							animation-fill-mode: forwards;
							animation-timing-function: cubic-bezier(0.5, 0, 0.5, 1);

							&:nth-of-type(1) {
								animation-duration: 2s;
							}

							&:nth-of-type(2) {
								animation-duration: 3s;
							}

							&:nth-of-type(3) {
								animation-duration: 1.7s;
							}
						}
					}
				}
			}
		}
	}

	@layer amogus {
		@keyframes secret-button {
			0% {
				right: -30%;
				opacity: 0;
				rotate: 30deg;
			}

			0%,
			99% {
				pointer-events: none;
			}

			100% {
				right: var(--pages-page-padding, 1rem);
				opacity: 1;
				rotate: 0deg;
				pointer-events: all;
			}
		}

		@keyframes shoot {
			0% {
				width: 0%;
				height: 0%;
				/*         rotate: -5deg; */
			}

			90% {
				width: 100%;
				height: 100%;
				/*         rotate: 0deg; */
			}
		}

		@keyframes screamer {

			0%,
			67% {
				opacity: 0;
				cursor: unset;
				filter: contrast(20) saturate(70) hue-rotate(40deg) brightness(10);
			}

			67.5% {
				opacity: 1;
				cursor: unset;
				filter: contrast(20) saturate(70) hue-rotate(40deg) brightness(10);
			}

			70% {
				opacity: 1;
				cursor: help;
				filter: contrast(1) saturate(0) hue-rotate(0deg) brightness(1);
			}

			100% {
				opacity: 1;
				cursor: help;
				filter: contrast(2) saturate(0) hue-rotate(0deg) brightness(1);
			}
		}

		@keyframes dead {

			0%,
			89% {
				z-index: -400;
				cursor: unset;
				pointer-events: none;
			}

			90% {
				z-index: -400;
				cursor: unset;
				pointer-events: none;
			}

			100% {
				z-index: 600;
				cursor: help;
				pointer-events: all;
			}
		}

		@keyframes flash {
			0% {
				opacity: 1;
			}

			100% {
				opacity: 0;
			}
		}

		details.page#amogus[open]>section.content {
			&:after {
				animation: noise 0.6s steps(2) infinite;
				animation-delay: 2s;
			}

			>label:has(+ input#shoot) {
				animation-name: shoot;
				animation-duration: 3s;
				animation-fill-mode: forwards;
				animation-timing-function: linear(0.05 0%,
						0.05 5%,
						0.1 10%,
						0.1 20%,
						0.2 25%,
						0.2 35%,
						0.4 40%,
						0.4 89%,
						1 90%);
			}

			>label:has(+ input#dead) {
				animation-name: dead;
				animation-duration: 3s;
				animation-fill-mode: forwards;
				animation-timing-function: cubic-bezier(0.35, 0.85, 0.6, 1);
			}

			>img#screamer {
				animation-name: screamer;
				animation-duration: 4s;
				animation-fill-mode: forwards;
				animation-timing-function: ease-out;
			}
		}

		details.page {
			&:has(> details.page#amogus > section.content > input#shoot:checked):before {
				animation-name: flash;
				animation-duration: 0.8s;
				animation-fill-mode: forwards;
				animation-timing-function: cubic-bezier(1, 0, 0.7, 0.8);
			}

			&[open] {
				>details.page#amogus:not([open])>summary {
					animation-name: secret-button;
					animation-duration: 0.7s;
					animation-delay: 2s;
					animation-fill-mode: forwards;
					animation-timing-function: cubic-bezier(0.75, 0, 0, 0.45);
				}
			}
		}
	}

	@layer effects {
		@keyframes noise {
			0% {
				transform: translate3d(0, 9rem, 0);
			}

			10% {
				transform: translate3d(-1rem, -4rem, 0);
			}

			20% {
				transform: translate3d(-8rem, 2rem, 0);
			}

			30% {
				transform: translate3d(9rem, -9rem, 0);
			}

			40% {
				transform: translate3d(-2rem, 7rem, 0);
			}

			50% {
				transform: translate3d(-9rem, -4rem, 0);
			}

			60% {
				transform: translate3d(2rem, 6rem, 0);
			}

			70% {
				transform: translate3d(7rem, -8rem, 0);
			}

			80% {
				transform: translate3d(-9rem, 1rem, 0);
			}

			90% {
				transform: translate3d(6rem, -5rem, 0);
			}

			to {
				transform: translate3d(-7rem, 0, 0);
			}
		}
	}
}

@layer demonstration {
	:root {
		@layer colorscheme {
			@layer system {
				--text-color: #fff;
				--invert-text-color: #000;
				--link-text-color: #7c84f7;
				--link-hover-text-color: #56b8f3;
				--link-active-text-color: #6f54d9;
				--hint-text-color: #696969;
				--background-color: #000;
				--invert-background-color: #fff;
				--section-background-color: #000;
				--button-background-color: #000;
				--invert-button-background-color: #fff;
				--button-text-color: #fff;
				--invert-button-text-color: #000;

				--green: #42ff22;
				--red: #ff2222;
			}

			@layer pages {
				@layer page {
					--pages-page-background-color: #000;
					--pages-page-outline: 2px solid var(--invert-background-color, #fff);
				}

				@layer button {
					--pages-button-background-color: #fff;
					--invert-pages-button-background-color: #000;
					--pages-button-next-background-color: #fff;
					--invert-pages-button-next-background-color: #000;
					--pages-button-previous-background-color: #fff;
					--invert-pages-button-previous-background-color: #000;
					--pages-button-text-color: #000;
					--invert-pages-button-text-color: #fff;
					--pages-button-next-text-color: #000;
					--invertpages-button-next-text-color: #fff;
					--pages-button-previous-text-color: #000;
					--invertpages-button-previous-text-color: #fff;
				}
			}
		}

		@layer localization {
			--localization-button-next: "Next";
			--localization-button-previous: "Previous";
			--localization-button-dead: "DEAD";
			--localization-button-alive: "ALIVE";
		}

		color: var(--text-color, #fafafa);
		font-family: "Geologica",
		sans-serif;
	}

	body {
		--gap: 2rem;
		margin: unset;
		width: 100vw;
		height: 100vh;
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		overflow: hidden;
		background-color: var(--background-color, #000);
	}

	@layer macros {
		.unselectable {
			-webkit-touch-callout: none;
			-webkit-user-select: none;
			-khtml-user-select: none;
			-moz-user-select: none;
			-ms-user-select: none;
			user-select: none;
		}
	}

	input {
		display: none;
	}

	h1 {
		margin: unset;
		margin-bottom: var(--gap, 2rem);
		font-weight: 200;
	}

	strong:has(+ h1) {
		margin-left: 2.5rem;
		margin-bottom: -0.8rem;
		font-family: "Cascadia Code", sans-serif;
		font-weight: 200;
		text-decoration: line-through;
		color: red;
	}

	a {
		font-family: "Cascadia Code", sans-serif;
		text-decoration: unset;
		color: var(--link-text-color, blue);

		&:hover {
			color: var(--link-hover-text-color, blue);
		}

		&:active,
		&:focus {
			color: var(--link-active-text-color, blue);
		}
	}

	span#current_page {
		z-index: 1000;
		margin-top: var(--gap, 2rem);
		padding: 0.4rem 1rem;
		display: flex;
		gap: 0.3rem;
		border-radius: 0.75rem;
		border: 2px solid var(--invert-background-color, #fff);
		background-color: var(--background-color, #000);

		&:after {
			content: counter(page);
			font-variant-numeric: tabular-nums;
		}
	}

	body>img#mirzaev {
		z-index: 1000;
		position: absolute;
		bottom: -17vh;
		left: 2vw;
		max-height: 400px;
		height: 40vw;
		opacity: 0;
	}

	body:has(details.page#author[open] > details.page:not([open]))>img#mirzaev {
		/*       opacity: 1; */
	}
}
