.perde-stage, .perde-library, .perde-reader-page {
  --perde-ink: #14131a;
  --perde-ink-soft: #1c1a24;
  --perde-parchment: #ede6d6;
  --perde-parchment-dim: #ded5c0;
  --perde-burgundy: #8b2635;
  --perde-burgundy-deep: #5e1a26;
  --perde-gold: #c9a24b;
  --perde-text-dark: #221e19;
  --perde-text-muted: #6b6357;
  --perde-serif: Georgia, "Times New Roman", serif;
  --perde-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  box-sizing: border-box;
}
.perde-stage *, .perde-library *, .perde-reader-page * { box-sizing: border-box; }

/* ---------- Sahne / Hero ---------- */
.perde-stage {
  position: relative;
  min-height: 70vh;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background:
    radial-gradient(ellipse 60% 50% at 50% 30%, rgba(201, 162, 75, 0.10), transparent 70%),
    var(--perde-ink);
  color: var(--perde-parchment);
  padding: 60px 20px;
  border-radius: 6px;
}

.perde-curtain {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 52%;
  background: repeating-linear-gradient(90deg, var(--perde-burgundy-deep) 0px, var(--perde-burgundy) 18px, var(--perde-burgundy-deep) 36px);
  box-shadow: inset -30px 0 60px rgba(0,0,0,0.45);
  z-index: 2;
  animation: perdePartLeft 1.6s cubic-bezier(.77,0,.18,1) 0.3s both;
}
.perde-curtain-left { left: 0; }
.perde-curtain-right { right: 0; animation-name: perdePartRight; }

@keyframes perdePartLeft { 0% { transform: translateX(0); } 100% { transform: translateX(-105%); } }
@keyframes perdePartRight { 0% { transform: translateX(0); } 100% { transform: translateX(105%); } }
@media (prefers-reduced-motion: reduce) { .perde-curtain { animation: none; opacity: 0; } }

.perde-stage-content { position: relative; z-index: 1; max-width: 640px; text-align: center; }
.perde-eyebrow { font-family: var(--perde-sans); letter-spacing: 0.18em; text-transform: uppercase; font-size: 0.72rem; color: var(--perde-gold); margin: 0 0 14px; }
.perde-logo { font-family: var(--perde-serif); font-weight: 700; font-size: clamp(3rem, 9vw, 5rem); letter-spacing: 0.06em; margin: 0 0 18px; color: var(--perde-parchment); text-shadow: 0 0 40px rgba(201,162,75,0.25); }
.perde-tagline { font-family: var(--perde-sans); font-size: 1.05rem; color: #b9b3a6; margin: 0 auto; max-width: 480px; }
.perde-tagline strong { color: var(--perde-parchment); }

/* ---------- Kitaplık / Izgara ---------- */
.perde-library { padding: 50px 0; font-family: var(--perde-sans); }
.perde-library-sub { text-align: center; color: var(--perde-text-muted); margin: 0 0 32px; }
.perde-library-sub strong { color: var(--perde-burgundy); }

.perde-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 26px; }

.perde-card {
  display: block;
  text-decoration: none;
  position: relative;
  background: var(--perde-ink-soft);
  border-radius: 4px;
  overflow: hidden;
  border: 1px solid rgba(201,162,75,0.12);
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}
.perde-card:hover, .perde-card:focus-visible {
  transform: translateY(-6px);
  box-shadow: 0 24px 50px -20px rgba(0,0,0,0.55), 0 0 0 1px rgba(201,162,75,0.35);
  border-color: rgba(201,162,75,0.5);
}

.perde-card-cover { position: relative; aspect-ratio: 2 / 3; background: var(--perde-burgundy-deep); overflow: hidden; }
.perde-card-cover img { width: 100%; height: 100%; object-fit: cover; display: block; filter: saturate(0.92) contrast(1.05); }
.perde-cover-placeholder { width: 100%; height: 100%; background: linear-gradient(160deg, var(--perde-burgundy-deep), var(--perde-ink)); }
.perde-card-cover::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(20,19,26,0.92) 0%, rgba(20,19,26,0.15) 45%, transparent 65%);
  pointer-events: none;
}
.perde-card-genre {
  position: absolute; top: 10px; left: 10px; font-size: 0.62rem; letter-spacing: 0.06em; text-transform: uppercase;
  background: rgba(20,19,26,0.75); color: var(--perde-gold); padding: 4px 9px; border-radius: 2px; border: 1px solid rgba(201,162,75,0.35);
}
.perde-card-time { position: absolute; bottom: 10px; right: 10px; font-size: 0.68rem; color: var(--perde-parchment); background: rgba(20,19,26,0.6); padding: 3px 8px; border-radius: 2px; }

.perde-card-info { padding: 16px; background: var(--perde-ink-soft); }
.perde-card-title { font-family: var(--perde-serif); font-size: 1.08rem; font-weight: 700; margin: 0 0 8px; color: var(--perde-parchment); line-height: 1.3; }
.perde-card-summary { font-size: 0.85rem; color: #b9b3a6; margin: 0; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }

.perde-empty { text-align: center; color: var(--perde-text-muted); padding: 40px 20px; font-style: italic; }

/* ---------- Okuma Sayfası ---------- */
.perde-reader-page { background: var(--perde-parchment); color: var(--perde-text-dark); }
.perde-reader-inner { max-width: 700px; margin: 0 auto; padding: 60px 24px 90px; font-family: var(--perde-sans); }
.perde-reader-genre { text-transform: uppercase; letter-spacing: 0.08em; font-size: 0.72rem; color: var(--perde-burgundy); font-weight: 700; margin: 0 0 10px; }
.perde-reader-title { font-family: var(--perde-serif); font-size: clamp(1.7rem, 4vw, 2.3rem); margin: 0 0 10px; line-height: 1.2; color: var(--perde-text-dark); }
.perde-reader-meta { font-size: 0.8rem; color: var(--perde-text-muted); margin: 0 0 24px; }
.perde-reader-cover { margin: 0 0 30px; border-radius: 6px; overflow: hidden; max-width: 320px; }
.perde-reader-cover img { width: 100%; display: block; }
.perde-reader-body { font-family: var(--perde-serif); font-size: 1.08rem; line-height: 1.85; }
.perde-reader-body p { margin: 0 0 1.2em; }
.perde-reader-back { margin-top: 40px; }
.perde-reader-back a { color: var(--perde-burgundy); text-decoration: none; font-weight: 600; }
.perde-reader-back a:hover { text-decoration: underline; }
