/* PLIEGO — ambientes del lector. Cada tema define fondo, luz, interfaz y acento.
 * Las partículas y ornamentos se configuran en inc/pl_themes.php → assets/js/fx.js */

/* ---------------------------------------------------- clásicos */
[data-theme="estudio"] {
  --rd-bg: radial-gradient(ellipse 80% 70% at 50% 38%, #2a3358 0%, #161c33 55%, #090c17 100%);
  --rd-light: radial-gradient(ellipse 45% 55% at 50% 30%, rgba(255, 226, 160, .16), rgba(0,0,0,0) 70%);
  --rd-accent: #f2c14e; --rd-accent-fg: #1d1606;
  --rd-ui: rgba(14, 18, 36, .62);
}
[data-theme="biblioteca"] {
  --rd-bg:
    radial-gradient(ellipse 120% 60% at 50% 120%, rgba(0,0,0,.55), rgba(0,0,0,0) 60%),
    repeating-linear-gradient(91deg, rgba(0,0,0,.07) 0 2px, rgba(0,0,0,0) 2px 11px, rgba(255,210,150,.035) 11px 13px, rgba(0,0,0,0) 13px 23px),
    linear-gradient(180deg, #2a180c 0%, #4f321c 45%, #6a4527 70%, #3b2413 100%);
  --rd-light: radial-gradient(ellipse 50% 60% at 22% 8%, rgba(255, 196, 110, .38), rgba(0,0,0,0) 65%);
  --rd-accent: #e8b86b; --rd-accent-fg: #26170a;
  --rd-ui: rgba(36, 22, 12, .66); --rd-ui-line: rgba(255, 220, 170, .16);
  --rd-paper: #fffdf7; --rd-verso: #f6efdf;
}
[data-theme="pitlane"] {
  --rd-bg:
    radial-gradient(ellipse 75% 70% at 50% 45%, rgba(0,0,0,0), rgba(0,0,0,.7) 100%),
    repeating-linear-gradient(45deg, #17171c 0 3px, #202027 3px 6px),
    repeating-linear-gradient(-45deg, rgba(255,255,255,.025) 0 3px, rgba(0,0,0,0) 3px 6px),
    #121216;
  --rd-light: radial-gradient(ellipse 60% 40% at 50% 100%, rgba(225, 6, 0, .28), rgba(0,0,0,0) 70%);
  --rd-accent: #e10600; --rd-accent-fg: #ffffff;
  --rd-ui: rgba(10, 10, 12, .72);
}
[data-theme="blueprint"] {
  --rd-bg:
    linear-gradient(rgba(127, 215, 255, .16) 1px, transparent 1px) 0 0 / 120px 120px,
    linear-gradient(90deg, rgba(127, 215, 255, .16) 1px, transparent 1px) 0 0 / 120px 120px,
    linear-gradient(rgba(127, 215, 255, .07) 1px, transparent 1px) 0 0 / 24px 24px,
    linear-gradient(90deg, rgba(127, 215, 255, .07) 1px, transparent 1px) 0 0 / 24px 24px,
    radial-gradient(ellipse at 50% 40%, #0f3d6b, #082440 75%);
  --rd-light: radial-gradient(ellipse 50% 50% at 50% 40%, rgba(127, 215, 255, .12), rgba(0,0,0,0) 70%);
  --rd-accent: #7fd7ff; --rd-accent-fg: #062033;
  --rd-ui: rgba(6, 30, 54, .7); --rd-ui-line: rgba(127, 215, 255, .22);
}
[data-theme="galeria"] {
  --rd-bg: radial-gradient(ellipse 70% 60% at 50% 40%, #ffffff 0%, #ecebe7 60%, #d9d7d1 100%);
  --rd-light: none;
  --rd-fg: #1c1d22; --rd-muted: rgba(28, 29, 34, .6);
  --rd-ui: rgba(255, 255, 255, .78); --rd-ui-line: rgba(0, 0, 0, .1); --rd-ui-fg: #1c1d22;
  --rd-accent: #1d4ed8; --rd-accent-fg: #fff;
  --rd-book-shadow: rgba(40, 36, 30, .35);
}
[data-theme="galeria"] .rd-top { background: none; }
[data-theme="galeria"] .rd-btn:hover:not(:disabled), [data-theme="galeria"] .rd-close:hover { background: rgba(0,0,0,.06); }
[data-theme="galeria"] .rd-btn[aria-pressed="true"], [data-theme="galeria"] .rd-btn.rd-on { background: rgba(0,0,0,.08); }
[data-theme="galeria"] .rd-pager input, [data-theme="galeria"] .rd-share-card { background: rgba(0,0,0,.04); }
[data-theme="cosmos"] {
  --rd-bg:
    radial-gradient(ellipse 50% 40% at 20% 25%, rgba(167, 139, 250, .28), rgba(0,0,0,0) 70%),
    radial-gradient(ellipse 45% 35% at 82% 70%, rgba(56, 189, 248, .2), rgba(0,0,0,0) 70%),
    radial-gradient(ellipse at 50% 50%, #12103a, #05060f 75%);
  --rd-light: none;
  --rd-accent: #a78bfa; --rd-accent-fg: #120a2e;
  --rd-ui: rgba(10, 8, 30, .66);
}

/* ---------------------------------------------------- temporadas */
[data-theme="primavera"] {
  --rd-bg: linear-gradient(165deg, #3b2a4a 0%, #6d4a7a 45%, #b9789c 80%, #e7a7bf 100%);
  --rd-light: radial-gradient(ellipse 60% 50% at 70% 10%, rgba(255, 240, 245, .3), rgba(0,0,0,0) 70%);
  --rd-accent: #ffc4d6; --rd-accent-fg: #3b1a2a;
  --rd-ui: rgba(50, 30, 60, .6);
}
[data-theme="verano"] {
  --rd-bg: linear-gradient(180deg, #0b3f57 0%, #12707f 42%, #e98a4f 88%, #ffc070 100%);
  --rd-light: radial-gradient(circle at 50% 100%, rgba(255, 211, 110, .55), rgba(0,0,0,0) 45%);
  --rd-accent: #ffd36e; --rd-accent-fg: #3a2405;
  --rd-ui: rgba(8, 44, 60, .6);
}
[data-theme="otono"] {
  --rd-bg: linear-gradient(172deg, #22140c 0%, #5b2c14 55%, #9b4f1d 100%);
  --rd-light: radial-gradient(ellipse 60% 50% at 30% 0%, rgba(255, 190, 110, .28), rgba(0,0,0,0) 70%);
  --rd-accent: #e9a23b; --rd-accent-fg: #2a1606;
  --rd-ui: rgba(40, 20, 8, .64); --rd-paper: #fffcf5;
}
[data-theme="invierno"] {
  --rd-bg: linear-gradient(180deg, #16233a 0%, #34507a 55%, #8aa6c8 100%);
  --rd-light: radial-gradient(ellipse 70% 40% at 50% 0%, rgba(230, 240, 255, .25), rgba(0,0,0,0) 70%);
  --rd-accent: #e3f0ff; --rd-accent-fg: #142036;
  --rd-ui: rgba(16, 28, 48, .6);
}

/* ---------------------------------------------------- fechas especiales */
[data-theme="muertos"] {
  --rd-bg:
    radial-gradient(ellipse 70% 35% at 50% 108%, rgba(255, 140, 0, .55), rgba(255, 90, 0, .15) 45%, rgba(0,0,0,0) 70%),
    radial-gradient(ellipse 60% 50% at 50% 30%, #4a1559, #1e0b2e 75%);
  --rd-light: radial-gradient(ellipse 40% 30% at 50% 100%, rgba(255, 180, 60, .35), rgba(0,0,0,0) 70%);
  --rd-accent: #ff8c00; --rd-accent-fg: #2a0f00;
  --rd-ui: rgba(30, 10, 46, .66); --rd-ui-line: rgba(255, 160, 60, .2);
}
[data-theme="halloween"] {
  --rd-bg:
    radial-gradient(circle at 84% 16%, #fff1c2 0 3.2%, rgba(255, 233, 176, .32) 4.2%, rgba(255, 233, 176, .08) 9%, rgba(0,0,0,0) 16%),
    linear-gradient(180deg, #0e0816 0%, #241232 55%, #3a1d0b 100%);
  --rd-light: radial-gradient(ellipse 50% 30% at 50% 100%, rgba(255, 122, 26, .25), rgba(0,0,0,0) 70%);
  --rd-accent: #ff7a1a; --rd-accent-fg: #1a0a00;
  --rd-ui: rgba(18, 10, 28, .7);
}
[data-theme="navidad"] {
  --rd-bg:
    radial-gradient(ellipse 60% 45% at 50% 42%, rgba(244, 201, 93, .14), rgba(0,0,0,0) 70%),
    linear-gradient(170deg, #0c2418 0%, #123b29 50%, #4a0d18 100%);
  --rd-light: radial-gradient(ellipse 50% 40% at 50% 35%, rgba(255, 220, 150, .14), rgba(0,0,0,0) 70%);
  --rd-accent: #f4c95d; --rd-accent-fg: #2a1a00;
  --rd-ui: rgba(10, 30, 20, .66);
}
[data-theme="anionuevo"] {
  --rd-bg: radial-gradient(ellipse 80% 60% at 50% 100%, #2a2365 0%, #121238 45%, #05071a 100%);
  --rd-light: radial-gradient(ellipse 50% 30% at 50% 100%, rgba(255, 209, 102, .2), rgba(0,0,0,0) 70%);
  --rd-accent: #ffd166; --rd-accent-fg: #2a1d00;
  --rd-ui: rgba(8, 10, 34, .66);
}
[data-theme="sanvalentin"] {
  --rd-bg: radial-gradient(ellipse 80% 70% at 50% 40%, #8a1c40 0%, #5a0f28 50%, #2a0612 100%);
  --rd-light: radial-gradient(ellipse 50% 45% at 50% 35%, rgba(255, 170, 190, .2), rgba(0,0,0,0) 70%);
  --rd-accent: #ff8fa3; --rd-accent-fg: #3a0a1a;
  --rd-ui: rgba(50, 8, 24, .64);
}
[data-theme="independencia"] {
  --rd-bg:
    radial-gradient(ellipse 70% 65% at 50% 42%, rgba(0,0,0,0), rgba(0,0,0,.55) 100%),
    linear-gradient(100deg, #004d34 0%, #006847 30%, #1f2a24 42%, #2a1f20 58%, #9a0d1b 70%, #6e0a14 100%);
  --rd-light: radial-gradient(ellipse 45% 40% at 50% 40%, rgba(255, 255, 255, .12), rgba(0,0,0,0) 70%);
  --rd-accent: #ffffff; --rd-accent-fg: #0b2a1d;
  --rd-ui: rgba(10, 20, 16, .7);
}

/* ---------------------------------------------------- ornamentos */
.rd-orn-papel-picado, .rd-orn-papel-picado-patrio { top: calc(var(--rd-top-h) - 4px); filter: drop-shadow(0 6px 10px rgba(0,0,0,.35)); }
.rd-flag { transform-box: fill-box; transform-origin: 50% 0; animation: rd-flutter 3.4s ease-in-out infinite; }
@keyframes rd-flutter { 0%, 100% { rotate: -2.5deg; } 50% { rotate: 2.5deg; } }
.rd-orn-lights { top: calc(var(--rd-top-h) - 14px); }
.rd-bulb { animation: rd-twinkle 2.6s ease-in-out infinite; }
.rd-bulb ellipse { filter: drop-shadow(0 0 6px currentColor) drop-shadow(0 0 14px currentColor); }
@keyframes rd-twinkle { 0%, 100% { opacity: 1; } 50% { opacity: .45; } }
.rd-orn-checkered { top: 0; }
.rd-checker { height: 8px; background: repeating-conic-gradient(#fff 0 25%, #111 0 50%) 0 0 / 8px 8px; opacity: .85; }
.rd-orn-fog { top: auto; bottom: 0; height: 45vh; }
.rd-fog { position: absolute; inset: 0; background:
  radial-gradient(ellipse 40% 50% at 20% 80%, rgba(180, 160, 200, .22), rgba(0,0,0,0) 70%),
  radial-gradient(ellipse 35% 45% at 70% 90%, rgba(180, 160, 200, .18), rgba(0,0,0,0) 70%);
  animation: rd-fog 22s ease-in-out infinite alternate; }
.rd-fog-b { animation-duration: 31s; animation-direction: alternate-reverse; opacity: .8; }
@keyframes rd-fog { from { transform: translateX(-8%); } to { transform: translateX(8%); } }

@media (prefers-reduced-motion: reduce) {
  .rd-flag, .rd-bulb, .rd-fog { animation: none; }
}
@media (max-width: 760px) {
  .rd-orn-papel-picado, .rd-orn-papel-picado-patrio, .rd-orn-lights { opacity: .7; }
}
