/* ============================================================
   Dual Skin Demo — animations.css
   FOUC gate + animation state placeholders.
   Phase 2+ will add skin-specific animation rules here.
   ============================================================ */

/* FOUC gate: hide data-animate elements until GSAP boot */
.mcs-ani-init [data-animate] {
  opacity: 0;
}

/* Page transition overlay placeholder (Phase 2+) */
.page-transition-active {
  overflow: hidden;
}

/* Reduced motion: show all animated content immediately, header stays visible */
@media (prefers-reduced-motion: reduce) {
  [data-animate] { opacity: 1 !important; transform: none !important; }
  .site-header { transform: none !important; }
}

/* ── Hero accent sweep — shared base (overlay hidden by default) ── */
.hero-accent-sweep {
  position: relative;
  display: inline-block;
}

.hero-accent-sweep__overlay {
  position: absolute;
  left: 0;
  top: 0;
  clip-path: inset(0 100% 0 0);
  pointer-events: none;
}

/* ── Parallax backgrounds (CINE-07) ── */
.hero-parallax-bg {
  position: absolute;
  top: -30%;
  left: 50%;
  transform: translateX(-50%);
  width: 900px;
  height: 900px;
  background: radial-gradient(circle, rgba(213, 196, 232, 0.15) 0%, transparent 70%);
  pointer-events: none;
  will-change: transform;
  z-index: 0;
}

.parallax-blob {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  filter: blur(80px);
  opacity: 0;
  z-index: 0;
  will-change: transform;
}

@media (max-width: 767px), (prefers-reduced-motion: reduce) {
  .parallax-blob,
  .hero-parallax-bg { display: none; }
}

/* ── Reduced motion: card hover + CTA fill-reveal overrides ── */
@media (prefers-reduced-motion: reduce) {
  .service-card:hover, .sector-card:hover, .value-card:hover,
  .team-card:hover, .article-card:hover {
    transform: none;
  }
  .hero-cta::before, .cta-btn::before { display: none; }
}

/* ── Custom Cursor (SHARE-03, SHARE-04) ── */
.cursor-dot,
.cursor-ring {
  pointer-events: none;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9999;
  mix-blend-mode: difference;
}

.cursor-dot {
  top: -5px;
  left: -5px;
  width: 10px;
  height: 10px;
  background: #fff;
  border-radius: 50%;
}

.cursor-ring {
  top: -20px;
  left: -20px;
  width: 40px;
  height: 40px;
  border: 1.5px solid #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.cursor-label {
  font-size: 0.6rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #fff;
  opacity: 0;
  white-space: nowrap;
  pointer-events: none;
}

/* Hide cursor on mobile/tablet and reduced motion */
@media (max-width: 990px), (prefers-reduced-motion: reduce) {
  .cursor-dot,
  .cursor-ring { display: none; }
  body { cursor: auto !important; }
}
