/* ======================================
   AURA — Emotional Intelligence Landing
   Premium Calm Design System
   ====================================== */

/* === Grain Texture Overlay === */
.grain-overlay {
  position: fixed;
  inset: 0;
  z-index: 9999;
  pointer-events: none;
  opacity: 0.025;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
  background-repeat: repeat;
  background-size: 128px 128px;
}

/* === Ambient Background === */
.ambient-bg {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
}

.ambient-orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(120px);
  opacity: 0.35;
}

.ambient-orb-1 {
  width: 600px;
  height: 600px;
  top: -10%;
  right: -10%;
  background: radial-gradient(circle, #E8DCC8 0%, transparent 70%);
  animation: ambientFloat1 20s ease-in-out infinite;
}

.ambient-orb-2 {
  width: 500px;
  height: 500px;
  bottom: 10%;
  left: -5%;
  background: radial-gradient(circle, #D4DDD0 0%, transparent 70%);
  animation: ambientFloat2 25s ease-in-out infinite;
}

.ambient-orb-3 {
  width: 400px;
  height: 400px;
  top: 40%;
  right: 20%;
  background: radial-gradient(circle, #F5E8E4 0%, transparent 70%);
  animation: ambientFloat3 22s ease-in-out infinite;
}

@keyframes ambientFloat1 {
  0%, 100% { transform: translate(0, 0) scale(1); }
  33% { transform: translate(-40px, 30px) scale(1.05); }
  66% { transform: translate(20px, -20px) scale(0.95); }
}

@keyframes ambientFloat2 {
  0%, 100% { transform: translate(0, 0) scale(1); }
  33% { transform: translate(30px, -40px) scale(1.08); }
  66% { transform: translate(-20px, 20px) scale(0.92); }
}

@keyframes ambientFloat3 {
  0%, 100% { transform: translate(0, 0) scale(1); }
  50% { transform: translate(-30px, 30px) scale(1.05); }
}

/* === Glass Card === */
.glass-card {
  background: rgba(255, 255, 255, 0.5);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(255, 255, 255, 0.6);
}

/* === Pattern Backgrounds === */
.pattern-dots {
  background-image: radial-gradient(circle, #2D2A26 1px, transparent 1px);
  background-size: 20px 20px;
}

.pattern-lines {
  background-image: repeating-linear-gradient(
    45deg,
    #2D2A26 0px,
    #2D2A26 1px,
    transparent 1px,
    transparent 12px
  );
}

.pattern-waves {
  background-image: 
    radial-gradient(ellipse at 0% 50%, #2D2A26 1px, transparent 1px),
    radial-gradient(ellipse at 100% 50%, #2D2A26 1px, transparent 1px);
  background-size: 30px 20px;
}

/* === Scroll Reveal Animations === */
.story-block {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 0.9s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.9s cubic-bezier(0.16, 1, 0.3, 1);
}

.story-block.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.story-block:nth-child(2) { transition-delay: 0.1s; }
.story-block:nth-child(3) { transition-delay: 0.15s; }
.story-block:nth-child(4) { transition-delay: 0.2s; }
.story-block:nth-child(5) { transition-delay: 0.25s; }
.story-block:nth-child(6) { transition-delay: 0.3s; }

/* === Hero Reveal === */
.reveal-item {
  opacity: 0;
  transform: translateY(24px);
  animation: heroReveal 1s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.reveal-item:nth-child(1) { animation-delay: 0.2s; }
.reveal-item:nth-child(2) { animation-delay: 0.4s; }
.reveal-item:nth-child(3) { animation-delay: 0.6s; }
.reveal-item:nth-child(4) { animation-delay: 0.8s; }
.reveal-item:nth-child(5) { animation-delay: 1.0s; }

@keyframes heroReveal {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* === Draw Line Animation === */
.draw-line {
  stroke-dasharray: 300;
  stroke-dashoffset: 300;
  animation: drawLine 1.5s cubic-bezier(0.16, 1, 0.3, 1) 0.8s forwards;
}

@keyframes drawLine {
  to { stroke-dashoffset: 0; }
}

/* === Scroll Line === */
.scroll-line {
  position: relative;
  overflow: hidden;
}

.scroll-line::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #FAF8F5;
  animation: scrollLineAnim 2s ease-in-out infinite;
}

@keyframes scrollLineAnim {
  0% { transform: translateY(-100%); }
  100% { transform: translateY(100%); }
}

/* === Navigation Scroll Effect === */
#nav.scrolled {
  background: rgba(250, 248, 245, 0.8);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-bottom: 1px solid rgba(212, 200, 184, 0.2);
}

/* === Soft Button Hover === */
.soft-btn {
  position: relative;
  overflow: hidden;
}

.soft-btn::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: rgba(196, 168, 130, 0.15);
  opacity: 0;
  transition: opacity 0.5s ease;
}

.soft-btn:hover::before {
  opacity: 1;
}

/* === Slow Pulse === */
@keyframes pulseSlow {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.4; }
}

.animate-pulse-slow {
  animation: pulseSlow 3s ease-in-out infinite;
}

/* === Insight Card Hover Lift === */
.insight-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 48px rgba(196, 168, 130, 0.08);
}

/* === Experience Moment === */
.experience-moment:hover {
  transform: translateY(-6px);
  box-shadow: 0 16px 56px rgba(196, 168, 130, 0.1);
}

/* === Orb Label Fade In === */
#orbLabel.fade-in {
  opacity: 1;
}

/* === Smooth Scroll === */
html {
  scroll-behavior: smooth;
}

/* === Custom Selection === */
::selection {
  background: rgba(196, 168, 130, 0.25);
  color: #2D2A26;
}

/* === Responsive Canvas === */
#emotionOrb {
  display: block;
}

/* === Mobile Menu Transitions === */
#mobile-menu.is-open {
  opacity: 1;
  pointer-events: all;
}

/* === Emphasis on Scrolled Nav === */
#nav.scrolled .nav-link {
  color: #6B6660;
}

/* === Story Image Float Animation === */
.story-image-container {
  animation: gentleFloat 6s ease-in-out infinite;
}

@keyframes gentleFloat {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
}

/* === Typography Refinements === */
h1, h2, h3, h4, h5, h6 {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.font-serif {
  font-feature-settings: 'liga' 1, 'kern' 1;
}

/* === Focus States (Accessibility) === */
a:focus-visible,
button:focus-visible,
input:focus-visible {
  outline: 2px solid rgba(196, 168, 130, 0.5);
  outline-offset: 2px;
  border-radius: 999px;
}

/* === Reduced Motion === */
@media (prefers-reduced-motion: reduce) {
  .story-block,
  .reveal-item,
  .ambient-orb,
  .story-image-container,
  .scroll-line::after {
    animation: none !important;
    transition: none !important;
  }
  
  .story-block {
    opacity: 1;
    transform: none;
  }
  
  .reveal-item {
    opacity: 1;
    transform: none;
  }
  
  .draw-line {
    stroke-dashoffset: 0;
  }
}

/* === Responsive Adjustments === */
@media (max-width: 768px) {
  .ambient-orb {
    filter: blur(80px);
    opacity: 0.2;
  }
  
  .ambient-orb-1 {
    width: 300px;
    height: 300px;
  }
  
  .ambient-orb-2 {
    width: 250px;
    height: 250px;
  }
  
  .ambient-orb-3 {
    width: 200px;
    height: 200px;
  }
}