@import url('https://fonts.googleapis.com/css2?family=Inter+Tight:ital,wght@0,100..900;1,100..900&display=swap');
/* 2025 */



/* Box-sizing reset: //w3bits.com/?p=3225 */
html {
  box-sizing: border-box;
  scroll-behavior: smooth;
}
*,
*:before,
*:after {
  box-sizing: inherit;
}
* {
   margin: 0px;
   padding: 0px;
}
html, body {
  margin: 0;
  padding: 0;
  width: 100%;
  height: 100%;
}
body {
	position: relative;
	transition:background-color 1s ease;
	overflow:hidden;
	font: 18pt "Inter Tight", serif;
	font-weight:500;
	background-color:#3A0000;
	z-index:-2;
	/*background:url('media/bg2.jpg');
	background-repeat: no-repeat;
 	background-attachment: fixed; 
  	background-size: 100% 100%;
	*/
}
body.media {
	overflow:scroll;
}
p {
	margin-bottom:20px;
	}
#wrap {
	position:relative;
	height:100%;
	z-index:0;	
}


body, a{
	color: #9fd683;
	}
body.en .fr, body.fr .en {
	display:none;
}
	
/* ------------------- popups ------------------------- */
/* The actual popup */
/*.popup, .inner-popup, .plyr, .plyr.show {
    mix-blend-mode: normal; 
   -webkit-text-fill-color: initial; 
	-webkit-background-clip: border-box; 
	color: #fff;
}*/
.inner-popup {
  display: none;
  position: fixed;
  width:60%;
}
.inner-popup.show, .popup.active {
  z-index:100000;	
}
/* Ensure the inner-popup is above the active popup */
.popup.active .inner-popup {
  z-index: 1100; /* Higher z-index than the parent popup */
}

/* Optional: Style other elements for clarity */
body.popup-active .popup:not(.active) {
  z-index: 0; /* Push inactive popups below */
}


.inner-popup img {
	width: 100%;
    height: 100%;
    object-fit: cover;
}
#myPopup1 {
  top: 10%;
  left: 20%;
}
#myPopup2 {
    bottom: 20%;
	right: 10%;
}
#myPopup3 {
	bottom: 20%;
	left: 25%;
}
#myPopup4 {
	bottom: 10%;
	left: 10%;
}
#myPopup7 {
  top: 10%;
  left: 20%;
  width:40vh;
}
#myPopup8 {
  top: 20%;
  right: 10%;	
  width:50vh;
}
#myPopupIG {
  top: 30%;
  left: 10%;	
  width:65vw;
}

/* Popup arrow */
.popup {
    position: relative; /* Required for positioning the pseudo-element */
    cursor: pointer; /* Optional: Add a pointer cursor on hover */
	z-index: 1; /* Ensure it is above other elements */
}

.popup:hover:after {
	position:absolute;
    content: '(+)'; /* Display (+) on hover */
	padding: 0 0 0 5px;
}

.popup.active:after {
	position:absolute;
    content: '(-)'; /* Change (+) to (-) when the popup is active */
	padding: 0 0 0 5px;
}

/* Toggle this class - hide and show the popup */
.popup .show, .plyr.show {
	display:block;
}

.caption {
	position: relative;
	padding-top: 10px;
	font-size: 70%;
}
/* ------------------- links ------------------------- */
a:link, a:visited, a:hover, a:active {
 	text-decoration: none;
}
a:hover {
	cursor: pointer;
}
a:hover:after, .bottom a.arrow:hover:after {
	position:absolute;
    content: '(>)'; /* Display arrow on hover */
	padding: 0 0 0 5px; 
	z-index:1;
}
.container a:hover:after {
    content: none; /* Display arrow on hover */
}
.noarrow a:hover:after {
	position:absolute;
    content: ''; /* Display nothing on hover */
	padding: 0; 
	z-index:1;
}
.shuffle{
  font-kerning: none;
  font-feature-settings: "liga" 0;
}


/* ------------------- grids ------------------------- */
.grid-container {
  display: grid;
  grid-template-columns: repeat(4, 1fr); 
   grid-template-rows: auto auto auto auto;
  height: 100%; 
  gap: 20px;
  padding: 20px;
  position:relative;
  z-index:1;
  align-content: space-between;
	overflow: scroll;
	
	/* bottom: env(safe-area-inset-bottom, 0);*/ /* Adjust for safe areas */
}
.media .grid-container {
  align-content: stretch;
}
.item-work {
  grid-area: 2 / 1 / span 1 / span 2;
}
.item-bio {
  grid-area: 2 / 3 / span 1 / span 2;
}

.item-skills {
  grid-area: 3 / 1 / span 1 / span 2;
}
.item-more {
  grid-area: 3 / 3 / span 1 / span 2;
}


.bottom {
	 margin-top:0;
	align-self: end;
	}
/*.media .bottom, .media .fixed {
	position:fixed;
	margin-top:20px;
	margin-bottom:20px;
	z-index:2;
	}*/



/** 1 col **/
.item-1-span-1 {
  grid-column-start: 1;
  grid-column-end: 3;
  text-align:left;
}
.item-2-span-1 {
  grid-column-start: 2;
  grid-column-end: 2;
}
.item-3-span-1 {
  grid-column-start: 3;
  grid-column-end: 3;
}
.item-4-span-1 {
  grid-column-start: 4;
  grid-column-end: 4;
}

/** 2 col **/
.item-1-span-2 {
  grid-column-start: 1;
  grid-column-end: 3;
  text-align:left;
}
.item-2-span-2 {
  grid-column-start: 3;
  grid-column-end: 5;
  text-align:left;
}

/** 4 col **/
.item-1-span-4 {
  grid-column-start: 1;
  grid-column-end: 5;
  text-align:left;
}


/* ------------------- media gallery ------------------------- */
.grid-container-header {
  display: grid;
  grid-template-columns: repeat(4, 1fr); 
  height: auto; 
  width:100%;
  gap: 20px;
  padding: 20px;
  position:fixed;
  z-index:2;
  top:0px;	
  align-content: space-between;
	
}
.grid-container-footer {
  display: grid;
  grid-template-columns: repeat(4, 1fr); 
  height: auto; 
  width:100%;
  gap: 20px;
  padding: 20px;
  position:fixed;
  z-index:2;
  bottom:0px;	
  align-content: space-between;
	
}
.grid-container-gallery {
  display: grid;
  grid-template-columns: repeat(3, 1fr); 
  grid-auto-rows: max-content;
  height: auto; 
  gap: 10%;
  padding: 120px 80px;
  position:absolute;
  z-index:1;
  align-content: space-between;
  overflow: scroll;
}
.container {
  position: relative;
  width: 100%;
  height:100%;
  background: #3A0000;
}

.image {
  opacity: 1;
  display: block;
  width: 100%;
  height: 100%;
  transition: .5s ease;
  backface-visibility: hidden;
  object-fit: cover;
}
.middle {
  transition: .5s ease;
  opacity: 0;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  text-align: center;
}

.container:hover .image {
  opacity: 0.4;
}

.container:hover .middle {
  opacity: 1;
}

.text {
  font-size: 14px;
}

.gallery-item.horizontal {
	grid-column-start: 1;
 	grid-column-end: 3;
}

/* ------------------- plyr video  ------------------------- */
html {
  --plyr-color-main: none;
	background-color: #fff !important;
}
.plyr {
	z-index:1000 !important;
}
.plyr__poster {
	background-color: #af1604 !important;
}
.BF .plyr__poster {
	background-color: #af1604 !important;
}
.plyr__control.plyr__control--overlaid svg {
	height: 40px !important;
	width: 40px !important;
}
.plyr.plyr--stopped .plyr__controls, .plyr.plyr--paused .plyr__controls, .plyr__menu, .PlayButton_module_playButton__282507bf { display: none !important}




/* ------------------- rotating img  ------------------------- */
.background {
      position: fixed;
	  top: 0;
  	  left: 0;
      width: 100vw;
      height: 100%;
      perspective: 1000px;
	  z-index:-1;
	  overflow: hidden;
	
	background:url('media/bg2.jpg');
 	background-repeat: no-repeat;
  	background-attachment: cover; 
  	background-size: 100% 100%;
    }
/* Centering wrapper for the rotating image */
.centering-wrapper {
	  position: absolute;
	  top: 50%; /* Center vertically */
	  left: 50%; /* Center horizontally */
	  transform: translate(-50%, -50%); /* Move to exact center */
	  width: 80%; /* Adjust to scale down the entire image */
	  height: 80%; 
	}
    .rotating-image {
	  position: absolute; /* Enables positioning with top/left */
	  width: 100%; /* Controls size of the image */
	  height:100%;
	  aspect-ratio: 1; /* Ensures a square aspect ratio for debugging purposes */

	  background-image: url('media/bg.jpg');
	  background-size: contain; /* Scale image to fit without cropping */
	  background-position: center; /* Centers the image inside its container */
	  background-repeat: no-repeat;
	  transform-origin: center;
	  animation: rotate 40s linear infinite;
		
}

    @keyframes rotate {
      0% {
        transform: rotateX(20deg) rotateY(0deg);
      }
      50% {
        transform: rotateX(20deg) rotateY(180deg);
      }
      100% {
        transform: rotateX(20deg) rotateY(360deg);
      }
    }


/* ------------------- Responsive ------------------------- */

@media only screen and (max-width: 850px) {
	
	.text {
	  font-size: 12px;
	}
}
@media only screen and (max-width: 600px) {
body {
	font-size:12pt;
	overflow: auto;	
	}
body .popup.active::before {
  content: "";
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.4); /* Light overlay, adjust alpha as needed */
  pointer-events: none; /* Allows interaction with links under the overlay */
  z-index: 999; /* Ensure it doesn't block the popup */
}
	.grid-container-gallery {
		display: flex;
  		flex-direction: column;
  		grid-auto-rows: auto;
		padding: 60px 30px;
	}
	.gallery-item {
        width: 100%;
		height:auto;
    }
	.grid-container-gallery .container {
		background:none;
		padding-bottom:40px;
	}
	.middle {
	  opacity: 1;
	  position: relative;
	  margin-top:10px;
	  text-align: left;
	  top: 0%;
	  left: 0%;
	  transform: translate(0);
	  -ms-transform: translate(0);
	}
	.text {
	  font-size:12pt;
	}
	.image, .image img {
		width:100%;
		max-width:100%;
		height:auto;
	}
	.item-4-span-1 {
		text-align: right;
	}
	.item-bio {
		display:block;
		grid-area: 2 / 1 / span 1 / span 4;
	}
	.item-work {
    	grid-area: 3 / 1 / span 1 / span 4;
	}
	.item-skills {
    	grid-area: 4 / 1 / span 1 / span 2;
	}
	.item-more {
    	grid-area: 4 / 3 / span 1 / span 2;
	}
	.inner-popup {
		width:80%;
	}
	#myPopup1 {
		top:20%;
		right:5%;
		width:70vw;
	}
	#myPopup3 {
		width:70vw;
	}
	#myPopup7 {
		right:10%;
		width:60vw;
	}
	#myPopup8 {
		right:10%;
		width:60vw;
	}
	#myPopupIG {
		left:8%;
		width:90vw;
	}
	.popup:after{
	position:absolute;
    content: '(+)'; /* Display (+) on hover */
	padding: 0 0 0 5px;
	}
	.mobile-plus:after {
	position:absolute;
    content: '(>)'; /* Display (+) on hover */
	padding: 0 0 0 5px;
	}
} 
@media only screen and (max-width: 340px) {
body {
	font-size:5vw;
	}
.grid-container {
	gap:5vw;
	padding: 5vw;	
	}
} /* end responsive */
