:root {
  --color-seed: #CB4423;
  --color-canvas: #FAECE9;
  --color-card: #FCF4F2;
  --color-accentNonContentBaseline: #D77057;
  --color-accentContentBaseline: #FFFFFF;
  --color-accentNonContentStrong: #A15441;
  --color-accentNonContentSubdued: rgba(161, 84, 65, 0.723);
  --color-accentNonContentSoft: rgba(161, 84, 65, 0.080);
  --color-accentContentStrong: #C9C9C9;
  --color-accentContentSubdued: rgba(201, 201, 201, -8.999);
  --color-neutralContentStrong: #242424;
  --color-neutralContentSubdued: rgba(36, 36, 36, 0.633);
  --color-neutralNonContentStrong: #0e0e0e;
  --color-neutralNonContentSubdued: rgba(14, 14, 14, 0.446);
  --color-neutralNonContentSoft: rgba(14, 14, 14, 0.050);
}

[data-theme="dark"] {
  --color-seed: #AF553F;
  --color-canvas: #242424;
  --color-card: #282828;
  --color-accentNonContentBaseline: #AF553F;
  --color-accentContentBaseline: #C17C6B;
  --color-accentNonContentStrong: #C58474;
  --color-accentNonContentSubdued: rgba(197, 132, 116, 0.676);
  --color-accentNonContentSoft: rgba(197, 132, 116, 0.071);
  --color-accentContentStrong: #D9AEA3;
  --color-accentContentSubdued: rgba(217, 174, 163, 0.712);
  --color-neutralContentStrong: #E3DCDA;
  --color-neutralContentSubdued: rgba(227, 220, 218, 0.563);
  --color-neutralNonContentStrong: #b8b2b0;
  --color-neutralNonContentSubdued: rgba(184, 178, 176, 0.522);
  --color-neutralNonContentSoft: rgba(184, 178, 176, 0.054);
}

/* Auto dark mode detection */
@media (prefers-color-scheme: dark) {
  :root {
    --color-seed: #AF553F;
    --color-canvas: #242424;
    --color-card: #282828;
    --color-accentNonContentBaseline: #AF553F;
    --color-accentContentBaseline: #C17C6B;
    --color-accentNonContentStrong: #C58474;
    --color-accentNonContentSubdued: rgba(197, 132, 116, 0.676);
    --color-accentNonContentSoft: rgba(197, 132, 116, 0.071);
    --color-accentContentStrong: #D9AEA3;
    --color-accentContentSubdued: rgba(217, 174, 163, 0.712);
    --color-neutralContentStrong: #E3DCDA;
    --color-neutralContentSubdued: rgba(227, 220, 218, 0.563);
    --color-neutralNonContentStrong: #b8b2b0;
    --color-neutralNonContentSubdued: rgba(184, 178, 176, 0.522);
    --color-neutralNonContentSoft: rgba(184, 178, 176, 0.054);
  }
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  padding: 2rem;
  min-height: 100vh;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-size: 1rem;
  line-height: 1.6;
  color: var(--color-neutralContentStrong);
  background-color: var(--color-canvas);
  transition: background-color 0.3s ease, color 0.3s ease;
}

a {
  color: var(--color-accentNonContentBaseline);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border-color 0.2s ease;
}

a:hover {
  border-bottom-color: var(--color-accentNonContentBaseline);
}

h1 {
  max-width: 40rem;
  margin: 2rem auto 3rem;
  font-size: 2.5rem;
  font-weight: 700;
  line-height: 1.2;
  color: var(--color-neutralContentStrong);
  text-align: center;
  text-wrap: balance;
}

code {
  padding: 0.125rem 0.375rem;
  font-family: "SF Mono", "Monaco", "Inconsolata", "Fira Code", monospace;
  font-size: 0.875em;
  color: var(--color-accentNonContentStrong);
  background: var(--color-accentNonContentSoft);
  border-radius: 4px;
  white-space: nowrap;
}

p {
  margin: 0.75rem 0;
}

p:last-child {
  margin-bottom: 0;
}

.note {
  max-width: 40rem;
  margin: 2rem auto 3rem;
  padding: 1rem;
  color: var(--color-neutralContentSubdued);
  text-align: center;
  text-wrap: balance;
  font-size: 0.875rem;
  background: var(--color-neutralNonContentSoft);
  border-radius: 8px;
}

/* Questions container */
#questions-container {
  max-width: 50rem;
  margin: 0 auto;
}

details {
  position: relative;
  margin: 1rem auto;
  background: var(--color-card);
  border: 1px solid var(--color-neutralNonContentSoft);
  border-radius: 12px;
  overflow: hidden;
  transition: all 0.3s ease;
}

details:hover {
  border-color: var(--color-accentNonContentSubdued);
  box-shadow: 0 4px 12px var(--color-neutralNonContentSoft);
}

details[open] {
  border-color: var(--color-accentNonContentBaseline);
  box-shadow: 0 8px 24px var(--color-neutralNonContentSoft);
}

summary {
  padding: 1.25rem 1.5rem 1.25rem 3.5rem;
  position: relative;
  font-weight: 600;
  font-size: 1.125rem;
  color: var(--color-neutralContentStrong);
  cursor: pointer;
  user-select: none;
  list-style: none;
  transition: color 0.2s ease;
}

summary::-webkit-details-marker {
  display: none;
}

summary:hover {
  color: var(--color-accentNonContentBaseline);
}

/* Question number/arrow indicator */
summary::before {
  content: '›';
  position: absolute;
  left: 1.25rem;
  top: 50%;
  transform: translateY(-50%);
  font-size: 1.5rem;
  color: var(--color-accentNonContentBaseline);
  transition: transform 0.3s ease;
}

details[open] summary::before {
  transform: translateY(-50%) rotate(90deg);
}

/* Answer content */
details > *:not(summary) {
  padding: 0 1.5rem 1.5rem 3.5rem;
  animation: fadeIn 0.3s ease;
}

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(-10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Enhanced code blocks inside answers */
details code {
  display: inline-block;
  margin: 0.125rem 0;
}

/* List styling inside answers */
details ul,
details ol {
  margin: 0.75rem 0;
  padding-left: 1.5rem;
}

details li {
  margin: 0.375rem 0;
  color: var(--color-neutralContentSubdued);
}

/* Responsive adjustments */
@media (max-width: 640px) {
  body {
    padding: 1rem;
  }
  
  h1 {
    font-size: 2rem;
    margin: 1.5rem auto 2rem;
  }
  
  summary {
    padding: 1rem 1rem 1rem 3rem;
    font-size: 1rem;
  }
  
  summary::before {
    left: 1rem;
  }
  
  details > *:not(summary) {
    padding: 0 1rem 1rem 3rem;
  }
}

/* Print styles */
@media print {
  details {
    border: 1px solid #ddd;
    page-break-inside: avoid;
  }
  
  details[open] {
    box-shadow: none;
  }
}