body {
  background: #f6f6f8;
  color: #111318;
  font-family: "Work Sans", sans-serif;
}

.material-symbols-outlined {
  font-variation-settings: 'FILL' 0, 'wght' 300, 'GRAD' 0, 'opsz' 24;
}

.single-article-content pre {
  white-space: pre-wrap;
}

.single-article-content code {
  font-size: 0.9em;
}

.single-article-content blockquote.wp-block-quote {
  margin: 2.5rem 0;
  padding: 2rem;
  border-left: 4px solid #477eeb;
  border-radius: 0 14px 14px 0;
  background: #f0f7ff;
  color: #477eeb;
  font-style: italic;
  font-family: "Noto Serif", serif;
  font-size: 1.05rem;
  line-height: 1.7;
}

.single-article-content blockquote.wp-block-quote p {
  margin: 0;
}

.single-article-content figure.wp-block-image.size-full {
  position: relative;
  margin: 2.5rem 0;
  overflow: hidden;
  border-radius: 20px;
  background: #0f172a;
  box-shadow: 0 20px 45px rgba(15, 23, 42, 0.18);
  animation: single-image-container-reveal 900ms cubic-bezier(0.2, 0.8, 0.2, 1) both;
}

.single-article-content figure.wp-block-image.size-full img {
  display: block;
  width: 100%;
  height: auto;
  transform-origin: center;
  animation: single-image-kenburns 12s ease-in-out infinite;
}

.single-article-content figure.wp-block-image.size-full .wp-element-caption {
  position: absolute;
  left: 24px;
  bottom: 24px;
  max-width: calc(100% - 48px);
  margin: 0;
  padding: 10px 16px;
  border-radius: 999px;
  background: rgba(15, 23, 42, 0.75);
  color: #f8fafc;
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  backdrop-filter: blur(6px);
  text-shadow: 0 6px 20px rgba(15, 23, 42, 0.4);
  z-index: 2;
}

@keyframes single-image-container-reveal {
  from {
    opacity: 0;
    transform: translateY(18px) scale(0.98);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@keyframes single-image-kenburns {
  0%,
  100% {
    transform: scale(1.02);
  }
  50% {
    transform: scale(1.08);
  }
}

@media (max-width: 640px) {
  .single-article-content figure.wp-block-image.size-full {
    border-radius: 16px;
  }

  .single-article-content figure.wp-block-image.size-full .wp-element-caption {
    left: 16px;
    bottom: 16px;
    max-width: calc(100% - 32px);
    padding: 8px 12px;
    font-size: 0.75rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .single-article-content figure.wp-block-image.size-full,
  .single-article-content figure.wp-block-image.size-full img {
    animation: none;
  }
}

@media (max-width: 768px) {
  .site-nav {
    backdrop-filter: blur(12px);
  }
}
