/* Imports of fonts from Google Fonts */
@import url('https://fonts.googleapis.com/css2?family=Archivo+Black&family=Space+Mono:ital,wght@0,400;0,700;1,400;1,700&family=Permanent+Marker&display=swap');

/* Brutalist Custom Styling & Utilities */

:root {
  --color-primary: #FFFF00; /* Acid Yellow */
  --color-background: #111111; /* Deep Charcoal */
  --color-surface: #222222; /* Notes background */
  --color-text: #EBEBEB; /* Off-White */
  --color-accent: #FF0055; /* Hot Pink */
  --color-cyan: #00FFCC; /* Cyan */
  
  --font-loud: 'Archivo Black', sans-serif;
  --font-tech: 'Space Mono', monospace;
  --font-sharpie: 'Permanent Marker', cursive;
  --shadow-brutal: 8px 8px 0px 0px rgba(0, 0, 0, 1);
  --shadow-brutal-accent: 8px 8px 0px 0px var(--color-accent);
  --shadow-brutal-cyan: 8px 8px 0px 0px var(--color-cyan);
  --shadow-brutal-yellow: 8px 8px 0px 0px var(--color-primary);
}

/* Custom reset and scrollbar */
html {
  scroll-behavior: smooth;
  background-color: var(--color-background);
  color: var(--color-text);
  overflow-x: hidden;
}

body {
  font-family: var(--font-tech);
  background-color: var(--color-background);
  background-image: 
    radial-gradient(circle at 10% 20%, rgba(255, 0, 85, 0.05) 0%, transparent 40%),
    radial-gradient(circle at 90% 80%, rgba(0, 255, 204, 0.05) 0%, transparent 40%),
    radial-gradient(circle at 50% 50%, rgba(255, 255, 0, 0.03) 0%, transparent 50%);
  position: relative;
  min-height: 100vh;
}

/* Scrollbar styling */
::-webkit-scrollbar {
  width: 12px;
}
::-webkit-scrollbar-track {
  background: var(--color-background);
  border-left: 4px solid var(--color-text);
}
::-webkit-scrollbar-thumb {
  background: var(--color-primary);
  border: 3px solid var(--color-background);
  box-shadow: 2px 2px 0px 0px rgba(0,0,0,1);
}

/* Custom Cursors */
.custom-cursor-pointer:hover {
  cursor: pointer;
}

/* Noise overlay */
.noise-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  z-index: 9999;
  pointer-events: none;
  opacity: 0.15;
  background: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");
}

/* Glitch Animation */
@keyframes glitch-flash {
  0% { background-color: var(--color-background); }
  5% { background-color: var(--color-text); }
  10% { background-color: var(--color-background); }
  15% { background-color: var(--color-primary); }
  20% { background-color: var(--color-background); }
  100% { background-color: var(--color-background); }
}

.glitch-bg {
  animation: glitch-flash 1s ease-out infinite;
  animation-iteration-count: 1;
}

/* Wobble Animation on Hover/Tap */
@keyframes note-wobble {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-2deg); }
}

.wobble-hover:hover {
  animation: note-wobble 0.25s linear infinite;
}

.wobble-active {
  animation: note-wobble 0.25s linear infinite;
}

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

.marquee-content {
  display: flex;
  white-space: nowrap;
  animation: marquee 12s linear infinite;
  width: max-content;
}

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

/* Brutalist Shadows */
.brutal-shadow {
  box-shadow: var(--shadow-brutal);
  transition: transform 0.1s ease, box-shadow 0.1s ease;
}

.brutal-shadow:active {
  transform: translate(4px, 4px);
  box-shadow: 4px 4px 0px 0px rgba(0,0,0,1);
}

.brutal-shadow-accent {
  box-shadow: var(--shadow-brutal-accent);
}

.brutal-shadow-cyan {
  box-shadow: var(--shadow-brutal-cyan);
}

.brutal-shadow-yellow {
  box-shadow: var(--shadow-brutal-yellow);
}





/* Hand Drawn Arrows & Doodles */
.doodle-arrow {
  position: absolute;
  width: 48px;
  height: 48px;
  pointer-events: none;
  stroke: var(--color-accent);
  fill: none;
  stroke-width: 3;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* Floating emojis */
.floating-emoji {
  animation: float-emoji 3s ease-in-out infinite alternate;
  display: inline-block;
  user-select: none;
}

@keyframes float-emoji {
  0% { transform: translateY(0px) rotate(0deg); }
  100% { transform: translateY(-10px) rotate(10deg); }
}

/* Dotted background pattern */
.dot-bg {
  background-image: radial-gradient(rgba(235, 235, 235, 0.07) 1.5px, transparent 1.5px);
  background-size: 24px 24px;
}

/* Sticker Pop-in Animation */
@keyframes sticker-pop {
  0% { transform: scale(0); }
  100% { transform: scale(1); }
}

.sticker-pop-in {
  animation: sticker-pop 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards;
}

