.wf-loading * {
    /*
    first things first, we need to hide everything,
    but bear in mind that this will only take effect
    once the loading script has taken effect.
    here we're hiding all content within
    the <html> once it has the class "wf-loading"
    */
    opacity: 0;
}
html{
	width: 100%;
	min-height: 100%;
	margin-top: 0px; 
	margin-left: 0px;
	background: #FFFFFF; /* For browsers that do not support gradients */
/*	background-repeat: no-repeat;*/
/*	background: -webkit-linear-gradient(white, #ACACAC 300px);  For Safari 5.1 to 6.0 */ 
/*	background: -o-linear-gradient(white, #ACACAC 300px);  For Opera 11.1 to 12.0 */ 
/*	background: -moz-linear-gradient(white, #ACACAC 300px);  For Firefox 3.6 to 15 */ 
/*	background: linear-gradient(white, #ACACAC 300px);  Standard syntax */
}
body {
	width: auto;
	margin:0 auto;
	font-size: 16px;
	font-family: 'Open Sans', sans-serif; 
	font-display: optional;
	color: #444; 
	min-height: 350px;
	background: #FFFFFF; /* For browsers that do not support gradients */ 
/*	background-repeat: no-repeat; */
/*	background: -webkit-linear-gradient(white, #ACACAC 300px);  For Safari 5.1 to 6.0 */ 
/*	background: -o-linear-gradient(white, #ACACAC 300px);  For Opera 11.1 to 12.0 */ 
/*	background: -moz-linear-gradient(white, #ACACAC 300px);  For Firefox 3.6 to 15 */ 
/*	background: linear-gradient(white, #ACACAC 300px);  Standard syntax */
	-webkit-text-size-adjust: 100%;
/*	-ms-overflow-style:none; */
}
a {
	color: #FC4A1A;
	text-decoration: none;
	cursor: pointer;
}

.header{
	text-align: center; 
	width: 100%; 
	background: #444; 
	color: #fff;
}
.header a{
	color: #fff;
}
.controls{
    position: relative;
    margin-bottom: 0px;
    display: block;
    width: 100%;
    text-align: left;
    height: 60px;
    line-height: 60px;
    border-bottom: 0px solid #444;
    white-space: nowrap;
    box-sizing: border-box; 
    user-select: none;
    vertical-align: middle;
}
.headerlinks{
	display: inline-block;
	position: relative;
}
.headerlinks a{
    display: inline-block;
    margin-left: 30px;
    vertical-align: middle;
}
.headerlinksicon {
	display: none;
    margin-left: 30px;
    vertical-align: middle;
    margin: 0px;
    cursor: pointer;
}
.headerlinks-content {
    display: inline-block;
    text-align: left; 
    line-height: normal;  
    white-space: nowrap;
}
.logo{
	display: inline-block;
	font-family: 'Audiowide'; 
    font-size: 32px;
    line-height: 32px;
    margin-left: 20px;
    text-shadow: 2px 2px #000;
    color: #fff;
    vertical-align: middle;
    margin-bottom: 8px;
}
.userheader{
    text-align: right;
    position: absolute;
    right: 0px;
    top: 0px;
    display: block;
    line-height: 60px;
    height: 60px;
    padding: 0px;
    padding-right: 20px;
    margin: 0px;
    box-sizing: border-box;
    vertical-align: middle;
}
.userheader a{
    margin-left: 0px;
}
.userpic{
    width: 40px; 
    height: 40px; 
    border-radius: 50%;
    padding: 0px;
    margin: 0px;
    display: inline;
    vertical-align: middle;
    margin-bottom: 4px;
}
.userdownarrow{
    display: inline-block;
    height: 60px;
    line-height: 60px;
    vertical-align: top;
    font-size: 16px;
}
.user_login{
    font-size: 14px;
    color: silver;
    user-select: none;
    cursor: default;
    width: 100%;
    box-sizing: border-box;
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
}
.bgcolor {
	background: #444;
}
.nobgcolor {
	background: white;
}
.closebutton{
	color: #444;
}
.arrow {
	display: inline-block;
	vertical-align: middle; 
	width: 0; 
	height: 0; 
	border-top: 8px solid transparent; 
	border-bottom: 8px solid transparent; 
	border-right: 8px solid #FC4A1A;
}
.downarrow {
	display: inline-block;
	vertical-align: middle; 
	width: 0; 
	height: 0;
	margin: 0px;
	padding: 0px;
	border-top: 8px solid #FC4A1A; 
	border-left: 8px solid transparent; 
	border-right: 8px solid transparent;
}
.uparrow {
	display: inline-block;
	vertical-align: top; 
	width: 0; 
	height: 0;
	margin: 0px;
	padding: 0px;
	border-bottom: 8px solid #FC4A1A; 
	border-left: 8px solid transparent; 
	border-right: 8px solid transparent;
	font-size: 0px;
}
.arrowcontainer{
	position: absolute;
	padding: 0px;
	text-align: center;
	background: transparent;
	width: auto;
	height: 8px;
}
.bubbleuparrow, .bubbledownarrow, .bubbleuparrowafter, .bubbledownarrowafter{
/*
  display: inline-block;
  width: 0;
  height: 0;
  margin: 0px;
  padding: 0px;
  border-left: 8px solid transparent;
  border-right: 8px solid transparent;
*/
	bottom: 0%;
	left: 50%;
	border: solid transparent;
	content: "";
	height: 0;
	width: 0;
	position: absolute;
}
.bubbleuparrow {
	/*
  vertical-align: middle;
  border-top: 8px solid #FC4A1A;
  	*/
  	border-color: rgba(252, 74, 26, 0);
	border-top-color: #FC4A1A;
	border-width: 11px;
	margin-left: -11px;
}
.bubbleuparrowafter {
	border-color: rgba(242, 242, 242, 0);
	border-top-color: #f2f2f2;
	border-width: 8px;
	margin-left: -8px;
}
.bubbledownarrow {
	/*
  vertical-align: top;
  border-bottom: 8px solid #FC4A1A;
	*/
	border-color: rgba(252, 74, 26, 0);
	border-bottom-color: #FC4A1A;
	border-width: 11px;
	margin-left: -11px;
}
.bubbledownarrowafter {
	/*
  vertical-align: top;
  border-bottom: 8px solid #FC4A1A;
	*/
	border-color: rgba(242, 242, 242, 0);
	border-bottom-color: #f2f2f2;
	border-width: 8px;
	margin-left: -8px;
}
.bubbledialog{
	position: absolute;
	z-index: 1000;
/*	background: #FCEFEC; */
	background: #f2f2f2; 
	border: 2px solid #FC4A1A;
	border-radius: 10px;
	padding: 10px;
	box-shadow: 0 0 10px rgba(68,68,68,1);
}
/* Any scrollable list INSIDE a popup (dropdown .selector, .effectlist, font list, color list, ...) keeps its scroll from
   chaining out to the page -- an outside scroll is what BubbleDialog's close-on-scroll listens for, so containment here
   prevents an over-scroll at the list's top/bottom from dismissing the popup. No-op on non-scrolling descendants. */
.bubbledialog * { overscroll-behavior: contain; }
/* https://cssarrowplease.com/ */
.downbubbledialog:after, .downbubbledialog:before {
	bottom: 100%;
	left: 50%;
	border: solid transparent;
	content: "";
	height: 0;
	width: 0;
	position: absolute;
}
.downbubbledialog:after {
	border-color: rgba(242, 242, 242, 0);
	border-bottom-color: #f2f2f2;
	border-width: 8px;
	margin-left: -8px;
}
.downbubbledialog:before {
	border-color: rgba(252, 74, 26, 0);
	border-bottom-color: #FC4A1A;
	border-width: 11px;
	margin-left: -11px;
}
.upbubbledialog:after, .upbubbledialog:before {
	top: 100%;
	left: 50%;
	border: solid transparent;
	content: "";
	height: 0;
	width: 0;
	position: absolute;
	pointer-events: none;
}
.upbubbledialog:after {
	border-color: rgba(242, 242, 242, 0);
	border-top-color: #f2f2f2;
	border-width: 8px;
	margin-left: -8px;
}
.upbubbledialog:before {
	border-color: rgba(252, 74, 26, 0);
	border-top-color: #FC4A1A;
	border-width: 11px;
	margin-left: -11px;
}
.bubblecontainer{
	text-align: center;
	font-family: 'Open Sans', sans-serif !important;
	font-size: 14px;
/*	background: #f2f2f2; */
	display: inline-block;
	width: auto;
	height: auto;
}
.bubblecontainer .part{
	margin-bottom: 0px;
}
.bubblecontainer .inlinepart{
	margin-right: 10px;
}
.bubblecontainer .inlinepart:last-child{
	margin-right: 0px;
}
.selector{
	font-family: 'Open Sans', sans-serif !important; 
	font-size: 14px;
	width: auto;
	height: auto;
/*	min-width: 60px; */
	max-height: 200px;
	overflow-y: scroll;
	padding: 0px;
	scrollbar-width: thin;
}
.selector::-webkit-scrollbar {
	-webkit-appearance: none;
}
.selector::-webkit-scrollbar:horizontal {
	height: 8px;
}
.selector::-webkit-scrollbar:vertical {
	width: 8px;
}
.selector::-webkit-scrollbar-thumb {
	border-radius: 0px;
	border: 1px solid gray; /* should match background, can't be transparent */
	background-color: gray;
}
.selector::-webkit-scrollbar-track { 
	background-color: silver; 
/*	border-radius: 0px; */
}
.selectitem{
	padding: 2px 0px;
	padding-right: 18px;
	padding-left: 10px;
	width: 100%;
	color: #444;
	background: #fff;
	line-height: normal;
	cursor: pointer;
	border: none;
	border-top: 1px solid transparent;
	border-bottom: 1px solid transparent;
	box-sizing: border-box;
	user-select: none;
	text-align: left;
	white-space: nowrap;
}
.selectitem:hover{
	background: #4abdac; /* aqua color */
	color: #fff;
}
.selectheader{
	padding: 0px 5px;
	width: 100%;
	color: black;
	line-height: normal;
	font-weight: bold;
	background: #444;
	color: #fff;
	cursor: not-allowed;
	border-top: 1px solid transparent;
	border-bottom: 1px solid transparent;
	box-sizing: border-box;
	user-select: none;
}
.selecteditem{
	background: #FC4A1A;
	color: white;
}
.selecteditem:hover{
	background: #FC4A1A;
	color: white;
}
.colorbox{
	display: inline-block;
	width: 100%;
	height: 100%;
	border: 1px solid silver;
	box-sizing: border-box;
	margin-bottom: 0px;
	margin-right: 0px;
}
.colorboxbg{
	position: relative;
	display: inline-block;
	width: 20px;
	height: 20px;
	margin-bottom: 0px;
	margin-right: 0px;
	background: linear-gradient(45deg, rgba(0, 0, 0, 0.0980392) 25%, transparent 25%, transparent 75%, rgba(0, 0, 0, 0.0980392) 75%, rgba(0, 0, 0, 0.0980392) 0), linear-gradient(45deg, rgba(0, 0, 0, 0.0980392) 25%, transparent 25%, transparent 75%, rgba(0, 0, 0, 0.0980392) 75%, rgba(0, 0, 0, 0.0980392) 0), #eeeeee;
    background-repeat: repeat, repeat;
    background-position: 0px 0px, 5px 5px;
    background-size: 10px 10px, 10px 10px;
}
.colortextbox{
	display: inline-block;
	vertical-align: top;
	line-height: 18px;
	font-size: 14px;
	height: 18px;
	padding: 0px;
	margin: 0px;
	border: 1px solid transparent;
	margin-right: 4px;
}
.colortextbox:last-child{
	margin-right: 0px;
}

.searchterm {
	width: 120px;
	height: 30px;
	padding: 5px;
	margin: 0px;
	outline: 0px;
	border: 1px solid #E3E3E3;
	background: #fff; 
	line-height: 18px !important; 
	vertical-align: bottom; 
	font-size: 14px; 
	font-family: Open Sans, sans-serif;
	border-radius: 5px;
	box-sizing: border-box;
}
.searchterm:hover:enabled {
	border: 1px solid #FC4A1A; 
}
.searchterm:focus {
	outline:0;
}

.searchbutton { 
	height: 30px; 
	padding: 5px; 
	margin: 0px;
	margin-left: 2px;
	outline: 0;
	text-align: center;
	line-height: 18px !important; 
	font-size: 14px !important;
	font-family: 'Open Sans', sans-serif !important; 
	background: #444;
	border: 1px solid #E3E3E3;
	border-radius: 5px;
	color: white;
	vertical-align: bottom;
	cursor: pointer;
	user-select: none;
	-webkit-appearance: none;
	box-sizing: border-box;
}
.searchbutton:hover:enabled {
	/*	background-color: #F7B733;
	background-image: linear-gradient(transparent, rgba(0, 0, 0, 0.15));
	-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#00000000, endColorstr=#26000000)";
	*/
	border: 1px solid #FC4A1A; 
}
.searchbutton:focus {
	outline:0;
}
.searchbutton:disabled {
	color: gray;
	cursor: auto;
}
.wideicon{
	display: inline-block;
	color: #fff;
	background: transparent;
	border: 2px solid #fff;
	height: 14px;
	width: 24px;
	margin: 0px 3px;
	box-sizing: border-box;
}
.squareicon{
	display: inline-block;
	color: #fff;
	background: transparent;
	border: 2px solid #fff;
	height: 14px;
	width: 14px;
	margin: 0px 3px;
	box-sizing: border-box;
}
.verticon{
	display: inline-block;
	color: #fff;
	background: transparent;
	border: 2px solid #fff;
	height: 14px;
	width: 8px;
	margin: 0px 3px;
	box-sizing: border-box;
}
.googlesignin {
	background: url('/images/googlesignin/sprites.png') 0 -93px;
	background-size: 191px 184px;
	height: 46px;
	width: 191px;
	display: inline-block;
/*	background-repeat: no-repeat; 
    background-attachment: fixed;
    background-position:; */
}
.googlesignin:disabled {
/*	background-image: url('/images/googlesignin/btn_google_signin_dark_disabled_web@2x.png'); */
	background-position: 0 0;
}
.googlesignin:focus {
/*	background-image: url('/images/googlesignin/btn_google_signin_dark_focus_web@2x.png'); */
	background-position: 0 -139px;
}
.googlesignin:active {
/*	background-image: url('/images/googlesignin/btn_google_signin_dark_pressed_web@2x.png'); */
	background-position: 0 -46px;
}
.pagetitle {
	font-size: 24px;
	font-family: 'Open Sans';
	font-weight: bold;
	box-sizing: border-box;
}
.splash{
	color: #444;
	padding-left: 10px;
	padding-right: 10px;
	max-width: 100%;
	display: block; 
/*	height: 500px;  */
	min-height: 500px;
	overflow: visible;
	margin-bottom: 0px; 
	text-align: center;
}
.bigsplash{
	color: #444;
	padding-left: 10px;
	padding-right: 10px;
	max-width: 100%;
	display: block; 
	height: 500px;
	min-height: 500px;
	overflow: visible;
	margin-bottom: 0px; 
	text-align: center;
}
.splashlearnmore{
	color: #444; 
	padding: 0px 60px; 
	max-width: 100%; 
	display: inline-block; 
	min-height: 100vh; 
	width: 1280px; 
	margin: 0 auto;
	margin-bottom: 20px;
	box-sizing: border-box;
}
.paddedlearnmore{
	color: #444; 
	padding: 0px 70px; 
	max-width: 100%; 
	display: inline-block;  
	width: 1300px; 
	margin: 0 auto;
	margin-bottom: 20px;
	box-sizing: border-box;
}
.splashlearnmoretitle{
	color: #444; 
	font-size: 28px; 
	margin-bottom: 20px; 
	font-weight: bold; 
	font-family: 'Poppins'; 
	text-align: center;
}
.splashlearnmorebyline{
	font-size: 24px;
}
.splashtitle{
	font-size: 60px; 
	font-weight: bold; 
	font-family: 'Poppins';
}
.splashsection{
	padding: 0px;
	overflow: hidden; 
	margin-top: 120px; 
}
.bigsplashsection{
	overflow: hidden; 
	max-width: 100%; 
	width: 1280px;
	height: 500px;
	line-height: 500px;
	display: inline-block; 
	padding: 0px 60px; 
	box-sizing: border-box; 
	background: transparent;
	color: white; 
	margin-top: 0px;
}
h1{
	font-size: 48px; 
	font-weight: bold;
	font-family: 'Poppins';
	margin: 10px 0px;
}
h2{
	font-size: 36px; 
	font-weight: bold; 
	font-family: 'Poppins';
	margin: 10px 0px;
}
h3{
	font-size: 24px; 
	font-weight: bold; 
	font-family: 'Poppins';
	margin: 10px 0px;
}
.splashread{
	display: inline-block;
	margin: 0 auto;
	margin-top: 90px;
	text-align: left;
	font-size: 20px;
	line-height: 175%;
	max-width: 800px;
}
.splashread h1{
	margin: 30px 0px;
}
.splashread h2{
	margin: 30px 0px;
}
.splashread h3{
	margin: 30px 0px;
}
.splashawesome{
	display: inline-block; 
	font-size: 24px;
	font-family: 'Open Sans', sans-serif !important; 
	background: #FC4A1A;
	border: 1px solid #FC4A1A;
	border-radius: 3px;
	color: white;
	width: 45px; 
	padding: 5px 2px; 
	text-align: center;
	margin-right: 5px;
}
.splashbyline{
	font-size: 24px;
	margin-top: 30px;
	margin-bottom: 30px;
	line-height: 150%;
}
.splashbutton{
	display: inline-block; 
	background: #FC4A1A; 
	font-size: 24px; 
	padding: 10px 20px;
	font-family: 'Open Sans', sans-serif !important; 
	border: 1px solid #FC4A1A;
	border-radius: 3px;
	color: white;
	cursor: pointer;
	user-select: none;
	-webkit-appearance: none;
}
.splashbuttonrow{
	margin-top: 0px; 
	text-align: center; 
	font-weight: normal;
}
.splashimgright{
	float: right;
	display: inline-block; 
	text-align: right; 
	box-sizing: border-box;
	padding: 0px;
	padding-left: 10px; 
	max-width: 554px;
	width: calc(50% - 10px);
/*	height: 324px;
	line-height: 324px; */
	vertical-align: middle;
}
.bigsplashimgright{
	float: right;
	display: inline-block; 
	text-align: right; 
	box-sizing: border-box;
	padding: 0px;
	padding-left: 10px; 
	max-width: 554px;
	width: calc(50% - 10px);
	height: 500px;
	line-height: 500px;
	vertical-align: middle;
}
.splashimgleft{
	float: left;
	display: inline-block; 
	text-align: left; 
	box-sizing: border-box;
	padding: 0px; 
	padding-right: 10px; 
	max-width: 554px;
	width: calc(50% - 10px);
/*	height: 324px;
	line-height: 324px; */
	vertical-align: middle;
}
.splashtblleft{
	float: left;
	font-size: 20px;
	padding: 0px;
	padding-right: 10px;
	padding-top: 10px; 
	box-sizing: border-box;
	max-width: 554px;
	height: auto; 
	width: calc(50% - 10px);
}
.bigsplashtblleft{
	float: left;
	font-size: 20px;
	padding: 0px;
	padding-right: 10px; 
	box-sizing: border-box;
	max-width: 554px;
	height: 500px; 
	width: calc(50% - 10px);
}
.splashtblright{
	float: right;
	font-size: 20px;
	padding: 0px;   
	padding-left: 10px;
	padding-top: 10px;
	box-sizing: border-box;
	max-width: 554px;
	height: auto; 
	width: calc(50% - 10px);
}
.splashtbltext{
	display: inline-block; 
	text-align: left; 
	width: 100%;
	line-height: 175%;
}
.splashtbltext h1{
	font-size: 18px; 
	font-weight: bold;
	margin: 10px 0px;
	font-family: 'Open Sans';
	text-transform: uppercase;
	color: #444;
	line-height: 32px;
	text-overflow: ellipsis;
	white-space: nowrap;
	overflow: hidden;
}
.splashtbltext h1::first-line{
	font-size: 32px; 
	font-family: 'Poppins';
	line-height: 32px;
}
.splashimg{
/*	border: 3px solid #eeeeee;*/
	width: 100%; 
	max-width: 100%; 
	box-sizing: border-box;
}
.splashtexttitle{
	font-size: 36px; 
	font-weight: bold; 
	margin-bottom: 10px;
	font-family: 'Poppins';
}
.videorevolver{
	display: block; 
	cursor: pointer; 
	border: 0; 
	width: 100%; 
	object-fit: contain; 
	background: transparent;
}
.revolvervideo{
	border-radius: 10px;
}
.lazy{
	background: transparent;
}
.shadowPlaceHolder{
	display: none;
	width: 1px;
	height: 1px;
}
.cropPlaceHolder{
	display: none;
	width: 1px;
	height: 1px;
}
.socialcircle {
	display: table-cell; 
	font-size: 22px; 
	width: 44px; 
	height: 44px; 
	vertical-align: middle; 
	border-radius: 50%; 
	background: #ffffff;
	border: 1px solid #444;
	color: #444;
	text-align: center;
	white-space: normal;
}
.socialcircle:hover {
	background: #FC4A1A;
	color: #ffffff;
	border: 1px solid #FC4A1A;
}
.emptybox{
	display: inline-block;
	background: #ffffff;
	width: 10px;
	height: 10px;
	margin: 0px;
	border: 1px solid #444;
	margin-right: 1px;
	margin-bottom: 2px; /* To account for border in vertical spacing */
	vertical-align: middle;
}
.fillbox{
	display: inline-block;
	background: #444;
	width: 10px;
	height: 10px;
	margin: 0px;
	border: 1px solid #444;
	margin-right: 1px;
	margin-bottom: 2px; /* To account for border in vertical spacing */
	vertical-align: middle;
}
.fillbox:last-child{
	margin-right: 0px;
}
.emptybox:last-child{
	margin-right: 0px;
}
.boxsequence{
	width: 100%;
}
.boxbutton{
	display: flex;
	flex-wrap: wrap;
  	justify-content: center;
  	align-items: center;
  	align-content: center;
	background: #fff;
	color: #444;
	margin-right: 4px;
	vertical-align: middle;
	font-size: 14px;
	line-height: 14px;
	cursor: pointer;
	width: 65px;
	height: 55px;
	padding: 3px;
	font-family: Open Sans;
}
.boxbutton:last-child{
	margin-right: 0px;
}
.footerlists{
	margin: 0 auto;
	display: inline-flex;
	flex-direction: row;
	flex-wrap: wrap;
	justify-content: center;
	align-content: flex-start;
	align-items: flex-start;
	width: auto;
	gap: 50px;
	padding: 50px;
	text-align: left;
	/* width:auto makes this shrink-to-fit, so below ~360px it sized itself to the hard
	   300px .footerlistcontainer and then added its own padding outside that -- 340px of
	   footer inside a 300px column, which widened the whole document on every page. These
	   two lines only bind when the parent is actually narrower than the content, so wider
	   viewports are untouched: border-box puts the padding inside the cap rather than on
	   top of it, and the cap is what finally gives .footerlistcontainer's max-width:100%
	   something definite to resolve against (against a shrink-to-fit parent it was
	   circular, which is why it never did anything). */
	max-width: 100%;
	box-sizing: border-box;
}
.footerlistcontainer{
	vertical-align: top;
	display: inline-block;
	width: 300px;
/*	margin: 35px; */
	text-align: left;
}
.footerlistheader{
	font-family: Poppins;
	font-weight: bold;
	text-transform: uppercase;
	text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
    margin: 15px 0px;
}
.footerlist{
	list-style-type: none;
	list-style-position: outside;
	padding: 0px;
	margin: 0px;
}
.footerlist li{
	text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
    margin: 15px 0px;
}
.effectlist{
	text-align: left;
	overflow-y: auto;
	width: 310px;
	height: 105px;
	margin: 0 auto;
	font-size: 0px;
/*	background: #fff; */
	user-select: none;
}

.effectlist::-webkit-scrollbar {
	-webkit-appearance: none;
}

.effectlist::-webkit-scrollbar:horizontal {
	height: 8px;
}

.effectlist::-webkit-scrollbar:vertical {
	width: 8px;
}

.effectlist::-webkit-scrollbar-thumb {
	border-radius: 0px;
	border: 1px solid gray; /* should match background, can't be transparent */
	background-color: gray;
}

.effectlist::-webkit-scrollbar-track { 
	background-color: silver; 
/*	border-radius: 0px; */
}

.effectcanvas {
	display: inline-block; 
	background: transparent; 
	vertical-align: middle; 
	margin-right: 0px; 
	margin-bottom: 0px; 
	cursor: pointer;
	padding: 0px;
	margin: 2px;
/*	border: 1px solid transparent; */
	outline: 0;
}
.popupselected{
/*	border: 1px solid #FC4A1A; */
	background: #FC4A1A;
}
/* Customize the label (the container) */
.cbcontainer {
  display: inline-block;
  position: relative;
  padding-left: 24px;
  margin: 0px;
  cursor: pointer;
  font-size: 14px;
  line-height: 14px;
  height: 14px; 
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

/* Hide the browser's default checkbox */
.cbcontainer input {
  position: absolute;
  opacity: 0;
  cursor: pointer;
  height: 0;
  width: 0;
}

/* Create a custom checkbox */
.checkmark {
  position: absolute;
  top: 0;
  left: 0;
  height: 14px;
  width: 14px;
  background-color: #fff;
  border: 1px solid silver;
}

/* On mouse-over, add a grey background color */
.cbcontainer:hover input ~ .checkmark {
/*  background-color: silver; */
}

/* When the checkbox is checked, add a blue background */
.cbcontainer input:checked ~ .checkmark {
  background-color: #444;
}

/* Create the checkmark/indicator (hidden when not checked) */
.checkmark:after {
  content: "";
  position: absolute;
  display: none;
}

/* Show the checkmark when checked */
.cbcontainer input:checked ~ .checkmark:after {
  display: block;
}

/* Style the checkmark/indicator */
.cbcontainer .checkmark:after {
  left: 4px;
  top: 0px;
  width: 4px;
  height: 9px;
  border: solid white;
  border-width: 0 2px 2px 0;
  -webkit-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
}

.toplayer{ 
	margin-top: 20px;
	box-sizing: border-box;
	padding: 10px;
}
.toplayerinfo{
	padding-left: 20px; 
	padding-bottom: 5px; 
	width: auto; 
	display: table-cell; 
	vertical-align: bottom; 
	text-align: left;
}
.bigimagebox{
	position: relative;
	width: 102px; 
	display: table-cell; 
	vertical-align: bottom; 
	text-align: center;
}
.bigimage{
	width: 100px; 
	height: 100px; 
	vertical-align: middle; 
	border: 1px solid silver; 
	border-radius: 50%;
}
.accountbox{
	text-align: left; 
	font-size: 18px; 
	border: 1px solid silver; 
	width: 800px; 
	max-width: 100%;
	margin: 0 auto;
	background: #ffffff; 
	padding: 20px;
	-webkit-box-sizing: border-box; 
	-moz-box-sizing: border-box;
	box-sizing: border-box;
}
.updatepic{
	display: block; 
	width: 100%; 
	position: absolute; 
	top: 100px; 
	text-align: center;
}
.checkerinspector{
	background-color: #e5e5f7;
	opacity: 0.8;
	background-image:  repeating-linear-gradient(45deg, #444 25%, transparent 25%, transparent 75%, #444 75%, #444), repeating-linear-gradient(45deg, #444 25%, #e5e5f7 25%, #e5e5f7 75%, #444 75%, #444);
	background-position: 0 0, 10px 10px;
	background-size: 20px 20px;
}
.checkerboard{
	background: linear-gradient(45deg, rgba(0, 0, 0, 0.0980392) 25%, transparent 25%, transparent 75%, rgba(0, 0, 0, 0.0980392) 75%, rgba(0, 0, 0, 0.0980392) 0), linear-gradient(45deg, rgba(0, 0, 0, 0.0980392) 25%, transparent 25%, transparent 75%, rgba(0, 0, 0, 0.0980392) 75%, rgba(0, 0, 0, 0.0980392) 0), #eeeeee;
    background-repeat: repeat, repeat;
    background-position: 0px 0px, 5px 5px;
    background-size: 10px 10px, 10px 10px;
}
.tinycheckerboard{
	background: linear-gradient(45deg, rgba(0, 0, 0, 0.0980392) 25%, transparent 25%, transparent 75%, rgba(0, 0, 0, 0.0980392) 75%, rgba(0, 0, 0, 0.0980392) 0), linear-gradient(45deg, rgba(0, 0, 0, 0.0980392) 25%, transparent 25%, transparent 75%, rgba(0, 0, 0, 0.0980392) 75%, rgba(0, 0, 0, 0.0980392) 0), #eeeeee;
    background-repeat: repeat, repeat;
    background-position: 0px 0px, 2px 2px;
    background-size: 4px 4px, 4px 4px;
}
.diagonallines {
	background-color: #fff;
	opacity: 1;
	background: repeating-linear-gradient( 45deg, #444, #444 4px, #fff 4px, #fff 20px );
}
.zigzag {
	background-color: #fff;
	opacity: 1;
	background-image:  linear-gradient(135deg, #444 25%, transparent 25%), linear-gradient(225deg, #444 25%, transparent 25%), linear-gradient(45deg, #444 25%, transparent 25%), linear-gradient(315deg, #444 25%, #fff 25%);
	background-position:  11px 0, 11px 0, 0 0, 0 0;
	background-size: 22px 22px;
	background-repeat: repeat;
}
.redzigzag {
	background-color: #fff;
	opacity: 1;
	background-image:  linear-gradient(135deg, #FC4A1A 25%, transparent 25%), linear-gradient(225deg, #FC4A1A 25%, transparent 25%), linear-gradient(45deg, #FC4A1A 25%, transparent 25%), linear-gradient(315deg, #FC4A1A 25%, #fff 25%);
	background-position:  11px 0, 11px 0, 0 0, 0 0;
	background-size: 22px 22px;
	background-repeat: repeat;
}
.dots{
	background-color: #444;
	opacity: 1;
	background-image: radial-gradient(#fff 0.45px, #444 0.45px);
	background-size: 9px 9px;
}
.reddots{
	background-color: #FC4A1A;
	opacity: 1;
	background-image: radial-gradient(#fff 0.45px,  #FC4A1A 0.45px);
	background-size: 9px 9px;
}
.dropdown {
    position: relative;
    display: inline-block;
    user-select: none;
}

/* Dropdown Content (Hidden by Default) */
.dropdown-content {
    display: none;
    position: absolute;
    right: 10px;
    top: 55px;
    padding: 10px;
    background-color: white;
    min-width: 126px;
    box-shadow: 0 0 8px rgba(0,0,0,0.2);
    z-index: 99;
    font-size: 14px; 
    width: 150px; 
    text-align: left; 
    line-height: normal;  
    white-space: normal;
    border-radius: 5px;
} 
.dropdown:hover .dropdown-content {
	display: block;
}
/* For mobile no hover */
.mobile-dropdown-content {
    display: none;
    position: relative;
    right: -5px;
    top: -5px;
    padding: 10px;
    background-color: white;
    min-width: 126px;
    box-shadow: 0 0 8px rgba(0,0,0,0.2);
    z-index: 99;
    font-size: 14px; 
    width: 150px; 
    text-align: left; 
    line-height: normal;  
    white-space: normal;
}
.inline-dropdown {
    position: relative;
    display: inline-block;
    user-select: none;
}

/* Dropdown Content (Hidden by Default) */
.inline-dropdown-content {
    display: none;
    position: absolute;
    right: -5px;
    padding: 10px;
    background-color: white;
    min-width: 126px;
    box-shadow: 0px 8px 16px 0px rgba(0,0,0.5,0.5);
    z-index: 99;
    font-size: 14px; 
    width: 126px; 
    text-align: left; 
    line-height: normal;  
    white-space: normal;
}

.inline-dropdown:hover .inline-dropdown-content {
	display: block;
}

.inline-dropdown:hover .editbutton {
	border: 1px solid #f2f2f2;
}

.fancy-inline-dropdown {
    position: relative;
    display: inline-block;
    user-select: none;
}

/* Dropdown Content (Hidden by Default) */
.fancy-inline-dropdown-content {
    display: none;
    position: absolute;
    right: 0px;
/*    box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.5); */
    z-index: 99;
    font-size: 14px; 
    text-align: left; 
    line-height: normal;  
    white-space: normal;
}
.fancy-inline-dropdown-content-menu{
	margin: 0px;
	border: 3px solid #444;
	border-radius: 9px; padding: 10px;
	background: #fff;
	box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.5);
}

.fancy-inline-dropdown:hover .fancy-inline-dropdown-content {
	display: block;
}
.bloglist{
	margin: 0 auto;
	display: block;
	width: 100%;
	max-width: 1280px;
	font-family: Open Sans;
	text-align: left;
	padding: 0px;
	font-size: 24px;
	box-sizing: border-box;
}
.blog{
	display: inline-block; 
	margin: 10px 10px;
	padding: 40px;
	border: 0; 
	box-sizing: border-box;
	width: calc(100% - 20px);
	vertical-align: top;
	background: #f2f2f2;
	border-radius: 10px;
	box-shadow: none;
	color: #000;
}
.blog:hover{
	box-shadow: 1px 1px 10px #444;
}
.blogimgcont{
	display: inline-block; 
	text-align: right; 
	box-sizing: border-box;
	padding: 0px; 
	padding-right: 20px; 
	width: calc(30% - 20px);
	max-width: 382px;
	vertical-align: top;
}
.blogimg{
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.bloginfo{
	display: inline-block;
	width: 70%;
	text-align: left;
	vertical-align: top;
}
.bloginfo h3{
	font-size: 20px; 
	font-weight: bold; 
	font-family: 'Poppins';
	margin-top: 0px;
}
.blogtitle{
	font-size: 20px; 
	font-weight: bold; 
	font-family: 'Poppins';
}
.blogdate{
	margin-top: 5px;
	margin-bottom: 5px;
	font-size: 12px;
	text-transform: uppercase;
}
.blogdesc{
	display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden; 
	font-size: 18px;
	text-align: left; 
	width: 100%;
	line-height: 150%;
}
.project{
	display: inline-block; 
	padding: 20px; 
	border: 0; 
	width: 25%;
	box-sizing: border-box;
}

.projectimg{
	width: 100%;
	display: block;
	position: relative;
}

.projectimg:after{
	padding-top: 56.25%;
  	/* 16:9 ratio */
  	display: block;
  	content: '';
}

.projectimgcont{
	position: absolute;
  	top: 0;
  	bottom: 0;
  	right: 0;
  	left: 0;
}

.projectvid{
	vertical-align: middle;
	width: 100%;
	display: block;
	position: relative;
}

.projectvid:after{
	padding-top: 56.25%;
  	/* 16:9 ratio */
  	display: block;
  	background: transparent url(https://res.cloudinary.com/slimanimation/image/upload/v1560457651/docs/Spinner-1s-100px.gif) no-repeat 50% 50%;
  	content: '';
}

.projectvidsq{
	vertical-align: middle;
	width: 100%;
	display: block;
	position: relative;
}

.projectvidsq:after{
	padding-top: 100%;
  	/* 16:9 ratio */
  	display: block;
  	background: transparent url(https://res.cloudinary.com/slimanimation/image/upload/v1560457651/docs/Spinner-1s-100px.gif) no-repeat 50% 50%;
  	content: '';
}

.projectvidvert{
	vertical-align: middle;
	width: 100%;
	display: block;
	position: relative;
}

.projectvidvert:after{
	padding-top: 177.78%;
  	/* 16:9 ratio */
  	display: block;
  	background: transparent url(https://res.cloudinary.com/slimanimation/image/upload/v1560457651/docs/Spinner-1s-100px.gif) no-repeat 50% 50%;
  	content: '';
}

.projectvidcont{
	position: absolute;
  	top: 0;
  	bottom: 0;
  	right: 0;
  	left: 0;
}

input{
	font: 400 18px 'Open Sans';
}

input[type=number]::-webkit-inner-spin-button, 
input[type=number]::-webkit-outer-spin-button { 
  -webkit-appearance: none; 
  margin: 0; 
}

.logininput {
	width: 100%;
	font-size: 18px;
	font-family: 'Open Sans' !important;
	padding: 2px;
	margin-bottom: 3px;
	margin-left: 0px;
	margin-right: 0px;
	margin-top: 0px;
	
	background-color: #ffffff !important;
	border: 1px solid silver !important;
	-webkit-appearance: none;
	border-radius: 0;
}
.logininput:-webkit-autofill {
    -webkit-box-shadow: 0 0 0 30px #ffffff inset;
}
.logininput:focus {
	outline:0;
	border: 1px solid #FC4A1A !important;
}
.logininput:disabled {
	color: #C0C0C0;
}
.loginlabel {
	font-size: 18px;
	font-weight: normal;
	padding: 2px;
	margin-bottom: 0px;
	margin-left: 0px;
	margin-right: 0px;
	margin-top: 0px;
	display: inline-block;
}
.usermenu {
	display: inline-block;
	font-size: 14px !important; 
	padding: 10px; 
	width: 100%;
	color: #444 !important;
	background: white !important;
	box-sizing: border-box;
	cursor: pointer;
}
.usermenu:hover {
	color: white !important;
	background: #444 !important;
}
.addmenu {
	display: inline-block;
	font-size: 14px !important; 
	padding: 0px 10px;
	margin: 0px;
	width: 100%;
	color: #444;
	background: #f2f2f2;
	box-sizing: border-box;
	cursor: pointer;
	text-align: left;
	line-height: 24px;
	border: none;
	white-space: nowrap;
}
.addmenu:hover:enabled {
	color: #f2f2f2;
	background: #444;
	border: none;
}
.addmenu:focus {
	outline: 0;
}
.addmenu:disabled {
	cursor: auto;
	color: #BEBEBE;
}
.tab{
	font-size: 18px;
	font-family: 'Open Sans', sans-serif !important; 
	background: transparent;
	border: none;
/*	border-bottom: 1px solid transparent; */
	color: #FC4A1A;
	cursor: pointer;
	user-select: none;
	-webkit-appearance: none;
	padding-top: 0px;
	padding-bottom: 3px;
	padding-left: 5px; 
	padding-right: 5px;
	margin-right: 20px; 
}
.tab:focus {
	outline:0;
}
.tab:disabled {
	color: #444;
	background: transparent;
	border: none;
	border-bottom: 1px solid #444;
	cursor: auto;
}
.atab{
	font-size: 18px;
	font-weight: bold;
	font-family: 'Open Sans', sans-serif !important; 
	background: transparent;
	border: none;
/*	border-bottom: 1px solid transparent; */
	color: #FC4A1A;
	cursor: pointer;
	user-select: none;
	-webkit-appearance: none;
	padding-top: 0px;
	padding-bottom: 3px;
	padding-left: 5px; 
	padding-right: 5px;
	margin-right: 15px; 
}
.atab:focus {
	outline:0;
}
.atabdisabled {
	color: #000;
	background: transparent;
	border: none;
	border-bottom: 1px solid #000;
	pointer-events: none;
  	cursor: default;
}
.tabbutton{
	font-size: 18px;
	font-family: 'Open Sans', sans-serif !important; 
	background: #FC4A1A;
	border: 1px solid #FC4A1A;
	border-top-right-radius: 5px;
	border-top-left-radius: 5px;
	color: white;
	cursor: pointer;
	user-select: none;
	-webkit-appearance: none;
}
.tabbutton:focus {
	outline:0;
}
.tabbutton:disabled {
	background: #444;
	border: 1px solid transparent;
	cursor: auto;
}
.editnodebutton{
	display: inline-block;
	font-family: 'Open Sans', sans-serif !important; 
	font-size: 14px; 
	text-align: center;
	background: #fff;
	padding: 0px 5px;
	border: 1px solid #E3E3E3;
	color: #444;
	border-radius: 5px;
	vertical-align: middle;
	outline: 0;
	margin: 0px;
	height: 30px;
	box-sizing: border-box;
	cursor: pointer;
	user-select: none;
	-webkit-user-select: none;
	-webkit-appearance: none;
	font-weight: normal;
	
/*	-webkit-appearance: none; */
}
.editnodebutton:hover:enabled {
	border: 1px solid #FC4A1A; 
}
.nodeeffectdiv{
	display: inline-block;
	font-family: 'Open Sans', sans-serif !important; 
	font-size: 14px; 
	text-align: center;
	background: transparent;
	padding: 0px ;
	color: #444;
	vertical-align: middle;
	margin: 0px;
	height: 30px;
	line-height: 30px;
	vertical-align: middle;
	box-sizing: border-box;
	user-select: none;
	-webkit-user-select: none;
	-webkit-appearance: none;
	font-weight: normal;
}
.actionbutton{
	font-size: 16px;
	font-family: 'Open Sans', sans-serif !important; 
	background: #FC4A1A;
	padding: 3px 10px;
	border: 1px solid #FC4A1A;
	border-radius: 3px;
	color: white;
	cursor: pointer;
	user-select: none;
	-webkit-user-select: none;
	-webkit-appearance: none;
	font-weight: bold;
	text-transform: uppercase;
}
.actionbutton:hover:enabled {
	/*	background-color: #F7B733;
	background-image: linear-gradient(transparent, rgba(0, 0, 0, 0.15));
	-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#00000000, endColorstr=#26000000)";
	*/
	border: 1px solid #FFF; 
}
.actionbutton:focus {
	outline:0;
}
.actionbutton:disabled {
	color: #e3e3e3;
	background: #fff;
	border: 1px solid #e3e3e3;
	cursor: auto;
}
/* Upload trigger in the Uploads tab of the image and video selectors. It shares the tab
   right-hand slot with the Unsplash/Pixabay sort dropdowns, but unlike those it is the
   tab primary action, so it carries .actionbutton white-on-#FC4A1A instead of the
   neutral .selectbutton fill. This class only rescales it -- .actionbutton is 16px and
   sized for page-level buttons, and this has to sit on the same 30px control row as the
   dropdowns beside it. position:relative is required: BubbleDialog appends its
   .bubbledialog popup (position:absolute) into this button. */
/* Uploads grid while files are dragged over it. Outline rather than border so switching
   it on does not resize the box and reflow the grid underneath. */
/* Empty Uploads tab. This is the only place the drop zone advertises itself: a permanent
   background behind a full grid of thumbnails would be noise for a hint you need once, and
   an empty library is exactly when there is nothing else to look at. It renders inside
   .searchmessage, which supplies the centring and the 450px cap. */
/* Sits in the dead space left of the Upload button. Ellipsised rather than wrapped: it
   shares a fixed 30px row with the button, so a second line would overlap the grid. */
.drophint{
	float: left;
	max-width: 60%;
	font-size: 13px;
	line-height: 30px;
	color: #a8a29b;
	user-select: none;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.drophint i{
	margin-right: 6px;
	color: #c9c4bd;
}

.dropinvite{
	border: 2px dashed #dcdcdc;
	border-radius: 8px;
	padding: 34px 20px;
	color: #8a837c;
	font-size: 16px;
	font-weight: 600;
}
.dropinvite i{
	display: block;
	font-size: 34px;
	color: #c9c4bd;
	margin-bottom: 12px;
}
.dropinvitesub{
	font-size: 14px;
	font-weight: normal;
	margin-top: 6px;
	color: #a8a29b;
}

.dropactive{
	outline: 2px dashed #FC4A1A;
	outline-offset: -6px;
	background: #FFF6F3;
	min-height: 120px;
}

.uploadbutton{
	display: inline-flex;
	flex-direction: row;
	flex-wrap: nowrap;
	justify-content: center;
	align-items: center;
	position: relative;
	width: auto;
	height: 30px;
	padding: 0px 14px;
	font-size: 14px;
	line-height: 20px;
	border-radius: 5px;
	box-sizing: border-box;
}
.inlineactionbutton{
	font-size: 18px;
	line-height: 18px;
	font-family: 'Open Sans', sans-serif !important; 
	background: #FFF;
	padding: 5px;
	border: 1px solid #444;
	border-radius: 5px;
	color: #444;
	cursor: pointer;
	user-select: none;
	-webkit-user-select: none;
	-webkit-appearance: none;
}
.inlineactionbutton:hover:enabled {
	/*	background-color: #F7B733;
	background-image: linear-gradient(transparent, rgba(0, 0, 0, 0.15));
	-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#00000000, endColorstr=#26000000)";
	*/
	border: 1px solid #FC4A1A; 
}
.inlineactionbutton:focus {
	outline:0;
}
.inlineactionbutton:disabled {
	color: #e3e3e3;
	border: 1px solid #e3e3e3;
	cursor: auto;
}

.cropbutton{
	padding: 5px 0px;
	font-size: 12px;
	line-height: 12px;
	border-radius: 5px;
	margin: 0px;
	border: 1px solid #e3e3e3;
	outline: 0px; 
	cursor: pointer;
	height: 22px;
	width: 22px;
	background: #fff;
	color: #444 !important;
	display: inline-block;
}
.iconbutton{
	font-size: 18px; 
	vertical-align: middle; 
	line-height: 24px; 
	margin-left: 3px;
	margin-right: 3px; 
	width: auto;
	height: 30px; 
	background: transparent;
	text-align: left; 
	font-weight: normal;
	padding: 0px 7px;
	box-sizing: border-box;
	font-family: 'Open Sans', sans-serif !important; 
	border: 1px solid transparent;
	border-radius: 3px;
	color: #FFF;
	cursor: pointer;
	-webkit-appearance: none;
	user-select: none;
	-webkit-user-select: none; /* Safari 3.1+ */
  	-moz-user-select: none; /* Firefox 2+ */
  	-ms-user-select: none;
	white-space: nowrap;
}
.iconbutton:focus {
	outline:0;
}
.iconbutton:disabled {
	color: #888888;
	cursor: auto;
}

.editbutton{
	display: inline-block;
	width: auto;
	font-size: 14px; 
	vertical-align: middle; 
	line-height: 24px; 
	margin: 5px 0px; 
/*	width: 100%;  */
	background: transparent;
	text-align: center; 
	font-weight: normal;
	padding: 3px;
	box-sizing: border-box;
	font-family: 'Open Sans', sans-serif !important; 
	border: 1px solid transparent;
	border-radius: 3px;
	color: white;
	cursor: pointer;
	-webkit-appearance: none;
	user-select: none;
	-webkit-user-select: none; /* Safari 3.1+ */
  	-moz-user-select: none; /* Firefox 2+ */
  	-ms-user-select: none;
	white-space: nowrap;
}
.editbutton:hover:enabled {
	background: #4ABDAC;
	/*
	background-image: linear-gradient(transparent, rgba(0, 0, 0, 0.15));
	-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#00000000, endColorstr=#26000000)";
	*/
/*	border: 1px solid #f2f2f2; */
}
.editbutton:focus {
	outline:0;
}
.editbutton:disabled {
	color: gray;
	cursor: auto;
}
.blackbanner{
	width: 100%; font-size: 36px; font-family: Poppins; font-weight: bold; background: #000; color: #fff; padding: 30px; box-sizing: border-box; background-image: linear-gradient(to right, rgb(0,0,0), rgb(68,68,68));
}
.gradientbanner{
	width: 100%; 
	background: rgb(68,68,68);
	background: linear-gradient(73deg, rgba(68,68,68,1) 0%, rgba(252,74,26,1) 100%);
	color: #fff;
	padding: 40px;
	box-sizing: border-box;
	font-size: 36px;
	font-family: Poppins;
	font-weight: bold;
	margin-top: 40px;
	margin-bottom: 40px;
	border-radius: 5px;
}
.infoflex{
	display: flex;
	flex-wrap: wrap;
}
.infobox{
	flex: 1;
	vertical-align: top;
	background: #fff;
	padding: 20px;
	color: #000;
	border: 2px solid silver;
	border-radius: 10px;
/*	min-width: 300px; */
	margin: 20px;
	box-sizing: border-box;
}
.greentored{
	width: 100%; 
	background: rgb(6,190,182);
	background: linear-gradient(73deg, rgba(6,190,182,1) 0%, rgba(252,74,26,1) 100%);
	padding: 40px;
	box-sizing: border-box;
	margin: 40px 0px;
	color: #fff;
}
.modal {
	position: fixed; /* Stay in place */
	z-index: 10001; /* Sit on top */
	left: 0;
	top: 0;
	width: 100%; /* Full width */
	height: 100%; /* Full height */
	overflow: auto; /* Enable scroll if needed */
	background-color: rgb(0,0,0); /* Fallback color */
	background-color: rgba(0,0,0,0); /* Black w/ opacity */
}
.fixedoverlay{
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 10001;
  background-color: rgba(41, 47, 51, 0.5); /*dim the background*/
  text-align: center;
  overflow: auto;
  display: flex;
  align-items: center;
  justify-content: center;
}
.dialog{
	display: inline-block;
	vertical-align: middle;
	/* auto (not "0 auto") so a dialog taller than the viewport centres via auto margins yet stays
	   scrollable to its TOP -- .fixedoverlay's align-items:center otherwise clips the top (and the
	   close X) with no way to scroll up to it. */
	margin: auto;
	width: auto;
	max-width: calc(100% - 10px);
/*	max-height: calc(100% - 10px); */
	padding: 0px;
	background: #f2f2f2; 
    border-radius: 5px;
	border: 1px solid #e3e3e3;
	box-sizing: border-box;
	z-index: 10001;
}
.dialogtitlediv{
	background:  #e3e3e3;
	color: #444;
	display: block;
	padding: 0px;
	line-height: 30px;
	height: 30px;
	font-size: 18px;
	position: relative;
}
.dialogtitle {
/*	padding: 2px; */
/*	position: absolute;
	top: 0px;
	left: 0px;*/
	display: inline-block;
	width: calc(100% - 50px);
	vertical-align: top;
	text-align: center;
	font-family: 'Audiowide';
	font-weight: bold; 
	text-transform: uppercase;
	text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
/*	margin-bottom: 15px; */
	user-select: none;
	-webkit-user-select: none;
	margin: 0 auto;
}
.dialogclosediv{
	position: absolute;
	vertical-align: top;
	text-align: right; 
	margin-bottom: 0px;
	top: 0px;
	right: 10px;
}
.dialogbuttondiv{
	margin-top: 20px;
	white-space: nowrap;
	text-align: right;
	vertical-align: top;
}
.dialogcontent{
	margin-left: 25px;
	margin-right: 25px;
	margin-bottom: 25px;
	margin-top: 25px;
	box-sizing: border-box;
}
.dialogresizecontent{
	max-height: calc(100vh - 130px);  /*40px is for dialogtitle, 20+30 for dialog content padding, 40 for good measure*/
	overflow-y: auto;
}
.dialogresizeheight{
	height: calc(100vh - 130px);  /*40px is for dialogtitle, 20+30 for dialog content padding, 40 for good measure*/
}
.dialogscrollcontainer {
/*	overflow-y: auto; */
	padding: 20px 30px;
}
.dialogscrollcontainer::-webkit-scrollbar {
	-webkit-appearance: none;
	width: 0px;
}
.dialogscrollcontainer::-webkit-scrollbar:horizontal {
	height: 0px;
	background: transparent;
}
.dialogscrollcontainer::-webkit-scrollbar:vertical {
	width: 0px;
}
.dialogscrollcontainer::-webkit-scrollbar-thumb {
	border-radius: 0px;
	border: 1px solid gray; /* should match background, can't be transparent */
	background-color: gray;
}
.dialogscrollcontainer::-webkit-scrollbar-track { 
	background-color: transparent; 
	border-radius: 0px; 
}
.dialogscrollcontainer::-webkit-scrollbar-corner { 
	background-color: transparent; 
}
.progresslabel {
	width: 600px;
	max-width: 100%;
	padding: 2px;
	box-sizing: border-box;
	font-size: 28px;
	text-align: center;
	font-family: 'Open Sans';
	text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
	color: #444;
	user-select: none;
}
.progressbar {
	width: 600px;
	max-width: 100%;
	height: 20px;
	background: #ffffff;
	position: relative;
	border: 1px solid silver;
}
.indeterminate{
	background: url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");
    filter: alpha(opacity=25);
    opacity: 0.25; 
}
.progressoverlay{
	position: absolute;
	top: 0px;
	left: 0px;
	width: 0%;
	height: 100%;
	background: silver;
}
.roundbutton {
	display: inline-block;
    height: 30px;
    width: 30px;
    border-radius: 50%;
    -webkit-border-radius: 50%;
    color: white !important;
    background: #FC4A1A;
    border: 1px solid #FC4A1A;
    font-size: 18px;
    text-align: center;
    padding: 0px;
    cursor: pointer;
}
.roundbutton:hover {
	border-color: #FC4A1A; 
}
.roundbutton:focus {
	outline:0;
}
.displayslim{
	position: relative;
	display: inline-block; 
	margin-top: 20px; 
	margin-bottom: 20px;
/*	border: 1px solid silver; */
/*	box-shadow: 0px 0px 5px silver; */
	width: 800px; 
	height: 450px;
}
.thumbnail{
	display: block; 
/* 
	background: #eeeeee;
	max-width: 112px;
	width: 112px;
	height: 63px;
 */
	border: 2px solid transparent;
	margin: 0px;
	padding: 0px;
	vertical-align: middle;
	cursor: pointer;
}
.thumbarea{
	display: inline-block;
	margin: 0 auto;
	font-size: 0px;
	width: 100%; 
/*	max-width: 800px; */ 
	text-align: left; 
	margin-top: 0px; 
	margin-bottom: 0px; 
	overflow-x: hidden; 
	overflow-y: hidden; 
/*	height: 103px; */
	background: #eeeeee;
/*	border: 1px solid silver; */ 
	white-space: nowrap;
	vertical-align: top;
}
.addarea{
	display: inline-block;
	width: 65px;
	height: 65px;
	box-sizing: border-box;
	line-height: 65px; 
	margin-top: 5px;
	margin-left: 10px;
	margin-right: 10px;
    color: #FC4A1A !important;
/*    background: #eeeeee; */
/*	height: 99px; */
	vertical-align: middle;
	text-align: center;
	border: 0px;
}
.playarea{
	display: inline-block;
	width: 65px;
	height: 65px;
	box-sizing: border-box;
	line-height: 65px; 
	margin-top: 5px;
	margin-left: 10px;
	margin-right: 10px;
    color: #FC4A1A !important;
/*    background: #eeeeee; */
/*	height: 99px; */
	vertical-align: middle;
	text-align: center;
	border: 0px;
}
.thumbdiv{
	position: relative;
	display: inline-block;
/*	width: 112px; */
	margin-right: 5px;
	margin-top: 5px;
	margin-bottom: 5px;
	cursor: pointer;
}
.bigcard {
	position: relative; 
	display: inline-block; 
	margin: 10px;
	padding: 0px; 
	box-sizing: border-box; 
	width: calc(25% - 20px); 
	cursor: pointer; 
	color: #ffffff; 
	background-color: transparent; 
	overflow: hidden;
	vertical-align: bottom;
}
.middot{
	display: inline-block;
	margin-left: 10px;
	margin-right: 10px
}
.templateheaderbg{
	background: #eeeeee;
	background-image:linear-gradient(to right, rgba(6, 190, 182, 0.7), rgba(72, 177, 191, 0.95)), url(https://res.cloudinary.com/slimanimation/image/upload/c_scale,w_1280/v1552496707/splash/eyes.jpg);
	background-size: cover;
	background-position: center;
	width: 100%;
}
.templateheader{
	width: 100%;
	padding: 50px 50px;
	box-sizing: border-box;
	font-size: 0px;
}
.templateheaderlefthalf{
	width: 50%;
	min-width: 350px;
	margin: 0px;
	box-sizing: border-box;
	vertical-align: top;
	text-align: left;
	display: inline-block;
	color: #fff;
	font-size: 0px;
}
.templateheaderrighthalf{
	width: 50%;
	min-width: 350px;
	margin: 0px; 
	box-sizing: border-box;
	vertical-align: top;
	height: 120px;
	padding-top: 35px;
	text-align: right;
	display: inline-block;
	color: #fff;
}
.templatefullcont{
	width: 100%;
	padding: 50px 40px;
	box-sizing: border-box;
	font-size: 0px;
	text-align: center;
}
.templatesearch{
	float: right;
	display: inline-block;
	width: 180px;
	padding: 5px 10px;
	border-radius: 10px;
	margin: 5px;
	margin-right: 0px;
	outline: 0px; 
	border: 1px solid silver;
	font-size: 18px;
	line-height: 24px;
	height: 24px;
	font-family: Open Sans, sans-serif;
	vertical-align: bottom;
}
.ideamenu{
	position: relative;
	display: inline-block;
	margin: 5px;
	margin-left: 0px;
}
.ideamenutitle{
	display: inline-block;
	padding: 5px 10px;
	border-radius: 0px;
	outline: 0px; 
	border: 1px solid #444;
	border-radius: 10px;
	background: #FC4A1A;
	color: #fff;
	font-size: 18px;
	line-height: 24px;
	height: 24px;
	font-family: Open Sans, sans-serif;
	vertical-align: bottom;
	cursor: pointer;
}
.idealist{
	display: none;
	position: absolute;
    left: 0px;
    top: 34px;
    background: white;
    box-shadow: 0px 8px 16px 0px rgba(0,0,0.5,0.5);
    z-index: 99;
	padding: 10px;
	box-sizing: border-box;
	text-align: left; 
	margin: 0px;
	width: 320px;
	line-height: normal;
  	-webkit-overflow-scrolling: touch;
	vertical-align: top;
	user-select:  none;
	-webkit-user-select: none;  /* Chrome all / Safari all */
  	-moz-user-select: none;     /* Firefox all */
  	-ms-user-select: none;  
}
.idealist a{
	color: #000;
	white-space: nowrap;
	display: inline-block;
	width: 140px;
	font-size: 16px;
	margin: 0px 5px;
	padding: 5px 10px;
	cursor: pointer;
	box-sizing: border-box;
	z-index: 199;
}
.idealist a:hover{
	color: #FFF;
	background: #444;
}
.idea{
	background: #eee;
	margin: 0px;
	text-align: center;
	width: 100%;
}
.ideacontainer{
	position: relative;
	margin:20px;
	display: inline-block;
	text-align: left;
	font-size: 20px;
	line-height: 175%;
	max-width: 900px;
	padding: 40px;
	background: white;
	color: #000;
	border: 1px solid silver;
}
.ideatitle{
	text-align: left;
	font-size: 32px;
	font-weight: bold;
	line-height: 100%;
	margin-bottom: 10px;
	font-family: 'Poppins';
}
.ideacontent{
	text-align: left;
	font-size: 20px;
	line-height: 175%;
}
.ideaclose{
	position: absolute;
	top: 18px;
	right: 20px;
	font-size: 20px;
	line-height: 20px;
	height: 20px;
	color: #000;
}
.startfromscratch{ 
	display: inline-block;
	vertical-align: middle;
	background: transparent; 
	font-size: 20px; 
	font-weight: bold;
	padding: 10px 10px;
	box-sizing: border-box;
	line-height: normal;
	font-family: 'Open Sans', sans-serif !important; 
	border: 1px solid #FFF;
	border-radius: 10px;
	color: #FFF;
	cursor: pointer;
	user-select: none;
	-webkit-appearance: none;
}
.startfromscratch:hover {
	border: 1px solid #FC4A1A;
}
.templatelistcont{
	margin: 0 auto;
	margin-top: 0px;
	text-align: center;
	width: 100%;
	/*
	display: grid;
	grid-template-columns: auto auto auto auto;
	*/
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	align-content: center;
	align-self: flex-start;
	gap: 30px 30px;
}
.tempcard {
	display: inline-block;
/*	place-self: center; */
	margin: 0px;
	padding: 20px;
	box-sizing: border-box;
/*	width: calc(25% - 20px); */
	color: #000; 
	background-color: #f2f2f2; 
	overflow: hidden;
	vertical-align: top;
	border-radius: 5px;
	/* No border. The #f2f2f2 fill above already separates one card from the next; a silver
	   1px rule on top of it is a second boundary doing the same job, and at low contrast
	   against that fill it read as noise rather than structure once the grid ran to 417
	   cards. :hover still lifts the card, so the affordance is unchanged.
	   Removing it leaves 2px of slack (border-box 394 - 40 padding = 354 against a 352
	   image) which the centred image absorbs. */
	border: 0;
	box-shadow: none;
	max-width: 100%;
	width: 394px;
}
.tempcard .tempcardtitle{
	margin: 0px;
	padding: 0px;
	margin-top: 10px;
	text-align: center;
	font-size: 14px;
	vertical-align: bottom;
	font-family: Open Sans;
	font-weight: normal !important;
	color: #444;
	user-select: none;
	/* 20px, not 28. 28 on a 14px font is double-spaced, and because it is the block's strut it
	   applied to BOTH lines -- the ::first-line rule below asks for 18px and never got it --
	   so the title and its category floated 56px apart inside a 306px card. 20px is the same
	   ratio the <=820px block further down already uses; that pass tightened the phone and
	   left the desktop behind, which is the only reason this was still here. Two lines now
	   measure 40px and the card is 290px. The 18px ::first-line still fits inside the strut. */
	line-height: 20px;
	text-overflow: ellipsis;
	white-space: nowrap;
	overflow: hidden;
}
.tempcard .tempcardtitle::first-line{
	text-transform: uppercase;
	font-size: 18px;
	font-weight: bold;
	line-height: 18px;
}
.tempcard:hover{
	box-shadow: 1px 1px 5px #444;
}
.tempcardcont {
	position: relative;
	width: 100%;
	/* Rounded on the media box rather than on the img, because three things stack in here:
	   .tempimgcont holds the still, .tempvideocont holds the hover clip, and :after paints the
	   loading spinner and supplies the 16:9 height. Rounding the image alone would leave the
	   hover video square-cornered the moment you pointed at a card. overflow:hidden clips all
	   three. 4px matches the related grid on template.php; the card's own 5px sits outside the
	   20px padding and is a separate edge. */
	border-radius: 4px;
	overflow: hidden;
}
.tempcardcont:after{
	padding-top: 56.25%;
  	/* 16:9 ratio */
  	display: block;
  	background: transparent url(https://res.cloudinary.com/slimanimation/image/upload/v1560457651/docs/Spinner-1s-100px.gif) no-repeat 50% 50%;
  	content: '';
}
.temptitle{
	text-align: center;
	text-transform: uppercase;
	font-size: 18px;
	font-weight: bold;
	padding-top: 10px;
	user-select: none;
	line-height: 100%;
	text-overflow: ellipsis;
	white-space: nowrap;
	overflow: hidden
}
.tempdesctitle{
	text-align: center;
	font-size: 14px;
	padding-top: 5px;
	user-select: none;
	line-height: normal;
	text-overflow: ellipsis;
	white-space: nowrap;
	overflow: hidden;
}
.tempbr{
	position: absolute;
	display: inline-block;
	font-size: 14px;
	bottom: 5px;
	right: 5px;
	padding: 4px;
	color: #fff;
	background-color: rgba(68,68,68,0.5);
}
.tempbl{
	position: absolute; 
	display: inline-block;
	font-size: 14px;
	bottom: 5px;
	left: 5px;
	padding: 4px;
	margin-right: 4px;
	color: #fff;
	background-color: rgba(68,68,68,0.5);
}
.tempimgcont{
	display: block;
	position: absolute;
	top: 0px;
	left: 0px;
	width: 100%;
	height: 100%;
}
.tempimg{
	display: block;
	width: 100%;
	height: 100%;
}
.tempvideocont{
	display: none;
	position: absolute;
	top: 0px;
	left: 0px;
	width: 100%;
	height: 100%;
}
.tempvideo{
	display: block;
	outline: 0;
	width: 100%;
	height: 100%;
}
.templatevideocont{
	margin: 0 auto;
	display: inline-block; 
	width: 100%;
	height: 100%;
	max-width: 1280px;
	width: 100%;
	padding: 0px 60px;
	text-align: center;
	box-sizing: border-box;
	margin-top: 20px;
}
.templatevideocrumbs{
	text-align: left;
	font-size: 14px;
	font-weight: bold;
	text-transform: uppercase;
	height: 20px;
	line-height: 20px;
	vertical-align: middle;	
	white-space: nowrap;
	overflow-x: scroll;
	width: 100%;
}
.templatevideo{
	margin: 20px 0px;
	display: block;
	outline: 0;
	object-fit: contain;
	width: 100%;
	min-height: 240px;
	height: calc(100vh - 200px);
	max-height: 720px;
}
.temp{
	margin: 0 auto; 
	display: inline-block; 
	width: 100%; 
	text-align: center; 
	box-sizing: border-box;
	margin-top: 60px;
	color: #444;
}
.templeft{
	display: inline-block;
	font-size: 20px;
	padding: 30px;
	padding-left: 0px;
	box-sizing: border-box;
	max-width: 1280px;
	width: calc(50% - 30px);
	min-width: 484px;
	height: auto; 
	vertical-align: top;
	line-height: normal;
	position: relative;
}
.tempright{
	display: inline-block;
	font-size: 20px;
	line-height: 175%;
	padding: 30px;
	padding-left: 20px;
	padding-right: 0px;  
	box-sizing: border-box;
	max-width: 504px;
	width: calc(50% - 0px);
	min-width: 352px;
	height: auto;
}
.card {
	position: relative; 
	display: inline-block; 
	margin-left: 10px;
	margin-top: 10px;
	padding: 0px; 
	box-sizing: border-box; 
	width: calc(25% - 12.5px); 
	min-width: 50px; 
	cursor: pointer; 
	color: #ffffff; 
	background-color: transparent; 
	overflow: hidden;
	vertical-align: bottom;
}
.deselectedcard{
	color: transparent; 
	background-color: transparent;
}
.selectedcard{
	color: #FFFFFF; 
	background-color: rgba(252, 74, 26,0.5);
}
.searchresults {
	min-height: 200px; 
	width: 100%;
	height: 100%;
	overflow-y: scroll;
	overflow-x: scroll;
  	-webkit-overflow-scrolling: touch;
  	pointer-events: auto;
	border: 1px solid #E3E3E3; 
	box-sizing: border-box; 
	padding: 0px;
	user-select: none;
}
.searchresults::-webkit-scrollbar {
	-webkit-appearance: none;
	width: 7px;
}

.searchresults::-webkit-scrollbar:horizontal {
	height: 0px;
	background: gray;
}

.searchresults::-webkit-scrollbar:vertical {
	width: 11px;
}

.searchresults::-webkit-scrollbar-thumb {
	border-radius: 0px;
	border: 1px solid gray; /* should match background, can't be transparent */
	background-color: gray;
}

.searchresults::-webkit-scrollbar-track { 
	background-color: silver; 
	border-radius: 0px; 
}

.searchresults::-webkit-scrollbar-corner { 
	background-color: silver; 
}

.medialistselector{
	width: 100%; 
	display: inline-flex;
	flex-wrap: wrap;
	gap: 2.5px; 
	justify-content: flex-start; 
	align-items: flex-start;
	align-content: flex-start;
	text-align: left;
	margin: 0px;
	padding: 0px;
	line-height: 0%;
	vertical-align: top;
	font-size: 14px;
}

.medialistselector .mls-thumb{
	position: relative;
}
.mls-thumb.mls-draggable{
	transition: box-shadow 0.1s ease;
}
/* the tile being dragged: lifts off the strip and follows the pointer (transform set inline in JS) */
.mls-thumb.mls-dragging{
	opacity: 0.92;
	z-index: 10;
	box-shadow: 0 8px 18px rgba(0,0,0,0.4);
	cursor: grabbing;
}
/* the tile it will drop onto */
.mls-thumb.mls-drop-target{
	outline: 3px solid #fc4a1a;
	outline-offset: 2px;
}
.mls-thumb.mls-drop-target::after{
	content: "";
	position: absolute;
	top: 0; left: 0; right: 0; bottom: 0;
	background: rgba(252,74,26,0.22);
	pointer-events: none;
}
/* "x" to remove a media element (top-right of each tile) */
.mls-remove{
	position: absolute;
	top: 0px;
	right: 0px;
	width: 16px;
	height: 16px;
	line-height: 15px;
	text-align: center;
	font-size: 14px;
	font-weight: bold;
	color: #fff;
	background: rgba(0,0,0,0.55);
	cursor: pointer;
	z-index: 2;
	user-select: none;
	border-bottom-left-radius: 4px;
}
.mls-remove:hover{
	background: #fc4a1a;
}
/* "+" tile to add a media element (trails the thumbnails) */
.mls-add{
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 2px dashed #b8b8b8;
	border-radius: 4px;
	background: transparent;
	color: #b8b8b8;
	font-size: 30px;
	font-weight: 300;
	line-height: normal;
	cursor: pointer;
}
.mls-add:hover{
	border-color: #fc4a1a;
	color: #fc4a1a;
}

.medialistselector::-webkit-scrollbar {
	-webkit-appearance: none;
	width: 7px;
}

.medialistselector::-webkit-scrollbar:horizontal {
	height: 11px;
	background: gray;
}

.medialistselector::-webkit-scrollbar:vertical {
	width: 0px;
}

.medialistselector::-webkit-scrollbar-thumb {
	border-radius: 0px;
	border: 1px solid gray; /* should match background, can't be transparent */
	background-color: gray;
}

.medialistselector::-webkit-scrollbar-track { 
	background-color: silver; 
	border-radius: 0px; 
}

.medialistselector::-webkit-scrollbar-corner { 
	background-color: silver; 
}

.searchmessage{
	font-size: 18px;
	color: #444;
	margin: 0 auto;
	text-align: center;
	max-width: 450px;
	background: transparent;
	padding: 10px;
	box-sizing: border-box;
	font-weight: bold;
}

.imgcolcont{
	display: block;
	cursor: pointer; 
	position: relative;
	overflow: hidden;
	box-sizing: border-box; /*important*/
	border-style: solid;
	border-color: transparent;
	border-radius: 8px;
}

.imgcolcont:hover{
	border-color:  #FC4A1A;
}

.imgcolcont img{
	display: block;
	margin: 0px;
	background: #E3E3E3;
}
.userdiv{
	position: absolute;
	display: none; 
	bottom: 0px; 
	left: 0px; 
	margin: 0px;
	padding: 0px;
	box-sizing: border-box;
	font-size: 10px;
	max-width: 90%;
}
.userdiv a{
	color: white;
	text-decoration: none;
	background: rgba(0,0,0,.3);
	padding-left: 3px;
	padding-right: 3px; 
	box-sizing: border-box; 
	max-width: 100%;
	text-overflow: ellipsis;
	white-space: nowrap;
	overflow: hidden;
	display: inline-block;
	vertical-align: bottom; 
	text-align: left;
}

.helpcontent {
	text-align: left; 
	font-size: 18px; 
	margin-top: 0px; 
	margin-bottom: 0px;  
	padding: 0px 10px; 
	width: 100%; 
	max-height: calc(75vh - 100px); 
	box-sizing: border-box; 
	min-height: 100px; 
	overflow-y: scroll; 
	overflow-x: hidden; 
	-webkit-overflow-scrolling: touch; 
	pointer-events: auto;
}
.helpcontent p{
	margin: 10px 0px;
}
.helpcontent::-webkit-scrollbar {
	-webkit-appearance: none;
	width: 3px;
}

.helpcontent::-webkit-scrollbar:horizontal {
	height: 0px;
	background: transparent;
}

.helpcontent::-webkit-scrollbar:vertical {
	width: 3px;
}

.helpcontent::-webkit-scrollbar-thumb {
	border-radius: 0px;
	border: 1px solid gray; /* should match background, can't be transparent */
	background-color: gray;
}

.helpcontent::-webkit-scrollbar-track { 
	background-color: transparent; 
	border-radius: 0px; 
}

.helpcontent::-webkit-scrollbar-corner { 
	background-color: transparent; 
}

.helpcrumbs{
	font-size: 14px;
}

.helptext{
	display: inline-block; 
	width: calc(100% - 40px);
	max-width: 800px;
	padding: 20px 80px;
	margin: 20px 0px;
	font-size: 18px;
	line-height: 200%;
	background: #fff;
	text-align: left;
	box-shadow: 0 3px 8px 0 rgb(0 0 0 / 3%);
}

.morediv{
	margin-top: 20px; 
	margin-bottom: 20px;
	text-align: center;
}

.spinnerdiv{
	position: relative; 
	min-width: 100px; 
	width: 100%;
	min-height: 100px;
}
.timeline{
	position: relative;
	font-size: 12px; 
	color: #ffffff; 
	background: transparent;
	background-image: linear-gradient(to right, #444, #787878, #444);
	text-align: center; 
	vertical-align: middle; 
	padding: 0px;
	margin: 0px;
}
.timelineselect{
	background: rgb(74, 189, 172);
	background-image: none;
}
.sortable-placeholder {
  	display: inline-block;
	height: 1px; 
	width: 112px;
	background: #eeeeee;
}
.sortable-square-placeholder {
  	display: inline-block;
	height: 1px; 
	width: 63px;
	background: #eeeeee;
}
.thumblist{
	display: inline-block;
	background: #E3E3E3;
/*	background-image: linear-gradient(#969696, #444 18px); */
	width: 100%;
	text-align: left; 
	margin: 0px;
/*	margin-top: 5px; */
/*	margin-bottom: 20px; */
	overflow-x: scroll;
  	-webkit-overflow-scrolling: touch;
	overflow-y: hidden; 
/*	height: 99px; */ 
/*	background: #eeeeee; */
/*	border: 1px solid silver; */
	white-space: nowrap;
	vertical-align: top;
	user-select:  none;
	-webkit-user-select: none;  /* Chrome all / Safari all */
  	-moz-user-select: none;     /* Firefox all */
  	-ms-user-select: none;  
}
.thumblist::-webkit-scrollbar {
	-webkit-appearance: none;
	width: 7px;
}

.thumblist::-webkit-scrollbar:horizontal {
	height: 11px;
	background: gray;
}

.thumblist::-webkit-scrollbar:vertical {
	width: 11px;
}

.thumblist::-webkit-scrollbar-thumb {
	border-radius: 0px;
	border: 1px solid gray; /* should match background, can't be transparent */
	background-color: gray;
}

.thumblist::-webkit-scrollbar-track { 
	background-color: silver; 
	border-radius: 0px; 
}

.thumblist::-webkit-scrollbar-corner { 
	background-color: silver; 
}

.backdroplist{
	display: inline-block;
	background: #444;
/*	background-image: linear-gradient(#969696, #444 18px); */
	width: 100%;
	text-align: left; 
	margin: 0px;
/*	margin-top: 5px; */
/*	margin-bottom: 20px; */
	overflow-x: scroll;
  	-webkit-overflow-scrolling: touch;
	overflow-y: hidden; 
/*	height: 99px; */ 
/*	background: #eeeeee; */
/*	border: 1px solid silver; */
	white-space: nowrap;
	vertical-align: top;
	user-select:  none;
	-webkit-user-select: none;  /* Chrome all / Safari all */
  	-moz-user-select: none;     /* Firefox all */
  	-ms-user-select: none;
  	-webkit-touch-callout: none;
}
.backdroplist::-webkit-scrollbar {
	-webkit-appearance: none;
	width: 7px;
}

.backdroplist::-webkit-scrollbar:horizontal {
	height: 10px;
	background: gray;
}

.backdroplist::-webkit-scrollbar:vertical {
	width: 10px;
}

.backdroplist::-webkit-scrollbar-thumb {
	border-radius: 0px;
	border: 1px solid gray; /* should match background, can't be transparent */
	background-color: gray;
}

.backdroplist::-webkit-scrollbar-track { 
	background-color: silver; 
	border-radius: 0px; 
}

.backdroplist::-webkit-scrollbar-corner { 
	background-color: silver; 
}

.thumbinfo {
	position: absolute;
	bottom: 0px;
	left: 5px;
/*	padding: 5px; */
	border-radius: 3px;
	display: inline-block;
/*	border: 1px solid white; */
	color: #444;
	text-align: left;
	font-size: 12px;
	line-height: 12px;
	vertical-align: middle;
}

.thumbfunc{
	position: absolute;
	bottom: 0px;
	right: 5px;
	padding: 0px;
	display: inline-block;
	color: white;
	text-align: right;
	font-size: 14px;
	line-height: 14px;
	vertical-align: middle;
}
.playercontrols {
	font-size: 14px; 
	font-weight: bold; 
	font-family: Open Sans; 
	width: 100%; 
	height: auto; 
	text-align: center;  
	background-color: rgba(0,0,0,0.5); 
	background: -webkit-linear-gradient(rgba(0,0,0,0), rgba(0, 0, 0, 0.7)); 
	background: -o-linear-gradient(rgba(0,0,0,0), rgba(0, 0, 0, 0.7)); 
	background: -moz-linear-gradient(rgba(0,0,0,0), rgba(0, 0, 0, 0.7)); 
	background: linear-gradient(rgba(0,0,0,0), rgba(0, 0, 0, 0.7)); 
	padding-top: 0px; padding-bottom: 8px; 
	color: white;
	white-space: nowrap;
	overflow: hidden;
}

.captioninput{
	font-size: inherit;
	font-family: Open Sans, Noto Color Emoji; 
	border: 1px solid #E3E3E3; 
	padding: 5px; 
	color: #444; 
	background: white;
	width: 100%;
	border-radius: 5px;
	box-sizing: border-box;
}
.captioninput:hover:enabled {
	border: 1px solid #FC4A1A; 
}
.captioninput:focus {
	outline:0;
}

.sp-palette span[title="rgb(128, 128, 128)"]{
	border: 1px solid #FC4A1A;
}
.sp-container button {
	font-family: 'Open Sans', sans-serif !important; 
	background-color: #FC4A1A;
	border: 1px solid #FC4A1A;
	border-radius: 3px;
  	background-image: none;
  	color: white;
  	font-size: 14px;
  	line-height: 1;
  	padding: 5px 4px;
  	text-align: center;
  	vertical-align: middle;
  	text-shadow: none;
}
.sp-container button:hover {
	background-color: #FC4A1A;
    border: 1px solid #444;
    background-image: none;
    text-shadow: none;
}
.sp-container button:active {
}
.sp-cancel {
    font-size: 14px;
    color: #FC4A1A !important;
    margin:0;
    padding:2px;
    margin-right: 5px;
    vertical-align: middle;
    text-decoration:none;

}
.sp-cancel:hover {
    text-decoration: underline;
}
.sp-replacer {
    background: #fff;
    border: 1px solid #E3E3E3;
    border-radius: 5px;
    padding: 4px;
}
.sp-replacer:hover:enabled {
	border: 1px solid #FC4A1A; 
}
.sp-preview, .sp-alpha, .sp-thumb-el {
    position:relative;
/*    background: repeating-linear-gradient( -45deg, rgba(255, 255, 255, .2), rgba(0, 0, 0, .2) 5px, transparent 5px, transparent 5px); */
	background: linear-gradient(45deg, rgba(0, 0, 0, 0.0980392) 25%, transparent 25%, transparent 75%, rgba(0, 0, 0, 0.0980392) 75%, rgba(0, 0, 0, 0.0980392) 0), linear-gradient(45deg, rgba(0, 0, 0, 0.0980392) 25%, transparent 25%, transparent 75%, rgba(0, 0, 0, 0.0980392) 75%, rgba(0, 0, 0, 0.0980392) 0), #eeeeee;
    background-repeat: repeat, repeat;
    background-position: 0px 0px, 5px 5px;
    background-size: 10px 10px, 10px 10px;
}
.sp-clear-display {
/*	background: repeating-linear-gradient( -45deg, rgba(255, 255, 255, .2), rgba(0, 0, 0, .2) 5px, transparent 5px, transparent 5px); */
	background: linear-gradient(45deg, rgba(0, 0, 0, 0.0980392) 25%, transparent 25%, transparent 75%, rgba(0, 0, 0, 0.0980392) 75%, rgba(0, 0, 0, 0.0980392) 0), linear-gradient(45deg, rgba(0, 0, 0, 0.0980392) 25%, transparent 25%, transparent 75%, rgba(0, 0, 0, 0.0980392) 75%, rgba(0, 0, 0, 0.0980392) 0), #eeeeee;
    background-repeat: repeat, repeat;
    background-position: 0px 0px, 5px 5px;
    background-size: 10px 10px, 10px 10px;
}
.sp-clear.sp-clear-display {
    background-position: 0px 0px, 5px 5px;
}
.sp-preview{
	width: 18px;
	height: 18px;
	border: 1px solid silver;
}
.sp-dd{
	font-size: 18px;
}
.fontbutton{
	display: block;
	width: 100%;
	border-radius: 0px;
	text-align: left;
	margin: 0px;
	padding: 0px;
	border: 1px solid #fff;
	cursor: pointer;
	background: #fff;
	height: 27px;
	outline: 0;
}
.fontbutton:hover {
	background: #eee; 
}
.selectedfontbutton{
	border: 1px solid #FC4A1A;
}
.fontimg{
	height: 25px;
	cursor: pointer;
/*	display: block; */
}
.fontbanner{
	text-align: center;
	background: #F8F8F8;
	color: #888;
	width: 100%;
	padding: 0px;
	padding-top: 4px;
	padding-bottom: 5px;
	box-sizing: border-box;
	font-size: 11px;
	line-height: 11px;
	vertical-align: middle;
	font-weight: bold;
	margin-bottom: 0px;
	cursor: not-allowed;
}
.fontsearch{
	display: block;
	width: 100%;
	padding: 5px;
	margin: 0px;
	margin-top: 0px;
	margin-bottom: 0px;
	outline: 0px;
	border: none;
	border-bottom: 1px solid #e3e3e3;
	font-size: 14px;
	line-height: 30px;
	height: 30px;
	box-sizing: border-box;
	font-family: Open Sans, sans-serif;
	vertical-align: middle;
}
.fontsearchcontainer{
	display: block;
	background: #fff;
	text-align: left;
	white-space: normal;
	width: 100%;
	overflow-y: scroll;
	height: 180px;
/*	border-bottom: 1px solid #e3e3e3; */
	box-sizing: border-box;
	font-size: 14px;
}
.fontsearchcontainer::-webkit-scrollbar {
	-webkit-appearance: none;
	width: 7px;
}

.fontsearchcontainer::-webkit-scrollbar:vertical {
	height: 7px;
}

.fontsearchcontainer::-webkit-scrollbar-thumb {
	border-radius: 0px;
	border: 1px solid gray; /* should match background, can't be transparent */
	background-color: gray;
}

.fontsearchcontainer::-webkit-scrollbar-track { 
	background-color: silver; 
	border-radius: 0px; 
}

.fontsearchcontainer::-webkit-scrollbar-corner { 
	background-color: silver; 
}

.selectbutton{
	display: inline-flex;
	flex-direction: row;
	flex-wrap: nowrap;
	justify-content: center;
	align-items: center;
	align-content: center;
	align-self: flex-start;
	flex-grow: 0;
	font-size: 14px; 
	background: #ffffff; 
	color: #444;
	padding: 4px; 
	border: 1px solid #E3E3E3; 
	height: 30px;
	line-height: 20px;
	border-radius: 5px;
	box-sizing: border-box;
	cursor: pointer;
	user-select: none;
	margin: 0px;
	position: relative;
	font-family: Open Sans, sans-serif;
	width: 100%;
}
.selectbutton:hover{
	border-color: #FC4A1A; 
}
.selectbutton:hover:enabled {
	border-color: #FC4A1A; 
}
.selectbutton:hover:disabled {
	border-color: #E3E3E3; 
}
.selectbutton:focus {
	outline:0;
}
.selectbutton:disabled {
	color: silver;
	background: #E3E3E3;
	cursor: default;
}
.selecttext{
/*	display: inline-flex;
	flex-wrap: nowrap;
	justify-content: center;
	align-items: center;
	align-content: center;
	align-self: flex-start;
	flex-grow: 0;
	*/
	flex: 1 1 auto;
	padding: 0px;
	width: calc(100% - 14px);
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
	height: 20px;
	line-height: 20px;
	vertical-align: top;
	font-size: 14px;
	text-align: center;
	margin-right: 4px;
/*	line-height: normal; */
} 

.selectarrow{
	flex: 0 1 auto;
	display: inline-block;
	padding: 0px;
/*	height: 20px;
	line-height: 17px;
	padding-top: 3px; */
	width: 9px;
	vertical-align: top;
/*	line-height: normal; */
}

.rightmargin{
	margin-right: 5px;
}

.leftmargin{
	margin-left: 5px;
}

.effectrow{
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	justify-content: center;
	align-items: center;
	align-content: center;
	align-self: flex-start;
}

.effectindex{
	flex: 0 1 auto;
	width: 50px;
}

.effecttime{
	flex: 0 1 auto;
	width: 85px; 
}

.effect{
	flex: 1 1 auto;
	width: calc(100% - 145px);
}
.numberinputcont{
	display: inline-block;
	width: 50px;
	font-size: 14px; 
	text-align: center;
	background: #fff;
	padding: 4px 0px;
	border: 1px solid #E3E3E3;
	border-radius: 5px;
	vertical-align: middle;
	outline: 0;
	font-weight: normal;
	margin: 0px;
	height: 30px;
	box-sizing: border-box;
	position: relative;
/*	-webkit-appearance: none; */
}
.numberinputcont:hover:enabled {
	border: 1px solid #FC4A1A; 
}
.numberinput{
	width: 100%; 
	border: none;
	font-size: inherit;
	text-align: center;
	background: #fff;
	padding: 0px 0px;
	box-sizing: border-box;
	color: #444;
	height: 20px;
	line-height: 20px;
	vertical-align: top;
	-webkit-appearance: none;
}

.numberinput:focus {
	outline:0;
}
.part{
	text-align: left;
	margin-bottom: 10px;
}
.inlinepart{
	vertical-align: top;
	display: inline-block;
	white-space: nowrap;
	margin-right: 10px;
}
.paramlabel{
	display: inline-block;
	vertical-align: top;
	margin-right: 4px;
	font-weight: bold;
	color: #333;
}
.dialogcontent .paramlabel{
	display: none;
}
/* A bubble-button's own inner label (e.g. StrokeSelector's "Stroke:") is redundant when the button
   sits inside a popup whose columns already carry .banner labels (the object/item selector's
   OBJECT/FILL/STROKE headers). .dialogcontent .paramlabel used to hide it, but popups now portal to
   <body> (escaping .dialogcontent) so that rule stopped matching -- mirror it on .bubbledialog. Kept
   ABOVE .rowcontainer .paramlabel so rowcontainer layouts (shapepanel, getPart(null), no banner) still
   re-enable their sole label. Only hits labels INSIDE a popup, never a standalone trigger button. */
.bubbledialog .paramlabel{
	display: none;
}
.banner{
	font-size: 11px;
	line-height: normal;
	font-weight: bold;
	color: #333;
	user-select: none;
	text-transform: uppercase;
}
.rowcontainer{
	display: inline-flex;
	flex-direction: row;
	row-gap: 20px;
	column-gap: 5px;
	justify-content: space-between;
	flex-wrap: wrap;
	align-items: flex-start;
	align-content: flex-start;
	width: 316px;
	text-align: left;
	font-family: Open Sans;
	font-size: 14px;
	margin-top: 0px;
}
.row{
	display: flex;
	flex-wrap: nowrap;
	align-items: flex-start;
	align-content: flex-start;
  	justify-content: space-between;
  	width: 100%;
	text-align: left; 
	margin-bottom: 0px;
	column-gap: 5px;
}
.rowcontainer .paramlabel{
	display: inline-block;
}
.rowcontainer .part{
	margin-bottom: 0px;
}
.rowcontainer .inlinepart{
	margin-right: 0px;
}
.rowcontainer .inlinepart:last-child{
	margin-right: 0px;
}
.rowcontainer .banner{
	font-size: 14px;
	text-transform: capitalize;
}

.animui {
	width: auto;
	text-align: center;
	background: #fff;
	display: none;
	margin: 40px 0px;
	padding: 30px;
	box-shadow: 5px 5px 20px #555;
	border-radius: 10px;
}
.animui h1{
	margin: 0px;
	margin-bottom: 20px;
	line-height: 100%;
}

.animuicontrols {
	width: 320px;
	display: inline-flex;
	flex-wrap: wrap;
	gap: 20px 20px;
	padding: 20px;
	margin: 0px;
	margin-left: 20px;
	background: #fff;
	border-radius: 10px;
	border: 1px solid silver;
	vertical-align: middle;
	text-align: left;
	font-size: 18px;
	max-height: 460px;       /* ~= the preview's 480px max (animationdialog.js), so the panel matches the preview height and a taller control list scrolls instead of growing the modal */
	overflow-y: auto;        /* dropdowns portal to <body> (see bubbledialog.js), so this scroll container never clips them */
	overflow-x: hidden;
/*	box-shadow: 2px 2px 5px #777; */
}

.animuicontrolsrow {
	width: 100%;
	display: inline-flex;
	flex-wrap: wrap;
	gap: 20px 20px;
	padding: 0px;
	margin: 0px;
	vertical-align: middle; 
	text-align: left;
	font-size: 18px;
}

.animuicontrols .part{
	margin-right: 0px; 
	margin-bottom: 0px;
}

.animuicontrols .banner{
/*	font-size: 14px; */
}

.animuicontrols .selectbutton{
/*	border: 1px solid transparent; */
}

.animuicontrols .actionbutton{
	font-size: 14px;
}
.animplayer{
	display: inline-block;
	vertical-align: middle;
	padding: 0px;
}
.lightborder{
	background: #fff;
	border: 1px solid #E3E3E3;
	border-radius: 5px;
	-webkit-appearance: none;
}
.lightborder:hover:enabled {
	border: 1px solid #FC4A1A; 
}
.lightborder:focus {
	outline:0;
}

.inputfile {
	width: 0.1px;
	height: 0.1px;
	opacity: 0;
	overflow: hidden;
	position: absolute;
	z-index: -1;
}
.inputfile + label {
/*
	padding: 5px;
	height: 30px;
	margin: 0px;
    color: white;
    background-color: #444;
    border: 1px solid #E3E3E3;
    font-size: 14px;
    line-height: 18px !important;
    display: inline-block;
    width: auto;
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
    text-align: left;
    vertical-align: bottom;
    border-radius: 5px;
    box-sizing: border-box;
    -webkit-appearance: none;
    user-select: none;
*/
}

.inputfile:focus + label,
.inputfile + label:hover {
/*    border: 1px solid #FC4A1A; */
}
.inputfile + label {
	cursor: pointer; /* "hand" cursor */
}
.inputfile:focus + label {
/*	outline: 1px dotted #FC4A1A; */
/*	outline: -webkit-focus-ring-color auto 5px; */
outline: 0;
}
.inputfile:focus + label,
.inputfile.has-focus + label {
/*    outline: 1px dotted #000; */
/*    outline: -webkit-focus-ring-color auto 5px; */
outline: 0;
}

.slideoptions{
	position: absolute;
	z-index: 5000;
	font-family: 'Open Sans', sans-serif !important; 
	font-size: 18px;
	background: transparent;
	width: 121px;
	height: auto;
	overflow: none;
	padding: 0px;
	margin: 0px;
	box-sizing: border-box;
}

.slidelist{
	background: white;
	width: 100%;
	height: auto;
	overflow: none;
	padding: 0px;
	border: 3px solid #FC4A1A; 
	border-radius: 3px;
	box-sizing: border-box;
	display: inline-block;
}
.slidelist:after {
    content:'';
    position: absolute;
    top: 100%;
    left: 50%;
    margin-left: -10px;
    width: 0;
    height: 0;
    border-top: solid 10px #FC4A1A;
    border-left: solid 10px transparent;
    border-right: solid 10px transparent;
}

.slideitem{
	padding: 10px;
	width: 100%;
	color: #444;
	line-height: 150%;
	cursor: pointer;
	box-sizing: border-box;
}

.slideitem:hover{
	background: #eeeeee;
}

.croplist{
	float: left; 
	display: inline-block; 
	border: 1px solid silver; 
	height: 385px; 
	width: 210px; 
	font-size: 24px; 
	font-family: 'Open Sans'; 
	text-align: center; 
	color: #FC4A1A;
	overflow-y: scroll;
	margin: 0 auto;
}

.croplist::-webkit-scrollbar {
	-webkit-appearance: none;
	width: 7px;
}

.croplist::-webkit-scrollbar:vertical {
	height: 11px;
}

.croplist::-webkit-scrollbar-thumb {
	border-radius: 0px;
	border: 1px solid white; /* should match background, can't be transparent */
	background-color: gray;
}

.croplist::-webkit-scrollbar-track { 
	background-color: silver; 
	border-radius: 0px; 
}

.croplist::-webkit-scrollbar-corner { 
	background-color: silver; 
}
@media only screen and (max-width: 1400px) {
/*
.tempcard{
	width: calc(33.33% - 20px);
}
*/
}
@media only screen and (max-width: 1150px) {
.splashtitle{
	font-size: 50px; 
}
h1{
	font-size: 40px;
}
h2{
	font-size: 32px;
}
h3{
	font-size: 24px;
}
.splashbyline{
	font-size: 22px; 
}
.splashbutton{
	font-size: 22px;
}
}
@media only screen and (max-width: 1088px) {
.templeft{
	max-width: 100%;
	width: 100%;
	padding: 0px;
	padding-bottom: 30px;
	min-width: 352px;
}
.tempright{
	max-width: 770px;
	width: 100%;
	padding: 0px;
	padding-bottom: 30px;
	min-width: 352px;
}
.templateheader{
	padding: 50px 20px;
}
.templatefullcont{
	padding: 50px 10px;
}
.splashlearnmore{
	padding: 0px 20px;
}
.paddedlearnmore{
	padding: 0px 20px;
}
.infobox{
	flex: 100%;
}
}
@media only screen and (max-width: 960px) {
.splashtitle{
	font-size: 38px; 
}
h1{
	font-size: 38px;
}
h2{
	font-size: 30px;
}
h3{
	font-size: 22px;
}
.splashbyline{
	font-size: 20px; 
}
.splashbutton{
	font-size: 20px;
}
.splashbuttonrow{
	margin-bottom: 20px;
}
.splashsection{
	margin-top: 80px;
}
.splashtblleft{
	float: none;
	max-width: 100%; 
	height: auto; 
	width: 100%; 
	padding: 0px; 
	padding-right: 0px;
	padding-bottom: 10px;
	box-sizing: border-box;
	margin: 0 auto;
}
.splashtblright{
	float: none;
	height: auto;
	max-width: 100%;  
	width: 100%; 
	padding: 0px; 
	padding-right: 0px;
	padding-bottom: 10px;
	box-sizing: border-box;
	margin: 0 auto;
}
.splashimgright{
	display: block;
	width: 100%;
/*	max-width: 100%; */
	text-align: left;
	height: auto;
	float: none;
	padding-left: 0px;
	margin: 0 auto;
}
.splashimgleft{
	display: block;
	width: 100%;
/*	max-width: 100%; */
	text-align: left;
	height: auto;
	float: none;
	padding-right: 0px;
	margin: 0 auto;
}
/*
.tempcard{
	width: calc(50% - 20px); 
}
*/
}
@media only screen and (max-width: 930px) {
.blogimgcont{
	width: calc(40% - 10px);
}
.bloginfo{
	width: 60%;
}
}
@media only screen and (max-width: 800px) {
.headerlinksicon {
    display: inline-block;
    margin-left: 20px;
    font-size: 30px;
}
.headerlinks a{
    display: inline-block;
    width: 100%;
    margin: 0px;
    padding: 10px;
    vertical-align: middle;
    background: white;
    color: #444;
    box-sizing: border-box;
    white-space: nowrap;
    text-transform: uppercase;
}
.headerlinks a:hover {
	color: white !important;
	background: #444 !important;
}
.headerlinks a:active {
	color: white !important;
	background: #444 !important;
}
.headerlinks-content {
    display: none;
    position: absolute;
    right: -10px;
	left: auto;
	width: 250px;
    top: 50px;
    padding: 10px;
    background: white;
    color: #444;
    box-shadow: 0 0 8px rgba(0,0,0,0.2);
    box-shadow: 0px 8px 16px 0px rgba(0,0,0.5,0.5);
    z-index: 99;
    font-size: 14px; 
    max-width: calc(100vw - 20px);
    overflow: hidden;
    text-align: left; 
    line-height: normal;  
    white-space: normal;
    border-radius: 5px;
} 
.headerlinks:hover .headerlinks-content {
	display: inline-block;
}
.splashlearnmore{
	padding: 0px 10px;
}
.paddedlearnmore{
	padding: 0px 10px;
}
}
@media only screen and (max-width: 745px) {
.templateheaderrighthalf{
	padding-left: 120px;
	box-sizing: border-box;
	height: auto;
	margin-top: 10px;
	padding-top: 0px;
	text-align: left;
}
}
@media only screen and (max-width: 700px) {
.bloglist{
	text-align: center;
}
.blog{
	display: inline-block;
	width: 350px;
	max-width: 100%;
	margin: 10px 0px;
	padding: 20px;
	text-align: center;
}
/* Same shape as the .footerlists bug: a hard px width with nothing to cap it. .blog is
   border-box 350px/max-width:100%, so at 320px its content box is 260px -- but these two
   stayed 310px and pushed 20px of every blog card past the right edge, widening the page.
   max-width:100% costs nothing above 350px, where 310px is already the smaller value. */
.blogimgcont{
	width: 310px;
	max-width: 100%;
	padding-right: 0px;
}
.bloginfo{
	margin-top: 10px;
	width: 310px;
	max-width: 100%;
}
.bloginfo h3{
	font-size: 18px;
	margin-top: 0px;
}
.blogtitle{
	font-size: 18px;
}
.blogdesc{
	font-size: 14px;
}
}
@media only screen and (max-width: 550px) {
/*
.tempcard{
	margin-right: 10px;
	margin-left: 10px;
}
*/
}
@media only screen and (max-device-width: 820px) {
body {
	width: 100%;
	margin-left: 0px;
	margin-right: 0px;
	-webkit-text-size-adjust: 100%;
}
.page {
	width: 100%;
	max-width: 100%;
	margin:0 auto;
	padding: 0px;
	text-align: center;
	position: relative;
/*  		min-height: 100%;*/
}
.content {
	margin: 0px;
	min-width: 0px;
	width: 100%;
	padding: 5px; 
	background: white; 
	border-radius: 0px;
    border: 2px solid #FC4A1A; 
    box-shadow: none;
    box-sizing: border-box;
}
.greentored{
	padding: 10px;
	margin: 10px 0px;
}
.infobox{
	margin: 5px;
}
.splash{
/*	height: calc(100vh - 150px);*/
/*	min-height: 350px; */
}
.bigsplash{
	height: auto;
	min-height: none;
}
.splashlearnmore{ 
	padding: 10px; 
}
.paddedlearnmore{
	padding: 10px; 
}
.splashlearnmoretitle{
	font-size: 20px; 
}
.splashlearnmorebyline{
	font-size: 20px;
}
.templatevideocont{
	padding: 0px 5px;
}
.gradientbanner{
	padding: 10px;
	font-size: 18px;
	margin-top: 20px;
	margin-bottom: 20px;
}
.splashtitle{
	font-size: 38px; 
}
.splashsection{ 
	margin-top: 50px; 
}
.bigsplashsection{ 
	padding: 40px 10px; 
}
h1{
	font-size: 32px; 
}
h2{
	font-size: 28px;
}
h3{
	font-size: 24px;
}
.splashbyline{
	font-size: 20px; 
}
.splashbutton{
	font-size: 20px;
}
.splashimgright{
	width: 100%;
/*	max-width: 100%; */
	height: auto;
	line-height: normal;
	float: none;
	padding-left: 0px;
	margin: 0 auto;
}
.bigsplashimgright{
	width: 100%;
	max-width: 100%;
	height: auto;
	line-height: normal;
	float: none;
	padding-left: 0px;
	margin: 0 auto;
}
.splashimgleft{
	width: 100%;
/*	max-width: 100%; */
	height: auto;
	line-height: normal;
	float: none;
	padding-right: 0px;
	margin: 0 auto;
}
.splashtblleft{
	float: none;
	line-height: normal;
/*	max-width: 100%; */
	height: auto; 
	width: 100%; 
	padding: 0px; 
	padding-right: 0px;
	padding-bottom: 10px;
	box-sizing: border-box;
	margin: 0 auto;
}
.bigsplashtblleft{
	float: none;
	line-height: normal;
/*	max-width: 100%; */
	height: auto; 
	width: 100%; 
	padding: 0px; 
	padding-right: 0px;
	padding-bottom: 10px;
	box-sizing: border-box;
	margin: 0 auto;
}
.splashtblright{
	float: none; 
	line-height: normal;
/*	max-width: 100%; */
	height: auto; 
	width: 100%; 
	padding: 0px; 
	padding-left: 0px;
	padding-bottom: 10px;
	box-sizing: border-box;
	margin: 0 auto;
}
.splashtexttitle{
	font-size: 28px; 
}
.splashtbltext h1{
	font-size: 18px; 
	font-weight: bold;
	margin: 10px 0px;
	font-family: 'Open Sans';
	text-transform: uppercase;
	color: #444;
	line-height: 28px;
	text-overflow: ellipsis;
	white-space: nowrap;
	overflow: hidden;
}
.splashtbltext h1::first-line{
	font-size: 28px; 
	font-family: 'Poppins';
	line-height: 28px;
}
.splashtbltext h2{
	margin-bottom: 10px;
}
.tab{
font-size: 14px;
margin-right: 0px;
}
.searchterm {
	width: 90px;
}
.inputfile + label {
	font-size: 14px;
	padding: 5px 5px;
}
.dialog{
	max-width: calc(100% - 10px);
}
.dialogcontent{
	background: #f2f2f2; 
	margin-left: 10px;
	margin-right: 10px;
	margin-bottom: 10px;
	margin-top: 10px;
}
.dialogresizecontent{
	max-height: 75vh;  /*This may be a safer option as window size is not fixed on mobile*/
	overflow-y: auto;
}
.dialogresizeheight{
	height: 75vh;   /*This may be a safer option as window size is not fixed on mobile*/
}
.dialogscrollcontainer {
	padding: 10px 10px;
}
.progresslabel {
	max-width: 100%;
	padding: 2px;
	font-size: 20px;
	text-align: center;
	font-family: 'Open Sans';
	white-space: nowrap;
	user-select: none;
}
.progressbar {
	max-width: 100%;
	height: 20px;
}
.displayslim{
	position: relative;
	display: inline-block; 
	margin-top: 20px; 
	margin-bottom: 20px;
/*	border: 1px solid silver; */
/*	box-shadow: 0px 0px 5px silver; */
	width: auto; 
	height: auto;
}
.bigcard {
	width: calc(100% - 40px);
	max-width: 352px;
	margin: 20px;
	box-sizing: border-box; 
}
.card {
	width: calc(100% - 10px);
	margin: 5px;
}
.searchresults::-webkit-scrollbar:vertical {
	width: 0px;
}
.helpcontent {
	font-size: 14px; 
	max-height: calc(75vh - 120px);
}
.helpcrumbs{
	font-size: 14px;
}
.helptext{
	padding: 10px 10px;
	margin: 10px 0px;
}
.project{
	display: inline-block; 
	padding: 20px 10px; 
	border: 0; 
	width: 100%; 
	max-width: 372px; 
	box-sizing: border-box;
}
/*
.tempcard{
	margin-left: 0px;
	margin-right: 0px;
	box-sizing: border-box; 
}
*/
.templatesearch{
	font-size: 16px;
	line-height: 22px;
	height: 22px;
}
.rowcontainer{
	row-gap: 10px;
}
.animui {
	margin: 5px;
	padding: 5px;
	box-shadow: none;
	border-radius: none;
}
.animui h1{
	font-size: 24px;
	margin: 0px 0px;
	margin-bottom: 10px;
}
.animuicontent {
	/* !important: animationdialog.js sets an inline display:inline-block on this element, which would otherwise beat these rules. */
	display: flex !important;
	flex-direction: column-reverse !important;  /* controls (2nd child in DOM) sit ABOVE the preview on mobile, so a control's popup opens DOWNWARD into the canvas area with room, instead of flipping up over the other controls / into the keyboard */
	align-items: center !important;
}
.animuicontrols {
	/* On a phone the container is viewport-constrained (~343px on a 375px screen). The desktop 320px + 40px padding is a
	   360px+ CONTENT-box that overflows that container and runs edge-to-edge. Fit it: fill the container with the padding
	   INSIDE the width (border-box), capped so it doesn't stretch huge on a tablet. */
	width: 100%;
	max-width: 360px;
	box-sizing: border-box;
	margin: 0px;
	margin-left: 0px;
	margin-top: 10px;
	padding: 20px;
	gap: 10px 20px;
	box-shadow: none;
	max-height: 40vh;        /* tighter than desktop: stacked layout subtracts controlsHeight from the preview, so keep the panel short and let it scroll (animationdialog.js:63) */
}
.animplayer{
	display: inline-block;
	vertical-align: middle;
	padding: 0px;
}
}
/* ── Create dropdown — desktop ────────────────────────────────────────────── */
.create-dropdown {
    position: relative;
    display: inline-block;
    vertical-align: middle;
}
/* Explicitly show the trigger link on desktop */
.create-dropdown > a:first-child {
    display: inline-block !important;
    visibility: visible !important;
    opacity: 1 !important;
}
.create-dropdown > a::after {
    content: '';
    display: inline-block;
    margin-left: 5px;
    vertical-align: middle;
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
    border-top: 5px solid currentColor;
    opacity: .8;
}
.create-menu {
    display: none;
    position: absolute;
    top: 100%;
    margin-top: 0;
    left: 50%;
    transform: translateX(-50%);
    background: transparent;
    min-width: 250px;
    z-index: 9999;
    padding-top: 10px; /* transparent hover bridge — keeps mouse connected */
}
.create-menu-inner {
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 8px 32px rgba(0,0,0,.15);
    padding: 8px;
}
.create-menu-inner::before {
    content: '';
    position: absolute;
    top: -6px;
    left: 50%;
    transform: translateX(-50%);
    border-left: 6px solid transparent;
    border-right: 6px solid transparent;
    border-bottom: 6px solid #fff;
}
.create-menu-inner {
    position: relative;
}
.create-dropdown:hover .create-menu,
.create-dropdown:focus-within .create-menu {
    display: block;
}
.create-menu a {
    display: flex !important;
    align-items: center;
    gap: 10px;
    width: 100% !important;
    padding: 9px 12px !important;
    margin: 0 !important;
    border-radius: 6px;
    font-size: 14px !important;
    color: #333 !important;
    background: transparent !important;
    text-decoration: none;
    white-space: nowrap;
    box-sizing: border-box;
    text-transform: none !important;
    line-height: normal !important;
    transition: background .15s;
}
.create-menu a + a {
    margin-top: 2px !important;
}
.create-menu a:hover {
    background: #f0fafc !important;
    color: #1a6b7a !important;
}
.create-menu .menu-icon {
    font-size: 18px;
    width: 24px;
    text-align: center;
    flex-shrink: 0;
    line-height: 1;
}
.create-menu .menu-text {
    flex: 1;
    min-width: 0;
}
.create-menu .menu-text strong {
    display: block;
    font-size: 13px;
    font-weight: 700;
    color: #222;
    line-height: 1.3;
}
.create-menu .menu-text span {
    display: block;
    font-size: 11px;
    color: #888;
    margin-top: 2px;
    line-height: 1.3;
}
.create-menu .menu-badge {
    flex-shrink: 0;
    font-size: 10px;
    font-weight: 700;
    padding: 2px 7px;
    border-radius: 10px;
    background: linear-gradient(135deg, #7c3aed, #3b82f6);
    color: #fff;
    letter-spacing: .3px;
}

/* ── Create dropdown — mobile (≤800px matches existing nav breakpoint) ─────── */
@media only screen and (max-width: 800px) {
    /* Hide the Create trigger entirely on mobile */
    .create-dropdown > a:first-child { display: none !important; }
    .create-dropdown > a::after { display: none; }

    /* Wrapper: full width, static, no overflow */
    .create-dropdown {
        display: block !important;
        position: static !important;
        width: 100% !important;
    }

    /* Menu panel: static, no box, no transform, no min-width */
    .create-menu {
        display: block !important;
        position: static !important;
        -webkit-transform: none !important;
        transform: none !important;
        box-shadow: none !important;
        background: transparent !important;
        border-radius: 0 !important;
        padding: 0 !important;
        margin: 0 !important;
        min-width: 0 !important;
        width: 100% !important;
    }
    .create-menu::before { display: none !important; }

    /* Each link: plain block, matches existing .headerlinks a on mobile exactly */
    .create-menu a {
        display: block !important;
        -webkit-box-sizing: border-box !important;
        box-sizing: border-box !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 10px !important;
        border-radius: 0 !important;
        background: white !important;
        color: #444 !important;
        font-size: 14px !important;
        font-weight: normal !important;
        text-transform: uppercase !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        /* Kill the flex layout from desktop */
        -webkit-flex-direction: row !important;
        flex-direction: row !important;
        -webkit-align-items: center !important;
        align-items: center !important;
        gap: 8px !important;
    }
    .create-menu a + a { margin-top: 0 !important; }
    .create-menu a:hover,
    .create-menu a:active {
        color: white !important;
        background: #444 !important;
    }
    .create-menu .menu-text strong { display: inline; font-size: 14px; font-weight: normal; }
    .create-menu .menu-text span   { display: none; }
    .create-menu .menu-icon        { display: inline; margin-right: 6px; }
    .create-menu .menu-badge       { display: inline-block; margin-left: 6px; vertical-align: middle; font-size: 9px; padding: 1px 5px; }
}
/* Below 720px a 300px footer column inside 50px of padding needs 400px, which is wider
   than a phone -- that was the sideways scroll on every page. Desktop is untouched. */
@media only screen and (max-width: 720px){
	.footerlists{padding:40px 20px;gap:30px;}
	.footerlistcontainer{max-width:100%;}
}

/* The card title. mov.css sets 14px with 28px leading, which is nearly double-spaced and
   made every card taller than its content once the listing went to two cards per row on a
   phone. Lives here rather than being overridden on templates.php and template.php
   separately -- .tempcard is one component and both pages render it. */
@media only screen and (max-width: 820px){
	/* 18px, not 20. Desktop is 14px on 20px leading (1.43); 12px on 20px here was 1.67, looser
	   than the larger type above it, which is backwards. This block was written while desktop
	   was still 28px and 20 looked tight by comparison. Two lines now measure 36px. */
	.tempcard .tempcardtitle{font-size:12px;line-height:18px;}
	.tempcard .tempcardtitle::first-line{font-size:14px;line-height:18px;}
}


/* ===========================================================================
   Template listing and browse facets -- /templates/ and /templates/<facet>/
   ---------------------------------------------------------------------------
   Moved here from the <style> block templates.php used to build inline. That
   shipped ~5.7KB on all 28 listing and facet pages, uncached, re-sent on every
   request; here it is fetched once with the rest of the stylesheet. Nothing in
   it was ever dynamic -- no PHP variable was ever interpolated -- so the move
   is verbatim, and none of these 59 selectors is defined anywhere else in this
   file, so nothing changes hands in the cascade by arriving later.
   =========================================================================== */
/* One control, not two. The input and button were separate boxes with a gap -- a pale
   outlined field next to a loud orange pill, reading as unrelated. Joined into a single
   bordered pill they read as one search affordance, and the button stops competing with
   the field for attention.
   The form sits on its own row rather than floating beside the intro. Floated, it left a
   dead gap to the right of the paragraph and put three elements on three different
   alignments; stacked, the band reads text -> controls -> grid down one left edge.
   Browse and search as two columns with a rule between them. The form used to float
   right and the chips simply wrapped underneath it, so the hairline divided the first
   chip row from the search and nothing else -- below that the two zones interleaved.
   align-self:stretch runs the border the full height of whatever the chips occupy. */
	.tbrowse{display:flex;align-items:flex-start;margin:0 auto 28px;max-width:1666px;}
	.tchips{flex:1 1 auto;min-width:0;}
	.tsearchcol{flex:0 0 auto;align-self:stretch;margin-left:30px;padding-left:30px;border-left:1px solid #dcdcdc;}
	@media only screen and (max-width:820px){.tbrowse{display:block;}.tsearchcol{margin:0;padding:0;border-left:0;}}
	.tsearchform{display:inline-flex;align-items:stretch;height:38px;border:1px solid #E3E3E3;border-radius:19px;overflow:hidden;background:#fff;margin:0 0 12px 18px;}
/* focus-within puts the orange on the whole control, matching the border-colour cue
   .selectbutton and friends already use across the app. */
	.tsearchform:focus-within{border-color:#FC4A1A;}
	.tsearchinput{border:0;outline:0;background:transparent;height:100%;width:200px;padding:0 8px 0 16px;font-family:Open Sans,sans-serif;font-size:15px;color:#444;box-sizing:border-box;}
/* The WebKit clear button is kept, not suppressed -- it is wired in templates.js to
   navigate back to the unfiltered listing. Only the decoration is dropped, and it is
   given room so it does not sit flush against the Search button. */
	.tsearchinput::-webkit-search-decoration{-webkit-appearance:none;}
	.tsearchinput::-webkit-search-cancel-button{cursor:pointer;margin-right:2px;}
	.tsearchbtn{border:0;border-radius:0;height:100%;padding:0 20px;font-size:13px;font-weight:bold;text-transform:uppercase;letter-spacing:.02em;background:#FC4A1A;color:#fff;cursor:pointer;font-family:Open Sans,sans-serif;}
	.tsearchbtn:hover{background:#e33d0f;}
	.tsearchbtn i{margin-right:7px;}
/* Aspect sizes, under the search box. Deliberately the same pill the template page uses for
   its own Wide / Square / Vertical row -- #efebe4 ground, #333 when active -- so the control
   reads as the same idea in both places rather than a new one. A step smaller (13px against
   14px) because there it is a primary choice and here it is a view preference.
   Centred under the search rather than left-aligned to it. .tsearchcol shrink-wraps to its
   widest child, and .tsizes carries the same 18px left margin as the form, so the two end up
   with identical content boxes -- justify-content:center therefore centres the pills across
   exactly the form's width, not the page's. That equality is what makes this work; keep the
   two margins in step if either changes. */
/* Export Options dialog, shared by the blob maker and the wavy design maker.
   It used to be four identically-styled orange buttons stacked in a 230px box, where the one
   action that led into the product looked exactly like a file format. The handoffs now live on
   each tool's toolbar, so this dialog does one job -- take a file away -- and can look like it.
   The label is the site's .banner turned down: at 14px bold #333 it competed with the buttons
   under it, when its job is to caption them. */
	.mexpdlg{text-align:left;min-width:252px;}
	.mexpsect{margin:0 0 22px;}
	.mexpsect:last-child{margin-bottom:0;}
	.mexplabel{font-size:11px;letter-spacing:.09em;color:#8a837c;margin:0 0 9px;}
/* gap rather than a margin hung off each button: the last one in a row used to need a different
   inline style from its siblings, which is how "padding: 5px; margin-right: 5px" and
   "padding: 5px" ended up side by side doing almost the same thing. */
	.mexpbtns{display:flex;flex-wrap:wrap;gap:8px;}
	.mexpbtns .actionbutton{padding:6px 0;font-size:13px;letter-spacing:.04em;min-width:66px;
		text-align:center;}
	.mexpbtns .actionbutton:hover{background:#e33d0f;border-color:#e33d0f;}

/* Jump link to the questions at the foot of the page. Same treatment as .ntjump on the template
   page -- muted, underlined on a hairline, orange on hover -- because it is the same affordance
   in the same role, and two different-looking "skip down to the detail" links across two pages
   would read as two different things. */
/* Same treatment as .tjump and .ntjump -- the third member of the same family, so the way down
   and the way back read as one idea. Centred because it closes the block rather than labelling
   it, and centring is what says "this is the end" without a rule across the page. */
	.tbacktotop{margin:30px 0 0;text-align:center;font-size:12.5px;line-height:1.4;}
	.tbacktotop a{color:#8a837c;text-decoration:none;border-bottom:1px solid #e0dbd4;padding-bottom:1px;}
	.tbacktotop a:hover{color:#FC4A1A;border-bottom-color:#FC4A1A;}
	.tjump{margin:12px 0 0;font-size:12.5px;line-height:1.4;}
	.tjump a{color:#8a837c;text-decoration:none;border-bottom:1px solid #e0dbd4;padding-bottom:1px;}
	.tjump a:hover{color:#FC4A1A;border-bottom-color:#FC4A1A;}
	.tsizes{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;margin:12px 0 12px 18px;}
	.tsize{font-size:13px;font-weight:600;line-height:1.35;padding:5px 12px;border-radius:100px;
		background:#efebe4;color:#4a4540;text-decoration:none;transition:background .12s,color .12s;}
	.tsize:hover{background:#e6e1db;color:#231f1c;}
	.tsize.on,.tsize.on:hover{background:#333;color:#fff;cursor:default;}
/* On a phone the control should own the row rather than hugging the right edge. */
/* Between the .tbrowse stack (820px) and the full-width form (700px) the column stops being a
   shrink-wrapped flex item and runs the full page width, while the form keeps its intrinsic
   width -- that breaks the equality above and would pull the pills to the middle of the PAGE
   rather than under the search. Restore the shrink-wrap on the column instead of special-casing
   the pills: the column hugs the form again, .tsizes fills it, and the same centring applies at
   every width. */
	@media only screen and (min-width:701px) and (max-width:820px){.tsearchcol{width:max-content;}}
	@media only screen and (max-width:700px){.tsearchform{display:flex;width:100%;margin:0 0 14px;}.tsearchinput{width:auto;flex:1 1 auto;}
		/* The form loses its 18px indent here, so the size row loses it too or the two stop
		   sharing a left edge. */
		.tsizes{margin-left:0;}}
/* Browse chips. These replace the Recommendations menu, whose items looked like filters
   and only ever revealed a paragraph -- four of them named templates.type values exactly.
   .templateheader is font-size:0 -- it previously held nothing but floated controls --
   so anything textual placed in it has to restate its size.
   A centred content column, with everything left-aligned inside it. The page is
   full-bleed, so on a wide monitor the intro/search/chips started at the band padding
   while the card grid centred itself -- two different left edges. 1760px is chosen to
   still fit four 394px cards plus their 30px gaps inside the 40px band padding. */
	.templatefullcont.tband,.templateheader.tband{max-width:1760px;margin-left:auto;margin-right:auto;padding-left:40px;padding-right:40px;}
/* Text and showcase side by side, the shape template.php uses for its summary block.
   The two columns are both capped -- text at 70ch, media at 520px -- so on a wide band
   they came to about 1160px inside 1660px and sat hard left with the slack trailing off
   the right edge. Centring the pair balances the panel without stretching either column.
   One content width, shared and centred. The panel is capped by its own contents -- a
   70ch text column beside a 520px collage -- so left-aligned it filled about 1240px of a
   1680px band while the browse row and the grid filled the whole thing, which read as the
   middle bulging. Stating the width once and centring both stops them disagreeing.
   Two widths, both centred. The panel stays at its natural size -- a readable text
   measure beside the collage -- while the browse row and the grid take the wider column
   so the cards keep four per row. The two lower blocks share one value so they cannot
   drift out of line with each other, which is what produced the bulge. */
	.tlead{display:flex;gap:42px;align-items:center;margin:0 auto 52px;max-width:1242px;}
/* With two columns, centring balances them and the text stays left. With one -- a search,
   or leadmedia=none -- a 70ch block pinned left leaves most of the band empty beside it,
   so the panel becomes a centred hero and its text centres with it. */
	.tleadsolo{justify-content:center;text-align:center;}
	.tleadsolo .tleadtext{max-width:62ch;}
	.tleadsolo .tintro{text-align:center;}
	.temptyresults{flex:1 1 100%;text-align:center;padding:70px 20px 90px;color:#8a837c;font-size:16px;line-height:1.6;}
	.temptyresults i{display:block;font-size:34px;color:#dcd7d0;margin-bottom:18px;}
	.temptysug{margin-top:14px;font-size:14px;}
	.temptysug a{color:#FC4A1A;margin:0 8px;white-space:nowrap;}
/* The search page h1. Small because it is a status line, not a banner -- but it is still
   the document heading, so the page is not left without one.
   The card grid. .tempcard is a hard 394px with every responsive rule in mov.css
   commented out, so a phone got one card per row over 417 rows -- 164 screens, unchanged
   from the old page even after desktop went from two per row to four. Two per row halves
   it. Sized by percentage rather than a fixed width so the pair always fills the row. */
	@media only screen and (max-width:820px){
		#alltemplatescontent .tempcard{width:calc(50% - 8px);max-width:none;padding:10px;}
		#alltemplatescontent{gap:16px;}
/* The 12px/20px card title that used to be overridden here now lives in mov.css, beside
   the .tempcard rule it corrects, so template.php gets it too without a second copy. */
	}
/* Still two per row -- this only tightens the padding and the gap. An earlier comment here
   claimed one card per row, which the rule has never done: calc(50% - 6px) is two, measured
   at 174px each on a 400px screen. Kept at two because a 16:9 still is legible at that size
   and one-per-row would put a 417-card listing on a very long scroll.
   The width no longer carries !important. It never needed it: #alltemplatescontent .tempcard
   is (1,1,0) and beats the bare .tempcard (0,1,0) on specificity wherever it sits. The
   original reason was source order against movidmo.css, which stopped applying when this
   block moved into the stylesheet itself. */
	@media only screen and (max-width:420px){
		#alltemplatescontent .tempcard{width:calc(50% - 6px);padding:8px;}
		#alltemplatescontent{gap:12px;}
	}
/* .templatefullcont is padding:50px 10px on mobile while .templateheader is 50px 20px, so
   the cards sat 10px left of everything above them. One value for both bands.
   .templatefullcont.tband is (0,2,0) and beats the bare .templatefullcont on specificity,
   so it holds wherever it sits in the sheet. That was written to survive being parsed
   BEFORE movidmo.css, back when this lived in a page <style>; it costs nothing now that
   the rules are in the stylesheet itself, and it keeps the rule independent of position. */
	@media only screen and (max-width:820px){.templatefullcont.tband,.templateheader.tband{padding-left:20px;padding-right:20px;}}
	#alltemplates{max-width:1666px;margin-left:auto;margin-right:auto;}
/* Centred, and the actions on their own line beneath. They used to sit inline inside the h1,
   which put navigation in the heading text and hung a small grey clause off the end of a bold
   20px line. On their own line the count reads as the answer to the search and the two links
   read as what to do next.
   white-space:nowrap goes with the move: it existed to stop the pair breaking away from the
   heading they trailed, and on their own line breaking is what should happen on a phone. */
/* Common questions, under the grid. The pill heading is template.php's .ntsect > h2 treatment
   -- 14px uppercase at .13em on #efebe4 -- because that is already what a labelled section
   looks like on this site, and a new one would just be a second dialect.
   Answers are capped near 70ch. The band is full width so it sits on the page's own rhythm,
   but running text across 1666px would be unreadable. */
/* The questions as a tinted card, matching the how-to panel on template.php: same #faf8f5, same
   8px radius, same inner padding. Scoped to .tfaqband so it does NOT reach template.php, whose
   how-to reuses .tfaq inside its own panel and would end up with a card inside a card.
   The 40px band padding puts the card's edges on the grid's own 40/1240 column -- aligning the
   EDGE is what makes a card look placed, the lesson from the template page.
   Two columns via column-count, which is right HERE and was wrong there: the how-to is a
   sequence and columns fill downwards, so 1,2 / 3,4 read as 1,3,2,4. Questions are a set with
   no order to break, and five of them balance across two columns on their own. */
	.tfaqband{padding-top:0;padding-left:40px;padding-right:40px;}
	.tfaqband .tfaq{max-width:1666px;margin:0 auto 48px;background:#faf8f5;border-radius:8px;
		padding:30px 36px;}
/* Grid, not column-count -- row-wise, matching the how-to on template.php. Columns fill
   DOWNWARDS (1-3 left, 4-5 right); a grid fills across each row, so the numbers read 1,2 / 3,4 /
   5 the way an English reader scans. Same reasoning that made the how-to a grid, and the same
   reason the numbers matter: in two columns the reader needs telling where to look next.
   Row spacing is the grid gap rather than item margins, so the final row needs no special case.
   Same marker as that panel -- 23px, white on #FC4A1A -- because it is the same device. */
	.tfaqband .tfaqlist{display:grid;grid-template-columns:1fr 1fr;gap:26px 54px;
		align-items:start;counter-reset:tfq;}
	.tfaqband .tfaqitem{counter-increment:tfq;position:relative;padding-left:38px;margin:0;}
	.tfaqband .tfaqitem:before{content:counter(tfq);position:absolute;left:0;top:0;
		font-size:11px;font-weight:700;color:#fff;background:#FC4A1A;
		width:23px;height:23px;border-radius:50%;display:flex;
		align-items:center;justify-content:center;}
	@media only screen and (max-width:900px){
		.tfaqband{padding-left:0;padding-right:0;}
		.tfaqband .tfaq{padding:26px 22px;}
		.tfaqband .tfaqlist{grid-template-columns:1fr;}
		.tfaqband .tfaqitem{padding-left:32px;}
		.tfaqband .tfaqitem:before{width:20px;height:20px;font-size:10px;}
	}

	.tfaq{max-width:760px;margin:0 auto;text-align:left;padding:8px 0 48px;}
	.tfaq > h2{display:inline-block;font-size:14px;letter-spacing:.13em;text-transform:uppercase;
		font-weight:700;color:#4a443e;background:#efebe4;border-radius:100px;padding:8px 16px;
		margin:0 0 28px;}
	.tfaqitem{margin:0 0 26px;}
	.tfaqitem:last-child{margin-bottom:0;}
	.tfaqitem h3{font-size:17px;line-height:1.35;font-weight:700;color:#333;margin:0 0 7px;}
	.tfaqitem p{font-size:15.5px;line-height:1.6;color:#5a544e;margin:0;max-width:70ch;}
	.tfaqitem a{color:#FC4A1A;}
	.tfaqitem b{color:#333;font-weight:600;}
	@media only screen and (max-width:820px){
		.tfaq{padding-bottom:32px;}
		.tfaqitem h3{font-size:16px;}
		.tfaqitem p{font-size:15px;}
	}
	.tresultline{font-size:20px;line-height:1.4;font-weight:bold;color:#333;margin:0 0 6px;text-align:center;}
	.tresultacts{display:block;font-size:14px;font-weight:normal;color:#8a837c;margin:0 0 22px;text-align:center;}
	.tresultacts a{color:#FC4A1A;}
	.temptyacts{margin-top:26px;}
	.temptyact{display:inline-block;text-decoration:none;font-size:14px;padding:9px 20px;border-radius:4px;margin:0 6px;}
	.temptyactalt{background:#fff;color:#FC4A1A;}
	.temptyactalt:hover{background:#fff5f2;}
/* The h1 and the Start-from-scratch CTA live here now. The hero band they came from was
   ~220px of viewport -- padding:50px around a 120px title block -- spent on a title and
   one button, above a page whose entire purpose is browsing 417 templates.
   font-size is not optional here. .templateheader is font-size:0, and a ch unit resolves
   against the element's own font size -- so max-width:70ch on a wrapper that inherits 0
   computes to 0px and collapses the column to nothing. It only worked while the cap sat
   on .tintro, which declares its own size on the same element. */
	.tleadtext{flex:1 1 auto;min-width:0;font-size:18px;max-width:70ch;}
	.tleadtitle{font-family:Poppins,Open Sans,sans-serif;font-size:38px;line-height:1.12;font-weight:bold;color:#333;margin:0 0 16px;}
/* 18px/1.62 matches .ntsummary p on the template page. The two pages are read one after
   the other, so body copy that changes size between them reads as a mistake. */
	.tintro{font-size:18px;line-height:1.62;color:#5a544e;text-align:left;margin:0 0 22px;}
/* The CTA previously appeared with nothing introducing it, so it read as a stray button
   after the paragraph rather than an offer. This says what it is for: /app/ opens an
   empty project, which is the one thing the whole page of templates does not give you. */
	.tleadmeta{font-size:14px;color:#8a837c;margin:-6px 0 18px;}
	.tleadmeta a{color:#FC4A1A;}
	.tleadcue{font-size:15px;line-height:1.5;color:#8a837c;margin:0 0 12px;}
	.tleadcta{display:inline-block;text-decoration:none;font-size:15px;padding:9px 20px;border-radius:4px;}
	@media only screen and (max-width:700px){.tleadtitle{font-size:30px;}}
	.tleadmedia{flex:0 0 38%;max-width:520px;}
	.tcollage{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
	.tcollageitem{position:relative;display:block;border-radius:6px;overflow:hidden;background:#f2f2f2;line-height:0;}
	.tcollagevid{display:none;position:absolute;top:0;left:0;width:100%;height:100%;}
	.tcollagevid video{display:block;width:100%;height:100%;object-fit:cover;}
	.tcollageitem img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;transition:transform .18s;}
	.tcollageitem:hover img{transform:scale(1.05);}
/* Below this the two columns are too narrow to be worth keeping apart. */
	@media only screen and (max-width:960px){.tlead{display:block;}.tintro{max-width:none;}.tleadmedia{max-width:520px;margin-top:24px;}}
	.tintro a{color:#FC4A1A;}
	.tchips{font-size:14px;text-align:left;margin:0;}
/* One row per facet with its own label. Dividers inside a single wrapping row stopped
   meaning anything the moment 28 chips spilled onto a second line -- types and occasions
   ran together mid-row. Separate labelled rows survive wrapping. */
	.tchiprow{display:block;}
	.tchiprow:last-child{margin-bottom:0;}
/* 12px/.12em is what .ntback and .ntfacet use on the template page. */
/* The long tail of occasions is hidden until asked for. 23 of them at once is a wall,
   and the bottom half have 1-4 templates each.
   Qualified with .tchip rather than relying on source order. .tchip also sets display,
   at the same specificity, and it is declared further down the sheet -- so a bare
   .tchipmore{display:none} lost to it and the tail never collapsed at all. */
	.tchip.tchipmore{display:none;}
	.tchipsopen .tchip.tchipmore{display:inline-block;}
	.tchipmorebtn{display:inline-block;background:none;border:0;padding:7px 6px;margin:0 0 8px;color:#8a837c;font-size:13px;cursor:pointer;text-decoration:underline;font-family:Open Sans,sans-serif;vertical-align:middle;}
	.tchipmorebtn:hover{color:#FC4A1A;}
/* Horizontal scroll only where the screen genuinely cannot hold the row. On desktop it
   would hide most of the browse options behind an invisible affordance. */
	@media only screen and (max-width:700px){.tchiprow{white-space:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px;}.tchip{margin-bottom:0;}}
	.tchip{display:inline-block;padding:7px 15px;margin:0 7px 8px 0;border-radius:100px;background:#f2f2f2;color:#444;text-decoration:none;white-space:nowrap;line-height:18px;vertical-align:middle;transition:background .12s;}
	.tchip:hover{background:#e4e4e4;}
/* Types read as a different kind of choice from occasions. The tint is drawn from the
   teal in the page header rather than introducing a new colour. */
	.tchiptype{background:#e4f2f1;color:#2f6b67;}
	.tchiptype:hover{background:#d3e9e7;}
/* Industry is the third family in the row. A warm sand rather than a second cool hue: the
   page already runs on warm greys (#6c6660, #8a837c, #a8a29b) and the teal is the one cool
   note in it, so another blue or green beside it would have read as a second kind of type
   chip. #6f5c3f on #f3ece1 is 5.4:1, which clears AA for the 14px chip text. */
	.tchipind{background:#f3ece1;color:#6f5c3f;}
	.tchipind:hover{background:#eadfcc;}
	.tchipon,.tchiptype.tchipon,.tchipind.tchipon{background:#FC4A1A;color:#fff;}
	.tchipon:hover{background:#e33d0f;}
	.tchipn{opacity:.55;margin-left:6px;font-size:12px;}


/* One full-width card per row on a phone, on the pages that nest #templatelist inside
   .templatelistcont -- index, marketing and the four ad-maker pages.
   .templatelistcont is display:flex, so #templatelist is a flex item, and a flex item's
   automatic minimum size is its min-content width. That is one .tempcard, which is a hard
   394px, so the list refused to shrink below 394 inside a 355px container and pushed the
   whole document 9px wide at 375 and 37px at 320. .tempcard's own max-width:100% could not
   help: the parent it resolves against was itself sized by the card. Exactly the .footerlists
   bug in a different place. min-width:0 releases the floor, max-width:100% supplies the cap.
   Deliberately NOT applied to template.php's related grid: there the element IS the container
   (<div id=templatelist class=templatelistcont>), so it is never a child of one, and
   .ntrelated already lays it out as a 12-column grid two-up. The child combinator is what
   keeps these apart.
   420px, matching the breakpoint the listing already uses: a 394px card fits any viewport at
   or above ~414px, so above this width there is nothing to fix and a stretched card would
   only make a 16:9 thumbnail absurdly wide on a tablet. */
@media only screen and (max-width: 420px){
	.templatelistcont > #templatelist{min-width:0;max-width:100%;}
	.templatelistcont > #templatelist .tempcard{width:100%;max-width:100%;}
}


/* ===========================================================================
   Below-the-app type, phones only.

   The explanatory sections under the card are set at 20px with a 175% leading, which reads well
   in a 780px column on a desktop and is simply too big on a 375px screen -- about thirty
   characters to a line, so every paragraph becomes a column of fragments. Headings scale (they
   are clamps); the body copy never did.

   Lives here rather than in either page because BOTH pages carry their own inline copy of these
   rules and they have already drifted apart -- the two blocks differ today. One override in the
   shared stylesheet is one thing to keep true instead of two.

   The selectors carry an extra class on purpose: this file is loaded before each page's inline
   <style>, so at equal specificity the page wins and a media query adds none of its own.
   =========================================================================== */
@media (max-width: 620px) {
    .vg-how .vg-step p,
    .vg-faq .vg-step p { font-size: 16.5px; line-height: 1.6; }
    .vg-how .vg-step h3,
    .vg-faq .vg-step h3 { font-size: 18.5px; }
    .vg-how .vg-faq h3,
    .vg-faq h3 { font-size: 17.5px; }
    /* The examples lead sits inside a .vg-step, so it takes the body size above; it just needs
       its own leading back, being a single short paragraph rather than running text. */
    .vg-how .vg-step p.vg-exlead { line-height: 1.5; }
}

/* ===========================================================================
   AI showcase carousel -- the scroll-snap strip of description/result pairs.

   Lived inline in ai.php AND imageai.php, which meant every change had to be
   made twice and the two had already drifted. Moved here 2026-09-11 so a third
   page can use it: the markup and the script are already shared, in
   includes/aigallery.php (aiShowcaseCarousel / aiCarouselScript), so including
   that file is now the whole cost of putting the strip on another page.

   Deliberately NOT moved: .vg-shapecap, whose color differs on purpose between
   the two pages (#7a9299 on the video page, #8496b8 on the image page). It
   stays inline in each. Everything below was byte-identical in both copies and
   is unchanged by the move -- note that includes the teal palette, which the
   image page was already using for its carousel despite being bluer elsewhere.
   =========================================================================== */

/* One prompt and one video per scene, one scene in view. Bleeds the same 40px each side as
   .vg-shapes so the two sections line up. The track is a scroll-snap strip: a touch screen
   swipes it natively and the arrows drive the same scrollLeft, so there is no second position
   model to fall out of step with it. */
/* Bleed to the edge of the WINDOW rather than a fixed 40px, capped at 140. The strip was ending
   inside the card with teal to spare on both sides, which read as the film being cut short rather
   than running on. max() picks whichever bleed is smaller in magnitude, so a narrow window gets
   exactly the room it has and can never overflow into a horizontal scrollbar -- and at around
   900px it lands on -40 by itself, which is where this started. */
/* ===== ?strip=even -- the evenly weighted variant, off by default =====================
   Every clip the same weight: no scale on the centre, every title shown, every visible clip
   playing. The heights are uniform in BOTH modes -- that is what --sceneh does
   -- so what this really tests is whether singling one out helps or just makes the other five
   look like they are waiting their turn. The lift stays on the centre: with nothing at all to
   mark it, the arrows and the snap have no visible subject. */
.vg-even .vg-scene .vg-scenevid,
.vg-even .vg-scene.vg-cur .vg-scenevid { transform: none; }
.vg-even .vg-scene:not(.vg-cur) .vg-scenetitle { visibility: visible; }
/* A shadow on EVERY clip, not just the centre one. Two reasons it changed. The band is gone in
   the hero, so the clips sit straight on the page's teal with nothing but their own edge -- a
   little lift is what separates a picture from a coloured rectangle painted on the background.
   And a shadow on one clip alone is emphasis, which is the one thing even weighting is not: it
   left the middle looking picked out on a strip whose whole claim is that none of them is.
   Both selectors because the centre still carries .vg-cur, and the plain rule further down the
   file would otherwise win it back on specificity. */
/* video AND img. Every shadow rule here named `video`, so the image page -- whose scenes render
   <img> because a still has nothing to play -- had no shadow on any clip at all. The band is gone
   in the hero, so without it the stills sat flat on the page's own colour while the videos beside
   them on the other page were lifted off it. */
.vg-even .vg-scene video, .vg-even .vg-scenevid > img,
.vg-even .vg-scene.vg-cur video { box-shadow: 0 6px 20px rgba(0, 0, 0, 0.30); }
/* Nothing is scaled, so the chip needs no room above the clip beyond its own half. The gap grows
   though: with one clip raised above the rest, 12px reads as the others tucked in behind it, but
   with every clip on the same plane they simply butt together and the strip becomes one long
   picture with seams. Even weighting needs even air. */
/* Both paddings stated, not just the top. Overriding one and inheriting the other is how even
   mode ended up 24 above and 44 below: the default's bottom padding is sized to clear a scale-up
   that does not happen here. */
/* Snapped to the START in even mode. scroll-snap-align: center is the ring's rule; a shelf rests
   with a clip against the left edge. */
.vg-even .vg-scene { scroll-snap-align: start; }
/* No snapping on the desktop shelf. Not mandatory, not proximity -- none.
   Snap points here sit as much as 790px apart, because a wide clip is 764 wide, and a snap always
   resolves to the NEAREST one. So any gesture travelling less than half that distance was dragged
   straight back where it came from: measured, twelve separate 200px scrolls left the strip at
   zero, having moved nowhere at all. On a phone that showed up as the first swipe bouncing back
   to the clip before it.
   There is nothing a snap buys this layout. Clips are different widths, so there is no grid to
   hold; there is no "current" to rest on, since even mode singles out nothing; and the thing a
   reader wants -- to push the film sideways and look -- is what snapping was preventing. The
   phone keeps mandatory below, where one clip fills the view and a swipe really does mean
   "the next one". */
.vg-even .vg-track { scroll-snap-type: none; }
/* The edge fade. Where there is more film in a direction, the strip dissolves into the page on
   that side; where there is not, it ends cleanly. A mask rather than a gradient overlay because
   the page behind it is a teal GRADIENT -- any solid overlay would be a slightly wrong colour at
   one end of itself. Both variables are 0 when everything fits, and the gradient is then opaque
   from end to end, so a short strip gets no fade at all. */
.vg-carousel { --fadeL: 0px; --fadeR: 0px; }
.vg-carousel.vg-more-left  { --fadeL: 165px; }
.vg-carousel.vg-more-right { --fadeR: 165px; }
.vg-track {
    -webkit-mask-image: linear-gradient(to right, transparent 0, #000 var(--fadeL),
                        #000 calc(100% - var(--fadeR)), transparent 100%);
            mask-image: linear-gradient(to right, transparent 0, #000 var(--fadeL),
                        #000 calc(100% - var(--fadeR)), transparent 100%);
}
/* No arrows on the shelf at all. They were drawn ON TOP of the clips to say the strip moves --
   covering the evidence in order to describe it -- and the wide dissolve at each edge now says
   the same thing using the film itself. What is left underneath is a plain scroll container:
   trackpad, touch, drag, and the arrow keys once it has focus. The focus-mode ring keeps its
   arrows, because a ring has no edges to dissolve -- it is always full at both ends. */
.vg-even .vg-arrow { display: none; }
/* The focus variant keeps them, revealed on approach. */
.vg-arrow { opacity: 0; transition: opacity 0.18s ease; }
.vg-carousel:hover .vg-arrow,
.vg-arrow:focus { opacity: 1; }
@media (hover: none) { .vg-arrow { opacity: 1; } }
/* The strip takes focus now, so it needs to show it -- and inside, not outside, or the outline
   is cropped by the scroller's own overflow. */
.vg-track:focus { outline: none; }
.vg-track:focus-visible { outline: 2px solid rgba(255, 255, 255, 0.85); outline-offset: -3px; }

/* Says it can be pushed. The scene-level pointer cursor is a focus-mode idea -- there a click
   centres that clip -- and on a shelf it promises something clicking does not do. */
/* Hidden by default: the desktop shelf says "there is more" with the film itself, running off
   both edges behind a fade. Shown at the phone breakpoint below, where neither of those exists. */
.vg-dots { display: none; gap: 7px; justify-content: center; margin: 14px 0 0; }
.vg-dot { width: 7px; height: 7px; padding: 0; border: 0; border-radius: 50%; cursor: pointer;
          background: rgba(255, 255, 255, 0.34); transition: background 0.2s, transform 0.2s; }
.vg-dot.on { background: #fc4a1a; transform: scale(1.25); }

.vg-even .vg-track { cursor: grab; }
.vg-even .vg-scene { cursor: inherit; }
.vg-even .vg-track { padding: 20px 0 24px; gap: 26px; }
/* Air at both ends, so the first and last clip do not butt against the window. Spacers rather
   than padding-left/right, because this is a flex scroll container and Chrome drops the trailing
   padding on those -- the left would have held and the right would silently not have, which is
   the kind of asymmetry nobody finds by reading the CSS. Sized to the gap between clips so the
   ends and the middle are the same distance apart. */
.vg-even .vg-track::before,
.vg-even .vg-track::after { content: ""; flex: 0 0 26px; }
/* scroll-padding, or the snap undoes the spacer. scroll-snap-align: start aligns a clip to the
   CONTAINER's edge, so from a rest at 0 the nearest snap point was the first clip at 52 and the
   browser quietly pulled the inset away -- measured, it settled at scrollLeft 52 with the clip
   flush. scroll-padding moves the line a clip snaps to inwards by the same amount, so the inset
   survives a snap and every clip navigated to rests at it.
   52 = the 26px spacer plus the track's own 26px gap, which also falls between the spacer and
   the first clip. */
.vg-even .vg-track { scroll-padding-left: 52px; scroll-padding-right: 52px; }
/* Was here to give the end of the shelf a resting place the snapping would accept. With no
   snapping on desktop the scroller simply stops at the end, with the trailing spacer providing
   the same inset as the head -- and on the phone, where snapping remains, a scene is the full
   width of the view so its start and its end are the same position. Kept for the phone, where
   it costs nothing and states the intent. */
.vg-even .vg-scene:last-of-type { scroll-snap-align: end; }
.vg-even .vg-arrow { bottom: calc(var(--sceneh) / 2 + 24px); }

/* ===== ?place=hero|below -- the strip outside the card ==============================
   Everything in the showcase is coloured for a white card. On the page's teal ground the lead
   line was #1a6b7a on teal and the caption was grey on teal -- both nearly invisible. Only the
   type changes; the band brings its own dark ground with it wherever it sits.
   The band also stops needing a negative margin out here: its parent is already the full-width
   section, so calc(50% - 50vw) resolves to roughly zero on its own and the rule does no harm. */
/* The h1 when it sits outside the card, on the page's own teal. The card's h1 is #1a6b7a, which
   is the one colour that disappears against that ground. Centred because it is now heading the
   whole band rather than labelling a panel, and larger for the same reason -- out here it is the
   page's opening line, not the card's. */
.vg-hoisted { color: #fff; text-align: center; max-width: 900px; margin: 0 auto 16px;
              font-size: clamp(27px, 4.2vw, 42px); line-height: 1.14; font-weight: 700;
              letter-spacing: -0.01em; text-shadow: 0 2px 8px rgba(0, 0, 0, 0.22); }
.vg-hoisted .vg-kicker { color: #fff; opacity: 0.72; }
/* `.vg-hero h1 { margin: 0 0 14px }` lives in ai.php's INLINE stylesheet, which the browser reads
   after this file -- equal specificity, later sheet wins, so the auto side margins above were
   being dropped and the heading sat as a 900px box pinned to the left with its text centred
   inside it. One more class out-specifies it from here. */
/* More air under the heading than over the strip's own top padding. At 6px the title sat almost
   on the film; the band that used to separate them is gone, so the gap has to do that work now. */
.vg-hero h1.vg-hoisted { margin-left: auto; margin-right: auto; margin-bottom: 22px; }
@media (max-width: 620px) { .vg-hero h1.vg-hoisted { margin-bottom: 16px; } }
/* Tucked under the banner's rule, inside the panel. */
.vg-bannerlink { text-align: center; margin: -8px 0 16px; }
.vg-bannerlink .vg-doclink { margin: 0; }
/* The banner the lead line becomes when it moves onto the panel. Same treatment as .vg-showlead
   had on white, since that is exactly what it is -- only its address changed. */
.vg-cardbanner { text-align: center; font-family: Poppins, sans-serif; font-size: 19px;
                 font-weight: 600; line-height: 1.3; letter-spacing: -0.01em; color: #1a6b7a;
                 margin: 2px auto 18px; max-width: 620px; }
.vg-cardbanner::after { content: ""; display: block; width: 42px; height: 3px; border-radius: 2px;
                        background: #9fd6e0; margin: 9px auto 0; }
@media (max-width: 620px) { .vg-cardbanner { font-size: 16.5px; } }
.vg-showcase-out { margin: 0 0 26px; }
/* As a hero the strip is evidence, not a catalogue. The chip and the bar are both there to help
   someone CHOOSE -- the chip names a neighbour worth crossing to, the bar answers "is this stuck
   or playing" during a slow scene. Up here nobody is choosing: they are being shown, once, before
   they have decided anything, and the two pieces of chrome make a reel look like a widget.
   The doubt the bar answered is also smaller here, because several clips are moving at once.
   Both are one line each to put back; the descriptions and the format labels still exist in the
   examples section further down, which is where a reader who wants to choose ends up anyway. */
/* The chip goes; the bar stays. They were hidden together on the reasoning that both help someone
   CHOOSE, but the bar is not really a chooser's tool -- it is the only thing on screen that says
   the picture is running rather than stuck, which matters more in a hero, not less, because the
   reader has not decided to pay attention yet.
   It was also half-hidden by accident: this rule is (0,2,0) and the even-mode rule that shows a
   bar on every non-centre clip is (0,4,0), so the neighbours kept theirs and only the middle one
   lost it -- the inverse of the intent, and visible as bars under some clips and not others. */
/* The chips are back. They came off on the reasoning that a hero is evidence rather than a
   catalogue and nobody up there is choosing -- which held right up until the examples section
   below started saying "these are the descriptions that produced the examples at the top, same
   names, same order". That sentence is only true to a reader who can see the names. The chip is
   what makes the two halves of the page one argument instead of two lists that happen to match. */
/* The caption and the two links go too. In the panel they closed the showcase off; as a hero they
   sit in the one place that should be empty -- between the film and the tool -- and ask the reader
   to go somewhere else at the exact moment the page has finally shown them what it does.
   Nothing is orphaned. /templates/ is in the site nav. The How-it-works section is the next thing
   down the page under its own heading. The descriptions are still one click away inside step 1,
   which is now directly below this, via "See example descriptions". And the claim the caption
   carried -- that these are generated, not templates -- is what the panel's banner says: "Make an
   MP4 video like the ones above". */
.vg-place-hero .vg-shapecap,
.vg-place-hero .vg-showlinks { display: none; }
/* No band up here. It was earning its keep when the strip sat INSIDE the white card and crossed
   its edge -- the dark ground was what made that crossing look deliberate rather than like
   content escaping. As a hero the page's own teal is already the ground, and the band just lays
   a hard-edged stripe across it and cuts the header off from the clips. The clips bring their
   own dark with them. */
.vg-place-hero .vg-carousel { background: none; }
.vg-showcase-out .vg-showlead { color: #fff; }
.vg-showcase-out .vg-showlead::after { background: rgba(255, 255, 255, 0.45); }
.vg-showcase-out .vg-shapecap { color: rgba(255, 255, 255, 0.72); }
.vg-showcase-out .vg-doclink { color: rgba(255, 255, 255, 0.82); }
.vg-showcase-out .vg-doclink:hover { color: #fff; }

/* A band, running the full width of the window. The strip was already bleeding past the card and
   it read as content escaping rather than as a section of its own -- clips half on the white card
   and half on the page behind it, with no edge anywhere to say which was intended. On its own dark
   ground the whole thing becomes one object: the card stops at its edges, the reel crosses it, and
   the clips sit against a colour that flatters them rather than against white.
   max-width/overflow-x guard the classic 100vw trap, where vw counts the scrollbar and the page
   gains a few pixels of sideways scroll. */
.vg-carousel { --sceneh: 320px; position: relative; margin: 0 0 20px;
               margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw);
               max-width: 100vw; overflow-x: hidden;
               background: #0e3b45; padding: 4px 0 0; }
@media (min-width: 1080px) { .vg-carousel { --sceneh: 380px; } }
@media (min-width: 1360px) { .vg-carousel { --sceneh: 430px; } }
/* No scroll-behavior: smooth. With scroll-snap-type mandatory it drops the animation and
   snaps back to 0, so an arrow click moved nothing; without snap it under-shoots. A direct
   scrollLeft is exact, and snapping still governs the touch swipe. */
/* The one line of copy above the strip. It replaced two sentences set at 17px across the full
   width, which read as a paragraph of marketing standing between the reader and the tool. Kept
   here rather than inline in the two AI pages because it belongs to the showcase, and the whole
   point of moving this block was that a third page should get the component whole. */
.vg-showlead { text-align: center; font-family: Poppins, sans-serif; font-size: 20px;
               font-weight: 600; line-height: 1.3; letter-spacing: -0.01em; color: #1a6b7a;
               margin: 4px auto 18px; max-width: 620px; }
/* The 6px this replaced was fine against white. Against the band's hard top edge it read as the
   heading being crowded off the card by it. */
/* The same short rule that sits under every section heading on these pages, so this reads as the
   showcase's own heading rather than a sentence that happens to be bold. */
.vg-showlead::after { content: ""; display: block; width: 42px; height: 3px; border-radius: 2px;
                      background: #9fd6e0; margin: 9px auto 0; }
@media (max-width: 620px) { .vg-showlead { font-size: 17px; } }

/* position: relative so a scene's offsetLeft is measured against the track itself -- the script
   centers by offsetLeft now rather than by multiplying the track width, because a scene is no
   longer as wide as the track. */
/* 12px, not 20: the clips are the content now and the line reads as a strip of film rather
   than a row of cards. */
/* The vertical padding is what the enlarged centre grows INTO. Without it the track clips it or
   raises a scrollbar: overflow-x:auto computes overflow-y to auto too, so neither axis is visible. */
.vg-track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; position: relative;
            scrollbar-width: none; -ms-overflow-style: none; gap: 12px; padding: 40px 0 44px; }
/* 40 and 44 -- unequal numbers producing equal GAPS, which is the only thing anyone sees. Three
   things offset the two edges differently: the band carries 4px of its own padding at the top
   only, the playing clip is scaled about its centre so it reaches past its box both ways, and the
   title chip rides up out of the top and needs to stay inside the band. Measured at every step
   rather than derived -- it began at 59 above against 43 below, and the obvious trim then put
   both at 9 and pushed the chip 5px OUT of the band's top edge. These give 27 and 27 with the
   chip 13 inside. The arrow offset below must match the bottom padding or it drifts off the
   clip's centre. */
.vg-track::-webkit-scrollbar { display: none; }
/* The two edge slivers do the job the spacers used to: they give the first and last scene enough
   room in front of and behind them to reach the middle, AND they show the wrapped-around neighbour
   instead of a blank gutter. 360px now rather than 170: with scenes sized to their own clips the
   narrowest scene is a 180px vertical, and centring THAT leaves (900-180)/2 = 360px to fill on
   each side. Sized for the worst case, because a sliver narrower than the gap puts the blank
   gutter straight back. */
/* .vg-scene.vg-ghost, not .vg-ghost: it carries .vg-scene for the layout, and a bare
   single-class selector loses the flex-basis to .vg-scene further down the file. */
/* calc(50% - 90px), not a fixed 360: the room beside a centred scene is (trackWidth - sceneWidth)/2,
   and the narrowest scene is a 180px vertical, so the worst case is half the track less 90. A fixed
   number was right for one track width and left a blank gutter at every other. */
.vg-scene.vg-ghost { flex: 0 0 calc(50% - 90px); overflow: hidden; pointer-events: none;
                     scroll-snap-align: none; cursor: default; }
/* Pushed against the INNER edge. Centred like a real scene, a square or vertical poster would sit
   in the middle of a 170px sliver and the peek would show empty box -- which is the whole bug. */
/* Present for its height, never read: it reserves exactly the space the real title takes so the
   sliver's picture lines up with the picture beside it. */
.vg-scene.vg-ghost .vg-scenetitle { visibility: hidden; }
.vg-ghost.vg-lead  .vg-scenevid { justify-content: flex-end; }
.vg-ghost.vg-trail .vg-scenevid { justify-content: flex-start; }
/* max-width:none so the poster keeps its own width and is clipped by the sliver's overflow --
   constrained to 100% it would shrink to fit and stop filling the height. */
.vg-ghost img { height: 100%; width: auto; max-width: none; display: block; border-radius: 8px; }
/* A strict line: every scene is exactly as wide as its own clip. The fixed 570px width existed to
   hold a description panel under the media; with that gone, a uniform width only pads a vertical
   out with empty space on both sides -- the dead band this strip has been fighting all along. At
   `auto` a vertical takes 180px and a wide takes 569px and they sit shoulder to shoulder, so what
   shows either side of the middle is always picture. Nothing in the script cares: centerOf() has
   always measured offsetLeft and offsetWidth per scene rather than assuming a common width, which
   is what makes a variable-width filmstrip work without a second position model. */
/* position+z-index because the playing clip is scaled past its own box and overlaps whatever is
   beside it. Flex items paint in DOM order, so the scene to its RIGHT -- a later sibling -- was
   drawing on top of the very thing being emphasised, cutting its edge and its progress bar. */
.vg-scene { flex: 0 0 auto; margin: 0; scroll-snap-align: center; cursor: pointer;
            position: relative; z-index: 1; }
.vg-scene.vg-cur { z-index: 3; }
/* No dimming. The neighbours were held at 0.32 to say which scene was live, but over a white card
   that reads as a wash laid over them -- they look disabled rather than next. The signal was
   already there and stronger: the middle scene is the only one PLAYING, and motion against two
   still frames says "this one" far better than opacity does. Being clipped by the card edge says
   the rest just as plainly. .vg-cur stays because the cursor below depends on it. */
.vg-scene.vg-cur { cursor: default; }

/* Emphasis on the one that is playing, built by ADDING to it rather than by laying anything over
   the others -- the 0.32 wash did the second and made the neighbours look disabled. Three cues,
   all quiet on their own:
     1. the playing clip is lifted off the card by a shadow;
     2. the ones beside it sit back 6%, which is depth rather than a veil -- and because it is a
        transform it changes nothing about layout, so centerOf() still measures the same offsets;
     3. their titles drop to the muted grey, so the only teal name is the one you are watching.
   Scaled DOWN, never the centre up: the track resolves overflow-y to auto, so a centre scaled past
   its 320px box would either clip or raise a vertical scrollbar across the strip. */
.vg-scene .vg-scenevid { transform: scale(0.92); transition: transform 0.3s ease; }
/* Up past its own box, not merely back to it -- this is the gap above and below the strip being
   spent on the thing worth looking at. It has to be a transform: the boxes are sized from the
   format classes, so changing the real height would change the scene WIDTHS, and go() writes
   scrollLeft before sync() moves the .vg-cur class -- every advance would centre against widths
   that were about to change. A transform paints outside the layout and leaves all that alone. */
.vg-scene.vg-cur .vg-scenevid { transform: scale(1.08); }
/* The ring is a box-shadow spread, not a border: a real border would add 6px to the clip's box
   and every scene is sized to its own clip, so the playing one would grow and shove the strip
   sideways each time it advanced. A spread paints outside the box and costs the layout nothing,
   and it follows the 8px radius on its own. The white ring under the teal one reads as a mount
   on the white card -- it separates the frame from a clip whose own edge may be any color. */
/* Hugging the clip, not floating off it. The 4px white gap underneath read as a frame hung
   BESIDE the video rather than a border ON it. #fc4a1a is the page's action colour -- the same
   orange as the Describe button -- so the marked clip and the thing to click share a colour
   against a page that is otherwise entirely teal. */
/* The static ring is gone -- the SVG below draws it now, and draws it as a progress track. What
   is left here is the lift, which is depth rather than state. */
.vg-scene.vg-cur video { box-shadow: 0 8px 22px rgba(11, 58, 68, 0.26); }
.vg-scenevid { position: relative; }
/* No progress bar under these clips, and do not re-add one without its driver. A bar was built
   here -- a translucent track with an orange fill, meant to be advanced from requestVideoFrameCallback
   -- but nothing was ever written to set the fill's width, so all six scenes rendered a permanently
   empty white track. The hero also plays up to three looping clips at once, where three bars sweeping
   at three different rates is noise, not information: a clip that is moving already says it is
   running, which is the only thing the bar was there to say. */
/* Only the playing scene is named. The strip bleeds past the card now, so a neighbour's title
   was rendering out on the teal, half of it cut by the card edge -- its own overflow was working
   fine, the card simply is not the clipping box. visibility, not display: the row still takes its
   height on every scene, so all six clips start at the same line and nothing shifts when the
   title moves with the film. Same reason the edge slivers carry a hidden one. */
.vg-scene:not(.vg-cur) .vg-scenetitle { visibility: hidden; }
@media (prefers-reduced-motion: reduce) { .vg-scene .vg-scenevid { transition: none; } }
/* Sized to the clip, not a box the clip sits inside. A fixed-height box with the media centred in
   it only ever fits the one shape tall enough to fill it; everything else floated in the middle
   with dead white above and below, which is the padding around the strip. Every scene already
   carries its format as a class, so the box can just BE 16:9, 1:1 or 9:16 of the height -- no
   centring, no slack, and the scene's width stops depending on when the video reports its
   intrinsic size. The clips grow with the window: 320 in a 1400px browser was the other half of
   "feels truncated" -- the strip was not short, it was small. */
.vg-scenevid { height: 320px; height: var(--sceneh); display: flex; }
.vg-swide     .vg-scenevid { width: calc(var(--sceneh) * 16 / 9); }
.vg-ssquare   .vg-scenevid { width: var(--sceneh); }
.vg-svertical .vg-scenevid { width: calc(var(--sceneh) * 9 / 16); }
/* cover, not contain: the box is already the clip's own ratio, so there is nothing to crop -- and
   if a render ever comes out a hair off-ratio, cover loses a pixel at the edge where contain would
   letterbox it and put the dead space straight back. */
/* No background colour behind the media. #0b3a44 was there as a placeholder while a clip loaded,
   but the poster does that job now, and an OPAQUE colour behind a frame is only ever seen when
   the frame fails to cover it exactly -- which happens, because these boxes are sized from a
   ratio and land on fractions: the wide clip measures 188.438px tall. A dark teal rim against
   a teal page is exactly the discolouration around the edges. Transparent means any sub-pixel
   sliver shows the page itself, which is invisible by definition. */
.vg-scenevid video { width: 100%; height: 100%; object-fit: cover; display: block;
                     border-radius: 8px; background: transparent; }
/* A still fills its box exactly the way a clip does -- the box is already its own ratio. */
.vg-scenevid > img { width: 100%; height: 100%; object-fit: cover; display: block;
                     border-radius: 8px; background: transparent; }
/* The prompt is the INPUT, and an unlabeled grey line centered under a picture always reads as
   a caption describing it -- the one thing this text is not. So it is labeled, paneled, and
   left-aligned like the box it will be pasted into. The left rule is a quotation mark that needs
   no glyph: this is the only quoted text on the page, and the panel is also the control, so the
   action line spells that out rather than leaving it to a hover state nobody on a touch screen
   will ever see. */
/* Sits above the clip. Quiet enough not to compete with the design inside the video -- the
   example is the loud thing and this is only its handle. */
/* width:0 with min-width:100% is the whole point of this rule. A scene is sized to its own clip
   (flex: 0 0 auto), so its width is the max-content of what it holds -- and a title longer than a
   narrow clip was quietly making the SCENE wider than the video. "Restaurant promo VERTICAL"
   measured 209px over a 180px vertical and pushed 29px of empty space into the strip, which looked
   like a rendering quirk in the clip rather than a caption overflowing. At width:0 the title
   contributes nothing to that calculation; min-width:100% then stretches it back across whatever
   width the clip decided. The title can never move the film again. */
/* Stacked, not side by side. Sharing one line, the format chip took 60-odd pixels off a name
   that on a 180px vertical had only 180 to begin with -- "Restaurant Promo" was one character
   from an ellipsis. Below it, the name gets the clip's whole width and the chip reads as a
   subtitle, which is what it is. */
/* Tight to the clip below it. The lead, the title and the film were each separated by enough air
   to read as three unrelated blocks stacked up the page rather than one labelled strip -- and the
   title, sitting between two gaps, floated worst of all. It labels the clip, so it belongs against
   the clip. */
/* The bottom margin has to clear the scale-up. The playing clip is transformed to 1.08 about its
   own centre, so its PAINTED top edge sits (sceneh * 0.08 / 2) above where layout put it, while
   the title stays where layout put IT -- at a 6px margin the two overlapped by 11px. The calc
   pays back exactly that overhang and leaves 9px of real air; the phone breakpoint sets a plain
   value because nothing is scaled there. */
/* A chip straddling the clip's top edge. Absolute, so it occupies no row and there is no height
   to reserve, no overhang to pay back against the scale-up, and nothing left between the heading
   and the film. Inside the media box on purpose: it then scales WITH the playing clip and stays
   welded to the edge it sits on. */
/* Dark glass, not a white pill. The white read as a form control -- the one white object on a
   page that is otherwise teal and film -- and a button shape sitting on a video is a thing people
   expect to press. Smoked instead, with a hairline and a blur behind it, it belongs to the clip
   the way a broadcast label does. Still straddling the top EDGE rather than sitting inside the
   frame, which is the part worth keeping: these clips put their own type in the corners -- "MEET
   THE COACHES", "01 / BOTANY" -- and a label inside would land on the design it is naming.
   6px rather than a full pill: a slight squareness reads as a caption, a full round reads as a
   control. */
.vg-scenetitle { position: absolute; left: 50%; top: 0; z-index: 3;
                 transform: translate(-50%, -50%);
                 display: flex; flex-direction: row; align-items: baseline; gap: 6px;
                 max-width: calc(100% - 24px); margin: 0; padding: 4px 12px 5px;
                 background: rgba(9, 34, 40, 0.82); border: 1px solid rgba(255, 255, 255, 0.18);
                 border-radius: 6px; white-space: nowrap; overflow: hidden;
                 -webkit-backdrop-filter: blur(7px); backdrop-filter: blur(7px);
                 box-shadow: 0 3px 12px rgba(0, 0, 0, 0.38); }
/* Truncates rather than wraps: wrapping would make this row two lines on the narrow scenes only,
   and every clip beside it would start lower than its neighbours. min-width:0 because a flex item
   refuses to shrink below its content without it, which is what defeats ellipsis inside a flex row. */
.vg-scenename { font-size: 12.5px; font-weight: 600; color: #fff; min-width: 0;
                overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
                letter-spacing: 0.01em; }
/* flex-shrink 0: if something has to give on a 180px vertical it is the name, not the format --
   the format is the shorter string and the one the strip exists to demonstrate. */
/* No box of its own any more -- a bordered chip inside a chip is one frame too many. */
.vg-scenefmt { flex: 0 0 auto; font-size: 9.5px; letter-spacing: 0.08em; text-transform: uppercase;
               color: rgba(255, 255, 255, 0.62); border: 0; padding: 0; }
.vg-scenefmt::before { content: "\00b7"; margin-right: 6px; color: rgba(255, 255, 255, 0.3); }
.vg-useprompt { display: block; width: 100%; font: inherit; text-align: left; cursor: pointer;
                background: #f5fafb; border: 1px solid #d6e6ea; border-left: 3px solid #1a6b7a;
                border-radius: 4px 10px 10px 4px; padding: 11px 15px 10px; }
.vg-useprompt:hover { background: #e8f4f7; border-color: #9fd6e0; border-left-color: #1a6b7a; }
.vg-plabel { display: block; font-size: 10px; font-weight: 600; letter-spacing: 0.1em;
             text-transform: uppercase; color: #1a6b7a; margin: 0 0 6px; }
.vg-ptext  { display: block; font-size: 13.5px; line-height: 1.55; color: #3d565e; }
.vg-puse   { display: block; font-size: 12px; color: #1a6b7a; margin: 8px 0 0; }
.vg-useprompt:hover .vg-puse { text-decoration: underline; }
/* 46px, not 34: this is the only control on the strip and it has to be a thumb target rather
   than a decoration. Held off the edge instead of flush against it -- at left:0 they sat out in
   the bleed at the very rim of the card and read as page furniture rather than as controls
   belonging to the strip. The desktop inset matches the 40px bleed exactly, so they line up
   with the card's own content edge, which is where the eye already is. */
/* Anchored to the BOTTOM, not the top. The media box is the last thing in a scene, so its centre
   is always height/2 up from the bottom regardless of how tall the title above it grows -- and it
   just grew, twice. Measuring from the top meant the arrows sat a title-height above the middle
   of the clip, which is where they have quietly been. */
/* +20px for the track padding below the clips, which sits between them and the carousel's edge. */
.vg-arrow { position: absolute; top: auto; bottom: 180px;
            bottom: calc(var(--sceneh) / 2 + 44px); /* must equal the track's bottom padding */
            transform: translateY(50%); z-index: 2;
            width: 46px; height: 46px; padding: 0; border-radius: 50%; cursor: pointer;
            border: 1px solid #d6e6ea; background: #fff; color: #1a6b7a; font-size: 26px;
            line-height: 1; box-shadow: 0 2px 6px rgba(11, 58, 68, 0.12); }
/* Above every scene, including the raised one. */
.vg-arrow { z-index: 6; }
.vg-arrow:hover:not(:disabled) { background: #e8f4f7; }
.vg-prev { left: 40px; }
.vg-next { right: 40px; }
@media (max-width: 900px) {
    /* Same point at which .vg-shapes drops its bleed: below here the card is shrinking. */
    .vg-carousel { margin-left: 0; margin-right: 0; }
    /* With the bleed gone the 40px inset would put the arrows deep inside the picture. */
    .vg-prev { left: 8px; }
    .vg-next { right: 8px; }
    /* No peek below here: there is not enough width for a neighbor AND a readable prompt, so
       the scene goes back to filling the strip. Same layout with the peek set to zero, not a
       second design -- the script centers by offsetLeft either way and needs no breakpoint. */
    /* No peek here, so nothing to peek AT: the slivers would just be two dead strips of poster
       eating width the description needs. */
    .vg-scene.vg-ghost { display: none; }
    .vg-track { gap: 0; }
    .vg-scene { flex-basis: 100%; cursor: default; }
    /* One scene in view at a time here, so there is nothing to distinguish it FROM. A ring that
       marks the only thing on screen is not a selection, it is just a frame -- and on a 299px
       card those 7px are width the clip would rather have. The lift stays; it is depth, not a
       selection, and it still separates the clip from the white card. */
    .vg-scene .vg-scenevid { transform: none; }
    /* 0,3,0 beats the rule above, so the centre would still scale to 1.08 -- on a scene that is
       already the full width of the card, which means straight over its edge. */
    .vg-scene.vg-cur .vg-scenevid { transform: none; }
    /* Exact-fit here too, but driven by WIDTH instead of height -- a 16:9 box at --sceneh 320
       would be 569px wide and hang half a card off the side. Wide and square take the full card
       width and get their height from the ratio; a vertical takes the strip's height and gets its
       width from the ratio, which is the only one that would otherwise run off the bottom.
       Letting the box float the clip inside it was worse than a dead band once the frame arrived:
       the progress border is drawn on the BOX, so it was an orange rectangle around white space
       with the video sitting loose in the middle of it.

       The three heights that produces (168, 299, 420) would make the page jump on every swipe, so
       the track holds one height and centres them. That is the fixed box again -- but around the
       whole strip, where nobody can see it, instead of around each clip where the frame is. */
    /* 320, not 420. One height for the strip means the tallest shape sets it and every other
       shape floats in the leftover -- at 420 a 16:9 clip sat in 126px of air, which is the same
       floating the chip was moved to cure. 320 makes a vertical 180 wide, the same width it has
       on the desktop strip, and caps the worst gap at 76px. There is no setting that removes it:
       9:16 and 16:9 in one fixed-height strip on a 299px card always leaves air somewhere, and
       the only choice is where to spend it. */
    .vg-track { height: 320px; align-items: center; }
    .vg-scenevid { max-width: 100%; }
    .vg-swide     .vg-scenevid { width: 100%; height: auto; aspect-ratio: 16 / 9; }
    /* Sized from HEIGHT, like the vertical -- not from width like the wide. A square taking the
       full 335px card width is 335px tall, and the strip is 320: it overflowed by 15px, which is
       what put a vertical scrollbar inside a horizontal carousel. Only the wide can be driven by
       width here, because it is the one shape whose height comes out shorter than the strip. */
    .vg-ssquare   .vg-scenevid { height: 320px; width: auto; aspect-ratio: 1 / 1; }
    .vg-svertical .vg-scenevid { height: 320px; width: auto; aspect-ratio: 9 / 16; }
    /* Belt and braces: nothing should exceed the strip's height now, and if something ever does
       it must not turn a horizontal carousel into a two-axis one. overflow-x:auto already makes
       the y axis auto by itself -- this says what was meant. */
    .vg-track { overflow-y: hidden; }
    /* Nothing to grow into here, so the track keeps its own height. */
    /* Room for the chip's top half only -- nothing is scaled up here. box-sizing so the height
       above is the whole strip rather than the strip plus padding. */
    .vg-track { padding: 16px 0 0; box-sizing: content-box; }
    /* No end spacers on a phone: a scene there is the full width of the track, and anything in
       front of it would push every clip off its own snap position. */
    .vg-even .vg-track::before,
    .vg-even .vg-track::after { flex-basis: 0; }
    /* .vg-even, not bare .vg-track. The plain rules further up this block were being beaten by
       the desktop even-mode ones -- two classes against one -- so the gap and padding meant for
       a phone never applied. The gap was the visible half of it: with the spacers at zero width
       the 26px still fell between the spacer and the first clip, pushing every scene 26px right
       and hanging it 26px off the other side. Measured at 26 left against -26 right, which is
       exactly the uneven padding. */
    .vg-even .vg-track { gap: 0; padding: 18px 0; scroll-padding-left: 0; scroll-padding-right: 0; }
    /* mandatory here, proximity on the desktop shelf. The two are different objects: a shelf is
       a row you push around and should rest where you leave it, but a phone shows exactly one
       clip at a time, so a swipe means "the next one" and resting between two is just a view of
       two half-clips. Proximity was the weird scrolling. */
    .vg-even .vg-track { scroll-snap-type: x mandatory; }
    /* Centre the clip in its scene. A scene is the full width of the card here while the clip is
       its own natural width, so a 180px vertical in a 335px scene sat hard against the left with
       155px of nothing beside it -- measured at inset 0 for every format, which is what made the
       padding look inconsistent from clip to clip. On the desktop strip the scene shrink-wraps
       the clip, so this never arose there. */
    .vg-scenevid { margin-left: auto; margin-right: auto; }
    /* The phone's only cue that the strip moves, now that it has no peek, no fade and no arrows.
       Tappable as well as indicative -- a dot is a target, which matters on the one device where
       the alternative gesture is a swipe someone has to guess at. */
    .vg-dots { display: flex; }
    /* Half the strip, not half --sceneh: the clips no longer all stand 320px tall here. */
    .vg-arrow { bottom: 160px; }
    /* No edge fade on a phone at all. It says "the film continues past here", which is true on
       the desktop shelf where clips really do run off both sides. Here one scene fills the view,
       so there is nothing continuing -- and worse, the treatment lands differently depending on
       the shape: a wide clip spans the full 335 and gets its own edges blurred, while a vertical
       is 180 centred in that 335 and the fade falls entirely on empty space beside it. The same
       rule dimming one format and not another is the inconsistency; the fade is what goes,
       because on this breakpoint it was never describing anything. */
    .vg-carousel.vg-more-left  { --fadeL: 0px; }
    .vg-carousel.vg-more-right { --fadeR: 0px; }
    .vg-scene:not(.vg-cur) .vg-scenetitle { visibility: visible; }
    /* A shadow scaled to the clip, not to the desktop one. 0 6px 20px at 30% black is a lift
       under a 764px clip; under a 335px one the same blur is a dark halo running a tenth of the
       way into the picture on every side. Both selectors, because the even-mode rule above is
       (0,3,0) and would otherwise win. */
    .vg-even .vg-scene video, .vg-even .vg-scenevid > img,
    .vg-even .vg-scene.vg-cur video { box-shadow: 0 3px 10px rgba(0, 0, 0, 0.22); }
}

