/*
Theme Name: Loopra
Theme URI: https://loopra.com
Author: Loopra Inc.
Author URI: https://loopra.com
Description: Custom WordPress theme for Loopra – an AI automation platform. Dark, minimal, and motion-forward design built with Tailwind CSS.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: loopra
Tags: dark, one-page, business, custom-menu, full-width-template
*/

/* ============================================================
   BASE RESETS & CUSTOM PROPERTIES
   ============================================================ */
:root {
  --font-primary: 'Geist', 'Inter', system-ui, -apple-system, sans-serif;
  --color-bg: #000000;
  --color-bg-card: #07070A;
  --color-surface: #0f1116;
  --color-border: rgba(255,255,255,0.08);
  --color-text: #f8fafc;
  --color-muted: #71717a;
  --color-accent: #3b82f6;
  --color-accent-light: #60a5fa;
}

*, *::before, *::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: var(--font-primary);
  background-color: var(--color-bg);
  color: var(--color-text);
  overflow-x: hidden;
  margin: 0;
  padding: 0;
}

/* ============================================================
   SCROLL ANIMATIONS
   ============================================================ */
@keyframes animationIn {
  0% { opacity: 0; transform: translateY(30px); filter: blur(8px); }
  100% { opacity: 1; transform: translateY(0); filter: blur(0px); }
}

.animate-on-scroll {
  animation-play-state: paused !important;
}
.animate-on-scroll.animate {
  animation-play-state: running !important;
}

/* ============================================================
   KARAOKE TEXT ANIMATION
   ============================================================ */
.k-word {
  transition: opacity 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94),
              filter 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94),
              color 0.4s ease;
  will-change: opacity, filter, color;
}
.k-word.active {
  opacity: 1 !important;
  filter: blur(0px) !important;
  color: white !important;
  text-shadow: 0 0 20px rgba(255, 255, 255, 0.3);
}

/* ============================================================
   BEAM / FLOW ANIMATIONS
   ============================================================ */
@keyframes beam-flow {
  0% { stroke-dashoffset: 600; opacity: 0; }
  15% { opacity: 1; }
  85% { opacity: 1; }
  100% { stroke-dashoffset: 0; opacity: 0; }
}
.animate-beam-path {
  stroke-dasharray: 80 600;
  stroke-dashoffset: 600;
  animation: beam-flow 4s linear infinite;
}
.delay-100 { animation-delay: 0.5s; }
.delay-200 { animation-delay: 1s; }
.delay-300 { animation-delay: 1.5s; }
.delay-500 { animation-delay: 2.5s; }

/* ============================================================
   BUTTON BORDER BEAM
   ============================================================ */
@keyframes beam-spin {
  to { transform: rotate(360deg); }
}
@keyframes lines-slide {
  0% { background-position: 0 0; }
  100% { background-position: 24px 0; }
}
@keyframes pulse-glow {
  0%, 100% { transform: scale(1); box-shadow: 0 0 40px rgba(59,130,246,0.3); }
  50% { transform: scale(1.05); box-shadow: 0 0 60px rgba(59,130,246,0.5); }
}
.animate-pulse-logo {
  animation: pulse-glow 3s ease-in-out infinite;
}

/* ============================================================
   BORDER GRADIENT UTILITY
   ============================================================ */
[style*="--border-gradient"]::before {
  content: "";
  position: absolute;
  inset: 0;
  padding: 1px;
  border-radius: var(--border-radius-before, inherit);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  background: var(--border-gradient);
  pointer-events: none;
}

/* ============================================================
   CUSTOM SCROLLBAR
   ============================================================ */
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: #020617; }
::-webkit-scrollbar-thumb { background: #1e293b; border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: #334155; }

/* ============================================================
   WORDPRESS NAV MENU OVERRIDES
   ============================================================ */
#loopra-nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  gap: 2rem;
  align-items: center;
}
#loopra-nav ul li a {
  font-size: 0.875rem;
  font-weight: 500;
  color: #b3c9ff;
  text-decoration: none;
  transition: color 0.2s;
  font-family: var(--font-primary);
}
#loopra-nav ul li a:hover {
  color: #ffffff;
}
#loopra-nav ul li.current-menu-item a {
  color: #ffffff;
}

/* ============================================================
   FOOTER NAV MENU OVERRIDES
   ============================================================ */
.footer-nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  gap: 1.5rem;
}
.footer-nav ul li a {
  font-size: 0.75rem;
  color: #52525b;
  text-decoration: none;
  transition: color 0.2s;
  font-family: var(--font-primary);
}
.footer-nav ul li a:hover {
  color: #a1a1aa;
}

/* ============================================================
   WORDPRESS ALIGNMENT CLASSES
   ============================================================ */
.alignleft { float: left; margin-right: 1.5em; }
.alignright { float: right; margin-left: 1.5em; }
.aligncenter { display: block; margin: 0 auto; }
.wp-caption { max-width: 100%; }
.wp-caption-text { text-align: center; font-size: 0.875rem; color: var(--color-muted); }

/* ============================================================
   AURA BACKGROUND COMPONENT
   ============================================================ */
.aura-background-component canvas {
  opacity: 0.6;
}
