/* ==========================================================================
   Base
   ========================================================================== */
*,*::before,*::after{box-sizing:border-box;}
html{
  background:var(--obs);
  color:var(--ivo);
  -webkit-text-size-adjust:100%;
  scroll-padding-top:90px;
}
html:not(.reduced-motion){scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--font);
  font-size:var(--fs-body);
  line-height:var(--lh-body);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
  background:transparent; /* la toile de l'aura se voit à travers les sections sombres */
}
html.is-intro body{overflow:hidden;}
html.menu-open body{overflow:hidden;}

img,svg{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;margin:0;padding:0;}
h1,h2,h3,h4,p,blockquote{margin:0;}
button{font:inherit;color:inherit;}
::selection{background:var(--vio);color:#fff;}

.container{max-width:var(--container);margin:0 auto;padding:0 var(--gutter);position:relative;}

/* Accessibilité : focus visibles, lien d'évitement */
a:focus-visible,button:focus-visible{
  outline:2px solid var(--vio);
  outline-offset:4px;
  border-radius:6px;
}
.s-light a:focus-visible,.s-light button:focus-visible{outline-color:var(--vio-deep);}
.skip-link{
  position:absolute;left:-9999px;top:0;z-index:calc(var(--z-cursor) + 1);
  background:var(--vio);color:#fff;padding:12px 20px;border-radius:0 0 8px 0;font-weight:600;
}
.skip-link:focus{left:0;}

/* Toile de l'aura */
.aura-canvas{
  position:fixed;inset:0;width:100%;height:100%;
  z-index:var(--z-canvas);pointer-events:none;
  opacity:0;transition:opacity 1.6s var(--ease-out);
}
.aura-canvas.is-ready{opacity:1;}
.aura-fallback{
  position:fixed;inset:0;z-index:var(--z-canvas);pointer-events:none;display:none;
  background:
    radial-gradient(60% 55% at 50% 42%, rgba(var(--vio-rgb),0.28) 0%, rgba(var(--vio-rgb),0.08) 45%, transparent 75%),
    radial-gradient(35% 30% at 40% 38%, rgba(var(--or-rgb),0.08) 0%, transparent 70%);
}
html.no-webgl .aura-fallback{display:block;}
html.no-webgl .aura-canvas{display:none;}

/* Sections : les sombres laissent passer l'aura, les claires sont des « feuilles » opaques */
main{position:relative;z-index:var(--z-content);}
.s{position:relative;}
.s-dark{color:var(--ivo);}
.s-light{
  background:var(--ivo);color:var(--obs);
  border-radius:var(--radius) var(--radius) 0 0;
  box-shadow:0 -1px 0 rgba(var(--ivo-rgb),0.06);
}
.s-light + .s-dark{margin-top:0;}
.s-light.s-manifesto{border-radius:var(--radius);}

/* Réduction des animations : tout est visible, rien ne bouge */
html.reduced-motion *,
html.reduced-motion *::before,
html.reduced-motion *::after{
  animation-duration:0.001ms !important;
  animation-iteration-count:1 !important;
  transition-duration:0.001ms !important;
  scroll-behavior:auto !important;
}
