
/* Spotify can suck it */
@font-face {
  font-family: "Circular Spotify";
  src: url("/res/circular/book.woff2") format("woff");
}
@font-face {
  font-family: "Circular Spotify";
  src: url("/res/circular/bold.woff2") format("woff");
  font-weight: bold;
}
@font-face {
  font-family: "Circular Spotify Title";
  src: url("/res/circular/titlebold.woff2") format("woff");
  font-weight: 700;
}
@font-face {
  font-family: "Circular Spotify Title";
  src: url("/res/circular/titleblack.woff2") format("woff");
  font-weight: 900;
}

:root {
  --mainbg: #FF4B00;
  --darkermainbg: #872800;
  --regularText: rgb(179, 179, 179);
}

body {
	height: 100vh;
	width: 100vw;
	color:white;
	background:black;
	font-family: Circular Spotify;
	margin:0;
}
#main {
	display:flex;
	flex-direction: column;
	width: 100%;
	height: 100%;
	padding: 5px;
	box-sizing:border-box;
}
#spotifyMainContainer {
	display:flex;
	flex-direction:column;
	border-radius: 8px;
	width: 100%;
	height:100%;
	position:relative;
	overflow:hidden;
}
#spotifyLoginHeader {
	width: calc(100% - 10px);
	min-height: 66px;
	max-height: 66px;
	background-color: rgba(0,0,0,.5);
	position:fixed;
	z-index: 5;
	padding: 8px 16px 8px 16px;
	box-sizing:border-box;
	display:flex;
	align-items:center;
	border-radius: 8px 8px 0 0;
}
#spotifyLoginButtons {
	margin-left: auto;
	display:flex;
}
#spotifyLogging {
	color:white;
	font-size: 16px;
	font-weight:bold;
	margin-right: 25px;
	text-align:center;
}
button:not(.spotifyHelpButton, .spotifyUser) {
	appearance:none;
	background-color: #f6f6f6;
	min-width: 120px;
	height: 50px;
	padding: 8px;
	border-radius: 32px;
	border:0;
	font-family: Circular Spotify;
	font-size: 16px;
	display:flex;
	align-items:center;
	justify-content:center;
	text-align:center;
	font-weight:bold;
	cursor: pointer;
	color:black;
}
button:not(.spotifyHelpButton, .spotifyUser):disabled {
	opacity: 0.3;
	cursor: not-allowed;
}
button:hover:not(.spotifyHelpButton, .spotifyUser, :disabled) {
	transform: scale(1.04);
}
button:active:not(.spotifyHelpButton, .spotifyUser, :disabled) {
	transform: scale(1);
	background-color: #b7b7b7;
}
a {
	text-decoration:none;
}
.greenButton {
	background-color: #1ed760 !important;
}
.greenButton:active:not(:disabled) {
	background-color: rgb(22, 156, 70) !important;
}
#spotifyEpHeader {
	background: linear-gradient(180deg, var(--mainbg) 0%, var(--darkermainbg) 100%);
	width: 100%;
	min-height: 40%;
	display:flex;
	align-items:end;
	justify-content:start;
	box-sizing: border-box;
	padding: 30px;
	position:relative;
}
#spotifyEpInfo {
	display:flex;
	align-items:end;
}
#spotifyEpCover {
	border-radius: 4px;
	min-width: 232px;
	min-height: 232px;
	background-color: gray;
	background-image: url("/res/cover.png");
	background-size:cover;
	margin-right: 24px;
	box-shadow: rgba(0, 0, 0, 0.5) 0px 4px 60px 0px;
}
#spotifyEpInfoTitle {
	font-family: Circular Spotify Title;
	font-weight: 900;
	font-size: 96px;
	margin: 0 0 8px 0;
}
#spotifyEpInfoOrigin {
	font-family: Circular Spotify Title;
	font-weight: 700;
	margin: 5px 5px 5px 0px;
	font-size: 24px;
}
#spotifyEpInfoDoYouKnowWhatTheFuckYoureListeningTo {
	font-size: 14px;
	font-family: Circular Spotify;
}
#spotifyRecorderSection {
	flex-grow: 1;
	background-color: var(--mainbg);
	background-image: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, rgba(18,18,18,1) 40%);
}
#spotifyRecorderSection {
	padding: 20px 16px 20px 16px;
	display:flex;
	flex-direction:column;
}
#spotifyDateAndLength {
	display:flex;
	font-size: 14px;
}
#spotifyLength {
	margin-left: 4px;
}
h2 {
	color:white;
	font-size: 24px;
	font-family: Circular Spotify Title;
	font-weight: 700;
}
.grayText {
	font-size: 14px;
	color: var(--regularText);
}
#spotifyQueue {
	margin-top: 16px;
	display:flex;
	align-items:center;
}
#spotifyQueue>div {
	margin-right: 5px;
	font-size: 14px;
}
#spotifyQueue:not(#spotifyQueue>button) {
	color: var(--regularText);
}
#spotifyDescription:not(#spotifyDescription>h2) {
	color: var(--regularText)
}
.spotifyHelpButton {
	background-color: rgb(41, 41, 41);
	min-width: 40px;
	min-height: 40px;
	border-radius: 50%;
	display:flex;
	align-items:center;
	justify-content:center;
	border:0;
	margin-left: 10px;
	cursor:pointer;
	background-size: 16px 16px;
	background-repeat:no-repeat;
	background-position: center center;
}
.spotifyHelpButton:active {
	background-color: #a7a7a7;
	opacity: 0.7;
}
.spotifyHelpButton:hover {
	background-color: rgb(114, 114, 114);
}
.spotifyHelpButton.discord {
	background-image: url("/res/discord.svg");
}
.spotifyHelpButton.patreon {
	background-image: url("/res/patreon.svg");
}
.spotifyHelpButton.spotifyKickMe {
	background-size: 20px 20px;
	background-image: url("/res/kickme.svg");
}
#spotifyHelpButtons {
	display:flex;
	justify-content: end;
	margin-top: 20px;
}
#spotifyQueueTexts {
	display:flex;
}
#spotifyQueueTexts>div {
	margin-right: 4px;
}
.spotifyMobileBypass {
	width: fit-content;
}
@media screen and (max-width: 1300px) {
	#spotifyEpInfoTitle {
		font-size:70px;
	}
}
@media screen and (max-width: 1000px) {
	#spotifyEpInfoTitle {
		font-size:48px;
	}
	#spotifyEpCover {
		min-width: 128px;
		min-height: 128px;
	}
}
.buttonArray {
	display:flex;
}
.buttonArray>button {
	margin-right: 5px;
}
#spotifyRecording {
	font-size: 14px;
}
#pleaseReply {
	margin: 0;
}
.recordingContainer {
	display:flex;
	margin-top: 5px;
	margin-bottom: 5px;
	align-items:center;
}
.recordLabel {
	margin-right: 3px;
	color:gray;
	font-size: 14px;
}
.recordLabel:after {
	content: " • ";
}
.recording {
	display:flex;
	align-items:center;
	justify-content:center;
	min-width: 400px;
	max-width: 600px;
	height: 32px;
	padding: 10px;
	box-sizing:border-box;
	background:black;
	border-radius: 8px;
}
.recordBar {
	background: #4D4D4D;
	position:relative;
	width: 90%;
	height: 4px;
	border-radius: 2px;
}
.recordInnerBar {
	background: #1DB954;
	position:absolute;
	height: 100%;
	top:0;
	left:0;
	border-radius: 2px;
	max-width: 100%;
	pointer-events: none
}
.recordText {
	font-size: 14px;
	min-width: 20px;
	text-align:center;
	white-space:nowrap;
}
.recordButton {
	min-width: 20px;
	min-height: 20px;
	background-color:white;
	border-radius: 10px;
	margin-right: 5px;
	cursor:pointer;
}
.recordButton:hover {
	transform: scale(1.06);
}
.recordButton:active {
	transform: scale(0.9);
}
.recordStop {
	background-image: url("/res/stop.svg");
}
.recordPP {
	background-image: url("/res/play.svg");
}
.recordPP, .recordStop {
	background-size: 60% 60%;
	background-position: center center;
	background-repeat:no-repeat;
}
.recordPP.paused {
	background-image: url("/res/pause.svg");
}
.recordBarContainer {
	width: 110%;
	height: 16px;
	display:flex;
	align-items:center;
	justify-content:center;
}
#spotifyAlertContainer {
	background: rgba(0,0,0,.7);
	position:fixed;
	top:0;
	left:0;
	z-index: 100;
	display:flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	color:black;
}
#spotifyAlert {
	border-radius: 8px;
	background:white;
	padding: 24px;
	display:flex;
	box-sizing:border-box;
	flex-direction:column;
	min-width: 420px;
	min-height: 200px;
	max-width: 45%;
}
#spotifyAlertButtons {
	margin-top: auto;
	margin-left: auto;
	width: 100%;
	display:flex;
	justify-content:end;
}
#spotifyAlertButtons>button {
	margin-left:5px;
}
#spotifyAlertContext {
	margin-bottom: 20px;
}
#spotifyAlertTitle {
	font-size: 24px;
	margin-top: 0;
	margin-bottom: 5px;
}
#spotifyUserContainer {
	width: 36px;
	height: 36px;
	display:flex;
	align-items:center;
	justify-content: center
}
.spotifyUser {
	background-color: rgba(0,0,0, 0.54); /* 0.54? shyeah right */
	border-radius: 50%;
	width: 32px;
	height: 32px;
	display:flex;
	align-items:center;
	justify-content:center;
	border:none;
	transition: width 200ms, height 200ms;
	cursor:pointer;
}
.spotifyUserPicture {
	width: 24px;
	height: 24px;
	background-size: cover;
	background-repeat:no-repeat;
	background-position: center center;
	border-radius: 50% 50%;
}
.spotifyUser:hover {
	width: 100%;
	height: 100%;
	background-color: rgba(0,0,0, 0.7);
}
#spotifySupporter {
	background: url("/res/booster.svg");
	width: 22px;
	height: auto;
	background-repeat:no-repeat;
	background-position: center center;
	background-size: contain;
	cursor:pointer;
	margin-right: 5px;
}
.spotifyKickMe {
	margin-right: 35%;
	opacity:0.02;
}
.spotifyKickMe:hover {
	opacity: 1;
}
.grecaptcha-badge {
	display:none;
}
.spotifyLogo {
	height: 50px;
}
#joinQueue {
	margin-right: 5px;
}
small {
	font-size: 8px;
}
@media screen and (max-width: 768px) {
	#spotifyEpCover {
		min-width: 100px;
		min-height: 100px;
	}
	#spotifyEpHeader {
		padding: 30px 0px 30px 30px;
	}
	#spotifyEpInfoTitle {
		font-size:20px;
	}
	#spotifyEpInfoOrigin, #spotifyEpInfoDoYouKnowWhatTheFuckYoureListeningTo {
		font-size: 14px;
	}
	#spotifyEpHeader {
		min-height: 40%;
		padding-top:30%;
	}
	.greenButton {
		padding: 8px !important;
		margin:0;
	}
	/*#spotifyQueue {
		flex-direction:row-reverse;
	}*/
	.spotifyMobileBypass {
		display:none;
	}
	#spotifyRecorderSection {
		padding: 10px;
	}
	#spotifyQueue>div {
		margin:3px;
		text-align:center;
	}
	#spotifyInQueue {
		margin-right: 5px !important;
	}
	#spotifyMainContainer {
		height: 100vh !important;
		border-radius:0;
		overflow: auto;
	}
	#main {
		padding:0;
	}
	/* The following 2 are Safari iOS exclusive fixes. Thanks, Apple! Very cool. */
	#spotifyHelpButtons {
		margin-bottom: 200px;
	}
	body, html, #main {
		overflow:hidden;
	}
	#spotifyDescription {
		margin-top: 10px;
	}
	.recording {
		min-width: 230px;
		max-width: 600px;
	}
	.recordInnerBar:after {
		right: -7px;
	}
	#spotifyAlert {
		width: 95%;
		min-width: unset;
    max-width: unset;
	}
	#spotifyLoginHeader {
		width: 100%;
		border-radius: unset;
	}
	/* Can't have ads in mobile devices... why live */
	#ad {
		display: none;
	}
	/* player*/
	#spotifyPlayerContainer {
		position:fixed;
		bottom: 0;
		left:0;
		z-index: 5000;
		width: 100vw !important;
	}
	.recording {
		width:100vw !important;
	}
}


/* etc */


/* Confidential screen */
@keyframes awesome {
	from {
		transform: rotate(0deg) rotateY(0deg) rotateX(0deg);
		filter:hue-rotate(0deg);
	}
	to {
		transform: rotate(360deg) rotateY(360deg) rotateX(360deg);
		filter:hue-rotate(360deg);
	}
}
@keyframes simpleawesome {
	from {
		filter:hue-rotate(0deg);
	}
	to {
		filter:hue-rotate(360deg);
	}
}

#work {
	position:absolute;
	z-index: 1000;
	width: 100vw;
	height: 100vh;
	top:0;
	left:0;
	background-color: black;
	display:flex;
	align-items:center;
	justify-content:center;
	pointer-events: none;
}
#work #img {
	background-image: url("/res/work.png");
	background-repeat:no-repeat;
	background-position: center center;
	background-size: 80%;
	width: 100%;
	height: 100%;
}
#work #text {
	background-image: url("/res/work_overlay.png");
	background-repeat:no-repeat;
	background-position: center center;
	background-size: 80%;
	width: 100%;
	height: 100%;
	position:absolute;
	z-index: 200;
	top:0;
	left:0;
}
@keyframes workSimple {
	from {
		transform: scale(1);
	}
	to {
		transform: scale(0);
	}
}
@keyframes workScale {
	10% {
		transform: scaleX(0.85);
	}
	20% {
		transform: scaleX(0.9);
	}
	30% {
		transform: scaleX(0.95);
	}
	40% {
		transform: scaleX(1);
	}
	50% {
		transform: scaleX(0.95);
	}
	60% {
		transform: scaleX(0.9);
	}
	70% {
		transform: scaleX(0.85);
	}
	80% {
		transform: scaleX(0.9);
	}
	90% {
		transform: scaleX(0.95);
	}
	100% {
		transform: scaleX(1);
	}
}
@keyframes workText {
	from {
		opacity: 0;
	}
	to {
		opacity: 1;
	}
}

/* BUSTERM64 */

#busContainer {
	width: 100vw;
	height: 100vh;
	display:flex;
	align-items:center;
	justify-content:center;
	position:absolute;
	z-index: 3000;
	top:0;
	left:0;
}
#busLayout {
	box-sizing:border-box;
	border: 3px solid white;
	overflow:auto;
	height: 80%;
	display:flex;
	flex-direction:column;
	aspect-ratio: 4 / 3;
	background: black;
}
#busInput, #busTerminal {
	width: 100%;
	padding: 10px;
	color:white;
	font-size: 25px;
	resize:none;
	white-space: pre;
	font-family: monospace;
	padding: 10px;
	box-sizing:border-box;
	border:none;
	background: black;
	outline:none;
}
#busTerminal {
	height: 100%;
}
#busInput {
	height: 50px;
	border-top: 3px solid white;
	overflow:hidden;
}

/* AdWader */

#ad {
	width: 110px;
	height: 371px;
	outline: 5px solid white;
	border: 1px solid black;
	border-radius: 4px;
	position: absolute;
	/*right: 20px;
	bottom: -200px;*/
	left: calc(100% - 130px);
	top: 200px;
}
@keyframes zoomout {
	from {
		transform: scale(1) rotate(0);
	} to {
		transform: scale(0) rotate(-10deg);
	}
}
#immad {
	background-image: url("/res/IAMSOANGRY.png");
	position:absolute;
	top:0;
	left:0;
	width: 100vw;
	height: 100vh;
	opacity: 0.3;
}
#immadText {
	font-size: 70px;
	font-family: MS Mincho, Helvetica, sans-serif;
	position:relative;
	text-align:center;
	color:white;
	background-color: rgba(255, 255, 255, 0.5);
	border-radius: 5px;
	padding: 15px;
	display:flex;
	flex-direction:column;
}
#immadTextContainer {
	position:absolute;
	top:0;
	left:0;
	display:flex;
	align-items:center;
	justify-content:center;
	width: 100vw;
	height: 100vh;
}
#immadText > small > a {
	color:#0000ff;
	text-decoration:underline;
	font-size: 20px;
	cursor:pointer;
}
@keyframes immad {
	from {
		opacity: 0;
	}
	to {
		opacity: 0.3;
	}
}
@keyframes immadScroll {
	from {
		background-position: -20000% -20000%;
	}
	to {
		background-position: 0% 0%;
	}
}
@keyframes adRestore {
	from {
		transform: scale(1.5);
		top: calc(50vh - 186px);
		left: calc(50vw - 56px);
	}
	to {
		transform: scale(1);
		top: 200px;
		left: calc(100% - 130px);
	}
}
@keyframes adShaky {
  0% { transform: translate(1px, 1px) scale(1.5); }
  10% { transform: translate(-1px, -1px) scale(1.5); }
  20% { transform: translate(-1px, 0px) scale(1.5); }
  30% { transform: translate(0px, 1px) scale(1.5); }
  40% { transform: translate(1px, -1px) scale(1.5); }
  50% { transform: translate(-1px, 1px) scale(1.5); }
  60% { transform: translate(0px, 1px) scale(1.5); }
  70% { transform: translate(1px, 1px) scale(1.5); }
  80% { transform: translate(-1px, -1px) scale(1.5); }
  90% { transform: translate(1px, 1px) scale(1.5); }
  100% { transform: translate(1px, -1px) scale(1.5); }
}
/* player */
@font-face {
	font-family: "DotMatrix";
	src: url(/res/DOTMATRI.TTF) format("truetype");
}
#spotifyPlayerContainer {
	width: calc(100vw - 5px);
	background: black;
	display:flex;
	justify-content: center;
	padding: 15px 10px 10px 10px;
	box-sizing: border-box;
}
#spotifyPlayer {
	display:flex;
	flex-direction: column;
	align-items:center;
	position:relative;
}
#minus5, #plus5, #playButton {
	width: 32px;
	height: 32px;
	min-width:unset;
}
#plus5, #minus5 {
	width: 25px;
	height: 25px;
	margin-right: 15px;
	margin-left: 15px;
	background-color: unset;
	background-repeat: no-repeat;
	background-position: center;
	background-size: cover;
}
#plus5 {
	background-image: url("/res/forward.svg");
}
#minus5 {
	background-image: url("/res/rewind.svg");
}
#buttons {
	display:flex;
	align-items: center;
	justify-content: center;
}
#playButton {
	background-image: url("/res/play.svg");
	background-repeat:no-repeat;
	background-position: center;
	background-size: 16px 16px;
	background-color: rgb(179, 179, 179);
}
#playButton.paused {
	background-image: url("/res/pause.svg");
}
#playButton:hover {
	transform: scale(1.04);
}
#playButton:active {
	background-color: #c7c7c7;
	transform: scale(1);
}
.recording {
	padding: 5px;
	width: 50vw;
	max-width: unset;
	min-width:unset;
}
.recordBarContainer {
	width: 100%;
}
.recordBar {
	width: 100%;
}
#currentTime, #duration {
	margin-left: 5px;
	margin-right:5px;
	min-width:36px;
	font-size: 12px;
	color: rgb(179, 179, 179);
}
.recordBarContainer:hover > .recordBar > .recordInnerBar:after {
	content: "";
	margin-left:auto;
	position:absolute;
	right:-8px;
	background:white;
	display:block;
	width: 12px;
	height: 12px;
	border-radius: 6px;
	top: -4px;
	box-shadow: rgba(0, 0, 0, 0.5) 0px 2px 4px 0px;
}
.recordBarContainer {
	cursor:pointer;
}
#user {
	display:flex;
	width: 300px;
	height: 90px;
	position:absolute;
	top:-120px;
	background:black;
	padding: 20px 20px 0 16px;
	border-radius: 8px;
	border-bottom-right-radius: 0px;
	border-bottom-left-radius: 0px;
}
.dm {
	color: #CB0000;
	background: #100000;
	font-family: DotMatrix;
	border: 3px solid white;
	border-radius: 8px;
	padding: 8px 8px 5px 8px;
	box-sizing: border-box;
	display:flex;
	overflow:hidden;
	margin-bottom: 5px;
}
#userName {
	align-items:center;
	justify-content: center;
}
#flag {
	width: 100px;
	height: 90px;
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	margin-right:10px;
}
#userInfo {
	display:flex;
	flex-direction: column;
	width:190px;
}
#userName {
	font-size: 25px;
}
#userStats {
	max-width: 200px;
	white-space:pre;
}
/*#userStats>div {
	animation: scroll 5s infinite steps(70, end);
}*/
@keyframes scroll {
	from {
		transform: translateX(50%);
	}
	to {
		transform: translate(-110%);
	}
}
@keyframes credscroll {
	from {
		transform: translateX(20%);
	}
	to {
		transform: translate(-110%);
	}
}
#stuff {
	display:flex;
	flex-direction: column;
	align-items: center;
}
.dm#credits {
	border: 3px solid gray;
	max-width: 500px;
}
.dm#credits>div {
	white-space:pre;
	animation: credscroll 60s infinite steps(300, end);
}
@keyframes entrance {
	from {
		height: 0px;
		padding:0px;
	}
	to {
		height: 89px;
		padding: 15px 10px 10px 10px;
	}
}
body {
	overflow:hidden;
}
#spotifyMainContainer {
	height: calc(100vh - 10px);
}