/* =========================================================
   InfoProject Software — Thème « holographique orange/gris »
   Police self-hébergée (Rajdhani, OFL) + tokens + fond animé.
   Chargé sur TOUTES les pages (public + admin) avant les
   styles spécifiques, pour une identité commune.
   ========================================================= */

/* Rajdhani (OFL) — woff2 sous-ensembles latin + latin-ext, self-hébergés.
   ~96 Ko au total contre ~1,1 Mo en TTF. */
@font-face{
  font-family:"Rajdhani"; font-style:normal; font-weight:500; font-display:swap;
  src:url("fonts/Rajdhani-500-latin.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:"Rajdhani"; font-style:normal; font-weight:500; font-display:swap;
  src:url("fonts/Rajdhani-500-ext.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family:"Rajdhani"; font-style:normal; font-weight:600; font-display:swap;
  src:url("fonts/Rajdhani-600-latin.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:"Rajdhani"; font-style:normal; font-weight:600; font-display:swap;
  src:url("fonts/Rajdhani-600-ext.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family:"Rajdhani"; font-style:normal; font-weight:700; font-display:swap;
  src:url("fonts/Rajdhani-700-latin.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:"Rajdhani"; font-style:normal; font-weight:700; font-display:swap;
  src:url("fonts/Rajdhani-700-ext.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

:root{
  /* Police d'affichage (titres, libellés HUD) */
  --font-display:"Rajdhani","Segoe UI",Tahoma,sans-serif;
  /* Palette commune orange / gris foncé */
  --orange:#ff7a1a;
  --amber:#ffb347;
  --ember:#ff4d2e;
  --flare:linear-gradient(100deg,var(--ember),var(--orange) 45%,var(--amber));
  --glow-o:rgba(255,122,26,.42);
}

/* ---- Fond animé : pluie de code « Matrix » (canvas plein écran, fixe) ----
   Dessinée par assets/fx.js. Aucun fichier image : très léger. */
.fx-net{
  position:fixed;
  inset:0;
  z-index:-1;          /* derrière le contenu, devant le fond du body */
  display:block;
  pointer-events:none;
  /* Safari : force une couche GPU dédiée pour que le canvas fixe (derrière des
     panneaux en backdrop-filter) soit bien redessiné à chaque frame. */
  transform:translateZ(0);
  -webkit-transform:translateZ(0);
  will-change:transform;
  -webkit-backface-visibility:hidden;
  backface-visibility:hidden;
}

/* ---- Menu hamburger (mobile) : base commune aux deux en-têtes ----
   Technique 100% CSS (case à cocher), sans JavaScript. Le bouton et le menu
   déroulant sont masqués sur desktop ; chaque feuille de style active
   l'affichage mobile à son point de rupture. Les var() ont un repli car
   l'accueil ne charge pas site.css. */
.nav-toggle{
  position:absolute;
  width:1px; height:1px;
  opacity:0;
  pointer-events:none;
}
.nav-burger{
  display:none;              /* affiché en mobile par site.css / l'accueil */
  flex-direction:column;
  justify-content:center;
  gap:5px;
  width:44px; height:44px;
  margin-left:auto;
  padding:0 11px;
  border:1px solid var(--rim, rgba(255,170,100,.24));
  border-radius:12px;
  background:rgba(255,122,26,.08);
  color:#ffd9bf;
  cursor:pointer;
}
.nav-burger span{
  display:block;
  height:2px;
  background:currentColor;
  border-radius:2px;
  transition:transform .2s ease, opacity .2s ease;
}
.nav-toggle:focus-visible ~ .nav-burger{
  outline:2px solid var(--orange, #ff7a1a);
  outline-offset:2px;
}
.nav-toggle:checked ~ .nav-burger span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav-toggle:checked ~ .nav-burger span:nth-child(2){ opacity:0; }
.nav-toggle:checked ~ .nav-burger span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* ---- Révélation au défilement ---- */
[data-reveal]{
  opacity:0;
  transform:translateY(22px);
  transition:opacity .6s ease, transform .6s ease;
  will-change:opacity, transform;
}
[data-reveal].is-in{
  opacity:1;
  transform:none;
}

@media (prefers-reduced-motion:reduce){
  [data-reveal]{opacity:1; transform:none; transition:none;}
}
