/* HACKERWEB V40 — OPEN BOOK. All page content comes from the author's authentic PDF. */
#v40-book-hit{position:absolute;inset:0;width:100%;height:100%;z-index:43;border:0;background:transparent;cursor:zoom-in;opacity:1;padding:0;clip-path:polygon(32% 12.6%,59.6% 12.4%,60.2% 89.5%,32.9% 89.4%);-webkit-tap-highlight-color:transparent}
.scene.v18-day #v40-book-hit{clip-path:polygon(32.2% 16.1%,58.4% 16.2%,59.3% 88.8%,32.7% 88.7%)}
#v40-book-hit::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 20%,rgba(154,255,77,.18) 47%,rgba(184,250,138,.025) 65%,transparent 80%);opacity:0;transition:opacity .32s ease}
.scene:has(#v40-book-hit:hover) #v40-book-hit::after,.scene:has(#v40-book-hit:focus-visible) #v40-book-hit::after{opacity:1}
#v40-book-hit:focus-visible{outline:5px solid #adf87b;outline-offset:-6px}
#v40-book-hint{position:absolute;left:49%;top:89%;transform:translate(-50%,8px);pointer-events:none;z-index:44;opacity:0;transition:opacity .32s,transform .32s;border:1px solid #d2b37d88;border-radius:30px;background:#0b141dde;box-shadow:0 12px 38px #0008;padding:11px 17px;font:700 12px/1.1 system-ui,sans-serif;letter-spacing:.12em;color:#fff;white-space:nowrap}
.scene:has(#v40-book-hit:hover) #v40-book-hint,.scene:has(#v40-book-hit:focus-visible) #v40-book-hint{opacity:1;transform:translate(-50%,0)}
#v40-reader{--v40-gold:#c1a477;position:fixed;inset:0;z-index:100000;color:#f8efe2;font-family:system-ui,-apple-system,BlinkMacSystemFont,sans-serif;isolation:isolate;display:grid;place-items:center;visibility:hidden;opacity:0;pointer-events:none;transition:opacity .48s ease,visibility 0s linear .48s}
#v40-reader[data-open="true"]{visibility:visible;opacity:1;pointer-events:auto;transition:opacity .48s ease}
#v40-reader .v40-backdrop{position:absolute;inset:0;background:linear-gradient(105deg,rgba(6,11,17,.78),rgba(7,13,19,.59) 60%,rgba(5,8,12,.82));backdrop-filter:blur(21px) saturate(.67) brightness(.66);-webkit-backdrop-filter:blur(21px) saturate(.67) brightness(.66)}
#v40-reader .v40-shell{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;width:min(1500px,97vw);height:min(98dvh,1050px);max-height:98dvh;gap:clamp(7px,1.3vh,15px);padding:clamp(12px,2vw,24px) clamp(4px,1.1vw,16px) 12px;transform:translateY(28px) scale(.965);opacity:.15;transition:transform .64s cubic-bezier(.2,.8,.2,1),opacity .5s ease}
#v40-reader[data-open="true"] .v40-shell{opacity:1;transform:translateY(0) scale(1)}
.v40-bar{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:45px;padding:0 clamp(8px,2vw,25px)}
.v40-brand{display:grid;gap:3px;min-width:0}
.v40-brand strong{font:400 clamp(19px,2vw,28px)/1.1 Georgia,serif;color:#fff}
.v40-brand span{font:700 10px system-ui,sans-serif;letter-spacing:.2em;color:#d1b98e;text-transform:uppercase}
.v40-top-actions{display:flex;gap:10px;align-items:center}
#v40-reader button{font:inherit;cursor:pointer;color:#f8eddd;background:#ffffff0c;border:1px solid #d6c39d46;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:39px;padding:7px 15px;transition:background .2s ease,border-color .2s ease,transform .2s ease}
#v40-reader button:hover:not(:disabled){background:#ffffff23;border-color:#d6c39dc0}
#v40-reader button:active:not(:disabled){transform:scale(.96)}
#v40-reader button:disabled{opacity:.33;cursor:default}
#v40-reader button:focus-visible,#v40-reader input:focus-visible{outline:2px solid #e6cc9b;outline-offset:3px}
#v40-reader .v40-close{font-size:21px;width:42px;height:42px;padding:0;line-height:1}
.v40-read-stage{width:100%;min-height:0;flex:1;display:flex;align-items:center;justify-content:center;position:relative;perspective:2200px;overflow:auto}
.v40-book{position:relative;display:flex;flex:0 1 auto;height:min(76vh,796px);max-height:100%;width:auto;max-width:100%;filter:drop-shadow(0 35px 42px #000b);transform-style:preserve-3d;isolation:isolate}
.v40-book::before{content:"";position:absolute;inset:-10px -12px;z-index:-2;border-radius:9px;background:#2e2924;box-shadow:0 0 0 2px #8d75563d,0 18px 50px #000a;transform:translateZ(-6px)}
.v40-page{height:100%;aspect-ratio:468 / 723;min-width:0;position:relative;overflow:hidden;background:linear-gradient(90deg,#f4efe6,#f7f4ed);border:1px solid #a49a87a8;display:grid;place-items:center}
.v40-page[data-side="left"]{box-shadow:inset -22px 0 27px -25px #1b151340;border-radius:5px 0 0 5px}
.v40-page[data-side="right"]{box-shadow:inset 19px 0 25px -25px #1b151340;border-radius:0 5px 5px 0}
.v40-page img{width:100%;height:100%;object-fit:contain;display:block;image-rendering:auto;user-select:none;-webkit-user-drag:none}
.v40-page[data-empty="true"] img{visibility:hidden}
.v40-page[data-empty="true"]{background:linear-gradient(100deg,#ebe4d8 0%,#f1ecdf 83%,#e9e0d0 100%)}
.v40-page[data-empty="false"]{background:#fff}
.v40-page::after{content:"";pointer-events:none;position:absolute;inset:0;opacity:.43}
.v40-page[data-side="left"]::after{background:linear-gradient(90deg,transparent 72%,#1a17211b 100%)}
.v40-page[data-side="right"]::after{background:linear-gradient(90deg,#1a172119 0%,transparent 26%)}
.v40-book::after{content:"";position:absolute;left:50%;top:0;bottom:0;width:18px;z-index:5;transform:translateX(-50%);pointer-events:none;background:linear-gradient(90deg,transparent,#1a141728 40%,#08060935 51%,#fff4 65%,transparent)}
.v40-book.v40-single .v40-page[data-side="left"]{display:none}
.v40-book.v40-single::after{display:none}
.v40-book.v40-single{height:min(78vh,790px)}
.v40-nav{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:clamp(6px,1.1vw,14px);border-radius:20px;padding:9px 14px;max-width:100%;background:#0e1218b8;border:1px solid #d6b98c38;box-shadow:0 14px 40px #0007;backdrop-filter:blur(10px)}
.v40-nav input{width:63px;border-radius:8px;border:1px solid #c4ae8a70;background:#0a111a;color:#fdf9f0;text-align:center;padding:8px;font:600 14px system-ui,sans-serif}
.v40-nav .v40-count{color:#ead3a7;white-space:nowrap;font-size:12px;letter-spacing:.06em}
.v40-progress{height:3px;width:min(430px,65vw);background:#ccb69333;border-radius:9px;overflow:hidden;margin-top:-4px}
.v40-progress span{height:100%;display:block;width:1%;background:linear-gradient(90deg,#907651,#e6c592);transition:width .42s ease}
.v40-subline{font-size:11px;color:#dcc6a2b4;text-align:center;max-width:90vw;line-height:1.4}
.v40-flip{position:absolute;top:0;bottom:0;width:50%;z-index:12;pointer-events:none;transform-style:preserve-3d;transform-origin:left center;transition:transform .48s cubic-bezier(.15,.63,.16,1);backface-visibility:hidden;overflow:hidden;box-shadow:-8px 0 25px #0004;background:white}
.v40-flip img{width:100%;height:100%;object-fit:contain}
.v40-flip[data-dir="next"]{right:0;transform-origin:left center}
.v40-flip[data-dir="prev"]{left:0;transform-origin:right center}
.v40-flip[data-dir="next"][data-turn="true"]{transform:rotateY(-174deg)}
.v40-flip[data-dir="prev"][data-turn="true"]{transform:rotateY(174deg)}
.v40-flight{position:fixed;z-index:100001;pointer-events:none;object-fit:cover;filter:drop-shadow(0 24px 32px #000a);transform-origin:center center;transition:left .68s cubic-bezier(.2,.7,.18,1),top .68s cubic-bezier(.2,.7,.18,1),width .68s cubic-bezier(.2,.7,.18,1),height .68s cubic-bezier(.2,.7,.18,1),opacity .5s ease,transform .68s ease;will-change:transform,left,top}
body.v40-reading{overflow:hidden!important}
@media(max-width:800px){#v40-reader .v40-shell{height:100dvh;max-height:100dvh;width:100vw;padding:12px 6px;gap:10px}.v40-top-actions{gap:5px}.v40-brand strong{font-size:19px}.v40-book{height:min(75vh,750px)}.v40-page{max-width:94vw}.v40-nav{padding:8px;gap:6px}.v40-nav button{padding:7px 11px!important}.v40-subline{max-width:90vw}.v40-book::before{inset:-6px}}
@media(prefers-reduced-motion:reduce){#v40-reader,#v40-reader .v40-shell,.v40-flight,.v40-flip{transition:none!important}}

.v40-book[data-zoomed="true"]{max-height:none;flex:none}
.v40-read-stage[data-zoomed="true"]{justify-content:flex-start;align-items:flex-start;padding:12px}
.v40-book[data-zoomed="true"]{margin:auto}


/* HACKERWEB V91.1.78 — CLON REAL DEL HOVER DEL ORDENADOR SOBRE EL LIBRO.
   No quedan efectos ::before/::after antiguos del libro. Los dos halos
   comparten EXACTAMENTE las reglas visuales de la pantalla de V91.1.77.
   Solo cambian las coordenadas y el tamano propios de cada objeto. */
#v40-book-hit::before,#v40-book-hit::after{
  content:none!important;
  display:none!important;
  animation:none!important;
}
/* Pantalla: mantenemos su huella y centros de la V91.1.77. */
.scene .v20-screen{--w:33%!important;--h:41%!important}
.scene.v18-day .v20-screen{--w:35%!important;--h:43%!important}
/* Libro: copia del mismo componente .v20-pulse, centrado en la portada.
   No hay pseudo-elementos ajenos ni animaciones distintas. */
.scene .v20-book{
  --x:45.7%;--y:50.5%;--w:27%;--h:68%;--pulse-color:115,255,0;
}
.scene.v18-day .v20-book{
  --x:45.3%;--y:52.6%;--w:25%;--h:68%;
}
/* La misma configuración de luz, textura y animacion para los dos. */
.scene .v20-screen::before,.scene .v20-book::before{
  inset:0;
  border-radius:50%;
  background:radial-gradient(ellipse closest-side at 50% 50%,
    rgba(169,255,98,.72) 0%,
    rgba(126,255,25,.56) 25%,
    rgba(111,255,0,.40) 51%,
    rgba(105,255,0,.22) 75%,
    rgba(92,255,0,0) 100%);
  box-shadow:none;
  filter:blur(7px) saturate(1.15);
  animation:v91178-hover-breathe 2.3s ease-in-out infinite;
  transform-origin:center;
}
.scene .v20-screen::after,.scene .v20-book::after{
  inset:8%;
  border:0;
  border-radius:50%;
  box-shadow:none;
  background:linear-gradient(115deg,
    transparent 24%,
    rgba(160,255,97,.18) 37%,
    rgba(181,255,133,.31) 47%,
    rgba(143,255,72,.17) 57%,
    transparent 76%);
  opacity:.60;
  filter:blur(7px) saturate(1.15);
  animation:none;
}
@keyframes v91178-hover-breathe{
  0%,100%{transform:scale(.98);filter:blur(9px) saturate(1.1)}
  50%{transform:scale(1.01);filter:blur(7px) saturate(1.2)}
}
/* El reloj atrae al entrar; al pulsarlo cede paso al libro. */
.scene.v91175-watch-leads .v20-watch{opacity:1!important}
.scene.v91175-book-leads .v20-watch{opacity:0!important}
.scene.v91175-book-leads:has(.v17-watch:hover) .v20-watch,
.scene.v91175-book-leads:has(.v17-watch:focus-visible) .v20-watch{opacity:.28!important}
/* Exactamente la misma interacción hover de la pantalla, sobre el libro. */
.scene:has(#v40-book-hit:hover) .v20-book,
.scene:has(#v40-book-hit:focus-visible) .v20-book{opacity:1!important}
/* Una pista tenue tras pulsar el reloj, sin invadir la portada. */
.scene.v91175-book-leads .v20-book{opacity:.20}
.scene.v91175-book-leads:has(#v40-book-hit:hover) .v20-book,
.scene.v91175-book-leads:has(#v40-book-hit:focus-visible) .v20-book{opacity:1!important}
/* El ordenador conserva el 30% menos de protagonismo tras el clic. */
.scene.v91175-book-leads:has(.v17-screen:hover) .v20-screen,
.scene.v91175-book-leads:has(.v17-screen:focus-visible) .v20-screen{opacity:.70!important}
@media(prefers-reduced-motion:reduce){
  .scene .v20-screen::before,.scene .v20-book::before{animation:none!important}
}

/* HACKERWEB V91.1.79 — SOLO PC: -35% de glow al pasar por la pantalla.
   El libro (.v20-book), el reloj y todos los eventos siguen idénticos. */
.scene:has(.v17-screen:hover) .v20-screen,
.scene:has(.v17-screen:focus-visible) .v20-screen,
.scene.v91175-book-leads:has(.v17-screen:hover) .v20-screen,
.scene.v91175-book-leads:has(.v17-screen:focus-visible) .v20-screen{
  opacity:.65!important;
}
