/* DIY / punk theme layer — driven by per-theme CSS variables */

html {
  text-rendering: var(--text-rendering, optimizeLegibility);
}

body {
  letter-spacing: var(--body-letter-spacing, normal);
  background-color: var(--bg);
  background-image: var(--bg-texture, none);
  background-size: var(--bg-texture-size, auto);
  background-blend-mode: var(--bg-blend-mode, normal);
  background-attachment: scroll;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 9999;
  opacity: var(--overlay-opacity, 0);
  background: var(--overlay-texture, none);
  background-size: var(--overlay-size, auto);
  mix-blend-mode: var(--overlay-blend, normal);
}

h1, h2, h3, .hero h1, .admin-header h1, .auth-card h1, .panel > h2 {
  font-family: var(--font-display, var(--font-sans));
  text-transform: var(--heading-transform, none);
  letter-spacing: var(--heading-letter-spacing, normal);
  line-height: var(--heading-line-height, 1.15);
}

.site-header {
  border-bottom: var(--border-width, 1px) var(--border-style, solid) var(--border);
  box-shadow: var(--header-shadow, none);
}

.site-footer {
  border-top: var(--border-width, 1px) var(--border-style, solid) var(--border);
}

.form input[type="email"],
.form input[type="tel"],
.form input[type="text"],
.form input[type="password"],
.form input[type="number"],
.form input[type="url"],
.form input[type="file"],
.form select,
.form textarea,
.search-bar input[type="search"] {
  border: var(--border-width, 1px) var(--border-style, solid) var(--border);
  box-shadow: var(--input-shadow, none);
}

.nav-dropdown-menu {
  border: var(--border-width, 1px) var(--border-style, solid) var(--border);
}

.admin-table {
  border: var(--border-width, 1px) var(--border-style, solid) var(--border);
}

.theme-card-body {
  border: var(--border-width, 1px) var(--border-style, solid) var(--border);
}

.status-badge {
  text-transform: var(--badge-transform, uppercase);
  letter-spacing: 0.04em;
  font-family: var(--font-mono, var(--font-sans));
  font-size: 0.72rem;
}

[data-theme] .book-card:nth-child(3n+2) {
  transform: var(--card-tilt-a, none);
}

[data-theme] .book-card:nth-child(3n) {
  transform: var(--card-tilt-b, none);
}

[data-theme] .book-card:hover {
  transform: var(--card-hover-transform, translateY(-2px));
}
