@font-face {
  font-family: 'UnifontExMono';
  src: url('UnifontExMono.woff2') format('woff2'),
       url('UnifontExMono.woff') format('woff');
}

/* STYLES OVERLAYS DÉPLACÉS VERS overlays.css */

.admin-trigger-zone {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  width: 30px !important;
  height: 30px !important;
  z-index: 99999 !important;
  cursor: pointer !important;
  background: red !important;
  border: 2px solid darkred !important;
  transition: background-color 0.3s;
  pointer-events: auto !important;
  display: block !important;
  visibility: visible !important;
  color: white !important;
  font-size: 8px !important;
  text-align: center !important;
  line-height: 26px !important;
}

.admin-trigger-zone:hover {
  background: rgba(255, 0, 0, 0.6);
  border-color: darkred;
}

@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes slideIn {
  from { 
    opacity: 0;
    transform: translateY(-20px) scale(0.95);
  }
  to { 
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}
body{
  margin:0; background:#e4e2dc; 
  overflow:hidden;
  font-family:'UnifontExMono', monospace, sans-serif;
  -webkit-touch-callout:none;
  -webkit-user-select:none;
  user-select:none;
  touch-action:manipulation;
  --fade-px: 12px; /* Largeur du fade ET du padding horizontal (modifier ici !) */
}

.image-container{
  position:absolute;
  -webkit-user-select:none;-moz-user-select:none;user-select:none;
  transition:box-shadow .2s;
}
.image-container img{
  width:16vw;
  max-width:200px;
  min-width:120px;
  border:1px dotted #000;
  display:block;
  cursor:grab;-webkit-user-drag:none;
  user-drag:none;
  touch-action:none;
  background:#fff;
}
.image-container.selected img,
.image-container:hover img{box-shadow:0 0 10px #fff;}
.image-container::after{
  content:'';position:absolute;left:0;bottom:-20px;width:100%;height:25px;
}

.infobox{
  position:absolute;
  background:#ccc;
  border:1px solid #000;
  padding:4px;
  font-size:16px;
  color:#000;
  z-index:10;
}
.infobox.filename{
  cursor:default;
  position: absolute; 
  display: flex;
  align-items: center;
  background: none !important;
  border: none;
  padding: 0;
  box-shadow: none;
  left: 0;
}

.filename-arrow-outside {
  font-size: 27px;
  color: #111;
  opacity: 0;
  pointer-events: none;
  user-select: none;
  transition: opacity .17s, left .25s;
  z-index: 11;
  background: none !important;
  margin-right: 4px;
  margin-bottom: 4px;
  left: 0;
  position: relative;
}
.filename-arrow-outside.animated {
  opacity: 1 !important;
  animation: arrow-wiggle 0.8s infinite;
}
.filename-arrow-outside.frozen {
  animation: none !important;
  left: 0 !important;
  opacity: 1 !important;
}
@keyframes arrow-wiggle {
  0%,100%{left:0;}
  40%{left:-7px;}
  80%{left:0;}
}

.filename-text {
  background: #ddd;
  border: 1px solid #000;
  padding: 0;
  color: #000;
  display: inline-block;
  cursor: pointer;
  max-width: 70%;
  overflow: visible;
  position: relative;
  white-space: nowrap;
  text-align: center;
  box-sizing: border-box;
}
.filename-text:hover {
  background: #eee !important;
}
.filename-mask-clip {
  display: flex; align-items: center; min-height: 24px;
  overflow: hidden; position: relative;
  padding: 0 var(--fade-px);
  box-sizing: border-box;
  -webkit-mask-image: linear-gradient(to right, transparent 0, black var(--fade-px), black calc(100% - var(--fade-px)), transparent 100%);
  mask-image: linear-gradient(to right, transparent 0, black var(--fade-px), black calc(100% - var(--fade-px)), transparent 100%);
  -webkit-mask-size: 100% 100%; mask-size: 100% 100%;
  -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
  background: none; width: 100%;
}
.filename-scroll-inner {
  display: inline-block;
  white-space: nowrap;
  font-size: 16px;
  color: #000;
  transition: none;
  left: 0;
  position: relative;
  /* PAS D'ANIMATION CSS ICI ! */
}
.filename-text.long .filename-scroll-inner {
  animation: none; /* Animation JS uniquement */
}
.filename-text.long.scroll .filename-scroll-inner {
  animation: scroll-title var(--filename-scroll-duration,3s) cubic-bezier(.5,0,.5,1) infinite alternate;
}
@keyframes scroll-title {
  0% { transform: translateX(0);}
  15%{ transform: translateX(0);}
  85% { transform: translateX(var(--scroll-amount));}
  100%{ transform: translateX(var(--scroll-amount));}
}

#gallery { 
  will-change: transform; 
  transition: none !important;
}