* {
	margin: 0;
	padding: 0;
}	

img {
	line-height: 0;	
}

button {
	background-color: Transparent;
	background-repeat:no-repeat;
	border: none;
	cursor:pointer;
	overflow: hidden;
	outline:none;
}

p {
	font-weight: 300;
	margin-bottom:20px;	
}

a {
	font-weight: 300;
	color:inherit;
}

body {
	background-color:rgba(233, 235, 237);	
}

body, a {
	font-family: 'Roboto';
	color: inherit;
	line-height: 1.6;
}

h3 {
	font-weight: 700;
	font-size:19px;
	margin-bottom:10px;
}

section {
	margin-left:auto;
	margin-right:auto;
	max-width: 1200px;
	color:#67645f;
}

:root {
	--margins:min(5.1vw, 46px);
	--ratio:5.939;
}

section p, h3, #HomeBannerSummary p {
	padding-left: var(--margins);
	padding-right: var(--margins);
}

section img {
	border-radius:10px;
}

.Navbar {
	position: fixed; /* Set the navbar to fixed position */
	top: 0; /* Position the navbar at the top of the page */
	width: 100%; /* Full width */
	padding:0px;
	z-index:1;
}
#NavbarLogoHolder {
	position:absolute;
	left:40px;
	top:4px;
	z-index:10;
}
#NavbarLogoHolder, #NavbarButton, #NavbarMenu a > p {
	opacity:0.9;
}
#NavbarLogoHolder > img {
	width:170px;
}
#NavbarLogoHolder:hover, #NavbarButtonHolder:hover #NavbarButton, #NavbarMenu a > p:hover {
	opacity:1 !important;
}
#NavbarMenu {
	text-align:left;
	margin-top:39px;
	background-color: hsl(223, 29%, 37%, 93%);
	left:100vw;
	position:absolute;
	padding:30px;
	padding-top:24px;
	padding-bottom:10px;
	transition: transform 0.4s ease-in-out;
	transform: translateX(0%);
	animation-delay: 2s;
	white-space: nowrap;
	border-bottom-left-radius: 10px;
	box-shadow: 0px 2px 6px -2px hsl(0, 100%, 0%, 60%);
}
#NavbarMenu a {
	color:white;
	text-decoration:none;
	font-size:20px;
}
#NavbarMenu img {
	width:18px;
	margin-right:10px;
}
#NavbarMenu p {
	font-weight:500;
}
#NavbarButtonHolder {
	position:absolute;
	right:0;
	height:52px;
	width:100px;
}
#NavbarButton {
	position:absolute;
	right:40px;
	top:9px;
	width:24px;
}

/* Device that supports hover, so use hover to show/hide menu bar */
@media (hover: hover), (-ms-high-contrast:none) {
	  #NavbarButtonHolder:hover + #NavbarMenu, #NavbarMenu:hover {
			visibility: visible;
			transform: translateX(-100%);
	}
}
/* Device that doesn't support hover, so use menu button press to show/hide menu bar */
@media not all and (hover: hover), not all and (-ms-high-contrast:none) {
	.NavbarMenuShown {
		visibility: visible !important;	
		transform: translateX(-100%) !important;
	}
}

.FooterHolder {
	margin-top: 50px;
	font-weight:300;
	width:100%;
	padding-bottom:20px;
	text-align:center;
	color:#e1e1e1;
	background-color:#515d7f;
	padding-top:20px;
}
.FooterInner {
	margin-left:var(--margins);
	margin-right:var(--margins);
}
.FooterName {
	margin-bottom:8px;	
}
.FooterSubtext {
	font-size:13px;
	opacity:0.9;
}

.TopBanner {
	position:relative;
	overflow:hidden;
	line-height: 0;
	height:39.4vw;
	min-height:234px;
}
.TopBannerShadow {
	position:absolute;
	bottom:0;
	width:100vw;
	/*height:2px;*/
	background-color:hsl(0, 100%, 0%, 15%);	
}
.TopBanner > img {
	margin-left: 50%;
	transform: translateX(-50%);
	min-width:600px;
	width:101vw;
}

#HomeBanner {
	height:42vw;
	min-height:247px;
}
#HomeBanner > img {
	width:102vw;
}

#HomeSpacer {
	height:40px;	
}

#HomeBannerSummary {
	width:100%;
	background-color:#495472;
	padding-top:32px;
	padding-bottom:20px;
	box-shadow: 0px 2px 6px -2px hsl(0, 100%, 0%, 30%);
	background: url(/home/HomeBannerBackground.png);
	background-repeat: no-repeat;
	background-size: max(102%, 600px) 100%;
	background-position: center;
}
#HomeBannerSummary div {
	text-align:center;
	color:white;
	max-width: 1200px;
	margin-left:auto;
	margin-right:auto;
}
#HomeBannerSummaryTitle {
	font-size:34px;
	line-height:38px;
	margin-bottom:20px;	
}
#HomeBannerSummary p {
	font-weight:300;
}
#HomeBannerSummaryDescription {
	font-size:17px;
	margin-top:-8px;
}

#HomeProjectsBanner {
	width:100%;
	background-color:#495472;
	padding-top:14px;
	padding-bottom:11px;
	margin-top:50px;
	box-shadow: 0px 2px 6px -2px hsl(0, 100%, 0%, 60%);
}
#HomeProjectsBanner > div {
	font-size:32px;
	text-align:center;
	color:white;
	max-width:1200px;
	margin-left:auto;
	margin-right:auto;
	font-weight:300;
}

#HomeVideoThumbnail {
	width:100%;
	text-align:center;
	margin-top:min(3.3vw, 28px);;
	margin-bottom:min(3.3vw, 28px);;
}
#HomeVideoThumbnail img {
	border-radius: 10px;
	width:70%;
	margin-top:12px;
	box-shadow: 0px 2px 6px -2px hsl(0, 100%, 0%, 60%);
	
}
#HomeVideoCaption {
	width:100%;
	font-weight:200;
	font-size:15px;
	margin-bottom:20px;
	margin-top:0px;
}
#HomeVideoCaption > p {
	color:#8f8575;
}

#HomeProjectsContainer {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	padding:10px;
	padding-bottom:0px;
	margin-top:16px;
	max-width:1100px;
	margin-left:auto;
	margin-right:auto;
	margin-top:20px;
}
#HomeProjectsContainer > a {
	margin-left:10px;
	margin-right:10px;	
	margin-bottom:20px;
	text-decoration:none;
}
.HomeProjectBox {
	border-radius:10px;
	width:314px;
	height: 500px;
	background-color:rgba(252, 253, 255, 1);
	padding-bottom:20px;
	position:relative;
	box-shadow: 0px 2px 6px -2px hsl(0, 100%, 0%, 30%);
}
.HomeProjectBoxArt {
	margin-bottom:16px;
}
.HomeProjectBoxArt > img {
	width:100%;	
}
.HomeProjectTitle {
	border-radius:10px 10px 0px 0px;
	width:100%;
	height:58px;
	line-height:62px;
	text-align:center;
	background-color:#7e7e7e;
	color:white;
	font-size:25px;
	font-weight:500;
	margin-bottom:-1px;
	font-weight:300;
}
.HomeProjectDescription p {
	padding-left:20px;
	padding-right:20px;
	color:#67645f;	
}

.SectionBackground {
	background-color:rgba(233, 235, 237);
	margin-left:auto;
	margin-right:auto;
	color:#67645f;
	margin-top:3px;
	/*box-shadow: 0px 3px 0px 0px #c8c2b9;*/
}

.TitleBox {
	float:left;
	width:100px;
	padding-top:6px;
	padding-bottom:4px;
	padding-left:4px;
	padding-right:4px;
	text-align:center;
	margin-right:20px;
	margin-bottom:10px;
	font-weight:700;
	-webkit-marquee-increment: 0vw;
	font-size:min(6vw, 24px);
	margin-top:6px;
	box-shadow: 0px 2px 6px -2px hsl(0, 100%, 0%, 60%);
}

.TitleBoxStep {
	position:absolute;
	margin-top:-8px;	
	display:none;
}

.TitleBoxBrown {
	background-color:#67645f;
	color:#eeeeee;
}

.TitleBoxGray {
	background-color:#89847F;
	color:#eeeeee;
}

.TitleBoxWhite {
	background-color:#ffffff;
	color:#67645f;
}

.ChapterHeader {
	background-color:#7a7b7d;
	text-align:center;
	color:#eeeeee;
	font-size:24px;
	-webkit-marquee-increment: 0vw;
	font-size:min(7vw, 26px);
	padding-top:10px;
	padding-bottom:8px;
	padding-left:8px;
	padding-right:8px;
	line-height:1.3;
	box-shadow: 0px 2px 6px -2px hsl(0, 100%, 0%, 60%);
	font-weight:300;
}

.ExampleBox {
	border-radius: 10px;
	text-align:right;
	background-color:rgba(252, 253, 255, 1);
	align-items:center;
	text-align:left;
	align-items:stretch;
	margin-top:min(3.6vw, 31px);
	margin-bottom:min(3.6vw, 31px);	
	margin-left:var(--margins);
	margin-right:var(--margins);
	box-shadow: 0px 2px 6px -2px hsl(0, 100%, 0%, 30%);
}

.ExampleHeader {
	border-radius: 10px 10px 0 0;
	background-color:#7e7e7e;
	display:flex;
	align-items: center;
	padding-top:6px;
	padding-bottom:5px;
	padding-left:26px;
	padding-right:26px;	
	color:#ebebeb;
	font-weight:500;
	font-style:italic;
	font-size:18px;
	justify-content: flex-start;
	font-weight:300;
}

audio:focus {
	outline: none;
}

.ExampleContent {
	padding-top:15px;
	padding-left:21px;
	padding-right:15px;	
	padding-bottom:9px;
}

.Example {
	margin-right:auto;
	padding-bottom:14px;
	font-weight:300;	
}

.Example audio {
	display:block;
}

/* Ugly audio outline in chrome */
audio:focus {
	outline: none;
}

.DivTop {
	height:min(3.3vw, 28px);
}
.DivBot {
	height:min(4.2vw, 36px);
}
.DivFat {
	height:min(7.5vw, 64px);
}
.DivStep {
	height:min(3.6vw, 31px);
}

.StepImage {
	float:left;
	margin-right:20px;
	margin-bottom:12px;
	margin-top:6px;
	margin-left: var(--margins);
	width:min(40.0vw, 300px);
	box-shadow: 0px 2px 6px -2px hsl(0, 100%, 0%, 60%);
}

.SectionAnchor {
	display: block;
	position: relative;
	top: -28px;
	visibility: hidden;	
}


#span3:focus ~ #alert {
  display: none !important;
}
#span2:focus ~ #alert {
  display: block;
}

.DownloadHolder {
	border-radius:10px;
	text-align:center;
	margin-top:28px;
	background-color:rgba(252, 253, 255, 1);
	margin-left: var(--margins);
	margin-right: var(--margins);
	padding-top:30px;
	padding-bottom:30px;
	margin-bottom:28px;
	box-shadow: 0px 2px 6px -2px hsl(0, 100%, 0%, 30%);
}

.DownloadButtonsHolder {
	display:flex;
	/*align-items: center;*/
	margin-top:8px;
	margin-bottom:8px;
	justify-content: center;
	flex-wrap: wrap;	
}
.DownloadButtonsHolder img {
	margin:5px;	
}
.DownloadButtonsHolder a {
line-height:0
}
.DownloadButton {
	height:57px;
	width:auto;
	/*box-shadow: 0px 3px 0px 0px #797979;*/
	/*margin-top:4px;*/
	transition: filter 0.2s ease;
}
.DownloadButton:hover {
	filter: brightness(1.2);
	
}
.DownloadIcon {
	height:57px;
}
.DownloadDisclaimer {
	font-size:15px;
	font-style:italic;
	font-weight:300;
	opacity:0.8;
}
.DownloadInstructionManual {
	margin-top:12px;
	padding-left:var(--margins);
	padding-right:var(--margins);
}
.DownloadInstructionManual a {
	font-weight:800;
}

.CollapsibleMenu p {
	text-align:left;
	font-weight:500;
	margin-bottom:0px;
	padding-top:6px;
	padding-bottom:6px;
	color:#eeeeee;
	text-shadow: 0px 2px 0px #797979;
	font-size:20px;
}

.CollapsibleMenu img {
	width:13px;
	margin-right:8px;
}

#Logo {
	animation-name: LogoAnimation;
	animation-duration: 1.5s;
}
@keyframes LogoAnimation {
	from {opacity: 0.0;}
	to {opacity: 1.0;}
}

#PageBannerR2 {
	background: url(/r2d2/R2BannerBackground.png);
}

#PageBannerAstromech {
	background: url(/astromech/AstromechBannerBackground.png);	
}

#PageBannerGonk {
	background: url(/gonk/GonkBannerBackground.png);
}

#PageBannerAcoustics {
	background: url(/acoustics/AcousticsBannerBackground.png);
}

#PageBannerHologram {
	background: url(/hologram/HologramBannerBackground.png);
}

#PageBannerModulators {
	background: url(/modulators/ModulatorsBannerBackground.png);
}

.PageBanner {
	width:100%;
	background-color:#515d7f;
	padding-top:12px;
	padding-bottom:12px;
	line-height:20px;
	box-shadow: 0px 2px 6px -2px hsl(0, 100%, 0%, 60%);
	margin-bottom:6px;
	background-repeat: no-repeat !important;
	background-size: max(102%, 600px) 100% !important;
	background-position: center !important;	
}
#PageBanner div {
	text-align:center;
	max-width: 1200px;
	margin-left:auto;
	margin-right:auto;
}
#PageBannerTitle {
	color:white;
	font-size:34px;
	line-height:48px;
	text-align:center;
	text-shadow: 0px 2px 0px hsl(0, 100%, 0%, 10%);
	font-weight:300;
}

.PageImageCenter {
	padding-left:var(--margins);
	padding-right:var(--margins);
	text-align:center;
}
.PageImageCenter img {
	width:min(700px, 100%);
	box-shadow: 0px 2px 6px -2px hsl(0, 100%, 0%, 60%);
	margin-top:18px;
	margin-bottom:20px;
}

/* CONTACT */
.formContainer {
		  display: flex;
		  justify-content: center;
		  align-items: center;
		  flex-direction: column;
		  color: white;
		  border-radius: 8px 8px;
		  height: 80vh;
		  width: 20vw;
		  font-family: 'Roboto', sans-serif;
		}	
textarea, input {
	font-weight: 300;
	 font-family: inherit;
		font-size: inherit;
  margin-bottom: none;
  border-bottom: none;
  border-right: none;
  border-top: none;
  border-left: none;
  outline: none;
  padding: 12px;

  background-color:#f9f9f9;
  outline: none;
  color:hsl(217, 0%, 50%);
  width: 90%;
}
input::placeholder {
  color:hsl(217, 0%, 70%);
}
textarea::placeholder {
  color:hsl(217, 0%, 70%);
}
input[type=submit] {
  background-color: #67645f;
  border: none;
  cursor: pointer;
  color:hsl(217, 0%, 50%);
  font-weight:500;
  padding-left:30px;
   padding-right:30px;
    padding-top:12px;
     padding-bottom:12px;
  font-size:24px;
	box-shadow: 0px 3px 0px 0px #797979;
	color:#eeeeee;
}

@keyframes fadeIn {
	from {
		opacity: 0;
	}
	to {
		opacity: 1;
	}
}

.anchored-element {
	position: absolute;
	top: 50%; /* Adjust as needed */
	left: 50%; /* Adjust as needed */
	/* Optional: Scale the element as needed */
	display:none;
	min-width:auto !important;
}

@keyframes anchored-element {
		0%, 100% { opacity: 1; }
		20%, 80% { opacity: 0; }
}

#LightYellow {
	animation: anchored-element 0.7s infinite;
}

#LightRed {
	animation: anchored-element 1.2s infinite;
}

#LightBlue {
	animation: anchored-element 0.85s infinite;
}

#LightGreen {
	animation: anchored-element 1.1s infinite;
}

#LightSad {
	animation: anchored-element 2.3s infinite;
}

#LightMad {
	animation: anchored-element 2.7s infinite;
	animation-delay: -1s;
}

.fade-in-once {
	animation: fadeIn 1s ease-out forwards;
	/* Animation will only play once */
	animation-fill-mode: forwards; /* Ensures the element remains visible after animation */
}