/* ============================================================
   Arvo — Effects: shadows, blur, motion, texture
   ============================================================ */

:root {
  /* Shadows — soft, diffuse, tinted toward the brand green on CTAs */
  --shadow-sm: 0 1px 2px rgba(0, 38, 27, 0.06);
  --shadow-md: 0 8px 24px rgba(0, 38, 27, 0.08);
  --shadow-lg: 0 12px 40px rgba(0, 38, 27, 0.10);
  --shadow-xl: 0 24px 60px rgba(0, 38, 27, 0.12);
  --shadow-cta: 0 12px 40px rgba(1, 141, 99, 0.18); /* primary/10-ish glow under TextureBtn */
  --shadow-header: 0 24px 60px rgba(0, 0, 0, 0.25);

  /* Blur */
  --blur-sm: 6px;
  --blur-md: 12px;
  --blur-lg: 24px;
  --blur-orb: 120px;   /* ambient light orbs */

  /* Motion — the two house easing curves */
  --ease-snappy: cubic-bezier(0.16, 1, 0.3, 1);   /* @kind other */ /* reveals, layout */
  --ease-expo: cubic-bezier(0.19, 1, 0.22, 1);    /* @kind other */ /* button text slide */
  --ease-anticipate: cubic-bezier(0.68, -0.55, 0.27, 1.55); /* @kind other */

  --dur-fast: 0.3s;  /* @kind other */
  --dur-base: 0.5s;  /* @kind other */
  --dur-slow: 0.6s;  /* @kind other */
  --dur-reveal: 1.4s;  /* @kind other */ /* big card blur-in */

  /* Texture asset (relative to project root; override per-file if nested) */
  --noise-url: url("../assets/textures/noise.webp");  /* @kind other */
}

/* ---- Reusable house utilities (opt-in classes) ---- */

/* Signature dashed divider on dark surfaces */
.arvo-divider-dashed {
  border-color: var(--arvo-border-dashed);
  border-style: dashed;
}

/* Noise texture overlay — drop inside a positioned, overflow-hidden box */
.arvo-noise {
  position: absolute;
  inset: 0;
  background-image: var(--noise-url);
  background-size: 200%;
  opacity: 0.2;
  mix-blend-mode: overlay;
  pointer-events: none;
}

/* Standard viewport-reveal keyframe (opacity + rise + de-blur) */
@keyframes arvo-reveal {
  from { opacity: 0; transform: translateY(32px); filter: blur(12px); }
  to   { opacity: 1; transform: translateY(0);    filter: blur(0);    }
}

/* Ambient orb pulse */
@keyframes arvo-orb-pulse {
  0%, 100% { transform: scale(1);   opacity: 0.8; }
  50%      { transform: scale(1.2); opacity: 1;   }
}
