:root {
  --theme-font-heading: var(--font-sans);
  --theme-font-body: var(--font-sans);
  --theme-font-mono: var(--font-mono);
  --theme-text-hero: clamp(3.5rem, 7vw, 6rem);
  --theme-text-h1: clamp(2.75rem, 5.5vw, 4.5rem);
  --theme-text-h2: clamp(2.125rem, 4.25vw, 3rem);
  --theme-text-h3: clamp(1.625rem, 3.25vw, 2.25rem);
  --theme-text-h4: clamp(1.375rem, 2.75vw, 1.75rem);
  --theme-text-body: 1.125rem;
  --theme-text-small: 1rem;
  --theme-text-tiny: 0.875rem;
  --theme-weight-light: 300;
  --theme-weight-normal: 400;
  --theme-weight-medium: 600;
  --theme-weight-semibold: 700;
  --theme-weight-bold: 800;
  --theme-weight-extrabold: 900;
  --theme-leading-tight: 1.05;
  --theme-leading-normal: 1.4;
  --theme-leading-relaxed: 1.6;
  --theme-leading-loose: 1.75;
  --theme-tracking-tighter: -0.04em;
  --theme-tracking-tight: -0.025em;
  --theme-tracking-normal: 0;
  --theme-tracking-wide: 0.025em;
  --theme-tracking-wider: 0.075em;
  --theme-primary: #dc2626;
  --theme-primary-hover: #b91c1c;
  --theme-accent: #ea580c;
  --theme-accent-hover: #c2410c;
  --theme-bg: #ffffff;
  --theme-surface: #fafafa;
  --theme-surface-hover: #f5f5f5;
  --theme-surface-elevated: #ffffff;
  --theme-surface-sunken: #f5f5f5;
  --theme-surface-overlay: #ffffff;
  --theme-border: #e5e5e5;
  --theme-border-hover: #d4d4d4;
  --theme-text-primary: #171717;
  --theme-text-secondary: #404040;
  --theme-text-muted: #737373;
  --theme-text-inverse: #ffffff;
  --theme-space-section: 6.5rem;
  --theme-space-container: 3.5rem;
  --theme-space-card: 2.5rem;
  --theme-space-element: 1.75rem;
  --theme-space-tight: 1rem;
  --theme-radius-card: 1.25rem;
  --theme-radius-button: 0.875rem;
  --theme-radius-image: 1rem;
  --theme-radius-input: 0.625rem;
  --theme-shadow-card: 0 4px 6px -1px rgb(0 0 0 / 0.12), 0 2px 4px -2px rgb(0 0 0 / 0.08);
  --theme-shadow-card-hover: 0 20px 25px -5px rgb(0 0 0 / 0.15), 0 8px 10px -6px rgb(0 0 0 / 0.1);
  --theme-shadow-button: 0 2px 4px 0 rgb(0 0 0 / 0.12);
  --theme-shadow-dropdown: 0 10px 15px -3px rgb(0 0 0 / 0.12), 0 4px 6px -4px rgb(0 0 0 / 0.08);
  --theme-transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  --theme-transition-fast: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  --theme-transition-slow: all 0.6s cubic-bezier(0.4, 0, 0.2, 1);
  --theme-container-max: 1440px;
  --theme-grid-gap: 3rem;
  --theme-sidebar-width: 380px;
  --theme-header-height: 5rem;
}

.dark {
  --theme-dark-primary: #f87171;
  --theme-dark-primary-hover: #ef4444;
  --theme-dark-accent: #fb923c;
  --theme-dark-accent-hover: #f97316;
  --theme-dark-bg: #171717;
  --theme-dark-surface: #262626;
  --theme-dark-surface-hover: #404040;
  --theme-dark-surface-elevated: #404040;
  --theme-dark-surface-sunken: #171717;
  --theme-dark-surface-overlay: #262626;
  --theme-dark-border: rgba(255, 255, 255, 0.1);
  --theme-dark-border-hover: rgba(255, 255, 255, 0.15);
  --theme-dark-text-primary: #fafafa;
  --theme-dark-text-secondary: #d4d4d4;
  --theme-dark-text-muted: #a3a3a3;
  --theme-dark-text-inverse: #171717;
}

:root:not(.dark) {
  --theme-current-primary: var(--theme-primary);
  --theme-current-primary-hover: var(--theme-primary-hover);
  --theme-current-accent: var(--theme-accent);
  --theme-current-accent-hover: var(--theme-accent-hover);
  --theme-current-bg: var(--theme-bg);
  --theme-current-surface: var(--theme-surface);
  --theme-current-surface-hover: var(--theme-surface-hover);
  --theme-current-surface-elevated: var(--theme-surface-elevated);
  --theme-current-surface-sunken: var(--theme-surface-sunken);
  --theme-current-surface-overlay: var(--theme-surface-overlay);
  --theme-current-border: var(--theme-border);
  --theme-current-border-hover: var(--theme-border-hover);
  --theme-current-text-primary: var(--theme-text-primary);
  --theme-current-text-secondary: var(--theme-text-secondary);
  --theme-current-text-muted: var(--theme-text-muted);
  --theme-current-text-inverse: var(--theme-text-inverse);
}

.dark {
  --theme-current-primary: var(--theme-dark-primary);
  --theme-current-primary-hover: var(--theme-dark-primary-hover);
  --theme-current-accent: var(--theme-dark-accent);
  --theme-current-accent-hover: var(--theme-dark-accent-hover);
  --theme-current-bg: var(--theme-dark-bg);
  --theme-current-surface: var(--theme-dark-surface);
  --theme-current-surface-hover: var(--theme-dark-surface-hover);
  --theme-current-surface-elevated: var(--theme-dark-surface-elevated);
  --theme-current-surface-sunken: var(--theme-dark-surface-sunken);
  --theme-current-surface-overlay: var(--theme-dark-surface-overlay);
  --theme-current-border: var(--theme-dark-border);
  --theme-current-border-hover: var(--theme-dark-border-hover);
  --theme-current-text-primary: var(--theme-dark-text-primary);
  --theme-current-text-secondary: var(--theme-dark-text-secondary);
  --theme-current-text-muted: var(--theme-dark-text-muted);
  --theme-current-text-inverse: var(--theme-dark-text-inverse);
}


.nav-link { position: relative; }
.nav-link::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: -4px;
  width: 0;
  height: 2px;
  background: var(--theme-current-primary, var(--theme-primary));
  transition: width 0.3s cubic-bezier(0.65, 0, 0.35, 1);
}
.nav-link:hover::after { width: 100%; }

.card-img-wrap { position: relative; overflow: hidden; }
.card-img-wrap::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.25), transparent 60%);
  opacity: 0;
  transition: opacity 0.3s;
  pointer-events: none;
}
.group:hover .card-img-wrap::after { opacity: 1; }

@keyframes ticker-scroll {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
.animate-ticker {
  animation: ticker-scroll 40s linear infinite;
  will-change: transform;
}
.animate-ticker:hover { animation-play-state: paused; }

@media (prefers-reduced-motion: reduce) {
  .animate-ticker { animation: none; }
}

@media print {
  .no-print { display: none !important; }
}
