/* ============================================================
   MARSA ALEKHWA — Interactive Oil Background Canvas
   Fixed canvas layer behind all content
   ============================================================ */

@layer components {

  /* ── Canvas Background ────────────────────────── */
  .oil-bg-canvas {
    position: fixed;
    inset: 0;
    z-index: -10;
    pointer-events: none;
    will-change: transform;
  }

  /* Gyroscope permission prompt (iOS 13+) */
  .gyro-prompt {
    position: fixed;
    inset-block-end: var(--space-8);
    inset-inline-start: 50%;
    transform: translateX(-50%);
    z-index: var(--z-toast);
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-6);
    background: var(--color-bg-glass-heavy);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 1px solid var(--color-border);
    border-radius: 3rem;
    font-size: var(--text-sm);
    color: var(--color-text-primary);
    cursor: pointer;
    transition: var(--transition-all);
    opacity: 0;
    animation: gyroPromptIn 0.6s var(--ease-out) 2s both;
    white-space: nowrap;
  }

  [dir="rtl"] .gyro-prompt {
    transform: translateX(50%);
  }

  .gyro-prompt:hover {
    border-color: var(--color-border-strong);
    background: var(--color-bg-elevated);
  }

  .gyro-prompt__icon {
    font-size: 1.25rem;
  }

  .gyro-prompt__text {
    font-weight: 500;
  }

  .gyro-prompt.is-hidden {
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.4s var(--ease-out);
  }

  @keyframes gyroPromptIn {
    from {
      opacity: 0;
      transform: translateX(-50%) translateY(1rem);
    }
    to {
      opacity: 1;
      transform: translateX(-50%) translateY(0);
    }
  }

  /* Gyro prompt hidden — background is always active */
  .gyro-prompt {
    display: none;
  }

  /* Hide canvas when reduced motion is preferred */
  @media (prefers-reduced-motion: reduce) {
    .oil-bg-canvas {
      display: none;
    }
  }
}
