/* Minimal base + utility fixes */
html, body { height: 100%; }
:root { --safe-area-top: env(safe-area-inset-top); }
/* Prevent video flicker */
video { image-rendering: auto; backface-visibility: hidden; transform: translateZ(0); }
/* Fullscreen hero layers */
.hero { position: relative; min-height: 100svh; }
.hero-media { position: absolute; inset: 0; overflow: hidden; }
.hero-media img, .hero-media video { width: 100%; height: 100%; object-fit: cover; }
/* Menu visibility */
#menu.is-open { display: block; }
/* Pointer-friendly for overlay */
#menu a { pointer-events: auto; }
/* Subtle grain (optional) */
.grain:before{content:"";position:fixed;inset:0;pointer-events:none;background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAB');opacity:.03;mix-blend-mode:overlay}

/* Container */
.filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
  justify-content: flex-start;
  font-family: 'Inter', sans-serif;
  font-weight: 400;
  font-size: 0.95rem;
  letter-spacing: -0.01em;
}

/* Buttons = text only */
.filter-btn {
  background: none;
  border: none;
  color: #a1a1a1;
  cursor: pointer;
  position: relative;
  padding: 0;
  margin: 0;
  transition: color 0.25s ease;
  font-weight: 500;
}

.filter-btn::before {
  content: '/';
  color: #a1a1a1;
  opacity: 0.6;
  margin-left: 0.15rem;
  margin-right: 0.65rem;
}

.filter-btn:first-child::before {
  content: '';
  margin: 0;
}

/* Hover + active */
.filter-btn:hover {
  color: #000;
}

.filter-btn.active {
  color: #000;
  font-weight: 500;
}
.menu-link {
  position: relative;
  display: inline-block;
  color: black;
  text-decoration: none;
  transition: color 0.3s ease;
}

/* ligne strike */
.menu-link::after {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 0;
  height: 2px;
  background-color: currentColor; /* même couleur que le texte */
  transform: translateY(-50%);
  transition: width 0.35s ease;
  pointer-events: none;
}

/* au hover -> on étend la ligne */
.menu-link:hover::after {
  width: 100%;
}

/* retire le orange si un style existe encore */
.menu-link:hover {
  color: black !important;
}

.project {
  break-inside: avoid;
  margin-bottom: 1.5rem;
}

#projects-grid .project:nth-child(3n) img,
#projects-grid .project:nth-child(3n) video {
  transform: scale(1.02);
}

#projects-grid .project:nth-child(2n) {
  margin-top: 2rem;
}


@keyframes marquee {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

.animate-marquee {
  animation: marquee 25s linear infinite;
}
#footerCanvas {
  position: absolute;
  inset: 0;
  display: block;
  background: transparent;
  z-index: 0;
  opacity: 0.4;
  pointer-events: none;
}

#sootheCanvas{ display:block; }

#imageTrail img {
  filter: grayscale(100%) brightness(1.1);
  transition: filter 0.4s ease;
}
#imageTrail img:hover {
  filter: grayscale(0%) brightness(1);
}