@font-face {
  font-family: "Heming";
  src: url("../fonts/Heming%20Variable.ttf") format("truetype");
}

:root {
  --primary-color: #e94f37;
  --secondary-color: #f6f7eb;
  --tertiary-color: #222222;
}

/* Ensure the Lab page can scroll regardless of global/bundled CSS */
html, body {
  height: auto !important;
  min-height: 100%;
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch; /* iOS smooth scrolling */
}

body {
  margin: 0;
  padding: 0;
  background: var(--secondary-color);
  font-family: sans-serif;
  transition: background 0.3s, color 0.3s;
}
body.night {
  background: var(--tertiary-color);
  color: var(--secondary-color);
}
.lab-buttons {
  position: fixed;
  top: 1rem;
  left: 0;
  width: 100vw;
  z-index: 1000;
  display: flex;
  gap: 0.5rem;
  justify-content: center;
  flex-wrap: wrap;
  pointer-events: auto;
}
.lab-btn {
  position: relative;
  background: var(--tertiary-color);
  color: var(--secondary-color);
  font-family: "Heming", sans-serif;
  font-size: 0.9rem;
  text-decoration: none;
  padding: 0.7rem 1.4rem;
  border-radius: 8px;
  border: none;
  transition: background 0.3s, color 0.3s, border-color 0.3s, transform 0.2s;
  cursor: pointer;
  letter-spacing: 0.03em;
}
.lab-btn:hover {
  background: var(--primary-color);
  color: var(--tertiary-color);
  border-color: var(--secondary-color);
  transform: scale(1.04);
}
body.night .lab-btn {
  background: var(--secondary-color);
  color: var(--tertiary-color);
  border-color: var(--primary-color);
}
body.night .lab-btn:hover {
  background: var(--primary-color);
  color: var(--secondary-color);
  border-color: var(--secondary-color);
}
.lab-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 16px;
  padding: 80px 32px 32px 32px; /* padding top augmenté pour les boutons fixes */
  max-width: 1400px;
  margin: auto;
}
.lab-item img,
.lab-item video,
.lab-item .lab-thumb {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.07);
  background: var(--secondary-color);
  opacity: 1;
  transition: opacity 0.4s;
}
/* Ensure video shows even before metadata is loaded */
.lab-item video {
  object-fit: cover;
  background: #000; /* fallback */
  min-height: 140px; /* reserve space to avoid collapsing gaps */
}
body.night .lab-item img,
body.night .lab-item video,
body.night .lab-item .lab-thumb {
  background: #333;
  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
}
.lab-lightbox {
  position: fixed;
  top: 0; left: 0;
  width: 100vw; height: 100vh;
  background: rgba(0,0,0,0.85);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2000;
}
.lab-lightbox img {
  max-width: 90vw;
  max-height: 90vh;
  border-radius: 12px;
  box-shadow: 0 4px 32px rgba(0,0,0,0.5);
}
.lab-lightbox-close {
  position: absolute;
  top: 2vw;
  right: 2vw;
  font-size: 2.5rem;
  color: var(--secondary-color);
  background: none;
  border: none;
  cursor: pointer;
  z-index: 2100;
}
.main-nav-buttons {
  position: fixed;
  top: 1rem;
  left: 0;
  width: 100vw;
  z-index: 1000;
  display: flex;
  gap: 0.5rem;
  justify-content: center;
  padding: 0.5rem 0;
}
.main-nav-btn {
  background: var(--tertiary-color);
  color: var(--secondary-color);
  font-family: "Heming", sans-serif;
  font-size: 0.9rem;
  text-decoration: none;
  padding: 0.7rem 1.4rem;
  border-radius: 8px;
  border: none;
  transition: background 0.3s, color 0.3s, border-color 0.3s, transform 0.2s;
  cursor: pointer;
  letter-spacing: 0.03em;
  display: flex;
  align-items: center;
  gap: 0.5em;
}
.main-nav-btn:hover {
  background: var(--primary-color);
  color: var(--secondary-color);
  transform: scale(1.04);
}
.main-nav-btn.active {
  background: var(--primary-color);
  color: var(--secondary-color);
}
body.night .main-nav-btn {
  background: var(--secondary-color);
  color: var(--tertiary-color);
}
body.night .main-nav-btn.active {   
  background: var(--primary-color);
  color: var(--secondary-color);
}
@media (max-width: 900px) {
  .lab-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
  .lab-grid { grid-template-columns: 1fr; }
  .lab-item img,
  .lab-item video,
  .lab-item .lab-thumb { border-radius: 0; }
}

.credit {
  font-family: "Heming";
  color: var(--tertiary-color);
  font-weight: 200;
  font-size: 1rem;
  padding: 2rem;
}

/* Transition blocks for GSAP animation */
.transition {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  display: flex;
  flex-direction: column;
  z-index: 999999;
  pointer-events: none;
}
.transition-row {
  flex: 1;
  display: flex;
}
.transition-row.row-1 .block {
  transform-origin: top;
}
.transition-row.row-2 .block {
  transform-origin: bottom;
}
.block {
  flex: 1;
  background-color: var(--primary-color, #e94f37);
  transform: scaleY(1);
  will-change: transform;
  padding-right: 5px;
}