/* PINKY 3D — styles du canvas et des overlays optionnels (voir pinky-3d.js) */
.pinky3d-canvas { position: fixed; inset: 0; width: 100%; height: 100%; display: block; pointer-events: none; outline: none; }
.pinky3d-fallback { position: fixed; inset: 0; pointer-events: none;
  background: radial-gradient(60% 50% at 75% 30%, rgba(240,107,160,0.28), transparent 70%),
              radial-gradient(50% 50% at 15% 80%, rgba(255,192,220,0.16), transparent 70%); }
.pinky3d-vignette { position: fixed; inset: 0; pointer-events: none;
  background: radial-gradient(120% 90% at 50% 50%, transparent 55%, rgba(6,6,10,0.75) 100%); }
.pinky3d-grain { position: fixed; inset: -100%; pointer-events: none; opacity: 0.045; will-change: transform;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation: pinky3dGrain 0.6s steps(6) infinite; }
@keyframes pinky3dGrain {
  0% { transform: translate(0,0); } 20% { transform: translate(-6%, 4%); } 40% { transform: translate(4%, -8%); }
  60% { transform: translate(-8%, -2%); } 80% { transform: translate(6%, 6%); } 100% { transform: translate(0,0); }
}
@media (prefers-reduced-motion: reduce) { .pinky3d-grain { animation: none; } }
/* Quand la scène 3D tourne, les anciens orbes "aurora" des pages sont masqués (la scène les remplace) */
body.pinky3d-on .aurora { display: none !important; }
