:root {
  --primary: #c8102e;
  --accent: #f2c94c;
}

html, body {
  height: 100%;
}

body {
  font-family: Roboto, system-ui, -apple-system, 'Segoe UI', 'Noto Sans Kannada', sans-serif;
}

.font-kannada {
  font-family: 'Noto Sans Kannada', sans-serif;
}

/* Small custom utilities */
a {
  color: inherit;
}

.container {
  max-width: 1100px;
}

/* Accessibility tweaks */
button:focus, 
a:focus, 
input:focus, 
textarea:focus {
  outline: 3px solid rgba(200, 16, 46, 0.15);
  outline-offset: 2px;
}

/* Make images responsive by default */
img {
  display: block;
  max-width: 100%;
  height: auto;
}

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

/* Link hover effect */
a:not(.bg-primary):not(.bg-white):not(.bg-gray-100) {
  transition: color 0.2s ease;
}

a:hover {
  color: var(--primary);
}

/* ===============================
   GLOBAL PREMIUM ANIMATIONS
================================ */

/* Smooth entrance animation */
.reveal {
  opacity: 0;
  transform: translateY(60px) scale(0.98);
  transition: all 1s cubic-bezier(.19,1,.22,1);
}

.reveal.active {
  opacity: 1;
  transform: translateY(0) scale(1);
}

/* Fade in images */
img {
  display: block;
  max-width: 100%;
  height: auto;
}

/* Only animate images that JS marks */
img.img-animate {
  opacity: 0;
  transform: scale(1.03);
  transition: opacity 1s ease, transform 1s ease;
}

img.img-animate.loaded {
  opacity: 1;
  transform: scale(1);
}

/* Premium hover effects */
.card-hover {
  transition: all 0.4s cubic-bezier(.19,1,.22,1);
}

.card-hover:hover {
  transform: translateY(-10px) scale(1.02);
  box-shadow: 0 30px 80px rgba(0,0,0,0.25);
}

/* Button glow */
.glow-hover {
  transition: all 0.4s ease;
  position: relative;
}

.glow-hover:hover {
  transform: translateY(-3px) scale(1.05);
  box-shadow: 0 0 25px rgba(242, 201, 76, 0.6);
}

/* Animated gradient */
.animated-gradient {
  background-size: 400% 400%;
  animation: gradientShift 12s ease infinite;
}

@keyframes gradientShift {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

/* ================================
   LIGHTBOX
================================ */
#lightboxOverlay {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: none;
}

#lightboxOverlay.active {
  display: block;
}

.lightbox-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.9);
}

.lightbox-img {
  position: absolute;
  max-width: 90%;
  max-height: 90%;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(0.9);
  transition: transform 0.3s ease;
}

#lightboxOverlay.active .lightbox-img {
  transform: translate(-50%, -50%) scale(1);
}

.lightbox-close,
.lightbox-prev,
.lightbox-next {
  position: absolute;
  color: white;
  font-size: 40px;
  cursor: pointer;
  user-select: none;
  z-index: 10000;
}

.lightbox-close { top: 20px; right: 30px; }
.lightbox-prev { left: 30px; top: 50%; transform: translateY(-50%); }
.lightbox-next { right: 30px; top: 50%; transform: translateY(-50%); }

/* ================================
   NAVBAR PREMIUM UNDERLINE
================================ */
nav a {
  position: relative;
}

nav a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -6px;
  width: 0%;
  height: 3px;
  background: linear-gradient(90deg, #f2c94c, #c8102e);
  transition: width 0.4s ease;
}

nav a:hover::after {
  width: 100%;
}

/* ================================
   BUTTON SHINE SWEEP
================================ */
.shine-btn {
  position: relative;
  overflow: hidden;
}

.shine-btn::before {
  content: "";
  position: absolute;
  top: 0;
  left: -150%;
  width: 50%;
  height: 100%;
  background: linear-gradient(120deg, transparent, rgba(255,255,255,0.6), transparent);
  transform: skewX(-25deg);
}

.shine-btn:hover::before {
  animation: shineSweep 0.8s ease;
}

@keyframes shineSweep {
  from { left: -150%; }
  to { left: 150%; }
}

/* ================================
   FLOATING BACKGROUND ORBS
================================ */
.bg-orbs {
  position: relative;
  overflow: hidden;
}

.bg-orbs::before,
.bg-orbs::after {
  content: "";
  position: absolute;
  width: 400px;
  height: 400px;
  border-radius: 50%;
  filter: blur(120px);
  opacity: 0.25;
  z-index: 0;
  animation: floatOrb 20s linear infinite alternate;
}

.bg-orbs::before {
  background: #f2c94c;
  top: -100px;
  left: -100px;
}

.bg-orbs::after {
  background: #c8102e;
  bottom: -100px;
  right: -100px;
  animation-delay: 5s;
}

@keyframes floatOrb {
  from {
    transform: translate(0,0);
  }
  to {
    transform: translate(120px, 80px);
  }
}

/* Make content stay above orbs */
.bg-orbs > * {
  position: relative;
  z-index: 1;
}

/* ================================
   CARD GLOW BORDER
================================ */
.card-hover {
  position: relative;
}

.card-hover::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 2px;
  background: linear-gradient(135deg, #f2c94c, #c8102e);
  -webkit-mask: 
    linear-gradient(#000 0 0) content-box, 
    linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  opacity: 0;
  transition: opacity 0.4s ease;
  pointer-events: none;
}

.card-hover:hover::after {
  opacity: 1;
}
