@font-face {
  font-family: 'Clash Grotesk Variable';
  src: url('./ClashGrotesk_Variable.ttf') format('truetype');
  font-weight: 200 900;
  font-display: swap;
  font-style: normal;
}

:root {
  --bg-color: #ffffff;
  --text-color: #111111;
  --zinc-100: #f4f4f5;
  --zinc-200: #e4e4e7;
  --zinc-300: #d4d4d8;
  --zinc-400: #a1a1aa;
  --zinc-500: #71717a;
  --zinc-900: #18181b;
  --zinc-950: #0a0a0a;
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  font-family: 'Clash Grotesk Variable', sans-serif;
}

body {
  background-color: var(--bg-color);
  color: var(--text-color);
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}

@media (min-width: 768px) {
  body, a, button, select, input, [role="button"] {
    cursor: none !important;
  }
}

/* Typography styles */
h1, h2, h3, h4, h5, h6 {
  text-transform: uppercase;
  font-weight: 900;
  line-height: 0.9;
  letter-spacing: -0.05em;
}

.text-white { color: #ffffff; }
.text-black { color: #000000; }
.text-zinc-300 { color: var(--zinc-300); }
.text-zinc-400 { color: var(--zinc-400); }
.text-zinc-500 { color: var(--zinc-500); }
.text-zinc-900 { color: var(--zinc-900); }

/* Basic Utility Classes similar to Tailwind */
.fixed { position: fixed; }
.absolute { position: absolute; }
.relative { position: relative; }
.inset-0 { top: 0; right: 0; bottom: 0; left: 0; }
.z-0 { z-index: 0; }
.z-10 { z-index: 10; }
.z-20 { z-index: 20; }
.z-30 { z-index: 30; }
.z-50 { z-index: 50; }
.z-100 { z-index: 100; }

.flex { display: flex; }
.flex-col { flex-direction: column; }
.items-center { align-items: center; }
.justify-center { justify-content: center; }
.justify-between { justify-content: space-between; }
.justify-end { justify-content: flex-end; }
.justify-start { justify-content: flex-start; }
.gap-2 { gap: 0.5rem; }
.gap-4 { gap: 1rem; }
.gap-6 { gap: 1.5rem; }
.gap-8 { gap: 2rem; }

.w-full { width: 100%; }
.h-full { height: 100%; }
.w-screen { width: 100vw; }
.h-screen { height: 100vh; }
.min-h-screen { min-height: 100vh; }

.bg-white { background-color: #ffffff; }
.bg-black { background-color: #000000; }
.bg-zinc-950 { background-color: var(--zinc-950); }
.bg-[#111] { background-color: #111111; }

.uppercase { text-transform: uppercase; }
.tracking-widest { letter-spacing: 0.1em; }
.tracking-tighter { letter-spacing: -0.05em; }
.text-sm { font-size: 0.875rem; }
.text-lg { font-size: 1.125rem; }
.text-xl { font-size: 1.25rem; }
.text-2xl { font-size: 1.5rem; }
.text-4xl { font-size: 2.25rem; }
.text-6xl { font-size: 3.75rem; }
.font-black { font-weight: 900; }
.font-bold { font-weight: 700; }
.font-semibold { font-weight: 600; }
.font-medium { font-weight: 500; }
.font-mono { font-family: monospace; }

.text-center { text-align: center; }
.text-right { text-align: right; }
.text-left { text-align: left; }

.px-4 { padding-left: 1rem; padding-right: 1rem; }
.px-8 { padding-left: 2rem; padding-right: 2rem; }
.py-4 { padding-top: 1rem; padding-bottom: 1rem; }
.py-8 { padding-top: 2rem; padding-bottom: 2rem; }

.mt-2 { margin-top: 0.5rem; }
.mt-4 { margin-top: 1rem; }
.mt-10 { margin-top: 2.5rem; }
.mb-2 { margin-bottom: 0.5rem; }
.mb-4 { margin-bottom: 1rem; }
.mb-6 { margin-bottom: 1.5rem; }

.mx-auto { margin-left: auto; margin-right: auto; }
.max-w-md { max-width: 28rem; }
.max-w-5xl { max-width: 64rem; }
.max-w-6xl { max-width: 72rem; }

/* Grid Specifics */
.grid { display: grid; }
.grid-cols-12 { grid-template-columns: repeat(12, minmax(0, 1fr)); }
.col-span-4 { grid-column: span 4 / span 4; }
.col-span-8 { grid-column: span 8 / span 8; }

.border-t { border-top-width: 1px; border-top-style: solid; border-color: var(--zinc-200); }
.border-b { border-bottom-width: 1px; border-bottom-style: solid; border-color: var(--zinc-200); }

/* Transitions & Opacity */
.opacity-0 { opacity: 0; }
.opacity-80 { opacity: 0.8; }
.opacity-100 { opacity: 1; }
.transition-opacity { transition-property: opacity; }
.transition-all { transition-property: all; }
.duration-300 { transition-duration: 300ms; }
.duration-500 { transition-duration: 500ms; }
.duration-800 { transition-duration: 800ms; }

/* Filter & Object Cover */
.object-cover { object-fit: cover; }
.grayscale { filter: grayscale(100%); }
.grayscale-0 { filter: grayscale(0); }
.brightness-90 { filter: brightness(90%); }
.brightness-100 { filter: brightness(100%); }

/* Interactive Hover States */
.group:hover .group-hover\:grayscale-0 { filter: grayscale(0); }
.group:hover .group-hover\:brightness-100 { filter: brightness(100%); }
a:hover.hover\:opacity-70 { opacity: 0.7; }
a:hover.hover\:text-black { color: #000; }
a:hover.hover\:bg-white { background-color: #fff; }

/* Custom Animations */
@keyframes pulse-glow {
  0%, 100% { opacity: 1; box-shadow: 0 0 12px rgba(220, 38, 38, 0.8); }
  50% { opacity: 0.5; box-shadow: 0 0 4px rgba(220, 38, 38, 0.4); }
}

.animate-pulse-glow {
  animation: pulse-glow 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

@keyframes fade-up {
  0% { opacity: 0; transform: translateY(20px); }
  100% { opacity: 0.8; transform: translateY(0); }
}

.animate-fade-up {
  animation: fade-up 1s ease-out forwards;
}

/* Specific Section Adjustments */
.hero-image-wrap {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.hero-text-wrap {
  position: absolute;
  inset: 0;
  z-index: 10;
  pointer-events: none;
  display: flex;
  flex-direction: column;
}

.volume-slider {
  -webkit-appearance: none;
  appearance: none;
  width: 100%;
  height: 8px;
  border-radius: 9999px;
  background: linear-gradient(to right, #18181b 30%, #e4e4e7 30%);
  outline: none;
}

.volume-slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 20px;
  height: 20px;
  border-radius: 4px;
  border: 2px solid #18181b;
  background: #ffffff;
  cursor: pointer;
  box-shadow: 0 0 2px rgba(0,0,0,0.1);
  transition: box-shadow 0.2s, outline 0.2s;
}

.volume-slider:focus-visible::-webkit-slider-thumb {
  outline: 3px solid rgba(24, 24, 27, 0.4);
}

.volume-slider::-moz-range-thumb {
  width: 20px;
  height: 20px;
  border-radius: 4px;
  border: 2px solid #18181b;
  background: #ffffff;
  cursor: pointer;
  box-shadow: 0 0 2px rgba(0,0,0,0.1);
  transition: box-shadow 0.2s, outline 0.2s;
}

.volume-slider:focus-visible::-moz-range-thumb {
  outline: 3px solid rgba(24, 24, 27, 0.4);
}

/* Portfolio Sticky Setup */
.portfolio-container {
  height: 100vh;
  z-index: 10;
  overflow: hidden;
  position: relative;
}

.portfolio-list {
  width: 50%;
  height: 100%;
  background: #fff;
  z-index: 2;
  position: absolute;
  top: 0;
  left: 0;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.portfolio-cards {
  width: 50%;
  position: absolute;
  top: 0;
  right: 0;
}

.project-card {
  height: 100vh;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
}

/* Marquee */
.marquee-track {
  overflow: hidden;
  display: flex;
}
.marquee-content {
  display: flex;
  animation: marquee 20s linear infinite;
}
@keyframes marquee {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* Responsive Overrides */
@media (min-width: 768px) {
  .md\:flex-row { flex-direction: row; }
  .md\:w-1\/2 { width: 50%; }
  .md\:h-screen { height: 100vh; }
  .md\:pt-\[35vh\] { padding-top: 35vh; }
  .md\:px-16 { padding-left: 4rem; padding-right: 4rem; }
  .md\:mt-\[3em\] { margin-top: 3em; }
  .md\:ml-10 { margin-left: 2.5rem; }
  .md\:text-\[7vw\] { font-size: 7vw; }
  .md\:text-\[2\.3vw\] { font-size: 2.3vw; }
  .md\:block { display: block; }
  .md\:hidden { display: none; }
}
