@import url('https://fonts.loli.net/css2?family=Noto+Sans+SC:wght@100&display=swap');

/*
 * Global Styles
 * Defines base typography, layout helpers, and component-specific styles.
 * Designed to work alongside Tailwind CSS.
 */

/* --- Base & Typography --- */
html {
  scroll-behavior: smooth;
}

body {
  font-family: 'Noto Sans SC', 'PingFang SC', 'Microsoft YaHei', sans-serif;
  font-weight: 100; /* For the hairline/thin font effect */
  background-color: #fdfdfd;
  color: #1a1a1a;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}

/* --- Reusable Components & Custom Styles --- */

/* Hero Text: Vertical orientation */
.hero-text {
  writing-mode: vertical-rl;
  text-orientation: mixed;
  letter-spacing: 0.5em;
}

/* Navigation: Subtle underline on hover */
.main-nav-link {
  transition: border-color 0.3s ease-in-out;
  border-bottom: 1px solid transparent;
}

.main-nav-link:hover {
  border-bottom-color: #374151; /* A subtle dark gray underline */
}

/* Horizontal Gallery: For index page's third screen */
.horizontal-gallery {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
}

.horizontal-gallery::-webkit-scrollbar {
  display: none; /* Hides scrollbar for a cleaner aesthetic */
}

.horizontal-gallery > * {
  flex-shrink: 0;
  scroll-snap-align: start;
}

/* Series Page: Caption style */
.series-caption {
  font-size: 0.75rem;
  color: #9ca3af;
  letter-spacing: 0.05em;
}

/* Catalog Page: Grid item hover effect */
.catalog-item {
  position: relative;
  overflow: hidden;
  background: #f0f0f0;
}

.catalog-item > img {
  transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.catalog-item:hover > img {
  transform: scale(1.05);
}

.catalog-item::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(255, 255, 255, 0.05); /* 5% white overlay */
  opacity: 0;
  transition: opacity 0.4s ease-in-out;
  pointer-events: none;
}

.catalog-item:hover::after {
  opacity: 1;
}

/* Footer: Consistent style across all pages */
.site-footer {
  background-color: #374151; /* gray-700 */
  color: #ffffff;
  font-weight: 100;
  letter-spacing: 0.1em;
}

/* Image Loading: Simple fade-in effect */
img[data-src] {
    opacity: 0;
    transition: opacity 0.8s ease-in-out;
}

img.loaded {
    opacity: 1;
}