/* =====================================================================
   Omniscient Scan — extras · tema "Constelación divina"
   carrusel de más visitados · tarjetas de series · barra inferior móvil ·
   globo + panel de comunidad (Foro · Chat · Spoilers)
   ===================================================================== */
:root{
  --o-bg:#07040f; --o-card:#0e0919; --o-card2:#150d27;
  --o-line:rgba(196,164,255,.22); --o-line2:rgba(255,217,138,.32);
  --o-ink:#f8f2ff; --o-muted:#a89eb3;
  --o-purple:#a85cff; --o-violet:#6d2bd6; --o-hi:#d9b7ff;
  --o-gold:#ffd98a; --o-gold2:#f0b35c; --o-star:#fff6dc; --o-cyan:#7ad7ff;
  --o-serif:Georgia,'Times New Roman',serif;
  --o-safe-b:env(safe-area-inset-bottom,0px);
  --o-nav-h:64px;
  --o-nav-gap:10px;
  --o-fab:60px;
}
@keyframes omniSpin{to{transform:rotate(360deg)}}
@keyframes omniTwinkle{0%,100%{opacity:.25;transform:scale(.7)}50%{opacity:1;transform:scale(1.15)}}

/* ======================================================================
   CARRUSEL "MÁS VISITADOS"  —  diseño "Observatorio"
   ====================================================================== */
.vt-hero{position:relative;margin:0 0 34px;--w:84%}
.vt-head{display:flex;align-items:center;justify-content:space-between;margin:0 6px 10px}
.vt-kicker{display:inline-flex;align-items:center;gap:9px;font-size:12px;letter-spacing:.2em;font-weight:800;color:var(--o-gold)}
.vt-kicker::before{content:"";width:22px;height:1px;background:linear-gradient(90deg,transparent,var(--o-gold))}
.vt-count{font-size:12px;color:var(--o-muted);letter-spacing:.1em}
.vt-count b{color:var(--o-gold)}
.vt-viewport{position:relative}
.vt-track{display:flex;gap:20px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;
  scrollbar-width:none;-webkit-overflow-scrolling:touch;padding:14px calc((100% - var(--w))/2) 20px;scroll-behavior:smooth}
.vt-track::-webkit-scrollbar{display:none}
.vt-slide{flex:0 0 var(--w);scroll-snap-align:center;transform:scale(.92);opacity:.42;filter:saturate(.6) brightness(.75);
  transition:transform .55s cubic-bezier(.2,.8,.2,1),opacity .55s,filter .55s}
.vt-slide.is-active{transform:scale(1);opacity:1;filter:none}

.vt-card{position:relative;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);align-items:center;
  min-height:300px;aspect-ratio:2.4/1;border-radius:26px;overflow:hidden;color:#fff;text-decoration:none;isolation:isolate;
  background:#0b0716;border:1px solid var(--o-line);
  box-shadow:0 22px 60px -24px rgba(0,0,0,.9)}
.vt-slide.is-active .vt-card{border-color:var(--o-line2);
  box-shadow:0 30px 80px -26px rgba(120,60,230,.6),0 0 0 1px rgba(255,217,138,.08) inset}
/* fondo: el banner desenfocado actúa como "nebulosa" */
.vt-bg{position:absolute;inset:-8%;width:116%;height:116%;object-fit:cover;z-index:-3;filter:blur(18px) saturate(1.25);opacity:.62;transition:transform 7s ease-out;transform:scale(1.04)}
.vt-slide.is-active .vt-bg{transform:scale(1.12)}
.vt-shade{position:absolute;inset:0;z-index:-2;
  background:linear-gradient(100deg,rgba(7,3,16,.96) 0%,rgba(10,5,22,.82) 48%,rgba(10,5,22,.35) 100%),
             radial-gradient(60% 90% at 88% 10%,rgba(168,92,255,.35),transparent 70%)}
.vt-sparks{position:absolute;inset:0;z-index:-1;pointer-events:none}
.vt-sparks i{position:absolute;width:3px;height:3px;border-radius:50%;background:var(--o-star);box-shadow:0 0 8px 1px rgba(255,217,138,.8);animation:omniTwinkle 3.2s ease-in-out infinite}
.vt-sparks i:nth-child(1){left:52%;top:18%}
.vt-sparks i:nth-child(2){left:61%;top:78%;animation-delay:.9s}
.vt-sparks i:nth-child(3){left:94%;top:52%;animation-delay:1.7s}

.vt-info{display:flex;flex-direction:column;align-items:flex-start;gap:clamp(10px,1.5cqw,16px);padding:clamp(18px,3cqw,34px) 8px clamp(18px,3cqw,34px) clamp(20px,3.6cqw,40px);min-width:0}
.vt-card{container-type:inline-size}
.vt-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.vt-rank{display:inline-flex;align-items:center;gap:6px;padding:4px 11px 4px 9px;border-radius:99px;font-size:11px;font-weight:900;letter-spacing:.14em;
  color:#2a1640;background:linear-gradient(135deg,#fff3cf,#f0b35c);box-shadow:0 0 18px rgba(255,217,138,.45)}
.vt-rank i{font-style:normal}
.vt-state{font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--o-hi);font-weight:800;
  padding:4px 10px;border-radius:99px;border:1px solid rgba(217,183,255,.4);background:rgba(168,92,255,.14)}
.vt-title{font-family:var(--o-serif);font-weight:700;letter-spacing:-.01em;line-height:1.08;
  font-size:clamp(22px,3vw,34px);font-size:clamp(22px,5.4cqw,38px);
  text-shadow:0 2px 18px rgba(0,0,0,.8);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.vt-tags{display:flex;flex-wrap:wrap;gap:8px}
.vt-tags em{font-style:normal;font-weight:700;font-size:12px;padding:4px 11px;border-radius:99px;color:#f1e6ff;
  border:1px solid rgba(217,183,255,.35);background:rgba(255,255,255,.05)}
.vt-tags em::before{content:"✧ ";color:var(--o-gold)}
.vt-meta{display:flex;align-items:stretch;gap:0;margin-top:2px}
.vt-stat{display:flex;flex-direction:column;gap:2px;padding:0 clamp(12px,2cqw,22px);border-left:1px solid rgba(217,183,255,.22)}
.vt-stat:first-child{padding-left:0;border-left:0}
.vt-stat b{font-size:clamp(15px,2.6cqw,22px);font-weight:800;color:#fff;line-height:1.1}
.vt-stat small{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--o-muted)}
.vt-stat-main b{color:var(--o-gold);font-size:clamp(20px,3.6cqw,30px);text-shadow:0 0 18px rgba(255,217,138,.45)}
.vt-go{display:inline-flex;align-items:center;gap:8px;margin-top:4px;padding:9px 18px;border-radius:99px;font-weight:800;font-size:13px;letter-spacing:.04em;
  color:#fff;border:1px solid var(--o-line2);background:linear-gradient(135deg,rgba(255,217,138,.18),rgba(168,92,255,.28));transition:.25s}
.vt-go i{font-style:normal;transition:transform .25s}
.vt-card:hover .vt-go{background:linear-gradient(135deg,#ffe3a1,#f0b35c);color:#2a1640;border-color:transparent}
.vt-card:hover .vt-go i{transform:translateX(4px)}

.vt-cover{position:relative;justify-self:center;width:clamp(110px,64%,180px);aspect-ratio:2/3;border-radius:14px;transform:rotate(3deg);
  border:1px solid rgba(255,217,138,.5);box-shadow:0 18px 40px rgba(0,0,0,.7),0 0 40px -6px rgba(168,92,255,.7);transition:transform .45s cubic-bezier(.2,.8,.2,1)}
.vt-cover::before{content:"";position:absolute;inset:-14px;border-radius:50%;z-index:-1;border:1px dashed rgba(255,217,138,.28);border-radius:22px;transform:rotate(-6deg)}
.vt-cover img{width:100%;height:100%;object-fit:cover;display:block;border-radius:13px}
.vt-card:hover .vt-cover{transform:rotate(0deg) translateY(-6px) scale(1.03)}

.vt-arrow{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:46px;border-radius:50%;border:1px solid var(--o-line2);
  background:rgba(10,5,22,.85);color:var(--o-gold);font-size:26px;line-height:1;cursor:pointer;display:grid;place-items:center;
  backdrop-filter:blur(6px);transition:.2s;z-index:3}
.vt-arrow:hover{background:linear-gradient(135deg,#ffe3a1,#f0b35c);color:#2a1640;transform:translateY(-50%) scale(1.08)}
.vt-arrow.prev{left:4px}.vt-arrow.next{right:4px}
.vt-dots{display:flex;justify-content:center;gap:9px;margin-top:2px}
.vt-dots button{width:7px;height:7px;border-radius:99px;border:0;padding:0;background:rgba(255,255,255,.25);cursor:pointer;transition:.35s}
.vt-dots button.active{width:30px;background:linear-gradient(90deg,var(--o-gold),#e9a8ff);box-shadow:0 0 12px rgba(255,217,138,.6)}

@media (max-width:900px){
  .vt-hero{--w:90%}
  .vt-track{gap:12px}
  .vt-arrow{display:none}
}
@media (max-width:720px){
  .vt-hero{--w:92%}
  .vt-card{aspect-ratio:auto;min-height:0;grid-template-columns:minmax(0,1fr) 34%;border-radius:20px}
  .vt-info{padding:16px 4px 16px 16px;gap:9px}
  .vt-title{font-size:20px;font-size:clamp(18px,6cqw,24px)}
  .vt-cover{width:80%;margin-right:10px;justify-self:center}
  .vt-go,.vt-tags em:nth-child(n+3){display:none}
  .vt-stat b{font-size:15px}.vt-stat-main b{font-size:19px}
  .vt-stat:nth-child(3){display:none}
}
@media (prefers-reduced-motion:reduce){
  .vt-track{scroll-behavior:auto}.vt-slide,.vt-bg,.vt-cover,.vt-sparks i{transition:none;animation:none}
}

/* ======================================================================
   SERIES DEL ARCHIVO  —  fichas "astro": 3D, brillo, borde de constelación
   ====================================================================== */
@property --ang{syntax:"<angle>";inherits:false;initial-value:0deg}
@keyframes scBorder{to{--ang:360deg}}
@keyframes scSweep{from{transform:translateX(-130%) skewX(-18deg)}to{transform:translateX(230%) skewX(-18deg)}}
@keyframes scRise{0%{opacity:0;transform:translateY(8px) scale(.4)}25%{opacity:1}100%{opacity:0;transform:translateY(-46px) scale(1)}}
@keyframes scPulse{0%,100%{box-shadow:0 0 0 0 rgba(255,217,138,.0)}50%{box-shadow:0 0 14px 0 rgba(255,217,138,.35)}}
@keyframes scShimmer{from{background-position:-160% 0}to{background-position:260% 0}}
@keyframes scBurst{0%{opacity:1;transform:translate(0,0) scale(.4)}100%{opacity:0;transform:translate(var(--dx),var(--dy)) scale(1.1) rotate(160deg)}}
@keyframes scPop{0%{transform:scale(1)}40%{transform:scale(1.18)}100%{transform:scale(1)}}

.sc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:22px;perspective:1100px}
.sc-grid>.sc-card.work-card{all:unset;box-sizing:border-box;position:relative;display:grid;grid-template-columns:clamp(112px,34%,150px) minmax(0,1fr);overflow:hidden;
  border-radius:22px;border:1px solid var(--o-line);isolation:isolate;
  background:radial-gradient(120% 90% at 100% 0%,rgba(168,92,255,.16),transparent 60%),linear-gradient(160deg,#140c26,#09050f);
  --mx:50%;--my:30%;--rx:0deg;--ry:0deg;
  transform:perspective(1100px) rotateX(var(--rx)) rotateY(var(--ry));transform-style:preserve-3d;
  transition:transform .45s cubic-bezier(.2,.8,.2,1),border-color .4s,box-shadow .4s,opacity .7s}
/* foco de luz que sigue al cursor */
.sc-grid>.sc-card.work-card::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;opacity:0;transition:opacity .35s;
  background:radial-gradient(280px circle at var(--mx) var(--my),rgba(255,217,138,.16),rgba(168,92,255,.10) 40%,transparent 70%)}
/* borde de constelación que gira */
.sc-grid>.sc-card.work-card::after{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;border-radius:inherit;padding:1.5px;opacity:0;transition:opacity .4s;
  background:conic-gradient(from var(--ang),transparent 0 55%,#ffd98a 72%,#c58bff 86%,transparent 100%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;
  mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);mask-composite:exclude;animation:scBorder 4.5s linear infinite}
.sc-grid>.sc-card.work-card:hover{border-color:transparent;box-shadow:0 28px 60px -24px rgba(140,80,255,.7),0 0 0 1px rgba(255,217,138,.06)}
.sc-grid>.sc-card.work-card:hover::before,.sc-grid>.sc-card.work-card:hover::after{opacity:1}
.sc-card:active{transition-duration:.15s}

/* entrada escalonada (la pone el JS) */
.sc-grid>.sc-card.work-card.sc-pre{opacity:0;transform:translateY(34px) scale(.96)}
.sc-grid>.sc-card.work-card.sc-pre.is-in{opacity:1;transform:perspective(1100px) rotateX(var(--rx)) rotateY(var(--ry));
  transition:opacity .8s ease var(--d,0s),transform .9s cubic-bezier(.2,.9,.25,1.05) var(--d,0s),border-color .4s,box-shadow .4s}

/* portada */
.sc-cover{position:relative;display:block;overflow:hidden;min-height:214px;align-self:stretch;background:#150d27;z-index:1}
.sc-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s cubic-bezier(.2,.8,.2,1),filter .5s}
.sc-card:hover .sc-cover img{transform:scale(1.1);filter:saturate(1.15) contrast(1.04)}
.sc-nocover{position:absolute;inset:0;display:grid;place-content:center;text-align:center;color:var(--o-hi);font-size:28px}
.sc-nocover small{display:block;font-size:10px;letter-spacing:.14em;color:var(--o-muted);margin-top:4px}
.sc-shade{position:absolute;inset:0;background:linear-gradient(0deg,rgba(7,3,16,.7),transparent 50%),linear-gradient(90deg,transparent 70%,rgba(9,5,15,.55))}
.sc-cover::after{content:"";position:absolute;inset:0;pointer-events:none;width:55%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.28),transparent);transform:translateX(-130%) skewX(-18deg)}
.sc-card:hover .sc-cover::after{animation:scSweep .9s ease}
.sc-card.is-in .sc-cover::after{animation:scSweep 1.1s ease calc(var(--d,0s) + .5s) 1}
.sc-stars{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.sc-stars i{position:absolute;bottom:8px;font-style:normal;color:#ffe9b8;font-size:11px;opacity:0;text-shadow:0 0 8px #ffd98a}
.sc-stars i::before{content:"✦"}
.sc-stars i:nth-child(1){left:18%}.sc-stars i:nth-child(2){left:48%;font-size:14px}.sc-stars i:nth-child(3){left:78%;font-size:9px}
.sc-card:hover .sc-stars i{animation:scRise 2.2s ease-out infinite}
.sc-card:hover .sc-stars i:nth-child(2){animation-delay:.7s}.sc-card:hover .sc-stars i:nth-child(3){animation-delay:1.4s}
.sc-open{position:absolute;left:50%;bottom:12px;transform:translate(-50%,10px);opacity:0;white-space:nowrap;padding:6px 12px;border-radius:99px;
  font-size:11px;font-weight:800;letter-spacing:.1em;color:#2a1640;background:linear-gradient(135deg,#ffe3a1,#f0b35c);transition:.35s cubic-bezier(.2,.9,.3,1.3);box-shadow:0 6px 18px rgba(240,179,92,.5)}
.sc-card:hover .sc-open{opacity:1;transform:translate(-50%,0)}

/* cuerpo */
.sc-body{position:relative;z-index:1;display:flex;flex-direction:column;gap:10px;padding:16px 16px 14px;min-width:0;transform:translateZ(18px)}
.sc-chips{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.sc-state{font-size:10px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--o-hi);padding:3px 9px;border-radius:99px;
  border:1px solid rgba(217,183,255,.35);background:rgba(168,92,255,.12)}
.sc-visits{display:inline-flex;align-items:center;gap:5px;margin-left:auto;font-size:12px;font-weight:800;color:var(--o-gold);
  padding:3px 10px;border-radius:99px;background:rgba(255,217,138,.1);border:1px solid rgba(255,217,138,.3);animation:scPulse 3.4s ease-in-out infinite}
.sc-visits i{font-style:normal;font-size:10px}
.sc-body h3{margin:0;font-family:var(--o-serif);font-size:clamp(17px,1.4vw,21px);line-height:1.2;font-weight:700}
.sc-body h3 a{position:relative;color:#fff;text-decoration:none;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  background:linear-gradient(90deg,var(--o-gold),#e9a8ff) 0 100%/0 2px no-repeat;transition:background-size .5s cubic-bezier(.2,.8,.2,1),color .3s;padding-bottom:2px}
.sc-card:hover .sc-body h3 a{background-size:100% 2px;color:#fff6dc}
.sc-syn{margin:0;font-size:13px;line-height:1.5;color:var(--o-muted);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.sc-foot{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:auto;padding-top:4px}
.sc-grid .sc-card .chapter-pill{all:unset;box-sizing:border-box;position:relative;overflow:hidden;cursor:pointer;display:inline-flex;align-items:center;gap:7px;padding:7px 13px;border-radius:12px;
  font-size:13px;font-weight:800;color:#fff;border:1px solid rgba(217,183,255,.4);transition:.25s;
  background:linear-gradient(110deg,rgba(168,92,255,.5) 30%,rgba(255,217,138,.45) 50%,rgba(109,43,214,.5) 70%) 0 0/220% 100%}
.sc-grid .sc-card .chapter-pill b{transition:transform .25s}
.sc-grid .sc-card .chapter-pill:hover{border-color:var(--o-gold);box-shadow:0 0 18px rgba(255,217,138,.35);animation:scShimmer 1.4s linear infinite}
.sc-grid .sc-card .chapter-pill:hover b{transform:translateX(3px)}
.sc-time{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:#8d819f}
.sc-none{font-size:12.5px;color:#8d819f}
.sc-grid .sc-card .save-button{all:unset;box-sizing:border-box;position:relative;cursor:pointer;margin-left:auto;display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:12px;
  font-size:12.5px;font-weight:800;color:#e9dcff;border:1px solid var(--o-line);background:rgba(255,255,255,.04);transition:.25s}
.sc-grid .sc-card .save-button em{font-style:normal}
.sc-grid .sc-card .save-button:hover{border-color:var(--o-gold);color:#fff;transform:translateY(-1px)}
.sc-grid .sc-card .save-button:active{transform:scale(.94)}
.sc-grid .sc-card .save-button.is-saved{color:#2a1640;background:linear-gradient(135deg,#ffe3a1,#f0b35c);border-color:transparent;box-shadow:0 6px 16px -6px rgba(240,179,92,.7)}
.sc-grid .sc-card .save-button.pop{animation:scPop .5s cubic-bezier(.2,.9,.3,1.4)}
.sc-burst{position:absolute;left:50%;top:50%;margin:-6px 0 0 -6px;pointer-events:none;color:#ffd98a;font-size:12px;line-height:1;text-shadow:0 0 8px #ffd98a;animation:scBurst .8s ease-out forwards}
.sc-burst::before{content:"✦"}

/* ---- celular: 2 columnas verticales ---- */
@media (max-width:760px){
  .sc-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .sc-grid>.sc-card.work-card{grid-template-columns:1fr;border-radius:18px;transform:none}
  .sc-grid>.sc-card.work-card.sc-pre.is-in{transform:none}
  .sc-grid>.sc-card.work-card:active{transform:scale(.97)}
  .sc-body{transform:none}
  .sc-cover{min-height:0;aspect-ratio:3/4}
  .sc-shade{background:linear-gradient(0deg,rgba(7,3,16,.75),transparent 55%)}
  .sc-syn{display:none}
  .sc-body{padding:11px 11px 12px;gap:8px}
  .sc-body h3{font-size:15px}
  .sc-visits{margin-left:0;font-size:11px;padding:2px 8px}
  .sc-state{display:none}
  .sc-foot .sc-time{display:none}
  .sc-grid .sc-card .save-button{padding:6px 10px}
  .sc-stars i{opacity:.0}
  .sc-card.is-in .sc-stars i{animation:scRise 3.2s ease-out infinite}
  .sc-card.is-in .sc-stars i:nth-child(2){animation-delay:1s}.sc-card.is-in .sc-stars i:nth-child(3){animation-delay:2s}
  .sc-grid>.sc-card.work-card::after{opacity:.55}
}
@media (max-width:420px){.sc-grid .sc-card .save-button em{display:none}}
@media (prefers-reduced-motion:reduce){
  .sc-grid>.sc-card.work-card,.sc-cover img,.sc-visits,.sc-grid>.sc-card.work-card::after{animation:none!important;transition:none!important}
  .sc-grid>.sc-card.work-card.sc-pre{opacity:1;transform:none}
}

/* visitas en la biblioteca */
.lib-visit{display:inline-flex;align-items:center;gap:5px;font-weight:800;color:var(--o-gold)}
.library-sort{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.library-sort>span{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--o-muted)}
.lib-sort-btn{cursor:pointer;font:inherit;font-size:13px;font-weight:700;padding:8px 14px;border-radius:99px;color:#d8c9ee;
  border:1px solid var(--o-line);background:rgba(255,255,255,.04);transition:.2s}
.lib-sort-btn:hover{color:#fff;border-color:var(--o-line2)}
.lib-sort-btn.active{color:#2a1640;background:linear-gradient(135deg,#ffe3a1,#f0b35c);border-color:transparent}

/* ======================================================================
   RANKING "OBRAS MÁS VISITADAS"  —  podio estelar
   ====================================================================== */
@keyframes rkFloat{0%,100%{transform:rotate(3deg) translateY(0)}50%{transform:rotate(3deg) translateY(-6px)}}
@keyframes rkBadge{0%,100%{box-shadow:0 0 14px rgba(255,217,138,.35)}50%{box-shadow:0 0 28px rgba(255,217,138,.7)}}
.rk-wrap{display:grid;gap:14px}
.rk-feature{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:clamp(16px,3vw,30px);overflow:hidden;isolation:isolate;
  padding:clamp(16px,2.4vw,24px) clamp(16px,3vw,30px);border-radius:24px;color:#fff;text-decoration:none;
  border:1px solid rgba(255,217,138,.42);background:#0b0716;box-shadow:0 26px 60px -28px rgba(255,190,90,.35);
  transition:transform .4s cubic-bezier(.2,.8,.2,1),box-shadow .4s}
.rk-feature:hover{transform:translateY(-4px);box-shadow:0 34px 70px -26px rgba(255,190,90,.5)}
.rk-bg{position:absolute;inset:-12%;z-index:-3}
.rk-bg img{width:100%;height:100%;object-fit:cover;filter:blur(22px) saturate(1.4);opacity:.5;transform:scale(1.1);transition:transform 8s ease-out}
.rk-feature:hover .rk-bg img{transform:scale(1.22)}
.rk-feature::before{content:"";position:absolute;inset:0;z-index:-2;
  background:linear-gradient(100deg,rgba(7,3,16,.55),rgba(10,5,22,.88) 55%),radial-gradient(60% 100% at 100% 0%,rgba(255,217,138,.16),transparent 70%)}
.rk-stars{position:absolute;inset:0;z-index:-1;pointer-events:none}
.rk-stars i{position:absolute;width:3px;height:3px;border-radius:50%;background:#fff6dc;box-shadow:0 0 8px 1px rgba(255,217,138,.9);animation:omniTwinkle 3s ease-in-out infinite}
.rk-stars i:nth-child(1){left:42%;top:16%}.rk-stars i:nth-child(2){left:70%;top:72%;animation-delay:.8s}
.rk-stars i:nth-child(3){left:92%;top:30%;animation-delay:1.5s}.rk-stars i:nth-child(4){left:56%;top:88%;animation-delay:2.1s}
.rk-cover{position:relative;width:clamp(100px,16vw,132px);aspect-ratio:2/3;border-radius:14px;border:1.5px solid rgba(255,217,138,.65);
  box-shadow:0 18px 40px rgba(0,0,0,.65),0 0 44px -6px rgba(255,217,138,.55);transform:rotate(3deg);animation:rkFloat 5s ease-in-out infinite}
.rk-cover img{width:100%;height:100%;object-fit:cover;display:block;border-radius:12px}
.rk-cover em{position:absolute;top:-14px;left:-12px;width:34px;height:34px;display:grid;place-items:center;border-radius:50%;font-style:normal;font-size:17px;color:#2a1640;
  background:linear-gradient(135deg,#fff3cf,#f0b35c);box-shadow:0 0 18px rgba(255,217,138,.8);transform:rotate(-14deg)}
.rk-fbody{display:flex;flex-direction:column;align-items:flex-start;gap:10px;min-width:0}
.rk-badge{padding:4px 12px;border-radius:99px;font-size:10.5px;font-weight:900;letter-spacing:.14em;color:#2a1640;background:linear-gradient(135deg,#fff3cf,#f0b35c);animation:rkBadge 3s ease-in-out infinite}
.rk-ftitle{font-family:var(--o-serif);font-weight:700;line-height:1.1;font-size:clamp(20px,2.6vw,30px);text-shadow:0 2px 16px rgba(0,0,0,.8);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.rk-count{display:flex;align-items:baseline;gap:8px}
.rk-count b{font-size:clamp(28px,4vw,42px);line-height:1;font-weight:800;color:var(--o-gold);text-shadow:0 0 24px rgba(255,217,138,.55);font-variant-numeric:tabular-nums}
.rk-count small{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--o-muted)}
.rk-go{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:99px;font-size:13px;font-weight:800;border:1px solid var(--o-line2);
  background:linear-gradient(135deg,rgba(255,217,138,.16),rgba(168,92,255,.26));transition:.25s}
.rk-go i{font-style:normal;transition:transform .25s}
.rk-feature:hover .rk-go{background:linear-gradient(135deg,#ffe3a1,#f0b35c);color:#2a1640;border-color:transparent}
.rk-feature:hover .rk-go i{transform:translateX(4px)}

.rk-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.rk-row{position:relative;display:grid;grid-template-columns:34px 48px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 14px 12px 12px;border-radius:18px;overflow:hidden;
  color:#fff;text-decoration:none;border:1px solid var(--o-line);background:linear-gradient(160deg,#130b24,#09050f);
  transition:transform .35s cubic-bezier(.2,.8,.2,1),border-color .3s,box-shadow .35s}
.rk-row::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .35s;background:radial-gradient(120% 140% at 0% 50%,rgba(168,92,255,.22),transparent 60%)}
.rk-row:hover{transform:translateY(-3px);border-color:var(--o-line2);box-shadow:0 18px 40px -20px rgba(168,92,255,.7)}
.rk-row:hover::before{opacity:1}
.rk-pos{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;font-family:var(--o-serif);font-weight:800;font-size:15px;color:#e9dcff;
  border:1px solid rgba(217,183,255,.35);background:rgba(168,92,255,.14)}
.rk-p2 .rk-pos{color:#1f1a2e;border-color:transparent;background:linear-gradient(135deg,#f4f1ff,#b9b3d6);box-shadow:0 0 14px rgba(220,215,255,.45)}
.rk-p3 .rk-pos{color:#2d1608;border-color:transparent;background:linear-gradient(135deg,#ffd0a1,#c9763a);box-shadow:0 0 14px rgba(255,170,100,.4)}
.rk-thumb{width:48px;height:66px;border-radius:10px;overflow:hidden;border:1px solid rgba(217,183,255,.25);background:#150d27;transition:transform .4s cubic-bezier(.2,.8,.2,1)}
.rk-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.rk-row:hover .rk-thumb{transform:scale(1.08) rotate(-2deg)}
.rk-main{display:flex;flex-direction:column;gap:9px;min-width:0}
.rk-main b{font-size:14px;font-weight:700;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.rk-bar{display:block;height:5px;border-radius:99px;background:rgba(255,255,255,.08);overflow:hidden}
.rk-bar i{display:block;height:100%;width:var(--pct);border-radius:inherit;background:linear-gradient(90deg,#a85cff,#ffd98a);box-shadow:0 0 10px rgba(255,217,138,.6);
  transition:width 1.2s cubic-bezier(.2,.8,.2,1) calc(var(--i,0)*.14s + .2s)}
.rk-num{display:flex;flex-direction:column;align-items:flex-end;line-height:1.1}
.rk-num b{font-size:17px;font-weight:800;color:var(--o-gold)}
.rk-num small{font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--o-muted)}
/* entrada (la activa el JS) */
.rk-wrap.rk-pre .rk-bar i{width:0}
.rk-wrap.rk-pre .rk-feature,.rk-wrap.rk-pre .rk-row{opacity:0;transform:translateY(22px)}
.rk-wrap.rk-pre.is-in .rk-feature,.rk-wrap.rk-pre.is-in .rk-row{opacity:1;transform:none;
  transition:opacity .7s ease calc(var(--i,-1)*.1s + .15s),transform .8s cubic-bezier(.2,.9,.25,1.05) calc(var(--i,-1)*.1s + .15s),border-color .3s,box-shadow .35s}
.rk-wrap.rk-pre.is-in .rk-bar i{width:var(--pct)}
@media (max-width:760px){
  .rk-feature{grid-template-columns:auto minmax(0,1fr);border-radius:20px;padding:16px}
  .rk-cover{width:92px}
  .rk-go{display:none}
  .rk-list{grid-template-columns:1fr;gap:10px}
}

/* ======================================================================
   ÚLTIMOS CAPÍTULOS  —  línea de tiempo de constelación
   ====================================================================== */
@keyframes ltNode{0%{box-shadow:0 0 0 0 rgba(255,217,138,.6)}100%{box-shadow:0 0 0 12px rgba(255,217,138,0)}}
@keyframes ltNew{0%,100%{transform:scale(1)}50%{transform:scale(1.12)}}
.lt-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 20px}
.lt-card{display:grid;grid-template-columns:22px minmax(0,1fr);gap:8px;color:#fff;text-decoration:none}
.lt-rail{position:relative;display:flex;justify-content:center;padding-top:26px}
.lt-rail::after{content:"";position:absolute;top:44px;bottom:-16px;left:50%;width:0;border-left:1.5px dashed rgba(217,183,255,.28)}
.lt-node{position:relative;z-index:1;width:11px;height:11px;border-radius:50%;background:#2a1a4d;border:2px solid #b996ff;transition:.3s}
.lt-card.is-new .lt-node{background:var(--o-gold);border-color:#fff3cf;animation:ltNode 2s ease-out infinite}
.lt-card:hover .lt-node{background:var(--o-gold);border-color:#fff3cf;transform:scale(1.35)}
.lt-grid>.lt-card:nth-last-child(-n+2) .lt-rail::after{display:none}
.lt-box{position:relative;display:grid;grid-template-columns:54px minmax(0,1fr) auto;align-items:center;gap:14px;padding:11px 14px 11px 11px;border-radius:18px;overflow:hidden;
  border:1px solid var(--o-line);background:linear-gradient(160deg,rgba(255,255,255,.05),rgba(168,92,255,.06));backdrop-filter:blur(3px);
  transition:transform .35s cubic-bezier(.2,.8,.2,1),border-color .3s,box-shadow .35s,background .3s}
.lt-box::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,transparent,#a85cff,transparent);opacity:.5;transition:.3s}
.lt-card.is-new .lt-box{border-color:rgba(255,217,138,.34);background:linear-gradient(160deg,rgba(255,217,138,.08),rgba(168,92,255,.07))}
.lt-card.is-new .lt-box::before{background:linear-gradient(180deg,transparent,var(--o-gold),transparent);opacity:.9}
.lt-card:hover .lt-box{transform:translateX(6px);border-color:var(--o-line2);box-shadow:0 18px 38px -20px rgba(168,92,255,.75)}
.lt-card:hover .lt-box::before{opacity:1;width:4px}
.lt-cover{position:relative;width:54px;height:76px;border-radius:11px;overflow:hidden;border:1px solid rgba(217,183,255,.28);background:#150d27;transition:transform .45s cubic-bezier(.2,.8,.2,1)}
.lt-cover img{width:100%;height:100%;object-fit:cover;display:block}
.lt-card:hover .lt-cover{transform:scale(1.08) rotate(-3deg)}
.lt-cover em{position:absolute;left:0;right:0;bottom:0;text-align:center;font-style:normal;font-size:9px;font-weight:900;letter-spacing:.14em;padding:3px 0;color:#2a1640;
  background:linear-gradient(135deg,#fff3cf,#f0b35c);animation:ltNew 2.4s ease-in-out infinite}
.lt-info{display:flex;flex-direction:column;gap:7px;min-width:0}
.lt-info b{font-size:14.5px;font-weight:700;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lt-line{display:flex;align-items:center;gap:8px;min-width:0}
.lt-chip{flex:none;padding:3px 10px;border-radius:99px;font-size:10.5px;font-weight:900;letter-spacing:.1em;color:#fff;
  background:linear-gradient(135deg,rgba(168,92,255,.55),rgba(109,43,214,.5));border:1px solid rgba(217,183,255,.4)}
.lt-card.is-new .lt-chip{color:#2a1640;background:linear-gradient(135deg,#ffe3a1,#f0b35c);border-color:transparent}
.lt-line small{font-size:11.5px;color:var(--o-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lt-when{display:flex;flex-direction:column;align-items:flex-end;gap:7px}
.lt-when time{font-size:11.5px;color:#8d819f;white-space:nowrap}
.lt-when i{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;font-style:normal;color:var(--o-hi);border:1px solid var(--o-line);transition:.3s}
.lt-card:hover .lt-when i{background:linear-gradient(135deg,#ffe3a1,#f0b35c);color:#2a1640;border-color:transparent;transform:translateX(2px)}
/* entrada */
.lt-grid.lt-pre .lt-card{opacity:0;transform:translateY(20px)}
.lt-grid.lt-pre.is-in .lt-card{opacity:1;transform:none;transition:opacity .6s ease calc(var(--i,0)*.07s),transform .7s cubic-bezier(.2,.9,.25,1.05) calc(var(--i,0)*.07s)}
@media (max-width:900px){
  .lt-grid{grid-template-columns:1fr;gap:12px}
  .lt-grid>.lt-card:nth-last-child(2) .lt-rail::after{display:block}
  .lt-grid>.lt-card:last-child .lt-rail::after{display:none}
}
@media (max-width:480px){
  .lt-card{grid-template-columns:16px minmax(0,1fr);gap:6px}
  .lt-box{grid-template-columns:46px minmax(0,1fr) auto;gap:11px;padding:10px 11px 10px 10px}
  .lt-cover{width:46px;height:66px}
  .lt-info b{font-size:13.5px}
  .lt-when i{display:none}
}
@media (prefers-reduced-motion:reduce){
  .rk-cover,.rk-badge,.rk-stars i,.lt-node,.lt-cover em{animation:none!important}
  .rk-wrap.rk-pre .rk-feature,.rk-wrap.rk-pre .rk-row,.lt-grid.lt-pre .lt-card{opacity:1;transform:none}
  .rk-wrap.rk-pre .rk-bar i{width:var(--pct)}
}

/* ======================================================================
   BARRA INFERIOR (móvil)  —  dock flotante con indicador deslizante
   ====================================================================== */
@keyframes bnRing{to{transform:rotate(360deg)}}
@keyframes bnStar{0%,100%{opacity:.3;transform:scale(.6)}50%{opacity:1;transform:scale(1.1)}}
.omni-bottom{display:none}
.omni-dot{position:absolute;top:-2px;right:-3px;width:10px;height:10px;border-radius:50%;background:var(--o-gold);
  box-shadow:0 0 0 2px var(--o-bg),0 0 12px var(--o-gold);animation:omniPing 1.8s infinite}
.omni-dot[hidden]{display:none}
@keyframes omniPing{0%,100%{transform:scale(1)}50%{transform:scale(1.3)}}

@media (max-width:820px){
  :root{--o-nav-gap:10px}
  body{padding-bottom:calc(var(--o-nav-h) + var(--o-safe-b) + var(--o-nav-gap) + 16px)}
  .omni-bottom{display:flex;position:fixed;left:12px;right:12px;bottom:calc(var(--o-safe-b) + var(--o-nav-gap));z-index:900;
    align-items:stretch;justify-content:space-around;height:var(--o-nav-h);padding:0 4px;border-radius:28px;
    background:linear-gradient(180deg,rgba(28,16,52,.85),rgba(9,5,20,.94));
    border:1px solid rgba(217,183,255,.24);backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);
    box-shadow:0 16px 40px rgba(0,0,0,.65),0 0 34px -10px rgba(168,92,255,.55),inset 0 1px 0 rgba(255,217,138,.22)}
  .omni-bottom::before{content:"";position:absolute;top:-1px;left:22%;right:22%;height:1px;pointer-events:none;
    background:linear-gradient(90deg,transparent,rgba(255,217,138,.8),transparent)}
  /* indicador que se desliza hacia la pestaña activa */
  .omni-bn-ind{position:absolute;z-index:0;top:7px;bottom:7px;left:0;width:var(--w,60px);border-radius:21px;pointer-events:none;opacity:0;
    transform:translateX(var(--x,0));
    background:radial-gradient(90% 120% at 50% 0%,rgba(255,217,138,.20),transparent 62%),linear-gradient(180deg,rgba(168,92,255,.42),rgba(109,43,214,.20));
    border:1px solid rgba(217,183,255,.34);box-shadow:0 0 24px rgba(168,92,255,.5),inset 0 1px 0 rgba(255,255,255,.12)}
  .omni-bn-ind.is-ready{transition:transform .55s cubic-bezier(.3,1.35,.4,1),width .4s ease,opacity .3s}
  .omni-bn-ind::after{content:"";position:absolute;top:-1px;left:26%;right:26%;height:2px;border-radius:2px;
    background:linear-gradient(90deg,transparent,var(--o-gold),transparent);box-shadow:0 0 10px var(--o-gold)}
  .omni-bn{position:relative;z-index:1;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
    background:none;border:0;padding:0;color:#8f84a3;font:inherit;text-decoration:none;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:color .3s}
  .omni-bn-ico{position:relative;display:grid;place-items:center;width:40px;height:28px;transition:transform .35s cubic-bezier(.2,.9,.3,1.4)}
  .omni-bn-ico svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:filter .3s}
  .omni-bn-lbl{font-size:10.5px;font-weight:700;letter-spacing:.02em;transition:color .3s}
  .omni-bn:active .omni-bn-ico{transform:scale(.78)}
  .omni-bn.is-active,.omni-bn.is-live{color:var(--o-gold)}
  .omni-bottom:has(.is-live) .omni-bn.is-active:not(.is-live){color:#8f84a3}
  .omni-bottom:has(.is-live) .omni-bn.is-active:not(.is-live) .omni-bn-lbl{color:#8f84a3}
  .omni-bottom:has(.is-live) .omni-bn.is-active:not(.is-live) .omni-bn-ico{transform:none}
  .omni-bottom:has(.is-live) .omni-bn.is-active:not(.is-live) svg{filter:none}
  .omni-bottom:has(.is-live) .omni-bn.is-active:not(.is-live) .omni-bn-ico::after{display:none}
  .omni-bn.is-active .omni-bn-ico,.omni-bn.is-live .omni-bn-ico{transform:translateY(-2px) scale(1.1)}
  .omni-bn.is-active svg,.omni-bn.is-live svg{filter:drop-shadow(0 0 6px rgba(255,217,138,.75))}
  .omni-bn.is-active .omni-bn-lbl,.omni-bn.is-live .omni-bn-lbl{color:#fff}
  .omni-bn.is-active .omni-bn-ico::after,.omni-bn.is-live .omni-bn-ico::after{content:"✦";position:absolute;top:-9px;right:2px;font-size:8px;color:var(--o-gold);animation:bnStar 2.4s ease-in-out infinite}
  /* botón central: Buscar (orbe elevado) */
  .omni-bn-search{color:#fff}
  .omni-bn-search .omni-bn-ico{width:auto;height:auto}
  .omni-bn-center{position:relative;display:grid;place-items:center;width:52px;height:52px;border-radius:50%;margin-top:-26px;color:#2a1640;
    background:radial-gradient(circle at 35% 28%,#fff3cf,#f0b35c 70%);
    box-shadow:0 10px 24px rgba(240,179,92,.5),0 0 0 5px #09051a,0 0 0 6px rgba(217,183,255,.25)}
  .omni-bn-center::before{content:"";position:absolute;inset:-9px;border-radius:50%;pointer-events:none;
    background:conic-gradient(from 0deg,transparent 0 62%,rgba(255,217,138,.95) 82%,transparent 100%);
    -webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 2px),#000 calc(100% - 1.5px));mask:radial-gradient(farthest-side,transparent calc(100% - 2px),#000 calc(100% - 1.5px));
    animation:bnRing 5s linear infinite}
  .omni-bn-center svg{width:24px;height:24px;stroke:#2a1640;stroke-width:2.2}
  .omni-bn-search .omni-bn-lbl{margin-top:-2px;color:#fff}
  .omni-bn-search:active .omni-bn-center{transform:scale(.9)}
  .omni-bn-search .omni-bn-center{transition:transform .3s cubic-bezier(.2,.9,.3,1.4)}
}
@media (max-width:360px){.omni-bn-lbl{font-size:9.5px}.omni-bn-center{width:48px;height:48px;margin-top:-24px}}

/* ======================================================================
   GLOBO FLOTANTE  —  orbe estelar
   ====================================================================== */
.omni-fab{position:fixed;right:22px;bottom:24px;z-index:970;width:var(--o-fab);height:var(--o-fab);border-radius:50%;border:0;padding:0;cursor:pointer;color:var(--o-gold);
  background:radial-gradient(circle at 35% 30%,#2c1859 0%,#150b2e 55%,#07040f 100%);
  box-shadow:inset 0 0 0 1.5px rgba(255,217,138,.6),0 10px 30px rgba(0,0,0,.6),0 0 34px -4px rgba(168,92,255,.75);
  display:grid;place-items:center;transition:transform .25s cubic-bezier(.2,.9,.3,1.3),box-shadow .25s;-webkit-tap-highlight-color:transparent}
.omni-fab::before{content:"";position:absolute;inset:-6px;border-radius:50%;pointer-events:none;
  background:conic-gradient(from 0deg,transparent 0 55%,rgba(255,217,138,.9) 78%,transparent 100%);
  -webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 2px),#000 calc(100% - 1.5px));mask:radial-gradient(farthest-side,transparent calc(100% - 2px),#000 calc(100% - 1.5px));
  animation:omniSpin 7s linear infinite}
.omni-fab::after{content:"";position:absolute;inset:-2px;border-radius:50%;pointer-events:none;border:1px solid rgba(217,183,255,.5);animation:omniAura 3s ease-out infinite}
@keyframes omniAura{0%{transform:scale(1);opacity:.7}100%{transform:scale(1.6);opacity:0}}
.omni-fab-sat{position:absolute;inset:-12px;border-radius:50%;pointer-events:none;animation:omniSpin 11s linear infinite reverse}
.omni-fab-sat::before{content:"";position:absolute;top:0;left:50%;width:6px;height:6px;margin-left:-3px;border-radius:50%;background:var(--o-star);box-shadow:0 0 10px 2px rgba(255,217,138,.9)}
.omni-fab:hover{transform:scale(1.08);box-shadow:inset 0 0 0 1.5px var(--o-gold),0 12px 34px rgba(0,0,0,.6),0 0 46px -2px rgba(255,217,138,.55)}
.omni-fab:active{transform:scale(.92)}
.omni-fab svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;grid-area:1/1;transition:.3s;filter:drop-shadow(0 0 5px rgba(255,217,138,.7))}
.omni-fab svg .st{fill:currentColor;stroke:none}
.omni-fab .omni-fab-x{opacity:0;transform:rotate(-90deg) scale(.5)}
.omni-fab.is-open .omni-fab-ico{opacity:0;transform:rotate(90deg) scale(.5)}
.omni-fab.is-open .omni-fab-x{opacity:1;transform:none}
.omni-fab .omni-dot{top:4px;right:4px}
/* en móvil el globo SIEMPRE está visible, encima de la barra inferior */
@media (max-width:820px){
  .omni-fab{--o-fab:54px;right:16px;bottom:calc(var(--o-nav-h) + var(--o-safe-b) + var(--o-nav-gap) + 14px)}
}

/* ======================================================================
   PANEL DE COMUNIDAD  —  santuario estelar
   ====================================================================== */
.omni-backdrop{position:fixed;inset:0;z-index:950;background:rgba(3,1,10,.66);backdrop-filter:blur(3px)}
.omni-panel{position:fixed;z-index:960;right:22px;bottom:98px;width:min(420px,calc(100vw - 24px));height:min(650px,calc(100vh - 124px));
  display:flex;flex-direction:column;border-radius:24px;overflow:hidden;color:var(--o-ink);
  background:
    radial-gradient(70% 38% at 90% 0%,rgba(168,92,255,.34),transparent 70%),
    radial-gradient(60% 34% at 0% 100%,rgba(122,215,255,.13),transparent 70%),
    linear-gradient(180deg,#120a24,#07040f);
  border:1px solid rgba(196,164,255,.28);
  box-shadow:0 30px 90px rgba(0,0,0,.75),0 0 70px -18px rgba(168,92,255,.6),inset 0 1px 0 rgba(255,217,138,.25);
  transform-origin:bottom right;animation:omniIn .3s cubic-bezier(.2,.9,.3,1.1)}
.omni-panel[hidden],.omni-backdrop[hidden]{display:none}
@keyframes omniIn{from{opacity:0;transform:translateY(16px) scale(.94)}to{opacity:1;transform:none}}
@media (max-width:820px){
  .omni-panel{left:10px;right:10px;width:auto;top:calc(env(safe-area-inset-top,0px) + 14px);height:auto;border-radius:22px;
    bottom:calc(var(--o-nav-h) + var(--o-safe-b) + var(--o-nav-gap) + 14px + 54px + 12px)}
}
/* cielo estrellado */
.omni-sky{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.omni-sky::before,.omni-sky::after{content:"";position:absolute;inset:0}
.omni-sky::before{background-image:
  radial-gradient(1.2px 1.2px at 18px 22px,#fff,transparent),radial-gradient(1px 1px at 92px 64px,#ffe9b8,transparent),
  radial-gradient(1.4px 1.4px at 150px 18px,#fff,transparent),radial-gradient(1px 1px at 208px 96px,#d9b7ff,transparent),
  radial-gradient(1.2px 1.2px at 60px 130px,#fff,transparent),radial-gradient(1px 1px at 176px 160px,#ffe9b8,transparent),
  radial-gradient(1px 1px at 24px 190px,#bfe9ff,transparent),radial-gradient(1.3px 1.3px at 120px 214px,#fff,transparent);
  background-size:240px 240px;opacity:.55;animation:omniStars 5s ease-in-out infinite}
.omni-sky::after{background-image:
  radial-gradient(1px 1px at 40px 60px,#fff,transparent),radial-gradient(1.2px 1.2px at 130px 110px,#ffe9b8,transparent),
  radial-gradient(1px 1px at 200px 40px,#fff,transparent),radial-gradient(1px 1px at 84px 180px,#d9b7ff,transparent);
  background-size:170px 170px;opacity:.4;animation:omniStars 7s ease-in-out infinite reverse}
@keyframes omniStars{0%,100%{opacity:.25}50%{opacity:.7}}
.omni-const{position:absolute;top:8px;right:54px;width:190px;height:88px;opacity:.9}
.omni-const path{fill:none;stroke:rgba(255,217,138,.38);stroke-width:1;stroke-dasharray:3 4}
.omni-const circle{fill:var(--o-star);filter:drop-shadow(0 0 4px rgba(255,217,138,.9));transform-box:fill-box;transform-origin:center;animation:omniTwinkle 3s ease-in-out infinite}
.omni-const circle:nth-of-type(2){animation-delay:.5s}.omni-const circle:nth-of-type(3){animation-delay:1s}
.omni-const circle:nth-of-type(4){animation-delay:1.5s}.omni-const circle:nth-of-type(5){animation-delay:2s}
.omni-head,.omni-tabs,.omni-pane{position:relative;z-index:1}

.omni-head{display:flex;justify-content:space-between;align-items:flex-start;padding:16px 18px 8px}
.omni-kicker{display:block;margin:0 0 3px;font-size:10px;font-weight:800;letter-spacing:.3em;color:var(--o-gold)}
.omni-head h2{margin:0;font-family:var(--o-serif);font-size:26px;font-weight:700;letter-spacing:.01em;
  background:linear-gradient(90deg,#fff,#ffe9b8 45%,#e2c4ff);-webkit-background-clip:text;background-clip:text;color:transparent}
.omni-online{margin:5px 0 0;font-size:12.5px;color:var(--o-muted);display:flex;align-items:center;gap:8px}
.omni-online i{width:10px;height:10px;background:var(--o-gold);box-shadow:0 0 10px var(--o-gold);
  clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);animation:omniTwinkle 2.4s ease-in-out infinite}
.omni-close{width:36px;height:36px;border-radius:50%;border:1px solid var(--o-line);background:rgba(255,255,255,.05);color:#fff;font-size:15px;cursor:pointer;transition:.2s}
.omni-close:hover{background:rgba(255,217,138,.16);border-color:var(--o-gold);color:var(--o-gold)}
.omni-tabs{display:flex;gap:2px;padding:0 14px;border-bottom:1px solid var(--o-line)}
.omni-tab{position:relative;flex:1;display:flex;align-items:center;justify-content:center;gap:7px;padding:11px 4px 13px;border:0;border-radius:0;
  background:none;color:var(--o-muted);font:inherit;font-size:13px;font-weight:700;cursor:pointer;transition:.25s;white-space:nowrap}
.omni-tab>span{color:var(--o-gold);opacity:.7;font-size:14px;transition:.25s}
.omni-tab:hover{color:#fff}
.omni-tab.is-active{color:#fff}
.omni-tab.is-active>span{opacity:1;text-shadow:0 0 10px var(--o-gold)}
.omni-tab.is-active::after{content:"";position:absolute;left:14%;right:14%;bottom:-1px;height:2px;border-radius:2px;
  background:linear-gradient(90deg,transparent,var(--o-gold),transparent);box-shadow:0 0 14px var(--o-gold)}
.omni-tab .omni-dot{top:6px;right:6px;width:8px;height:8px}
.omni-pane{flex:1;min-height:0;display:flex;flex-direction:column}
.omni-pane[hidden]{display:none}

/* ---- Chat ---- */
.omni-messages{flex:1;overflow-y:auto;padding:16px 14px 6px;scrollbar-width:thin;scrollbar-color:rgba(196,164,255,.3) transparent;overscroll-behavior:contain}
.omni-list{display:flex;flex-direction:column;gap:16px}
.omni-more{display:block;margin:0 auto 12px;padding:7px 15px;border-radius:99px;border:1px solid var(--o-line);background:rgba(255,255,255,.04);color:var(--o-hi);font:inherit;font-size:12px;cursor:pointer}
.omni-more:hover{border-color:var(--o-gold);color:var(--o-gold)}
.omni-msg{display:flex;gap:11px;animation:omniMsg .35s ease-out}
@keyframes omniMsg{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.omni-orb{position:relative;flex:0 0 42px;width:42px;height:42px;border-radius:50%;margin-top:2px}
.omni-orb::before{content:"";position:absolute;inset:-3px;border-radius:50%;
  background:conic-gradient(from 0deg,var(--rc,#9b7cff),transparent 35%,var(--rc,#9b7cff) 55%,transparent 80%,var(--rc,#9b7cff));
  filter:drop-shadow(0 0 6px var(--rc,#9b7cff));animation:omniSpin 10s linear infinite}
.omni-av{position:relative;display:block;width:100%;height:100%;border-radius:50%;object-fit:cover;background:#1c1230;border:2.5px solid #0a0618}
.omni-body{min-width:0;flex:1;position:relative;padding:9px 13px 8px;border-radius:4px 18px 18px 18px;
  background:linear-gradient(160deg,rgba(255,255,255,.07),rgba(168,92,255,.08));border:1px solid rgba(196,164,255,.18);backdrop-filter:blur(4px)}
.omni-body::before{content:"";position:absolute;left:-1px;top:10px;bottom:10px;width:2px;border-radius:2px;background:linear-gradient(180deg,transparent,var(--rc,#9b7cff),transparent)}
.omni-msg.is-mine .omni-body{background:linear-gradient(160deg,rgba(255,217,138,.1),rgba(168,92,255,.1));border-color:rgba(255,217,138,.32)}
.omni-meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.omni-name{font-weight:800;font-size:14px;color:var(--rc,#9b7cff);max-width:52%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 0 14px color-mix(in srgb,var(--rc,#9b7cff),transparent 60%)}
.omni-rank{font-size:13px;color:var(--rc,#9b7cff);filter:drop-shadow(0 0 4px var(--rc,#9b7cff));cursor:help}
.omni-lv{font-size:10px;font-weight:800;padding:1px 7px;border-radius:99px;background:rgba(255,255,255,.08);color:var(--o-muted)}
.omni-owner{font-size:10px;font-weight:900;letter-spacing:.12em;padding:2px 8px;border-radius:99px;color:#2a1640;background:linear-gradient(135deg,#fff3cf,#f0b35c);box-shadow:0 0 12px rgba(255,217,138,.5)}
.omni-time{margin-left:auto;font-size:11px;color:#7d7192}
.omni-quote{margin:6px 0 4px;padding:7px 10px;border-left:2px solid var(--o-gold);border-radius:0 10px 10px 0;background:rgba(0,0,0,.25);font-size:12.5px;color:var(--o-muted);
  overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.omni-quote b{display:block;color:var(--o-gold);font-size:12.5px}
.omni-text{margin:4px 0 0;font-size:14.5px;line-height:1.5;color:#efe7fb;white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere}
.omni-acts{display:flex;gap:12px;margin-top:4px;opacity:0;transition:.2s}
.omni-msg:hover .omni-acts,.omni-msg:focus-within .omni-acts{opacity:1}
@media (hover:none){.omni-acts{opacity:.75}}
.omni-acts button{background:none;border:0;padding:2px 0;color:var(--o-muted);font:inherit;font-size:12px;cursor:pointer}
.omni-acts button:hover{color:var(--o-gold)}
.omni-msg.is-mine .omni-text{color:#fff}
.omni-empty{text-align:center;color:var(--o-muted);font-size:13.5px;padding:38px 12px}
.omni-empty b{display:block;font-size:34px;margin-bottom:8px;color:var(--o-gold);text-shadow:0 0 18px rgba(255,217,138,.7);font-weight:400}
.omni-jump{position:absolute;left:50%;bottom:132px;transform:translateX(-50%);z-index:3;padding:7px 15px;border-radius:99px;border:0;
  background:linear-gradient(135deg,#ffe3a1,#f0b35c);color:#2a1640;font:inherit;font-size:12px;font-weight:800;cursor:pointer;box-shadow:0 6px 20px rgba(240,179,92,.5)}
.omni-jump[hidden]{display:none}
.omni-composer{position:relative;padding:11px 14px 13px;border-top:1px solid var(--o-line);background:linear-gradient(180deg,rgba(10,5,22,.55),rgba(6,3,14,.9))}
.omni-notice{margin:0 0 8px;font-size:13px;line-height:1.4;color:var(--o-muted)}
.omni-notice a{color:var(--o-gold);font-weight:700}
.omni-replybar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;padding:6px 10px;border-left:2px solid var(--o-gold);border-radius:0 10px 10px 0;background:rgba(255,255,255,.05);font-size:12.5px;color:var(--o-muted)}
.omni-replybar span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.omni-replybar button{background:none;border:0;color:#fff;cursor:pointer}
.omni-composer textarea{width:100%;box-sizing:border-box;resize:none;max-height:110px;padding:12px 15px;border-radius:16px;border:1px solid rgba(196,164,255,.3);
  background:rgba(8,4,18,.75);color:#fff;font:inherit;font-size:15px;line-height:1.35;outline:none;transition:.2s}
.omni-composer textarea::placeholder{color:#7d7192}
.omni-composer textarea:focus{border-color:var(--o-gold);box-shadow:0 0 0 3px rgba(255,217,138,.14),0 0 24px -6px rgba(168,92,255,.6)}
.omni-composer textarea:disabled{opacity:.5;cursor:not-allowed}
.omni-tools{display:flex;align-items:center;gap:10px;margin-top:9px}
.omni-tools>button:first-child{width:38px;height:38px;border-radius:50%;border:1px solid var(--o-line);background:rgba(255,255,255,.05);font-size:18px;cursor:pointer;transition:.2s}
.omni-tools>button:first-child:hover{border-color:var(--o-gold)}
.omni-counter{margin-left:auto;font-size:12px;color:#7d7192}
.omni-send{padding:10px 20px;border-radius:99px;border:0;background:linear-gradient(135deg,#ffe3a1,#f0b35c);color:#2a1640;font:inherit;font-weight:900;cursor:pointer;transition:.2s;
  box-shadow:0 6px 20px -6px rgba(240,179,92,.7)}
.omni-send::after{content:" ✦"}
.omni-send:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}
.omni-send:not(:disabled):active{transform:scale(.95)}
.omni-emojis{display:grid;grid-template-columns:repeat(8,1fr);gap:4px;padding:8px;margin-bottom:8px;border-radius:16px;background:#150c28;border:1px solid var(--o-line)}
.omni-emojis[hidden]{display:none}
.omni-emojis button{border:0;background:none;font-size:21px;padding:5px 0;border-radius:8px;cursor:pointer}
.omni-emojis button:hover{background:rgba(255,217,138,.14)}

/* ---- Foro / Spoilers ---- */
.omni-feed{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:12px;scrollbar-width:thin;scrollbar-color:rgba(196,164,255,.3) transparent}
.omni-post{position:relative;padding:15px 16px;border-radius:18px;background:linear-gradient(160deg,rgba(168,92,255,.14),rgba(255,255,255,.03));border:1px solid rgba(196,164,255,.2);overflow:hidden}
.omni-post::before{content:"";position:absolute;top:-30px;right:-30px;width:90px;height:90px;border-radius:50%;background:radial-gradient(circle,rgba(255,217,138,.2),transparent 70%)}
.omni-post h3{margin:0 0 6px;font-family:var(--o-serif);font-size:17px;font-weight:700;color:#fff;padding-right:26px}
.omni-post h3::before{content:"✦ ";color:var(--o-gold);font-size:13px}
.omni-post p{margin:0;font-size:14px;line-height:1.55;color:#e2d7f2;white-space:pre-wrap;word-break:break-word}
.omni-post time{display:block;margin-top:10px;font-size:11px;color:#7d7192}
.omni-post .omni-tagline{display:inline-block;margin-bottom:9px;padding:3px 11px;border-radius:99px;font-size:11px;font-weight:800;color:#2a1640;background:linear-gradient(135deg,#fff3cf,#f0b35c)}
.omni-post .omni-del{position:absolute;top:10px;right:10px;width:26px;height:26px;border-radius:50%;border:0;background:rgba(255,255,255,.08);color:#fff;cursor:pointer;font-size:12px;z-index:2}
.omni-post.is-spoiler .omni-hide{filter:blur(9px);user-select:none;transition:filter .35s;cursor:pointer}
.omni-post.is-spoiler.is-open .omni-hide{filter:none;user-select:text;cursor:auto}
.omni-post.is-spoiler:not(.is-open)::after{content:"☾  Toca para revelar el secreto";position:absolute;left:50%;top:58%;transform:translate(-50%,-50%);padding:8px 16px;border-radius:99px;
  background:rgba(10,5,20,.88);border:1px solid var(--o-line2);font-size:12.5px;font-weight:800;color:var(--o-gold);pointer-events:none;white-space:nowrap}
.omni-warn{margin:12px 14px 0;padding:8px 12px;border-radius:12px;background:rgba(255,217,138,.08);border:1px solid rgba(255,217,138,.3);font-size:12.5px;color:#ffe3a1}
.omni-admin-form{display:flex;flex-direction:column;gap:8px;margin:12px 14px 0;padding:12px;border-radius:16px;background:rgba(255,255,255,.04);border:1px dashed rgba(255,217,138,.4)}
.omni-admin-form input,.omni-admin-form textarea{width:100%;box-sizing:border-box;padding:10px 12px;border-radius:12px;border:1px solid var(--o-line);background:rgba(0,0,0,.3);color:#fff;font:inherit;font-size:14px;outline:none}
.omni-admin-form input:focus,.omni-admin-form textarea:focus{border-color:var(--o-gold)}
.omni-admin-form button{padding:10px;border-radius:12px;border:0;background:linear-gradient(135deg,#ffe3a1,#f0b35c);color:#2a1640;font:inherit;font-weight:900;cursor:pointer}
.omni-row{display:grid;grid-template-columns:2fr 1fr;gap:8px}
.omni-toast{position:absolute;left:14px;right:14px;bottom:14px;z-index:5;padding:10px 14px;border-radius:14px;background:#1d0f36;border:1px solid var(--o-line2);font-size:13px;color:#fff;box-shadow:0 10px 30px rgba(0,0,0,.5)}
body.omni-lock{overflow:hidden}
@media (prefers-reduced-motion:reduce){
  .omni-panel,.omni-msg,.omni-dot,.omni-fab::before,.omni-fab::after,.omni-fab-sat,.omni-orb::before,.omni-sky::before,.omni-sky::after,.omni-const circle{animation:none}
}

/* El enlace "Foro" de la cabecera ahora es un botón que abre el panel */
button.nav-link{background:none;border:0;font:inherit;color:inherit;cursor:pointer}


/* ======================================================================
   BOTÓN "RENDIMIENTO"  +  modo rendimiento (html.omni-perf)
   ====================================================================== */
.omni-perf-btn{position:fixed;left:22px;bottom:30px;z-index:970;display:inline-flex;align-items:center;gap:9px;height:40px;padding:0 12px 0 12px;border-radius:99px;
  border:1px solid var(--o-line);background:rgba(12,7,24,.9);color:#e9dcff;font:inherit;font-size:12.5px;font-weight:800;letter-spacing:.02em;cursor:pointer;
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 8px 24px rgba(0,0,0,.5);transition:border-color .25s,color .25s,transform .25s;-webkit-tap-highlight-color:transparent}
.omni-perf-btn:hover{border-color:var(--o-gold);color:#fff;transform:translateY(-2px)}
.omni-perf-btn:active{transform:scale(.95)}
.omni-perf-btn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;color:var(--o-gold)}
.omni-perf-btn .pf-sw{position:relative;width:28px;height:16px;border-radius:99px;background:rgba(255,255,255,.14);transition:background .25s}
.omni-perf-btn .pf-sw::after{content:"";position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:#cbbfe0;transition:transform .25s cubic-bezier(.3,1.4,.4,1),background .25s}
.omni-perf-btn[aria-pressed="true"]{border-color:var(--o-gold);color:var(--o-gold)}
.omni-perf-btn[aria-pressed="true"] .pf-sw{background:rgba(255,217,138,.4)}
.omni-perf-btn[aria-pressed="true"] .pf-sw::after{transform:translateX(12px);background:var(--o-gold)}
.omni-perf-toast{position:fixed;left:50%;bottom:calc(var(--o-nav-h) + var(--o-safe-b) + var(--o-nav-gap) + 70px);transform:translateX(-50%);z-index:990;max-width:calc(100vw - 32px);
  padding:10px 16px;border-radius:14px;background:#1d0f36;border:1px solid var(--o-line2);color:#fff;font-size:13px;font-weight:600;text-align:center;box-shadow:0 12px 30px rgba(0,0,0,.55);
  animation:omniMsg .3s ease-out}
@media (min-width:821px){.omni-perf-toast{bottom:90px;left:22px;transform:none}}
@media (max-width:820px){
  .omni-perf-btn{left:14px;bottom:calc(var(--o-nav-h) + var(--o-safe-b) + var(--o-nav-gap) + 21px);height:38px;font-size:12px;padding:0 10px}
}

/* ---- Modo rendimiento: quita animaciones, desenfoques, sombras y partículas ---- */
html.omni-perf *,html.omni-perf *::before,html.omni-perf *::after{
  animation:none!important;transition:none!important;scroll-behavior:auto!important;
  backdrop-filter:none!important;-webkit-backdrop-filter:none!important;text-shadow:none!important;box-shadow:none!important}
html.omni-perf #pageConstellationCanvas,html.omni-perf canvas[id*="onstellation"]{display:none!important}
html.omni-perf .vt-bg,html.omni-perf .rk-bg,html.omni-perf .vt-sparks,html.omni-perf .rk-stars,html.omni-perf .sc-stars,
html.omni-perf .omni-sky,html.omni-perf .omni-const,html.omni-perf .omni-fab-sat,html.omni-perf .sc-open,
html.omni-perf .sc-cover::after,html.omni-perf .sc-grid>.sc-card.work-card::before,html.omni-perf .sc-grid>.sc-card.work-card::after,
html.omni-perf .omni-fab::before,html.omni-perf .omni-fab::after,html.omni-perf .omni-bn-center::before,html.omni-perf .omni-orb::before{display:none!important}
/* contenido siempre visible y sin movimiento */
html.omni-perf .sc-grid>.sc-card.work-card,html.omni-perf .sc-grid>.sc-card.work-card.sc-pre,
html.omni-perf .rk-wrap.rk-pre .rk-feature,html.omni-perf .rk-wrap.rk-pre .rk-row,html.omni-perf .lt-grid.lt-pre .lt-card,
html.omni-perf .vt-slide,html.omni-perf .vt-cover,html.omni-perf .rk-cover,html.omni-perf .sc-cover img,html.omni-perf .lt-box,html.omni-perf .rk-row,html.omni-perf .rk-feature{
  opacity:1!important;transform:none!important;filter:none!important}
html.omni-perf .vt-slide:not(.is-active){opacity:.55!important}
html.omni-perf .rk-wrap .rk-bar i{width:var(--pct)!important}
html.omni-perf .vt-card,html.omni-perf .rk-feature{background:linear-gradient(160deg,#1a0f33,#09051a)}
html.omni-perf .omni-bottom{background:#0c0718}
html.omni-perf .omni-backdrop{background:rgba(3,1,10,.82)}
html.omni-perf .omni-fab{border:1.5px solid var(--o-gold)}
html.omni-perf .omni-bn-ind{box-shadow:none}
html.omni-perf .omni-bn-ico::after{display:none}


/* ======================================================================
   MODAL "ÚLTIMOS CAPÍTULOS"  —  v7  "El ojo que se abre"
   Al tocar el botón, un párpado se abre como un ojo y revela los capítulos.
   ====================================================================== */
body .chapter-modal{z-index:1100;align-items:center;justify-content:center;padding:14px;
  transition:opacity .3s .5s,visibility 0s .9s}
body .chapter-modal.open{transition:opacity .25s,visibility 0s}
body .chapter-modal .modal-backdrop{background:radial-gradient(70% 55% at 50% 50%,rgba(70,30,130,.35),rgba(3,1,10,.9));
  backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px)}

/* ---- la caja: nace como una rendija cerrada (ojo cerrado) ---- */
body .chapter-modal .modal-box{
  --eye-closed:ellipse(78% 0% at 50% 50%);--eye-open:ellipse(78% 78% at 50% 50%);
  display:flex;flex-direction:column;box-sizing:border-box;position:relative;overflow:hidden;
  width:min(480px,calc(100vw - 28px));max-height:min(80dvh,80vh,680px);margin:0;padding:22px 16px 18px;border-radius:30px;
  background:radial-gradient(90% 60% at 50% 0%,rgba(130,80,230,.28),transparent 65%),linear-gradient(180deg,#1b1036,#080514);
  border:1px solid rgba(255,217,138,.34);box-shadow:0 0 0 1px rgba(168,92,255,.18),0 30px 90px rgba(0,0,0,.75),0 0 70px -12px rgba(168,92,255,.6);
  transform:none;opacity:1;clip-path:var(--eye-closed);
  transition:clip-path .55s cubic-bezier(.7,0,.3,1)}
body .chapter-modal.open .modal-box{clip-path:var(--eye-open);transform:none;animation:eyeOpen 1.25s cubic-bezier(.45,.05,.25,1) both}
/* abre despacio, parpadea una vez y se abre del todo */
@keyframes eyeOpen{
  0%{clip-path:ellipse(78% 0% at 50% 50%)}
  32%{clip-path:ellipse(78% 20% at 50% 50%)}
  46%{clip-path:ellipse(78% 6% at 50% 50%)}
  100%{clip-path:ellipse(78% 78% at 50% 50%)}}
body .chapter-modal .modal-box::before,body .chapter-modal .modal-box::after{display:none}

/* ---- destello del iris que "mira" mientras se abre ---- */
.chapter-modal .eye-flash{position:absolute;left:50%;top:50%;z-index:6;width:190px;margin:-57px 0 0 -95px;pointer-events:none;opacity:0}
.chapter-modal.open .eye-flash{animation:eyeFlash 1.3s .1s ease-out both}
@keyframes eyeFlash{0%{opacity:0;transform:scale(.55)}22%{opacity:1;transform:scale(1)}62%{opacity:1;transform:scale(1.05)}100%{opacity:0;transform:scale(1.9)}}
.eye-svg{display:block;width:100%;height:auto;overflow:visible;filter:drop-shadow(0 0 14px rgba(255,217,138,.65))}
.eye-svg .e-lid{fill:rgba(10,5,24,.92);stroke:var(--o-gold);stroke-width:2.4;stroke-linejoin:round}
.eye-svg .e-iris{fill:#8d5cf0;stroke:var(--o-gold);stroke-width:1.6}
.eye-svg .e-ring{fill:none;stroke:rgba(255,246,220,.55);stroke-width:1;stroke-dasharray:2 3.5}
.eye-svg .e-pupil{fill:#07030f}
.eye-svg .e-glint{fill:#fff6dc}
.chapter-modal.open .eye-flash .e-look{animation:eyeLook 1.2s .15s ease-in-out both}
@keyframes eyeLook{0%{transform:translateX(0)}30%{transform:translateX(-11px)}62%{transform:translateX(11px)}100%{transform:translateX(0)}}

/* ---- cabecera centrada ---- */
.chapter-modal .modal-head{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;text-align:center;padding:4px 40px 0}
.chapter-modal .modal-head .eye-mini{width:54px;margin-bottom:8px}
.chapter-modal .modal-head .eye-mini .eye-svg{filter:drop-shadow(0 0 8px rgba(255,217,138,.55))}
.chapter-modal .modal-head .eye-mini .e-ring{display:none}
.chapter-modal .modal-box .section-label{display:block;margin:0;font-size:10.5px;font-weight:800;letter-spacing:.28em;color:#b996ff}
.chapter-modal .modal-box h3{margin:8px 0 0;font-family:Cinzel,Georgia,"Times New Roman",serif;font-weight:600;font-size:clamp(18px,5.2vw,24px);line-height:1.22;text-transform:none;letter-spacing:.01em;
  background:linear-gradient(90deg,#fff,#ffe3a6 55%,#fff);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.chapter-modal .modal-divider{display:flex;align-items:center;gap:10px;width:100%;margin:14px 0 12px;color:var(--o-gold);font-size:11px}
.chapter-modal .modal-divider::before,.chapter-modal .modal-divider::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,rgba(255,217,138,.5))}
.chapter-modal .modal-divider::after{transform:scaleX(-1)}

.chapter-modal .modal-close{position:absolute;top:14px;right:14px;z-index:7;width:36px;height:36px;display:grid;place-items:center;padding:0;border-radius:50%;
  border:1px solid rgba(255,217,138,.3);background:rgba(255,255,255,.06);color:#fff;font-size:20px;line-height:1;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .3s,border-color .3s}
.chapter-modal .modal-close:hover{transform:rotate(90deg);border-color:var(--o-gold)}
.chapter-modal .modal-close:active{transform:scale(.88)}

/* ---- lista con scroll propio ---- */
.chapter-modal .modal-list{position:relative;z-index:2;flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:9px;margin:0 -4px;padding:2px 4px 4px;
  overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:rgba(217,183,255,.35) transparent}
.chapter-modal .modal-list::-webkit-scrollbar{width:5px}
.chapter-modal .modal-list::-webkit-scrollbar-thumb{background:rgba(217,183,255,.35);border-radius:9px}

/* cada capítulo: anillo con el número · título · estado */
.chapter-modal .modal-list a{
  position:relative;flex:0 0 auto;display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:13px;min-height:64px;padding:8px 14px 8px 9px;
  border-radius:40px 18px 18px 40px;border:1px solid rgba(196,164,255,.17);background:linear-gradient(90deg,rgba(168,92,255,.14),rgba(255,255,255,.025) 60%);
  color:#fff;text-decoration:none;-webkit-tap-highlight-color:transparent;transition:border-color .25s,transform .2s,background .25s}
.chapter-modal .modal-list a:hover{border-color:var(--o-gold);transform:translateX(3px)}
.chapter-modal .modal-list a:active{transform:scale(.98)}
.chapter-modal .modal-list a strong{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;
  background:radial-gradient(circle at 35% 30%,#2e1a57,#0d0720);border:1.5px solid rgba(217,183,255,.45);
  font-size:15px;font-weight:800;line-height:1;color:#e6d4ff;font-variant-numeric:tabular-nums;white-space:nowrap;box-shadow:inset 0 0 12px rgba(168,92,255,.35)}
.chapter-modal .modal-list a:first-child{border-color:rgba(255,217,138,.5);background:linear-gradient(90deg,rgba(255,217,138,.16),rgba(168,92,255,.08) 60%,rgba(255,255,255,.02))}
.chapter-modal .modal-list a:first-child strong{border-color:var(--o-gold);color:var(--o-gold);box-shadow:inset 0 0 12px rgba(255,217,138,.3),0 0 14px rgba(255,217,138,.25)}
.chapter-modal .modal-list a span{display:flex;flex-direction:column;gap:4px;min-width:0;font-size:14.5px;font-weight:600;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chapter-modal .modal-list a span small{font-size:9.5px;font-weight:700;letter-spacing:.18em;color:#9a8db3}
.chapter-modal .modal-list a b{display:inline-grid;place-items:center;min-width:32px;height:26px;padding:0 9px;border-radius:99px;font-size:10.5px;font-weight:800;letter-spacing:.1em;color:#b996ff}
.chapter-modal .modal-list a b:not(:empty){font-size:16px}
.chapter-modal .modal-list a:first-child b{font-size:10.5px;color:#2a1640;background:linear-gradient(180deg,#fff0c4,var(--o-gold2))}

/* entrada: la cabecera y las filas aparecen cuando el ojo ya está abierto */
.chapter-modal.open .modal-head{animation:eyeRise .55s .62s cubic-bezier(.2,.9,.3,1) both}
.chapter-modal.open .modal-divider{animation:eyeRise .5s .72s ease-out both}
.chapter-modal.open .modal-list a{animation:eyeRise .5s calc(.8s + var(--i,0)*.07s) cubic-bezier(.2,.9,.3,1) both}
@keyframes eyeRise{from{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:none}}

/* el globo y "Rendimiento" no se montan encima */
body:has(.chapter-modal.open) :is(.omni-fab,.omni-perf-btn,.omni-perf-toast,.omni-bottom){opacity:0;visibility:hidden;pointer-events:none}

@media (max-width:360px){.chapter-modal .modal-list a{grid-template-columns:42px 1fr auto;gap:10px}.chapter-modal .modal-list a strong{width:42px;height:42px;font-size:13px}.chapter-modal .modal-list a span{font-size:13.5px}}

/* modo rendimiento / reducir movimiento: se abre sin animación, el contenido siempre visible */
html.omni-perf .chapter-modal .eye-flash{display:none!important}
html.omni-perf .chapter-modal .modal-head,html.omni-perf .chapter-modal .modal-divider,html.omni-perf .chapter-modal .modal-list a{opacity:1!important;transform:none!important}
html.omni-perf body .chapter-modal .modal-box,html.omni-perf .chapter-modal.open .modal-box{clip-path:none}
@media (prefers-reduced-motion:reduce){
  .chapter-modal .eye-flash{display:none!important}
  body .chapter-modal.open .modal-box{animation:none;transition:none}
  .chapter-modal.open .modal-head,.chapter-modal.open .modal-divider,.chapter-modal.open .modal-list a{animation:none}}


/* ======================================================================
   BUSCADOR  —  v9  "Santuario celestial"
   Alas que se despliegan, halo que desciende, rayos de luz y plumas.
   ====================================================================== */
body .search-overlay{z-index:1100;align-items:center;justify-content:center;padding:44px 18px 18px;overflow:hidden;
  background:radial-gradient(70% 55% at 50% 30%,rgba(120,90,220,.34),transparent 70%),linear-gradient(180deg,rgba(14,9,36,.94),rgba(3,1,10,.96));
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
body .search-overlay::before,body .search-overlay::after{display:none}
body:has(.search-overlay.open) :is(.omni-fab,.omni-perf-btn,.omni-perf-toast,.omni-bottom){opacity:0;visibility:hidden;pointer-events:none}

/* ---------- luz, rayos y plumas (detrás de todo) ---------- */
.angel-fx{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.ang-rays{position:absolute;inset:-10% -10% 0;opacity:0;transform-origin:50% 0;
  background:repeating-conic-gradient(from 168deg at 50% -6%,rgba(255,238,196,.2) 0 2.2deg,transparent 2.2deg 8deg);
  -webkit-mask-image:radial-gradient(ellipse 85% 90% at 50% 0%,#000,transparent 78%);mask-image:radial-gradient(ellipse 85% 90% at 50% 0%,#000,transparent 78%)}
.search-overlay.open .ang-rays{animation:angRaysIn 1.4s .05s ease-out both,angSway 9s 1.4s ease-in-out infinite alternate}
@keyframes angRaysIn{from{opacity:0}to{opacity:1}}
@keyframes angSway{from{transform:rotate(-2.2deg)}to{transform:rotate(2.2deg)}}
.ang-flash{position:absolute;inset:0;opacity:0;background:radial-gradient(48% 42% at 50% 36%,rgba(255,246,220,.6),transparent 72%)}
.search-overlay.open .ang-flash{animation:angFlash 1.2s ease-out both}
@keyframes angFlash{0%{opacity:0}16%{opacity:1}100%{opacity:0}}
.ang-feathers{position:absolute;inset:0}
.ang-feathers i{position:absolute;top:-40px;left:var(--x);width:9px;height:28px;border-radius:100% 0 100% 0;opacity:0;
  background:linear-gradient(160deg,#fff,rgba(255,236,190,.35));filter:drop-shadow(0 0 4px rgba(255,236,190,.8))}
.search-overlay.open .ang-feathers i{animation:angFall var(--t) var(--d) linear infinite}
@keyframes angFall{
  0%{transform:translate3d(0,0,0) rotate(0deg) scale(var(--s));opacity:0}
  10%{opacity:.9}
  50%{transform:translate3d(var(--sw),52vh,0) rotate(170deg) scale(var(--s))}
  90%{opacity:.6}
  100%{transform:translate3d(calc(var(--sw)*-.6),112vh,0) rotate(330deg) scale(var(--s));opacity:0}}

/* ---------- escenario: alas + halo + panel ---------- */
.search-stage{position:relative;z-index:1;display:flex;flex-direction:column;width:min(680px,100%);max-height:min(82dvh,82vh,740px)}
.ang-wing{position:absolute;z-index:0;top:-120px;width:300px;pointer-events:none;opacity:0;transform-origin:96% 66%}
.ang-wing-l{right:calc(100% - 44px)}
.ang-wing-r{left:calc(100% - 44px);transform-origin:4% 66%}
.ang-wing-in{display:block}
.ang-wing-r .ang-wing-in{transform:scaleX(-1)}
.ang-svg{display:block;width:100%;height:auto;overflow:visible;filter:drop-shadow(0 0 12px rgba(255,236,190,.55))}
.ang-svg path{transform-origin:250px 150px;transform:rotate(var(--a))}
.search-overlay.open .ang-wing{animation:angWingIn 1.2s .12s cubic-bezier(.2,.9,.3,1.15) both,angFlap 4.2s 1.4s ease-in-out infinite}
.search-overlay.open .ang-svg path{animation:angFan 1s calc(.18s + var(--d)) cubic-bezier(.2,.9,.3,1.25) both}
@keyframes angWingIn{from{opacity:0;transform:scale(.2) rotate(calc(-16deg*var(--fl)))}to{opacity:1;transform:none}}
@keyframes angFan{from{transform:rotate(0deg)}to{transform:rotate(var(--a))}}
@keyframes angFlap{0%,100%{transform:rotate(0deg)}50%{transform:rotate(calc(4.5deg*var(--fl))) translateY(-4px)}}

.ang-halo{position:absolute;z-index:4;top:-24px;left:50%;width:170px;height:42px;margin-left:-85px;border-radius:50%;pointer-events:none;opacity:0;
  border:3px solid #ffe3a6;box-shadow:0 0 18px rgba(255,217,138,.9),0 0 50px rgba(255,217,138,.45),inset 0 0 14px rgba(255,217,138,.55)}
.ang-halo::after{content:"";position:absolute;inset:5px;border-radius:50%;border:1px solid rgba(255,255,255,.7)}
.search-overlay.open .ang-halo{animation:angHaloIn 1.2s .18s cubic-bezier(.2,.9,.3,1.2) both,angHaloBob 3.8s 1.4s ease-in-out infinite}
@keyframes angHaloIn{from{opacity:0;transform:translateY(-90px) scale(.5)}to{opacity:1;transform:none}}
@keyframes angHaloBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}

/* ---------- panel ---------- */
body .search-overlay .search-dialog{
  position:relative;z-index:2;display:flex;flex-direction:column;box-sizing:border-box;overflow:hidden;flex:1 1 auto;min-height:0;
  width:100%;height:auto;max-width:none;max-height:none;padding:34px 22px 14px;border-radius:30px;
  background:radial-gradient(90% 38% at 50% 0%,rgba(255,246,220,.2),transparent 70%),linear-gradient(180deg,rgba(38,28,78,.96),rgba(12,8,30,.98));
  border:1px solid rgba(255,236,190,.55);
  box-shadow:0 0 0 1px rgba(255,236,190,.12),0 40px 110px rgba(0,0,0,.75),0 0 70px -10px rgba(255,236,190,.4),inset 0 1px 0 rgba(255,255,255,.35);
  transform:translateY(-30px) scale(.95);filter:blur(10px);opacity:0;
  transition:transform .85s .2s cubic-bezier(.2,.9,.3,1),filter .7s .2s,opacity .5s .2s}
body .search-overlay.open .search-dialog{transform:none;filter:none;opacity:1}

.search-dialog .sd-head{text-align:center;padding:0 40px}
.search-dialog .section-label{display:inline-flex;align-items:center;gap:10px;margin:0 0 8px;font-size:10.5px;font-weight:800;letter-spacing:.32em;color:#ffe3a6}
.search-dialog .section-label::before,.search-dialog .section-label::after{content:"✦";font-size:9px;letter-spacing:0;color:#fff6dc}
.search-dialog h2{margin:0 0 18px;font-family:Cinzel,Georgia,"Times New Roman",serif;font-weight:600;font-size:clamp(24px,6.4vw,34px);line-height:1.1;text-transform:none;color:#fff;text-shadow:0 0 26px rgba(255,236,190,.55)}
.search-dialog h2 em{font-style:normal;background:linear-gradient(90deg,#fff6dc,#ffd98a,#fff6dc);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;text-shadow:none}

.search-dialog .search-close{position:absolute;z-index:3;top:16px;right:16px;width:38px;height:38px;display:grid;place-items:center;padding:0;border-radius:50%;
  border:1px solid rgba(255,236,190,.4);background:rgba(255,255,255,.07);color:#fff;font-size:21px;line-height:1;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .3s,border-color .3s,background .3s}
.search-dialog .search-close:hover{transform:rotate(90deg);border-color:#fff6dc;background:rgba(255,236,190,.2)}
.search-dialog .search-close:active{transform:scale(.88)}

/* caja en forma de píldora luminosa */
.search-dialog .search-input{display:flex;align-items:center;gap:12px;height:58px;padding:0 16px 0 20px;border-radius:99px;cursor:text;
  background:rgba(255,246,220,.07);border:1px solid rgba(255,236,190,.4);box-shadow:inset 0 0 26px rgba(255,236,190,.07);transition:border-color .3s,box-shadow .3s,background .3s}
.search-dialog .search-input:focus-within{background:rgba(255,246,220,.12);border-color:#fff6dc;box-shadow:0 0 0 4px rgba(255,236,190,.14),0 0 40px -2px rgba(255,236,190,.55),inset 0 0 26px rgba(255,236,190,.1)}
.search-dialog .search-input>span{font-size:22px;color:#ffe3a6;transition:transform .3s}
.search-dialog .search-input:focus-within>span{transform:scale(1.14) rotate(-8deg)}
.search-dialog .search-input input{flex:1;min-width:0;height:56px;background:none;border:0;outline:0;color:#fff;font:inherit;font-size:16px;font-weight:600}
.search-dialog .search-input input::placeholder{color:#a79bc4;font-weight:500}
.search-dialog .search-input input::-webkit-search-cancel-button{-webkit-appearance:none}
.search-dialog kbd{display:inline-grid;place-items:center;min-width:24px;height:22px;padding:0 7px;border-radius:7px;border:1px solid rgba(255,236,190,.3);background:rgba(255,255,255,.06);color:#d8cbb0;font:inherit;font-size:10px;font-weight:800;letter-spacing:.06em}
.search-dialog .search-count{margin:14px 4px 10px;text-align:center;font-size:10.5px;font-weight:800;letter-spacing:.24em;text-transform:uppercase;color:#bfb2d8}

/* resultados */
.search-dialog .search-results{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:10px;margin:0 -6px;padding:4px 6px 8px;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;
  scrollbar-width:thin;scrollbar-color:rgba(255,236,190,.4) transparent}
.search-dialog .search-results::-webkit-scrollbar{width:5px}
.search-dialog .search-results::-webkit-scrollbar-thumb{background:rgba(255,236,190,.4);border-radius:9px}

.search-dialog .search-result{position:relative;flex:0 0 auto;display:grid;grid-template-columns:58px minmax(0,1fr) 36px;align-items:center;gap:14px;padding:10px 12px 10px 12px;border-radius:22px;
  border:1px solid rgba(255,236,190,.2);background:linear-gradient(90deg,rgba(255,246,220,.11),rgba(255,255,255,.02) 65%);color:#fff;text-decoration:none;-webkit-tap-highlight-color:transparent;
  transition:border-color .25s,transform .25s,background .25s,box-shadow .25s}
.search-dialog .search-result:hover,.search-dialog .search-result.is-active{border-color:#ffe3a6;transform:translateY(-2px);
  background:linear-gradient(90deg,rgba(255,236,190,.22),rgba(255,255,255,.04) 65%);box-shadow:0 10px 30px -8px rgba(255,236,190,.35)}
.search-dialog .search-result:active{transform:scale(.985)}
/* número = medallón dorado sobre la portada */
.sr-num{position:absolute;z-index:3;left:4px;top:4px;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;font-style:normal;font-size:9.5px;font-weight:800;line-height:1;
  color:#2a1640;background:linear-gradient(180deg,#fff6dc,#ffd98a);box-shadow:0 2px 8px rgba(0,0,0,.45);font-variant-numeric:tabular-nums}
/* portada en arco de catedral */
.sr-cover{position:relative;display:grid;place-items:center;width:58px;height:80px;border-radius:29px 29px 10px 10px;overflow:hidden;background:linear-gradient(160deg,#3a2a70,#120a2a);
  border:1.5px solid rgba(255,236,190,.65);box-shadow:0 8px 22px rgba(0,0,0,.5),0 0 16px -2px rgba(255,236,190,.35)}
.search-dialog .search-result .sr-cover img{position:absolute;inset:0;width:100%;height:100%;border-radius:0;object-fit:cover;display:block;transition:transform .5s}
.search-result:hover .sr-cover img,.search-result.is-active .sr-cover img{transform:scale(1.1)}
.sr-cover i{font-style:normal;font-size:20px;color:#ffe3a6}
.search-dialog .search-result .sr-info{display:flex;flex-direction:column;gap:8px;min-width:0}
.search-dialog .search-result .sr-info>b{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;white-space:normal;font-size:15px;font-weight:700;line-height:1.28;color:#fff}
.search-result mark{background:none;color:#ffd98a;text-shadow:0 0 14px rgba(255,217,138,.65)}
.sr-chips{display:flex;flex-wrap:wrap;gap:6px}
.sr-chips u{text-decoration:none;display:inline-flex;align-items:center;height:21px;padding:0 9px;border-radius:99px;font-size:10.5px;font-weight:800;letter-spacing:.04em;white-space:nowrap;
  color:#e6dcf7;background:rgba(255,255,255,.08);border:1px solid rgba(255,236,190,.22)}
.sr-chips .sr-state{color:#c8f5dc;background:rgba(110,220,160,.12);border-color:rgba(140,235,185,.3)}
.sr-chips .sr-visits{color:#ffd98a;background:rgba(255,217,138,.1);border-color:rgba(255,217,138,.32)}
.search-dialog .open-result{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;border:1px solid rgba(255,236,190,.35);background:rgba(255,255,255,.05);color:#f1e6c8;font-size:15px;transition:.25s}
.search-result:hover .open-result,.search-result.is-active .open-result{color:#2a1640;background:linear-gradient(180deg,#fff6dc,#ffd98a);border-color:#fff6dc;transform:rotate(45deg)}
.search-dialog .sr-empty{margin:14px 0 8px;padding:28px 16px;text-align:center;border-radius:24px;border:1px dashed rgba(255,236,190,.4);background:rgba(255,246,220,.04)}
.search-dialog .sr-empty span{display:block;font-size:28px;color:#ffe3a6}
.search-dialog .sr-empty h3{margin:8px 0 4px;font-size:16px;color:#fff}
.search-dialog .sr-empty p{margin:0;font-size:13px;color:#bfb2d8}
.search-dialog .sd-foot{display:flex;justify-content:center;gap:18px;flex-wrap:wrap;margin-top:6px;padding:12px 0 2px;border-top:1px solid rgba(255,236,190,.16);font-size:11px;font-weight:700;color:#aa9ec4}
.search-dialog .sd-foot kbd{margin-right:4px;min-width:20px;height:20px;padding:0 5px}

.search-results.is-fresh .search-result{animation:srIn .6s calc(.7s + var(--i,0)*.07s) cubic-bezier(.2,.9,.3,1) both}
@keyframes srIn{from{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:none}}

@media (hover:none){.search-dialog .sd-foot,.search-dialog .search-input kbd{display:none}}

/* ---------- celular: panel casi a pantalla completa, alas asomando por los lados ---------- */
@media (max-width:620px){
  body .search-overlay{padding:78px 10px max(10px,env(safe-area-inset-bottom))}
  .search-stage{width:100%;height:100%;max-height:none}
  .ang-wing{width:230px;top:-82px}
  .ang-wing-l{right:calc(100% - 26px)}.ang-wing-r{left:calc(100% - 26px)}
  body .search-overlay .search-dialog{border-radius:26px;padding:34px 14px calc(10px + env(safe-area-inset-bottom))}
  .search-dialog .search-input{height:54px}
  .search-dialog .search-result{grid-template-columns:52px minmax(0,1fr) 34px;gap:12px;padding:9px 10px}
  .sr-cover{width:52px;height:74px;border-radius:26px 26px 9px 9px}
  .search-dialog .search-result .sr-info>b{font-size:14.5px}
  .ang-halo{width:140px;height:36px;margin-left:-70px}
}
@media (prefers-reduced-motion:reduce){
  .angel-fx{display:none}.ang-wing,.ang-halo{opacity:1!important;animation:none!important}
  .search-results.is-fresh .search-result{animation:none}
  body .search-overlay .search-dialog{filter:none;transform:none;transition:opacity .2s}}
html.omni-perf .angel-fx,html.omni-perf .ang-wing{display:none}
html.omni-perf .ang-halo{opacity:1}
html.omni-perf body .search-overlay .search-dialog{filter:none;transform:none}


/* ======================================================================
   GATO ESTELAR (mascota)  —  componente reutilizable .omni-cat
   ====================================================================== */
.omni-cat{position:relative;display:flex;flex-direction:column;align-items:center;gap:10px;cursor:pointer;outline:none;-webkit-tap-highlight-color:transparent;user-select:none}
.omni-cat:focus-visible .cat-art{outline:2px solid var(--o-gold);outline-offset:6px;border-radius:50%}
.cat-aura{position:absolute;left:50%;top:-6%;width:min(100%,280px);aspect-ratio:1;transform:translateX(-50%);border-radius:50%;pointer-events:none;
  background:radial-gradient(circle at 50% 45%,rgba(201,155,255,.36),transparent 66%);filter:blur(8px);animation:catAura 4s ease-in-out infinite}
@keyframes catAura{0%,100%{opacity:.55;transform:translateX(-50%) scale(1)}50%{opacity:1;transform:translateX(-50%) scale(1.08)}}
.cat-stars{position:absolute;inset:0 0 40px;z-index:0;pointer-events:none}
.cat-stars i{position:absolute;font-style:normal;color:#e8cbff;text-shadow:0 0 8px #b875ff;animation:catTwinkle 3s ease-in-out infinite}
.cat-stars i:nth-child(1){top:8%;left:10%;font-size:14px}
.cat-stars i:nth-child(2){top:14%;right:10%;font-size:10px;animation-delay:.6s}
.cat-stars i:nth-child(3){bottom:28%;left:8%;font-size:9px;animation-delay:1.2s}
.cat-stars i:nth-child(4){bottom:12%;right:12%;font-size:12px;animation-delay:1.8s}
@keyframes catTwinkle{0%,100%{opacity:.25;transform:scale(.7)}50%{opacity:1;transform:scale(1.2)}}
.cat-art{position:relative;z-index:1;width:var(--cat-w,150px);transition:transform .3s}
.omni-cat:hover .cat-art{transform:scale(1.05)}
.cat-art svg{display:block;width:100%;height:auto;overflow:visible;animation:catBob 3.4s ease-in-out infinite;filter:drop-shadow(0 10px 18px rgba(120,60,200,.45))}
@keyframes catBob{50%{transform:translateY(-7px)}}
.cat-art svg .cat-orbit,.cat-art svg .cat-sparkles,.cat-art svg .cat-moon,.cat-art svg .cat-tail,.cat-art svg .cat-ear,.cat-art svg .cat-eye{transform-box:fill-box}
.cat-art .cat-orbit{transform-origin:center;animation:catSpin 11s linear infinite}
.cat-art .cat-sparkles{transform-origin:center;animation:catSparkle 2.3s ease-in-out infinite}
.cat-art .cat-moon{transform-origin:center;animation:catMoon 2.8s ease-in-out infinite}
.cat-art .cat-tail{transform-origin:top center;animation:catTail 2.6s ease-in-out infinite}
.cat-art .cat-ear-l{transform-origin:85% 100%;animation:catEarL 6s ease-in-out infinite}
.cat-art .cat-ear-r{transform-origin:15% 100%;animation:catEarR 7.5s 1.2s ease-in-out infinite}
.cat-art .cat-eye{transform-origin:center;animation:catBlink 5s infinite}
@keyframes catSpin{to{transform:rotate(360deg)}}
@keyframes catSparkle{0%,100%{opacity:.35}50%{opacity:1}}
@keyframes catMoon{0%,100%{filter:drop-shadow(0 0 4px rgba(255,201,120,.45))}50%{filter:drop-shadow(0 0 11px rgba(255,201,120,.95))}}
@keyframes catTail{0%,100%{transform:rotate(-4deg)}50%{transform:rotate(4deg)}}
@keyframes catEarL{0%,88%,100%{transform:rotate(0)}92%{transform:rotate(-9deg)}96%{transform:rotate(2deg)}}
@keyframes catEarR{0%,88%,100%{transform:rotate(0)}92%{transform:rotate(9deg)}96%{transform:rotate(-2deg)}}
@keyframes catBlink{0%,92%,100%{transform:scaleY(1)}95%{transform:scaleY(.08)}}
/* al tocarlo: salta de alegría */
.omni-cat.is-happy .cat-art{animation:catJump .7s cubic-bezier(.3,1.5,.5,1)}
@keyframes catJump{0%{transform:translateY(0) scale(1)}35%{transform:translateY(-18px) scale(1.08,.94)}70%{transform:translateY(0) scale(.96,1.05)}100%{transform:none}}
.cat-bubble{position:relative;z-index:2;max-width:250px;min-height:54px;padding:10px 16px;border-radius:18px;text-align:center;
  background:linear-gradient(180deg,rgba(30,18,60,.92),rgba(12,7,26,.95));border:1px solid rgba(196,164,255,.3);box-shadow:0 10px 28px rgba(0,0,0,.45)}
.cat-bubble::before{content:"";position:absolute;top:-7px;left:50%;width:12px;height:12px;margin-left:-6px;transform:rotate(45deg);background:rgba(30,18,60,.95);border-left:1px solid rgba(196,164,255,.3);border-top:1px solid rgba(196,164,255,.3)}
.cat-bubble strong{display:block;margin-bottom:2px;font:600 13px Cinzel,Georgia,serif;color:#f0dcff;letter-spacing:.03em}
.cat-bubble .cat-line{display:block;font-size:12.5px;line-height:1.4;color:#cbbfe0;transition:opacity .25s,transform .25s}
.cat-bubble .cat-line.is-out{opacity:0;transform:translateY(4px)}

/* panel del inicio */
.cat-panel{text-align:center;overflow:hidden}
.cat-panel .cat-art{--cat-w:128px}
.cat-panel .cat-cta{display:inline-flex;align-items:center;gap:8px;margin-top:14px;padding:10px 18px;border-radius:99px;font-size:12.5px;font-weight:800;text-decoration:none;color:#2a1640;
  background:linear-gradient(135deg,#ffe3a1,#f0b35c);transition:transform .25s,box-shadow .25s}
.cat-panel .cat-cta:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(240,179,92,.4)}
.cat-panel .cat-cta b{transition:transform .25s}.cat-panel .cat-cta:hover b{transform:translateX(3px)}

@media (prefers-reduced-motion:reduce){.omni-cat *,.omni-cat{animation:none!important}}
html.omni-perf .cat-aura,html.omni-perf .cat-stars{display:none}

/* ======================================================================
   BIBLIOTECA  —  v10  "Galería celestial"
   ====================================================================== */
.lb-card[hidden],.lb-noresults[hidden]{display:none!important}
.library-page .lb-main{width:min(1220px,calc(100% - 44px));margin:0 auto;padding:34px 0 110px}
.lb-kicker{display:inline-flex;align-items:center;gap:10px;font-size:11px;font-weight:800;letter-spacing:.28em;text-transform:uppercase;color:#ffd98a}
.lb-kicker i{display:inline-block;width:26px;height:1px;background:linear-gradient(90deg,transparent,#ffd98a)}

/* ---- portada ---- */
.lb-hero{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:26px;align-items:center;padding:38px 40px;border-radius:32px;overflow:hidden;isolation:isolate;
  border:1px solid rgba(196,164,255,.22);background:radial-gradient(70% 120% at 0% 0%,rgba(130,80,230,.30),transparent 62%),radial-gradient(60% 90% at 100% 100%,rgba(255,217,138,.10),transparent 65%),linear-gradient(180deg,rgba(24,14,48,.82),rgba(8,5,18,.9));
  box-shadow:0 30px 80px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,217,138,.2)}
.lb-hero::before{content:"";position:absolute;z-index:-1;right:-120px;top:-140px;width:460px;height:460px;border-radius:50%;border:1px dashed rgba(255,217,138,.22);animation:omniSpin 60s linear infinite}
.lb-hero::after{content:"";position:absolute;z-index:-1;right:-30px;top:-50px;width:280px;height:280px;border-radius:50%;border:1px solid rgba(196,164,255,.16);animation:omniSpin 40s linear infinite reverse}
.lb-hero h1{margin:14px 0 12px;font-family:Cinzel,Georgia,serif;font-weight:600;font-size:clamp(34px,6vw,60px);line-height:1.04;color:#fff;text-shadow:0 0 36px rgba(168,92,255,.45)}
.lb-hero h1 em,.lb-head h2 em{font-style:normal;background:linear-gradient(90deg,#ffe3a6,#d9b7ff);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;text-shadow:none}
.lb-hero p{max-width:560px;margin:0;font-size:15px;line-height:1.65;color:#bfb2d8}
.lb-stats{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}
.lb-stats div{min-width:92px;padding:11px 16px;border-radius:16px;border:1px solid rgba(196,164,255,.2);background:rgba(255,255,255,.04)}
.lb-stats strong{display:block;font-family:Cinzel,Georgia,serif;font-size:24px;line-height:1;color:#ffe3a6}
.lb-stats span{display:block;margin-top:5px;font-size:10px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:#9a8db3}
.lb-hero-cat{justify-self:center}
.lb-hero-cat .cat-art{--cat-w:170px}

/* ---- barra de herramientas ---- */
.lb-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:20px 0 6px;padding:12px;border-radius:24px;border:1px solid rgba(196,164,255,.18);
  background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.02));backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.lb-search{flex:1 1 260px;display:flex;align-items:center;gap:11px;height:48px;padding:0 14px 0 16px;border-radius:99px;cursor:text;
  background:rgba(4,2,12,.7);border:1px solid rgba(196,164,255,.26);transition:border-color .3s,box-shadow .3s}
.lb-search:focus-within{border-color:#ffd98a;box-shadow:0 0 0 4px rgba(255,217,138,.12),0 0 30px -4px rgba(255,217,138,.35)}
.lb-search svg{flex:0 0 19px;width:19px;height:19px;fill:none;stroke:#ffd98a;stroke-width:2;stroke-linecap:round}
.lb-search input{flex:1;min-width:0;height:46px;background:none;border:0;outline:0;color:#fff;font:inherit;font-size:14.5px;font-weight:600}
.lb-search input::placeholder{color:#8a7ea3;font-weight:500}
.lb-search input::-webkit-search-cancel-button{-webkit-appearance:none}
.lb-search kbd{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:7px;border:1px solid rgba(196,164,255,.3);background:rgba(255,255,255,.05);color:#a99cc0;font:inherit;font-size:11px;font-weight:800}
.lb-toolbar .lb-seg{display:flex;align-items:center;gap:4px;padding:4px;border-radius:99px;background:rgba(4,2,12,.6);border:1px solid rgba(196,164,255,.2)}
.lb-toolbar .lb-seg button{cursor:pointer;height:38px;padding:0 15px;border-radius:99px;border:0;background:none;color:#cdbdf0;font:inherit;font-size:13px;font-weight:700;white-space:nowrap;transition:color .25s,background .25s,box-shadow .25s;-webkit-tap-highlight-color:transparent}
.lb-toolbar .lb-seg button:hover{color:#fff;background:rgba(255,255,255,.07)}
.lb-toolbar .lb-seg button.active{color:#2a1640;background:linear-gradient(135deg,#ffe3a1,#f0b35c);box-shadow:0 6px 18px rgba(240,179,92,.35)}

/* ---- encabezados de sección ---- */
.lb-section{margin-top:44px}
.lb-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px}
.lb-head h2{margin:10px 0 0;font-family:Cinzel,Georgia,serif;font-weight:600;font-size:clamp(24px,4vw,34px);line-height:1.1;color:#fff}
.lb-visible{display:flex;align-items:baseline;gap:8px;padding-bottom:4px}
.lb-visible strong{font-family:Cinzel,Georgia,serif;font-size:30px;line-height:1;color:#ffe3a6}
.lb-visible span{font-size:10.5px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:#9a8db3}

/* ---- tarjetas ---- */
.lb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(205px,1fr));gap:22px}
.lb-card{position:relative;display:flex;flex-direction:column;min-width:0;border-radius:24px;overflow:hidden;
  background:linear-gradient(180deg,rgba(32,20,64,.72),rgba(10,6,22,.94));border:1px solid rgba(196,164,255,.17);
  box-shadow:0 14px 34px rgba(0,0,0,.4);animation:lbIn .6s calc(var(--i,0)*.05s) cubic-bezier(.2,.9,.3,1) both;
  transition:transform .35s cubic-bezier(.2,.9,.3,1),border-color .3s,box-shadow .35s}
@keyframes lbIn{from{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:none}}
.lb-card:hover{transform:translateY(-7px);border-color:rgba(255,217,138,.7);box-shadow:0 26px 54px rgba(0,0,0,.55),0 0 38px -6px rgba(255,217,138,.3)}
.lb-cover{position:relative;display:block;aspect-ratio:2/3;overflow:hidden;background:linear-gradient(160deg,#2c1b55,#0d0720)}
.lb-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s cubic-bezier(.2,.9,.3,1)}
.lb-card:hover .lb-cover img{transform:scale(1.08)}
.lb-nocover{position:absolute;inset:0;display:grid;place-content:center;gap:6px;text-align:center;font-size:34px;color:#ffd98a}
.lb-nocover small{font-size:10px;letter-spacing:.2em;color:#9a8db3}
.lb-shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(5,2,14,.5) 0%,transparent 28%,transparent 55%,rgba(5,2,14,.88) 100%)}
.lb-state,.lb-visits,.lb-new{position:absolute;z-index:2;display:inline-flex;align-items:center;height:24px;padding:0 10px;border-radius:99px;font-size:10.5px;font-weight:800;letter-spacing:.05em;
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.lb-state{top:10px;left:10px;color:#c8f5dc;background:rgba(8,30,20,.62);border:1px solid rgba(140,235,185,.4)}
.lb-visits{top:10px;right:10px;color:#ffd98a;background:rgba(20,12,36,.65);border:1px solid rgba(255,217,138,.4)}
.lb-new{left:10px;bottom:10px;color:#2a1640;background:linear-gradient(135deg,#fff0c4,#f0b35c);box-shadow:0 4px 14px rgba(240,179,92,.5)}
.lb-new.lb-tag-novel{background:linear-gradient(135deg,#fff,var(--novel-accent,#d9b7ff))}
.lb-open{position:absolute;z-index:3;left:50%;bottom:14px;display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 16px;border-radius:99px;white-space:nowrap;
  font-size:11px;font-weight:800;letter-spacing:.12em;color:#2a1640;background:linear-gradient(135deg,#fff0c4,#f0b35c);box-shadow:0 10px 26px rgba(0,0,0,.5);
  opacity:0;transform:translate(-50%,14px);transition:opacity .3s,transform .35s cubic-bezier(.2,.9,.3,1)}
.lb-card:hover .lb-open{opacity:1;transform:translate(-50%,0)}
.lb-card:hover .lb-new{opacity:0}
.lb-body{display:flex;flex-direction:column;gap:10px;flex:1;padding:14px 14px 14px}
.lb-body h3{margin:0;font-size:15px;font-weight:700;line-height:1.3;color:#fff;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.6em}
.lb-body h3 a{color:inherit;text-decoration:none;transition:color .25s}
.lb-card:hover .lb-body h3 a{color:#ffe3a6}
.lb-syn{margin:0;font-size:12px;line-height:1.55;color:#9a8db3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.lb-foot{display:flex;align-items:center;gap:10px;margin-top:auto;padding-top:4px}
.lb-chap{flex:1;min-width:0;display:flex;align-items:center;gap:8px;height:38px;padding:0 12px;border-radius:99px;text-decoration:none;
  background:linear-gradient(90deg,rgba(168,92,255,.28),rgba(168,92,255,.1));border:1px solid rgba(196,164,255,.3);color:#fff;transition:border-color .25s,background .25s}
.lb-chap small{font-size:9px;font-weight:800;letter-spacing:.12em;color:#b9a8d8;white-space:nowrap}
.lb-chap strong{font-size:14px;font-weight:800;color:#ffe3a6}
.lb-chap b{margin-left:auto;font-size:13px;color:#cdbdf0;transition:transform .25s}
.lb-chap:hover{border-color:#ffd98a;background:linear-gradient(90deg,rgba(255,217,138,.22),rgba(168,92,255,.1))}
.lb-chap:hover b{transform:translate(2px,-2px);color:#ffd98a}
.lb-nochap{flex:1;font-size:12px;color:#8a7ea3}
.lb-card .lb-save{flex:0 0 38px;display:grid;place-items:center;width:38px;height:38px;padding:0;gap:0;border-radius:50%;cursor:pointer;
  border:1px solid rgba(196,164,255,.32);background:rgba(255,255,255,.05);color:#cdbdf0;transition:transform .25s,border-color .25s,background .25s,color .25s;-webkit-tap-highlight-color:transparent}
.lb-card .lb-save .save-label{display:none}
.lb-card .lb-save .save-icon{display:grid;place-items:center;width:auto;height:auto;background:none}
.lb-card .lb-save svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linejoin:round}
.lb-card .lb-save:hover{border-color:#ffd98a;color:#ffd98a;transform:translateY(-2px)}
.lb-card .lb-save:active{transform:scale(.88)}
.lb-card .lb-save.is-saved{color:#2a1640;background:linear-gradient(135deg,#ffe3a1,#f0b35c);border-color:transparent}
.lb-card .lb-save.is-saved svg{fill:currentColor}

.lb-noresults,.lb-empty{grid-column:1/-1;display:grid;justify-items:center;gap:6px;padding:48px 20px;text-align:center;border-radius:26px;border:1px dashed rgba(196,164,255,.3);background:rgba(255,255,255,.02)}
.lb-noresults{margin-top:6px}
.lb-noresults span,.lb-empty span{font-size:32px;color:#ffd98a}
.lb-noresults strong,.lb-empty h3{margin:0;font-size:17px;color:#fff}
.lb-noresults p,.lb-empty p{margin:0;font-size:13.5px;color:#9a8db3}

/* ---- adaptación ---- */
@media (max-width:900px){
  .lb-hero{grid-template-columns:1fr;padding:28px 22px 24px;text-align:left}
  .lb-hero-cat{order:-1;margin-bottom:-6px}
  .lb-hero-cat .cat-art{--cat-w:120px}
}
@media (max-width:620px){
  .library-page .lb-main{width:calc(100% - 24px);padding-top:18px}
  .lb-hero{border-radius:26px}
  .lb-toolbar{padding:10px;border-radius:22px}
  .lb-search{flex-basis:100%}
  .lb-search kbd{display:none}
  .lb-toolbar .lb-seg{flex:1 1 100%;overflow-x:auto;scrollbar-width:none}
  .lb-toolbar .lb-seg::-webkit-scrollbar{display:none}
  .lb-toolbar .lb-seg button{flex:1;padding:0 12px;font-size:12.5px}
  .lb-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .lb-card{border-radius:20px}
  .lb-syn,.lb-open{display:none}
  .lb-body{padding:11px 10px 11px}
  .lb-body h3{font-size:13.5px}
  .lb-chap{height:36px;padding:0 10px}.lb-chap small{display:none}
  .lb-card .lb-save{flex-basis:36px;width:36px;height:36px}
  .lb-state,.lb-visits,.lb-new{height:22px;padding:0 8px;font-size:9.5px}
  .lb-head{align-items:center}
}
@media (hover:none){.lb-card:hover{transform:none}}
@media (prefers-reduced-motion:reduce){.lb-card{animation:none}.lb-hero::before,.lb-hero::after{animation:none}}
html.omni-perf .lb-hero::before,html.omni-perf .lb-hero::after{display:none}
html.omni-perf .lb-toolbar{backdrop-filter:none;background:rgba(20,12,40,.9)}

/* ======================================================================
   BIBLIOTECA  —  v11  "ABISMO DEMONÍACO"
   Todo va bajo body.library-page para no tocar el resto del sitio.
   Incluye el ARREGLO DE LA CABECERA (logo gigante + menú flotando).
   ====================================================================== */
body.library-page{
  --d-black:#050102; --d-ink:#0b0306; --d-blood:#c1121f; --d-red:#ff2a36; --d-ember:#ff6a1a; --d-gold:#ffb347;
  --d-bone:#f4e7dc; --d-ash:#b59a98; --d-line:rgba(255,42,54,.28);
  --o-bg:#050102; --o-card:#0b0306; --o-card2:#13060a;
  --o-line:rgba(255,42,54,.26); --o-line2:rgba(255,106,26,.4);
  --o-purple:#e11d2a; --o-violet:#8f0a14; --o-hi:#ff8a8f; --o-gold:#ff8a3a; --o-gold2:#ff5a1f; --o-star:#ffd9c2;
  background:
    radial-gradient(60% 45% at 50% -8%,rgba(193,18,31,.38),transparent 70%),
    radial-gradient(40% 40% at 100% 100%,rgba(255,106,26,.12),transparent 70%),
    radial-gradient(40% 40% at 0% 70%,rgba(143,10,20,.2),transparent 70%),
    #050102 !important;
  color:var(--d-bone);
}
body.library-page #pageConstellationCanvas{display:none!important}
/* brasas que suben (solo CSS, sin JS) */
body.library-page::before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.7;
  background-image:radial-gradient(circle,#ff6a1a 0 1.4px,transparent 2px),radial-gradient(circle,#ff2a36 0 1.2px,transparent 2px),radial-gradient(circle,#ffb347 0 1px,transparent 2px);
  background-size:260px 300px,340px 380px,200px 240px;background-position:0 0,90px 120px,40px 200px;
  animation:dEmbers 22s linear infinite;mask-image:linear-gradient(0deg,#000,transparent 80%);-webkit-mask-image:linear-gradient(0deg,#000,transparent 80%)}
@keyframes dEmbers{to{background-position:30px -600px,120px -680px,10px -520px}}
body.library-page::after{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(120% 90% at 50% 50%,transparent 55%,rgba(0,0,0,.75) 100%)}
body.library-page .lb-main,body.library-page .topbar{position:relative;z-index:2}

/* ---------- CABECERA (arreglo) ---------- */
body.library-page .topbar{position:sticky;top:0;z-index:50;width:100%;margin:0;padding:10px 0;
  background:linear-gradient(180deg,rgba(5,1,2,.94),rgba(5,1,2,.72));backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--d-line);box-shadow:0 1px 0 rgba(255,106,26,.12),0 14px 40px -20px rgba(193,18,31,.6)}
body.library-page .topbar .nav-wrap{display:flex!important;align-items:center;justify-content:space-between;gap:20px;
  width:min(1220px,calc(100% - 44px));margin:0 auto;padding:0;position:static;height:auto}
body.library-page .topbar .brand{display:inline-flex!important;align-items:center;gap:12px;flex:0 0 auto;text-decoration:none;color:var(--d-bone)}
body.library-page .topbar .brand-mark{display:grid!important;place-items:center;flex:0 0 46px;width:46px!important;height:46px!important;max-width:46px;
  border-radius:50%;overflow:hidden;background:#000;border:1px solid rgba(255,42,54,.6);box-shadow:0 0 0 3px rgba(193,18,31,.15),0 0 22px rgba(255,42,54,.45)}
body.library-page .topbar .brand-mark img{display:block;width:100%!important;height:100%!important;max-width:100%!important;object-fit:cover;
  filter:hue-rotate(88deg) saturate(1.6) brightness(1.05) contrast(1.1)}
body.library-page .topbar .brand-copy{display:flex;flex-direction:column;line-height:1.1}
body.library-page .topbar .brand-copy strong{font:700 17px Cinzel,Georgia,serif;letter-spacing:.14em;color:#fff;text-shadow:0 0 18px rgba(255,42,54,.55)}
body.library-page .topbar .brand-copy small{margin-top:4px;font-size:9.5px;font-weight:800;letter-spacing:.3em;color:var(--d-ember)}
body.library-page .cosmic-nav{display:flex!important;align-items:center;gap:6px;position:static!important;transform:none!important;margin:0;padding:5px;
  border-radius:99px;background:rgba(10,3,6,.8);border:1px solid var(--d-line);box-shadow:inset 0 0 20px rgba(193,18,31,.12)}
body.library-page .cosmic-nav-item{display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 15px 0 11px;border-radius:99px;text-decoration:none;
  font-size:12.5px;font-weight:800;letter-spacing:.04em;color:#d9bdb8;transition:color .25s,background .25s,box-shadow .25s}
body.library-page .cosmic-nav-item .nav-icon{display:grid;place-items:center;width:24px;height:24px;border-radius:8px;background:rgba(255,42,54,.1);border:1px solid rgba(255,42,54,.25)}
body.library-page .cosmic-nav-item .nav-icon svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
body.library-page .cosmic-nav-item:hover{color:#fff;background:rgba(255,42,54,.12)}
body.library-page .cosmic-nav-item.active{color:#fff;background:linear-gradient(135deg,rgba(193,18,31,.85),rgba(143,10,20,.7));box-shadow:0 0 22px -2px rgba(255,42,54,.65),inset 0 1px 0 rgba(255,255,255,.18)}
body.library-page .cosmic-nav-item.active .nav-icon{background:rgba(0,0,0,.35);border-color:rgba(255,255,255,.3)}
@media (max-width:820px){
  body.library-page .topbar .nav-wrap{width:calc(100% - 24px)}
  body.library-page .cosmic-nav{display:none!important} /* en móvil ya existe la barra inferior */
}

/* ---------- PORTADA ---------- */
body.library-page .lb-main{padding-top:38px}
body.library-page .lb-kicker{color:var(--d-ember);text-shadow:0 0 14px rgba(255,106,26,.5)}
body.library-page .lb-kicker i{background:linear-gradient(90deg,transparent,var(--d-red))}
body.library-page .lb-hero{border:1px solid rgba(255,42,54,.4);border-radius:6px 34px 6px 34px;
  background:
    radial-gradient(70% 130% at 0% 0%,rgba(193,18,31,.42),transparent 62%),
    radial-gradient(60% 90% at 100% 100%,rgba(255,106,26,.2),transparent 65%),
    repeating-linear-gradient(135deg,rgba(255,255,255,.012) 0 2px,transparent 2px 9px),
    linear-gradient(180deg,#14050a,#050102);
  box-shadow:0 30px 90px rgba(0,0,0,.7),0 0 60px -20px rgba(255,42,54,.5),inset 0 1px 0 rgba(255,106,26,.35),inset 0 0 80px rgba(143,10,20,.25)}
body.library-page .lb-hero::before{border:1px dashed rgba(255,106,26,.32)}
body.library-page .lb-hero::after{border:1px solid rgba(255,42,54,.28)}
/* esquinas de hierro */
body.library-page .lb-hero-copy{position:static}
body.library-page .lb-hero > .lb-hero-copy::before{content:"";position:absolute;left:14px;top:14px;width:26px;height:26px;border-left:2px solid var(--d-red);border-top:2px solid var(--d-red);opacity:.7}
body.library-page .lb-hero h1{font-family:Cinzel,Georgia,serif;font-weight:800;letter-spacing:.03em;text-transform:uppercase;color:#fff;
  text-shadow:0 0 6px rgba(255,42,54,.7),0 0 34px rgba(193,18,31,.8),0 3px 0 #5a0710;animation:dFlicker 5s infinite}
body.library-page .lb-hero h1 em,body.library-page .lb-head h2 em{background:linear-gradient(90deg,#ffb347,#ff2a36 60%,#c1121f);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 12px rgba(255,42,54,.55))}
@keyframes dFlicker{0%,100%{opacity:1}92%{opacity:1}93%{opacity:.82}94%{opacity:1}96%{opacity:.88}97%{opacity:1}}
body.library-page .lb-hero p{color:#c9aca8}
body.library-page .lb-stats div{border:1px solid rgba(255,42,54,.3);border-radius:4px 14px 4px 14px;background:rgba(193,18,31,.08)}
body.library-page .lb-stats strong{color:#ffb347;text-shadow:0 0 16px rgba(255,106,26,.6)}
body.library-page .lb-stats span{color:#a98582}

/* mascota -> pequeño demonio (se recolorea sin tocar el PHP) */
body.library-page .lb-hero-cat .cat-aura{background:radial-gradient(circle at 50% 45%,rgba(255,42,54,.5),transparent 66%)}
body.library-page .lb-hero-cat .cat-stars i{color:#ff8a5a;text-shadow:0 0 8px #ff2a36}
body.library-page .lb-hero-cat .cat-art svg{filter:drop-shadow(0 10px 22px rgba(255,42,54,.6))}
body.library-page .lb-hero-cat .cat-body > ellipse:nth-of-type(1){fill:#2a0a10;stroke:#ff2a36}
body.library-page .lb-hero-cat .cat-body > ellipse:nth-of-type(2),body.library-page .lb-hero-cat .cat-body > ellipse:nth-of-type(3){fill:#ff2a36;opacity:.35}
body.library-page .lb-hero-cat .cat-ear path:first-child{fill:#8f0a14;stroke:#ff2a36}
body.library-page .lb-hero-cat .cat-ear path:last-child{fill:#ff6a1a;opacity:.5}
body.library-page .lb-hero-cat .cat-eye{fill:#ff2a36;filter:drop-shadow(0 0 6px #ff2a36)}
body.library-page .lb-hero-cat .cat-moon circle{fill:#ff6a1a}
body.library-page .lb-hero-cat .cat-tail{fill:#c1121f}
body.library-page .lb-hero-cat .cat-orbit ellipse{stroke:#ff6a1a}
body.library-page .lb-hero-cat .cat-orbit circle{fill:#ffb347}
body.library-page .lb-hero-cat .cat-bubble{background:linear-gradient(180deg,#1b070c,#080204);border:1px solid rgba(255,42,54,.45);border-radius:4px 16px 4px 16px;box-shadow:0 10px 28px rgba(0,0,0,.6),0 0 24px -8px rgba(255,42,54,.6)}
body.library-page .lb-hero-cat .cat-bubble::before{background:#1b070c;border-left:1px solid rgba(255,42,54,.45);border-top:1px solid rgba(255,42,54,.45)}
body.library-page .lb-hero-cat .cat-bubble strong{color:#ff8a5a}
body.library-page .lb-hero-cat .cat-bubble .cat-line{color:#d3b6b1}

/* ---------- BARRA DE HERRAMIENTAS ---------- */
body.library-page .lb-toolbar{border:1px solid rgba(255,42,54,.28);border-radius:4px 22px 4px 22px;background:linear-gradient(180deg,rgba(193,18,31,.08),rgba(0,0,0,.4))}
body.library-page .lb-search{background:rgba(0,0,0,.65);border:1px solid rgba(255,42,54,.35)}
body.library-page .lb-search:focus-within{border-color:#ff2a36;box-shadow:0 0 0 4px rgba(255,42,54,.14),0 0 30px -4px rgba(255,42,54,.55)}
body.library-page .lb-search svg{stroke:#ff6a1a}
body.library-page .lb-search input::placeholder{color:#8d6f6c}
body.library-page .lb-search kbd{border:1px solid rgba(255,42,54,.35);color:#c9a29d}
body.library-page .lb-toolbar .lb-seg{background:rgba(0,0,0,.6);border:1px solid rgba(255,42,54,.28)}
body.library-page .lb-toolbar .lb-seg button{color:#d3b3ae}
body.library-page .lb-toolbar .lb-seg button:hover{color:#fff;background:rgba(255,42,54,.14)}
body.library-page .lb-toolbar .lb-seg button.active{color:#fff;background:linear-gradient(135deg,#ff2a36,#8f0a14);box-shadow:0 6px 20px rgba(255,42,54,.45),inset 0 1px 0 rgba(255,255,255,.25)}

/* ---------- ENCABEZADOS ---------- */
body.library-page .lb-head h2{font-weight:800;letter-spacing:.04em;text-transform:uppercase;text-shadow:0 0 22px rgba(193,18,31,.6)}
body.library-page .lb-head{padding-bottom:12px;border-bottom:1px solid rgba(255,42,54,.2);position:relative}
body.library-page .lb-head::after{content:"";position:absolute;left:0;bottom:-1px;width:120px;height:2px;background:linear-gradient(90deg,#ff2a36,transparent);box-shadow:0 0 12px #ff2a36}
body.library-page .lb-visible strong{color:#ffb347;text-shadow:0 0 16px rgba(255,106,26,.55)}
body.library-page .lb-visible span{color:#a98582}

/* ---------- TARJETAS ---------- */
body.library-page .lb-card{border-radius:4px 22px 4px 22px;background:linear-gradient(180deg,#17070c,#070203);border:1px solid rgba(255,42,54,.24);box-shadow:0 14px 34px rgba(0,0,0,.6)}
body.library-page .lb-card:hover{border-color:#ff2a36;box-shadow:0 26px 54px rgba(0,0,0,.7),0 0 40px -6px rgba(255,42,54,.65)}
body.library-page .lb-cover{background:linear-gradient(160deg,#3a0a12,#0a0203)}
body.library-page .lb-card:hover .lb-cover img{filter:saturate(1.15) contrast(1.05)}
body.library-page .lb-shade{background:linear-gradient(180deg,rgba(20,0,4,.55) 0%,transparent 28%,transparent 50%,rgba(8,0,2,.94) 100%)}
body.library-page .lb-state{color:#ffd0c0;background:rgba(60,6,12,.72);border:1px solid rgba(255,90,70,.5)}
body.library-page .lb-visits{color:#ffb347;background:rgba(20,4,8,.75);border:1px solid rgba(255,106,26,.5)}
body.library-page .lb-new,body.library-page .lb-open{color:#fff;background:linear-gradient(135deg,#ff2a36,#8f0a14);box-shadow:0 6px 18px rgba(255,42,54,.55)}
body.library-page .lb-new.lb-tag-novel{background:linear-gradient(135deg,#ff6a1a,var(--novel-accent,#8f0a14))}
body.library-page .lb-card:hover .lb-body h3 a{color:#ff8a5a}
body.library-page .lb-syn{color:#a98582}
body.library-page .lb-nocover,body.library-page .lb-noresults span,body.library-page .lb-empty span{color:#ff6a1a}
body.library-page .lb-nocover small{color:#8d6f6c}
body.library-page .lb-chap{background:linear-gradient(90deg,rgba(193,18,31,.4),rgba(193,18,31,.1));border:1px solid rgba(255,42,54,.4)}
body.library-page .lb-chap small{color:#d2a7a1}
body.library-page .lb-chap strong{color:#ffb347}
body.library-page .lb-chap b{color:#e0b8b2}
body.library-page .lb-chap:hover{border-color:#ff6a1a;background:linear-gradient(90deg,rgba(255,106,26,.3),rgba(193,18,31,.12))}
body.library-page .lb-chap:hover b{color:#ff6a1a}
body.library-page .lb-card .lb-save{border:1px solid rgba(255,42,54,.4);background:rgba(255,255,255,.04);color:#e0b8b2}
body.library-page .lb-card .lb-save:hover{border-color:#ff6a1a;color:#ff6a1a}
body.library-page .lb-card .lb-save.is-saved{color:#fff;background:linear-gradient(135deg,#ff2a36,#8f0a14);box-shadow:0 0 18px rgba(255,42,54,.6)}
body.library-page .lb-noresults,body.library-page .lb-empty{border:1px dashed rgba(255,42,54,.35);background:rgba(193,18,31,.04)}
body.library-page .lb-noresults p,body.library-page .lb-empty p{color:#a98582}

/* móvil */
@media (max-width:620px){
  body.library-page .lb-hero{border-radius:4px 26px 4px 26px}
  body.library-page .lb-card{border-radius:4px 18px 4px 18px}
}
@media (prefers-reduced-motion:reduce){body.library-page::before,body.library-page .lb-hero h1{animation:none!important}}
html.omni-perf body.library-page::before{display:none}
html.omni-perf body.library-page .lb-hero h1{animation:none}

/* ======================================================================
   v12 — LOGO DEMONÍACO (como el de Series, con gatito) + ANIMACIONES INFERNALES
   ====================================================================== */
body.library-page .brand-demon{display:inline-flex;align-items:center;flex:0 0 auto;text-decoration:none;filter:drop-shadow(0 0 14px rgba(255,42,54,.35))}
body.library-page .dl-logo{display:block;height:70px;width:auto;overflow:visible}
body.library-page .dl-orbit{transform-origin:55px 55px;animation:dlSpin 9s linear infinite}
body.library-page .dl-runes{animation:dlSpinR 14s linear infinite}
body.library-page .dl-core{transform-box:fill-box;transform-origin:center;animation:dlPulse 2.4s ease-in-out infinite}
body.library-page .dl-eye{animation:dlBlink 4.5s infinite;transform-box:fill-box;transform-origin:center}
body.library-page .dl-text{animation:dlText 3.2s ease-in-out infinite}
body.library-page .dl-line{stroke-dasharray:6 4;animation:dlDash 1.6s linear infinite;opacity:.85}
body.library-page .dl-cat{animation:dlCatBob 3s ease-in-out infinite}
body.library-page .dl-cat-eyes{transform-box:fill-box;transform-origin:center;animation:dlBlink 5s 1s infinite}
body.library-page .dl-tail{transform-box:fill-box;transform-origin:0 100%;animation:dlTail 1.8s ease-in-out infinite}
@keyframes dlSpin{to{transform:rotate(360deg)}}
@keyframes dlSpinR{to{transform:rotate(-360deg)}}
@keyframes dlPulse{0%,100%{opacity:.85;transform:scale(1)}50%{opacity:1;transform:scale(1.1)}}
@keyframes dlBlink{0%,92%,100%{transform:scaleY(1)}95%{transform:scaleY(.1)}}
@keyframes dlText{0%,100%{filter:drop-shadow(0 0 2px rgba(255,42,54,.4))}50%{filter:drop-shadow(0 0 8px rgba(255,42,54,.95))}}
@keyframes dlDash{to{stroke-dashoffset:-20}}
@keyframes dlCatBob{50%{transform:translate(414px,21px)}}
@keyframes dlTail{0%,100%{transform:rotate(-8deg)}50%{transform:rotate(10deg)}}
body.library-page .brand-demon:hover .dl-cat-eyes ellipse{fill:#ffb347}
body.library-page .brand-demon:hover .dl-orbit{animation-duration:2s}

/* línea de fuego que recorre la cabecera */
body.library-page .topbar{overflow:visible}
body.library-page .topbar::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;pointer-events:none;
  background:linear-gradient(90deg,transparent 0,#ff2a36 20%,#ff6a1a 50%,#ff2a36 80%,transparent 100%);background-size:40% 100%;background-repeat:no-repeat;
  filter:drop-shadow(0 0 6px #ff2a36);animation:dlSweep 5s ease-in-out infinite}
@keyframes dlSweep{0%{background-position:-60% 0}100%{background-position:160% 0}}
body.library-page .cosmic-nav-item.active{animation:dlNavPulse 2.6s ease-in-out infinite}
@keyframes dlNavPulse{0%,100%{box-shadow:0 0 14px -2px rgba(255,42,54,.5),inset 0 1px 0 rgba(255,255,255,.18)}50%{box-shadow:0 0 30px 0 rgba(255,42,54,.95),inset 0 1px 0 rgba(255,255,255,.28)}}
body.library-page .cosmic-nav-item:hover .nav-icon{animation:dlShake .35s}
@keyframes dlShake{25%{transform:rotate(-12deg)}75%{transform:rotate(12deg)}}

/* portada: barrido de escáner infernal + glitch del título */
body.library-page .lb-hero-copy::after{content:"";position:absolute;left:0;right:0;top:0;height:140px;pointer-events:none;z-index:-1;
  background:linear-gradient(180deg,transparent,rgba(255,42,54,.13),transparent);animation:dlScan 6s ease-in-out infinite}
@keyframes dlScan{0%{transform:translateY(-160px)}100%{transform:translateY(520px)}}
body.library-page .lb-hero h1 em{animation:dlGlitch 6s infinite}
@keyframes dlGlitch{0%,90%,100%{transform:none;text-shadow:none}91%{transform:translate(-3px,1px)}92%{transform:translate(3px,-1px)}93%{transform:translate(-2px,0)}94%{transform:none}}
body.library-page .lb-stats div{animation:dlBeat 3s ease-in-out infinite}
body.library-page .lb-stats div:nth-child(2){animation-delay:.4s}body.library-page .lb-stats div:nth-child(3){animation-delay:.8s}
@keyframes dlBeat{0%,100%{box-shadow:0 0 0 rgba(255,42,54,0)}50%{box-shadow:0 0 22px -4px rgba(255,42,54,.6)}}
body.library-page .lb-kicker i{animation:dlLine 2.2s ease-in-out infinite}
@keyframes dlLine{50%{width:44px}}

/* tarjetas: respiran en rojo, llamas en la base y levitan al pasar */
body.library-page .lb-card{animation:lbIn .6s calc(var(--i,0)*.05s) cubic-bezier(.2,.9,.3,1) both,dlBreath 5s calc(var(--i,0)*.35s) ease-in-out infinite}
@keyframes dlBreath{0%,100%{border-color:rgba(255,42,54,.2)}50%{border-color:rgba(255,42,54,.55)}}
body.library-page .lb-cover::after{content:"";position:absolute;left:-10%;right:-10%;bottom:-24px;height:46%;z-index:1;pointer-events:none;
  background:radial-gradient(60% 100% at 20% 100%,rgba(255,42,54,.55),transparent 70%),radial-gradient(50% 90% at 70% 100%,rgba(255,106,26,.5),transparent 70%),radial-gradient(40% 80% at 95% 100%,rgba(255,42,54,.45),transparent 70%);
  mix-blend-mode:screen;opacity:.35;transform-origin:50% 100%;animation:dlFlame 2.4s ease-in-out infinite alternate;transition:opacity .35s}
@keyframes dlFlame{0%{transform:scaleY(.85) skewX(-3deg)}50%{transform:scaleY(1.1) skewX(3deg)}100%{transform:scaleY(.95) skewX(-2deg)}}
body.library-page .lb-card:hover .lb-cover::after{opacity:.95}
body.library-page .lb-new{animation:dlBadge 1.8s ease-in-out infinite}
@keyframes dlBadge{50%{box-shadow:0 0 22px rgba(255,42,54,.95);transform:scale(1.07)}}
body.library-page .lb-visits{animation:dlBadgeV 3s ease-in-out infinite}
@keyframes dlBadgeV{50%{border-color:#ff6a1a;box-shadow:0 0 14px rgba(255,106,26,.6)}}
body.library-page .lb-card .lb-save.is-saved{animation:dlBeat2 2s ease-in-out infinite}
@keyframes dlBeat2{50%{box-shadow:0 0 26px rgba(255,42,54,1)}}

/* botones activos y buscador */
body.library-page .lb-toolbar .lb-seg button.active{animation:dlBtn 2.4s ease-in-out infinite}
@keyframes dlBtn{50%{box-shadow:0 6px 30px rgba(255,42,54,.85),inset 0 1px 0 rgba(255,255,255,.3)}}

/* resplandor de lava en el fondo */
body.library-page .lb-main::before{content:"";position:fixed;left:0;right:0;bottom:0;height:200px;z-index:-1;pointer-events:none;
  background:radial-gradient(70% 100% at 50% 120%,rgba(255,42,54,.4),rgba(193,18,31,.12) 55%,transparent 75%);animation:dlLava 4s ease-in-out infinite alternate}
@keyframes dlLava{from{opacity:.55;transform:scaleY(.9)}to{opacity:1;transform:scaleY(1.15)}}

/* móvil: logo más compacto */
@media (max-width:620px){body.library-page .dl-logo{height:42px}}

/* ahorro de recursos */
html.omni-perf body.library-page *,html.omni-perf body.library-page *::before,html.omni-perf body.library-page *::after{animation:none!important}
@media (prefers-reduced-motion:reduce){body.library-page *,body.library-page *::before,body.library-page *::after{animation:none!important}}
