@charset "utf-8";
/* CSS Document */

/* ===== Viewport custom properties =====
   --display-height / --display-width give a single place to adjust.
   If you later add JS to handle mobile browser UI chrome, you can
   update --display-height dynamically.
*/
:root {
  --display-height: 100vh;
  --display-width: 100vw;
  --menu-height: 0px;
  --usable-height: calc(var(--display-height) - var(--menu-height));
  --hero-height: var(--usable-height);
  --page-width: 100%;
  --hero-gap: 32px;
}

/* (Optional future JS approach)
   document.documentElement.style.setProperty('--display-height', window.innerHeight + 'px');
*/

body {
  /*background: linear-gradient(90deg, white, gray);*/
  /*background-color: #000;*/
	 font-family: "Helvetica Neue", "Segoe UI", Segoe, Helvetica, Arial, "Lucida Grande", sans-serif;
    font-weight: normal;
   margin: 0px;
	padding: 0px;
  
	height: 100%;
	
}

  p {
    font-family: "Helvetica Neue", "Segoe UI", Segoe, Helvetica, Arial, "Lucida Grande", sans-serif;
    font-weight: normal;
    margin: 0px;
    padding: 0px;
    text-align: center;
	
}
h1 {
	 font-family: "Helvetica Neue", "Segoe UI", Segoe, Helvetica, Arial, "Lucida Grande", sans-serif;
  font-size: 48px;
  font-weight: 300;

	margin-left: 15px;
	margin-right: 15px;
	margin-top: 0px;
	margin-bottom: 0px;
    padding: 10px;
	text-align: center;
	-webkit-box-shadow: 10px 10px 5px #000;
	box-shadow: 10px 10px 5px black;
	background: linear-gradient(to bottom,grey,white); 
}
h2 {
    font-family: "Helvetica Neue", "Segoe UI", Segoe, Helvetica, Arial, "Lucida Grande", sans-serif;
    font-size: 48px;
    font-weight: 300;
    color: #0350F3;
    margin-left: 15px;
    margin-right: 15px;
    margin-top: 0px;
    margin-bottom: 0px;
    padding: 10px;
    text-align: center;
    background: black;
    -webkit-box-shadow: 10px 10px 5px #000;
	 box-shadow: 10px 10px 5px #000;
}


p {
    margin: 0px;
    padding: inherit;
    font-size: large;
	text-align: center;
}
p2 {
	font-size: 1.5em;
}

a {
 display:inline-block;
   color: #0350F3;
	font-size: 20px;
	padding: 10px 16px;
	text-align: center;
}
i{
	font-size: medium;
}

.topnav {
  
  overflow: hidden;
  background-color: #333;
	position: -webkit-sticky;
	position: sticky;
	z-index: 100;
top:0;

}

.topnav a {
  


  color: #f2f2f2;
  text-align: center;
  
  text-decoration: none;

}
.topnav a:hover{
	color: white;
	background: black;
}
.active {
  background-color: #E80C10;
  color: white;
}


.off{
	display: none;
}
.icon {
 float: none;
   
}
.full{
	
	float: left;
	display: block;
}
.blank{
	background: transparent;
	box-shadow: none;
	border-radius: 25px;

	
}

#hamburger{
	padding: 10px;
	
}
#menu{display:block;}
.iconMenu{
	float: none;
  display: block;
}
.bottom{
   margin-bottom: 0;
}

  .topnav.responsive a {
    float: none;
    display: block;
    text-align: left;
  }

.content {
  padding: 16px;
  background-color: #000;
  margin-left: auto;
  margin-right: auto;
}
.sticky {
  position: fixed;
  top: 0;
  width: 100%;
}
.sticky + .content {
  padding-top: 60px;
}
.paralax{
    background-image: url(HomePageImg/FingerMoonBack.png);
    height: 100%;
    min-height: 300px;
    margin: 0;
    padding: 0;
    background-attachment: fixed;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}
.paralaxsmall{
    background-image: url(HomePageImg/FingerMoonBack.png);
    height: 100%;
    min-height: 100px;
    margin: 0;
    padding: 0;
    background-attachment: fixed;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}
.paralaxverysmall{
    background-image: url(HomePageImg/FingerMoonBack.png);
    height: 100%;
    min-height: 10px;
    margin: 0;
    padding: 0;
    background-attachment: fixed;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}
.img-frame{
	max-width: 98%;
	width: 100%;
	height: auto;
	object-fit: scale-down;
}
.name_title
{
	flex: 0 1 450px;
    
	height: auto;
	margin-left: auto;
	margin-right: auto;
	margin-top: 20px;
	margin-bottom: 20px;
	
}
.img-gallery
{
    width: 95%;
    height: auto;
    /*max-height: 900px;*/
    box-sizing: border-box;
    padding: 0;
    justify-content: space-around;
    align-items: flex-start;
    /*align-content: space-evenly;*/
    display: -webkit-flex;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    /*	vertical-align: top;*/
    margin-left: auto;
    margin-right: auto;
   
	
}
.slider {
  position: relative;
  width: 100%;
  max-width: none;             /* remove width cap */
  margin: 0;                   /* flush inside flex container */
  overflow: hidden;            /* clip any overflow */
  /* border: 2px solid #e10909d3; */
  border-radius: 10px;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  height: 100%;                /* occupy full hero vertical space */
}

.slides {
  display: flex;
  transition: transform 0.5s ease-in-out;
  width: 100%;
  height: 100%;                /* match slider */
  touch-action: pan-y; /* allow vertical page scroll, capture horizontal swipes */
}

.slides .slide {
  min-width: 100%;
  box-sizing: border-box;
  padding: 0;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  position: relative;
  height: 100%;                /* fill slider height */
}

.slides .slide img {
  width: 100%;
  border-radius: 10px;
  display: block;
  -webkit-user-select: none; /* Safari */
  user-select: none;         /* Modern browsers */
}

/* Wrapper to center image both vertically and horizontally */
.slide-media {
  flex: 1 1 auto;
  display: flex;
  align-items: center;      /* vertical center */
  justify-content: center;  /* horizontal center */
  min-height: 0;            /* flexbox fix for overflow */
  padding: 4px 0 32px;      /* reserve space so caption overlay doesn't cover lower edge */
  height: 100%;
  box-sizing: border-box;
}

.slide-media img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  display: block;
}

.slide-caption {
  text-align: center;
  font-size: 0.9rem;
  color: #fff;
  font-family: Arial, sans-serif;
  line-height: 1.25;
  padding: 6px 10px 8px;
  background: linear-gradient(to top, rgba(0,0,0,0.75), rgba(0,0,0,0.2) 70%, rgba(0,0,0,0));
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  border-bottom-left-radius: 8px;
  border-bottom-right-radius: 8px;
}

/* Focus outline for accessibility */
.slider:focus {
  outline: 3px solid #E80C10;
  outline-offset: 3px;
}

/* Responsive adjustments */
@media (max-width: 600px) {
  .slider {
    width: 95%;
  }
  .slide-caption { font-size: 0.8rem; }
}
button {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background-color: rgba(0, 0, 0, 0.5);
  color: white;
  border: none;
  padding: 10px;
  cursor: pointer;
  border-radius: 50%;
}

button:hover {
  background-color: rgba(0, 0, 0, 0.8);
}

.prev {
  left: 10px;
}

.next {
  right: 10px;
}

/*.img_gallery > div
{
     align-self: flex-start;
	flex-basis: auto;
	margin: 6%;
	flex-shrink: 3;
	/*justify-content: space-between;
}*/
@media only screen and (max-width:600px){
	.off{
		display: block;
	opacity:1;
	}
	a{
		display:block;
	opacity: 1;
	}
	
	.iconBack{
	    float: none;
		background-color:grey;
		opacity: 0.90;
	}
	#hamburgerButton{
		background-color: grey;
	}
		#menu{ display: none}
	.topnav a:hover{
	 color:black;
		background-color: transparent;

}
	
}
.role-accent {
  color: #E80C10;
  font-weight: 600;
}
.bio-content h3 {
  margin: 0.25rem 0 0.5rem 0;
}

/* Banner image (previously inline-styled) */
.banner-image {
  max-width: 90%;
  width: auto;
  height: auto;
  max-height: 1500px;
  object-fit: scale-down;
  display: block;
  margin-left: auto;
  margin-right: auto;
}

/* Side-by-side banner + slider layout */
.project-hero {
  display: flex;
  flex-direction: row;
  gap: var(--hero-gap);
  justify-content: space-between;
  align-items: center;
  flex-wrap: nowrap;
  margin: 0;
  max-width: none;
  width: var(--page-width);
  box-sizing: border-box;
  padding: 0 2vw;
  min-height: var(--hero-height); /* was 100vh */
  background: linear-gradient(to top, rgba(0,0,0,0.75), rgba(0,0,0,0.2) 70%, rgba(0,0,0,0));
  overflow: hidden;
}

/* Constrain home/logo and hero sections via variables */
#home {
  max-height: var(--usable-height);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  box-sizing: border-box;
  padding: 2vh 2vw;
}

.project-hero {
  min-height: var(--hero-height);
  max-height: var(--hero-height);
  height: var(--hero-height);
}

.project-banner, .project-slider {
  display: flex;
  align-items: center;
  justify-content: center;
}

.project-banner {
  padding: 8px 4px;
  flex-direction: column; /* stack image over paragraph */
  flex: 0 0 35%;           /* allocate about a third to banner */
  max-width: none;
  min-width: 300px;
}

.project-banner .banner-image {
  max-width: 100%;
  margin: 0;
}

.banner-description {
  margin-top: 12px;
  font-size: 0.95rem;
  line-height: 1.4;
  color: #e0e0e0;
  text-align: center;
  padding: 0 8px;
}

@media (max-width: 900px) {
  .banner-description {
    font-size: 0.9rem;
  }
}

.project-slider {
  flex: 1 1 0;             /* take remaining width */
  min-width: 380px;
}

/* === Make banner and slider equal width (desktop) === */
.project-hero {
  justify-content: center; /* center the two equal columns */
}

.project-hero .project-banner,
.project-hero .project-slider {
  flex: 1 1 0 !important;    /* equal flexible columns */
  max-width: 50%;            /* each half of the row */
  min-width: 0 !important;   /* allow shrinking */
}

/* Remove earlier min-width constraints */
.project-hero .project-banner { min-width: 0 !important; }
.project-hero .project-slider { min-width: 0 !important; }

@media (max-width: 900px) {
  .project-hero {
    flex-direction: column;
    gap: 16px;
    padding: 0 4vw; /* maintain side padding */
  }
  .project-banner, .project-slider {
    width: 100%;
    flex: 1 1 auto;
    min-width: 0;
  }
  .project-banner .banner-image {
    max-height: 160px;
  }
  .slider { margin: 0 auto; }
}

@media (min-width: 2000px) {
  /* Optionally cap extremely wide media so line lengths remain readable */
  .slider { max-width: 1400px; margin-left: auto; margin-right: auto; }
}

/* Logo frame modifier */
.img-frame--logo {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto;
  padding: 0;
}

.img-frame--logo .logo-image {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}

/* Tighten further on very small screens */
@media (max-width: 480px) {
  .img-frame--logo {
    max-height: var(--hero-height) ;
  }
  .img-frame--logo .logo-image {
    max-height: 100%;
  }
}

