@import "tailwindcss";

@theme {
  --color-paper: #f6f1e3;
  --color-cream: #fbf8ef;
  --color-parchment: #efe5cf;
  --color-ink: #231a0d;
  --color-coffee: #4a3a23;

  --color-maroon-50: #faf1f0;
  --color-maroon-100: #f3dbdb;
  --color-maroon-200: #e6bcbc;
  --color-maroon-300: #d39696;
  --color-maroon-400: #bb6d6d;
  --color-maroon-500: #9f4c4c;
  --color-maroon-600: #833838;
  --color-maroon-700: #6b2d2d;
  --color-maroon-800: #562626;
  --color-maroon-900: #461f1f;
  --color-maroon-950: #261010;

  --color-forest-50: #edf4ef;
  --color-forest-100: #d5e7dc;
  --color-forest-200: #accfb9;
  --color-forest-300: #7db194;
  --color-forest-400: #539173;
  --color-forest-500: #3a775a;
  --color-forest-600: #2b5d44;
  --color-forest-700: #234a37;
  --color-forest-800: #1c3b2d;
  --color-forest-900: #163025;
  --color-forest-950: #0b1b14;

  --color-gold-50: #fbf7e7;
  --color-gold-100: #f5ecc6;
  --color-gold-200: #ebda92;
  --color-gold-300: #dfc458;
  --color-gold-400: #d0ad2d;
  --color-gold-500: #bd951f;
  --color-gold-600: #9a7619;
  --color-gold-700: #7c5e17;
  --color-gold-800: #674d19;
  --color-gold-900: #54401a;
  --color-gold-950: #30230c;

  --font-display: "Fraunces", "Georgia", serif;
  --font-sans: "Inter", ui-sans-serif, system-ui, sans-serif;
  --font-tamil: "Noto Sans Tamil", "Latha", sans-serif;
}

html {
  scroll-behavior: smooth;
}

body {
  background-color: var(--color-paper);
  color: var(--color-ink);
  font-family: var(--font-sans);
  overflow-x: hidden;
}

::selection {
  background: var(--color-gold-300);
  color: var(--color-maroon-950);
}

/* ---------- premium utilities ---------- */

.ornament-rule {
  height: 1px;
  background: linear-gradient(
    to right,
    transparent,
    var(--color-gold-500) 20%,
    var(--color-gold-500) 80%,
    transparent
  );
}

.card-shadow {
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.6) inset,
    0 18px 40px -18px rgba(38, 16, 16, 0.45),
    0 4px 14px -6px rgba(38, 16, 16, 0.25);
}

.text-stroke-gold {
  -webkit-text-stroke: 1px rgba(192, 154, 59, 0.55);
  color: transparent;
}

/* ---------- animations ---------- */

@keyframes kenburns {
  0% {
    transform: scale(1) translate(0, 0);
  }
  100% {
    transform: scale(1.14) translate(-1.6%, -1.8%);
  }
}
.animate-kenburns {
  animation: kenburns 8s ease-out forwards;
}

@keyframes marquee {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}
.animate-marquee {
  animation: marquee 42s linear infinite;
}
.animate-marquee:hover {
  animation-play-state: paused;
}

@keyframes floaty {
  0%,
  100% {
    transform: translate3d(0, 0, 0) scale(1);
  }
  50% {
    transform: translate3d(0, -26px, 0) scale(1.06);
  }
}
.animate-floaty {
  animation: floaty 12s ease-in-out infinite;
}
.animate-floaty-slow {
  animation: floaty 18s ease-in-out infinite;
}

@keyframes spin-slower {
  to {
    transform: rotate(360deg);
  }
}
.animate-spin-slower {
  animation: spin-slower 26s linear infinite;
}

@keyframes shimmer {
  0% {
    background-position: -200% 0;
  }
  100% {
    background-position: 200% 0;
  }
}
.shimmer-text {
  background: linear-gradient(
    100deg,
    var(--color-gold-200) 20%,
    #fff8e0 40%,
    var(--color-gold-200) 60%
  );
  background-size: 200% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  animation: shimmer 5s linear infinite;
}

@keyframes pop-in {
  0% {
    opacity: 0;
    transform: translateY(18px) scale(0.985);
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}
.animate-pop-in {
  animation: pop-in 0.55s cubic-bezier(0.22, 1, 0.36, 1) both;
}

@keyframes stamp-in {
  0% {
    opacity: 0;
    transform: scale(2.1) rotate(-16deg);
  }
  60% {
    opacity: 1;
    transform: scale(0.94) rotate(-8deg);
  }
  100% {
    opacity: 1;
    transform: scale(1) rotate(-10deg);
  }
}
.animate-stamp {
  animation: stamp-in 0.6s cubic-bezier(0.22, 1, 0.36, 1) both;
}

@keyframes seal-draw {
  to {
    stroke-dashoffset: 0;
  }
}
.seal-draw {
  stroke-dasharray: 620;
  stroke-dashoffset: 620;
  animation: seal-draw 2.4s ease forwards 0.2s;
}

@keyframes rise {
  from {
    opacity: 0;
    transform: translateY(26px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.animate-rise {
  animation: rise 0.8s cubic-bezier(0.22, 1, 0.36, 1) both;
}

@keyframes ring-pulse {
  0% {
    transform: scale(1);
    opacity: 0.65;
  }
  70% {
    transform: scale(1.55);
    opacity: 0;
  }
  100% {
    transform: scale(1.55);
    opacity: 0;
  }
}
.animate-ring {
  animation: ring-pulse 2.4s cubic-bezier(0.22, 1, 0.36, 1) infinite;
}

@keyframes progress {
  from {
    width: 0%;
  }
  to {
    width: 100%;
  }
}
.animate-progress {
  animation: progress 5.4s linear forwards;
}

/* ---------- print ---------- */

@media print {
  body {
    background: #ffffff !important;
  }
  body.printing .no-print {
    display: none !important;
  }
  .print-area {
    box-shadow: none !important;
    border: 1px solid #999 !important;
    margin: 0 auto !important;
  }
  @page {
    size: A4;
    margin: 12mm;
  }
}
