@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@100;200;300;400;500;600;700;800;900&display=swap');


.svg-icon {
	pointer-events: none;
	fill: currentColor;
	height: 24px;
	width: 24px
}

.world[data-v-219749ac] {
	display: flex;
	align-items: center;
	margin-bottom: .5rem;
	padding-left: .8rem
}

.world .world__name[data-v-219749ac] {
	word-break: break-word;
	overflow-wrap: break-word
}

.world .world__maps[data-v-219749ac] {
	display: flex;
	flex: 0 0 auto;
	flex-wrap: wrap;
	max-width: 11.1rem;
	align-items: center;
	margin-left: auto;
	padding-left: 1rem;
	padding-right: .2rem;
	list-style: none;
	margin-right: -.5rem
}

.map[data-v-219749ac] {
	width: 3.2rem;
	height: 3.2rem;
	margin-right: .5rem
}

.map .svg-icon[data-v-219749ac],
.map img[data-v-219749ac] {
	position: absolute;
	top: .2rem !important;
	right: .2rem !important;
	bottom: .2rem !important;
	left: .2rem !important;
	width: calc(100% - .4rem) !important;
	height: auto !important
}

#map-context-menu[data-v-074fda55] {
	position: fixed;
	z-index: 150;
	min-width: 15rem;
	max-width: 22.5rem;
	top: 0;
	left: 0
}

#map-context-menu ul[data-v-074fda55] {
	background-color: var(--background-base);
	box-shadow: var(--box-shadow);
	color: var(--text-base);
	border-radius: var(--border-radius);
	padding: .5rem;
	position: relative;
	z-index: 1
}

#map-context-menu[data-v-074fda55] .world {
	padding: .2rem 0 .2rem .8rem;
	margin-bottom: 0
}

#map-context-menu[data-v-074fda55] .world li {
	width: 2.8rem;
	height: 2.8rem
}

@media screen and (max-width: 767px) {
	#map-context-menu[data-v-074fda55] {
		bottom: .5rem;
		top: auto;
		left: 0;
		right: 0;
		margin: auto;
		width: 90vw;
		max-width: 40rem;
		overflow: auto;
		transform: none !important
	}

	#map-context-menu[data-v-074fda55]:before {
		content: "";
		position: fixed;
		top: auto;
		right: 0;
		bottom: 0;
		left: 0;
		display: block;
		height: 40rem;
		background-image: linear-gradient(0deg, var(--background-dark), transparent);
		z-index: -1
	}
}

/*!
*/
.map[data-v-d68e1578] {
	width: 100%;
	height: 100%;
	background: transparent;
	z-index: 0;
	cursor: default;
	box-sizing: border-box;
	position: relative
}

.map[data-v-d68e1578]:focus:before {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	border: .2rem solid var(--outline-focus);
	display: block;
	z-index: 2000;
	pointer-events: none
}

.map[data-v-d68e1578]:focus:not(:focus-visible):before {
	content: none
}

.sidebar__section.following[data-v-20ac0cac] {
	margin-top: auto;
	flex: 0 0 auto;
	position: sticky;
	bottom: .2rem;
	z-index: 3
}

.sidebar__section.following .following__target[data-v-20ac0cac] {
	display: grid;
	grid-template-columns: min-content 1fr;
	grid-template-rows: 1fr min-content min-content min-content 1fr;
	grid-template-areas: "icon .""icon name""icon status""icon location""icon .";
	grid-auto-flow: column;
	align-items: center
}

.sidebar__section.following .following__target .target__unfollow[data-v-20ac0cac] {
	position: absolute;
	top: 1.5rem;
	right: 1rem;
	width: 2.5rem;
	height: 2.5rem
}

.sidebar__section.following .following__target .target__unfollow[data-v-20ac0cac]:before {
	content: "";
	position: absolute;
	display: block;
	top: -1rem;
	right: -1rem;
	bottom: -1rem;
	left: -1rem
}

.sidebar__section.following .following__target .target__icon[data-v-20ac0cac] {
	margin-right: 2rem;
	grid-area: icon
}

.sidebar__section.following .following__target .target__name[data-v-20ac0cac] {
	grid-area: name
}

.sidebar__section.following .following__target .target__status[data-v-20ac0cac] {
	grid-area: status;
	font-size: 1.3rem
}

.sidebar__section.following .following__target .target__location[data-v-20ac0cac] {
	grid-area: location;
	font-family: monospace;
	cursor: pointer
}

.sidebar__section.following .following__target.following__target--hidden .target__icon[data-v-20ac0cac] {
	filter: grayscale(1);
	opacity: .5
}

.sidebar__section.following .following__target>*[data-v-20ac0cac] {
	text-overflow: ellipsis;
	white-space: nowrap;
	overflow: hidden
}

@media (max-width: 480px),
(max-height: 480px) {
	.sidebar__section.following[data-v-20ac0cac] {
		margin-top: 0
	}
}

/*!
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
.sidebar__section {
	background-color: var(--background-base);
	color: var(--text-base);
	border-radius: var(--border-radius);
	box-shadow: var(--box-shadow);
	display: flex;
	flex-direction: column;
	padding: 1.5rem;
	position: relative
}

.sidebar__section {
	margin-bottom: var(--ui-element-spacing);
	box-sizing: border-box;
	width: 100%;
	max-width: 26rem;
	flex: 0 0 auto
}

.sidebar__section[hidden] {
	display: none
}

.sidebar__section .section__heading {
	cursor: pointer;
	user-select: none;
	text-align: left;
	align-items: center;
	position: sticky;
	top: -.2rem;
	background-color: inherit;
	z-index: 3;
	border-radius: inherit;
	margin: -1.5rem -1.5rem 0;
	white-space: nowrap;
	text-overflow: ellipsis;
	overflow: hidden
}

.sidebar__section .section__heading,
.sidebar__section .section__heading button {
	padding: 1.5rem
}

.sidebar__section .section__heading button {
	text-overflow: ellipsis;
	overflow: hidden;
	display: flex;
	font-size: 2rem;
	background-color: transparent;
	font-weight: 400;
	color: inherit;
	width: calc(100% + 3rem);
	align-items: center;
	text-shadow: var(--text-shadow);
	margin: -1.5rem
}

.sidebar__section .section__heading button .svg-icon {
	margin-left: auto;
	width: 1.5rem;
	height: 1.5rem
}

.sidebar__section .section__heading:hover,
.sidebar__section .section__heading:focus-visible,
.sidebar__section .section__heading.focus-visible,
.sidebar__section .section__heading:active {
	background-color: inherit
}

.sidebar__section .section__content {
	padding: 0 .5rem;
	margin: 0 -.5rem 1rem;
	min-width: 0;
	position: relative
}

.sidebar__section .section__content:last-child {
	margin-bottom: 0
}

.sidebar__section .section__search {
	margin-bottom: 1.5rem;
	padding: .5rem 1rem;
	box-sizing: border-box;
	width: 100%;
	position: sticky;
	top: 4.8rem;
	z-index: 3;
	box-shadow: 0 1.5rem .5em var(--background-base)
}

.sidebar__section .section__search+.section__skeleton {
	margin-top: 0
}

.sidebar__section .section__skeleton {
	font-style: italic;
	color: var(--text-disabled);
	text-align: center;
	align-self: center;
	margin-top: 1rem
}

.sidebar__section.section--collapsible .section__heading .svg-icon {
	transform: rotate(180deg)
}

.sidebar__section.section--collapsible.section--collapsed .section__heading .svg-icon {
	transform: none
}

.sidebar__section.section--collapsible.section--collapsed .section__heading,
.sidebar__section.section--collapsible.section--collapsed .section__heading button {
	margin-bottom: -1.5rem
}

.sidebar__section.section--collapsible.section--collapsed .section__content {
	display: none
}

@media (max-width: 320px) {
	.sidebar__section {
		box-sizing: border-box;
		width: 100%
	}
}

.player[data-v-1f77067f] {
	display: flex !important;
	align-items: center
}

.player .player__icon[data-v-1f77067f] {
	position: relative;
	pointer-events: none;
	z-index: 2;
	padding-right: 1.5rem
}

.player.player--hidden:not(:hover) .player__name[data-v-1f77067f],
.player.player--other-world:not(:hover) .player__name[data-v-1f77067f] {
	opacity: .5
}

.player.player--hidden .player__icon[data-v-1f77067f] {
	filter: grayscale(1)
}

.player:hover .player__name[data-v-1f77067f] span,
.player:focus .player__name[data-v-1f77067f] span,
.player:active .player__name[data-v-1f77067f] span {
	color: inherit !important
}

/*!
* Copyright 2022 James Lyne
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
fieldset {
	appearance: none;
	border: none;
	margin: 0;
	padding: 0
}

[data-v-4f945470] .menu {
	scroll-margin-top: 8.2rem
}

input[type=radio]+.marker[data-v-3a029710] {
	padding-left: 3.9rem
}

input[type=radio]+.marker .marker__icon[data-v-3a029710] {
	max-width: 1.6rem;
	position: absolute;
	top: 0;
	left: .8rem;
	bottom: 0;
	margin: auto
}

input[type=radio]+.marker .marker__location[data-v-3a029710] {
	font-size: 1.4rem;
	font-family: monospace
}

.markers__back[data-v-1a038d7e] {
	width: 3.2rem;
	height: 3.2rem;
	flex-grow: 0;
	margin-right: 1rem;
	transform: rotate(90deg)
}

.markers__header[data-v-1a038d7e] {
	display: flex;
	align-items: center;
	padding-bottom: 1rem;
	position: sticky;
	top: 4.8rem;
	background-color: var(--background-base);
	z-index: 3
}

.markers__set[data-v-1a038d7e] {
	flex: 1 1 auto;
	min-width: 0;
	white-space: nowrap;
	text-overflow: ellipsis;
	overflow: hidden;
	margin: 0
}

[data-v-c7f0f58c] .menu,
[data-v-c7f0f58c] .menu input {
	scroll-margin-top: 14.4rem;
	scroll-margin-bottom: 6.5rem
}

[data-v-c7f0f58c] .section__search {
	top: 9rem
}

.sidebar {
	position: fixed;
	z-index: 110;
	top: 0;
	right: 0;
	bottom: 0;
	display: flex;
	flex-direction: column;
	padding: var(--ui-element-spacing);
	font-size: 1.5rem;
	will-change: transform;
	pointer-events: none
}

.sidebar ul,
.sidebar ol,
.sidebar li {
	padding: 0;
	list-style: none;
	margin: 0
}

.sidebar .sidebar__buttons {
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: flex-end;
	margin-bottom: var(--ui-element-spacing);
	pointer-events: auto;
	align-self: flex-end
}

.sidebar .sidebar__buttons button {
	width: var(--ui-button-size);
	height: var(--ui-button-size);
	box-shadow: var(--box-shadow)
}

.sidebar .sidebar__buttons button+button {
	margin-left: var(--ui-element-spacing)
}

@media (max-width: 480px) {
	.sidebar .sidebar__buttons {
		flex-direction: column;
		align-items: flex-end;
		margin: 0;
		position: absolute;
		right: var(--ui-element-spacing);
		top: var(--ui-element-spacing)
	}

	.sidebar .sidebar__buttons button+button {
		margin-left: 0;
		margin-top: var(--ui-element-spacing)
	}
}

.sidebar .sidebar__content {
	position: relative;
	display: flex;
	flex-direction: column;
	flex-shrink: 1;
	min-height: 0;
	overflow: auto;
	pointer-events: auto;
	margin-right: -.5rem;
	padding: .2rem .5rem 0 .2rem;
	width: 26rem;
	align-items: flex-end;
	overscroll-behavior: contain;
	will-change: transform
}

.sidebar .sidebar__content:not(:hover):not(:focus-within) {
	scrollbar-color: var(--background-base) transparent
}

.sidebar .sidebar__content:not(:hover):not(:focus-within)::-webkit-scrollbar-thumb {
	background-color: var(--background-base)
}

@media (max-width: 480px) {
	.sidebar {
		padding-right: 7rem;
		padding-top: .8rem
	}
}

@media (max-width: 400px) {
	.sidebar {
		padding-right: 6.5rem;
		padding-top: .3rem;
		padding-bottom: .3rem
	}
}

@media print {
	.sidebar {
		display: none
	}
}

.message .message__face {
	display: inline-block;
	vertical-align: baseline;
	margin-right: .5rem
}

.message .message__channel,
.message .message__sender {
	margin-right: .5rem;
	word-wrap: break-word
}

.message .message__channel:not(:empty):before {
	content: "["
}

.message .message__channel:not(:empty):after {
	content: "]"
}

.message .message__sender:not(:empty):after {
	content: ": "
}

.message .message__content {
	word-wrap: break-word
}

.message.message--playerjoin,
.message.message--playerleave {
	font-style: italic
}

@media (max-width: 320px) {
	.message.message--chat .message__sender:after {
		content: none
	}

	.message.message--chat .message__content {
		display: block;
		color: var(--text-emphasis)
	}
}

/*!
* Copyright 2022 James Lyne
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
.chat {
	background-color: var(--background-base);
	color: var(--text-base);
	border-radius: var(--border-radius);
	box-shadow: var(--box-shadow);
	display: flex;
	flex-direction: column;
	padding: 1.5rem;
	position: relative
}

.chat {
	position: absolute;
	bottom: calc(var(--ui-element-spacing) * 2 + var(--ui-button-size));
	left: calc(var(--ui-element-spacing) * 2 + var(--ui-button-size));
	width: 50rem;
	max-width: calc(100% - 8rem);
	max-height: 20rem;
	display: flex;
	box-sizing: border-box
}

.chat .chat__messages {
	display: flex;
	flex-direction: column-reverse;
	list-style: none;
	overflow: auto;
	margin: 0;
	padding: 0
}

.chat .chat__messages .message {
	font-size: 1.6rem;
	line-height: 1.9rem
}

.chat .chat__messages .message+.message {
	margin-bottom: .5rem
}

.chat .chat__messages .message.message--skeleton {
	font-style: italic;
	color: var(--text-subtle)
}

.chat .chat__form {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	margin: 1.5rem -1.5rem -1.5rem
}

.chat .chat__form .chat__input {
	border-bottom-left-radius: var(--border-radius);
	flex-grow: 1
}

.chat .chat__form .chat__send {
	padding-left: 1rem;
	padding-right: 1rem;
	border-radius: 0 0 var(--border-radius) 0
}

.chat .chat__form .chat__error {
	background-color: var(--background-error);
	color: var(--text-emphasis);
	font-size: 1.6rem;
	padding: .5rem 1rem;
	line-height: 2rem;
	width: 100%
}

.chat .chat__login {
	font-size: 1.6rem;
	padding: 1.2rem;
	background-color: var(--background-light);
	color: var(--text-subtle);
	margin: 1.5rem -1.5rem -1.5rem;
	text-align: left;
	border-top-left-radius: 0;
	border-top-right-radius: 0
}

@media (max-width: 400px),
(max-height: 480px) {
	.chat {
		max-width: calc(100% - 7rem)
	}
}

@media (max-width: 320px) {
	.chat .chat__messages .message+.message {
		margin-bottom: .7rem
	}
}

p[data-v-be3a4872] {
	white-space: pre-line
}

/*!
* Copyright 2022 James Lyne
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
.modal .modal__header,
.modal .modal__content {
	background-color: var(--background-base);
	color: var(--text-base);
	border-radius: var(--border-radius);
	box-shadow: var(--box-shadow);
	display: flex;
	flex-direction: column;
	padding: 1.5rem;
	position: relative
}

.modal {
	position: fixed;
	z-index: 120;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	display: none;
	align-items: center;
	flex-direction: column;
	justify-content: flex-start;
	padding: 10vh 1rem;
	overflow: auto;
	pointer-events: none;
	cursor: default
}

.modal.modal--backdrop {
	pointer-events: auto;
	background-color: #000c
}

.modal.modal--visible {
	display: flex
}

.modal .modal__header,
.modal .modal__content {
	max-width: 80rem;
	box-sizing: border-box;
	width: 100%;
	padding: 2rem;
	pointer-events: auto
}

.modal .modal__header {
	border-bottom-left-radius: 0;
	border-bottom-right-radius: 0;
	position: relative;
	padding: 2rem 3rem 0;
	text-align: center
}

.modal .modal__close {
	position: absolute;
	top: 0;
	right: 0;
	padding: 1rem;
	width: 3.5rem;
	height: 3.5rem;
	display: block;
	border-top-left-radius: 0;
	border-bottom-right-radius: 0
}

.modal .modal__close .svg-icon {
	width: 1.5rem !important;
	height: 1.5rem !important
}

.modal .modal__content {
	border-top-left-radius: 0;
	border-top-right-radius: 0
}

#modal--login[data-v-9c90fcb6] .modal__content {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	align-items: flex-start;
	justify-content: space-between
}

#modal--login #login__error[data-v-9c90fcb6] {
	width: 100%;
	text-align: center;
	margin-bottom: 2rem
}

#modal--login .form[data-v-9c90fcb6] {
	width: calc(50% - 1.5rem);
	box-sizing: border-box
}

@media (max-width: 600px) {
	#modal--login[data-v-9c90fcb6] {
		flex-direction: column
	}

	#modal--login .form[data-v-9c90fcb6] {
		width: 100%
	}
}

/*! modern-normalize v1.1.0 | MIT License | https://github.com/sindresorhus/modern-normalize */
html {
	-moz-tab-size: 4;
	tab-size: 4
}

html {
	line-height: 1.15;
	-webkit-text-size-adjust: 100%
}

body {
	margin: 0
}

hr {
	height: 0;
	color: inherit
}

abbr[title] {
	text-decoration: underline dotted
}

b,
strong {
	font-weight: bolder
}

code,
kbd,
samp,
pre {
	font-family: ui-monospace, SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace;
	font-size: 1em
}

small {
	font-size: 80%
}

sub,
sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline
}

sub {
	bottom: -.25em
}

sup {
	top: -.5em
}

table {
	text-indent: 0;
	border-color: inherit
}

button,
input,
optgroup,
select,
textarea {
	font-family: inherit;
	font-size: 100%;
	line-height: 1.15;
	margin: 0
}

button,
select {
	text-transform: none
}

button,
[type=button],
[type=reset],
[type=submit] {
	-webkit-appearance: button
}

::-moz-focus-inner {
	border-style: none;
	padding: 0
}

:-moz-focusring {
	outline: 1px dotted ButtonText
}

:-moz-ui-invalid {
	box-shadow: none
}

legend {
	padding: 0
}

progress {
	vertical-align: baseline
}

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
	height: auto
}

[type=search] {
	-webkit-appearance: textfield;
	outline-offset: -2px
}

::-webkit-search-decoration {
	-webkit-appearance: none
}

::-webkit-file-upload-button {
	-webkit-appearance: button;
	font: inherit
}

summary {
	display: list-item
}

.leaflet-pane,
.leaflet-tile,
.leaflet-marker-icon,
.leaflet-marker-shadow,
.leaflet-tile-container,
.leaflet-pane>svg,
.leaflet-pane>canvas,
.leaflet-zoom-box,
.leaflet-image-layer,
.leaflet-layer {
	position: absolute;
	left: 0;
	top: 0
}

.leaflet-container {
	overflow: hidden
}

.leaflet-tile,
.leaflet-marker-icon,
.leaflet-marker-shadow {
	user-select: none
}

/*!* Safari renders non-retina tile on retina better with this, but Chrome is worse *!
.leaflet-safari .leaflet-tile {
	image-rendering: -webkit-optimize-contrast;
	}
/*!* hack that prevents hw layers "stretching" when loading new tiles *!
.leaflet-safari .leaflet-tile-container {
	width: 1600px;
	height: 1600px;
	-webkit-transform-origin: 0 0;
/*	}*/
.leaflet-marker-icon,
.leaflet-marker-shadow {
	display: block
}

.leaflet-container .leaflet-overlay-pane svg {
	max-width: none !important;
	max-height: none !important
}

.leaflet-container .leaflet-marker-pane img,
.leaflet-container .leaflet-shadow-pane img,
.leaflet-container .leaflet-tile-pane img,
.leaflet-container img.leaflet-image-layer,
.leaflet-container .leaflet-tile {
	max-width: none !important;
	max-height: none !important;
	width: auto;
	padding: 0
}

.leaflet-container.leaflet-touch-zoom {
	touch-action: pan-x pan-y
}

.leaflet-container.leaflet-touch-drag {
	touch-action: none;
	touch-action: pinch-zoom
}

.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom {
	touch-action: none
}

.leaflet-container {
	-webkit-tap-highlight-color: transparent
}

.leaflet-tile {
	filter: inherit;
	visibility: hidden
}

.leaflet-tile-loaded {
	visibility: inherit
}

.leaflet-zoom-box {
	width: 0;
	height: 0;
	box-sizing: border-box;
	z-index: 800
}

.leaflet-pane {
	z-index: 400
}

.leaflet-tile-pane {
	z-index: 200
}

.leaflet-overlay-pane {
	z-index: 400
}

.leaflet-shadow-pane {
	z-index: 500
}

.leaflet-marker-pane {
	z-index: 600
}

.leaflet-tooltip-pane {
	z-index: 650
}

.leaflet-popup-pane {
	z-index: 700
}

.leaflet-map-pane canvas {
	z-index: 100
}

.leaflet-map-pane svg {
	z-index: 200
}

.leaflet-control {
	position: relative;
	z-index: 800;
	pointer-events: auto
}

.leaflet-top,
.leaflet-bottom {
	position: absolute;
	z-index: 1000;
	pointer-events: none
}

.leaflet-top {
	top: 0
}

.leaflet-right {
	right: 0
}

.leaflet-bottom {
	bottom: 0
}

.leaflet-left {
	left: 0
}

.leaflet-fade-anim .leaflet-popup {
	opacity: 0;
	transition: opacity .2s linear
}

.leaflet-fade-anim .leaflet-map-pane .leaflet-popup {
	opacity: 1
}

.leaflet-zoom-animated {
	transform-origin: 0 0
}

.leaflet-zoom-anim .leaflet-zoom-animated {
	transition: transform .25s cubic-bezier(0, 0, .25, 1)
}

.leaflet-zoom-anim .leaflet-tile,
.leaflet-pan-anim .leaflet-tile {
	transition: none
}

.leaflet-zoom-anim .leaflet-zoom-hide {
	visibility: hidden
}

.leaflet-interactive {
	cursor: pointer
}

.leaflet-grab {
	cursor: grab
}

.leaflet-crosshair,
.leaflet-crosshair .leaflet-interactive {
	cursor: crosshair
}

.leaflet-popup-pane,
.leaflet-control {
	cursor: auto
}

.leaflet-dragging .leaflet-grab,
.leaflet-dragging .leaflet-grab .leaflet-interactive {
	cursor: move;
	cursor: grabbing
}

.leaflet-marker-icon,
.leaflet-marker-shadow,
.leaflet-image-layer,
.leaflet-pane>svg path,
.leaflet-tile-container {
	pointer-events: none
}

.leaflet-marker-icon.leaflet-interactive,
.leaflet-image-layer.leaflet-interactive,
.leaflet-pane>svg path.leaflet-interactive,
svg.leaflet-image-layer.leaflet-interactive path {
	pointer-events: auto
}

.leaflet-bar a {
	display: block;
	text-align: center;
	text-decoration: none
}

.leaflet-control-zoom-in,
.leaflet-control-zoom-out {
	font: 700 18px Lucida Console, Monaco, monospace;
	text-indent: 1px
}

.leaflet-touch .leaflet-control-zoom-in,
.leaflet-touch .leaflet-control-zoom-out {
	font-size: 22px
}

.leaflet-popup {
	position: absolute;
	text-align: center;
	margin-bottom: 20px
}

.leaflet-popup-content-wrapper {
	padding: 1px;
	text-align: left
}

.leaflet-popup-content {
	line-height: 1.3;
	font-size: 13px;
	font-size: 1.08333em;
	min-height: 1px
}

.leaflet-popup-content p {
	margin: 1.3em 0
}

.leaflet-popup-tip-container {
	width: 40px;
	height: 20px;
	position: absolute;
	left: 50%;
	margin-top: -1px;
	margin-left: -20px;
	overflow: hidden;
	pointer-events: none
}

.leaflet-popup-tip {
	width: 17px;
	height: 17px;
	padding: 1px;
	margin: -10px auto 0;
	pointer-events: auto;
	transform: rotate(45deg)
}

.leaflet-container a.leaflet-popup-close-button {
	position: absolute;
	top: 0;
	right: 0;
	border: none;
	font: 16px/24px Tahoma, Verdana, sans-serif;
	color: #757575;
	text-decoration: none
}

.leaflet-container a.leaflet-popup-close-button:hover,
.leaflet-container a.leaflet-popup-close-button:focus {
	color: #585858
}

.leaflet-popup-scrolled {
	overflow: auto
}

.leaflet-div-icon {
	background: #fff;
	border: 1px solid #666
}

.leaflet-tooltip {
	position: absolute;
	padding: 6px;
	white-space: nowrap;
	user-select: none;
	pointer-events: none
}

.leaflet-tooltip.leaflet-interactive {
	cursor: pointer;
	pointer-events: auto
}

.leaflet-tooltip-bottom {
	margin-top: 6px
}

.leaflet-tooltip-top {
	margin-top: -6px
}

.leaflet-tooltip-left {
	margin-left: -6px
}

.leaflet-tooltip-right {
	margin-left: 6px
}

@media print {
	.leaflet-control {
		-webkit-print-color-adjust: exact;
		print-color-adjust: exact
	}
}

/*!
 * Copyright 2022 James Lyne
 *
 * Some portions of this file were taken from https://github.com/webbukkit/dynmap.
 * These portions are Copyright 2020 Dynmap Contributors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
button,
[type=button],
.leaflet-control-button,
.leaflet-control-layers-toggle,
.leaflet-control-logo,
.leaflet-bar a,
.leaflet-control a,
.leaflet-control button {
	appearance: none;
	box-shadow: none;
	background-color: var(--background-base);
	color: var(--text-base);
	border-radius: var(--border-radius);
	border: none;
	cursor: pointer;
	display: block;
	text-align: center;
	position: relative;
	transition: color .2s ease-in, background-color .2s ease-in;
	font-size: 1.6rem;
	font-family: Raleway, sans-serif;
	box-sizing: border-box;
	text-shadow: var(--text-shadow);
	user-select: none;
	padding: .8rem .8rem .7rem;
	line-height: 2rem;
	-webkit-tap-highlight-color: transparent
}

button .svg-icon,
[type=button] .svg-icon,
.leaflet-control-button .svg-icon,
.leaflet-control-layers-toggle .svg-icon,
.leaflet-control-logo .svg-icon,
.leaflet-bar a .svg-icon,
.leaflet-control a .svg-icon {
	display: inline-block;
	max-width: 3rem;
	max-height: 3rem;
	pointer-events: none
}

button .svg-icon:only-child,
[type=button] .svg-icon:only-child,
.leaflet-control-button .svg-icon:only-child,
.leaflet-control-layers-toggle .svg-icon:only-child,
.leaflet-control-logo .svg-icon:only-child,
.leaflet-bar a .svg-icon:only-child,
.leaflet-control a .svg-icon:only-child {
	position: absolute;
	width: calc(100% - 1.6rem);
	height: calc(100% - 1.6rem);
	min-width: 1.5rem;
	min-height: 1.5rem;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	margin: auto
}

button>span,
[type=button]>span,
.leaflet-control-button>span,
.leaflet-control-layers-toggle>span,
.leaflet-control-logo>span,
.leaflet-bar a>span,
.leaflet-control a>span,
.leaflet-control button>span {
	display: block;
	text-overflow: inherit;
	overflow: inherit;
	white-space: inherit
}

button:hover,
[type=button]:hover,
.leaflet-control-button:hover,
.leaflet-control-layers-toggle:hover,
.leaflet-control-logo:hover,
.leaflet-bar a:hover,
.leaflet-control a:hover {
	background-color: var(--background-hover);
	color: var(--text-hover)
}

button[aria-expanded=true],
[aria-expanded=true][type=button],
[aria-expanded=true].leaflet-control-button,
[aria-expanded=true].leaflet-control-layers-toggle,
[aria-expanded=true].leaflet-control-logo,
.leaflet-bar a[aria-expanded=true],
.leaflet-control a[aria-expanded=true],
button[aria-pressed=true],
[aria-pressed=true][type=button],
[aria-pressed=true].leaflet-control-button,
[aria-pressed=true].leaflet-control-layers-toggle,
[aria-pressed=true].leaflet-control-logo,
.leaflet-bar a[aria-pressed=true],
.leaflet-control a[aria-pressed=true] {
	background-color: var(--background-selected);
	color: var(--text-selected);
	font-weight: 700;
	text-shadow: none
}

button:focus,
[type=button]:focus,
.leaflet-control-button:focus,
.leaflet-control-layers-toggle:focus,
.leaflet-control-logo:focus,
.leaflet-bar a:focus,
.leaflet-control a:focus {
	outline: var(--outline-focus) auto thick !important;
	z-index: 1;
	border-color: var(--background-dark)
}

button:focus:not(:focus-visible),
[type=button]:focus:not(:focus-visible),
.leaflet-control-button:focus:not(:focus-visible),
.leaflet-control-layers-toggle:focus:not(:focus-visible),
.leaflet-control-logo:focus:not(:focus-visible),
.leaflet-bar a:focus:not(:focus-visible),
.leaflet-control a:focus:not(:focus-visible) {
	outline-style: none;
	z-index: auto
}

button:active,
[type=button]:active,
.leaflet-control-button:active,
.leaflet-control-layers-toggle:active,
.leaflet-control-logo:active,
.leaflet-bar a:active,
.leaflet-control a:active {
	background-color: var(--background-active);
	color: var(--text-active)
}

button[disabled],
[disabled][type=button],
[disabled].leaflet-control-button,
[disabled].leaflet-control-layers-toggle,
[disabled].leaflet-control-logo,
.leaflet-bar a[disabled],
.leaflet-control a[disabled],
button[aria-disabled=true],
[aria-disabled=true][type=button],
[aria-disabled=true].leaflet-control-button,
[aria-disabled=true].leaflet-control-layers-toggle,
[aria-disabled=true].leaflet-control-logo,
.leaflet-bar a[aria-disabled=true],
.leaflet-control a[aria-disabled=true] {
	background-color: var(--background-disabled);
	color: var(--text-disabled);
	cursor: not-allowed
}

button[disabled]:hover,
[disabled][type=button]:hover,
[disabled].leaflet-control-button:hover,
[disabled].leaflet-control-layers-toggle:hover,
[disabled].leaflet-control-logo:hover,
.leaflet-bar a[disabled]:hover,
.leaflet-control a[disabled]:hover,
button[disabled]:active,
[disabled][type=button]:active,
[disabled].leaflet-control-button:active,
[disabled].leaflet-control-layers-toggle:active,
[disabled].leaflet-control-logo:active,
.leaflet-bar a[disabled]:active,
.leaflet-control a[disabled]:active,
button[disabled]:focus,
[disabled][type=button]:focus,
[disabled].leaflet-control-button:focus,
[disabled].leaflet-control-layers-toggle:focus,
[disabled].leaflet-control-logo:focus,
.leaflet-bar a[disabled]:focus,
.leaflet-control a[disabled]:focus,
button[aria-disabled=true]:hover,
[aria-disabled=true][type=button]:hover,
[aria-disabled=true].leaflet-control-button:hover,
[aria-disabled=true].leaflet-control-layers-toggle:hover,
[aria-disabled=true].leaflet-control-logo:hover,
.leaflet-bar a[aria-disabled=true]:hover,
.leaflet-control a[aria-disabled=true]:hover,
button[aria-disabled=true]:active,
[aria-disabled=true][type=button]:active,
[aria-disabled=true].leaflet-control-button:active,
[aria-disabled=true].leaflet-control-layers-toggle:active,
[aria-disabled=true].leaflet-control-logo:active,
.leaflet-bar a[aria-disabled=true]:active,
.leaflet-control a[aria-disabled=true]:active,
button[aria-disabled=true]:focus,
[aria-disabled=true][type=button]:focus,
[aria-disabled=true].leaflet-control-button:focus,
[aria-disabled=true].leaflet-control-layers-toggle:focus,
[aria-disabled=true].leaflet-control-logo:focus,
.leaflet-bar a[aria-disabled=true]:focus,
.leaflet-control a[aria-disabled=true]:focus {
	background-color: var(--background-disabled);
	color: var(--text-disabled)
}

.clock,
.leaflet-control-layers .leaflet-control-layers-list {
	background-color: var(--background-base);
	color: var(--text-base);
	border-radius: var(--border-radius);
	box-shadow: var(--box-shadow);
	display: flex;
	flex-direction: column;
	padding: 1.5rem;
	position: relative
}

.vue-notification-group {
	z-index: 130 !important
}

.vue-notification-group .notification {
	margin: 0 .5rem 1rem;
	padding: 1rem 1.5rem;
	min-height: var(--ui-button-size);
	font-size: 1.6rem;
	font-family: Raleway, sans-serif;
	color: var(--text-base);
	display: flex;
	flex-direction: column;
	justify-content: center;
	border-radius: var(--border-radius);
	box-shadow: var(--box-shadow);
	background: var(--background-base);
	border-left: none
}

.vue-notification-group .notification.success {
	background: #68cd86;
	border-left-color: #42a85f
}

.vue-notification-group .notification.warn {
	background: #ffb648;
	border-left-color: #f48a06
}

.vue-notification-group .notification.error {
	background: var(--background-error);
	border-left-color: #b82e24
}

@media screen and (max-width: 767px) {
	.vue-notification-group .vue-notification-wrapper:first-child:before {
		content: "";
		position: fixed;
		bottom: 0;
		left: 0;
		right: 0;
		display: block;
		height: 10rem;
		background-image: linear-gradient(0deg, var(--background-dark), transparent);
		z-index: -1
	}
}

.leaflet-control {
	background-color: var(--background-base);
	border-radius: var(--border-radius);
	box-shadow: var(--box-shadow);
	margin: 0;
	box-sizing: border-box;
	overflow: visible;
	font-size: 1.5rem;
	flex-shrink: 0
}

.leaflet-control>a:not(:hover):not(:focus):not(:active):not([aria-expanded=true]),
.leaflet-control>button:not(:hover):not(:focus):not(:active):not([aria-expanded=true]) {
	background-color: transparent
}

@media print {
	.leaflet-control {
		display: none !important
	}
}

.leaflet-bar {
	display: flex;
	align-items: center;
	padding: 0;
	border: none;
	box-shadow: var(--box-shadow)
}

.leaflet-bar a {
	border-radius: 0;
	border-bottom: .1rem solid var(--border-color)
}

.leaflet-bar a:first-child {
	border-top-left-radius: var(--border-radius);
	border-top-right-radius: var(--border-radius)
}

.leaflet-bar a:last-child {
	border-bottom-left-radius: var(--border-radius);
	border-bottom-right-radius: var(--border-radius);
	border-bottom: none
}

.leaflet-bar a.leaflet-disabled {
	background-color: var(--background-disabled);
	cursor: not-allowed
}

.leaflet-bar a.leaflet-disabled:hover {
	color: var(--text-disabled);
	border-bottom-color: var(--border-color)
}

.leaflet-bar a:hover {
	border-bottom-color: var(--border-color)
}

@media print {
	.leaflet-bar {
		display: none !important
	}
}

.leaflet-control-button,
.leaflet-control-layers-toggle,
.leaflet-control-logo,
.leaflet-bar a {
	line-height: 3.5rem;
	width: var(--ui-button-size);
	height: var(--ui-button-size)
}

.leaflet-control-zoom {
	flex-shrink: 0
}

.leaflet-control-zoom a {
	font-family: sans-serif
}

.leaflet-control-coordinates {
	display: flex;
	align-items: center;
	padding: .5rem 1.5rem
}

.leaflet-control-coordinates .value {
	line-height: 1;
	font-family: monospace;
	white-space: pre;
	font-size: 2rem
}

.leaflet-control-coordinates .value[data-label]:before {
	content: attr(data-label);
	display: block;
	line-height: 1;
	margin-bottom: .5rem;
	font-size: 1.25rem;
	font-family: 'Raleway', sans-serif;
}

.leaflet-control-coordinates .value+.value {
	margin-left: 2rem
}

@media (max-width: 600px) {
	.leaflet-control-coordinates .region {
		display: none
	}
}

@media (max-width: 480px),
(max-height: 480px) {
	.leaflet-control-coordinates .value {
		font-size: 1.6rem
	}
}

@media (max-width: 384px) {
	.leaflet-control-coordinates .chunk {
		display: none
	}
}

.leaflet-control-layers {
	width: auto;
	border: none;
	color: var(--text-base);
	position: relative
}

.leaflet-control-layers .leaflet-control-layers-list {
	display: block;
	position: absolute;
	top: 0;
	left: calc(var(--ui-element-spacing) + var(--ui-button-size));
	overflow: auto;
	max-width: calc(100vw - 14rem);
	box-sizing: border-box
}

@media screen and (max-width: 400px) {
	.leaflet-control-layers .leaflet-control-layers-list {
		max-width: calc(100vw - 13rem)
	}
}

.leaflet-control-layers .leaflet-control-layers-list .leaflet-control-layers-overlays {
	width: 100%;
	max-width: 30rem
}

.leaflet-control-layers .leaflet-control-layers-list .layer {
	cursor: pointer;
	padding: .8rem 0 .7rem
}

.leaflet-control-layers .leaflet-control-layers-list .layer:first-child {
	margin-top: -.4rem
}

.leaflet-control-layers .leaflet-control-layers-list .layer:last-child {
	margin-bottom: -.4rem
}

.leaflet-control-logo {
	flex-shrink: 0
}

.leaflet-control-logo a {
	height: 100%;
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: center
}

.leaflet-top,
.leaflet-bottom,
.leaflet-left,
.leaflet-right {
	display: flex
}

.leaflet-left {
	padding-left: var(--ui-element-spacing)
}

.leaflet-right {
	padding-right: var(--ui-element-spacing)
}

.leaflet-top {
	padding-top: var(--ui-element-spacing);
	flex-direction: column;
	top: 0;
	bottom: calc(var(--ui-element-spacing) * 2 + var(--ui-button-size));
	align-items: flex-start;
	z-index: 1003
}

.leaflet-top .leaflet-control {
	order: 2;
	min-width: var(--ui-button-size);
	margin-bottom: var(--ui-element-spacing)
}

.leaflet-top .leaflet-control:first-child {
	margin-top: 0
}

.leaflet-top .leaflet-control-loading {
	order: 3
}

.leaflet-top .leaflet-bar {
	flex-direction: column
}

.leaflet-top .leaflet-control-logo {
	order: 1;
	margin-top: 0 !important
}

.leaflet-top .leaflet-control-logo+.leaflet-control-logo {
	margin-top: var(--ui-element-spacing) !important
}

.leaflet-top .leaflet-control-bottom {
	margin-top: auto;
	display: none;
}

.leaflet-top .leaflet-control-bottom:last-child {
	margin-bottom: 0
}

.leaflet-top .leaflet-control-bottom~.leaflet-control-bottom {
	margin-top: 0
}

.leaflet-top .leaflet-control-chat {
	order: 1000
}

.leaflet-top .leaflet-control-login {
	order: 900
}

@media (max-width: 480px) and (pointer: coarse),
(max-height: 480px) and (pointer: coarse),
(max-height: 400px) {
	.leaflet-top .leaflet-control-zoom {
		display: none
	}

	.leaflet-top .leaflet-control-zoom+.leaflet-control {
		margin-top: 0
	}
}

.leaflet-bottom {
	padding-bottom: var(--ui-element-spacing);
	align-items: stretch;
	z-index: 1002
}

.leaflet-bottom .leaflet-control {
	order: 2
}

.leaflet-bottom .leaflet-control-link {
	order: 1
}

.leaflet-bottom.leaflet-left .leaflet-control {
	margin-right: var(--ui-element-spacing)
}

.leaflet-center {
	left: 0;
	right: 0;
	justify-content: center;
	flex-direction: row;
	z-index: 1001
}

.leaflet-center .leaflet-control {
	margin: 0
}

.leaflet-control-loading {
	cursor: wait;
	animation: fade .3s linear;
	animation-fill-mode: forwards
}

.leaflet-control-loading:hover,
.leaflet-control-loading:active,
.leaflet-control-loading:focus {
	background-color: var(--background-base)
}

.leaflet-control-loading[hidden] {
	display: none
}

.leaflet-popup .leaflet-popup-content-wrapper,
.leaflet-popup .leaflet-popup-tip {
	background-color: var(--background-base);
	color: var(--text-base);
	box-shadow: var(--box-shadow)
}

.leaflet-popup .leaflet-popup-content-wrapper {
	max-height: 50vh;
	display: flex;
	border-radius: var(--border-radius);
	box-shadow: var(--box-shadow)
}

.leaflet-popup .leaflet-popup-content {
	margin: 1rem;
	overflow: auto;
	word-break: break-word
}

.leaflet-popup.leaflet-popup--chat .leaflet-popup-content {
	margin: .5rem 1rem;
	display: flex;
	flex-direction: column
}

.leaflet-container a.leaflet-popup-close-button {
	background-color: var(--background-base);
	border-radius: var(--border-radius);
	width: 2rem;
	height: 2rem;
	top: -1rem;
	right: -1rem;
	text-align: center;
	padding: 0;
	line-height: 2rem
}

@media print {
	.leaflet-popup {
		display: none
	}
}

.leaflet-tooltip {
	background-color: var(--background-base);
	color: var(--text-base);
	box-shadow: var(--box-shadow);
	border-radius: var(--border-radius);
	border: none;
	will-change: transform
}

.leaflet-tooltip:before {
	content: none
}

/*!
 * Copyright 2022 James Lyne
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
.map .marker {
	display: flex;
	align-items: center
}

.map .marker.marker--player {
	transition: transform .3s ease-in 0s;
	height: 1.2rem;
	margin-left: -.6rem;
	margin-top: -.6rem
}

.map .marker.marker--player:before {
	content: "";
	display: block;
	width: .8rem;
	height: .8rem;
	position: absolute;
	left: 0;
	background-color: var(--text-emphasis);
	border: .2rem solid var(--background-marker);
	border-radius: 50%
}

.map .marker.marker--player .marker__label {
	display: grid !important;
	grid-template-columns: min-content 1fr;
	grid-template-rows: 1fr min-content min-content min-content 1fr;
	grid-auto-flow: column;
	margin-left: 1.6rem;
	background-clip: padding-box;
	padding: .2rem .5rem;
	align-items: center;
	border-radius: 3px;
}

.map .marker.marker--player .player__icon {
	grid-row: 1/-1;
	margin-right: .5rem;
	margin-left: -.3rem;
	border-radius: 1px;
}

.map .marker.marker--player .player__name {
	grid-row: 2
}

.map .marker.marker--player .player__name:not(:last-child) {
	padding-bottom: .2rem
}

.map .marker.marker--player .player__health,
.map .marker.marker--player .player__armor {
	width: 7rem;
	height: .7rem;
	box-sizing: content-box
}

.map .marker.marker--player .player__health,
.map .marker.marker--player .player__health::-webkit-meter-inner-element,
.map .marker.marker--player .player__health::-webkit-meter-bar,
.map .marker.marker--player .player__armor,
.map .marker.marker--player .player__armor::-webkit-meter-inner-element,
.map .marker.marker--player .player__armor::-webkit-meter-bar {
	border-radius: 0;
	background: none;
	border: none;
	box-shadow: none;
	image-rendering: crisp-edges;
	image-rendering: pixelated;
	display: block;
	top: 0;
	bottom: 0
}

.map .marker.marker--player .player__health {
	background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHBAMAAAA2fErgAAAAD1BMVEUAAAAXFhZFRkgsLC5hY2bAyCi+AAAAAXRSTlMAQObYZgAAAChJREFUCNdjYBQQZGAQUVQSYBByAhLCSsoCDIxGhgwMDMICQIKRgQEAKHQCAAUrkucAAAAASUVORK5CYII=) repeat-x left center
}

.map .marker.marker--player .player__health::-webkit-meter-optimum-value {
	background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHBAMAAAA2fErgAAAAD1BMVEUAAAArAgvaJCSsCy/sV0SEKlj7AAAAAXRSTlMAQObYZgAAAChJREFUCNdjYBQQZGAQUVQSYBByAhLCSsoCDIxGhgwMDMICQIKRgQEAKHQCAAUrkucAAAAASUVORK5CYII=) repeat-x left center
}

.map .marker.marker--player .player__health::-moz-meter-bar {
	background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHBAMAAAA2fErgAAAAD1BMVEUAAAArAgvaJCSsCy/sV0SEKlj7AAAAAXRSTlMAQObYZgAAAChJREFUCNdjYBQQZGAQUVQSYBByAhLCSsoCDIxGhgwMDMICQIKRgQEAKHQCAAUrkucAAAAASUVORK5CYII=) repeat-x left center
}

.map .marker.marker--player .player__armor {
	background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHBAMAAAA2fErgAAAAD1BMVEUAAAAUFBVFRkgsLC5hY2YEDfiMAAAAAXRSTlMAQObYZgAAACdJREFUCNdjYBQQZGAQUlQSYBBSURZgYHQyZGBgVAIRxkCCQVCAAQAn5gI/LmmazgAAAABJRU5ErkJggg==) repeat-x left center
}

.map .marker.marker--player .player__armor::-webkit-meter-optimum-value {
	background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHBAMAAAA2fErgAAAAD1BMVEUAAAAUFBW/wcSLjI7z9PWBWai1AAAAAXRSTlMAQObYZgAAACdJREFUCNdjYBQQZGAQUlQSYBBSURZgYHQyZGBgVAIRxkCCQVCAAQAn5gI/LmmazgAAAABJRU5ErkJggg==) repeat-x left center
}

.map .marker.marker--player .player__armor::-moz-meter-bar {
	background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHBAMAAAA2fErgAAAAD1BMVEUAAAAUFBW/wcSLjI7z9PWBWai1AAAAAXRSTlMAQObYZgAAACdJREFUCNdjYBQQZGAQUlQSYBBSURZgYHQyZGBgVAIRxkCCQVCAAQAn5gI/LmmazgAAAABJRU5ErkJggg==) repeat-x left center
}

.map .marker.marker--player .player__yaw {
	--player-yaw: 0deg;
	position: relative;
	transform: rotate(var(--player-yaw));
	transition: .1s transform ease-in
}

.map .marker.marker--player .player__yaw,
.map .marker.marker--player .player__yaw:after {
	position: absolute;
	width: 0;
	height: 0;
	border-style: solid;
	border-color: transparent transparent var(--background-marker);
	border-width: 0 .7rem 2rem .7rem
}

.map .marker.marker--player .player__yaw:after {
	content: "";
	top: .5rem;
	left: -.4rem;
	border-width: 0 .4rem 1.3rem .4rem;
	border-bottom-color: var(--text-emphasis)
}

.no-animations .marker.marker--player .player__yaw {
	transition: none
}

.map .marker.marker--player.marker--compact .marker__label {
	background-color: transparent
}

.map .marker.marker--player.marker--compact .player__icon {
	margin-right: .2rem
}

.map .marker.marker--player.marker--compact .player__armor,
.map .marker.marker--player.marker--compact .player__health,
.map .marker.marker--player.marker--compact .player__name {
	background-color: var(--background-marker)
}

.map .marker.marker--player.marker--compact .player__name {
	padding: .2rem
}

.map .marker.marker--player.marker--compact .player__armor,
.map .marker.marker--player.marker--compact .player__health {
	border: .2rem solid var(--background-marker);
	border-top-width: 0;
	border-bottom-width: 0
}

.map .marker.marker--player.marker--compact .player__armor:last-child,
.map .marker.marker--player.marker--compact .player__health:last-child {
	border-bottom-width: .2rem
}

.map .marker.marker--player.player--yaw:before {
	content: none
}

.map .marker.marker--player.player--yaw .marker__label {
	margin-left: 1.8rem
}

.map .marker .marker__label {
	flex: 0 0 auto;
	z-index: 20;
	font-size: 1.5rem;
	line-height: 1;
	white-space: pre-line;
	color: var(--text-marker);
	background: var(--background-marker);
	padding: 7px 10px;
	display: none;
	width: max-content;
	max-width: 30rem;
	position: absolute;
	left: calc(100% + .2rem);
	font-family: 'Montserrat', sans-serif;
	font-weight: 400;
	text-shadow: none;

}

.marker__label {
	color: #d6d6d6 !important;
}

.leaflet-pane--show-labels .marker__label {
	display: block !important
}

.map .marker.marker--auto-size .marker__icon {
	margin-top: -50%;
	margin-left: -50%
}

.map .marker.marker--auto-size .marker__label {
	margin-top: -50%;
	left: calc(50% + .2rem)
}

.map .marker:hover,
.map .marker:focus {
	z-index: 1000
}

.map .marker:hover .marker__label,
.map .marker:focus .marker__label {
	display: block;
	outline: 1px solid #fff;
	border-radius: 4px;
}

.map .marker:focus .marker__label {
	outline: 1px solid #fff;
}

.map .marker:focus:not(:focus-visible) {
	z-index: auto
}

.map .marker:focus:not(:focus-visible) .marker__label {
	display: none
}

.no-animations .marker.marker--player {
	transition: none
}

@media print {
	.map .marker {
		display: none !important
	}
}

.leaflet-container {
	font-family: inherit;
	font-size: 1.5rem;
	font-weight: inherit;
	line-height: 1
}

.leaflet-container *:focus {
	outline-style: auto !important
}

.leaflet-container *:focus:not(:focus-visible) {
	outline-style: none !important
}

@keyframes spin {
	0% {
		transform: rotate(0)
	}

	to {
		transform: rotate(360deg)
	}
}

@font-face {
	font-family: Raleway;
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url(https://fonts.gstatic.com/s/raleway/v22/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCIPrE.woff2) format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD
}

@font-face {
	font-family: Raleway;
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url(https://fonts.gstatic.com/s/raleway/v22/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVsEpbCIPrE.woff2) format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD
}

:root {
	--ui-button-size: 5rem;
	--ui-element-spacing: 1rem
}

@media (max-width: 400px),
(max-height: 480px) {
	:root {
		--ui-button-size: 4.4rem;
		--ui-element-spacing: .7rem
	}
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-weight: 400;
	margin-top: 0;
	color: var(--text-emphasis)
}

h1 {
	font-size: 3rem
}

h2 {
	font-size: 2rem;
	line-height: 2.4rem;
	margin-bottom: 1rem
}

a {
	color: var(--text-base)
}

input {
	appearance: none;
	background-color: var(--background-light);
	box-shadow: none;
	color: var(--text-base);
	font-size: 1.6rem;
	padding: 1rem;
	border: .2rem solid var(--border-color);
	border-radius: .3rem
}

input:focus {
	color: var(--text-emphasis);
	outline-color: var(--text-emphasis)
}

input:focus:not(:focus-visible) {
	color: var(--text-base)
}

input[disabled] {
	background-color: var(--background-disabled);
	border-color: var(--border-color);
	cursor: not-allowed
}

:focus:not(:focus-visible) {
	outline: none !important
}

:focus {
	outline: var(--outline-focus) auto thick !important
}

:focus-visible {
	outline: var(--outline-focus) auto thick !important
}

.checkbox {
	display: flex;
	position: relative;
	align-items: center
}

.checkbox:before,
.checkbox svg,
.checkbox input[type=checkbox] {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	margin: auto 1rem auto 0
}

.checkbox:before {
	content: "";
	width: 2.2rem;
	height: 2.2rem;
	border: .2rem solid #cccccc;
	border-radius: .3rem;
	background-color: transparent;
	box-sizing: border-box;
	z-index: 0
}

.checkbox input[type=checkbox] {
	width: 2.4rem;
	height: 2.4rem;
	opacity: 0;
	z-index: 2
}

.checkbox input[type=checkbox]:checked~span {
	color: var(--text-base)
}

.checkbox input[type=checkbox]:checked+svg {
	opacity: 1
}

.checkbox input[type=checkbox]:focus~span:after {
	content: "";
	outline: var(--outline-focus) auto thick;
	position: absolute;
	top: 0;
	right: -.5rem;
	bottom: 0;
	left: -.5rem;
	border-radius: .5rem
}

.checkbox input[type=checkbox]:focus:not(:focus-visible)~span:after {
	content: none
}

.checkbox svg {
	opacity: 0;
	transition: opacity .2s ease-in;
	z-index: 1
}

.checkbox span {
	color: var(--text-subtle);
	padding-left: 3rem;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	display: block
}

.menu {
	list-style: none;
	margin: 0;
	padding: 0;
	font-size: 1.6rem;
	min-width: 0
}

.menu ul {
	list-style: none;
	margin: 0;
	padding: 0
}

.menu>li {
	display: flex;
	position: relative
}

.menu>li>button {
	background-color: transparent;
	flex-grow: 1
}

.menu>input[type=radio] {
	clip: rect(1px, 1px, 1px, 1px);
	height: 1px;
	width: 1px;
	position: absolute;
	padding: 0;
	border: none
}

.menu>input[type=radio]+label {
	appearance: none;
	box-shadow: none;
	background-color: var(--background-base);
	color: var(--text-base);
	border-radius: var(--border-radius);
	border: none;
	cursor: pointer;
	display: block;
	text-align: center;
	position: relative;
	transition: color .2s ease-in, background-color .2s ease-in;
	font-size: 1.6rem;
	font-family: Raleway, sans-serif;
	box-sizing: border-box;
	text-shadow: var(--text-shadow);
	user-select: none;
	padding: .8rem .8rem .7rem;
	line-height: 2rem;
	-webkit-tap-highlight-color: transparent;
	background-color: transparent;
	margin-bottom: .1rem
}

.menu>input[type=radio]+label .svg-icon {
	display: inline-block;
	max-width: 3rem;
	max-height: 3rem;
	pointer-events: none
}

.menu>input[type=radio]+label .svg-icon:only-child {
	position: absolute;
	width: calc(100% - 1.6rem);
	height: calc(100% - 1.6rem);
	min-width: 1.5rem;
	min-height: 1.5rem;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	margin: auto
}

.menu>input[type=radio]+label>span {
	display: block;
	text-overflow: inherit;
	overflow: inherit;
	white-space: inherit
}

.menu>input[type=radio]+label:hover {
	background-color: var(--background-hover);
	color: var(--text-hover);
	position: relative
}

.menu>input[type=radio]:checked+label {
	background-color: var(--background-selected);
	color: var(--text-selected);
	font-weight: 700;
	text-shadow: none;
	position: relative
}

.menu>input[type=radio]:focus+label {
	outline: var(--outline-focus) auto thick !important;
	z-index: 1;
	border-color: var(--background-dark)
}

.menu>input[type=radio]:focus:not(:focus-visible)+label {
	z-index: auto;
	outline: none !important
}

.menu>input[type=radio]:active+label {
	background-color: var(--background-active);
	color: var(--text-active)
}

.menu>input[type=radio]:disabled+label {
	background-color: var(--background-disabled);
	color: var(--text-disabled);
	cursor: not-allowed
}

.menu>input[type=radio]:disabled+label:hover,
.menu>input[type=radio]:disabled+label:active,
.menu>input[type=radio]:disabled+label:focus {
	background-color: var(--background-disabled);
	color: var(--text-disabled)
}

.menu>li>button,
.menu>input[type=radio]+label,
.menu>button {
	text-overflow: ellipsis;
	overflow: hidden;
	white-space: nowrap;
	text-align: left;
	border-radius: .5rem
}

.menu>button {
	width: 100%;
	text-align: center
}

img {
	image-rendering: crisp-edges;
	image-rendering: pixelated
}

.clock {
	position: relative;
	width: 15rem;
	height: 6rem;
	z-index: 50;
	font-family: monospace;
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: .5rem 2rem;
	overflow: hidden
}

.clock .clock__time {
	text-align: center;
	font-size: 2rem;
	line-height: 2rem;
	margin-top: auto;
	background-color: var(--background-base);
	z-index: 1;
	padding: .1rem .1rem 0;
	border-radius: .3rem
}

.clock .clock__time.night {
	color: var(--text-night)
}

.clock .clock__time.day {
	color: var(--text-day)
}

.clock .clock__time.night,
.clock .clock__time.day {
	transition: color 8s 8s linear
}

.clock .clock__sun,
.clock .clock__moon {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0
}

.clock .clock__sun svg,
.clock .clock__moon svg {
	width: 15rem;
	height: 12rem
}

.clock.clock--digital {
	justify-content: center;
	height: var(--ui-button-size);
	width: auto
}

.clock.clock--digital .clock__sun,
.clock.clock--digital .clock__moon {
	display: none
}

.clock.clock--digital .clock__time {
	margin: 0;
	font-size: 3rem
}

@media (max-width: 480px),
(max-height: 480px) {
	.clock {
		transform: scale(.8333333333);
		transform-origin: top center
	}
}

.form .form__group {
	margin-bottom: 1.5rem;
	display: flex;
	flex-direction: column
}

.form .form__label {
	font-size: 1.6rem;
	margin-bottom: .5rem;
	color: var(--text-emphasis)
}

.form.form--invalid input:invalid {
	border-color: var(--border-error)
}

.alert {
	display: flex;
	flex-direction: column;
	padding: 1rem;
	background-color: var(--background-error);
	border-radius: var(--border-radius)
}

@media print {
	@page {
		size: 297mm 210mm
	}
}