body
{ 
	display: flex;
	min-height: 100vh;
	flex-direction: column; 
}

.app 
{ 
	flex: 1; 
}

@media screen and (-ms-high-contrast:active), screen and (-ms-high-contrast:none) 
{
	.app 
	{ 
		flex: none!important;
	}
}

/* change the brand and text color */
.navbar-orange .navbar-brand,
.navbar-nav a.nav-link,
.nav-item .dropdown-menu .dropdown-item
{
	/* solid fallback for browsers that cannot parse rgba() (IE5); the rgba
	   below is what every modern browser ends up with */
	color: #fff!important;
	color: rgba(255,255,255,1)!important;
}

/* change the color of active or hovered links */
.navbar-orange a.nav-link:hover, 
.navbar-orange .nav-link.darken
{
	color: #fff!important;
	color: rgba(255,255,255,0.75)!important;
}

.nav-item .dropdown-menu .dropdown-item:hover
{
	background-color: transparent;
	color: #fff!important;
	color: rgba(255,255,255,0.75)!important;
}

.nav-item .dropdown-menu
{
	min-width: 0;
	border: 1px solid #343a40;
	border-top: none;
	border-top-left-radius: 0px;
	border-top-right-radius: 0px;
}

.navbar-toggler
{
	border-color: transparent!important;
}

.navbar-nav .friend-requests-indicator
{
	position:absolute; margin-left:25px;
}

.navbar-nav .unread-messages-indicator
{
	position:absolute; margin-left:25px;
}


.accordion .accordion-header .accordion-arrow
{
  transition: 0.25s ease;
  transform: rotate(-90deg);
}

.accordion .accordion-header.ui-state-active .accordion-arrow
{
  transform: rotate(0deg);
}

@media (min-width: 728px) {
	.ad-banner {
		display: inline-block;
		width: 728px;
		height: 90px;
	}
}

@media (max-width: 728px) {
	.ad-banner {
		display: none;
	}
}

.ad-skyscraper {
	display: inline-block;
	width: 160px;
	height: 600px;
}

.ad-square {
	display: inline-block;
	width: 300px;
	height: 250px;
}

@media (min-width: 768px) 
{
	.divider-right 
	{
		border-right: 1px solid #ccc;
	}
}

@media (max-width: 768px) 
{
	.divider-right 
	{
		border-bottom: 1px solid #ccc;
		/* margin-top: 16px; */
		margin-bottom: 16px;
		padding-bottom: 17px !important;
	}
}

.divider-top 
{
	border-top: 1px solid #ccc;
}

.divider-bottom 
{
	border-bottom: 1px solid #ccc;
}

.shadow, .hover:hover
{
	box-shadow: 0 10px 20px rgba(0,0,0,.08), 0 4px 8px rgba(0,0,0,.06);
}

.disabled-wrapper 
{
	display: inline-block;
}

.disabled-wrapper .btn[disabled] 
{
	pointer-events: none;
}

.alert a { color: unset; }
.alert p { margin-bottom: 0; }

.nav-tabs.flex-column 
{ 
	border-bottom: none;  
}

.nav-tabs.flex-column .nav-link.active
{
	border-color: #dee2e6;
}

@media (min-width: 768px) 
{
	.nav-tabs.flex-column .nav-link
	{
		border-top-left-radius: .25rem;
		border-bottom-left-radius: .25rem;
		border-top-right-radius: 0;
		border-bottom-right-radius: 0;
		border-right: none; 
	}
}

@media (max-width: 768px) 
{
	.nav-tabs.flex-column .nav-link  
	{
		border-radius: .25rem;
	}
}

.items .item .details-wrapper 
{ 
	position: relative; 
}

.items .item .card.details 
{
	position: absolute;
	width: 100%;
	border-top: none;
	z-index: 1;
	margin-top: -10px;
	border-top-left-radius: 0;
	border-top-right-radius: 0;
}

.border-none { border: none!important; }
.border-none:focus { box-shadow: none; }

.modal-header { border-bottom: none; } 
.modal-footer { border-top: none; } 

.items .item-striped:nth-of-type(2n) 
{
    background-color: #f0eef0;
}

.ColorPickerItem:hover
{     
	cursor: pointer;
	border-color: #e1e1e1;
    border-style: solid;
    border-width: 2px; 
}

/* fractional bootstrap4 columns - 1/8th */

.col-1-8
{
	flex: 0 0 12.5%;
	max-width: 12.5%;
}

@media (min-width: 576px)
{
	.col-sm-1-8
	{
		flex: 0 0 12.5%;
		max-width: 12.5%;
	}
} 

@media (min-width: 768px)
{
	.col-md-1-8
	{
		flex: 0 0 12.5%;
		max-width: 12.5%;
	}
} 

@media (min-width: 992px)
{
	.col-lg-1-8
	{
		flex: 0 0 12.5%;
		max-width: 12.5%;
	}
} 

@media (min-width: 1200px)
{
	.col-xl-1-8
	{
		flex: 0 0 12.5%;
		max-width: 12.5%;
	}
} 

/* fractional bootstrap4 columns - 1/5th */

.col-1-5
{
	flex: 0 0 20%;
	max-width: 20%;
}

@media (min-width: 576px)
{
	.col-sm-1-5
	{
		flex: 0 0 20%;
		max-width: 20%;
	}
} 

@media (min-width: 768px)
{
	.col-md-1-5
	{
		flex: 0 0 20%;
		max-width: 20%;
	}
} 

@media (min-width: 992px)
{
	.col-lg-1-5
	{
		flex: 0 0 20%;
		max-width: 20%;
	}
} 

@media (min-width: 1200px)
{
	.col-xl-1-5
	{
		flex: 0 0 20%;
		max-width: 20%;
	}
} 

.jumbo 
{ 
	width: 3rem; 
	height: 3rem; 
}

.btn:focus 
{ 
	box-shadow: none; 
}

.dropdown-menu 
{ 
	margin-top: -1px; 
}

.gear-attribute i 
{ 
	width:18px 
}

.bg-cardpanel 
{ 
	background-color: #f0eef0; 
}

b, strong 
{ 
	font-weight: 600; 
}

/* 3D avatar loader */
.loader + div
{
	display: inline-block;
	vertical-align: middle;
	height: 100%;
}

.loader
{
	display:inline-block;
	vertical-align:middle;
	white-space:normal;
	width:100%;
	height:100%;
	line-height:20;
	position:relative;
	-moz-box-sizing:border-box;
	-webkit-box-sizing:border-box;
	box-sizing:border-box;
	text-align:center;
	z-index:0;
}

.loader:before, 
.loader:after
{
	opacity:0;
	box-sizing:border-box;
	content:"\0020";
	position:absolute;
	top:10%;
	left:10%;
	width:80%;
	height:80%;
	border-radius:352px;
	border:3px solid #184FA2;
	box-shadow:0 0 50px #5D9CFB,inset 0 0 50px #5D9CFB;
	
}

.loader:after
{
	z-index:1;
	-webkit-animation:gogoloader 2s infinite 1s;
	animation:gogoloader 2s infinite 1s;
}

.loader:before
{
	z-index:2;
	-webkit-animation:gogoloader 2s infinite;
	animation:gogoloader 2s infinite;
}

@-webkit-keyframes gogoloader
{
	0%
	{
		-webkit-transform:scale(0);
		transform:scale(0);
		opacity:0;
	}

	50%
	{
		opacity:1;
	}

	100%
	{
		-webkit-transform:scale(1);
		transform:scale(1);
		opacity:0;
	}
}

@keyframes gogoloader
{
	0%
	{
		transform:scale(0);
		opacity:0;
	}

	50%
	{
		opacity:1;
	}

	100%
	{
		transform:scale(1);
		opacity:0;
	}
}

/* ==========================================================================
   Loading circle - /img/spinners/loadingCircle.png
   The png is served with a 1-year immutable cache (.htaccess), so it is
   always instant to show. It replaces bootstrap's border-ring spinner, the
   old spinner gifs, and is used as the "image loading" placeholder.
   ========================================================================== */

@keyframes polygon-spin
{
	to { transform: rotate(360deg); }
}

/* bootstrap .spinner-border -> the spinning loading circle */
.spinner-border
{
	border: none !important;
	border-radius: 0;
	background-image: url("/img/spinners/loadingCircle.png?v=1");
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
	transform-origin: center;
	animation: polygon-spin 1s linear infinite;
}

/* any <img> currently showing the loading circle spins while it is up */
img.ps-spin,
img[src*="loadingCircle"]
{
	transform-origin: center;
	animation: polygon-spin 1s linear infinite;
}

/* the "rendering" placeholder (Thumbnails::GetStatus) shows the loading
   circle instead of its icon; the hashes are its files */
img[src*="ed084f98f4b5855e9e0d95d6801753ba7357ca18"],
img[src*="b67cc4a3d126f29a0c11e7cba3843e6aceadb769"],
img[src*="d059575ffed532648d3dcf6b1429defcc98fc8b1"],
img[src*="9794c31aa3c4779f9cb2c541cedf2c25fa3397fe"],
img[src*="f523775cc3da917e15c3b15e4165fee2562c0ff1"],
img[src*="a9e786b5c339f29f9016d21858bf22c54146855c"],
img[src*="d7a9b5d7044636d3011541634aee43ca4a86ade6"],
img[src*="fa2ec2e53a4d50d9103a6e4370a3299ba5391544"]
{
	object-position: -99999px 0;
	background: url("/img/spinners/loadingCircle.png?v=1") center/contain no-repeat;
	transform-origin: center;
	animation: polygon-spin 1s linear infinite;
}

/* "#static": a permanent stand-in (guests, missing emblems, "from Place File"), not a render */
img[src*="#static"]
{
	object-position: 50% 50%;
	background: none;
	animation: none;
}

/* overlay injected by polygon.spinner over an <img> that is still loading;
   fades out once the real image has finished loading */
.scorpion-img-spinner
{
	position: absolute;
	z-index: 5;
	display: block;
	/* longhand fallbacks for browsers that reject the "/" inside the background
	   shorthand (IE5); the shorthand below still wins in modern browsers */
	background-image: url("/img/spinners/loadingCircle.png?v=1");
	background-position: center;
	background-repeat: no-repeat;
	background: url("/img/spinners/loadingCircle.png?v=1") center/contain no-repeat;
	transform-origin: center;
	animation: polygon-spin 1s linear infinite;
	pointer-events: none;
	opacity: 1;
	transition: opacity 0.3s ease;
}

.scorpion-img-spinner.scorpion-img-spinner-done
{
	opacity: 0;
}

/* 3D thumbnail loader uses the loading circle instead of the ring burst */
.loader
{
	font-size: 0;
	background-image: url("/img/spinners/loadingCircle.png?v=1");
	background-position: center;
	background-repeat: no-repeat;
	background: url("/img/spinners/loadingCircle.png?v=1") center/40% no-repeat;
	animation: polygon-spin 1s linear infinite;
}

.loader:before,
.loader:after
{
	display: none;
}

@media (prefers-reduced-motion: reduce)
{
	.spinner-border,
	img.ps-spin,
	img[src*="loadingCircle"],
	img[src*="ed084f98f4b5855e9e0d95d6801753ba7357ca18"],
	img[src*="b67cc4a3d126f29a0c11e7cba3843e6aceadb769"],
	img[src*="d059575ffed532648d3dcf6b1429defcc98fc8b1"],
	img[src*="9794c31aa3c4779f9cb2c541cedf2c25fa3397fe"],
	img[src*="f523775cc3da917e15c3b15e4165fee2562c0ff1"],
	img[src*="a9e786b5c339f29f9016d21858bf22c54146855c"],
	img[src*="d7a9b5d7044636d3011541634aee43ca4a86ade6"],
	img[src*="fa2ec2e53a4d50d9103a6e4370a3299ba5391544"],
	.scorpion-img-spinner,
	.loader
	{
		animation: none;
	}
}
/* Guest mode picker. Fixed dark palette on purpose - it is the same popup in
   every site theme, so it does not read from the theme stylesheets. */
.guestmode .guestmode-content
{
	background-color: #000;
	border: none;
	border-radius: 6px;
	overflow: hidden;
}

.guestmode .guestmode-header
{
	background-color: #2b2b2b;
	border-bottom: none;
	padding: 0.6rem 1rem;
	align-items: center;
}

.guestmode .guestmode-header .modal-title
{
	color: #fff;
	font-weight: 400;
	font-size: 1.1rem;
}

.guestmode .guestmode-close
{
	color: #fff;
	opacity: 0.85;
	text-shadow: none;
	font-size: 1.5rem;
	font-weight: 400;
	padding: 0 0.25rem;
}

.guestmode .guestmode-close:hover,
.guestmode .guestmode-close:focus
{
	color: #fff;
	opacity: 1;
}

.guestmode .guestmode-body
{
	background-color: #000;
	padding: 1.5rem;
}

.guestmode .guestmode-choice
{
	display: block;
	width: 100%;
	border: none;
	border-radius: 8px;
	padding: 1rem;
	color: #fff;
	font-size: 1.5rem;
	font-weight: 400;
	line-height: 1.2;
}

.guestmode .guestmode-choice + .guestmode-choice
{
	margin-top: 1rem;
}

.guestmode .guestmode-choice:disabled
{
	opacity: 0.65;
}

.guestmode .guestmode-boy
{
	background-color: #007bff;
}

.guestmode .guestmode-boy:hover:not(:disabled),
.guestmode .guestmode-boy:focus
{
	background-color: #0069d9;
}

.guestmode .guestmode-girl
{
	background-color: #dc3545;
}

.guestmode .guestmode-girl:hover:not(:disabled),
.guestmode .guestmode-girl:focus
{
	background-color: #c82333;
}

/* Games browser -------------------------------------------------------- */

/* A browse request is the one place on the site where a click is followed by
   nothing visible for a moment, so the cursor carries the wait. */
html.games-loading,
html.games-loading body,
html.games-loading a,
html.games-loading button,
html.games-loading select,
html.games-loading input
{
	cursor: progress;
}

/* Each genre is a single line of cards with a See All beside its heading.
   The row never wraps and never scrolls: the cards that do not fit the
   breakpoint are hidden, and the rest of the genre lives behind See All. */
.genre-strip
{
	overflow: visible;
}

.genre-strip .item
{
	flex: 0 0 12.5%;
	max-width: 12.5%;
}

.genre-strip .item:nth-child(n+9)
{
	display: none;
}

@media (max-width: 1199.98px)
{
	.genre-strip .item
	{
		flex-basis: 16.6666%;
		max-width: 16.6666%;
	}

	.genre-strip .item:nth-child(n+7)
	{
		display: none;
	}
}

@media (max-width: 991.98px)
{
	.genre-strip .item
	{
		flex-basis: 25%;
		max-width: 25%;
	}

	.genre-strip .item:nth-child(n+5)
	{
		display: none;
	}
}

@media (max-width: 767.98px)
{
	.genre-strip .item
	{
		flex-basis: 33.3333%;
		max-width: 33.3333%;
	}

	.genre-strip .item:nth-child(n+4)
	{
		display: none;
	}
}

@media (max-width: 575.98px)
{
	.genre-strip .item
	{
		flex-basis: 50%;
		max-width: 50%;
	}

	.genre-strip .item:nth-child(n+3)
	{
		display: none;
	}
}

/* The hover card sits above the next genre heading rather than pushing it. */
.genre-strip .item .card.details
{
	z-index: 2;
}

.genre-pagination .page-link
{
	cursor: pointer;
}
