@import url('https://fonts.googleapis.com/css2?family=Kanit:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,400&family=Space+Grotesk:wght@400;500;600;700&display=swap');

:root {
  --color-emerald-main: #10b981;
  --color-mint-light: #6ee7b7;
  --color-mint-soft: #d1fae5;
  --color-dark-border: #121212;
  --neo-shadow: 4px 4px 0px 0px #121212;
  --neo-shadow-lg: 6px 6px 0px 0px #121212;
  --neo-shadow-sm: 2px 2px 0px 0px #121212;
  --neo-shadow-hover: 1px 1px 0px 0px #121212;
}

.dark {
  --color-dark-border: #ffffff;
  --neo-shadow: 4px 4px 0px 0px #10b981;
  --neo-shadow-lg: 6px 6px 0px 0px #34d399;
  --neo-shadow-sm: 2px 2px 0px 0px #10b981;
  --neo-shadow-hover: 1px 1px 0px 0px #10b981;
}

body {
  font-family: 'Space Grotesk', 'Kanit', sans-serif;
  background-color: #fdfbf7;
  color: #121212;
  transition: background-color 0.25s ease, color 0.25s ease;
}

.dark body,
body.dark {
  background-color: #0d1117;
  color: #f3f4f6;
}

/* Neo-Brutalism Core Utilities */
.neo-box {
  border: 3px solid #121212;
  box-shadow: var(--neo-shadow);
  transition: transform 0.15s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.15s cubic-bezier(0.4, 0, 0.2, 1);
}

.dark .neo-box {
  border-color: #ffffff;
  box-shadow: 4px 4px 0px 0px #10b981;
}

.neo-box-sm {
  border: 2px solid #121212;
  box-shadow: var(--neo-shadow-sm);
}

.dark .neo-box-sm {
  border-color: #ffffff;
  box-shadow: 2px 2px 0px 0px #10b981;
}

.neo-box-lg {
  border: 3.5px solid #121212;
  box-shadow: var(--neo-shadow-lg);
}

.dark .neo-box-lg {
  border-color: #ffffff;
  box-shadow: 6px 6px 0px 0px #34d399;
}

.neo-btn {
  border: 2.5px solid #121212;
  box-shadow: 3px 3px 0px 0px #121212;
  font-weight: 700;
  transition: all 0.12s ease;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  user-select: none;
}

.neo-btn:hover:not(:disabled) {
  transform: translate(2px, 2px);
  box-shadow: 1px 1px 0px 0px #121212;
}

.neo-btn:active:not(:disabled) {
  transform: translate(3px, 3px);
  box-shadow: 0px 0px 0px 0px #121212;
}

.dark .neo-btn {
  border-color: #ffffff;
  box-shadow: 3px 3px 0px 0px #10b981;
}

.dark .neo-btn:hover:not(:disabled) {
  box-shadow: 1px 1px 0px 0px #10b981;
}

.dark .neo-btn:active:not(:disabled) {
  box-shadow: 0px 0px 0px 0px #10b981;
}

/* Card Hover lift effect */
.neo-card-hover {
  transition: transform 0.2s cubic-bezier(0.2, 0, 0, 1), box-shadow 0.2s cubic-bezier(0.2, 0, 0, 1);
}

.neo-card-hover:hover {
  transform: translate(-3px, -3px);
  box-shadow: 7px 7px 0px 0px #121212;
}

.dark .neo-card-hover:hover {
  box-shadow: 7px 7px 0px 0px #10b981;
}

/* Neo-Brutalist Badges */
.neo-badge {
  border: 2px solid #121212;
  box-shadow: 2px 2px 0px 0px #121212;
  font-weight: 600;
  font-size: 0.78rem;
  letter-spacing: 0.02em;
}

.dark .neo-badge {
  border-color: #ffffff;
  box-shadow: 2px 2px 0px 0px #34d399;
}

/* Custom Scrollbar */
::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}

::-webkit-scrollbar-track {
  background: #fdfbf7;
  border-left: 2px solid #121212;
}

.dark ::-webkit-scrollbar-track {
  background: #1a202c;
  border-left: 2px solid #374151;
}

::-webkit-scrollbar-thumb {
  background: #10b981;
  border: 2px solid #121212;
}

::-webkit-scrollbar-thumb:hover {
  background: #059669;
}

/* Grid Pattern Background */
.bg-grid-pattern {
  background-size: 28px 28px;
  background-image: 
    linear-gradient(to right, rgba(0, 0, 0, 0.07) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(0, 0, 0, 0.07) 1px, transparent 1px);
}

.dark .bg-grid-pattern {
  background-image: 
    linear-gradient(to right, rgba(255, 255, 255, 0.06) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(255, 255, 255, 0.06) 1px, transparent 1px);
}

/* Marquee Animation */
@keyframes marquee {
  0% { transform: translateX(0%); }
  100% { transform: translateX(-50%); }
}

.animate-marquee {
  display: flex;
  width: 200%;
  animation: marquee 22s linear infinite;
}

.animate-marquee:hover {
  animation-play-state: paused;
}

/* Modal Backdrop Animation */
.modal-backdrop {
  background-color: rgba(0, 0, 0, 0.65);
  backdrop-filter: blur(4px);
}
