544 lines
		
	
	
		
			7.7 KiB
		
	
	
	
		
			SCSS
		
	
	
	
	
	
			
		
		
	
	
			544 lines
		
	
	
		
			7.7 KiB
		
	
	
	
		
			SCSS
		
	
	
	
	
	
@charset "utf-8";
 | 
						|
 | 
						|
:root {
 | 
						|
	--baseContentWidth: 750px;
 | 
						|
	--radius: 8px;
 | 
						|
	--marginFull: 16px;
 | 
						|
	--marginHalf: 10px;
 | 
						|
 | 
						|
	--margin: var(--marginFull);
 | 
						|
 | 
						|
	@media (max-width: 500px) {
 | 
						|
		--margin: var(--marginHalf);
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
::selection {
 | 
						|
	color: #fff;
 | 
						|
	background-color: var(--accent);
 | 
						|
} 
 | 
						|
 | 
						|
html {
 | 
						|
	touch-action: manipulation;
 | 
						|
	background-color: var(--bg);
 | 
						|
	background-attachment: fixed;
 | 
						|
	background-size: cover;
 | 
						|
	background-position: center;
 | 
						|
	color: var(--fg);
 | 
						|
	overflow: auto;
 | 
						|
 | 
						|
	&, * {
 | 
						|
		scrollbar-color: var(--scrollbarHandle) var(--panel);
 | 
						|
		scrollbar-width: thin;
 | 
						|
 | 
						|
		&:hover {
 | 
						|
			scrollbar-color: var(--scrollbarHandleHover) var(--panel);
 | 
						|
		}
 | 
						|
 | 
						|
		&:active {
 | 
						|
			scrollbar-color: var(--accent) var(--panel);
 | 
						|
		}
 | 
						|
 | 
						|
		&::-webkit-scrollbar {
 | 
						|
			width: 6px;
 | 
						|
			height: 6px;
 | 
						|
		}
 | 
						|
 | 
						|
		&::-webkit-scrollbar-track {
 | 
						|
			background: var(--panel);
 | 
						|
		}
 | 
						|
 | 
						|
		&::-webkit-scrollbar-thumb {
 | 
						|
			background: var(--scrollbarHandle);
 | 
						|
 | 
						|
			&:hover {
 | 
						|
				background: var(--scrollbarHandleHover);
 | 
						|
			}
 | 
						|
 | 
						|
			&:active {
 | 
						|
				background: var(--accent);
 | 
						|
			}
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	&.f-small {
 | 
						|
		font-size: 0.9em;
 | 
						|
	}
 | 
						|
 | 
						|
	&.f-large {
 | 
						|
		font-size: 1.1em;
 | 
						|
	}
 | 
						|
 | 
						|
	&.f-veryLarge {
 | 
						|
		font-size: 1.2em;
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
html.changing-theme {
 | 
						|
	&, * {
 | 
						|
		transition: background 1s ease !important;
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
body {
 | 
						|
	overflow-wrap: break-word;
 | 
						|
}
 | 
						|
 | 
						|
html, body {
 | 
						|
	margin: 0;
 | 
						|
	padding: 0;
 | 
						|
	scroll-behavior: smooth;
 | 
						|
	text-size-adjust: 100%;
 | 
						|
	font-family: Roboto, HelveticaNeue, Arial, sans-serif;
 | 
						|
}
 | 
						|
 | 
						|
a {
 | 
						|
	text-decoration: none;
 | 
						|
	cursor: pointer;
 | 
						|
	color: inherit;
 | 
						|
	tap-highlight-color: transparent;
 | 
						|
	-webkit-tap-highlight-color: transparent;
 | 
						|
 | 
						|
	&:hover {
 | 
						|
		text-decoration: underline;
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
textarea, input {
 | 
						|
	tap-highlight-color: transparent;
 | 
						|
	-webkit-tap-highlight-color: transparent;
 | 
						|
}
 | 
						|
 | 
						|
optgroup, option {
 | 
						|
	background: var(--panel);
 | 
						|
	color: var(--fg);
 | 
						|
}
 | 
						|
 | 
						|
hr {
 | 
						|
	margin: var(--margin) 0 var(--margin) 0;
 | 
						|
	border: none;
 | 
						|
	height: 1px;
 | 
						|
	background: var(--divider);
 | 
						|
}
 | 
						|
 | 
						|
._noSelect {
 | 
						|
	user-select: none;
 | 
						|
	-webkit-user-select: none;
 | 
						|
	-webkit-touch-callout: none;
 | 
						|
}
 | 
						|
 | 
						|
._ghost {
 | 
						|
	&, * {
 | 
						|
		@extend ._noSelect;
 | 
						|
		pointer-events: none;
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
._modalBg {
 | 
						|
	position: fixed;
 | 
						|
	top: 0;
 | 
						|
	left: 0;
 | 
						|
	width: 100%;
 | 
						|
	height: 100%;
 | 
						|
	background: var(--modalBg);
 | 
						|
	backdrop-filter: var(--modalBgFilter);
 | 
						|
}
 | 
						|
 | 
						|
._shadow {
 | 
						|
	box-shadow: 0px 4px 32px var(--shadow) !important;
 | 
						|
}
 | 
						|
 | 
						|
._button {
 | 
						|
	appearance: none;
 | 
						|
	padding: 0;
 | 
						|
	margin: 0; // for Safari
 | 
						|
	background: none;
 | 
						|
	border: none;
 | 
						|
	cursor: pointer;
 | 
						|
	color: var(--fg);
 | 
						|
	touch-action: manipulation;
 | 
						|
	tap-highlight-color: transparent;
 | 
						|
	-webkit-tap-highlight-color: transparent;
 | 
						|
	font-size: 1em;
 | 
						|
 | 
						|
	&, * {
 | 
						|
		@extend ._noSelect;
 | 
						|
	}
 | 
						|
 | 
						|
	* {
 | 
						|
		pointer-events: none;
 | 
						|
	}
 | 
						|
 | 
						|
	&:focus {
 | 
						|
		outline: none;
 | 
						|
	}
 | 
						|
 | 
						|
	&:disabled {
 | 
						|
		opacity: 0.5;
 | 
						|
		cursor: default;
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
._buttonPrimary {
 | 
						|
	@extend ._button;
 | 
						|
	color: #fff;
 | 
						|
	background: var(--accent);
 | 
						|
 | 
						|
	&:not(:disabled):hover {
 | 
						|
		background: var(--X8);
 | 
						|
	}
 | 
						|
 | 
						|
	&:not(:disabled):active {
 | 
						|
		background: var(--X9);
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
._textButton {
 | 
						|
	@extend ._button;
 | 
						|
	color: var(--accent);
 | 
						|
 | 
						|
	&:not(:disabled):hover {
 | 
						|
		text-decoration: underline;
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
._inputs {
 | 
						|
	display: flex;
 | 
						|
	margin: 32px 0;
 | 
						|
 | 
						|
	&:first-child {
 | 
						|
		margin-top: 8px;
 | 
						|
	}
 | 
						|
 | 
						|
	&:last-child {
 | 
						|
		margin-bottom: 8px;
 | 
						|
	}
 | 
						|
 | 
						|
	> * {
 | 
						|
		flex: 1;
 | 
						|
		margin: 0 !important;
 | 
						|
 | 
						|
		&:not(:first-child) {
 | 
						|
			margin-left: 8px !important;
 | 
						|
		}
 | 
						|
 | 
						|
		&:not(:last-child) {
 | 
						|
			margin-right: 8px !important;
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
._panel {
 | 
						|
	//position: relative;
 | 
						|
	//z-index: 1;
 | 
						|
	background: var(--panel);
 | 
						|
	border-radius: var(--radius);
 | 
						|
	//border: var(--panelBorder);
 | 
						|
	box-shadow: var(--panelShadow);
 | 
						|
	overflow: hidden;
 | 
						|
}
 | 
						|
 | 
						|
._card {
 | 
						|
	@extend ._panel;
 | 
						|
 | 
						|
	> ._title {
 | 
						|
		margin: 0;
 | 
						|
		padding: 22px 32px;
 | 
						|
		font-size: 1.1em;
 | 
						|
		border-bottom: solid 1px var(--panelHeaderDivider);
 | 
						|
		font-weight: bold;
 | 
						|
		background: var(--panelHeaderBg);
 | 
						|
		color: var(--panelHeaderFg);
 | 
						|
 | 
						|
		@media (max-width: 500px) {
 | 
						|
			padding: 16px;
 | 
						|
			font-size: 1em;
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	> ._content {
 | 
						|
		padding: 32px;
 | 
						|
 | 
						|
		@media (max-width: 500px) {
 | 
						|
			padding: 16px;
 | 
						|
		}
 | 
						|
 | 
						|
		&._noPad {
 | 
						|
			padding: 0 !important;
 | 
						|
		}
 | 
						|
 | 
						|
		& + ._content {
 | 
						|
			border-top: solid 1px var(--divider);
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	> ._footer {
 | 
						|
		border-top: solid 1px var(--divider);
 | 
						|
		padding: 24px 32px;
 | 
						|
 | 
						|
		@media (max-width: 500px) {
 | 
						|
			padding: 16px;
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
._close_ ._list_ > * {
 | 
						|
	border: none;
 | 
						|
	border-bottom: solid 1px var(--divider);
 | 
						|
	border-radius: 0;
 | 
						|
	box-shadow: none;
 | 
						|
	margin: 0 !important;
 | 
						|
}
 | 
						|
 | 
						|
._loadMore {
 | 
						|
	@extend ._panel;
 | 
						|
	@extend ._button;
 | 
						|
	width: 100%;
 | 
						|
	padding: 12px 0;
 | 
						|
}
 | 
						|
 | 
						|
._popup {
 | 
						|
	background: var(--panel);
 | 
						|
	border-radius: var(--radius);
 | 
						|
}
 | 
						|
 | 
						|
._section {
 | 
						|
	padding: var(--section-padding, 32px);
 | 
						|
 | 
						|
	&:empty {
 | 
						|
		display: none;
 | 
						|
	}
 | 
						|
 | 
						|
	&:not(:empty) + ._section {
 | 
						|
		border-top: solid 1px var(--divider);
 | 
						|
	}
 | 
						|
 | 
						|
	@media (max-width: 500px) {
 | 
						|
		padding: var(--section-padding, 10px);
 | 
						|
 | 
						|
		> ._title {
 | 
						|
			font-size: 1.1em;
 | 
						|
			font-weight: bold;
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	> ._title,
 | 
						|
	> ._content {
 | 
						|
		box-sizing: border-box;
 | 
						|
		max-width: var(--baseContentWidth);
 | 
						|
		margin: 0 auto;
 | 
						|
	}
 | 
						|
 | 
						|
	> ._title {
 | 
						|
		margin-bottom: 24px;
 | 
						|
		font-size: 1.25em;
 | 
						|
		font-weight: bold;
 | 
						|
	}
 | 
						|
 | 
						|
	&._fitBottom {
 | 
						|
		padding-bottom: 0;
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
._narrow_ ._section {
 | 
						|
	> ._title {
 | 
						|
		padding: 8px;
 | 
						|
		font-size: 1em;
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
._narrow_ ._card {
 | 
						|
	> ._title {
 | 
						|
		padding: 16px;
 | 
						|
		font-size: 1em;
 | 
						|
	}
 | 
						|
 | 
						|
	> ._content {
 | 
						|
		padding: 16px;
 | 
						|
	}
 | 
						|
 | 
						|
	> ._footer {
 | 
						|
		padding: 16px;
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
._acrylic {
 | 
						|
	background: var(--acrylicPanel);
 | 
						|
	-webkit-backdrop-filter: blur(10px);
 | 
						|
	backdrop-filter: blur(10px);
 | 
						|
}
 | 
						|
 | 
						|
._vMargin {
 | 
						|
	& + ._vMargin {
 | 
						|
		margin-top: var(--margin);
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
._table {
 | 
						|
	> ._row {
 | 
						|
		display: flex;
 | 
						|
 | 
						|
		&:not(:last-child) {
 | 
						|
			margin-bottom: 16px;
 | 
						|
 | 
						|
			@media (max-width: 500px) {
 | 
						|
				margin-bottom: 8px;
 | 
						|
			}
 | 
						|
		}
 | 
						|
 | 
						|
		> ._cell {
 | 
						|
			flex: 1;
 | 
						|
 | 
						|
			> ._label {
 | 
						|
				font-size: 80%;
 | 
						|
				opacity: 0.7;
 | 
						|
 | 
						|
				> ._icon {
 | 
						|
					margin-right: 4px;
 | 
						|
					display: none;
 | 
						|
				}
 | 
						|
			}
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
._fullinfo {
 | 
						|
	padding: 64px 32px;
 | 
						|
	text-align: center;
 | 
						|
 | 
						|
	> img {
 | 
						|
		vertical-align: bottom;
 | 
						|
		height: 128px;
 | 
						|
		margin-bottom: 16px;
 | 
						|
		border-radius: 16px;
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
._keyValue {
 | 
						|
	display: flex;
 | 
						|
 | 
						|
	> * {
 | 
						|
		flex: 1;
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
._link {
 | 
						|
	color: var(--link);
 | 
						|
}
 | 
						|
 | 
						|
._caption {
 | 
						|
	font-size: 0.8em;
 | 
						|
	opacity: 0.7;
 | 
						|
}
 | 
						|
 | 
						|
._code {
 | 
						|
	background: #2d2d2d;
 | 
						|
	color: #ccc;
 | 
						|
	font-family: Fira code, Fira Mono, Consolas, Menlo, Courier, monospace;
 | 
						|
	font-size: 14px;
 | 
						|
	line-height: 1.5;
 | 
						|
	padding: 5px;
 | 
						|
}
 | 
						|
 | 
						|
.prism-editor__textarea:focus {
 | 
						|
	outline: none;
 | 
						|
}
 | 
						|
 | 
						|
.zoom-enter-active, .zoom-leave-active {
 | 
						|
	transition: opacity 0.5s, transform 0.5s !important;
 | 
						|
}
 | 
						|
.zoom-enter-from, .zoom-leave-to {
 | 
						|
	opacity: 0;
 | 
						|
	transform: scale(0.9);
 | 
						|
}
 | 
						|
 | 
						|
.zoom-in-top-enter-active,
 | 
						|
.zoom-in-top-leave-active {
 | 
						|
	opacity: 1;
 | 
						|
	transform: scaleY(1);
 | 
						|
	transition: transform 300ms cubic-bezier(0.23, 1, 0.32, 1), opacity 300ms cubic-bezier(0.23, 1, 0.32, 1);
 | 
						|
	transform-origin: center top;
 | 
						|
}
 | 
						|
.zoom-in-top-enter-from,
 | 
						|
.zoom-in-top-leave-active {
 | 
						|
	opacity: 0;
 | 
						|
	transform: scaleY(0);
 | 
						|
}
 | 
						|
 | 
						|
@keyframes blink {
 | 
						|
	0% { opacity: 1; transform: scale(1); }
 | 
						|
	30% { opacity: 1; transform: scale(1); }
 | 
						|
	90% { opacity: 0; transform: scale(0.5); }
 | 
						|
}
 | 
						|
 | 
						|
@keyframes anime-spin {
 | 
						|
	0% { transform: rotate(0deg); }
 | 
						|
	100% { transform: rotate(360deg); }
 | 
						|
}
 | 
						|
 | 
						|
@keyframes anime-jump {
 | 
						|
	0% { transform: translateY(0); }
 | 
						|
	25% { transform: translateY(-16px); }
 | 
						|
	50% { transform: translateY(0); }
 | 
						|
	75% { transform: translateY(-8px); }
 | 
						|
	100% { transform: translateY(0); }
 | 
						|
}
 | 
						|
 | 
						|
@keyframes anime-tada {
 | 
						|
	from {
 | 
						|
		transform: scale3d(1, 1, 1);
 | 
						|
	}
 | 
						|
 | 
						|
	10%,
 | 
						|
	20% {
 | 
						|
		transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
 | 
						|
	}
 | 
						|
 | 
						|
	30%,
 | 
						|
	50%,
 | 
						|
	70%,
 | 
						|
	90% {
 | 
						|
		transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
 | 
						|
	}
 | 
						|
 | 
						|
	40%,
 | 
						|
	60%,
 | 
						|
	80% {
 | 
						|
		transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
 | 
						|
	}
 | 
						|
 | 
						|
	to {
 | 
						|
		transform: scale3d(1, 1, 1);
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
@keyframes anime-rubberBand {
 | 
						|
  from {
 | 
						|
    transform: scale3d(1, 1, 1);
 | 
						|
  }
 | 
						|
 | 
						|
  30% {
 | 
						|
    transform: scale3d(1.25, 0.75, 1);
 | 
						|
  }
 | 
						|
 | 
						|
  40% {
 | 
						|
    transform: scale3d(0.75, 1.25, 1);
 | 
						|
  }
 | 
						|
 | 
						|
  50% {
 | 
						|
    transform: scale3d(1.15, 0.85, 1);
 | 
						|
  }
 | 
						|
 | 
						|
  65% {
 | 
						|
    transform: scale3d(0.95, 1.05, 1);
 | 
						|
  }
 | 
						|
 | 
						|
  75% {
 | 
						|
    transform: scale3d(1.05, 0.95, 1);
 | 
						|
  }
 | 
						|
 | 
						|
  to {
 | 
						|
    transform: scale3d(1, 1, 1);
 | 
						|
  }
 | 
						|
}
 |