/*****************************************************************************

Interactive mask panel (replaces faces.swf)
Geometry and timings match the original 930x675 Flash stage.

*****************************************************************************/

#faces {
	position: relative;
	width: 930px;
	height: 675px;
	overflow: hidden;
	background: #000;
	font-family: verdana, arial, sans-serif;
	}

#faces .faces-hint {
	position: absolute;
	left: 0;
	top: 0;
	margin: 0;
	color: #0093fd;
	font-size: 13px;
	line-height: 15px;
	}

#faces .faces-viewport {
	position: absolute;
	left: 0;
	top: 30px;
	width: 930px;
	height: 500px;
	overflow-x: auto; /* without JavaScript: native horizontal scrolling */
	overflow-y: hidden;
	}

#faces .faces-panel {
	position: relative;
	width: 1740px;
	height: 500px;
	}

#faces .faces-panel img {
	display: block;
	}

#faces .face {
	position: absolute;
	display: block;
	cursor: pointer;
	outline: none;
	}

#faces .face:focus-visible {
	outline: 1px solid #0093fd;
	}

#faces .faces-caption {
	position: absolute;
	left: 0;
	top: 613px;
	width: 930px;
	margin: 0;
	font-size: 13px;
	line-height: 18px;
	}

/* Custom scrollbar, overlay and intro only exist when the script is running */

#faces .faces-scrollbar,
#faces .faces-overlay {
	display: none;
	}

#faces.js .faces-viewport {
	overflow: hidden;
	}

#faces.js .faces-panel {
	will-change: transform;
	}

#faces.js .faces-stage {
	opacity: 0;
	transition: opacity 1.5s linear;
	}

#faces.js.ready .faces-stage {
	opacity: 1;
	}

#faces.js .faces-scrollbar {
	display: block;
	position: absolute;
	left: 0;
	top: 555px;
	width: 930px;
	height: 20px;
	border-top: 2px solid #0d4f80;
	background: #2a2a2a;
	box-sizing: border-box;
	}

#faces .faces-thumb {
	position: absolute;
	left: 0;
	top: 0;
	width: 380px;
	height: 18px;
	background: #0094fb;
	color: #00253f;
	font-size: 12px;
	line-height: 19px;
	text-align: center;
	cursor: pointer;
	touch-action: none;
	user-select: none;
	-webkit-user-select: none;
	}

#faces .faces-thumb:focus-visible {
	outline: 1px solid #fff;
	}

#faces .faces-thumb .l,
#faces .faces-thumb .r {
	position: absolute;
	top: 0;
	color: #000;
	font-size: 18px;
	line-height: 16px;
	}

#faces .faces-thumb .l { left: 3px; }
#faces .faces-thumb .r { right: 3px; }

/* Enlarged view */

#faces.js .faces-overlay {
	position: absolute;
	left: 0;
	top: 0;
	width: 930px;
	height: 575px;
	cursor: pointer;
	visibility: hidden;
	}

#faces.js.open .faces-overlay {
	display: block;
	visibility: visible;
	}

#faces .faces-dim {
	position: absolute;
	left: 0;
	top: 30px;
	width: 930px;
	height: 500px;
	/* the Flash version's diagonal hatch: every third diagonal slightly lighter */
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='3' height='3' shape-rendering='crispEdges'%3E%3Crect x='0' y='0' width='2' height='1' fill-opacity='.75'/%3E%3Crect x='2' y='0' width='1' height='1' fill-opacity='.61'/%3E%3Crect x='0' y='1' width='1' height='1' fill-opacity='.75'/%3E%3Crect x='1' y='1' width='1' height='1' fill-opacity='.61'/%3E%3Crect x='2' y='1' width='1' height='1' fill-opacity='.75'/%3E%3Crect x='0' y='2' width='1' height='1' fill-opacity='.61'/%3E%3Crect x='1' y='2' width='2' height='1' fill-opacity='.75'/%3E%3C/svg%3E") repeat;
	opacity: 0;
	transition: opacity .3s linear;
	}

#faces .faces-box {
	position: absolute;
	left: 242px;
	top: 57px;
	width: 445px;
	height: 445px;
	border: 1px solid #222;
	background: #000;
	transform: scaleY(0);
	transition: transform .25s ease-out;
	}

#faces .faces-bar {
	position: absolute;
	left: 124px;
	top: 222px;
	width: 200px;
	height: 2px;
	background: #282828;
	opacity: 0;
	transition: opacity .15s linear;
	}

#faces .faces-photo {
	position: absolute;
	left: 0;
	top: 1px;
	width: 444px;
	height: 444px;
	opacity: 0;
	transition: opacity .5s linear;
	}

#faces .faces-close {
	position: absolute;
	right: 9px;
	top: 9px;
	margin: 0;
	color: #0093fd;
	font-size: 13px;
	line-height: 15px;
	opacity: 0;
	transition: opacity .5s linear;
	}

#faces.opening .faces-dim { opacity: 1; }
#faces.opening .faces-box { transform: scaleY(1); }
#faces.loading .faces-bar { opacity: 1; }
#faces.shown .faces-photo,
#faces.shown .faces-close { opacity: 1; }

/* Closing is instant, as in the original */
#faces.closing .faces-dim,
#faces.closing .faces-box,
#faces.closing .faces-bar,
#faces.closing .faces-photo,
#faces.closing .faces-close {
	transition: none;
	}

@media (prefers-reduced-motion: reduce) {
	#faces * { transition: none !important; }
	}
