/* ===== BASE ===== */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }

/* ===== GEOMETRIC SHAPES ===== */
.geo-shape {
  position: absolute;
  opacity: 0.12;
  pointer-events: none;
}

/* Circles */
.shape-circle-1 {
  width: 500px; height: 500px;
  background: radial-gradient(circle, rgba(245,197,0,0.4) 0%, rgba(245,197,0,0) 70%);
  border-radius: 50%;
  top: -100px; right: -150px;
}
.shape-circle-2 {
  width: 300px; height: 300px;
  background: radial-gradient(circle, rgba(201,31,212,0.3) 0%, rgba(201,31,212,0) 70%);
  border-radius: 50%;
  bottom: 20%; left: -80px;
}
.shape-circle-3 {
  width: 200px; height: 200px;
  background: radial-gradient(circle, rgba(245,197,0,0.25) 0%, rgba(245,197,0,0) 70%);
  border-radius: 50%;
  bottom: 10%; right: 10%;
}
.shape-circle-4 {
  width: 400px; height: 400px;
  background: radial-gradient(circle, rgba(245,197,0,0.15) 0%, rgba(245,197,0,0) 70%);
  border-radius: 50%;
  top: -100px; left: -100px;
}
.shape-circle-5 {
  width: 350px; height: 350px;
  background: radial-gradient(circle, rgba(107,15,110,0.15) 0%, rgba(107,15,110,0) 70%);
  border-radius: 50%;
  top: -80px; right: -80px;
}
.shape-circle-6 {
  width: 450px; height: 450px;
  background: radial-gradient(circle, rgba(245,197,0,0.08) 0%, rgba(245,197,0,0) 70%);
  border-radius: 50%;
  bottom: -200px; right: -100px;
}

/* Squares */
.shape-square-1 {
  width: 120px; height: 120px;
  background: rgba(245,197,0,0.3);
  border: 3px solid rgba(245,197,0,0.5);
  top: 15%; left: 5%;
  transform: rotate(45deg);
  border-radius: 12px;
}
.shape-square-2 {
  width: 80px; height: 80px;
  background: rgba(201,31,212,0.2);
  border: 2px solid rgba(201,31,212,0.4);
  bottom: 25%; right: 5%;
  transform: rotate(20deg);
  border-radius: 8px;
}
.shape-square-3 {
  width: 150px; height: 150px;
  background: rgba(245,197,0,0.1);
  border: 3px solid rgba(245,197,0,0.25);
  bottom: -30px; right: 10%;
  transform: rotate(30deg);
  border-radius: 16px;
}
.shape-square-4 {
  width: 100px; height: 100px;
  background: rgba(107,15,110,0.1);
  border: 2px solid rgba(107,15,110,0.2);
  top: 10%; left: 5%;
  transform: rotate(-15deg);
  border-radius: 10px;
}

/* Triangles */
.shape-triangle-1 {
  width: 0; height: 0;
  border-left: 60px solid transparent;
  border-right: 60px solid transparent;
  border-bottom: 104px solid rgba(201,31,212,0.2);
  top: 30%; right: 8%;
}

/* Dots pattern */
.shape-dots {
  width: 200px; height: 200px;
  background-image: radial-gradient(circle, rgba(245,197,0,0.4) 2px, transparent 2px);
  background-size: 20px 20px;
  top: 60%; left: 3%;
  opacity: 0.5;
}
.shape-dots-footer {
  width: 250px; height: 250px;
  background-image: radial-gradient(circle, rgba(245,197,0,0.2) 2px, transparent 2px);
  background-size: 24px 24px;
  bottom: 0; left: 20%;
  opacity: 0.4;
}

/* ===== FLOATING CARDS ===== */
.floating-card {
  position: absolute;
  z-index: 10;
  animation: float 4s ease-in-out infinite;
}
.card-float-1 { animation-delay: 0s; }
.card-float-2 { animation-delay: 1.3s; }
.card-float-3 { animation-delay: 2.6s; }

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

/* ===== SCROLL REVEAL ===== */
.scroll-reveal {
  opacity: 1;
  transform: none;
  transition: opacity 0.6s ease, transform 0.6s ease;
}

@media (prefers-reduced-motion: no-preference) {
  .scroll-reveal {
    opacity: 0;
    transform: translateY(30px);
  }
  .scroll-reveal.revealed {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ===== MOBILE MENU ===== */
.mobile-link {
  display: block;
  padding: 0.5rem 0;
}

/* ===== FOCUS STYLES ===== */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible {
  outline: 2px solid rgba(245,197,0,0.7);
  outline-offset: 2px;
  border-radius: 4px;
}

/* ===== SELECTION ===== */
::selection {
  background: rgba(201,31,212,0.2);
  color: #4a084d;
}

/* ===== SCROLLBAR ===== */
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: #fdf0fe; }
::-webkit-scrollbar-thumb { background: #a815b0; border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: #8b108e; }
