/**
 * Axioms of Strategy Games - Hub Page
 * 
 * Design concept: Formal, structured, mathematical
 * - Part 1 influence: Theme colors and nested cards
 * - Part 2 influence: Vertical spine with connectors
 * - Part 3 influence: Document-style clarity
 */

/* ============================================================================
 * RESET & BASE
 * ============================================================================ */

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

html {
  scroll-behavior: smooth;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body {
  font-family: var(--font-body);
  font-size: var(--font-size-base);
  line-height: var(--line-height-normal);
  background: var(--color-bg);
  color: var(--color-text);
}


/* ============================================================================
 * SERIES HEADER
 * ============================================================================ */

.installation-header {
  text-align: center;
  padding: var(--spacing-8) 0 var(--spacing-6);
}

.installation-title {
  font-family: var(--font-display);
  font-size: 2.5rem;
  font-weight: 700;
  color: var(--color-text);
  letter-spacing: -0.03em;
  line-height: 1.1;
  margin-bottom: var(--spacing-3);
}

.installation-subtitle {
  font-family: var(--font-display);
  font-size: var(--font-size-16);
  font-style: italic;
  font-weight: 400;
  color: var(--color-text-2);
  line-height: 1.5;
}

@media (max-width: 768px) {
  .installation-title {
    font-size: 2.25rem;
  }
  
  .installation-subtitle {
    font-size: var(--font-size-16);
  }
}

/* ============================================================================
 * SERIES PREMISE - Definition-style intro
 * ============================================================================ */

.series-premise {
  max-width: 700px;
  margin: 0 auto var(--spacing-8);
  padding: var(--spacing-6);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-left: 3px solid var(--color-primary);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
}

.series-premise p {
  font-size: var(--font-size-16);
  line-height: 1.7;
  color: var(--color-text-2);
  margin: 0;
}

/* ============================================================================
 * SERIES STRUCTURE - Grid layout
 * ============================================================================ */

.series-structure {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--spacing-8);
  margin-bottom: var(--spacing-8);
}

/* ============================================================================
 * SERIES CARD - Vertical card layout (matching Discrete Worlds structure)
 * ============================================================================ */

.series-card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: var(--spacing-4);
  padding: var(--spacing-6);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  text-decoration: none;
  transition: border-color var(--duration-slow) var(--ease-out), transform var(--duration-slow) var(--ease-out), box-shadow var(--duration-slow) var(--ease-out);
  cursor: pointer;
}

.series-card:hover {
  border-color: var(--color-primary);
  transform: translateY(-2px);
  box-shadow: var(--shadow-lg);
}

/* Theme-specific hover effects */
.series-card--axioms:hover {
  border-color: var(--color-primary);
  box-shadow: 0 4px 12px rgba(245, 158, 11, 0.2);
}

.series-card--derived:hover {
  border-color: var(--color-accent-purple);
  box-shadow: 0 4px 12px rgba(var(--color-accent-purple-rgb), 0.2);
}

.series-card--studies:hover {
  border-color: #64748B;
  box-shadow: 0 4px 12px rgba(100, 116, 139, 0.2);
}

/* Card Header - Number + Title in horizontal row */
.series-card__header {
  display: flex;
  align-items: center;
  gap: var(--spacing-4);
}

.series-card__number {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  font-family: var(--font-display);
  font-size: var(--font-size-24);
  font-weight: 600;
  border-radius: var(--radius-md);
  flex-shrink: 0;
}

/* Theme-specific number styling */
.series-card--axioms .series-card__number {
  color: var(--color-primary);
  background: rgba(245, 158, 11, 0.1);
  border: 1px solid rgba(245, 158, 11, 0.3);
}

.series-card--derived .series-card__number {
  color: var(--color-accent-purple);
  background: rgba(var(--color-accent-purple-rgb), 0.1);
  border: 1px solid rgba(var(--color-accent-purple-rgb), 0.3);
}

.series-card--studies .series-card__number {
  color: #64748B;
  background: rgba(100, 116, 139, 0.1);
  border: 1px solid rgba(100, 116, 139, 0.3);
}

.series-card__title {
  font-family: var(--font-display);
  font-size: var(--font-size-20);
  font-weight: 600;
  color: var(--color-text);
  letter-spacing: -0.025em;
  line-height: 1.3;
  margin: 0;
}

/* Card Description */
.series-card__desc {
  font-size: var(--font-size-15);
  line-height: 1.6;
  color: var(--color-text-2);
  margin: 0;
}

/* Theme Badges (Part 1 inspired) */
.series-card__themes {
  display: flex;
  gap: var(--spacing-2);
  flex-wrap: wrap;
}

.theme-badge {
  font-size: var(--font-size-12);
  font-weight: 500;
  padding: 4px var(--spacing-2);
  border: 1px solid;
  border-radius: var(--radius-sm);
  transition: opacity var(--duration-slow) var(--ease-out);
}

/* Part 1 theme colors (from axiom categories) */
.theme-badge--termination {
  color: #EF4444;
  background: rgba(239, 68, 68, 0.1);
  border-color: rgba(239, 68, 68, 0.2);
}

.theme-badge--information {
  color: #3B82F6;
  background: rgba(59, 130, 246, 0.1);
  border-color: rgba(59, 130, 246, 0.2);
}

.theme-badge--decision {
  color: #10B981;
  background: rgba(16, 185, 129, 0.1);
  border-color: rgba(16, 185, 129, 0.2);
}

.theme-badge--balance {
  color: #F59E0B;
  background: rgba(245, 158, 11, 0.1);
  border-color: rgba(245, 158, 11, 0.2);
}

.theme-badge--progression {
  color: #EC4899;
  background: rgba(236, 72, 153, 0.1);
  border-color: rgba(236, 72, 153, 0.2);
}

.theme-badge--coherence {
  color: var(--color-accent-purple);
  background: rgba(var(--color-accent-purple-rgb), 0.1);
  border-color: rgba(var(--color-accent-purple-rgb), 0.2);
}

/* Part 2 purple theme */
.theme-badge--purple {
  color: var(--color-accent-purple);
  background: rgba(var(--color-accent-purple-rgb), 0.1);
  border-color: rgba(var(--color-accent-purple-rgb), 0.2);
}

/* Part 3 neutral theme */
.theme-badge--neutral {
  color: var(--color-text-2);
  background: rgba(100, 116, 139, 0.1);
  border-color: var(--color-border);
}

/* Arrow indicator */
.series-card__arrow {
  position: absolute;
  top: var(--spacing-6);
  right: var(--spacing-6);
  width: 24px;
  height: 24px;
  color: var(--color-text-3);
  opacity: 0.5;
  transition: opacity var(--duration-slow) var(--ease-out), transform var(--duration-slow) var(--ease-out), color var(--duration-slow) var(--ease-out);
}

.series-card:hover .series-card__arrow {
  opacity: 1;
  transform: translateX(4px);
}

.series-card--axioms:hover .series-card__arrow {
  color: var(--color-primary);
}

.series-card--derived:hover .series-card__arrow {
  color: var(--color-accent-purple);
}

.series-card--studies:hover .series-card__arrow {
  color: #64748B;
}

/* ============================================================================
 * ENTRANCE ANIMATIONS
 * ============================================================================ */

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(16px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.series-card {
  opacity: 0;
  animation: fadeInUp var(--duration-slow) var(--ease-out) forwards;
}

.series-card:nth-child(1) { animation-delay: 100ms; }
.series-card:nth-child(2) { animation-delay: 200ms; }
.series-card:nth-child(3) { animation-delay: 300ms; }
