* {
  box-sizing: border-box;
}

::-webkit-scrollbar {
	width: 6px; /* Width of the scrollbar */
}

::-webkit-scrollbar-track {
	background: transparent; /* Background of the scrollbar track */
}

::-webkit-scrollbar-thumb {
	background: repeating-linear-gradient(
	  transparent, /* Space above the dot */
	  transparent 6px, /* Height of the gap between dots */
	  #2b3072 8px, /* Dot color starts here */
	  #2b3072 4px /* Dot color ends, creating a vertical dot */
	);
	border-radius: 10px; /* Rounded corners for the thumb */
}

::-webkit-scrollbar-thumb:hover {
	background: repeating-linear-gradient(
	  transparent,
	  transparent 6px,
	  #7e81ab 8px, /* Hover dot color */
	  #7e81ab 4px
	);
}

body {
  margin: 0;
  font-family: "space-mono", mono;
  font-weight: 400;
  font-style: normal;
  height: 100vh;
  background: #fff;
  color: #2b3072;
}

/* generic hidden helper used across JS */
.hidden {
  display: none;
}

.layout {
  display: grid;
  grid-template-columns: 280px 1fr;
}

.left {
  position: sticky;
  top: 0;
  height: 100vh;
  padding: 40px;
  background: white;
  overflow: scroll;
}

.left h1 {
  font-size: 15px;
  margin-bottom: 40px;
}

nav button {
  display: block;
  background: none;
  border: none;
  padding: 8px 0;
  text-align: left;
  font-size: 14px;
  cursor: pointer;
  font-family: "space-mono", mono;
  font-weight: 400;
  font-style: normal;
  color: #2b3072;
}

nav hr {
  margin: 20px 0;
}

.left nav button img{
  width: 90%;
  margin: auto;
  height: auto;
  display: block;
}
aside h1{
  font-family: "space-mono", mono;
  font-weight: 400;
  font-style: normal;
  font-size: 24px;
  margin-bottom: 60px;
  color: #2b3072;
}

aside footer {
  position: fixed;
  bottom: 20px;
  left: 40px;
  font-size: 12px;
  color: #888;
}



.right {
  padding: 0;
}

.back-btn {
  font-family: "space-mono", mono;
  font-weight: 400;
  font-style: normal;
  font-size: 24px;
  margin-bottom: 60px;
  color: #2b3072;
  display: none;
  position: fixed;
  top: 16px;
  left: 16px;
  z-index: 1000;
  background: none;
  border: none;
  font-size: 14px;
  cursor: pointer;
}

@media (max-width: 768px) {
  .back-btn {
    display: block;
  }
}


#projects{

  max-width: 100%;
}

.section.project {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 80px;
  padding: 60px 80px;

  @media (max-width: 768px) {
    grid-template-columns: 1fr;
    gap: 40px;
    padding: 80px 20px;
  }
}

.project-description {
  position: sticky;
  top: 80px;
  height: fit-content;

  @media (max-width: 768px) {
    position: static;
    top: auto;
    height: auto;
  }
}
.project-description p{
  font-size: 14px;
  margin-bottom: 20px;
}

.project-description .note p{
  font-size: 12px;
  margin-bottom: 0;
  color: #555;
}

.book-container{
  padding-top: 20px;
  transform-style: preserve-3d;
}
 /* Philippe Book */
.radio-group {
	margin: auto;
	text-align: left;
  font-size: 12px
  }

  .scene4 {
	width: 230px; /* Box width */
	height: 285px; /* Box height */
	perspective: 800px; /* Depth perspective */
	margin: auto;
  
  
  }
  
  .box4 {
	width: 230px; /* Box width */
	height: 285px; /* Box height */
	position: relative;
	transform-style: preserve-3d; /* Enable 3D transformations */
	transform: rotateY(0deg); /* Initial rotation */
	transition: transform 1s ease-in-out; /* Smooth transition */
  }
  
  .box4 .face {
	position: absolute;
	backface-visibility: hidden; /* Prevent faces from showing on the back */
	border: 0.5px solid black; /* Optional: for debugging alignment */
  }
  
  /* Front face */
  .box4 .-front {
	width: 230px;
	height: 285px;
	background-image: url("../src/philippe_cover.jpg");
	background-size: cover;
	transform: rotateY(0deg) translateZ(5px); /* Half-depth (10px depth) */
  }
  
  /* Back face */
  .box4 .-back {
	width: 230px;
	height: 285px;
	background-image: url("../src/philippe_back_cover.jpg");
	background-size: cover;
	transform: rotateY(180deg) translateZ(5px); /* Same depth as front */
  }
  
  /* Right face */
  .box4 .-right {
	width: 10px; /* Depth of 10px */
	height: 285px;
	background: #FAF9F6;
	transform: rotateY(90deg) translateZ(226px); /* Half-depth */
  }
  
  /* Left face */
  .box4 .-left {
	width: 10px; /* Depth of 10px */
	height: 285px;
	background-image: url("../src/philippe_spine.jpg");
	background-size: cover;
	transform: rotateY(-90deg) translateZ(5px); /* Same depth as right */
  }
  
  /* Top face */
  .box4 .-top {
	width: 230px;
	height: 10px; /* Top and bottom faces with 10px depth */
	background: #FAF9F6;
	transform: rotateX(90deg) translateZ(5px); /* Centered depth */
  }
  
  /* Bottom face */
  .box4 .-bottom {
	width: 230px;
	height: 10px; /* Same height as top */
	background: #FAF9F6;
	transform: rotateX(-90deg) translateZ(280px); /* Same depth as top */
  }
  
  /* Rotation classes for smooth transitions */
  .box4.show-front {
	transform: rotateY(0deg);
  }
  
  .box4.show-back {
	transform: rotateY(180deg);
  }
  
  .box4.show-right {
	transform: rotateY(90deg);
  }
  
  .box4.show-left {
	transform: rotateY(-90deg);
  }
  
  .box4.show-top {
	transform: rotateX(-90deg);
  }
  
  .box4.show-bottom {
	transform: rotateX(90deg);
  }


 /* UNCHANTED Book */
.radio-group {
	margin: auto;
	text-align: left;
  font-size: 12px
  }

  .scene3 {
	width: 230px; /* Box width */
	height: 285px; /* Box height */
	perspective: 800px; /* Depth perspective */
	margin: auto;
  
  
  }
  
  .box3 {
	width: 230px; /* Box width */
	height: 285px; /* Box height */
	position: relative;
	transform-style: preserve-3d; /* Enable 3D transformations */
	transform: rotateY(0deg); /* Initial rotation */
	transition: transform 1s ease-in-out; /* Smooth transition */
  }
  
  .box3 .face {
	position: absolute;
	backface-visibility: hidden; /* Prevent faces from showing on the back */
	border: 0.5px solid black; /* Optional: for debugging alignment */
  }
  
  /* Front face */
  .box3 .-front {
	width: 230px;
	height: 285px;
	background-image: url("../src/benin_cover.jpg");
	background-size: cover;
	transform: rotateY(0deg) translateZ(5px); /* Half-depth (10px depth) */
  }
  
  /* Back face */
  .box3 .-back {
	width: 230px;
	height: 285px;
	background-image: url("../src/benin_back_cover.jpg");
	background-size: cover;
	transform: rotateY(180deg) translateZ(5px); /* Same depth as front */
  }
  
  /* Right face */
  .box3 .-right {
	width: 10px; /* Depth of 10px */
	height: 285px;
	background: #FAF9F6;
	transform: rotateY(90deg) translateZ(226px); /* Half-depth */
  }
  
  /* Left face */
  .box3 .-left {
	width: 10px; /* Depth of 10px */
	height: 285px;
	background: #fcfaee;
	background-size: cover;
	transform: rotateY(-90deg) translateZ(5px); /* Same depth as right */
  }
  
  /* Top face */
  .box3 .-top {
	width: 230px;
	height: 10px; /* Top and bottom faces with 10px depth */
	background: #FAF9F6;
	transform: rotateX(90deg) translateZ(5px); /* Centered depth */
  }
  
  /* Bottom face */
  .box3 .-bottom {
	width: 230px;
	height: 10px; /* Same height as top */
	background: #FAF9F6;
	transform: rotateX(-90deg) translateZ(280px); /* Same depth as top */
  }
  
  /* Rotation classes for smooth transitions */
  .box3.show-front {
	transform: rotateY(0deg);
  }
  
  .box3.show-back {
	transform: rotateY(180deg);
  }
  
  .box3.show-right {
	transform: rotateY(90deg);
  }
  
  .box3.show-left {
	transform: rotateY(-90deg);
  }
  
  .box3.show-top {
	transform: rotateX(-90deg);
  }
  
  .box3.show-bottom {
	transform: rotateX(90deg);
  }


  

.section{
  padding: 60px 80px;
}

.section img,
.section video {
  width: 100%;
  margin-top: 20px;
}

#pages{

  max-width: 100%;
}

.about-container{
  width: 100%;

  display: grid;
  grid-template-rows: repeat(auto-fit, 1fr);
  grid-template-columns: 2fr 1fr;
  gap: 10px;

  @media (max-width: 768px) {
    grid-template-columns: 1fr;
    gap: 20px;
  }
}
.profile-pic img{
  width: 100%;
  height: auto;
  display: block;
  max-width: 40%;
  margin-top: 20px;
}

.info{
  font-size: 14px;
}

  .contact-info {
    margin-bottom: 20px;
  }




/* --- Film --- */
/*#film {
  padding: 3rem 2rem;
}*/

#film h2 {
  font-size: 1rem;
  margin-bottom: 2rem;
  font-weight: 400;
}

.film-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.7rem;
  width: 100%;
  margin-bottom: 3rem;
  max-width: 100%;
}

.film-item {
  display: flex;
  align-items: flex-start;
  gap: 0.7rem;
  overflow: visible;
  position: relative;
}

.film-item img {
  width: 100%;
  height: auto;
  display: block;
  max-width: 100%;
  flex-shrink: 0;
  margin-top: 0;
}

/* Rotated figcaption */
.film-item figcaption {
  position: static;
  transform: rotate(90deg);
  transform-origin: left top;
  font-size: 0.85rem;
  color: #555;
  align-self: flex-start;
  white-space: nowrap;
  line-height: 1.2;
  max-width: none;
  padding-top: 0.2rem;
   margin-left: 1rem;
}

/* Responsive: one column on mobile */
@media (max-width: 768px) {
  .film-grid {
    grid-template-columns: 1fr;
  }

  .film-item figcaption {
    font-size: 0.75rem;
    transform: rotate(90deg);
    transform-origin: left top;
    margin-left: 0.35rem;
    white-space: nowrap;
    align-self: flex-start;
  }
}

/* Vimeo full width */
#film iframe {
  width: 100%;
  height: 60vh;
  border: none;
  margin-top: 2rem;
}


/* MOBILE */
@media (max-width: 768px) {
  .layout {
    grid-template-columns: 1fr;
  }

  .left {
    
    width: 100%;
    height: auto;
    z-index: 10;
  }

  .left.hidden {
    display: none;
  }

  .section {
    padding: 100px 20px;
  }

  .right {
    display: none;
  }

  .right.active {
    display: block;
  }
}



/* Back button shown when a project/section is displayed */
.back-button {
  position: fixed;
  top: 1rem;
  left: 1rem;
  z-index: 9999;
  padding: 0.4rem 0.7rem;
  background: #ffffff;
  color: #111;
  border: 1px solid rgba(0,0,0,0.12);
  border-radius: 6px;
  box-shadow: 0 6px 18px rgba(0,0,0,0.08);
  cursor: pointer;
  font-weight: 600;
}

.back-button.hidden {
  display: none;
}

@media (min-width: 769px) {
  .back-button { left: 1.5rem; }
}

