@import url('https://fonts.googleapis.com/css2?family=Chakra+Petch:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400&family=JetBrains+Mono:wght@400;500;700&family=Kanit:wght@300;400;500;600;700&family=Orbitron:wght@500;700;900&display=swap');

/* ========================================================
   CYBER / TECH THEME CUSTOM PROPERTIES & BASE STYLES
   Color Palette: Deep Navy (#050814, #0b132b) & Neon Rose/Pink (#f43f5e, #ff2d75)
   ======================================================== */
:root {
  --font-cyber: 'Orbitron', 'Chakra Petch', sans-serif;
  --font-body: 'Kanit', sans-serif;
  --font-mono: 'JetBrains Mono', monospace;

  /* Dark Mode Default (Deep Navy + Neon Rose) */
  --bg-deep: #050814;
  --bg-card: rgba(11, 19, 43, 0.75);
  --bg-card-hover: rgba(15, 27, 60, 0.85);
  --border-neon: rgba(244, 63, 94, 0.35);
  --border-neon-bright: #ff2d75;
  --text-main: #f1f5f9;
  --text-muted: #94a3b8;
  --accent-rose: #f43f5e;
  --accent-pink: #ec4899;
  --accent-cyan: #06b6d4;
  --glow-rose: 0 0 20px rgba(244, 63, 94, 0.45);
  --glow-pink: 0 0 25px rgba(236, 72, 153, 0.5);
  --glow-cyan: 0 0 20px rgba(6, 182, 212, 0.4);
}

/* Light Mode Overrides */
html.light {
  --bg-deep: #f8fafc;
  --bg-card: rgba(255, 255, 255, 0.88);
  --bg-card-hover: rgba(255, 255, 255, 0.98);
  --border-neon: rgba(225, 29, 72, 0.25);
  --border-neon-bright: #e11d48;
  --text-main: #0f172a;
  --text-muted: #475569;
  --accent-rose: #e11d48;
  --accent-pink: #db2777;
  --accent-cyan: #0284c7;
  --glow-rose: 0 4px 15px rgba(225, 29, 72, 0.2);
  --glow-pink: 0 4px 20px rgba(219, 39, 119, 0.2);
  --glow-cyan: 0 4px 15px rgba(2, 132, 199, 0.2);
}

body {
  font-family: var(--font-body);
  background-color: var(--bg-deep);
  color: var(--text-main);
  overflow-x: hidden;
  transition: background-color 0.3s ease, color 0.3s ease;
}

.font-cyber {
  font-family: var(--font-cyber);
}

.font-mono-tech {
  font-family: var(--font-mono);
}

/* Cyber Grid Background */
.cyber-grid-bg {
  background-image: 
    linear-gradient(to right, rgba(244, 63, 94, 0.05) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(244, 63, 94, 0.05) 1px, transparent 1px);
  background-size: 40px 40px;
  background-position: center center;
}

html.light .cyber-grid-bg {
  background-image: 
    linear-gradient(to right, rgba(225, 29, 72, 0.06) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(225, 29, 72, 0.06) 1px, transparent 1px);
}

/* Cyber Scanlines Effect (subtle overlay) */
.cyber-scanlines {
  background: linear-gradient(
    rgba(18, 16, 16, 0) 50%, 
    rgba(0, 0, 0, 0.25) 50%
  ), linear-gradient(
    90deg,
    rgba(255, 0, 0, 0.03),
    rgba(0, 255, 0, 0.01),
    rgba(0, 0, 255, 0.03)
  );
  background-size: 100% 3px, 6px 100%;
  pointer-events: none;
}

/* Glowing Neon Elements */
.glow-rose {
  box-shadow: var(--glow-rose);
}

.glow-pink {
  box-shadow: var(--glow-pink);
}

.glow-text-rose {
  text-shadow: 0 0 12px rgba(244, 63, 94, 0.7), 0 0 25px rgba(244, 63, 94, 0.4);
}

.glow-text-cyan {
  text-shadow: 0 0 12px rgba(6, 182, 212, 0.7), 0 0 25px rgba(6, 182, 212, 0.4);
}

/* Cyber Tech Corner Brackets */
.cyber-corners {
  position: relative;
}

.cyber-corners::before {
  content: '';
  position: absolute;
  top: -2px;
  left: -2px;
  width: 12px;
  height: 12px;
  border-top: 2px solid var(--border-neon-bright);
  border-left: 2px solid var(--border-neon-bright);
  pointer-events: none;
  transition: all 0.3s ease;
}

.cyber-corners::after {
  content: '';
  position: absolute;
  bottom: -2px;
  right: -2px;
  width: 12px;
  height: 12px;
  border-bottom: 2px solid var(--border-neon-bright);
  border-right: 2px solid var(--border-neon-bright);
  pointer-events: none;
  transition: all 0.3s ease;
}

.cyber-corners:hover::before,
.cyber-corners:hover::after {
  width: 20px;
  height: 20px;
  border-color: #ff2d75;
  filter: drop-shadow(0 0 8px rgba(255, 45, 117, 0.8));
}

/* Cyber Cut Button */
.cyber-clip-button {
  clip-path: polygon(12px 0%, 100% 0%, 100% calc(100% - 12px), calc(100% - 12px) 100%, 0% 100%, 0% 12px);
}

.cyber-card {
  background: var(--bg-card);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid var(--border-neon);
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.cyber-card:hover {
  background: var(--bg-card-hover);
  border-color: rgba(244, 63, 94, 0.7);
  box-shadow: 0 8px 30px rgba(244, 63, 94, 0.18);
  transform: translateY(-3px);
}

/* Custom Cyber Scrollbar */
::-webkit-scrollbar {
  width: 8px;
}

::-webkit-scrollbar-track {
  background: #050814;
}

html.light ::-webkit-scrollbar-track {
  background: #f1f5f9;
}

::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, #f43f5e, #ec4899);
  border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
  background: #ff2d75;
  box-shadow: 0 0 10px #ff2d75;
}

/* Animated Pulsing Dot */
@keyframes cyber-pulse {
  0%, 100% {
    transform: scale(1);
    opacity: 1;
    filter: drop-shadow(0 0 6px #f43f5e);
  }
  50% {
    transform: scale(1.3);
    opacity: 0.6;
    filter: drop-shadow(0 0 12px #ff2d75);
  }
}

.animate-cyber-pulse {
  animation: cyber-pulse 2s infinite ease-in-out;
}

/* Neon Shimmering Border Animation */
@keyframes neon-border-shimmer {
  0% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}

.animated-neon-border {
  background-size: 200% 200%;
  animation: neon-border-shimmer 4s ease infinite;
}

/* Floating animation */
@keyframes cyber-float {
  0%, 100% {
    transform: translateY(0px);
  }
  50% {
    transform: translateY(-8px);
  }
}

.animate-cyber-float {
  animation: cyber-float 5s ease-in-out infinite;
}

/* Timeline cyber connector */
.timeline-dot::before {
  content: '';
  position: absolute;
  top: 6px;
  left: 6px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #ff2d75;
  box-shadow: 0 0 8px #ff2d75;
}

/* Modal Backdrop Blur */
.modal-backdrop {
  background: rgba(5, 8, 20, 0.85);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

html.light .modal-backdrop {
  background: rgba(15, 23, 42, 0.55);
}

/* Smooth Navigation Scroll Offset for Sticky Header */
html {
  scroll-behavior: smooth;
  scroll-padding-top: 5rem;
}

/* ========================================================
   ANIMATED CYBER BACKGROUND & CANVAS
   ======================================================== */
#cyber-bg-canvas {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  z-index: 0;
  pointer-events: none;
  opacity: 0.9;
}

html.light #cyber-bg-canvas {
  opacity: 0.45;
}

/* Ambient Cyber Aurora Orbs */
.cyber-aurora-bg {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
}

.cyber-aurora-orb-1 {
  position: absolute;
  top: 5%;
  left: 10%;
  width: 600px;
  height: 600px;
  border-radius: 50%;
  filter: blur(110px);
  background: radial-gradient(circle, rgba(244, 63, 94, 0.16) 0%, transparent 70%);
  animation: aurora-drift-1 18s ease-in-out infinite alternate;
}

.cyber-aurora-orb-2 {
  position: absolute;
  top: 40%;
  right: 5%;
  width: 650px;
  height: 650px;
  border-radius: 50%;
  filter: blur(120px);
  background: radial-gradient(circle, rgba(236, 72, 153, 0.14) 0%, transparent 70%);
  animation: aurora-drift-2 22s ease-in-out infinite alternate;
}

.cyber-aurora-orb-3 {
  position: absolute;
  bottom: 5%;
  left: 25%;
  width: 550px;
  height: 550px;
  border-radius: 50%;
  filter: blur(100px);
  background: radial-gradient(circle, rgba(6, 182, 212, 0.12) 0%, transparent 70%);
  animation: aurora-drift-3 16s ease-in-out infinite alternate;
}

@keyframes aurora-drift-1 {
  0% { transform: translate(-10%, -10%) scale(1); }
  100% { transform: translate(25%, 30%) scale(1.15); }
}

@keyframes aurora-drift-2 {
  0% { transform: translate(15%, 5%) scale(1.1); }
  100% { transform: translate(-20%, 45%) scale(0.9); }
}

@keyframes aurora-drift-3 {
  0% { transform: translate(10%, 30%) scale(0.9); }
  100% { transform: translate(35%, -15%) scale(1.2); }
}

/* ========================================================
   CYBER MUSIC PLAYER STYLES & VISUALIZER
   ======================================================== */
.cyber-music-widget {
  background: rgba(11, 19, 43, 0.92);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid rgba(244, 63, 94, 0.4);
  box-shadow: 0 10px 30px rgba(5, 8, 20, 0.8), 0 0 20px rgba(244, 63, 94, 0.25);
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

html.light .cyber-music-widget {
  background: rgba(255, 255, 255, 0.95);
  border: 1px solid rgba(225, 29, 72, 0.35);
  box-shadow: 0 10px 30px rgba(15, 23, 42, 0.12), 0 4px 15px rgba(225, 29, 72, 0.15);
}

/* Equalizer Bars */
.eq-container {
  display: flex;
  align-items: flex-end;
  gap: 2.5px;
  height: 24px;
}

.eq-bar {
  width: 3px;
  border-radius: 2px;
  background: linear-gradient(180deg, #ff2d75, #f43f5e);
  height: 4px;
  transition: height 0.15s ease;
}

.eq-playing .eq-bar:nth-child(1) { animation: eq-bounce-1 0.7s infinite ease-in-out; }
.eq-playing .eq-bar:nth-child(2) { animation: eq-bounce-2 0.5s infinite ease-in-out; }
.eq-playing .eq-bar:nth-child(3) { animation: eq-bounce-3 0.6s infinite ease-in-out; }
.eq-playing .eq-bar:nth-child(4) { animation: eq-bounce-4 0.75s infinite ease-in-out; }
.eq-playing .eq-bar:nth-child(5) { animation: eq-bounce-5 0.55s infinite ease-in-out; }
.eq-playing .eq-bar:nth-child(6) { animation: eq-bounce-2 0.65s infinite ease-in-out; }

@keyframes eq-bounce-1 { 0%, 100% { height: 4px; } 50% { height: 20px; } }
@keyframes eq-bounce-2 { 0%, 100% { height: 18px; } 50% { height: 5px; } }
@keyframes eq-bounce-3 { 0%, 100% { height: 6px; } 50% { height: 23px; } }
@keyframes eq-bounce-4 { 0%, 100% { height: 21px; } 50% { height: 8px; } }
@keyframes eq-bounce-5 { 0%, 100% { height: 9px; } 50% { height: 19px; } }

/* Vinyl Spinning Effect */
@keyframes vinyl-spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

.animate-vinyl-spin {
  animation: vinyl-spin 4s linear infinite;
}

