:root{
  --bg:#070707;--panel:#101010;--panel2:#171717;--text:#f4f4f4;--muted:#999;
  --line:#252525;--accent:#d2232a;--accent2:#741116;
  --phone-max:620px;--reader-pad:clamp(18px,5.2vw,28px);
  --top-safe:env(safe-area-inset-top,0px);--bottom-safe:env(safe-area-inset-bottom,0px);
  --topbar-base:70px;--bottomnav-base:64px;
}
*{box-sizing:border-box}
html{background:#030303;color-scheme:dark;scroll-behavior:smooth}
html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
body{overscroll-behavior-y:none;-webkit-tap-highlight-color:transparent}
button,input,select{font:inherit}
button{touch-action:manipulation}
img{max-width:100%}
.app-shell{width:100%;max-width:var(--phone-max);min-height:100svh;margin:0 auto;background:linear-gradient(180deg,#0a0a0a,#050505);position:relative;overflow-x:hidden}
.topbar{position:fixed;top:0;left:50%;transform:translateX(-50%);z-index:45;width:min(100%,var(--phone-max));min-height:calc(var(--topbar-base) + var(--top-safe));padding:calc(var(--top-safe) + 8px) 12px 8px;display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;background:rgba(7,7,7,.92);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-bottom:1px solid rgba(255,255,255,.06)}
.brand{background:none;border:0;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;min-width:0;width:100%;overflow:visible;padding:0}.brand-logo{display:block;width:100%;height:auto;max-width:min(62vw,300px);max-height:52px;object-fit:contain;object-position:center center}.brand-logo:not(.ready){visibility:hidden}.brand-fallback{display:flex;flex-direction:column;align-items:center;line-height:.9;letter-spacing:.18em}.brand-main{font-family:Impact,Haettenschweiler,"Arial Narrow Bold","Arial Black",sans-serif;font-weight:400;font-size:clamp(15px,4.5vw,19px)}.brand-sub{font-size:7px;color:#999;margin-top:6px;letter-spacing:.36em}.topbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px}.icon-btn{width:40px;height:40px;border:1px solid #282828;border-radius:50%;background:#101010;color:#fff;font-size:23px;display:grid;place-items:center}.hidden{display:none!important}
.view{padding:calc(var(--topbar-base) + var(--top-safe)) 0 calc(var(--bottomnav-base) + var(--bottom-safe) + 18px);min-height:100svh}
.hero{position:relative;min-height:calc(100svh - var(--topbar-base) - var(--bottomnav-base) - var(--top-safe) - var(--bottom-safe));display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;padding:clamp(24px,6vw,36px) var(--reader-pad) clamp(30px,8vw,48px)}
.hero-media{position:absolute;inset:0;background:radial-gradient(circle at 50% 28%,#2b2b2b,#090909 58%);overflow:hidden}.hero-media img{width:100%;height:100%;object-fit:cover;opacity:1;filter:none}.hero-media:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 0%,transparent 46%,rgba(0,0,0,.08) 56%,rgba(0,0,0,.32) 69%,rgba(0,0,0,.72) 84%,#070707 100%)}
.hero-placeholder{position:absolute;inset:0;display:grid;place-items:center;font-size:min(42vw,240px);font-weight:950;letter-spacing:-.08em;color:rgba(255,255,255,.035);transform:rotate(-7deg)}
.hero-content{position:relative;z-index:3}
.storm-fx{position:absolute;inset:0 0 18% 0;z-index:2;pointer-events:none;overflow:hidden;mix-blend-mode:screen}.storm-cloud{position:absolute;width:150%;height:58%;left:-25%;top:-8%;opacity:.22;filter:blur(16px);background:radial-gradient(ellipse at 20% 55%,rgba(183,199,220,.38),transparent 26%),radial-gradient(ellipse at 55% 30%,rgba(135,157,184,.3),transparent 30%),radial-gradient(ellipse at 82% 58%,rgba(205,216,232,.28),transparent 24%);will-change:transform,opacity}.storm-cloud-a{animation:cloudDriftA 9s ease-in-out infinite alternate}.storm-cloud-b{top:18%;opacity:.16;transform:scaleX(-1);animation:cloudDriftB 13s ease-in-out infinite alternate}.storm-cloud-c{top:36%;height:42%;opacity:.12;animation:cloudDriftC 7s ease-in-out infinite alternate}.storm-glow{position:absolute;inset:0;background:radial-gradient(circle at 74% 18%,rgba(219,232,255,.22),transparent 28%),linear-gradient(180deg,rgba(95,122,156,.08),transparent 68%);opacity:.45;animation:stormBreath 4.6s ease-in-out infinite}.storm-flash{position:absolute;inset:0;background:linear-gradient(180deg,rgba(228,239,255,.78),rgba(220,233,255,.12) 58%,transparent 82%);opacity:0}.storm-flash-a{animation:stormFlashA 6.4s infinite}.storm-flash-b{animation:stormFlashB 9.1s infinite}.lightning{position:absolute;top:-5%;width:2px;height:50%;opacity:0;background:linear-gradient(180deg,#fff,rgba(214,232,255,.92) 58%,transparent);filter:drop-shadow(0 0 8px rgba(220,235,255,.96));transform-origin:top center;clip-path:polygon(42% 0,100% 0,62% 39%,100% 39%,23% 100%,43% 51%,0 51%)}.lightning-a{right:17%;transform:rotate(10deg) scaleX(2.7);animation:lightningA 6.4s infinite}.lightning-b{left:19%;height:38%;transform:rotate(-8deg) scaleX(2);animation:lightningB 9.1s infinite}@keyframes cloudDriftA{0%{transform:translate3d(-4%,0,0) scale(1.02);opacity:.16}100%{transform:translate3d(7%,4%,0) scale(1.12);opacity:.29}}@keyframes cloudDriftB{0%{transform:translate3d(5%,2%,0) scaleX(-1) scale(1.02);opacity:.11}100%{transform:translate3d(-8%,-2%,0) scaleX(-1) scale(1.1);opacity:.2}}@keyframes cloudDriftC{0%{transform:translate3d(-3%,0,0) scale(1);opacity:.08}100%{transform:translate3d(5%,-5%,0) scale(1.16);opacity:.17}}@keyframes stormBreath{0%,100%{opacity:.26}42%{opacity:.58}63%{opacity:.36}}@keyframes stormFlashA{0%,57%,58.8%,100%{opacity:0}57.15%{opacity:.28}57.38%{opacity:.04}57.62%{opacity:.56}57.9%{opacity:.08}58.18%{opacity:.22}}@keyframes stormFlashB{0%,31%,32.3%,100%{opacity:0}31.2%{opacity:.2}31.5%{opacity:.04}31.82%{opacity:.37}}@keyframes lightningA{0%,57%,57.12%,58.05%,100%{opacity:0}57.2%,57.68%{opacity:.96}57.43%{opacity:.12}}@keyframes lightningB{0%,31%,31.1%,32%,100%{opacity:0}31.18%,31.7%{opacity:.72}31.43%{opacity:.08}}.eyebrow{text-transform:uppercase;color:#c9c9c9;font-size:clamp(9px,2.7vw,11px);font-weight:850;letter-spacing:.18em;margin-bottom:10px}.hero h1{font-family:Impact,Haettenschweiler,"Arial Narrow Bold","Arial Black",sans-serif;font-weight:400;font-stretch:condensed;font-size:clamp(34px,10.4vw,62px);line-height:.92;margin:0 0 14px;text-transform:uppercase;letter-spacing:.005em;text-wrap:balance}.meta-row{display:flex;flex-wrap:wrap;gap:7px;margin:13px 0 20px}.pill{border:1px solid #333;border-radius:999px;padding:7px 10px;font-size:10px;color:#ccc;background:rgba(0,0,0,.42)}.pill.red{border-color:var(--accent2);color:#fff;background:rgba(210,35,42,.17)}
.cta{appearance:none;border:0;border-radius:14px;background:var(--accent);color:#fff;font-weight:900;letter-spacing:.08em;padding:16px 18px;width:100%;min-height:52px;font-size:12px;box-shadow:0 8px 30px rgba(210,35,42,.2);cursor:pointer}.secondary-btn{appearance:none;border:1px solid #333;border-radius:14px;background:#111;color:#fff;font-weight:800;padding:14px 18px;width:100%;cursor:pointer}
.section{padding:clamp(24px,6vw,34px) var(--reader-pad)}.section-title{display:flex;justify-content:space-between;align-items:end;gap:14px;margin:0 0 16px}.section-title h1,.section-title h2{margin:0;font-family:Impact,Haettenschweiler,"Arial Narrow Bold","Arial Black",sans-serif;font-weight:400;text-transform:uppercase;letter-spacing:.01em}.section-title h1{font-size:clamp(32px,9vw,48px)}.section-title small{color:var(--muted);white-space:nowrap}
.story-list{display:grid;gap:10px}.story-card{display:grid;grid-template-columns:clamp(64px,19vw,82px) minmax(0,1fr) auto;gap:12px;align-items:center;padding:9px;border:1px solid #222;background:#0f0f0f;border-radius:17px;cursor:pointer;min-height:92px}.story-thumb{width:clamp(64px,19vw,82px);aspect-ratio:4/5;border-radius:11px;background:linear-gradient(145deg,#292929,#111);object-fit:cover}.story-copy{min-width:0}.story-copy h3{margin:3px 0 6px;font-family:Impact,Haettenschweiler,"Arial Narrow Bold","Arial Black",sans-serif;font-weight:400;font-size:clamp(14px,4vw,18px);line-height:1.02;letter-spacing:.015em;text-transform:uppercase;overflow-wrap:anywhere}.story-copy p{margin:0;color:#8f8f8f;font-size:10px}.story-number{font-size:9px;color:#ccc;font-weight:850;letter-spacing:.14em}.story-state{width:32px;height:32px;border:1px solid #292929;border-radius:50%;display:grid;place-items:center;color:#ccc;flex:none}
.stories-toolbar{display:flex;flex-direction:column;gap:2px;margin-bottom:4px}.view-modes{display:flex;justify-content:flex-end;gap:6px;padding:0 1px 14px}.view-mode{width:38px;height:34px;border:1px solid #292929;background:#101010;color:#777;border-radius:10px;font-size:17px;display:grid;place-items:center}.view-mode.active{background:#eee;color:#050505;border-color:#eee}.stories-view{min-height:120px}.stories-view-covers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.story-cover-card{position:relative;aspect-ratio:2/3;background:#111;overflow:hidden;cursor:pointer;border:1px solid #1e1e1e}.story-cover-card .story-thumb{width:100%;height:100%;aspect-ratio:auto;border-radius:0;object-fit:cover;display:block}.story-cover-card .story-thumb-placeholder{width:100%;height:100%;border-radius:0}.cover-lock{position:absolute;right:6px;bottom:6px;width:24px;height:24px;border-radius:50%;background:rgba(0,0,0,.72);border:1px solid rgba(255,255,255,.2);display:grid;place-items:center;font-size:12px;color:#fff;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.cover-read{position:absolute;left:6px;bottom:6px;padding:5px 7px;border-radius:999px;background:rgba(0,0,0,.78);border:1px solid rgba(255,255,255,.24);font-size:8px;font-weight:900;letter-spacing:.05em;color:#fff;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.read-pill{border-color:#3a5a40;color:#d9f7df;background:rgba(28,73,38,.32)}.stories-view-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.story-grid-card{position:relative;background:#0f0f0f;border:1px solid #222;border-radius:14px;overflow:hidden;cursor:pointer}.story-grid-card>.story-thumb,.story-grid-card>.story-thumb-placeholder{width:100%;aspect-ratio:2/3;border-radius:0;display:block;object-fit:cover}.story-grid-copy{padding:10px 10px 12px}.story-grid-copy h3{margin:4px 0 6px;font-family:Impact,Haettenschweiler,"Arial Narrow Bold","Arial Black",sans-serif;font-size:17px;font-weight:400;text-transform:uppercase;line-height:1}.story-grid-copy p{margin:0;color:#777;font-size:9px;font-weight:800;letter-spacing:.05em}.stories-view-list{display:grid;gap:10px}.filters{display:flex;gap:7px;overflow-x:auto;padding:0 1px 14px;scrollbar-width:none}.filters::-webkit-scrollbar{display:none}.filter{white-space:nowrap;border:1px solid #292929;background:#101010;color:#aaa;border-radius:999px;padding:9px 12px;font-size:11px}.filter.active{background:#eee;color:#050505;border-color:#eee}
.story-header{position:relative;padding:clamp(28px,7vw,44px) var(--reader-pad) 0;background:#070707;overflow:hidden}.story-header-content{position:relative;z-index:2;width:100%;padding-bottom:clamp(18px,5vw,28px)}.story-header h1{font-family:Impact,Haettenschweiler,"Arial Narrow Bold","Arial Black",sans-serif;font-weight:400;font-stretch:condensed;font-size:clamp(36px,10.5vw,60px);line-height:.92;text-transform:uppercase;margin:7px 0 12px;letter-spacing:.005em;text-wrap:balance}.story-featured{width:calc(100% + (var(--reader-pad) * 2));margin-left:calc(var(--reader-pad) * -1);background:#0b0b0b;overflow:hidden}.story-featured img{display:block;width:100%;height:auto;max-height:68svh;object-fit:cover}.story-featured-placeholder{min-height:240px;display:grid;place-items:center;background:radial-gradient(circle at 50% 40%,#272727,#0a0a0a 70%);color:#333;font-size:64px;font-weight:950}
.tabs{position:sticky;top:calc(var(--topbar-base) + var(--top-safe));z-index:20;display:flex;gap:8px;overflow-x:auto;background:rgba(7,7,7,.94);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid #181818;border-bottom:1px solid #181818;padding:12px 12px;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab{border:0;border-radius:13px;padding:16px 20px;background:transparent;color:#8d8d8d;font-size:16px;font-weight:850;letter-spacing:.055em;text-transform:uppercase;white-space:nowrap;min-height:52px}.tab.active{background:#1c1c1c;color:#fff}
.reader{--reader-pad-local:var(--reader-pad);padding:clamp(26px,7vw,42px) var(--reader-pad-local) 60px;max-width:620px;margin:auto;overflow:hidden}.reader p{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-size:clamp(17.5px,4.75vw,20px);line-height:1.68;color:#ececec;margin:0 0 1.28em;text-align:justify;text-justify:inter-word;hyphens:auto;-webkit-hyphens:auto;font-kerning:normal;text-rendering:optimizeLegibility}.reader h2{font-size:clamp(25px,7vw,34px);line-height:1.05;margin:1.8em 0 .7em;text-transform:uppercase}.reader a{color:#fff;text-decoration-thickness:1px;text-underline-offset:3px}.reader-image{width:calc(100% + (var(--reader-pad-local) * 2));margin:clamp(28px,8vw,48px) calc(var(--reader-pad-local) * -1);padding:0}.reader-image img{display:block;width:100%;height:auto;max-height:82svh;object-fit:contain;background:#0c0c0c;cursor:zoom-in}.reader-image figcaption{padding:9px var(--reader-pad-local) 0;color:#777;font-size:10px;line-height:1.45}.reader-media{margin:26px 0}.reader iframe{display:block;width:100%;aspect-ratio:16/9;border:0;border-radius:13px;background:#000}.reader video{display:block;width:100%;max-height:78svh;border-radius:13px;background:#000}.reader audio{display:block;width:100%}.reader .note{font-family:inherit;font-size:12px;line-height:1.55;color:#999;border-left:2px solid #444;padding-left:13px}.reader blockquote{margin:1.4em 0;padding-left:18px;border-left:2px solid #555;color:#cfcfcf;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-size:18px;line-height:1.66}
.progress-wrap{position:fixed;left:50%;transform:translateX(-50%);width:min(100%,var(--phone-max));bottom:calc(var(--bottomnav-base) + var(--bottom-safe));height:5px;z-index:41;pointer-events:none;background:rgba(0,0,0,.78);box-shadow:0 -2px 8px rgba(0,0,0,.65)}.progress{height:100%;background:var(--accent);width:0;transition:width .08s linear}.top-jump{width:32px;height:32px;font-size:14px;opacity:.72;background:#0c0c0c}.top-jump:active{transform:scale(.94)}.lock-screen{padding:56px var(--reader-pad) 38px;text-align:center;min-height:48svh;display:flex;flex-direction:column;justify-content:center;align-items:center}.lock{font-size:48px;margin-bottom:16px}.lock-screen h2{text-transform:uppercase;margin:0 0 10px}.lock-screen p{color:#aaa;max-width:430px;line-height:1.6}.unlock-panel{padding:28px var(--reader-pad)}.scanner-copy{color:#aaa;line-height:1.6;margin-bottom:18px}.qr-reader{width:100%;min-height:280px;border:1px solid #292929;border-radius:16px;overflow:hidden;background:#050505;margin:0 0 14px;display:grid;place-items:center}.qr-reader video{width:100%!important;height:auto!important;max-height:58svh;object-fit:cover}.qr-reader img{max-width:100%}.qr-file-reader{position:fixed;left:-9999px;top:-9999px;width:320px;height:320px;overflow:hidden;pointer-events:none}.qr-placeholder{font-weight:950;letter-spacing:.18em;color:#2e2e2e;font-size:28px}.scanner-help{color:#666;font-size:10px;line-height:1.5;margin-top:14px}.unlock-panel input[type=file]{display:none}
.bottom-nav{position:fixed;z-index:40;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,var(--phone-max));min-height:calc(var(--bottomnav-base) + var(--bottom-safe));padding:5px 12px var(--bottom-safe);display:grid;grid-template-columns:repeat(4,1fr);background:rgba(8,8,8,.95);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-top:1px solid #202020}.nav-btn{border:0;background:transparent;color:#676767;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-height:54px}.nav-btn span{font-size:19px}.nav-btn small{font-size:8px;font-weight:850}.nav-btn.active{color:#fff}
.drawer{position:fixed;z-index:60;top:0;right:max(calc((100vw - min(100vw,var(--phone-max)))/2),0px);width:min(86vw,360px);height:100dvh;background:#101010;border-left:1px solid #292929;padding:calc(var(--top-safe) + 70px) 22px calc(var(--bottom-safe) + 26px);transform:translateX(110%);transition:.25s ease;display:flex;flex-direction:column;gap:7px}.drawer.open{transform:translateX(0)}.drawer-brand{border:0!important;padding:0 48px 24px 0!important;background:transparent!important;display:flex!important;align-items:center!important;width:100%;min-height:64px}.drawer-logo{display:block;width:100%;max-width:none;height:auto;max-height:76px;object-fit:contain;object-position:left center}.drawer-logo:not(.ready){visibility:hidden}.drawer-brand-fallback{display:flex;flex-direction:column;line-height:.9;letter-spacing:.18em;font-family:Impact,Haettenschweiler,"Arial Narrow Bold","Arial Black",sans-serif;font-size:24px}.drawer-brand-fallback small{font-family:Inter,system-ui,sans-serif;font-size:7px;color:#999;letter-spacing:.36em;margin-top:7px}.drawer button,.drawer a{display:block;text-align:left;text-decoration:none;border:0;background:transparent;color:#ddd;padding:14px 0;border-bottom:1px solid #222;font-size:14px}.drawer-close{position:absolute;top:calc(var(--top-safe) + 13px);right:17px!important;font-size:29px!important;width:42px;border:0!important}.drawer-note{margin-top:auto;color:#555;font-size:10px}.scrim{position:fixed;z-index:50;inset:0;background:rgba(0,0,0,.72)}
.loading{min-height:55svh;display:grid;place-items:center;align-content:center;color:#888}.spinner{width:32px;height:32px;border:3px solid #222;border-top-color:#aaa;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty{padding:60px var(--reader-pad);text-align:center;color:#888}.toast{position:fixed;left:50%;bottom:calc(var(--bottomnav-base) + var(--bottom-safe) + 18px);transform:translateX(-50%);z-index:100;background:#eee;color:#111;border-radius:999px;padding:11px 16px;font-size:11px;font-weight:850;box-shadow:0 8px 35px rgba(0,0,0,.4);max-width:calc(100vw - 36px);text-align:center}
.lightbox{position:fixed;z-index:120;inset:0;background:rgba(0,0,0,.96);display:grid;place-items:center;padding:calc(var(--top-safe) + 22px) 10px calc(var(--bottom-safe) + 22px)}.lightbox img{max-width:100%;max-height:100%;object-fit:contain}.lightbox-close{position:absolute;right:14px;top:calc(var(--top-safe) + 10px);z-index:2;width:44px;height:44px;border:1px solid #333;border-radius:50%;background:rgba(0,0,0,.65);color:#fff;font-size:28px}
@media(max-width:340px){:root{--reader-pad:16px}.stories-view-covers{grid-template-columns:repeat(2,minmax(0,1fr))}.hero h1,.story-header h1{font-size:31px}.story-card{grid-template-columns:60px minmax(0,1fr) auto}.story-thumb{width:60px}}
@media(min-width:700px){body{background:#111}.app-shell{width:min(100vw,calc(100dvh * 9 / 16));max-width:none;box-shadow:0 0 80px #000}.topbar,.bottom-nav,.progress-wrap{width:min(100vw,calc(100dvh * 9 / 16));max-width:none}.drawer{right:max(calc((100vw - min(100vw,calc(100dvh * 9 / 16)))/2),0px)}}
@media(orientation:landscape) and (max-height:560px){.hero{min-height:520px}}

.story-thumb-placeholder{display:grid;place-items:center;color:#555;font-size:18px;font-weight:900;letter-spacing:.06em}.story-card .story-thumb-placeholder{background:radial-gradient(circle at 45% 35%,#242424,#0c0c0c 72%)}

@media(prefers-reduced-motion:reduce){.storm-cloud,.storm-glow,.storm-flash,.lightning{animation:none!important}.storm-cloud{opacity:.12}.storm-glow{opacity:.18}}

/* v0.10 · imágenes enlazadas / elementos interactivos */
.reader-linked-image{display:block;color:inherit;text-decoration:none;position:relative}.reader-linked-image .reader-image{position:relative}.reader-linked-image .reader-image:after{content:"↗";position:absolute;right:10px;bottom:10px;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:rgba(0,0,0,.78);border:1px solid rgba(255,255,255,.28);color:#fff;font-size:14px;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}


/* v0.12 · biblioteca personal, progreso y filtros */
.home-continue{margin:12px var(--reader-pad) 0;padding:14px 14px 13px;border:1px solid #292929;background:#0e0e0e;border-radius:15px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center}.home-continue strong{display:block;font-size:12px;line-height:1.25;margin:3px 0 8px}.home-continue small{display:block;color:#777;font-size:9px;margin-top:5px}.continue-btn{border:1px solid #363636;background:#1b1b1b;color:#fff;border-radius:11px;padding:11px 12px;font-size:9px;font-weight:900;letter-spacing:.06em}.mini-progress,.collection-progress{height:5px;background:#242424;overflow:hidden;border-radius:999px}.mini-progress span,.collection-progress span{display:block;height:100%;background:var(--accent);border-radius:inherit}.home-progress{margin:12px var(--reader-pad) 0;padding:14px;border:1px solid #202020;background:#090909;border-radius:15px}.home-progress-copy{display:flex;justify-content:space-between;align-items:end;gap:10px;margin-bottom:9px}.home-progress-copy strong{font-size:11px}.link-btn{display:block;margin:10px 0 0 auto;border:0;background:transparent;color:#aaa;font-size:9px;font-weight:900;letter-spacing:.06em;padding:4px 0}.library-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-bottom:10px}.story-search{height:42px;border:1px solid #292929;background:#0c0c0c;border-radius:12px;display:flex;align-items:center;padding:0 11px;gap:7px}.story-search span{color:#666;font-size:18px}.story-search input{min-width:0;width:100%;border:0;outline:0;background:transparent;color:#fff;font-size:12px}.story-sort{max-width:150px;border:1px solid #292929;background:#0c0c0c;color:#bbb;border-radius:12px;padding:0 9px;font-size:10px}.feature-row{display:flex;gap:7px;overflow-x:auto;padding:0 1px 10px;scrollbar-width:none}.feature-row::-webkit-scrollbar{display:none}.feature-filter{white-space:nowrap;border:1px dashed #313131;background:#0b0b0b;color:#777;border-radius:999px;padding:7px 10px;font-size:9px}.feature-filter.active{border-style:solid;border-color:#555;color:#fff;background:#161616}.results-count{color:#666;font-size:9px;text-align:right;margin:-6px 1px 9px}.cover-progress{position:absolute;left:6px;bottom:6px;padding:5px 7px;border-radius:999px;background:rgba(0,0,0,.78);border:1px solid rgba(255,255,255,.2);font-size:8px;font-weight:900;color:#fff;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.my-stories{padding-bottom:36px}.progress-dashboard{border:1px solid #292929;background:linear-gradient(145deg,#111,#090909);border-radius:18px;padding:18px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:18px;align-items:center}.progress-big{display:flex;align-items:end;gap:7px}.progress-big strong{font-family:Impact,Haettenschweiler,"Arial Narrow Bold","Arial Black",sans-serif;font-size:52px;font-weight:400;line-height:.8}.progress-big span{font-size:8px;color:#888;font-weight:850;line-height:1.25}.collection-progress.large{height:8px}.progress-side p{color:#888;font-size:10px;line-height:1.45;margin:9px 0 0}.personal-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:9px 0 24px}.personal-stats div{padding:12px 7px;border:1px solid #222;background:#0d0d0d;border-radius:12px;text-align:center}.personal-stats strong{display:block;font-size:19px}.personal-stats span{display:block;color:#777;font-size:7px;font-weight:900;letter-spacing:.05em;margin-top:4px}.my-group{margin-top:22px}.section-title.compact{margin-bottom:10px}.section-title.compact h2{font-size:23px}.continue-list{display:grid;gap:7px}.continue-card{display:grid;grid-template-columns:56px minmax(0,1fr) 34px;gap:10px;align-items:center;border:1px solid #222;background:#0d0d0d;border-radius:13px;padding:7px}.continue-cover{border:0;padding:0;background:#151515;width:56px;aspect-ratio:2/3;overflow:hidden;color:#555;font-weight:900}.continue-cover img{width:100%;height:100%;object-fit:cover}.continue-copy{min-width:0}.continue-copy strong{display:block;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:2px 0 7px}.continue-copy small{color:#777;font-size:8px}.resume-arrow{width:32px;height:32px;border-radius:50%;border:1px solid #2e2e2e;background:#151515;color:#fff;font-size:20px}.my-tabs{display:flex;gap:6px;margin-bottom:12px;overflow-x:auto}.my-filter{flex:1;min-width:max-content;border:1px solid #292929;background:#0e0e0e;color:#777;border-radius:11px;padding:11px 10px;font-size:9px;font-weight:900}.my-filter.active{background:#eee;color:#060606;border-color:#eee}.my-empty{grid-column:1/-1;padding:35px 10px}
@media(max-width:390px){.library-controls{grid-template-columns:1fr}.story-sort{max-width:none;height:40px}.progress-dashboard{grid-template-columns:1fr}.progress-big strong{font-size:46px}}

.read-celebration{position:fixed;z-index:150;left:50%;top:50%;transform:translate(-50%,-46%) scale(.92);width:min(76vw,280px);padding:24px 18px 22px;border:1px solid #343434;border-radius:20px;background:rgba(8,8,8,.96);box-shadow:0 24px 80px rgba(0,0,0,.75);text-align:center;opacity:0;transition:.24s ease;pointer-events:none;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.read-celebration.show{opacity:1;transform:translate(-50%,-50%) scale(1)}.read-check{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;margin:0 auto 13px;background:#173b20;border:1px solid #315d3a;color:#dff7e4;font-size:28px;font-weight:900}.read-celebration strong{display:block;font-family:Impact,Haettenschweiler,"Arial Narrow Bold","Arial Black",sans-serif;font-size:36px;font-weight:400;letter-spacing:.04em;margin:4px 0}.read-celebration small{color:#888;font-size:9px}

.metadata-filters{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}.metadata-filters select{height:38px;min-width:0;border:1px solid #292929;background:#0c0c0c;color:#aaa;border-radius:11px;padding:0 9px;font-size:9px}@media(max-width:340px){.metadata-filters{grid-template-columns:1fr}}
\n\n/* v0.13 · estados EX, biblioteca simplificada y colección */\n.hero-content .eyebrow,.hero-content .story-number,.hero-content h1,.hero-content .meta-row{ text-shadow:0 2px 4px rgba(0,0,0,.95),0 0 12px rgba(0,0,0,.85);}\n.drawer-brand{min-height:82px;padding-right:42px!important}.drawer-logo{max-height:96px;width:100%;object-fit:contain;object-position:left center}\n.ex-badge{position:absolute;right:6px;bottom:6px;width:29px;height:29px;border-radius:50%;display:grid;place-items:center;background:rgba(0,0,0,.82);font-size:9px;font-weight:1000;letter-spacing:-.02em;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:4}.ex-badge.ex-locked{border:1.5px solid #9b3338;color:#ffb5b8}.ex-badge.ex-unlocked{border:1.5px solid #5e8d67;color:#e4ffe9;background:rgba(14,49,22,.86)}.ex-badge i{position:absolute;right:-3px;top:-4px;width:13px;height:13px;border-radius:50%;display:grid;place-items:center;background:#e7f5e9;color:#113216;font-style:normal;font-size:8px;font-weight:1000;border:1px solid #183d20}.ex-inline{position:relative;right:auto;bottom:auto;display:grid;width:31px;height:31px}.story-state .ex-badge{margin:auto}.library-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:-2px 0 15px}.library-stats button{border:1px solid #262626;background:#0d0d0d;border-radius:13px;padding:12px 5px;text-align:center}.library-stats strong{display:block;font-family:Impact,Haettenschweiler,"Arial Narrow Bold","Arial Black",sans-serif;font-size:29px;line-height:.9;font-weight:400}.library-stats span{display:block;margin-top:7px;color:#888;font-size:6.5px;line-height:1.15;font-weight:900;letter-spacing:.06em}.library-controls{grid-template-columns:minmax(0,1fr) 132px}.story-select{height:42px;min-width:0;border:1px solid #292929;background:#0c0c0c;color:#bbb;border-radius:12px;padding:0 10px;font-size:10px}.primary-filter-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-bottom:9px}.advanced-toggle{height:42px;border:1px solid #292929;background:#101010;color:#aaa;border-radius:12px;padding:0 12px;font-size:8px;font-weight:900;letter-spacing:.04em}.advanced-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 10px}.stories-toolbar{display:flex;justify-content:flex-end;margin-bottom:4px}.view-modes{padding-bottom:8px}.results-count{margin:0 1px 9px}.collection-intro{margin:-2px 0 18px;color:#888;font-size:11px;line-height:1.5}.books-grid{display:grid;gap:10px}.book-card{border:1px solid #252525;background:#0d0d0d;border-radius:16px;overflow:hidden;display:grid;grid-template-columns:116px minmax(0,1fr);min-height:120px;cursor:pointer}.book-thumbs{display:flex;height:100%;overflow:hidden;background:#050505}.book-thumbs img{width:calc(100% / 3);height:100%;object-fit:cover}.book-placeholder{display:grid;place-items:center;width:100%;font-family:Impact,Haettenschweiler,"Arial Narrow Bold",sans-serif;font-size:32px;color:#444}.book-copy{padding:15px 14px;align-self:center}.book-copy h2{font-family:Impact,Haettenschweiler,"Arial Narrow Bold","Arial Black",sans-serif;font-size:28px;font-weight:400;text-transform:uppercase;margin:3px 0 7px}.book-numbers{color:#999;font-size:9px;margin-bottom:10px}.collection-back{border:0;background:transparent;color:#aaa;padding:0 0 14px;font-size:10px;font-weight:900}.book-detail-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:14px 0 9px}.book-detail-stats div{text-align:center;border:1px solid #252525;background:#0d0d0d;border-radius:12px;padding:12px 6px}.book-detail-stats strong{display:block;font-size:23px}.book-detail-stats span{display:block;color:#777;font-size:7px;margin-top:4px}.collection-story-grid{margin-top:18px}.bottom-nav .nav-btn{min-width:0}.bottom-nav .nav-btn small{font-size:6.5px}\n@media(max-width:390px){.library-controls{grid-template-columns:1fr}.primary-filter-row{grid-template-columns:1fr 116px}.advanced-filters{grid-template-columns:1fr}.book-card{grid-template-columns:98px minmax(0,1fr)}.library-stats strong{font-size:25px}}\n

/* v0.14 · progreso pendiente, colección visual y Player persistente */
.cover-progress{background:rgba(188,91,8,.94)!important;border-color:#ff9b37!important;color:#fff!important;box-shadow:0 0 0 1px rgba(255,151,46,.12),0 4px 14px rgba(205,88,0,.32)}
.unread-callout{border:1px solid #4a2b14;background:linear-gradient(145deg,#1b1007,#100a06);border-radius:13px;padding:9px 11px;min-width:108px;text-align:right;align-self:center}.unread-callout strong{display:block;color:#ff9c42;font-family:Impact,Haettenschweiler,"Arial Narrow Bold","Arial Black",sans-serif;font-weight:400;font-size:28px;line-height:.85}.unread-callout span{display:block;color:#b8865d;font-size:6.5px;font-weight:900;letter-spacing:.055em;line-height:1.2;margin-top:5px}
.book-shelf-wrap{margin:4px 0 20px;padding:14px 10px 0;background:linear-gradient(180deg,#0b0b0b,#080706);border:1px solid #24211e;border-radius:16px;overflow:hidden}.book-shelf-title{font-size:7px;color:#756b62;font-weight:900;letter-spacing:.14em;margin:0 2px 9px}.book-shelf{display:flex;align-items:flex-end;gap:4px;overflow-x:auto;min-height:126px;padding:0 4px;scrollbar-width:none}.book-shelf::-webkit-scrollbar{display:none}.shelf-book{flex:0 0 34px;height:116px;padding:0;border:1px solid #352a20;background:linear-gradient(90deg,#1b1714,#33251d 48%,#130f0d);color:#d8c0aa;overflow:hidden;cursor:pointer;box-shadow:3px 2px 8px rgba(0,0,0,.5);border-radius:2px 2px 0 0}.shelf-book img{width:100%;height:100%;object-fit:cover;display:block}.shelf-book span{display:block;writing-mode:vertical-rl;transform:rotate(180deg);margin:auto;font-size:8px;font-weight:900;letter-spacing:.05em}.shelf-board{height:10px;margin:0 -10px;background:linear-gradient(180deg,#4b2d19,#1c1009);border-top:1px solid #765136;box-shadow:0 -5px 15px rgba(0,0,0,.5)}
.book-card{scroll-margin-top:92px}.book-front{height:100%;background:#050505;overflow:hidden}.book-front img{width:100%;height:100%;object-fit:cover;display:block}.book-copy{display:flex;flex-direction:column;justify-content:center;height:100%}.book-copy h2{font-size:31px;margin:0 0 10px}.book-open{display:block;margin-top:9px;color:#777;font-size:7px;font-weight:900;letter-spacing:.08em}.book-detail-head{display:grid;gap:12px}.book-product-gallery{display:flex;align-items:flex-end;gap:7px;min-height:122px;overflow-x:auto;padding:4px 0 8px}.book-product-gallery img{background:#050505;border:1px solid #262626;box-shadow:0 9px 24px rgba(0,0,0,.45)}.book-product-front,.book-product-back{height:122px;width:auto;aspect-ratio:2/3;object-fit:cover}.book-product-spine{height:122px;width:auto;max-width:46px;object-fit:cover}.book-story-filters{display:flex;gap:7px;margin:14px 0 0}.book-story-filter{flex:1;border:1px solid #2b2b2b;background:#0e0e0e;color:#777;border-radius:10px;padding:10px 8px;font-size:8px;font-weight:900}.book-story-filter.active{background:#eee;color:#050505;border-color:#eee}
.drawer-logo{max-height:112px!important}
.bottom-nav{grid-template-columns:repeat(5,1fr)}
.bottom-nav .nav-btn small{font-size:5.8px!important}
.mini-player{position:fixed;z-index:42;left:50%;transform:translateX(-50%);bottom:calc(var(--bottomnav-base) + var(--bottom-safe));width:min(100%,var(--phone-max));min-height:58px;background:rgba(8,8,8,.97);border-top:1px solid #2a2a2a;display:grid;grid-template-columns:minmax(0,1fr) 40px 44px 40px;align-items:stretch;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 -12px 35px rgba(0,0,0,.48)}.mini-player-main{min-width:0;text-align:left;border:0;background:transparent;color:#fff;padding:8px 7px 8px 13px;display:grid;align-content:center;gap:2px}.mini-player-kicker{color:#d2232a;font-size:6.5px;font-weight:1000;letter-spacing:.09em}.mini-player-main strong{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mini-player-progress{height:2px;background:#292929;margin-top:4px;overflow:hidden}.mini-player-progress i{display:block;height:100%;width:0;background:#d2232a}.mini-player-btn{border:0;border-left:1px solid #202020;background:transparent;color:#bbb;font-size:21px}.mini-player-btn.mini-play{font-size:14px;color:#fff}.player-mini-visible .view{padding-bottom:calc(var(--bottomnav-base) + var(--bottom-safe) + 58px)}.player-mini-visible .progress-wrap{bottom:calc(var(--bottomnav-base) + var(--bottom-safe) + 58px)!important}
.player-section{padding-bottom:40px}.player-section>h1{font-family:Impact,Haettenschweiler,"Arial Narrow Bold","Arial Black",sans-serif;font-size:clamp(38px,11vw,60px);font-weight:400;text-transform:uppercase;margin:3px 0 16px}.player-console{border:1px solid #342224;background:radial-gradient(circle at 25% 25%,#1d1112,#080808 65%);border-radius:18px;padding:18px;box-shadow:inset 0 0 38px rgba(210,35,42,.07),0 18px 50px rgba(0,0,0,.45)}.player-console-head span{display:block;color:#d2232a;font-size:7px;font-weight:1000;letter-spacing:.14em}.player-console-head strong{display:block;margin-top:6px;font-size:14px;line-height:1.25;min-height:34px}.player-time{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:#8f8f8f;font-size:9px;margin:9px 0 5px}.player-progress{display:block;width:100%;height:10px;padding:0;border:1px solid #302426;background:#100b0c;overflow:hidden}.player-progress span{display:block;width:0;height:100%;background:linear-gradient(90deg,#741116,#e13a42)}.player-controls{display:grid;grid-template-columns:44px 54px 44px minmax(0,1fr);gap:7px;margin-top:15px}.player-controls button{height:44px;border:1px solid #30282a;background:#111;color:#ddd;border-radius:10px;font-size:20px}.player-controls .player-main-play{background:#d2232a;border-color:#d2232a;color:#fff;font-size:15px}.player-controls .player-shuffle{font-size:7px;font-weight:1000;letter-spacing:.08em;color:#777}.player-controls .player-shuffle.active{color:#fff;border-color:#7c272b;background:#281013}.player-volume{display:grid;grid-template-columns:28px 1fr;align-items:center;gap:8px;margin-top:13px;color:#777;font-size:7px;font-weight:1000}.player-volume input{accent-color:#d2232a}.player-list{display:grid;gap:5px;margin-top:12px}.player-track{display:grid;grid-template-columns:30px minmax(0,1fr);gap:8px;align-items:center;width:100%;border:1px solid #202020;background:#0c0c0c;color:#777;padding:10px;border-radius:9px;text-align:left}.player-track span{font-family:ui-monospace,monospace;font-size:8px;color:#555}.player-track strong{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-track.active{border-color:#642127;background:#160b0c;color:#fff}.player-track.active span{color:#d2232a}.player-note{color:#6f6f6f;font-size:9px;line-height:1.5;margin-top:14px}
@media(max-width:360px){.unread-callout{min-width:96px;padding:8px}.unread-callout strong{font-size:24px}.shelf-book{flex-basis:30px}.player-controls{grid-template-columns:40px 48px 40px minmax(0,1fr)}}

/* ===== v0.15 ===== */
.brand-home-icon{display:block;height:54px;width:54px;max-width:54px;object-fit:contain;object-position:center;background:transparent;border-radius:0;flex:none}.brand-home-icon:not(.ready){visibility:hidden}.brand-home-icon.logo-fallback{height:auto;width:100%;max-width:min(62vw,300px);max-height:52px;object-fit:contain}.brand{overflow:visible}

.read-celebration{pointer-events:auto;padding-top:28px}.read-celebration-close{position:absolute;right:9px;top:8px;width:30px;height:30px;border:1px solid #333;border-radius:50%;background:#111;color:#aaa;display:grid;place-items:center;font-size:20px;line-height:1;cursor:pointer}.read-celebration-close:active{transform:scale(.94)}

/* Estantería: altura común, anchura natural de cada lomo. */
.book-shelf-wrap{padding-top:16px}.book-shelf{min-height:152px;gap:3px;padding:0 6px;align-items:flex-end}.shelf-book{flex:0 0 auto;height:140px;width:auto;min-width:0;max-width:none;padding:0;overflow:visible;border-radius:2px 2px 0 0}.shelf-book.has-spine{border:0;background:transparent;box-shadow:3px 2px 8px rgba(0,0,0,.52)}.shelf-book.has-spine img{display:block;height:140px;width:auto;max-width:none;object-fit:contain;object-position:bottom center}.shelf-book.fallback-spine{width:34px;border:1px solid #352a20;background:linear-gradient(90deg,#1b1714,#33251d 48%,#130f0d);overflow:hidden}.shelf-book.fallback-spine span{display:block;writing-mode:vertical-rl;transform:rotate(180deg);margin:auto;font-size:8px;font-weight:900;letter-spacing:.05em}.shelf-board{height:12px}

/* Fichas de colección más grandes. */
.books-grid{gap:14px}.book-card{grid-template-columns:145px minmax(0,1fr);min-height:180px;border-radius:18px}.book-front,.book-thumbs{min-height:180px}.book-copy{padding:20px 18px}.book-copy h2{font-size:38px;margin:0 0 13px;line-height:.95}.book-numbers{font-size:10px;line-height:1.5;margin-bottom:13px;letter-spacing:.025em}.book-numbers strong{font-size:15px;color:#ddd}.book-numbers span{color:#444;margin:0 4px}.book-open{font-size:9px;margin-top:13px;color:#aaa}.book-card .collection-progress{height:7px}

/* Dentro del Book solo portada + contraportada, como un bloque a todo el ancho. */
.book-detail-head{gap:16px}.book-detail-head h1{font-size:clamp(42px,13vw,66px);margin:3px 0 2px}.book-cover-spread{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%;padding:8px;background:#080808;border:1px solid #242424;border-radius:16px;overflow:hidden}.book-cover-spread.single{grid-template-columns:minmax(0,1fr);max-width:58%}.book-cover-side{margin:0;min-width:0}.book-cover-side img{display:block;width:100%;height:auto;aspect-ratio:2/3;object-fit:contain;background:#030303}.book-cover-side figcaption{text-align:center;color:#666;font-size:7px;font-weight:900;letter-spacing:.12em;padding:7px 3px 2px}.book-detail-stats{gap:10px;margin:18px 0 11px}.book-detail-stats div{padding:16px 7px;border-radius:14px}.book-detail-stats strong{font-size:30px}.book-detail-stats span{font-size:8px;margin-top:6px}.book-story-filters{gap:9px;margin-top:18px}.book-story-filter{padding:14px 8px;font-size:9px;border-radius:12px}.collection-story-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:20px}.collection-story-grid .story-cover-card{border-radius:5px}.collection-progress.large{height:8px}

/* MUSIC PLAYER */
.player-section{padding-bottom:48px}.player-title-row{display:grid;grid-template-columns:minmax(0,1fr) 106px;align-items:end;gap:14px;margin-bottom:16px}.player-title-row h1,.player-section>h1{font-family:Impact,Haettenschweiler,"Arial Narrow Bold","Arial Black",sans-serif;font-size:clamp(39px,11.5vw,60px);line-height:.92;font-weight:400;text-transform:uppercase;margin:3px 0 0}.player-summary{aspect-ratio:1/1;border:1px solid #2d2d2d;background:#0c0c0c;border-radius:13px;padding:10px 8px;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto;gap:2px 7px;align-content:center;text-align:center}.player-summary strong,.player-summary b{display:block;font-family:Impact,Haettenschweiler,"Arial Narrow Bold","Arial Black",sans-serif;font-size:23px;font-weight:400;line-height:1}.player-summary b{font-size:14px;align-self:end}.player-summary span,.player-summary small{font-size:6px;color:#777;font-weight:900;letter-spacing:.08em;align-self:start}.player-console{padding:20px;border-radius:19px}.player-console-head span{font-size:8px}.player-console-head strong{font-size:19px;line-height:1.18;min-height:46px;margin-top:8px}.player-time{font-size:10px;margin:12px 0 6px}.player-progress{height:12px;border-color:#4b2226;background:#17090b}.player-progress span{background:linear-gradient(90deg,#8d141a,#f0444d)}.player-controls-main{display:grid;grid-template-columns:52px 64px 52px;justify-content:center;gap:9px;margin-top:17px}.player-controls-main button{height:50px;border:1px solid #30282a;background:#111;color:#ddd;border-radius:12px;font-size:24px}.player-controls-main .player-main-play{background:#d2232a;border-color:#d2232a;color:#fff;font-size:17px}.player-mode-controls{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:10px}.player-mode{height:38px;border:1px solid #2f2f2f;background:#0f0f0f;color:#737373;border-radius:10px;font-size:8px;font-weight:1000;letter-spacing:.045em}.player-mode.active{border-color:#8a3036;background:#251013;color:#fff;box-shadow:inset 0 0 16px rgba(210,35,42,.08)}.player-volume{grid-template-columns:32px 1fr;gap:10px;margin-top:16px;font-size:8px;color:#72c2ff}.player-volume input{accent-color:#33a8ff}.player-volume input::-webkit-slider-runnable-track{background:linear-gradient(90deg,#168ad8,#54c6ff);height:4px;border-radius:999px}.player-volume input::-moz-range-track{background:#209eea;height:4px;border-radius:999px}.player-list{gap:7px;margin-top:15px}.player-track{grid-template-columns:36px minmax(0,1fr);gap:10px;padding:13px 12px;border-radius:11px}.player-track span{font-size:9px}.player-track strong{font-size:13px;line-height:1.25;white-space:normal;overflow:visible;text-overflow:clip}.player-note{font-size:10px}.mini-player-kicker{color:#d2232a}

@media(max-width:390px){.book-card{grid-template-columns:126px minmax(0,1fr);min-height:164px}.book-front,.book-thumbs{min-height:164px}.book-copy{padding:17px 14px}.book-copy h2{font-size:34px}.player-title-row{grid-template-columns:minmax(0,1fr) 94px}.player-summary{padding:8px 6px}.player-summary strong{font-size:21px}.player-summary b{font-size:12px}}
@media(max-width:350px){.book-card{grid-template-columns:108px minmax(0,1fr)}.book-copy h2{font-size:30px}.shelf-book.has-spine img,.shelf-book{height:128px}.book-shelf{min-height:140px}.player-track strong{font-size:12px}.player-title-row{grid-template-columns:minmax(0,1fr) 86px}}


/* ===== v0.16 · candados, miniplayer y estantería a proporción real ===== */
.ex-badge{display:grid;place-items:center;padding:0;letter-spacing:0}
.ex-badge .lock-svg{width:17px;height:17px;display:block;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.ex-badge.ex-locked{border-color:#9b3338;color:#ffb5b8;background:rgba(42,8,10,.88)}
.ex-badge.ex-unlocked{border-color:#5e8d67;color:#dfffe5;background:rgba(14,49,22,.88)}
.ex-inline .lock-svg{width:18px;height:18px}

/* El miniplayer usa exactamente el mismo ancho de la app / navegación inferior. */
.mini-player{left:0!important;right:0!important;margin-inline:auto!important;transform:none!important;width:100%!important;max-width:var(--phone-max)!important;overflow:hidden!important}
.mini-player-main{overflow:hidden}
@media(min-width:700px){.mini-player{width:min(100vw,calc(100dvh * 9 / 16))!important;max-width:none!important}}

/* Lomos: la muestra real es aproximadamente 1:15 (ancho:alto). No se fuerza ancho. */
.book-shelf-wrap{padding-top:16px}
.book-shelf{min-height:clamp(210px,62vw,270px);gap:3px;padding:0 8px;align-items:flex-end}
.shelf-book{flex:0 0 auto!important;height:clamp(200px,59vw,255px)!important;width:max-content!important;min-width:0!important;max-width:none!important;padding:0!important;line-height:0}
.shelf-book.has-spine{border:0!important;background:transparent!important;overflow:visible!important;box-shadow:3px 2px 9px rgba(0,0,0,.52)}
.shelf-book.has-spine img{display:block!important;height:clamp(200px,59vw,255px)!important;width:auto!important;max-width:none!important;object-fit:contain!important;object-position:bottom center!important}
.shelf-book.fallback-spine{width:30px!important;line-height:normal}
@media(max-width:350px){.book-shelf{min-height:196px}.shelf-book,.shelf-book.has-spine img{height:186px!important}}

/* ===== v0.17 · continuidad, colección y PLAYER ===== */
/* MIS STORIES: mensaje pendiente con tipografía de lectura y todo centrado. */
.my-stories-title{align-items:stretch}
.unread-callout{display:grid;place-items:center;text-align:center!important;min-width:138px;padding:13px 14px}
.unread-callout strong{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;font-size:13px!important;line-height:1.18!important;font-weight:780!important;color:#d6b08d!important;letter-spacing:0!important;text-transform:none!important;margin:0}
.unread-callout strong b{display:block;font:inherit;font-size:26px!important;line-height:.95;color:#ff9c42;margin-bottom:5px}
.progress-big{display:grid!important;grid-template-columns:auto auto;column-gap:8px;row-gap:4px;align-items:end;justify-content:start}
.progress-big>strong{font-size:54px!important;line-height:.8}
.progress-big .progress-denom{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;font-size:24px!important;line-height:.9!important;color:#d0d0d0!important;font-weight:800!important;white-space:nowrap}
.progress-big>em{grid-column:1/-1;font-style:normal;color:#7f7f7f;font-size:8px;font-weight:900;letter-spacing:.055em;line-height:1.15}

/* COLECCIÓN: cada Book siempre se expresa como progreso X/15. */
.book-numbers{display:flex!important;flex-direction:column;align-items:flex-start;gap:2px;margin:0 0 14px!important;color:#eee!important;line-height:1!important}
.book-numbers strong{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;font-size:26px!important;line-height:1!important;font-weight:850!important;color:#f1f1f1!important}
.book-numbers span{font-size:11px!important;line-height:1.1!important;color:#8d8d8d!important;font-weight:900!important;letter-spacing:.055em!important;margin:0!important}
.book-open{font-size:13px!important;line-height:1!important;font-weight:900!important;letter-spacing:.055em!important;color:#d0d0d0!important;margin-top:15px!important}
.book-card .collection-progress{height:8px!important}

/* ESTANTERÍA: grupo de libros limitado a la mitad izquierda de la pantalla.
   Los lomos mantienen su proporción natural; el espacio se reparte dentro de ese 50%. */
.book-shelf{width:50%!important;max-width:50%!important;min-width:50%!important;margin-right:auto!important;overflow:visible!important;justify-content:space-between!important;gap:0!important;padding:0 3px!important;min-height:clamp(310px,100vw,410px)!important}
.shelf-book{height:clamp(300px,96vw,395px)!important;flex:0 0 auto!important}
.shelf-book.has-spine img{height:clamp(300px,96vw,395px)!important;width:auto!important;max-width:none!important;object-fit:contain!important}
.shelf-book.fallback-spine{width:26px!important}

/* PLAYER: título más limpio, caja resumen mayor y volumen con relleno real. */
.player-title-row{grid-template-columns:minmax(0,1fr) 138px!important;gap:16px!important;align-items:stretch!important}
.player-title-row h1{font-size:clamp(46px,13vw,68px)!important;align-self:end}
.player-summary{aspect-ratio:auto!important;min-height:116px!important;padding:13px 10px!important;border-radius:15px!important;gap:5px 8px!important}
.player-summary strong{font-size:31px!important}
.player-summary b{font-size:18px!important;line-height:1.05!important}
.player-summary span,.player-summary small{font-size:7px!important;letter-spacing:.075em!important}
.player-volume{grid-template-columns:34px minmax(0,1fr)!important;align-items:center!important;gap:10px!important}
.player-volume input[type="range"]{-webkit-appearance:none!important;appearance:none!important;width:100%;height:24px;margin:0;background:transparent!important;accent-color:transparent!important;--volume-pct:85%}
.player-volume input[type="range"]::-webkit-slider-runnable-track{height:6px!important;border-radius:999px!important;background:linear-gradient(90deg,#168ad8 0%,#54c6ff var(--volume-pct),#17242d var(--volume-pct),#17242d 100%)!important;border:1px solid #24506c!important}
.player-volume input[type="range"]::-webkit-slider-thumb{-webkit-appearance:none!important;appearance:none!important;width:18px!important;height:18px!important;border-radius:50%!important;background:#e8f7ff!important;border:2px solid #33a8ff!important;box-shadow:0 0 0 2px rgba(51,168,255,.12),0 2px 8px rgba(0,0,0,.55)!important;margin-top:-7px!important}
.player-volume input[type="range"]::-moz-range-track{height:6px!important;border-radius:999px!important;background:#17242d!important;border:1px solid #24506c!important}
.player-volume input[type="range"]::-moz-range-progress{height:6px!important;border-radius:999px!important;background:linear-gradient(90deg,#168ad8,#54c6ff)!important}
.player-volume input[type="range"]::-moz-range-thumb{width:18px!important;height:18px!important;border-radius:50%!important;background:#e8f7ff!important;border:2px solid #33a8ff!important;box-shadow:0 2px 8px rgba(0,0,0,.55)!important}

@media(max-width:390px){
  .unread-callout{min-width:124px;padding:11px 10px}
  .unread-callout strong{font-size:12px!important}.unread-callout strong b{font-size:23px!important}
  .progress-big>strong{font-size:50px!important}.progress-big .progress-denom{font-size:22px!important}
  .player-title-row{grid-template-columns:minmax(0,1fr) 126px!important}.player-summary{min-height:108px!important}
  .book-shelf{min-height:clamp(290px,98vw,380px)!important}.shelf-book,.shelf-book.has-spine img{height:clamp(280px,94vw,365px)!important}
}
/* Ajuste dinámico de la estantería: 50% exacto de ancho, sin deformar lomos. */
.book-shelf{min-height:calc(var(--shelf-h,340px) + 10px)!important}
.shelf-book,.shelf-book.has-spine img{height:var(--shelf-h,340px)!important}
.player-volume input[type="range"]::-webkit-slider-thumb{margin-top:-6px!important}


/* ===== v0.18 · navegación, biblioteca, estantería y transición Story ===== */
/* Header: icono HOME + botón ATRÁS inmediatamente a su derecha. */
.topbar{grid-template-columns:auto auto minmax(0,1fr)!important;column-gap:8px!important}
.topbar .brand{width:auto!important;justify-content:flex-start!important;min-width:54px!important}
.back-nav-btn{height:34px;min-width:62px;padding:0 9px;border:1px solid #292929;border-radius:10px;background:#0d0d0d;color:#bdbdbd;font-size:8px;font-weight:950;letter-spacing:.045em;white-space:nowrap}
.back-nav-btn:active{transform:scale(.96)}.back-nav-btn:disabled{opacity:.28}
.topbar-actions{justify-self:end;gap:6px!important}.header-player-btn{font-size:18px!important}

/* Más contraste sobre la imagen destacada de HOME. */
.hero-content .eyebrow,.hero-content .story-number,.hero-content h1{ text-shadow:0 2px 2px #000,0 0 5px #000,0 0 12px rgba(0,0,0,.98),0 0 24px rgba(0,0,0,.88),2px 3px 5px rgba(0,0,0,.95)!important }

/* Contadores de la biblioteca: etiquetas realmente legibles. */
.library-stats button{padding:14px 7px!important}
.library-stats strong{font-size:clamp(31px,9.5vw,43px)!important}
.library-stats span{font-size:clamp(9px,2.65vw,11px)!important;line-height:1.18!important;letter-spacing:.035em!important;color:#aaa!important;margin-top:8px!important}

/* Estantería: los lomos forman un único bloque compacto, sin huecos entre libros. */
.book-shelf{justify-content:flex-start!important;gap:0!important;padding-left:3px!important;padding-right:0!important}
.shelf-book{margin:0!important}.shelf-book.has-spine{box-shadow:1px 1px 5px rgba(0,0,0,.45)!important}

/* PLAYER: PISTAS/DURACIÓN tienen el mismo tamaño que sus cifras. */
.player-summary{grid-template-columns:1fr 1fr!important;grid-template-rows:auto auto!important;align-items:center!important}
.player-summary strong,.player-summary span,.player-summary b,.player-summary small{font-family:Impact,Haettenschweiler,"Arial Narrow Bold","Arial Black",sans-serif!important;font-size:clamp(13px,3.8vw,18px)!important;line-height:1!important;font-weight:400!important;letter-spacing:.02em!important;color:#e6e6e6!important;align-self:center!important}
.player-summary span,.player-summary small{color:#a8a8a8!important}

/* Entrada a una Story: fogonazo terrorífico + 5 golpes de vibración visual. */
.app-shell.story-entering{animation:storyHorrorShake .25s steps(5,end) 1;will-change:transform,filter}
.app-shell.story-entering::after{content:"";position:fixed;z-index:999;pointer-events:none;inset:0;background:radial-gradient(circle at 50% 42%,rgba(255,255,255,.72) 0 4%,rgba(210,35,42,.62) 18%,rgba(72,0,7,.48) 43%,rgba(0,0,0,0) 72%);mix-blend-mode:screen;animation:storyHorrorFlash .25s steps(5,end) 1}
.story-enter-target{position:relative;z-index:46!important;box-shadow:0 0 0 2px rgba(255,255,255,.9),0 0 18px 7px rgba(210,35,42,.82),0 0 42px 15px rgba(94,0,8,.65)!important;filter:contrast(1.18) saturate(1.35)}
@keyframes storyHorrorShake{0%{transform:translate(0,0)}20%{transform:translate(-5px,2px)}40%{transform:translate(4px,-3px)}60%{transform:translate(-3px,-1px)}80%{transform:translate(4px,2px)}100%{transform:translate(0,0)}}
@keyframes storyHorrorFlash{0%{opacity:0}20%{opacity:.92}40%{opacity:.18}60%{opacity:.72}80%{opacity:.14}100%{opacity:0}}
@media(prefers-reduced-motion:reduce){.app-shell.story-entering{animation:none!important}.app-shell.story-entering::after{animation:none!important;display:none!important}.story-enter-target{filter:none!important}}

@media(max-width:360px){
 .back-nav-btn{min-width:55px;padding:0 7px;font-size:7px}.topbar{column-gap:5px!important}.topbar-actions{gap:4px!important}
 .icon-btn{width:37px;height:37px}.brand-home-icon{width:50px;height:50px;max-width:50px}
 .library-stats span{font-size:8.5px!important}
}

/* ========================================================================
   DISTURBING PWA v1.1 · CRYO LAB + HOLO HUD
   Tipografía: Oxanium + Exo 2 · lenguaje de movimiento Holo HUD
   ======================================================================== */
:root{
  --bg:#03080b!important;
  --panel:#071116!important;
  --panel2:#0b171d!important;
  --text:#f3fcff!important;
  --muted:#8eafb9!important;
  --line:#24434e!important;
  --accent:#6edcea!important;
  --accent2:#2b8798!important;
  --cryo:#8ef4ff;
  --cryo-soft:#75c8d8;
  --cryo-blue:#7898ff;
  --cryo-panel:rgba(7,18,23,.88);
  --cryo-panel-2:rgba(10,26,33,.9);
  --danger:#e55461;
  --success:#79e49b;
  --topbar-base:80px;
  --bottomnav-base:88px;
}
html,body,button,input,select,textarea{font-family:'Exo 2',ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important}
body{background:#020507!important}
.app-shell{background:linear-gradient(180deg,#071015,#03080b 48%,#020507)!important}

/* Typography system */
.hero h1,.section-title h1,.section-title h2,.story-header h1,.story-copy h3,.story-grid-copy h3,
.book-copy h2,.book-detail-head h1,.player-title-row h1,.player-section>h1,.story-number,
.library-stats strong,.personal-stats strong,.progress-big strong,.progress-big .progress-denom,
.player-summary strong,.player-summary b,.player-summary span,.player-summary small,.book-detail-stats strong,
.book-numbers strong,.player-console-head strong,.read-celebration strong{
  font-family:'Oxanium',ui-sans-serif,system-ui,sans-serif!important;
  font-weight:700!important;
}
.eyebrow,.pill,.tab,.story-select,.advanced-toggle,.my-filter,.view-mode,.book-story-filter,.player-mode,
.nav-btn small,.mini-player-kicker,.back-nav-btn,.drawer button,.drawer a{
  font-family:'Exo 2',ui-sans-serif,system-ui,sans-serif!important;
}
.reader p,.reader blockquote,.reader .note{font-family:'Exo 2',ui-sans-serif,system-ui,sans-serif!important}
.reader p{font-size:clamp(17px,4.65vw,19.5px)!important;line-height:1.7!important;color:#e9f2f4!important}

/* Header */
.topbar{
  background:rgba(3,10,13,.94)!important;
  border-bottom:1px solid rgba(122,225,239,.15)!important;
  box-shadow:0 8px 26px rgba(0,0,0,.28)!important;
}
.back-nav-btn{
  height:50px!important;
  min-width:104px!important;
  padding:0 15px!important;
  border:1px solid #315966!important;
  border-radius:7px!important;
  background:linear-gradient(180deg,rgba(142,244,255,.07),rgba(142,244,255,.02))!important;
  color:#e8fbff!important;
  font-size:14px!important;
  font-weight:800!important;
  letter-spacing:.025em!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05)!important;
}
.back-nav-btn:active{transform:scale(.95)!important;border-color:var(--cryo)!important}
.icon-btn{
  border-color:#2d525e!important;background:#091419!important;color:#e8fbff!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04)!important;
}
.header-player-btn{color:var(--cryo)!important}

/* Footer: icons ~2x v0.18, labels legible and fitted */
.bottom-nav{
  padding:5px 4px var(--bottom-safe)!important;
  background:rgba(3,10,13,.97)!important;
  border-top:1px solid rgba(122,225,239,.18)!important;
  box-shadow:0 -10px 28px rgba(0,0,0,.38)!important;
}
.nav-btn{min-height:78px!important;gap:3px!important;color:#6f8a94!important;padding:3px 1px!important;min-width:0!important}
.nav-btn span{
  font-size:38px!important;
  line-height:.9!important;
  width:100%!important;
  min-width:0!important;
  display:grid!important;
  place-items:center!important;
  color:#7897a1!important;
  text-shadow:0 0 0 transparent!important;
}
.nav-btn small{
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  padding:0 1px!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
  text-align:center!important;
  font-size:clamp(8px,2.4vw,10px)!important;
  line-height:1.05!important;
  font-weight:750!important;
  letter-spacing:-.01em!important;
}
.nav-btn.active{color:#fff!important}
.nav-btn.active span{color:#eafbff!important;filter:drop-shadow(0 0 7px rgba(142,244,255,.30))}
.nav-btn.active small{color:#fff!important}

/* Common Holo HUD objects */
.library-stats button,.progress-dashboard,.personal-stats div,.home-progress,.home-continue,
.story-card,.story-grid-card,.continue-card,.book-card,.book-detail-stats div,.player-summary,.player-console,
.lock-screen,.story-select,.advanced-toggle,.my-filter,.view-mode,.book-story-filter,.player-track{
  border-color:#294c58!important;
  background:linear-gradient(180deg,rgba(142,244,255,.035),rgba(255,255,255,.012)),#081217!important;
  border-radius:7px!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.035)!important;
}
.story-card,.story-grid-card,.book-card,.continue-card,.player-track{transition:border-color .18s ease,background .18s ease,transform .18s ease,box-shadow .18s ease}
.story-card:active,.story-grid-card:active,.story-cover-card:active,.book-card:active{transform:scale(.985)}

/* Pills / buttons / controls */
.pill,.filter{
  border-color:#31515d!important;background:rgba(8,22,28,.72)!important;color:#cbe6ed!important;border-radius:999px!important
}
.pill.red{border-color:#7d3139!important;background:rgba(137,29,40,.18)!important;color:#ffc9ce!important}
.cta{
  border:1px solid #5ccad9!important;
  border-radius:7px!important;
  background:linear-gradient(180deg,#78e5f1,#45aebb)!important;
  color:#031014!important;
  font-family:'Oxanium',sans-serif!important;
  font-weight:700!important;
  box-shadow:0 8px 28px rgba(55,190,207,.16),inset 0 1px 0 rgba(255,255,255,.25)!important;
}
.secondary-btn,.continue-btn,.link-btn{
  border-color:#315663!important;background:#0b171c!important;color:#d8f3f8!important;border-radius:7px!important
}
.story-select,.advanced-toggle,.my-filter,.view-mode,.book-story-filter{
  color:#b8d7df!important
}
.my-filter.active,.view-mode.active,.book-story-filter.active{
  background:rgba(126,232,244,.14)!important;color:#fff!important;border-color:#66d8e7!important;box-shadow:0 0 18px rgba(111,230,244,.08)!important
}

/* Reader tabs: Holo HUD */
.tabs{
  background:rgba(3,10,13,.95)!important;
  border-color:#1d3942!important;
  gap:9px!important;
}
.tab{
  position:relative!important;
  background:transparent!important;
  color:#87a9b3!important;
  border:1px solid #294b57!important;
  border-radius:4px!important;
  padding:15px 19px!important;
  font-family:'Oxanium',sans-serif!important;
  font-size:clamp(13px,3.7vw,16px)!important;
}
.tab.active{
  color:#f3feff!important;
  background:rgba(111,230,244,.075)!important;
  border-color:#74e6f2!important;
  box-shadow:0 0 16px rgba(111,230,244,.08)!important;
}
.tab::before,.tab::after{content:"";position:absolute;width:9px;height:9px;pointer-events:none}
.tab::before{left:-1px;top:-1px;border-left:2px solid #76e7f2;border-top:2px solid #76e7f2}
.tab::after{right:-1px;bottom:-1px;border-right:2px solid #76e7f2;border-bottom:2px solid #76e7f2}

/* Library lock state = bubble over the poster, top-right */
.story-thumb-wrap{position:relative;width:clamp(64px,19vw,82px);aspect-ratio:4/5;overflow:hidden;border-radius:8px;flex:none}
.story-thumb-wrap>.story-thumb,.story-thumb-wrap>.story-thumb-placeholder{width:100%!important;height:100%!important;aspect-ratio:auto!important;border-radius:0!important;object-fit:cover!important;display:block!important}
.ex-badge{
  top:6px!important;right:6px!important;bottom:auto!important;
  width:34px!important;height:34px!important;border-radius:50%!important;
  background:rgba(3,10,13,.87)!important;
  backdrop-filter:blur(7px)!important;-webkit-backdrop-filter:blur(7px)!important;
  box-shadow:0 4px 14px rgba(0,0,0,.42)!important;
}
.ex-badge .lock-svg{width:19px!important;height:19px!important}
.ex-badge.ex-locked{border:1.5px solid #a94450!important;color:#ffadb5!important;background:rgba(42,8,12,.88)!important}
.ex-badge.ex-unlocked{border:1.5px solid #58a06b!important;color:#cffff0!important;background:rgba(8,38,18,.90)!important}
.ex-inline{position:relative!important;top:auto!important;right:auto!important}
.story-state .ex-badge{display:none!important}
.story-state{border-color:#294b57!important;color:#9fc1cb!important;background:#081319!important}
.story-cover-card>.ex-badge,.story-grid-card>.ex-badge{top:7px!important;right:7px!important}
.cover-read{left:6px!important;bottom:6px!important;background:rgba(3,12,14,.86)!important;border-color:#365b66!important;color:#dff8fc!important}
.cover-progress{background:rgba(117,72,20,.9)!important;color:#ffe2be!important;border-color:#a66a27!important}

/* Library numbers */
.library-stats strong{color:#f1fdff!important;text-shadow:0 0 14px rgba(142,244,255,.10)!important}
.library-stats span,.personal-stats span{color:#9fc0ca!important}
.results-count{color:#7fa2ac!important}

/* Progress */
.collection-progress,.mini-progress,.player-progress,.progress-wrap{
  background:rgba(0,0,0,.72)!important;border-color:#2a4e59!important
}
.collection-progress span,.mini-progress span,.progress,.player-progress span,.mini-player-progress i{
  background:linear-gradient(90deg,#67dce9,#7a9dff)!important;
  box-shadow:0 0 10px rgba(111,230,244,.13)!important
}
.progress-dashboard.hud-progress-init .collection-progress span{transform:scaleX(0);transform-origin:left center}
.progress-dashboard.hud-progress-ready .collection-progress span{transform:scaleX(1);transition:transform .75s cubic-bezier(.2,.75,.18,1)}

/* Player */
.player-summary strong,.player-summary b{color:#effdff!important}
.player-summary span,.player-summary small{color:#8fb7c1!important}
.player-console{border-color:#315965!important}
.player-main-play{background:#66dce9!important;border-color:#66dce9!important;color:#031015!important}
.player-mode.active{border-color:#5bc9d8!important;background:rgba(91,201,216,.11)!important;color:#fff!important}
.mini-player{
  background:rgba(3,10,13,.98)!important;border-top-color:#31545f!important;box-shadow:0 -10px 30px rgba(0,0,0,.42)!important
}
.mini-player-kicker{color:#7ce9f5!important}

/* Collection */
.book-open{color:#9fe9f2!important}
.book-shelf-title,.book-cover-side figcaption{color:#7da7b1!important}
.shelf-board{background:linear-gradient(180deg,#31505b,#112129)!important;box-shadow:0 8px 20px rgba(0,0,0,.42)!important}

/* Holo corner motion injected by app.js */
.hud-motion-box{position:relative!important}
.hud-corner{position:absolute;width:16px;height:16px;z-index:12;pointer-events:none;opacity:1;filter:drop-shadow(0 0 0 transparent)}
.hud-tl{left:0;top:0;border-left:2px solid var(--cryo);border-top:2px solid var(--cryo)}
.hud-tr{right:0;top:0;border-right:2px solid var(--cryo);border-top:2px solid var(--cryo)}
.hud-bl{left:0;bottom:0;border-left:2px solid var(--cryo);border-bottom:2px solid var(--cryo)}
.hud-br{right:0;bottom:0;border-right:2px solid var(--cryo);border-bottom:2px solid var(--cryo)}
.hud-box-pending{
  border-color:transparent!important;background:transparent!important;box-shadow:none!important
}
.hud-box-pending>:not(.hud-corner){opacity:0!important}
.hud-box-pending.hud-frame-on{
  border-color:#294c58!important;background:linear-gradient(180deg,rgba(142,244,255,.035),rgba(255,255,255,.012)),#081217!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.035)!important;transition:background .24s ease,border-color .24s ease,box-shadow .24s ease
}
.hud-box-pending.hud-content-on>:not(.hud-corner){opacity:1!important;transition:opacity .24s ease}
.hud-box-pending .hud-corner{opacity:0}
.hud-corners-live .hud-corner{animation:hudCornerTravel .52s cubic-bezier(.2,.75,.18,1) both}
@keyframes hudCornerTravel{
  0%{opacity:0;transform:translate(var(--hud-from-x),var(--hud-from-y)) scale(.2);filter:drop-shadow(0 0 10px rgba(142,244,255,.85))}
  15%{opacity:1}
  100%{opacity:1;transform:translate(0,0) scale(1);filter:drop-shadow(0 0 0 transparent)}
}
.hud-progress-blink{animation:hudModuleBlink .52s steps(1,end) 1!important}
@keyframes hudModuleBlink{
  0%{opacity:1;filter:brightness(1)}
  18%{opacity:.08;filter:brightness(3.2)}
  34%{opacity:1;filter:brightness(1.55)}
  50%{opacity:.16;filter:brightness(2.6)}
  68%{opacity:1;filter:brightness(1.35)}
  82%{opacity:.38;filter:brightness(1.9)}
  100%{opacity:1;filter:brightness(1)}
}

/* Typewriter */
.typewriter-motion::after{content:"_";color:var(--cryo);margin-left:.06em;animation:hudCursor .62s step-end infinite}
.typewriter-motion.typewriter-done::after{animation:hudCursorOut .38s ease forwards}
@keyframes hudCursor{50%{opacity:0}}
@keyframes hudCursorOut{to{opacity:0}}

/* Story/reader reveals */
.story-list-reveal{opacity:0;transform:translateY(9px);filter:blur(2px)}
.story-list-reveal.story-list-reveal-live{opacity:1;transform:none;filter:none;transition:opacity .36s ease,transform .36s cubic-bezier(.2,.75,.18,1),filter .36s ease}
.reader-reveal-pending{opacity:0!important;transform:translateY(8px)!important;filter:blur(3px)!important}
.reader-reveal-pending.reader-reveal-live{opacity:1!important;transform:none!important;filter:blur(0)!important;transition:opacity .42s ease,transform .42s cubic-bezier(.2,.75,.18,1),filter .42s ease}

/* Entry Story: keep 5 visual frames + stronger Cryo/red horror contrast */
.app-shell.story-entering{animation:storyHorrorShake .25s steps(5,end) 1!important}
.app-shell.story-entering::after{
  background:radial-gradient(circle at 50% 42%,rgba(255,255,255,.86) 0 3%,rgba(107,224,239,.46) 12%,rgba(217,47,61,.62) 24%,rgba(64,0,7,.46) 46%,transparent 72%)!important
}

/* Unlock reward — intentionally vivid */
.unlock-reward{position:fixed;z-index:1200;inset:0;display:grid;place-items:center;pointer-events:none;opacity:0;background:rgba(0,4,5,.32);transition:opacity .16s ease}
.unlock-reward.show{opacity:1}
.unlock-reward-flash{position:absolute;inset:0;opacity:0;background:radial-gradient(circle at 50% 45%,#fff 0 4%,rgba(122,255,160,.92) 7%,rgba(95,226,255,.38) 23%,transparent 58%)}
.unlock-reward.show .unlock-reward-flash{animation:unlockFlashV1 .56s .27s ease-out both}
.unlock-reward-card{
  width:min(88vw,430px);display:grid;grid-template-columns:94px minmax(0,1fr);gap:18px;align-items:center;
  padding:22px;border:1px solid #3c6974;background:rgba(5,17,20,.96);box-shadow:0 24px 80px rgba(0,0,0,.65);position:relative
}
.unlock-reward.show .unlock-reward-card{animation:unlockWiggleV1 .46s .31s cubic-bezier(.36,.07,.19,.97) both}
.unlock-reward-ring{width:88px;height:88px;border-radius:50%;border:1px solid #3b6570;display:grid;place-items:center;background:#071317}
.unlock-reward.show .unlock-reward-ring{animation:unlockRingV1 .9s .25s cubic-bezier(.2,.75,.18,1) both}
.unlock-reward-icon .lock-svg{width:42px;height:42px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;color:#dffaff}
.unlock-reward-copy small{color:#8ebac5;font:700 9px/1 'Oxanium',sans-serif;letter-spacing:.1em}
.unlock-reward-copy strong{display:block;margin-top:6px;font:700 20px/1 'Oxanium',sans-serif;color:#fff}
.unlock-reward-copy em{display:block;margin-top:9px;font-style:normal;color:#8df2aa;font:700 10px/1 'Exo 2',sans-serif;letter-spacing:.12em}
@keyframes unlockFlashV1{0%{opacity:0;transform:scale(.58)}18%{opacity:1;transform:scale(1)}40%{opacity:.92}100%{opacity:0;transform:scale(1.45)}}
@keyframes unlockWiggleV1{0%,100%{transform:translateX(0) rotate(0)}15%{transform:translateX(-8px) rotate(-1.2deg)}30%{transform:translateX(8px) rotate(1.2deg)}45%{transform:translateX(-6px) rotate(-.8deg)}60%{transform:translateX(5px) rotate(.8deg)}75%{transform:translateX(-2px)}}
@keyframes unlockRingV1{0%{border-color:#3b6570;box-shadow:none;transform:scale(1)}38%{border-color:#fff;box-shadow:0 0 0 12px rgba(121,228,155,.12),0 0 50px rgba(121,228,155,.58);transform:scale(1.2)}62%{border-color:#79e49b;transform:scale(.94)}100%{border-color:#4c9564;box-shadow:0 0 22px rgba(121,228,155,.18);transform:scale(1)}}

/* Drawer */
.drawer{background:#061014!important;border-left-color:#2b4b56!important}
.drawer button,.drawer a{border-color:#1e3841!important;color:#cfe8ee!important}
.drawer-note{color:#6f99a4!important}

/* iPhone / narrow phones */
@media(max-width:390px){
  .back-nav-btn{height:47px!important;min-width:90px!important;padding:0 11px!important;font-size:12px!important}
  .topbar{column-gap:5px!important;padding-left:7px!important;padding-right:7px!important}
  .topbar-actions{gap:4px!important}
  .icon-btn{width:38px!important;height:38px!important}
  .nav-btn span{font-size:35px!important}
  .nav-btn small{font-size:8px!important}
}
@media(max-width:350px){
  .back-nav-btn{min-width:78px!important;font-size:11px!important;padding:0 8px!important}
  .nav-btn span{font-size:32px!important}
  .nav-btn small{font-size:7.5px!important}
}

@media(prefers-reduced-motion:reduce){
  .hud-corner{animation:none!important;opacity:1!important;transform:none!important}
  .hud-box-pending{border-color:#294c58!important;background:#081217!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.035)!important}
  .hud-box-pending>:not(.hud-corner){opacity:1!important}
  .story-list-reveal,.reader-reveal-pending{opacity:1!important;transform:none!important;filter:none!important}
  .typewriter-motion::after{display:none!important}
  .unlock-reward-card,.unlock-reward-flash,.unlock-reward-ring{animation:none!important}
}

/* ========================================================================
   DISTURBING PWA v1.2 · readability + responsive content + richer library
   ======================================================================== */
:root{--bottomnav-base:128px!important}

/* Never let compact UI text become unreadable. */
.eyebrow{font-size:clamp(10.5px,2.9vw,12px)!important;line-height:1.25!important}
.story-number{font-size:clamp(10px,2.8vw,12px)!important;line-height:1.2!important}
.story-copy p,.story-grid-copy p,.results-count,.player-console-head span,.player-time,.player-volume,.player-note,.player-track span,.scanner-help{
  font-size:clamp(10px,2.75vw,12px)!important;line-height:1.35!important
}
.story-copy,.story-grid-copy,.book-copy,.player-console,.player-summary,.player-summary-row,.personal-stats>div,.library-stats>button,.book-detail-stats>div{min-width:0!important}
.story-copy h3,.story-copy p,.story-grid-copy h3,.story-grid-copy p,.book-copy h2,.player-console-head strong,.player-note,.personal-stats span,.library-stats span,.book-detail-stats span{overflow-wrap:anywhere}

/* PLAYER summary: labels left, numbers right, everything contained. */
.player-title-row{grid-template-columns:minmax(0,1fr) minmax(150px,42%)!important;gap:14px!important;align-items:stretch!important}
.player-summary{
  width:100%!important;min-width:0!important;max-width:100%!important;min-height:112px!important;
  padding:9px 11px!important;display:grid!important;grid-template-columns:1fr!important;grid-template-rows:1fr 1fr!important;
  gap:0!important;align-content:stretch!important;text-align:initial!important;overflow:hidden!important
}
.player-summary-row{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important;gap:8px!important;min-width:0!important}
.player-summary-row+ .player-summary-row{border-top:1px solid rgba(142,244,255,.12)!important}
.player-summary-row span,.player-summary-row small{
  justify-self:start!important;text-align:left!important;white-space:nowrap!important;
  font-family:'Exo 2',sans-serif!important;font-size:clamp(11px,3.15vw,13px)!important;line-height:1!important;font-weight:750!important;letter-spacing:.035em!important;color:#9fc5cf!important
}
.player-summary-row strong,.player-summary-row b{
  justify-self:end!important;text-align:right!important;white-space:nowrap!important;max-width:100%!important;
  font-family:'Oxanium',sans-serif!important;font-size:clamp(14px,3.8vw,18px)!important;line-height:1!important;font-weight:700!important;letter-spacing:-.015em!important;color:#f2fdff!important
}
.player-mode-controls{gap:9px!important;margin-top:13px!important}
.player-mode{
  min-height:54px!important;height:auto!important;padding:10px 6px!important;
  font-size:clamp(11.5px,3.25vw,13.5px)!important;line-height:1.15!important;font-weight:850!important;letter-spacing:.025em!important;
  color:#abc7cf!important;border-color:#355965!important
}
.player-mode.active{color:#fff!important}
.player-volume>span{font-size:11px!important;font-weight:800!important}
.player-track strong{font-size:clamp(13px,3.7vw,15px)!important;line-height:1.35!important}

/* Footer navigation: substantially larger and brighter than v1.1. */
.bottom-nav{padding:7px 2px var(--bottom-safe)!important;min-height:calc(var(--bottomnav-base) + var(--bottom-safe))!important}
.nav-btn{min-height:112px!important;gap:7px!important;padding:4px 0!important;color:#9eb8c1!important;overflow:hidden!important}
.nav-btn span{
  font-size:64px!important;line-height:.78!important;color:#a7c4cd!important;
  filter:drop-shadow(0 0 5px rgba(142,244,255,.08));
}
.nav-btn small{
  font-size:clamp(12px,3.55vw,15px)!important;line-height:1.05!important;font-weight:800!important;
  letter-spacing:-.035em!important;color:#a7c0c8!important;overflow:visible!important;text-overflow:clip!important;white-space:nowrap!important
}
.nav-btn.active span{color:#f2fdff!important;filter:drop-shadow(0 0 10px rgba(142,244,255,.32))!important}
.nav-btn.active small{color:#fff!important}

/* Poster information bubbles. */
.sort-badge{
  position:absolute;z-index:7;left:6px;top:6px;max-width:calc(100% - 52px);
  padding:5px 7px;border:1px solid rgba(180,239,249,.44);border-radius:999px;
  background:rgba(3,13,17,.9);color:#e9fbff;backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);
  box-shadow:0 4px 13px rgba(0,0,0,.36);font:700 clamp(8px,2.35vw,10px)/1 'Oxanium',sans-serif;white-space:nowrap
}
.story-media-badges{
  position:absolute;z-index:8;right:6px;bottom:6px;display:flex;flex-direction:row;gap:4px;align-items:center;pointer-events:none
}
.media-badge{
  width:29px;height:29px;border-radius:50%;display:grid;place-items:center;
  backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);box-shadow:0 4px 13px rgba(0,0,0,.4)
}
.media-feature-svg{width:17px;height:17px;display:block;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.media-badge.media-audio{color:#00ff48!important;border:1.5px solid #00ff48!important;background:rgba(0,58,17,.9)!important}
.media-badge.media-video{color:#009dff!important;border:1.5px solid #009dff!important;background:rgba(0,30,62,.92)!important}
.story-thumb-wrap .story-media-badges{right:5px;bottom:5px}
.story-thumb-wrap .media-badge{width:25px;height:25px}.story-thumb-wrap .media-feature-svg{width:14px;height:14px}
.story-grid-card>.sort-badge,.story-cover-card>.sort-badge{left:7px!important;top:7px!important}

/* MIS STORIES: orange pending callout adopts Holo HUD behavior but keeps its identity. */
.my-stories-title{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(150px,44%)!important;gap:12px!important;align-items:end!important}
.unread-callout{
  width:100%!important;min-width:0!important;max-width:100%!important;padding:13px 12px!important;
  border:1px solid #7e562d!important;border-radius:7px!important;background:linear-gradient(180deg,rgba(255,169,76,.08),rgba(255,255,255,.01)),#17100a!important;
  overflow:visible!important
}
.unread-callout strong{font-family:'Exo 2',sans-serif!important;font-size:clamp(12px,3.25vw,14px)!important;line-height:1.2!important;color:#e0bc98!important;overflow-wrap:anywhere!important}
.unread-callout strong b{font-family:'Oxanium',sans-serif!important;font-size:clamp(25px,7.5vw,31px)!important;color:#ff9c42!important}
.unread-callout .hud-corner{border-color:#ffad58!important;filter:drop-shadow(0 0 8px rgba(255,156,66,.35))!important}
.unread-callout.hud-box-pending.hud-frame-on{
  border-color:#7e562d!important;background:linear-gradient(180deg,rgba(255,169,76,.08),rgba(255,255,255,.01)),#17100a!important;
  box-shadow:inset 0 1px 0 rgba(255,220,179,.06)!important
}
.personal-stats strong{font-size:clamp(27px,8vw,32px)!important;line-height:.95!important}
.personal-stats span{font-size:clamp(10px,2.9vw,11.5px)!important;line-height:1.16!important;margin-top:7px!important;letter-spacing:.025em!important}
.personal-stats>div{padding:15px 5px!important}

/* Collection: counts and media/exclusive summary on each physical book. */
.book-copy{min-width:0!important}
.book-numbers-row{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;margin:0 0 14px!important;min-width:0!important}
.book-numbers{margin:0!important;flex:0 0 auto!important}
.book-feature-counts{display:flex;align-items:center;justify-content:flex-end;gap:7px;margin-left:auto;min-width:0}
.book-feature-count{display:inline-flex;align-items:center;justify-content:center;gap:3px;min-width:30px;color:#dceff4}
.book-feature-count .media-feature-svg,.book-feature-count .lock-svg{width:18px!important;height:18px!important;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;flex:none}
.book-feature-count b{font-family:'Oxanium',sans-serif!important;font-size:13px!important;line-height:1!important;color:currentColor!important}
.book-feature-count.audio{color:#00ff48}.book-feature-count.video{color:#009dff}.book-feature-count.exclusive{color:#ff8a97}
.shelf-book.has-spine img{width:auto!important;height:var(--shelf-h,340px)!important;max-width:none!important;aspect-ratio:auto!important;object-fit:contain!important}

/* Box-content safety across narrow phones. */
.library-stats>button,.personal-stats>div,.book-detail-stats>div,.player-console,.progress-dashboard,.home-progress,.home-continue,.book-card,.continue-card,.lock-screen{
  min-width:0!important
}
.library-stats span,.personal-stats span,.book-detail-stats span,.progress-side p,.player-console-head strong{max-width:100%!important;overflow-wrap:anywhere!important}

@media(max-width:390px){
  :root{--bottomnav-base:120px!important}
  .nav-btn{min-height:104px!important;gap:6px!important}
  .nav-btn span{font-size:58px!important}
  .nav-btn small{font-size:13.5px!important}
  .player-title-row{grid-template-columns:minmax(0,1fr) minmax(142px,43%)!important;gap:10px!important}
  .player-summary{min-height:106px!important;padding:8px 9px!important}
  .player-summary-row span,.player-summary-row small{font-size:11px!important}
  .player-summary-row strong,.player-summary-row b{font-size:14px!important}
  .my-stories-title{grid-template-columns:minmax(0,1fr) minmax(136px,45%)!important;gap:9px!important}
  .book-feature-counts{gap:5px}.book-feature-count{min-width:27px}.book-feature-count .media-feature-svg,.book-feature-count .lock-svg{width:16px!important;height:16px!important}.book-feature-count b{font-size:12px!important}
}
@media(max-width:350px){
  :root{--bottomnav-base:112px!important}
  .nav-btn{min-height:96px!important;gap:5px!important}
  .nav-btn span{font-size:52px!important}
  .nav-btn small{font-size:12px!important;letter-spacing:-.05em!important}
  .player-title-row{grid-template-columns:minmax(0,1fr) 136px!important}
  .my-stories-title{grid-template-columns:minmax(0,1fr) 130px!important}
  .personal-stats strong{font-size:25px!important}.personal-stats span{font-size:9.8px!important}
}

/* v1.2 final sizing pass: footer and personal status are intentionally large on phone. */
:root{--bottomnav-base:154px!important}
.bottom-nav{padding:8px 1px var(--bottom-safe)!important}
.nav-btn{min-height:136px!important;gap:8px!important;padding:5px 0!important}
.nav-btn span{font-size:76px!important;line-height:.76!important}
.nav-btn small{
  font-size:clamp(16px,4.25vw,20px)!important;
  line-height:1.02!important;
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
  max-width:100%!important;
  min-height:2.04em!important;
  display:flex!important;
  align-items:flex-start!important;
  justify-content:center!important;
  padding:0 2px!important;
}

/* 1.5x emphasis requested for the three MIS STORIES status modules. */
.personal-stats strong{font-size:clamp(42px,11.7vw,48px)!important;line-height:.9!important}
.personal-stats span{font-size:clamp(13px,3.65vw,15px)!important;line-height:1.12!important;margin-top:8px!important;letter-spacing:.015em!important}
.personal-stats>div{padding:18px 4px!important;overflow:visible!important}
.unread-callout strong{font-size:clamp(13px,3.55vw,15.5px)!important}
.unread-callout strong b{font-size:clamp(31px,8.7vw,38px)!important}

/* Remaining information-bearing microcopy must stay readable. */
.mini-player-kicker{font-size:10px!important;line-height:1.1!important}
.mini-player-main strong{font-size:12px!important;line-height:1.2!important}
.pill{font-size:10.5px!important;line-height:1.1!important}
.tab{font-size:clamp(10.5px,2.9vw,12px)!important}
.story-select{font-size:clamp(11px,3vw,12.5px)!important}
.advanced-toggle,.my-filter,.view-mode,.book-story-filter{font-size:clamp(10px,2.8vw,11.5px)!important}
.book-numbers span,.book-open,.collection-back{font-size:clamp(10px,2.8vw,12px)!important}
.drawer-note{font-size:11px!important}

/* Defensive wrapping: box contents should never escape horizontally. */
.player-summary-row,.book-numbers-row,.book-feature-counts,.personal-stats>div,.library-stats>button,.progress-dashboard,.unread-callout{max-width:100%!important}
.player-summary-row>*{min-width:0!important}
.player-summary-row span,.player-summary-row small{overflow:hidden!important;text-overflow:ellipsis!important}

@media(max-width:390px){
  :root{--bottomnav-base:146px!important}
  .nav-btn{min-height:128px!important;gap:7px!important}
  .nav-btn span{font-size:70px!important}
  .nav-btn small{font-size:16px!important}
  .personal-stats strong{font-size:42px!important}.personal-stats span{font-size:13px!important}
}
@media(max-width:350px){
  :root{--bottomnav-base:136px!important}
  .nav-btn{min-height:118px!important;gap:6px!important}
  .nav-btn span{font-size:64px!important}
  .nav-btn small{font-size:14.5px!important}
  .personal-stats strong{font-size:38px!important}.personal-stats span{font-size:12px!important}
  .my-stories-title{grid-template-columns:minmax(0,1fr) minmax(124px,44%)!important}
}


/* ============================================================
   DISTURBING PWA v1.3 — previous update/persistence + collection polish
   ============================================================ */
.nav-btn[data-route="collection"] span{transform:rotate(90deg)!important;transform-origin:center!important}
.story-featured{position:relative!important}
.story-featured>.story-media-badges{right:10px!important;bottom:10px!important}
.continue-cover.story-thumb-wrap{position:relative!important;overflow:hidden!important}
.continue-cover.story-thumb-wrap>.story-media-badges{right:4px!important;bottom:4px!important}
.continue-cover.story-thumb-wrap>.ex-badge{right:4px!important;top:4px!important}
.amazon-buy-btn{
  display:flex!important;align-items:center!important;justify-content:center!important;width:100%!important;min-height:52px!important;
  margin:14px 0 10px!important;padding:12px 16px!important;border:1px solid #7bddec!important;border-radius:8px!important;
  background:linear-gradient(180deg,rgba(142,244,255,.14),rgba(142,244,255,.035)),#0a171c!important;
  color:#effdff!important;text-decoration:none!important;font:700 clamp(13px,3.8vw,16px)/1.15 'Oxanium',sans-serif!important;
  letter-spacing:.055em!important;text-align:center!important;box-shadow:0 0 22px rgba(98,225,240,.08)!important
}
.amazon-buy-btn:active{transform:scale(.985)!important;border-color:#fff!important}


/* ============================================================
   DISTURBING PWA v1.4 — navigation, player, collection and layout pass
   ============================================================ */

/* Continue-reading content must always begin to the right of the poster. */
.continue-card{
  grid-template-columns:clamp(64px,19vw,82px) minmax(0,1fr) 40px!important;
  gap:12px!important;overflow:hidden!important
}
.continue-cover.story-thumb-wrap{width:100%!important;min-width:0!important;max-width:none!important}
.continue-copy{position:relative!important;z-index:2!important;padding-left:2px!important;overflow:hidden!important}
.continue-copy strong{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;line-height:1.2!important}
.resume-arrow{position:relative!important;z-index:2!important;justify-self:end!important}

/* HOME resume panel includes the poster without covering its copy. */
.home-continue{
  grid-template-columns:clamp(62px,18vw,78px) minmax(0,1fr) auto!important;
  gap:12px!important;padding:10px 12px!important;overflow:hidden!important
}
.home-continue-cover{width:100%!important;aspect-ratio:2/3!important;border-radius:7px!important;background:#091116!important;overflow:hidden!important}
.home-continue-cover>img{display:block;width:100%;height:100%;object-fit:cover}
.home-continue-copy{min-width:0!important;position:relative!important;z-index:2!important}
.home-continue-copy strong{font-size:clamp(13px,3.45vw,15px)!important;white-space:normal!important;overflow-wrap:anywhere!important}
.home-continue .continue-btn{position:relative!important;z-index:2!important;min-width:88px!important}
.hero-story-media{width:100%!important;height:100%!important;aspect-ratio:auto!important;border-radius:0!important}
.hero-story-media>.story-media-badges{right:12px!important;bottom:14px!important}

/* Footer labels: approximately triple the original 0.18 scale, while still fitting 5 columns. */
:root{--bottomnav-base:176px!important}
.bottom-nav{min-height:calc(var(--bottomnav-base) + var(--bottom-safe))!important}
.nav-btn{min-height:156px!important;gap:9px!important;padding:7px 1px!important}
.nav-btn span{font-size:78px!important;line-height:.74!important}
.nav-btn small{
  font-size:clamp(22px,5.7vw,27px)!important;line-height:.94!important;font-weight:850!important;
  letter-spacing:-.055em!important;min-height:1.9em!important;white-space:normal!important;overflow:visible!important
}
@media(max-width:390px){
  :root{--bottomnav-base:166px!important}
  .nav-btn{min-height:146px!important}.nav-btn span{font-size:72px!important}.nav-btn small{font-size:clamp(20px,5.3vw,24px)!important}
}
@media(max-width:350px){
  :root{--bottomnav-base:154px!important}
  .nav-btn{min-height:136px!important}.nav-btn span{font-size:66px!important}.nav-btn small{font-size:19px!important}
}

/* PLAYER: one clean summary box, no separator; animated audio bars live above progress. */
.player-summary-row + .player-summary-row{border-top:0!important}
.player-progress-meta{display:grid!important;grid-template-columns:auto minmax(90px,1fr)!important;align-items:end!important;gap:14px!important;margin:12px 0 7px!important;min-width:0!important}
.player-progress-meta .player-time{margin:0!important;white-space:nowrap!important;align-self:end!important}
.player-wave{height:34px;display:flex;align-items:flex-end;justify-content:flex-end;gap:3px;overflow:hidden;opacity:.42}
.player-wave i{display:block;width:3px;height:5px;flex:0 0 3px;border-radius:3px 3px 1px 1px;background:linear-gradient(180deg,#98f7ff,#6ea6ff);transform-origin:center bottom}
.player-wave.playing{opacity:1}
.player-wave.playing i{animation:disturbingWave .62s ease-in-out infinite alternate;animation-delay:calc(var(--wave-i) * -37ms)}
@keyframes disturbingWave{from{transform:scaleY(.22);opacity:.42}to{transform:scaleY(1);opacity:1}}
.player-wave i:nth-child(5n+1){height:13px}.player-wave i:nth-child(5n+2){height:22px}.player-wave i:nth-child(5n+3){height:31px}.player-wave i:nth-child(5n+4){height:18px}.player-wave i:nth-child(5n){height:27px}

/* Book detail: same feature summary alongside Book#X, larger stats, Amazon identity. */
.book-detail-title-row{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:14px!important;min-width:0!important}
.book-detail-title-row h1{min-width:0!important;margin-right:auto!important}
.book-detail-title-row .book-feature-counts{margin-left:auto!important;flex:0 0 auto!important;gap:9px!important}
.book-detail-title-row .book-feature-count{min-width:38px!important}.book-detail-title-row .book-feature-count b{font-size:16px!important}
.book-detail-title-row .media-feature-svg,.book-detail-title-row .lock-svg{width:21px!important;height:21px!important}
.amazon-buy-btn{
  border-color:#ffb23f!important;background:linear-gradient(180deg,#ffb52e,#ff9900)!important;color:#111!important;
  box-shadow:0 0 0 1px rgba(255,255,255,.08) inset,0 9px 24px rgba(255,153,0,.15)!important;
  gap:10px!important;font-weight:850!important;text-shadow:none!important
}
.amazon-buy-btn .amazon-wordmark{font-family:Arial,sans-serif!important;font-weight:900!important;font-size:18px!important;letter-spacing:-.06em!important;text-transform:lowercase!important;color:#111!important}
.amazon-buy-btn:active{border-color:#ffd08a!important;filter:brightness(1.05)!important}
.book-detail-stats strong{font-size:clamp(54px,14vw,64px)!important;line-height:.9!important}
.book-detail-stats span{font-size:clamp(15px,4vw,18px)!important;line-height:1.08!important;margin-top:9px!important;font-weight:850!important}
.book-detail-stats>div{padding:20px 5px!important;overflow:hidden!important}

/* Library Holo corners: exact attachment to the 3 statistic boxes. */
.library-stats>button{overflow:visible!important;isolation:isolate!important}
.library-stats>button .hud-corner{width:15px!important;height:15px!important;box-sizing:border-box!important}
.library-stats>button .hud-tl{left:-1px!important;top:-1px!important}
.library-stats>button .hud-tr{right:-1px!important;top:-1px!important}
.library-stats>button .hud-bl{left:-1px!important;bottom:-1px!important}
.library-stats>button .hud-br{right:-1px!important;bottom:-1px!important}

/* STORIES: status + more filters + 3 view icons stay on one line. */
.story-control-strip{display:grid!important;grid-template-columns:minmax(104px,1fr) minmax(88px,auto) auto!important;gap:7px!important;align-items:center!important;margin-bottom:9px!important;min-width:0!important}
.story-control-strip>.story-select{width:100%!important;min-width:0!important;padding-left:8px!important;padding-right:24px!important}
.story-control-strip>.advanced-toggle{min-width:0!important;padding:0 8px!important;white-space:nowrap!important}
.story-control-strip>.view-modes{display:grid!important;grid-template-columns:repeat(3,34px)!important;gap:4px!important;padding:0!important;margin:0!important;justify-content:end!important}
.story-control-strip .view-mode{width:34px!important;height:42px!important;padding:0!important;font-size:18px!important}
@media(max-width:360px){
  .story-control-strip{grid-template-columns:minmax(95px,1fr) 82px auto!important;gap:4px!important}
  .story-control-strip>.advanced-toggle{font-size:9px!important;padding:0 5px!important}
  .story-control-strip>.view-modes{grid-template-columns:repeat(3,31px)!important;gap:3px!important}
  .story-control-strip .view-mode{width:31px!important}
}

/* Poster badges stay visible on every Story representation. */
.story-cover-card,.story-grid-card,.story-thumb-wrap,.story-featured,.hero-media{position:relative!important}
.story-cover-card>.story-media-badges,.story-grid-card>.story-media-badges{right:7px!important;bottom:7px!important}



/* ============================================================
   v1.5 · Poster badges + footer readability
   ============================================================ */
/* AUDIO and VIDEO are ALWAYS at the upper-right of every poster.
   The exclusive lock remains upper-right too, immediately below the media row. */
.story-media-badges,
.story-thumb-wrap .story-media-badges,
.story-cover-card>.story-media-badges,
.story-grid-card>.story-media-badges,
.story-featured>.story-media-badges,
.continue-cover.story-thumb-wrap>.story-media-badges,
.hero-story-media>.story-media-badges{
  top:7px!important;
  right:7px!important;
  bottom:auto!important;
  left:auto!important;
  display:flex!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:5px!important;
  z-index:14!important;
}
/* Reserve a second row for the exclusive lock so nothing overlaps. */
.story-thumb-wrap>.ex-badge,
.story-cover-card>.ex-badge,
.story-grid-card>.ex-badge{
  top:43px!important;
  right:7px!important;
  bottom:auto!important;
  z-index:13!important;
}
.story-media-badges:not(.has-exclusive) + .ex-badge{top:7px!important}

/* Footer labels: intentionally large and high-contrast on phone. */
:root{--bottomnav-base:174px!important}
.bottom-nav{
  min-height:calc(var(--bottomnav-base) + var(--bottom-safe))!important;
  padding:9px 0 var(--bottom-safe)!important;
}
.nav-btn{
  min-height:154px!important;
  gap:9px!important;
  padding:4px 1px!important;
  overflow:visible!important;
}
.nav-btn span{
  font-size:72px!important;
  line-height:.76!important;
}
.nav-btn small{
  width:100%!important;
  max-width:100%!important;
  min-height:auto!important;
  padding:0 1px!important;
  display:block!important;
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
  color:#e5f7fb!important;
  font-family:'Exo 2',sans-serif!important;
  font-size:clamp(22px,5.8vw,27px)!important;
  line-height:.9!important;
  font-weight:900!important;
  letter-spacing:-.065em!important;
  text-align:center!important;
}
.nav-btn.active small{color:#fff!important;text-shadow:0 0 12px rgba(142,244,255,.24)!important}
@media(max-width:390px){
  :root{--bottomnav-base:165px!important}
  .nav-btn{min-height:145px!important}.nav-btn span{font-size:66px!important}
  .nav-btn small{font-size:clamp(20px,5.45vw,24px)!important}
}
@media(max-width:350px){
  :root{--bottomnav-base:158px!important}
  .nav-btn{min-height:138px!important}.nav-btn span{font-size:60px!important}
  .nav-btn small{font-size:19px!important;letter-spacing:-.075em!important}
}


/* ============================================================
   DISTURBING PWA v1.9 — copy, HOME motion, footer and QR polish
   ============================================================ */

/* HOME featured image: unsettling breathing movement, but the complete image
   always remains inside its frame. We only animate between <100% and 100%. */
.hero.latest-storm .hero-media{
  background:#03070a!important;
  display:grid!important;
  place-items:center!important;
}
.hero.latest-storm .hero-media>img{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:center center!important;
  transform-origin:center center!important;
  will-change:transform,filter!important;
  animation:disturbingHeroBreath 8.4s cubic-bezier(.45,.02,.32,.98) infinite!important;
}
@keyframes disturbingHeroBreath{
  0%{transform:scale(.945);filter:brightness(.84) contrast(1.06)}
  28%{transform:scale(.982);filter:brightness(.94) contrast(1.09)}
  53%{transform:scale(1);filter:brightness(.89) contrast(1.08)}
  74%{transform:scale(.967);filter:brightness(.96) contrast(1.05)}
  100%{transform:scale(.945);filter:brightness(.84) contrast(1.06)}
}
@media(prefers-reduced-motion:reduce){
  .hero.latest-storm .hero-media>img{animation:none!important;transform:none!important;filter:none!important}
}

/* QR actions: camera and album are equally important and equally readable. */
.unlock-panel .cta,
.unlock-panel .secondary-btn{
  min-height:58px!important;
  padding:15px 14px!important;
  font-family:'Oxanium',sans-serif!important;
  font-size:clamp(14px,4vw,18px)!important;
  line-height:1.12!important;
  font-weight:800!important;
  letter-spacing:.025em!important;
  text-align:center!important;
  white-space:normal!important;
}

/* Amazon: only AMAZON uses the wordmark treatment, inside the phrase. */
.amazon-buy-btn{gap:0!important}
.amazon-buy-copy{
  display:inline-flex!important;
  align-items:baseline!important;
  justify-content:center!important;
  flex-wrap:wrap!important;
  gap:.34em!important;
}
.amazon-buy-btn .amazon-wordmark{
  display:inline-block!important;
  font-family:Arial,Helvetica,sans-serif!important;
  font-weight:900!important;
  font-size:1.22em!important;
  line-height:.9!important;
  letter-spacing:-.07em!important;
  text-transform:none!important;
  color:#111!important;
}

/* Footer section labels: substantially larger than v1.5. The horizontal
   compression lets the large glyphs remain inside each of the five columns. */
:root{--bottomnav-base:198px!important}
.bottom-nav{min-height:calc(var(--bottomnav-base) + var(--bottom-safe))!important;padding-top:10px!important}
.nav-btn{min-height:178px!important;gap:12px!important;overflow:visible!important}
.nav-btn span{font-size:78px!important;line-height:.72!important}
.nav-btn small{
  display:block!important;
  width:176%!important;
  max-width:none!important;
  margin-left:-38%!important;
  margin-right:-38%!important;
  font-family:'Oxanium',sans-serif!important;
  font-size:clamp(31px,8.6vw,39px)!important;
  line-height:.79!important;
  font-weight:800!important;
  letter-spacing:-.10em!important;
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
  transform:scaleX(.58)!important;
  transform-origin:center center!important;
  color:#effcff!important;
  text-align:center!important;
}
@media(max-width:390px){
  :root{--bottomnav-base:187px!important}
  .nav-btn{min-height:167px!important}.nav-btn span{font-size:72px!important}
  .nav-btn small{font-size:clamp(29px,8.25vw,35px)!important}
}
@media(max-width:350px){
  :root{--bottomnav-base:178px!important}
  .nav-btn{min-height:158px!important}.nav-btn span{font-size:66px!important}
  .nav-btn small{font-size:28px!important;transform:scaleX(.55)!important}
}

/* ============================================================
   DISTURBING PWA v1.9 — HOME full-image treatment
   La imagen principal se ve completa; el mismo arte crea un fondo
   cover desenfocado para que nunca haya huecos vacíos en el marco.
   ============================================================ */
.hero.latest-storm .hero-media{
  background:#020608!important;
  display:block!important;
  isolation:isolate!important;
}
.hero.latest-storm .hero-media>.hero-backdrop{
  position:absolute!important;
  inset:-7%!important;
  width:114%!important;
  height:114%!important;
  object-fit:cover!important;
  object-position:center center!important;
  opacity:.72!important;
  filter:blur(18px) brightness(.48) saturate(.86)!important;
  transform:scale(1.06)!important;
  animation:disturbingHeroBackdrop 10.8s ease-in-out infinite alternate!important;
  z-index:0!important;
}
.hero.latest-storm .hero-media>.hero-main-image{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:center center!important;
  opacity:1!important;
  filter:brightness(.9) contrast(1.06)!important;
  transform-origin:center center!important;
  will-change:transform,filter!important;
  animation:disturbingHeroBreathV19 8.4s cubic-bezier(.45,.02,.32,.98) infinite!important;
  z-index:1!important;
}
.hero.latest-storm .hero-media>.story-media-badges{z-index:5!important}
@keyframes disturbingHeroBreathV19{
  0%{transform:scale(.965);filter:brightness(.84) contrast(1.08)}
  28%{transform:scale(.988);filter:brightness(.95) contrast(1.10)}
  54%{transform:scale(1);filter:brightness(.90) contrast(1.08)}
  76%{transform:scale(.982);filter:brightness(.97) contrast(1.06)}
  100%{transform:scale(.965);filter:brightness(.84) contrast(1.08)}
}
@keyframes disturbingHeroBackdrop{
  from{transform:scale(1.06) translate3d(-.7%,-.4%,0);filter:blur(18px) brightness(.44) saturate(.82)}
  to{transform:scale(1.10) translate3d(.7%,.5%,0);filter:blur(20px) brightness(.52) saturate(.9)}
}
@media(prefers-reduced-motion:reduce){
  .hero.latest-storm .hero-media>.hero-main-image,
  .hero.latest-storm .hero-media>.hero-backdrop{animation:none!important}
  .hero.latest-storm .hero-media>.hero-main-image{transform:none!important}
}


/* ============================================================
   DISTURBING PWA v1.11 — smartphone balance + HOME fix
   ============================================================ */

/* Header action buttons: true squares. The burger is drawn with three
   independent bars so it remains optically centered on iPhone. */
.topbar-actions .icon-btn{
  width:44px!important;
  height:44px!important;
  min-width:44px!important;
  min-height:44px!important;
  padding:0!important;
  border-radius:9px!important;
  display:grid!important;
  place-items:center!important;
  line-height:1!important;
  background:rgba(10,20,25,.94)!important;
  border:1px solid #31515d!important;
  box-shadow:inset 0 0 0 1px rgba(142,244,255,.025)!important;
}
.burger-glyph{
  width:22px!important;
  height:16px!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:space-between!important;
  align-items:stretch!important;
  margin:0!important;
  transform:none!important;
}
.burger-glyph i{
  display:block!important;
  width:22px!important;
  height:2px!important;
  min-height:2px!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:999px!important;
  background:#f1fdff!important;
  box-shadow:0 0 7px rgba(142,244,255,.13)!important;
}
.music-glyph{
  width:100%!important;
  height:100%!important;
  display:grid!important;
  place-items:center!important;
  font-family:Arial,"Helvetica Neue",sans-serif!important;
  font-size:25px!important;
  line-height:1!important;
  transform:translateY(-1px)!important;
}

/* Footer: back to a compact, tappable smartphone footer.
   Icons are no longer gigantic; labels are genuinely readable and
   are NOT horizontally compressed. */
:root{--bottomnav-base:96px!important}
.bottom-nav{
  min-height:calc(var(--bottomnav-base) + var(--bottom-safe))!important;
  padding:6px 3px var(--bottom-safe)!important;
  align-items:stretch!important;
}
.nav-btn{
  min-height:84px!important;
  padding:5px 2px 4px!important;
  gap:4px!important;
  overflow:hidden!important;
  justify-content:center!important;
}
.nav-btn span{
  font-size:32px!important;
  line-height:1!important;
  height:34px!important;
  display:grid!important;
  place-items:center!important;
}
.nav-btn small{
  width:100%!important;
  max-width:100%!important;
  min-height:0!important;
  margin:0!important;
  padding:0 1px!important;
  display:block!important;
  color:#dff4f9!important;
  font-family:'Exo 2',sans-serif!important;
  font-size:clamp(15px,4.15vw,18px)!important;
  line-height:.94!important;
  font-weight:800!important;
  letter-spacing:-.04em!important;
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
  transform:none!important;
  text-align:center!important;
}
.nav-btn.active small{
  color:#fff!important;
  text-shadow:0 0 10px rgba(142,244,255,.18)!important;
}
@media(max-width:390px){
  :root{--bottomnav-base:94px!important}
  .nav-btn{min-height:82px!important}
  .nav-btn span{font-size:30px!important;height:32px!important}
  .nav-btn small{font-size:clamp(14px,4vw,16px)!important}
}
@media(max-width:350px){
  :root{--bottomnav-base:92px!important}
  .nav-btn{min-height:80px!important}
  .nav-btn span{font-size:28px!important;height:30px!important}
  .nav-btn small{font-size:13.5px!important;letter-spacing:-.055em!important}
}

/* HOME: undo the accidental poster-card sizing rule that could collapse the
   featured hero. The frame is always full-screen width/height. */
.hero.latest-storm>.hero-media,
.hero.latest-storm .hero-media.hero-story-media{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  min-width:100%!important;
  aspect-ratio:auto!important;
  border-radius:0!important;
  display:block!important;
  overflow:hidden!important;
}
.hero.latest-storm .hero-media>.hero-main-image{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
}

/* Keep the complete featured art in front while the duplicate backdrop fills
   any aspect-ratio difference, so there is never an empty band. */
.hero.latest-storm .hero-media>.hero-main-image{
  object-fit:contain!important;
  object-position:center center!important;
  animation:disturbingHeroBreathV110 8.4s cubic-bezier(.45,.02,.32,.98) infinite!important;
}
.hero.latest-storm .hero-media>.hero-backdrop{
  display:block!important;
  object-fit:cover!important;
  opacity:.72!important;
}
@keyframes disturbingHeroBreathV110{
  0%{transform:scale(.972);filter:brightness(.84) contrast(1.08)}
  30%{transform:scale(.991);filter:brightness(.95) contrast(1.10)}
  55%{transform:scale(1);filter:brightness(.90) contrast(1.08)}
  77%{transform:scale(.985);filter:brightness(.97) contrast(1.06)}
  100%{transform:scale(.972);filter:brightness(.84) contrast(1.08)}
}
@media(prefers-reduced-motion:reduce){
  .hero.latest-storm .hero-media>.hero-main-image{
    animation:none!important;
    transform:none!important;
  }
}


/* ============================================================
   DISTURBING PWA v1.11 — compact footer, install UX, HOME motion
   ============================================================ */

/* Footer: slightly larger icon + text than v1.11, with almost no dead
   space above the icons. Compact, readable and still easy to tap. */
:root{--bottomnav-base:102px!important}
.bottom-nav{
  min-height:calc(var(--bottomnav-base) + var(--bottom-safe))!important;
  padding:1px 2px var(--bottom-safe)!important;
  align-items:stretch!important;
}
.nav-btn{
  min-height:94px!important;
  padding:3px 1px 3px!important;
  gap:2px!important;
  justify-content:flex-start!important;
}
.nav-btn span{
  font-size:39px!important;
  line-height:.92!important;
  height:40px!important;
  flex:0 0 40px!important;
  display:grid!important;
  place-items:center!important;
}
.nav-btn small{
  font-family:'Exo 2',sans-serif!important;
  font-size:clamp(17px,4.65vw,20px)!important;
  line-height:.91!important;
  font-weight:850!important;
  letter-spacing:-.055em!important;
  color:#e5f8fc!important;
  min-height:0!important;
  margin:0!important;
  padding:0 1px!important;
  transform:none!important;
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
}
@media(max-width:390px){
  :root{--bottomnav-base:100px!important}
  .nav-btn{min-height:92px!important}
  .nav-btn span{font-size:37px!important;height:38px!important;flex-basis:38px!important}
  .nav-btn small{font-size:clamp(16px,4.45vw,18.5px)!important}
}
@media(max-width:350px){
  :root{--bottomnav-base:96px!important}
  .nav-btn{min-height:88px!important}
  .nav-btn span{font-size:35px!important;height:36px!important;flex-basis:36px!important}
  .nav-btn small{font-size:15px!important;letter-spacing:-.065em!important}
}

/* PLAYER summary: PISTAS and DURACIÓN form one tight two-line unit. */
.player-summary{
  min-height:92px!important;
  padding:8px 10px!important;
  grid-template-rows:auto auto!important;
  align-content:center!important;
  row-gap:3px!important;
}
.player-summary-row{
  min-height:0!important;
  padding:1px 0!important;
}
@media(max-width:390px){
  .player-summary{min-height:88px!important;padding:7px 9px!important;row-gap:2px!important}
}

/* HOME featured image: the complete top edge is always visible.
   The foreground never grows beyond its fitted size; the duplicate backdrop
   fills the frame so there are no empty bands. */
.hero.latest-storm .hero-media>.hero-main-image{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:center top!important;
  transform-origin:center top!important;
  animation:disturbingHeroBreathV111 8.6s cubic-bezier(.45,.02,.32,.98) infinite!important;
}
.hero.latest-storm .hero-media>.hero-backdrop{
  inset:-8%!important;
  width:116%!important;
  height:116%!important;
  object-fit:cover!important;
  object-position:center top!important;
}
@keyframes disturbingHeroBreathV111{
  0%{transform:scale(.982);filter:brightness(.84) contrast(1.08)}
  30%{transform:scale(.993);filter:brightness(.95) contrast(1.10)}
  54%{transform:scale(1);filter:brightness(.90) contrast(1.08)}
  76%{transform:scale(.989);filter:brightness(.97) contrast(1.06)}
  100%{transform:scale(.982);filter:brightness(.84) contrast(1.08)}
}

/* CONTINUAR LEYENDO: explicit staged entry for poster, copy and action. */
.home-continue.hud-corners-live .home-continue-cover{
  animation:homeContinuePosterIn .46s .04s cubic-bezier(.2,.75,.18,1) both!important;
}
.home-continue.hud-corners-live .home-continue-copy{
  animation:homeContinueCopyIn .42s .10s cubic-bezier(.2,.75,.18,1) both!important;
}
.home-continue.hud-corners-live .continue-btn{
  animation:homeContinueActionIn .40s .16s cubic-bezier(.2,.75,.18,1) both!important;
}
@keyframes homeContinuePosterIn{
  from{opacity:0;transform:translateX(-9px) scale(.96);filter:blur(3px)}
  to{opacity:1;transform:none;filter:blur(0)}
}
@keyframes homeContinueCopyIn{
  from{opacity:0;transform:translateY(7px);filter:blur(2px)}
  to{opacity:1;transform:none;filter:blur(0)}
}
@keyframes homeContinueActionIn{
  from{opacity:0;transform:translateX(8px) scale(.96)}
  to{opacity:1;transform:none}
}

/* Story entry: 5-frame Cryo flash. No red. */
.app-shell.story-entering::after{
  background:
    radial-gradient(circle at 50% 42%,
      rgba(255,255,255,.90) 0 3%,
      rgba(142,244,255,.78) 11%,
      rgba(72,184,224,.60) 24%,
      rgba(22,72,118,.48) 46%,
      transparent 72%)!important;
}
.story-enter-target{
  box-shadow:
    0 0 0 2px rgba(237,253,255,.96),
    0 0 18px 7px rgba(91,214,235,.88),
    0 0 44px 16px rgba(45,125,194,.66)!important;
  filter:contrast(1.16) saturate(1.20) brightness(1.04)!important;
}

#installBtn:not(.hidden){
  color:#e8fbff!important;
  font-weight:850!important;
  border-color:#31515d!important;
}

@media(prefers-reduced-motion:reduce){
  .hero.latest-storm .hero-media>.hero-main-image{animation:none!important;transform:none!important}
  .home-continue.hud-corners-live .home-continue-cover,
  .home-continue.hud-corners-live .home-continue-copy,
  .home-continue.hud-corners-live .continue-btn{animation:none!important;opacity:1!important;transform:none!important;filter:none!important}
}


/* ============================================================
   DISTURBING PWA v1.12 — navigation, HOME energy, compact UI
   ============================================================ */

/* Header layout is now physically split in two groups, so controls never
   collapse to the left while the app is booting. */
.topbar{
  display:flex!important;
  grid-template-columns:none!important;
  justify-content:space-between!important;
  align-items:center!important;
  gap:8px!important;
  padding-left:9px!important;
  padding-right:9px!important;
}
.topbar-left,.topbar-actions{
  display:flex!important;
  align-items:center!important;
  min-width:0!important;
}
.topbar-left{gap:6px!important;flex:1 1 auto!important;justify-content:flex-start!important}
.topbar-actions{gap:6px!important;flex:0 0 auto!important;justify-content:flex-end!important;margin-left:auto!important}
.topbar .brand{width:52px!important;min-width:52px!important;max-width:52px!important;height:52px!important;display:grid!important;place-items:center!important}
.brand-home-icon{width:50px!important;height:50px!important;max-width:50px!important;object-fit:contain!important}

/* No accidental oval header controls. Music and burger are squares; the
   small up-arrow is deliberately circular. */
.topbar .header-player-btn,.topbar .menu-square-btn{
  width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;
  padding:0!important;border-radius:8px!important;display:grid!important;place-items:center!important;
  line-height:1!important;aspect-ratio:1/1!important;
}
.topbar .top-jump{
  width:40px!important;height:40px!important;min-width:40px!important;min-height:40px!important;
  padding:0!important;border-radius:50%!important;display:grid!important;place-items:center!important;
  font-size:19px!important;line-height:1!important;aspect-ratio:1/1!important;opacity:.92!important;
}
.music-glyph{display:grid!important;place-items:center!important;width:100%!important;height:100%!important;font-size:25px!important;line-height:1!important;transform:translateY(-1px)!important}
.burger-glyph{width:22px!important;height:16px!important;margin:0!important;display:flex!important;flex-direction:column!important;justify-content:space-between!important;align-items:stretch!important}
.burger-glyph i{width:22px!important;height:2px!important;min-height:2px!important;display:block!important;margin:0!important;border:0!important;border-radius:999px!important;background:#f4fdff!important}
.back-nav-btn{flex:0 1 auto!important;max-width:104px!important}
@media(max-width:390px){
  .topbar{padding-left:6px!important;padding-right:6px!important;gap:5px!important}
  .topbar-left,.topbar-actions{gap:4px!important}
  .topbar .brand{width:48px!important;min-width:48px!important;max-width:48px!important;height:48px!important}
  .brand-home-icon{width:46px!important;height:46px!important;max-width:46px!important}
  .topbar .header-player-btn,.topbar .menu-square-btn{width:40px!important;height:40px!important;min-width:40px!important;min-height:40px!important}
  .topbar .top-jump{width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;font-size:17px!important}
  .back-nav-btn{min-width:74px!important;max-width:82px!important;height:42px!important;font-size:10px!important;padding:0 7px!important}
}
@media(max-width:350px){
  .topbar-left,.topbar-actions{gap:3px!important}
  .topbar .brand{width:44px!important;min-width:44px!important;max-width:44px!important;height:44px!important}
  .brand-home-icon{width:42px!important;height:42px!important;max-width:42px!important}
  .topbar .header-player-btn,.topbar .menu-square-btn{width:38px!important;height:38px!important;min-width:38px!important;min-height:38px!important}
  .topbar .top-jump{width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important}
  .back-nav-btn{min-width:66px!important;max-width:72px!important;font-size:9px!important}
}

/* Footer: slightly larger but more compact vertically. */
:root{--bottomnav-base:104px!important}
.bottom-nav{
  min-height:calc(var(--bottomnav-base) + var(--bottom-safe))!important;
  padding:0 2px var(--bottom-safe)!important;
  align-items:stretch!important;
}
.nav-btn{
  min-height:98px!important;
  padding:0 1px 2px!important;
  gap:1px!important;
  justify-content:flex-start!important;
}
.nav-btn span{
  font-size:43px!important;
  line-height:.9!important;
  height:44px!important;
  flex:0 0 44px!important;
  margin-top:0!important;
}
.nav-btn small{
  font-size:clamp(18px,4.9vw,21px)!important;
  line-height:.9!important;
  font-weight:850!important;
  letter-spacing:-.055em!important;
  margin-top:0!important;
}
@media(max-width:390px){
  :root{--bottomnav-base:101px!important}
  .nav-btn{min-height:95px!important}
  .nav-btn span{font-size:41px!important;height:42px!important;flex-basis:42px!important}
  .nav-btn small{font-size:clamp(17px,4.65vw,19.5px)!important}
}
@media(max-width:350px){
  :root{--bottomnav-base:98px!important}
  .nav-btn{min-height:92px!important}
  .nav-btn span{font-size:39px!important;height:40px!important;flex-basis:40px!important}
  .nav-btn small{font-size:16px!important}
}

/* PLAYER title summary: hug the actual two rows. */
.player-title-row{align-items:center!important}
.player-summary{
  min-height:0!important;
  height:auto!important;
  align-self:center!important;
  padding:4px 9px!important;
  row-gap:0!important;
  align-content:center!important;
}
.player-summary-row{min-height:0!important;padding:0!important;line-height:1!important;gap:7px!important}
.player-summary-row span,.player-summary-row small,.player-summary-row strong,.player-summary-row b{line-height:1.05!important;margin:0!important;padding:0!important}
@media(max-width:390px){.player-summary{padding:3px 8px!important;row-gap:0!important}}

/* HOME zoom: significantly more frequent and visible, but the foreground
   never exceeds scale(1), so its top/edges cannot be cropped. */
.hero.latest-storm .hero-media>.hero-main-image{
  object-fit:contain!important;
  object-position:center top!important;
  transform-origin:center top!important;
  animation:disturbingHeroBreathV112 4.25s cubic-bezier(.44,.02,.26,.98) infinite!important;
}
@keyframes disturbingHeroBreathV112{
  0%{transform:scale(.950);filter:brightness(.82) contrast(1.08)}
  22%{transform:scale(.978);filter:brightness(.96) contrast(1.11)}
  47%{transform:scale(1);filter:brightness(.90) contrast(1.10)}
  68%{transform:scale(.970);filter:brightness(.99) contrast(1.07)}
  84%{transform:scale(.992);filter:brightness(.91) contrast(1.12)}
  100%{transform:scale(.950);filter:brightness(.82) contrast(1.08)}
}
.hero.latest-storm .storm-glow{opacity:.62!important;animation-duration:2.8s!important}
.hero.latest-storm .storm-flash-a{animation:stormFlashV112A 3.15s infinite!important}
.hero.latest-storm .storm-flash-b{animation:stormFlashV112B 4.35s .65s infinite!important}
.hero.latest-storm .lightning-a{animation:lightningV112A 3.15s infinite!important;filter:drop-shadow(0 0 12px rgba(220,245,255,1))!important}
.hero.latest-storm .lightning-b{animation:lightningV112B 4.35s .65s infinite!important;filter:drop-shadow(0 0 12px rgba(180,235,255,.96))!important}
@keyframes stormFlashV112A{0%,23%,25%,61%,63%,100%{opacity:0}23.2%{opacity:.42}23.55%{opacity:.08}23.9%{opacity:.78}24.35%{opacity:.12}61.2%{opacity:.30}61.55%{opacity:.06}61.9%{opacity:.52}}
@keyframes stormFlashV112B{0%,42%,44%,82%,84%,100%{opacity:0}42.2%{opacity:.34}42.65%{opacity:.08}43.05%{opacity:.62}82.15%{opacity:.26}82.55%{opacity:.55}83.05%{opacity:.07}}
@keyframes lightningV112A{0%,23%,23.12%,24.45%,61%,61.12%,62.25%,100%{opacity:0}23.20%,23.84%{opacity:1}23.50%{opacity:.12}61.18%,61.75%{opacity:.82}61.45%{opacity:.08}}
@keyframes lightningV112B{0%,42%,42.12%,43.8%,82%,82.12%,83.45%,100%{opacity:0}42.2%,42.9%{opacity:.92}42.55%{opacity:.08}82.2%,82.92%{opacity:.78}82.55%{opacity:.07}}

/* Install helper for iOS/iPadOS: system installation cannot be invoked by a
   PWA, so we make Apple's required 3-step flow explicit and visual. */
.install-guide{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:18px}
.install-guide-scrim{position:absolute;inset:0;background:rgba(0,0,0,.82);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.install-guide-card{position:relative;z-index:1;width:min(92vw,420px);background:#071217;border:1px solid #477683;padding:24px 20px 20px;box-shadow:0 24px 90px rgba(0,0,0,.75),0 0 36px rgba(96,223,240,.10)}
.install-guide-card h2{margin:5px 42px 12px 0;font:700 27px/1 'Oxanium',sans-serif;text-transform:uppercase}
.install-guide-card p{color:#c7dde3;font-size:14px;line-height:1.55;margin:0 0 16px}
.install-guide-close{position:absolute;right:9px;top:9px;width:38px;height:38px;border-radius:50%;border:1px solid #3b606a;background:#0a171c;color:#fff;font-size:25px;line-height:1;display:grid;place-items:center;padding:0}
.install-steps{display:grid;gap:8px;margin:14px 0}
.install-steps>div{display:grid;grid-template-columns:42px 1fr;align-items:center;gap:11px;border:1px solid #294b56;background:#0a171c;padding:10px}
.install-steps b{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;border:1px solid #76e7f4;color:#dfffff;font:700 16px/1 'Oxanium',sans-serif}
.install-steps span{color:#cde7ed;font-size:13px;line-height:1.35}.install-steps strong{color:#fff}.install-steps em{font-style:normal;color:#8ef4ff;font-size:20px}
.install-guide-card small{display:block;color:#79a4af;font-size:11px;line-height:1.45}

@media(prefers-reduced-motion:reduce){
  .hero.latest-storm .hero-media>.hero-main-image{animation:none!important;transform:none!important}
  .hero.latest-storm .storm-flash-a,.hero.latest-storm .storm-flash-b,.hero.latest-storm .lightning-a,.hero.latest-storm .lightning-b{animation:none!important}
}


/* ============================================================
   DISTURBING PWA v1.13 — footer icons + readable labels
   ============================================================ */

/* Footer stays compact but labels gain real reading size. */
:root{--bottomnav-base:108px!important}
.bottom-nav{
  min-height:calc(var(--bottomnav-base) + var(--bottom-safe))!important;
  padding:0 2px var(--bottom-safe)!important;
  align-items:stretch!important;
}
.nav-btn{
  min-height:102px!important;
  padding:1px 1px 3px!important;
  gap:2px!important;
  justify-content:flex-start!important;
  overflow:visible!important;
}
.nav-btn .nav-icon{
  width:44px!important;
  height:44px!important;
  flex:0 0 44px!important;
  margin:0 auto!important;
  display:grid!important;
  place-items:center!important;
  color:currentColor!important;
  line-height:1!important;
}
.nav-btn small{
  width:100%!important;
  max-width:100%!important;
  font-family:'Exo 2',sans-serif!important;
  font-size:clamp(20px,5.25vw,23px)!important;
  line-height:.90!important;
  font-weight:850!important;
  letter-spacing:-.06em!important;
  white-space:normal!important;
  text-align:center!important;
  transform:none!important;
  margin:0!important;
  overflow:visible!important;
}

/* HOME slightly larger than the rest. */
.nav-home{
  font-family:Arial,sans-serif!important;
  font-size:48px!important;
  transform:translateY(-1px)!important;
}
/* MIS STORIES: skull, monochrome UI glyph. */
.nav-skull{
  font-family:'Arial Unicode MS','Segoe UI Symbol',Arial,sans-serif!important;
  font-size:40px!important;
}
/* PLAYER deliberately a little smaller. */
.nav-player{
  font-family:Arial,sans-serif!important;
  font-size:33px!important;
  transform:translateY(-1px)!important;
}

/* STORIES = exactly 3 × 3 = 9 squares. */
.nav-grid9{
  grid-template-columns:repeat(3,8px)!important;
  grid-template-rows:repeat(3,8px)!important;
  gap:3px!important;
  align-content:center!important;
  justify-content:center!important;
}
.nav-grid9 i{
  display:block!important;
  width:8px!important;
  height:8px!important;
  border:1.7px solid currentColor!important;
  border-radius:1px!important;
  background:transparent!important;
}

/* COLECCIÓN = exactly four narrow book rectangles. */
.nav-collection4{
  grid-template-columns:repeat(4,6px)!important;
  grid-template-rows:30px!important;
  gap:3px!important;
  align-content:center!important;
  justify-content:center!important;
  transform:none!important;
}
.nav-collection4 i{
  display:block!important;
  width:6px!important;
  height:30px!important;
  border:1.7px solid currentColor!important;
  border-radius:1px!important;
  background:transparent!important;
}

@media(max-width:390px){
  :root{--bottomnav-base:105px!important}
  .nav-btn{min-height:99px!important}
  .nav-btn .nav-icon{width:42px!important;height:42px!important;flex-basis:42px!important}
  .nav-btn small{font-size:clamp(18.5px,5vw,21px)!important}
  .nav-home{font-size:46px!important}
  .nav-skull{font-size:38px!important}
  .nav-player{font-size:31px!important}
}
@media(max-width:350px){
  :root{--bottomnav-base:101px!important}
  .nav-btn{min-height:95px!important}
  .nav-btn .nav-icon{width:39px!important;height:39px!important;flex-basis:39px!important}
  .nav-btn small{font-size:17px!important;letter-spacing:-.07em!important}
  .nav-home{font-size:43px!important}
  .nav-skull{font-size:35px!important}
  .nav-player{font-size:29px!important}
  .nav-grid9{grid-template-columns:repeat(3,7px)!important;grid-template-rows:repeat(3,7px)!important;gap:3px!important}
  .nav-grid9 i{width:7px!important;height:7px!important}
  .nav-collection4{grid-template-columns:repeat(4,5px)!important;grid-template-rows:27px!important;gap:3px!important}
  .nav-collection4 i{width:5px!important;height:27px!important}
}

/* MIS STORIES: labels must remain on one line, especially DESBLOQUEADAS. */
.personal-stats>div{min-width:0!important;padding-left:2px!important;padding-right:2px!important}
.personal-stats span{
  font-size:clamp(9.5px,2.65vw,11.5px)!important;
  line-height:1!important;
  letter-spacing:-.025em!important;
  white-space:nowrap!important;
  overflow:visible!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
}
@media(max-width:350px){.personal-stats span{font-size:9px!important;letter-spacing:-.04em!important}}


/* ===== v1.14 final polish ===== */
:root{--bottomnav-base:72px!important}
.bottom-nav{min-height:calc(74px + var(--bottom-safe))!important;padding:4px 8px calc(var(--bottom-safe) + 3px)!important;align-items:end!important}
.nav-btn{min-height:62px!important;gap:0!important;padding:2px 0 0!important;justify-content:flex-start!important;overflow:visible!important}
.nav-btn small{display:none!important}
.nav-btn .nav-icon{width:38px!important;height:38px!important;flex:0 0 38px!important;display:grid!important;place-items:center!important;line-height:1!important}
.nav-btn[data-route="home"] .nav-icon{width:42px!important;height:42px!important;flex-basis:42px!important;font-size:42px!important}
.nav-btn[data-route="player"] .nav-icon{width:34px!important;height:34px!important;flex-basis:34px!important;font-size:30px!important}
.nav-btn span{font-size:36px!important}
.nav-home{transform:translateY(-1px)!important}
.nav-player{transform:translateY(1px)!important}
.nav-skull{font-size:0!important}
.nav-skull svg{width:32px!important;height:32px!important;display:block;overflow:visible}
.nav-skull svg path{vector-effect:non-scaling-stroke}
.nav-grid9{display:grid!important;grid-template-columns:repeat(3,8px)!important;grid-template-rows:repeat(3,8px)!important;gap:3px!important;justify-content:center!important;align-content:center!important}
.nav-grid9 i{width:8px!important;height:8px!important;border-radius:2px!important;background:currentColor!important;display:block!important}
.nav-collection4{display:grid!important;grid-template-columns:repeat(4,6px)!important;grid-template-rows:28px!important;gap:3px!important;justify-content:center!important;align-content:center!important}
.nav-collection4 i{width:6px!important;height:28px!important;border-radius:2px!important;background:currentColor!important;display:block!important}
.nav-btn[data-route="collection"] span{transform:none!important}
.top-jump,.resume-arrow,.mini-player-btn,.lightbox-close,.drawer-close{border-radius:50%!important;aspect-ratio:1/1!important;display:grid!important;place-items:center!important}
.menu-square-btn{border-radius:11px!important}
.menu-square-btn .burger-glyph,.menu-square-btn .burger-glyph i{margin:0 auto!important}
.topbar .icon-btn{display:grid!important;place-items:center!important}
.hero.latest-storm .hero-media{overflow:hidden!important}
.hero.latest-storm .hero-media>.hero-main-image,
.hero.latest-storm .hero-media>.hero-backdrop{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:cover!important;object-position:center center!important}
.hero.latest-storm .hero-media>.hero-main-image{transform:scale(1.06)!important;animation:heroPulseTight 3.2s ease-in-out infinite alternate!important}
.hero.latest-storm .hero-media>.hero-backdrop{transform:scale(1.14)!important;filter:blur(12px) brightness(.5)!important;opacity:.72!important;animation:heroPulseBg 3.2s ease-in-out infinite alternate!important}
@keyframes heroPulseTight{0%{transform:scale(1.06)}100%{transform:scale(1.13)}}
@keyframes heroPulseBg{0%{transform:scale(1.14)}100%{transform:scale(1.2)}}
.storm-glow{animation:stormBreath 2.8s ease-in-out infinite!important;opacity:.62!important}
.storm-flash{opacity:0;animation-duration:2.1s!important}
.storm-flash-a{animation:stormFlashA 2.1s steps(1,end) infinite!important}
.storm-flash-b{animation:stormFlashB 3.4s steps(1,end) infinite!important}
.lightning{opacity:0}
.home-previous .section-title{margin-bottom:10px!important}
.secondary-home-cta{margin-top:14px!important;width:100%!important}
.story-media-badges,.story-thumb-wrap .story-media-badges,.story-cover-card>.story-media-badges,.story-grid-card>.story-media-badges,.story-featured>.story-media-badges,.continue-cover.story-thumb-wrap>.story-media-badges,.hero-story-media>.story-media-badges{top:7px!important;right:7px!important;bottom:auto!important;display:flex!important;flex-direction:column!important;align-items:flex-end!important;gap:5px!important;z-index:5!important}
.ex-badge{top:7px!important;right:7px!important;bottom:auto!important;left:auto!important;z-index:6!important}
.story-media-badges.has-exclusive{right:42px!important}
.story-featured>.story-media-badges.has-exclusive,.hero-story-media>.story-media-badges.has-exclusive{right:48px!important}
.media-badge.media-audio{background:rgba(1,40,18,.92)!important;border-color:#18ff80!important;color:#9dffd0!important}
.media-badge.media-video{background:rgba(3,25,48,.92)!important;border-color:#2bbdff!important;color:#bfeeff!important}
.library-stats>button .hud-corner{transform:none!important}
.library-stats>button .hud-tl,.library-stats>button .hud-tr{top:0!important}
.library-stats>button .hud-bl,.library-stats>button .hud-br{bottom:0!important}
.library-stats>button.hud-corners-live .hud-corner{animation-fill-mode:forwards!important}
.player-title-row{grid-template-columns:minmax(0,1fr) 126px!important;gap:12px!important;align-items:end!important}
.player-summary{min-height:auto!important;padding:8px 10px!important;gap:3px 8px!important;align-content:center!important}
.player-summary-row{margin:0!important;line-height:1.02!important}
.player-summary-row + .player-summary-row{margin-top:1px!important}
.drawer-note{font-size:12px!important}
@media(max-width:480px){
  .bottom-nav{min-height:calc(71px + var(--bottom-safe))!important;padding:3px 6px calc(var(--bottom-safe) + 2px)!important}
  .nav-btn{min-height:60px!important}
  .nav-btn .nav-icon{width:36px!important;height:36px!important;flex-basis:36px!important}
  .nav-btn[data-route="home"] .nav-icon{width:40px!important;height:40px!important;flex-basis:40px!important;font-size:40px!important}
  .nav-btn[data-route="player"] .nav-icon{width:32px!important;height:32px!important;flex-basis:32px!important;font-size:28px!important}
  .nav-skull svg{width:30px!important;height:30px!important}
  .nav-grid9{grid-template-columns:repeat(3,7px)!important;grid-template-rows:repeat(3,7px)!important;gap:3px!important}
  .nav-grid9 i{width:7px!important;height:7px!important}
  .nav-collection4{grid-template-columns:repeat(4,5px)!important;grid-template-rows:26px!important}
  .nav-collection4 i{width:5px!important;height:26px!important}
}


/* ============================================================
   DISTURBING PWA v1.16 · final UI corrections
   ============================================================ */

/* MIS STORIES footer icon: selected Watcher Eye. */
.nav-watcher{font-size:0!important}
.nav-watcher svg{width:34px!important;height:34px!important;display:block!important;overflow:visible!important;fill:none!important;stroke:currentColor!important;stroke-width:1.65!important;stroke-linecap:round!important;stroke-linejoin:round!important}
.nav-watcher .watcher-pupil{fill:currentColor!important;stroke:none!important}
.nav-btn[data-route="unlocked"].active .nav-watcher{filter:drop-shadow(0 0 8px rgba(142,244,255,.38))!important}
@media(max-width:480px){.nav-watcher svg{width:32px!important;height:32px!important}}

/* HOME image: it always fills its frame. Zoom oscillates only ABOVE scale 1,
   so neither side/top/bottom can expose empty space during the motion. */
.hero.latest-storm .hero-media{overflow:hidden!important;background:#020608!important}
.hero.latest-storm .hero-media>.hero-main-image{
  position:absolute!important;inset:0!important;width:100%!important;height:100%!important;
  object-fit:cover!important;object-position:center center!important;transform-origin:center center!important;
  animation:heroFullFrameZoomV115 3.55s cubic-bezier(.45,.03,.3,.98) infinite alternate!important;
  will-change:transform,filter!important;
}
.hero.latest-storm .hero-media>.hero-backdrop{
  position:absolute!important;inset:-4%!important;width:108%!important;height:108%!important;
  object-fit:cover!important;object-position:center center!important;opacity:.34!important;
  filter:blur(11px) brightness(.60)!important;transform:scale(1.05)!important;
  animation:none!important;
}
@keyframes heroFullFrameZoomV115{
  0%{transform:scale(1.015);filter:brightness(.86) contrast(1.08)}
  38%{transform:scale(1.075);filter:brightness(.96) contrast(1.10)}
  72%{transform:scale(1.105);filter:brightness(.90) contrast(1.11)}
  100%{transform:scale(1.025);filter:brightness(.97) contrast(1.07)}
}

/* Lightning must NEVER remain static. Earlier .lightning{opacity:0}
   overrode the keyframes; v1.16 removes that visual state explicitly. */
.hero.latest-storm .lightning{opacity:0;pointer-events:none!important}
.hero.latest-storm .lightning-a{animation:lightningV115A 2.85s steps(1,end) infinite!important}
.hero.latest-storm .lightning-b{animation:lightningV115B 4.05s .8s steps(1,end) infinite!important}
.hero.latest-storm .storm-flash-a{animation:stormFlashV115A 2.85s steps(1,end) infinite!important}
.hero.latest-storm .storm-flash-b{animation:stormFlashV115B 4.05s .8s steps(1,end) infinite!important}
@keyframes lightningV115A{
  0%,17%,17.08%,18.05%,53%,53.08%,54.1%,100%{opacity:0}
  17.16%,17.54%{opacity:1}17.38%{opacity:.10}
  53.16%,53.7%{opacity:.92}53.43%{opacity:.08}
}
@keyframes lightningV115B{
  0%,37%,37.08%,38.15%,78%,78.08%,79.18%,100%{opacity:0}
  37.16%,37.72%{opacity:.95}37.43%{opacity:.06}
  78.16%,78.76%{opacity:.82}78.46%{opacity:.05}
}
@keyframes stormFlashV115A{
  0%,16.8%,18.4%,52.8%,54.4%,100%{opacity:0}
  17.05%{opacity:.46}17.35%{opacity:.07}17.7%{opacity:.72}
  53.05%{opacity:.34}53.38%{opacity:.05}53.78%{opacity:.57}
}
@keyframes stormFlashV115B{
  0%,36.8%,38.5%,77.8%,79.5%,100%{opacity:0}
  37.05%{opacity:.38}37.4%{opacity:.06}37.82%{opacity:.64}
  78.05%{opacity:.31}78.42%{opacity:.05}78.85%{opacity:.55}
}

/* ONLY the repeated groups of three Holo boxes: snap all four corners to the
   actual physical box after the center-out animation. Independent boxes are untouched. */
.library-stats>button,.personal-stats>div,.book-detail-stats>div{overflow:visible!important;position:relative!important}
.library-stats>button .hud-corner,.personal-stats>div .hud-corner,.book-detail-stats>div .hud-corner{
  width:15px!important;height:15px!important;box-sizing:border-box!important
}
.library-stats>button .hud-tl,.personal-stats>div .hud-tl,.book-detail-stats>div .hud-tl{left:-1px!important;top:-1px!important}
.library-stats>button .hud-tr,.personal-stats>div .hud-tr,.book-detail-stats>div .hud-tr{right:-1px!important;top:-1px!important}
.library-stats>button .hud-bl,.personal-stats>div .hud-bl,.book-detail-stats>div .hud-bl{left:-1px!important;bottom:-1px!important}
.library-stats>button .hud-br,.personal-stats>div .hud-br,.book-detail-stats>div .hud-br{right:-1px!important;bottom:-1px!important}
.library-stats>button.hud-motion-done .hud-corner,
.personal-stats>div.hud-motion-done .hud-corner,
.book-detail-stats>div.hud-motion-done .hud-corner{transform:translate3d(0,0,0)!important;opacity:1!important}

/* TODAS LAS STORIES: PUBLICADAS is the only golden statistics box. */
.library-stats>button:nth-child(3){
  border-color:#8b6b25!important;
  background:linear-gradient(180deg,rgba(255,207,87,.10),rgba(105,74,15,.025)),#151107!important;
  box-shadow:inset 0 1px 0 rgba(255,224,137,.12),0 0 18px rgba(181,129,26,.055)!important
}
.library-stats>button:nth-child(3) strong{color:#ffd86a!important;text-shadow:0 0 13px rgba(255,198,55,.14)!important}
.library-stats>button:nth-child(3) span{color:#d4b866!important}
.library-stats>button:nth-child(3) .hud-corner{border-color:#d5a936!important;filter:drop-shadow(0 0 6px rgba(222,172,48,.28))!important}
.library-stats>button:nth-child(3).hud-box-pending.hud-frame-on{
  border-color:#8b6b25!important;
  background:linear-gradient(180deg,rgba(255,207,87,.10),rgba(105,74,15,.025)),#151107!important;
  box-shadow:inset 0 1px 0 rgba(255,224,137,.12),0 0 18px rgba(181,129,26,.055)!important
}

/* Read state: green folded-corner triangle sits on the poster below badges.
   Existing LEÍDA bubble stays above it. */
.story-thumb-wrap,.story-cover-card,.story-grid-poster{position:relative!important;overflow:hidden!important}
.story-grid-poster{width:100%!important}
.story-grid-poster>.story-thumb{width:100%!important;display:block!important}
.story-grid-poster>.story-thumb,.story-grid-poster>.story-thumb-placeholder{width:100%!important;aspect-ratio:2/3!important;height:auto!important;object-fit:cover!important;border-radius:0!important;display:block!important}
.read-corner{
  position:absolute!important;left:0!important;bottom:0!important;width:36px!important;height:36px!important;
  background:#18b85a!important;clip-path:polygon(0 0,0 100%,100% 100%)!important;
  filter:drop-shadow(1px -1px 4px rgba(0,0,0,.42))!important;
  z-index:5!important;pointer-events:none!important
}
.cover-read{z-index:9!important;left:7px!important;bottom:42px!important}
.story-thumb-wrap>.ex-badge,.story-cover-card>.ex-badge,.story-grid-poster>.ex-badge{z-index:14!important}
.story-thumb-wrap>.story-media-badges,.story-cover-card>.story-media-badges,.story-grid-poster>.story-media-badges{z-index:15!important}

/* PLAYER compact summary wording. */
.player-summary-row small{letter-spacing:.03em!important}

@media(prefers-reduced-motion:reduce){
  .hero.latest-storm .hero-media>.hero-main-image{animation:none!important;transform:scale(1.015)!important}
  .hero.latest-storm .lightning-a,.hero.latest-storm .lightning-b,.hero.latest-storm .storm-flash-a,.hero.latest-storm .storm-flash-b{animation:none!important;opacity:0!important}
}


/* ===== v1.16 · grupos de 3 cajas + badges de lectura ===== */
/* Solo conjuntos de TRES cajas Holo HUD. Las cajas independientes no se modifican. */
.library-stats>button .hud-tl,
.library-stats>button .hud-tr,
.personal-stats>div .hud-tl,
.personal-stats>div .hud-tr,
.book-detail-stats>div .hud-tl,
.book-detail-stats>div .hud-tr{
  top:-7px!important;
}
.library-stats>button .hud-tl,
.personal-stats>div .hud-tl,
.book-detail-stats>div .hud-tl{left:-1px!important}
.library-stats>button .hud-tr,
.personal-stats>div .hud-tr,
.book-detail-stats>div .hud-tr{right:-1px!important}
/* Mantener las esquinas inferiores donde ya estaban. */
.library-stats>button .hud-bl,.personal-stats>div .hud-bl,.book-detail-stats>div .hud-bl{left:-1px!important;bottom:-1px!important}
.library-stats>button .hud-br,.personal-stats>div .hud-br,.book-detail-stats>div .hud-br{right:-1px!important;bottom:-1px!important}

/* La bubble LEÍDA vuelve a su posición original, superpuesta al triángulo verde. */
.cover-read{left:6px!important;bottom:6px!important;z-index:9!important}
.read-corner{z-index:5!important}

/* El enlace del copyright mantiene el aspecto del pie. */
.drawer-note a{color:inherit!important;text-decoration:none!important}
.drawer-note a:hover,.drawer-note a:focus{text-decoration:underline!important;color:#dffcff!important}


/* ============================================================
   DISTURBING PWA v2.0 · final session polish
   ============================================================ */

/* Every poster-status/media icon starts from the SAME top-right anchor and
   grows downwards in one vertical column. No icon is pushed sideways. */
.story-media-badges,
.story-thumb-wrap .story-media-badges,
.story-cover-card>.story-media-badges,
.story-grid-poster>.story-media-badges,
.story-grid-card>.story-media-badges,
.continue-cover.story-thumb-wrap>.story-media-badges,
.hero-story-media>.story-media-badges,
.story-featured>.story-media-badges{
  top:7px!important;right:7px!important;bottom:auto!important;left:auto!important;
  display:flex!important;flex-direction:column!important;align-items:center!important;gap:5px!important;
}
.story-media-badges.has-exclusive,
.story-featured>.story-media-badges.has-exclusive,
.hero-story-media>.story-media-badges.has-exclusive{right:7px!important}
.story-thumb-wrap>.ex-badge,
.story-cover-card>.ex-badge,
.story-grid-poster>.ex-badge,
.story-grid-card>.ex-badge,
.hero-story-media>.ex-badge,
.story-featured>.ex-badge{
  right:7px!important;left:auto!important;bottom:auto!important;
}
.ex-badge.ex-after-0{top:7px!important}
.ex-badge.ex-after-1{top:41px!important}
.ex-badge.ex-after-2{top:75px!important}

/* Locked Story detail is the deliberate exception: the red closed lock stays
   at the bottom of the featured poster, but centered horizontally. */
.story-featured>.ex-badge.ex-locked{
  top:auto!important;bottom:8px!important;left:50%!important;right:auto!important;
  transform:translateX(-50%)!important;
}

/* HOME: smooth, slower zoom in/out. Minimum scale still fills the complete
   assigned frame, so the animation can never uncover empty lateral space. */
.hero.latest-storm .hero-media>.hero-main-image{
  animation:heroFullFrameZoomV117 8s ease-in-out infinite alternate!important;
  transform-origin:center center!important;
  will-change:transform,filter!important;
}
@keyframes heroFullFrameZoomV117{
  0%{transform:scale(1.02) translate3d(0,0,0);filter:brightness(.91) contrast(1.08)}
  100%{transform:scale(1.09) translate3d(-.55%,-.35%,0);filter:brightness(.98) contrast(1.10)}
}

/* Book detail: AUDIO and VIDEO counters are genuine buttons. EXCLUSIVAS stays
   informational and deliberately non-clickable. */
.book-detail-title-row .book-feature-count.clickable{
  appearance:none;-webkit-appearance:none;border:0;background:transparent;padding:4px 3px;margin:-4px -3px;
  font:inherit;cursor:pointer;border-radius:7px;
}
.book-detail-title-row .book-feature-count.clickable:hover,
.book-detail-title-row .book-feature-count.clickable:focus-visible{
  background:rgba(142,244,255,.07);outline:1px solid rgba(142,244,255,.26);
  filter:drop-shadow(0 0 7px currentColor);
}
.book-detail-title-row .book-feature-count.clickable:active{transform:scale(.94)}

/* Drawer version/copyright always stays on one visual line. */
.drawer-note{white-space:nowrap!important;font-size:clamp(9px,2.7vw,11px)!important;letter-spacing:-.015em!important}

@media(prefers-reduced-motion:reduce){
  .hero.latest-storm .hero-media>.hero-main-image{animation:none!important;transform:scale(1.02)!important}
}


/* ============================================================
   DISTURBING STORIES APP v2.0
   ============================================================ */
/* Arrow-only controls are always perfectly circular. */
.resume-arrow,.mini-player-btn,.lightbox-close,.drawer-close,.read-celebration-close,.tutorial-controls>button{border-radius:50%!important;aspect-ratio:1/1!important;display:grid!important;place-items:center!important;padding:0!important}

/* Drawer legal line is structurally one line. */
.drawer-note{display:block!important;width:max-content!important;max-width:100%!important;white-space:nowrap!important;font-size:clamp(8.5px,2.45vw,10.5px)!important;letter-spacing:-.025em!important}

/* MIS STORIES third stat: QR scan pending. */
.personal-stats>div:nth-child(3) span{font-size:clamp(7.5px,2.15vw,9.8px)!important;line-height:1.05!important;white-space:normal!important}

/* Individual NEW badge. */
.new-story-badge{position:absolute;z-index:18;left:7px;top:7px;padding:4px 7px;border:1px solid #8ef4ff;border-radius:999px;background:rgba(4,25,31,.92);color:#dffcff;font-family:Oxanium,sans-serif;font-size:8px;font-weight:800;letter-spacing:.12em;box-shadow:0 0 10px rgba(142,244,255,.18);pointer-events:none}
.story-featured>.new-story-badge,.hero-story-media>.new-story-badge{left:10px;top:10px}

/* Entry intro. */
.intro-layer{position:fixed;z-index:2000;inset:0;background:#000;display:grid;place-items:center;overflow:hidden;cursor:pointer;transition:opacity .22s ease}.intro-layer.hidden{display:none!important}.intro-layer.intro-out{opacity:0}.intro-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#000}.intro-fallback{font-family:Oxanium,sans-serif;letter-spacing:.16em;color:#223238;font-size:clamp(22px,7vw,44px);font-weight:800}.intro-video:not(.missing)+.intro-fallback{opacity:.12}

/* Stories v2 portal hub. */
.stories-portals{display:grid;gap:12px;margin:5px 0 18px}.stories-portals-group{border:1px solid #173a44;background:#071116;border-radius:13px;padding:10px}.portal-label{font-family:Oxanium,sans-serif;color:#7099a4;font-size:8px;letter-spacing:.14em;margin-bottom:8px}.portal-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.portal-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-btn{min-height:70px;border:1px solid #264b55;border-radius:10px;background:#08151a;color:#d8faff;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;text-align:center;padding:8px 5px;font-family:Oxanium,sans-serif;cursor:pointer}.portal-btn>span{font-size:24px;line-height:1}.portal-btn>svg{width:25px;height:25px}.portal-btn strong{font-size:9px;letter-spacing:.04em}.portal-btn small{font-size:6.5px;color:#708b92}.portal-btn.cassette{border-color:#197846;color:#baffd6;background:#07170e}.portal-btn.tape{border-color:#206b98;color:#caedff;background:#06131c}.portal-btn.games{border-color:#74336e;color:#ffc9fa;background:#160b16}.portal-btn.nightmares{border-color:#7b2529;color:#ffd7d9;background:#17090a}
@media(max-width:390px){.portal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Sagas. */
.v2-section{padding-bottom:24px}.saga-list{display:grid;gap:12px}.saga-card{position:relative;min-height:155px;overflow:hidden;border:1px solid #294852;border-radius:14px;background:#071116;text-align:left;color:#fff;padding:0;cursor:pointer}.saga-card>img,.saga-banner-placeholder{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.saga-banner-placeholder{display:grid;place-items:center;font-family:Oxanium,sans-serif;color:#31505a;font-size:30px}.saga-card-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.88),rgba(0,0,0,.24))}.saga-card-copy{position:relative;z-index:2;padding:18px;width:78%}.saga-card-copy>span{color:#9ab5bd;font-size:8px;letter-spacing:.1em}.saga-card-copy h2{font-family:Oxanium,sans-serif;margin:5px 0 12px;font-size:23px}.saga-progress{height:5px;background:#15262c;border-radius:99px;overflow:hidden}.saga-progress i,.saga-percent i{display:block;height:100%;background:#8ef4ff}.saga-card-copy>strong{display:block;margin-top:6px;color:#8ef4ff;font-size:8px}.saga-detail-banner{margin:-8px calc(var(--reader-pad) * -1) 18px;height:210px;overflow:hidden}.saga-detail-banner img{width:100%;height:100%;object-fit:cover}.saga-synopsis{color:#b7c8cc;line-height:1.55}.saga-percent{border:1px solid #264b55;background:#071217;border-radius:12px;padding:12px;margin:14px 0}.saga-percent>strong{font-family:Oxanium,sans-serif;font-size:32px}.saga-percent>span{font-size:8px;color:#86a5ad;margin-left:8px}.saga-percent>div{height:6px;background:#13272e;margin-top:8px}.saga-extra-text{color:#96abb1;line-height:1.55}.saga-extra-image{display:block;width:100%;border-radius:12px;margin:12px 0}.saga-parts{display:grid;gap:8px;margin-top:18px}.saga-part{position:relative;min-height:82px;border:1px solid #223e47;background:#071116;border-radius:11px;padding:10px;display:grid;grid-template-columns:60px minmax(0,1fr) auto;gap:10px;align-items:center}.saga-part>span{position:absolute;top:6px;left:8px;color:#68828a;font-size:7px}.saga-part>img{width:45px;aspect-ratio:2/3;object-fit:cover;margin-top:10px}.saga-part>div{margin-top:10px}.saga-part strong{display:block;font-size:11px}.saga-part em{display:block;color:#75929a;font-size:8px;font-style:normal;margin-top:5px}.future-part{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding-left:16px;border-style:dashed;color:#6e858b}.future-part strong{font-family:Oxanium,sans-serif;font-size:12px}.story-saga-link{display:block;margin-top:10px;border:1px solid #284a53;background:#071217;color:#9cd4df;border-radius:999px;padding:7px 10px;font-size:8px;font-weight:800;letter-spacing:.04em;text-align:left}

/* Timeline. */
.timeline-order{width:100%;border:1px solid #294b55;background:#071217;color:#bdeff6;border-radius:10px;padding:11px;margin-bottom:15px;font-family:Oxanium,sans-serif;font-size:9px}.timeline-list{position:relative}.timeline-era{margin:20px 0 8px;padding:9px 10px;border-left:3px solid #8ef4ff;background:linear-gradient(90deg,rgba(142,244,255,.09),transparent);font-family:Oxanium,sans-serif;font-size:10px;letter-spacing:.1em}.timeline-year-group{display:grid;grid-template-columns:67px minmax(0,1fr);gap:10px}.timeline-year{font-family:Oxanium,sans-serif;color:#c5f7ff;font-size:11px;padding-top:19px;text-align:right}.timeline-items{position:relative;border-left:1px solid #33515a;padding:10px 0 10px 18px;display:grid;gap:10px}.timeline-item{position:relative;display:flex;align-items:center;gap:8px;min-height:82px}.timeline-node{position:absolute;left:-23px;width:9px;height:9px;border-radius:50%;background:#8ef4ff;box-shadow:0 0 9px rgba(142,244,255,.4)}.timeline-poster{width:48px;padding:0;border:1px solid #29464e;background:#05090b;border-radius:6px;overflow:hidden}.timeline-poster img{display:block;width:100%;aspect-ratio:2/3;object-fit:cover}.timeline-icons{display:flex;flex-direction:column;gap:5px}.timeline-icon{width:25px;height:25px;border:1px solid #31535c;border-radius:50%;display:grid;place-items:center}.timeline-icon svg{width:15px;height:15px}.timeline-icon.audio{color:#6dffa9;border-color:#248654}.timeline-icon.video{color:#7bd7ff;border-color:#277eaa}.timeline-icon.unlocked{color:#9bffac;border-color:#2d7d43}.timeline-break{grid-column:1/-1;display:flex;align-items:center;gap:8px;color:#587078;font-size:7px;letter-spacing:.12em;margin:5px 0}.timeline-break i{flex:1;border-top:1px dashed #2f464d}

/* Random. */
.random-section{text-align:center}.random-section h1{font-size:44px}.random-filters{display:flex;justify-content:center;gap:6px;margin:13px 0}.random-filters button{border:1px solid #294851;background:#071116;color:#7f989f;border-radius:999px;padding:8px 10px;font-size:8px}.random-filters button.active{color:#eaffff;border-color:#8ef4ff}.random-wheel-wrap{position:relative;width:230px;height:230px;margin:18px auto}.random-wheel{width:100%;height:100%;border-radius:50%;border:4px solid #335761;background:repeating-conic-gradient(from 0deg,#0b1b20 0deg 18deg,#152a31 18deg 36deg);display:grid;place-items:center;box-shadow:inset 0 0 35px #000,0 0 25px rgba(142,244,255,.08)}.random-wheel:after{content:"";width:50px;height:50px;border:2px solid #8ef4ff;border-radius:50%;background:#061116}.random-wheel>b{position:absolute;z-index:2;font-family:Oxanium,sans-serif;font-size:9px;letter-spacing:.1em}.random-wheel.spin{animation:randomWheelSpin 1.05s cubic-bezier(.12,.75,.22,1) both}@keyframes randomWheelSpin{to{transform:rotate(1120deg)}}.random-pointer{position:absolute;top:-13px;left:50%;transform:translateX(-50%);color:#dffcff}.random-result{margin:20px auto 0;max-width:300px}.random-result-poster{position:relative;width:150px;margin:0 auto 12px;border-radius:9px;overflow:hidden}.random-result-poster>img{display:block;width:100%;aspect-ratio:2/3;object-fit:cover}.random-result h2{font-family:Oxanium,sans-serif;font-size:17px}.random-result p{color:#819ba2}.random-actions{display:grid;gap:8px}

/* Cassettes / Tapes. */
.media-section-head>div:first-child{display:flex;align-items:center;gap:10px}.media-section-head>div:first-child>svg{width:38px;height:38px}.media-section-head h1{margin:0}.media-summary{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0}.media-summary>div{border:1px solid #294851;border-radius:11px;padding:10px;background:#071116}.media-summary span,.media-summary em{display:block;font-size:7px;color:#789198;font-style:normal}.media-summary strong{display:block;font-family:Oxanium,sans-serif;font-size:23px;margin:3px 0}.cassettes .media-summary>div,.cassettes .media-collection-card{border-color:#246e48}.cassettes .media-section-head>div:first-child>svg,.cassettes .media-summary strong{color:#7dffb3}.tapes .media-summary>div,.tapes .media-collection-card{border-color:#276f96}.tapes .media-section-head>div:first-child>svg,.tapes .media-summary strong{color:#8bdcff}.media-catalog{display:grid;gap:8px}.media-collection-card{display:grid;grid-template-columns:58px minmax(0,1fr);gap:10px;align-items:center;border:1px solid #294851;border-radius:10px;background:#071116;padding:7px;text-align:left}.media-collection-poster{position:relative;border-radius:6px;overflow:hidden}.media-collection-poster>img{display:block;width:100%;aspect-ratio:2/3;object-fit:cover}.media-collection-card span{color:#68838b;font-size:7px}.media-collection-card strong{display:block;font-size:11px;margin:3px 0}.media-collection-card em{font-style:normal;font-family:Oxanium,sans-serif;font-size:8px;color:#bad4db}

/* Extras. */
.extras-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.extra-card{padding:0;overflow:hidden;border:1px solid #294851;border-radius:11px;background:#071116;color:#fff;text-align:left}.extra-card>img,.extra-poster-placeholder{display:block;width:100%;aspect-ratio:2/3;object-fit:cover;background:#04090b}.extra-poster-placeholder{display:grid;place-items:center;font-family:Oxanium,sans-serif;color:#294851}.extra-card>div{padding:9px}.extra-card span{display:block;color:#6f8990;font-size:7px}.extra-card strong{display:block;font-size:11px;margin:4px 0}.extra-card em{font-style:normal;color:#a1bdc4;font-size:7px}.extra-main-poster{display:block;width:min(230px,72vw);margin:15px auto;border-radius:10px}.extra-additional-image{display:block;width:100%;margin:14px 0;border-radius:10px}.extra-text{line-height:1.65;color:#d6e1e4}.physical-extra-notice{border:1px solid #79652a;background:#171407;border-radius:12px;padding:14px;margin-top:14px;color:#e7d28a}.physical-extra-notice p{color:#9f946f;line-height:1.5}

/* Spotify Companion. */
.spotify-companion{display:flex;align-items:center;gap:11px;border:1px solid #1ed760;background:#07150c;color:#eaffef;border-radius:13px;padding:12px 13px;margin:12px 0;text-decoration:none}.spotify-companion svg{width:34px;height:34px;fill:#1ed760;stroke:#07150c;stroke-width:1.4;animation:spotifyBreathe 3.8s ease-in-out infinite}.spotify-companion span{flex:1}.spotify-companion small{display:block;color:#72bd87;font-size:7px}.spotify-companion strong{display:block;font-family:Oxanium,sans-serif;font-size:11px;margin-top:2px}.spotify-companion>b{font-size:20px}@keyframes spotifyBreathe{50%{transform:scale(1.07);filter:drop-shadow(0 0 7px rgba(30,215,96,.3))}}

/* T.K. tutorials. */
.tutorial-overlay{position:fixed;z-index:2500;inset:0;pointer-events:auto}.tutorial-dim{position:absolute;inset:0;background:rgba(0,0,0,.72);backdrop-filter:blur(1px)}.tutorial-spotlight{position:relative!important;z-index:2499!important;box-shadow:0 0 0 3px #8ef4ff,0 0 28px 8px rgba(142,244,255,.3)!important}.tk-stage{position:absolute;left:4%;bottom:13%;width:min(34vw,180px);height:230px;display:grid;place-items:end center}.tk-stage video{max-width:100%;max-height:100%;object-fit:contain;position:relative;z-index:2}.tk-stage video.missing{display:none}.tk-fallback{position:absolute;bottom:0;width:110px;height:190px;border:1px solid #31525b;border-radius:55px 55px 14px 14px;background:linear-gradient(180deg,#13242a,#040708);display:grid;place-items:center;font-family:Oxanium,sans-serif;color:#64828a;font-size:20px}.tk-stage video:not(.missing)~.tk-fallback{display:none}.tutorial-bubble{position:absolute;right:4%;bottom:10%;width:min(58vw,330px);border:1px solid #3a626d;border-radius:14px;background:#071217;padding:14px;color:#eefcff;box-shadow:0 14px 45px #000}.tutorial-bubble p{font-size:13px;line-height:1.5;margin:8px 0 12px}.tutorial-controls{display:grid;grid-template-columns:38px 1fr auto;gap:8px;align-items:center}.tutorial-controls>button{width:38px;height:38px;border:1px solid #31535d;background:#0b1a20;color:#eaffff}.tutorial-controls>button:last-child{width:auto;min-width:38px;aspect-ratio:auto!important;border-radius:9px!important;padding:0 11px!important}.tutorial-controls span{text-align:center;color:#7e9aa2;font-size:9px}.tutorial-skip{display:block;margin:8px auto 0;border:0;background:transparent;color:#627d84;font-size:8px}.tutorials-copy{color:#809aa1}.tutorial-list{display:grid;gap:8px}.tutorial-list button{display:grid;grid-template-columns:34px 1fr auto;gap:9px;align-items:center;border:1px solid #294851;background:#071116;color:#fff;border-radius:10px;padding:11px;text-align:left}.tutorial-list button>span{font-family:Oxanium,sans-serif;color:#8ef4ff}.tutorial-list button strong{font-size:11px}.tutorial-list button em{font-style:normal;color:#728e95;font-size:7px}
@media(max-width:430px){.tk-stage{left:2%;width:36vw;height:205px}.tutorial-bubble{right:2%;width:61vw}.tutorial-bubble p{font-size:11px}}

/* Future placeholders. */
.future-placeholder-box{border:1px dashed #3b555d;background:#071116;border-radius:13px;padding:24px;text-align:center;margin-top:20px}.future-placeholder-box strong{font-family:Oxanium,sans-serif;font-size:19px}.future-placeholder-box p{color:#789097;line-height:1.5}.future-placeholder.rosa .future-placeholder-box{border-color:#73336e}.future-placeholder.rojo-blanco .future-placeholder-box{border-color:#78272a}

@media(prefers-reduced-motion:reduce){.random-wheel.spin,.spotify-companion svg{animation:none!important}.intro-layer{transition:none!important}}

/* ============================================================
   DISTURBING STORIES APP v2.2 · polish / navigation / catalog
   ============================================================ */

/* Drawer: coherent icon language and definitive two-line footer. */
.drawer>button:not(.drawer-close):not(.drawer-brand),.drawer>.drawer-disabled{display:flex!important;align-items:center!important;gap:11px!important;text-align:left!important}
.drawer-menu-icon{width:25px;height:25px;flex:0 0 25px;display:grid;place-items:center;color:currentColor;font-size:19px;line-height:1}
.drawer-grid9{grid-template-columns:repeat(3,4px);grid-template-rows:repeat(3,4px);gap:2px;align-content:center;justify-content:center}
.drawer-grid9 i{width:4px;height:4px;border:1px solid currentColor;display:block}
.drawer-watcher svg,.drawer-qr svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
.drawer-watcher .watcher-pupil{fill:currentColor;stroke:none}.drawer-bars4{display:flex;align-items:center;justify-content:center;gap:2px}.drawer-bars4 i{display:block;width:3px;height:17px;border:1px solid currentColor}.drawer-help{width:22px;height:22px;border:1px solid currentColor;border-radius:50%;font-family:Oxanium,sans-serif;font-size:12px}.drawer-disabled{padding:12px 14px;color:#626f73;opacity:.72;cursor:default;user-select:none}.drawer-note{display:flex!important;flex-direction:column!important;gap:3px!important;align-items:flex-start!important;white-space:normal!important}.drawer-note>span,.drawer-note>a{display:block!important;line-height:1.15!important}

/* HOME featured image: composite frame is always full, while the main image is
   never cropped. The subtle zoom runs slowly between two safe contained sizes. */
.hero.latest-storm .hero-media{overflow:hidden!important;background:#020608!important}
.hero.latest-storm .hero-media>.hero-backdrop{position:absolute!important;inset:-6%!important;width:112%!important;height:112%!important;object-fit:cover!important;object-position:center!important;opacity:.42!important;filter:blur(12px) brightness(.56)!important;animation:heroBackdropV21 10s ease-in-out infinite alternate!important}
.hero.latest-storm .hero-media>.hero-main-image{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:contain!important;object-position:center!important;transform-origin:center!important;animation:heroSafeZoomV21 9.2s ease-in-out infinite alternate!important;will-change:transform,filter!important}
@keyframes heroSafeZoomV21{0%{transform:scale(.982) translate3d(-.25%,.15%,0);filter:brightness(.91) contrast(1.06)}100%{transform:scale(1) translate3d(.25%,-.15%,0);filter:brightness(.98) contrast(1.09)}}
@keyframes heroBackdropV21{0%{transform:scale(1.02) translate3d(-.4%,0,0)}100%{transform:scale(1.07) translate3d(.4%,-.3%,0)}}

/* Stronger entry choreography for CONTINUAR LEYENDO and headings. */
.home-continue-v21 .home-continue-cover,.home-continue-v21 .home-continue-copy,.home-continue-v21 .continue-btn,
.my-continue-group .section-title,.continue-card .continue-cover,.continue-card .continue-copy,.continue-card .resume-arrow{opacity:0;transform:translateY(8px);transition:opacity .46s ease,transform .46s ease}
.home-continue-v21.hud-content-on .home-continue-cover,.home-continue-v21.hud-content-on .home-continue-copy,.home-continue-v21.hud-content-on .continue-btn,
.continue-card.hud-content-on .continue-cover,.continue-card.hud-content-on .continue-copy,.continue-card.hud-content-on .resume-arrow{opacity:1;transform:none}
.home-continue-v21.hud-content-on .home-continue-copy,.continue-card.hud-content-on .continue-copy{transition-delay:.10s}.home-continue-v21.hud-content-on .continue-btn,.continue-card.hud-content-on .resume-arrow{transition-delay:.18s}
.my-continue-group .section-title{animation:v21HeadingIn .58s ease .08s both}.my-stories-title .eyebrow,.collection-title .eyebrow{animation:v21HeadingIn .58s ease both}@keyframes v21HeadingIn{from{opacity:0;transform:translateY(8px);filter:blur(3px)}to{opacity:1;transform:none;filter:none}}
.resume-arrow,.continue-card .resume-arrow,.continue-btn.icon-only{border-radius:50%!important;aspect-ratio:1/1!important}

/* NEW is a dedicated bubble; exclusive lock keeps the prime upper-left anchor. */
.new-story-badge{position:absolute!important;left:7px!important;right:auto!important;top:7px!important;z-index:18!important;padding:5px 8px!important;border-radius:999px!important;background:#f2f5f6!important;color:#061014!important;border:1px solid #fff!important;font-family:Oxanium,sans-serif!important;font-size:8px!important;font-weight:900!important;letter-spacing:.08em!important;box-shadow:0 0 10px rgba(255,255,255,.22)!important;pointer-events:none!important}
.new-story-badge.new-has-lock{top:42px!important}

/* Access status in every catalog: upper-left. Media remains upper-right. */
.story-thumb-wrap>.ex-badge,.story-cover-card>.ex-badge,.story-grid-poster>.ex-badge,.story-grid-card>.ex-badge,
.continue-cover>.ex-badge,.hero-story-media>.ex-badge,.story-featured>.ex-badge,.media-collection-poster>.ex-badge,
.random-result-poster>.ex-badge,.timeline-poster>.ex-badge,.saga-part-poster>.ex-badge{top:7px!important;left:7px!important;right:auto!important;bottom:auto!important;transform:none!important;z-index:17!important}
.ex-badge.ex-locked{color:#ff686d!important;border-color:#8d272d!important;background:rgba(35,5,7,.86)!important}.ex-badge.ex-unlocked{color:#75ff9b!important;border-color:#287b43!important;background:rgba(5,31,14,.86)!important}
.story-media-badges,.story-thumb-wrap .story-media-badges,.story-cover-card>.story-media-badges,.story-grid-poster>.story-media-badges,.continue-cover>.story-media-badges,.hero-story-media>.story-media-badges,.story-featured>.story-media-badges{top:7px!important;right:7px!important;left:auto!important;bottom:auto!important}
.timeline-poster,.saga-part-poster{position:relative!important;overflow:hidden!important}.saga-part-poster{width:50px;flex:0 0 50px;border-radius:6px}.saga-part-poster img{display:block;width:100%;aspect-ratio:2/3;object-fit:cover}.timeline-poster>.ex-badge,.saga-part-poster>.ex-badge{width:20px!important;height:20px!important;top:4px!important;left:4px!important}.timeline-poster>.ex-badge svg,.saga-part-poster>.ex-badge svg{width:13px!important;height:13px!important}

/* Locked Story: large centered lock ABOVE the poster + teaser. */
.locked-story-page{padding:4px var(--reader-pad) 34px}.locked-main-lock{width:96px;height:96px;margin:12px auto 16px;border-radius:50%;display:grid;place-items:center;color:#ff6268;border:1px solid #8b252b;background:radial-gradient(circle,rgba(132,20,27,.22),rgba(19,3,5,.9));box-shadow:0 0 24px rgba(210,36,46,.2)}.locked-main-lock svg{width:58px;height:58px;fill:none;stroke:currentColor;stroke-width:1.55}.locked-story-page .story-featured{margin-left:auto!important;margin-right:auto!important}.locked-teaser{margin:20px auto 8px;max-width:720px}.locked-teaser>.eyebrow{text-align:center;margin-bottom:8px}.locked-story-page .lock-screen{padding-top:22px!important;min-height:0!important}.locked-story-page .lock-screen:before{display:none!important}

/* iOS badge permission helper. */
.badge-permission-panel{display:grid;grid-template-columns:1fr auto;gap:5px 12px;align-items:center;border:1px solid #294a54;background:#071217;border-radius:11px;padding:11px;margin:0 0 11px}.badge-permission-panel strong{font-family:Oxanium,sans-serif;font-size:10px;color:#c9f8ff}.badge-permission-panel span{font-size:9px;color:#739097}.badge-permission-panel button{grid-column:2;grid-row:1/3;white-space:nowrap;font-size:8px;padding:8px 10px}

/* MIS STORIES: make summary fit and every statistic a real shortcut. */
.progress-dashboard.stat-action,.unread-callout.stat-action{width:100%;color:inherit;font:inherit;text-align:inherit;cursor:pointer}.progress-dashboard.stat-action{display:grid!important}.progress-big .progress-denom,.progress-big>em{font-size:clamp(9px,2.7vw,12px)!important}.progress-side{grid-template-columns:minmax(78px,.72fr) minmax(0,1fr)!important}.progress-side .collection-progress.large{max-width:125px!important}.personal-stats .stat-action,.unread-callout.stat-action{cursor:pointer}.personal-stats .stat-action:active,.unread-callout.stat-action:active,.progress-dashboard.stat-action:active{filter:brightness(1.2)}.my-tabs{grid-template-columns:repeat(4,minmax(0,1fr))!important}.my-tabs .my-filter{font-size:clamp(6.5px,2vw,8px)!important;padding-inline:4px!important}

/* TODAS LAS STORIES portals. */
.portal-custom-svg{width:30px!important;height:24px!important;fill:none!important;stroke:currentColor!important;stroke-width:1.6!important;stroke-linecap:round!important;stroke-linejoin:round!important}.timeline-portal-svg circle{fill:#071116!important}.portal-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))!important}.nightmare-diamond{display:block!important;width:12px!important;height:12px!important;transform:rotate(45deg)!important;border:1.5px solid currentColor!important;margin:auto!important}.portal-btn.games .gamepad-portal-svg{color:#ff8de9!important}

/* Collection interactions + book metadata. */
.book-card{transition:filter .22s ease,box-shadow .22s ease,transform .22s ease}.book-card-flash{animation:bookCardFlashV21 1s ease both!important}.book-card-opening{animation:bookOpenFlashV21 .38s ease both!important;pointer-events:none!important}@keyframes bookCardFlashV21{0%,100%{filter:brightness(1);box-shadow:inherit}28%,62%{filter:brightness(1.45);box-shadow:0 0 28px rgba(142,244,255,.32)}}@keyframes bookOpenFlashV21{to{filter:brightness(1.52);box-shadow:0 0 30px rgba(142,244,255,.34);transform:scale(1.012)}}.book-pages{display:flex;align-items:baseline;gap:5px;margin:7px 0;color:#92adb4}.book-pages strong{font-family:Oxanium,sans-serif;font-size:13px;color:#d8f8ff}.book-pages span{font-size:7px;letter-spacing:.08em}.book-pages-detail{margin-top:7px;color:#8daab2;font-family:Oxanium,sans-serif;font-size:9px;letter-spacing:.07em}.book-detail-title-row .book-feature-counts{gap:8px!important}.book-detail-title-row .book-feature-count{min-width:42px!important;min-height:38px!important;padding:5px 7px!important}.book-detail-title-row .book-feature-count svg{width:22px!important;height:22px!important}.book-detail-title-row .book-feature-count b{font-size:14px!important}

/* Player: deterministic total + Spotify one-line title. */
.spotify-companion span{min-width:0!important}.spotify-companion strong{display:block!important;font-family:Oxanium,sans-serif!important;font-size:clamp(11px,3.5vw,15px)!important;line-height:1.1!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;margin:0!important}.player-summary-row b{white-space:nowrap}

/* Cassettes / Tapes: larger, more homogeneous information area. */
.media-collection-card{grid-template-columns:58px minmax(0,1fr)!important;min-height:102px!important;padding:8px 10px 8px 8px!important;cursor:pointer}.media-collection-copy{display:grid;align-content:center;gap:4px;min-width:0}.media-collection-card .media-collection-copy>span{font-size:8px!important;letter-spacing:.08em}.media-collection-card .media-collection-copy>strong{font-size:clamp(12px,3.4vw,15px)!important;line-height:1.15!important;margin:0!important}.media-collection-card .media-collection-copy>em{font-size:9px!important;margin-top:2px!important}.media-collection-card:active{filter:brightness(1.18)}

@media(prefers-reduced-motion:reduce){.hero.latest-storm .hero-media>.hero-main-image,.hero.latest-storm .hero-media>.hero-backdrop,.book-card-flash,.book-card-opening,.my-continue-group .section-title,.my-stories-title .eyebrow,.collection-title .eyebrow{animation:none!important}.home-continue-v21 .home-continue-cover,.home-continue-v21 .home-continue-copy,.home-continue-v21 .continue-btn,.continue-card .continue-cover,.continue-card .continue-copy,.continue-card .resume-arrow{opacity:1!important;transform:none!important;transition:none!important}}
/* v2.2 · Spotify CTA must outrank playlist titles while remaining single-line. */
.spotify-companion strong{font-size:clamp(14px,3.9vw,17px)!important;letter-spacing:-.01em!important}
@media(max-width:360px){.spotify-companion{gap:8px!important;padding-inline:10px!important}.spotify-companion svg{width:30px!important;height:30px!important}.spotify-companion>b{font-size:17px!important}.spotify-companion strong{font-size:14px!important}}
/* Lock/NEW keep the upper-left priority; sort bubbles stack below them. */
.sort-badge.sort-has-lock,.sort-badge.sort-has-new{top:42px!important}
.sort-badge.sort-has-lock.sort-has-new{top:77px!important}


/* ============================================================
   DISTURBING STORIES APP v2.2
   ============================================================ */

/* HOME · la destacada llena el marco 9:16 sin deformarse. */
.hero.latest-storm .hero-media>.hero-main-image{
  inset:0!important;width:100%!important;height:100%!important;
  object-fit:cover!important;object-position:center center!important;
  animation:heroSafeZoomV21 9.2s ease-in-out infinite alternate!important;
}
.hero.latest-storm .hero-media>.hero-backdrop{opacity:.18!important;filter:blur(10px) brightness(.45)!important}

/* El candado queda siempre superpuesto en la esquina superior izquierda del póster. */
.story-thumb-wrap,.story-cover-card,.story-grid-poster,.continue-cover,.home-continue-cover,
.hero-story-media,.story-featured,.media-collection-poster,.random-result-poster,.timeline-poster,.saga-part-poster{
  position:relative!important;
}
.story-thumb-wrap>.ex-badge,.story-cover-card>.ex-badge,.story-grid-poster>.ex-badge,
.continue-cover>.ex-badge,.home-continue-cover>.ex-badge,.hero-story-media>.ex-badge,.story-featured>.ex-badge,
.media-collection-poster>.ex-badge,.random-result-poster>.ex-badge,.timeline-poster>.ex-badge,.saga-part-poster>.ex-badge{
  position:absolute!important;left:6px!important;top:6px!important;right:auto!important;bottom:auto!important;
  z-index:24!important;transform:none!important;
}

/* TODAS LAS STORIES · multimedia en una sola línea y nomenclatura compacta. */
.portal-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:5px!important}
.stories-portals-group.multimedia .portal-btn{min-width:0!important;min-height:78px!important;padding:7px 2px!important;gap:4px!important}
.stories-portals-group.multimedia .portal-btn strong{font-size:clamp(6.5px,2vw,8.5px)!important;letter-spacing:.015em!important;white-space:nowrap!important}
.stories-portals-group.multimedia .portal-btn small{font-size:5.5px!important;white-space:nowrap!important}
.portal-btn.games .gamepad-portal-svg{width:35px!important;height:25px!important;stroke-width:1.7!important}
.portal-btn.nightmares .nightmare-diamond{width:8px!important;height:8px!important;border-width:1.2px!important}
.story-read-time{font-family:Oxanium,sans-serif!important;color:#9fcbd5!important;font-size:8px!important;letter-spacing:.04em!important;white-space:nowrap}
.story-grid-copy .story-read-time{display:inline-flex;margin-top:6px;padding:4px 6px;border:1px solid #294b55;border-radius:999px;background:#071217}
.story-card .story-read-time{color:#b5dce4!important}

/* Entrada coreografiada de TODAS LAS STORIES. */
.stories-v22-enter .section-title,.stories-v22-enter .library-stats>button,.stories-v22-enter .stories-portals-group,
.stories-v22-enter .portal-btn,.stories-v22-enter .library-controls,.stories-v22-enter .story-control-strip,
.stories-v22-enter .results-count,.stories-v22-enter .story-cover-card,.stories-v22-enter .story-grid-card,.stories-v22-enter .story-card{
  opacity:0;transform:translateY(11px) scale(.985);filter:blur(3px);
}
.stories-v22-enter.stories-v22-on .section-title,
.stories-v22-enter.stories-v22-on .library-stats>button,.stories-v22-enter.stories-v22-on .stories-portals-group,
.stories-v22-enter.stories-v22-on .portal-btn,.stories-v22-enter.stories-v22-on .library-controls,
.stories-v22-enter.stories-v22-on .story-control-strip,.stories-v22-enter.stories-v22-on .results-count,
.stories-v22-enter.stories-v22-on .story-cover-card,.stories-v22-enter.stories-v22-on .story-grid-card,.stories-v22-enter.stories-v22-on .story-card{
  animation:storiesV22Enter .54s cubic-bezier(.2,.72,.22,1) both;
}
.stories-v22-enter.stories-v22-on .library-stats>button:nth-child(2){animation-delay:.04s}
.stories-v22-enter.stories-v22-on .library-stats>button:nth-child(3){animation-delay:.08s}
.stories-v22-enter.stories-v22-on .stories-portals-group:nth-of-type(1){animation-delay:.10s}
.stories-v22-enter.stories-v22-on .stories-portals-group:nth-of-type(2){animation-delay:.15s}
.stories-v22-enter.stories-v22-on .portal-btn:nth-child(2){animation-delay:.05s}
.stories-v22-enter.stories-v22-on .portal-btn:nth-child(3){animation-delay:.09s}
.stories-v22-enter.stories-v22-on .portal-btn:nth-child(4){animation-delay:.13s}
.stories-v22-enter.stories-v22-on .library-controls{animation-delay:.18s}
.stories-v22-enter.stories-v22-on .story-control-strip{animation-delay:.22s}
.stories-v22-enter.stories-v22-on .results-count{animation-delay:.25s}
.stories-v22-enter.stories-v22-on .story-cover-card:nth-child(2),
.stories-v22-enter.stories-v22-on .story-grid-card:nth-child(2),
.stories-v22-enter.stories-v22-on .story-card:nth-child(2){animation-delay:.035s}
.stories-v22-enter.stories-v22-on .story-cover-card:nth-child(3),
.stories-v22-enter.stories-v22-on .story-grid-card:nth-child(3),
.stories-v22-enter.stories-v22-on .story-card:nth-child(3){animation-delay:.07s}
@keyframes storiesV22Enter{to{opacity:1;transform:none;filter:none}}
.stories-v22-enter.stories-v22-on::before,.stories-v22-enter.stories-v22-on::after{animation:v22CornerIn .65s ease both}
@keyframes v22CornerIn{from{opacity:0;transform:scale(.7)}to{opacity:1;transform:none}}

/* SAGAS · negro sólido a la izquierda + progreso publicado/leído. */
.saga-card-shade{
  background:linear-gradient(90deg,#000 0%,#000 43%,rgba(0,0,0,.96) 47%,rgba(0,0,0,.62) 51%,rgba(0,0,0,.18) 56%,rgba(0,0,0,0) 61%,rgba(0,0,0,0) 100%)!important;
}
.saga-card-copy{width:52%!important;padding:18px 14px!important}
.saga-card-copy h2{font-size:clamp(18px,5.7vw,25px)!important}
.saga-progress{position:relative!important;width:100%!important;height:7px!important;background:#10232b!important;border-radius:999px!important;overflow:hidden!important}
.saga-progress>i{position:absolute!important;left:0!important;top:0!important;height:100%!important;border-radius:inherit!important}
.saga-progress-published{background:#39aeea!important;z-index:1!important}
.saga-progress-read{background:#d9ac42!important;z-index:2!important;box-shadow:0 0 9px rgba(217,172,66,.28)}
.saga-card-copy>strong{color:#d5edf2!important;line-height:1.35!important}

.saga-detail{position:relative!important;isolation:isolate!important;overflow:hidden!important;min-height:calc(100svh - var(--topbar-base) - var(--bottomnav-base))!important}
.saga-page-bg{position:absolute;z-index:-2;left:calc(var(--reader-pad) * -1);right:calc(var(--reader-pad) * -1);top:202px;bottom:-24px;overflow:hidden;background:#020507}
.saga-page-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(3,9,12,.38),rgba(3,9,12,.72) 80%,rgba(3,9,12,.92))}
.saga-page-bg img{width:100%;height:100%;object-fit:cover;object-position:center;opacity:.42;filter:saturate(.8) contrast(1.08)}
.saga-detail-content{position:relative;z-index:1}
.saga-detail-banner{height:210px!important;background:#020507!important;position:relative!important;overflow:hidden!important}
.saga-detail-banner img{position:absolute!important;left:0!important;top:0!important;width:200%!important;max-width:none!important;height:100%!important;object-fit:cover!important;object-position:left center!important}
.saga-percent .saga-progress{margin-top:9px!important}
.saga-percent>strong{color:#d9f6fb!important}
.saga-percent>span{color:#9ab7be!important}

.saga-parts{gap:12px!important}
.saga-part{min-height:124px!important;grid-template-columns:86px minmax(0,1fr) auto!important;gap:13px!important;padding:14px 12px!important;border-radius:13px!important}
.saga-part .saga-part-order{top:8px!important;left:11px!important;font-size:8px!important;letter-spacing:.08em!important}
.saga-part-poster{width:78px!important;flex:0 0 78px!important;margin-top:16px!important;border-radius:8px!important}
.saga-part-poster img{width:100%!important;aspect-ratio:2/3!important;object-fit:cover!important}
.saga-part-copy{margin-top:15px!important;min-width:0!important}
.saga-part-copy strong{font-size:clamp(13px,3.8vw,16px)!important;line-height:1.25!important}
.saga-part-copy em{font-size:9px!important;margin-top:7px!important}
.saga-read-mark{display:inline-block;margin-top:8px;color:#e0b34a;font-family:Oxanium,sans-serif;font-size:9px;letter-spacing:.06em}
.saga-part.is-read{border-color:#6c5825!important;box-shadow:inset 3px 0 0 #d9ac42}
.saga-part-icons{display:flex!important;flex-direction:column!important;justify-content:center!important;align-items:center!important;gap:8px!important;min-width:34px!important;margin-top:0!important}
.saga-feature-icon{width:32px;height:32px;border:1px solid #335761;border-radius:50%;display:grid;place-items:center;background:rgba(4,13,17,.86)}
.saga-feature-icon svg{width:18px!important;height:18px!important}
.saga-feature-icon.audio{color:#6effa9;border-color:#238354}.saga-feature-icon.video{color:#79d8ff;border-color:#277fab}.saga-feature-icon.extra{color:#e1c06d;border-color:#806a30;font:900 20px/1 Oxanium,sans-serif}
.future-part{min-height:100px!important}

/* TIMELINE · mayor, centrado, año a la izquierda y agrupación con llave. */
.timeline-section .section-title{text-align:center!important;justify-content:center!important}
.timeline-order{max-width:620px!important;margin:0 auto 20px!important;display:block!important}
.timeline-list{width:100%!important;max-width:720px!important;margin:0 auto!important}
.timeline-era{margin:28px auto 12px!important;font-size:12px!important;padding:11px 14px!important}
.timeline-year-group{
  display:grid!important;grid-template-columns:minmax(78px,112px) 44px minmax(0,1fr)!important;
  gap:8px!important;align-items:stretch!important;margin:10px auto 20px!important;
}
.timeline-year{font-size:clamp(14px,4vw,18px)!important;padding:0!important;display:flex!important;justify-content:flex-end!important;align-items:center!important;text-align:right!important}
.timeline-axis-marker{position:relative;display:flex;align-items:center;justify-content:center;min-height:116px}
.timeline-year-node{width:14px;height:14px;border-radius:50%;background:#58c8ff;border:2px solid #c7f1ff;box-shadow:0 0 14px rgba(88,200,255,.55);z-index:3}
.timeline-brace{position:absolute;left:27px;top:50%;transform:translateY(-50%) scaleY(1.28);transform-origin:center;font-family:Georgia,serif;font-size:clamp(96px,26vw,150px);line-height:.7;color:#527985;font-weight:400;z-index:1}
.timeline-items{border:0!important;padding:0 0 0 15px!important;display:grid!important;gap:11px!important}
.timeline-item{min-height:116px!important;display:grid!important;grid-template-columns:76px minmax(0,1fr) auto!important;gap:13px!important;align-items:center!important;border:1px solid #213e47;border-radius:13px;background:#071116;padding:10px!important}
.timeline-poster{width:76px!important;border-radius:8px!important}
.timeline-copy{min-width:0}.timeline-copy>span{display:block;color:#72919a;font:700 8px/1.2 Oxanium,sans-serif;letter-spacing:.08em}.timeline-copy>strong{display:block;margin-top:5px;font-size:clamp(12px,3.6vw,15px);line-height:1.25}.timeline-copy>em{display:block;margin-top:7px;color:#e0b34a;font-style:normal;font:800 8px/1 Oxanium,sans-serif}
.timeline-icons{display:flex!important;flex-direction:column!important;gap:7px!important}
.timeline-icon{width:31px!important;height:31px!important}.timeline-icon svg{width:18px!important;height:18px!important}
.timeline-break{margin:12px auto 18px!important}
@media(max-width:390px){.timeline-year-group{grid-template-columns:76px 34px minmax(0,1fr)!important;gap:4px!important}.timeline-brace{left:21px!important}.timeline-item{grid-template-columns:64px minmax(0,1fr)!important}.timeline-poster{width:64px!important}.timeline-icons{grid-column:2;flex-direction:row!important}.saga-card-copy{width:58%!important}}

/* PLAYER · duración por pista y modos más legibles. */
.player-track{grid-template-columns:36px minmax(0,1fr) auto!important;align-items:center!important}
.player-track>em{font-style:normal;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;color:#8eabb3;font-size:11px;white-space:nowrap}
.player-mode-controls{gap:9px!important}
.player-mode{min-height:60px!important;font-size:clamp(13px,3.8vw,16px)!important;font-weight:900!important;letter-spacing:.02em!important}
.player-mode.active{box-shadow:inset 0 0 18px rgba(210,35,42,.12),0 0 12px rgba(210,35,42,.08)!important}

/* EXTRA · destino manual opcional. */
.extra-destination{display:flex!important;width:100%!important;align-items:center!important;justify-content:center!important;text-decoration:none!important;margin-top:16px!important}

/* Reduce motion. */
@media(prefers-reduced-motion:reduce){
  .stories-v22-enter .section-title,.stories-v22-enter .library-stats>button,.stories-v22-enter .stories-portals-group,
  .stories-v22-enter .portal-btn,.stories-v22-enter .library-controls,.stories-v22-enter .story-control-strip,
  .stories-v22-enter .results-count,.stories-v22-enter .story-cover-card,.stories-v22-enter .story-grid-card,.stories-v22-enter .story-card{
    opacity:1!important;transform:none!important;filter:none!important;animation:none!important
  }
}


/* ============================================================
   DISTURBING STORIES APP v2.3
   ============================================================ */

/* QR · inputs nativos fuera de pantalla (no display:none: iOS debe poder invocarlos). */
.qr-native-input{position:fixed!important;left:-10000px!important;top:-10000px!important;width:1px!important;height:1px!important;opacity:.001!important;pointer-events:none!important}

/* Iconografía de posters unificada: lock/audio/video comparten diámetro, SVG y trazo. */
.ex-badge,.media-badge{width:29px!important;height:29px!important;border-width:1.5px!important;box-sizing:border-box!important}
.ex-badge .lock-svg,.media-feature-svg{width:17px!important;height:17px!important;fill:none!important;stroke:currentColor!important;stroke-width:1.9!important;stroke-linecap:round!important;stroke-linejoin:round!important}
.story-thumb-wrap .ex-badge,.story-thumb-wrap .media-badge{width:25px!important;height:25px!important}
.story-thumb-wrap .ex-badge .lock-svg,.story-thumb-wrap .media-feature-svg{width:14px!important;height:14px!important}

/* Tiempo de lectura · bubble anclada abajo-derecha de cada poster de resultados. */
.story-read-time-badge{position:absolute!important;right:6px!important;bottom:6px!important;left:auto!important;top:auto!important;z-index:26!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;padding:5px 7px!important;border:1px solid #31515b!important;border-radius:999px!important;background:rgba(3,12,16,.9)!important;color:#c4e5ec!important;box-shadow:0 4px 12px rgba(0,0,0,.38)!important;backdrop-filter:blur(6px)!important;-webkit-backdrop-filter:blur(6px)!important;font:800 clamp(7px,2vw,9px)/1 Oxanium,sans-serif!important;letter-spacing:.025em!important;white-space:nowrap!important;pointer-events:none!important}
.story-cover-card>.story-read-time-badge,.story-grid-poster>.story-read-time-badge{right:7px!important;bottom:7px!important}

/* HOME · última publicación: zoom 1x→2x→1x + wiggle suave; NEW centrado y x3. */
.hero.latest-storm .hero-media>.hero-main-image{animation:heroLatestV23 12s ease-in-out infinite!important;transform-origin:center center!important;will-change:transform!important}
@keyframes heroLatestV23{
  0%{transform:scale(1) translate3d(0,0,0) rotate(0deg)}
  12%{transform:scale(1.13) translate3d(-.8%,.45%,0) rotate(-.18deg)}
  25%{transform:scale(1.34) translate3d(.65%,-.5%,0) rotate(.16deg)}
  38%{transform:scale(1.58) translate3d(-.55%,-.25%,0) rotate(-.12deg)}
  50%{transform:scale(2) translate3d(.35%,.5%,0) rotate(.1deg)}
  62%{transform:scale(1.62) translate3d(-.6%,.15%,0) rotate(-.16deg)}
  75%{transform:scale(1.35) translate3d(.55%,-.4%,0) rotate(.13deg)}
  88%{transform:scale(1.14) translate3d(-.35%,.25%,0) rotate(-.08deg)}
  100%{transform:scale(1) translate3d(0,0,0) rotate(0deg)}
}
.hero-story-media>.new-story-badge{left:50%!important;right:auto!important;top:7px!important;transform:translateX(-50%)!important;font-size:24px!important;line-height:1!important;padding:14px 22px!important;letter-spacing:.1em!important;border-width:2px!important;box-shadow:0 0 24px rgba(255,255,255,.3)!important;z-index:30!important}
.hero-story-media>.new-story-badge.new-has-lock{top:7px!important}

/* PLAYER · navegación principal tan larga como los modos inferiores e iconos x3. */
.player-controls-main{grid-template-columns:repeat(3,minmax(0,1fr))!important;width:100%!important;gap:9px!important}
.player-controls-main button{width:100%!important;height:60px!important;min-width:0!important;font-size:64px!important;line-height:.75!important;padding:0!important;display:grid!important;place-items:center!important}
.player-controls-main .player-main-play{font-size:51px!important;line-height:1!important}

/* COLECCIÓN · selección de lomo mucho más visible. */
.book-card-flash{animation:bookCardFlashV23 1.55s cubic-bezier(.2,.78,.2,1) both!important;position:relative!important;z-index:8!important}
@keyframes bookCardFlashV23{
  0%,100%{filter:brightness(1) saturate(1);box-shadow:0 0 0 rgba(142,244,255,0);transform:scale(1)}
  16%{filter:brightness(1.9) saturate(1.35);box-shadow:0 0 0 3px #8ef4ff,0 0 22px 8px rgba(142,244,255,.52),0 0 54px 15px rgba(71,180,255,.28);transform:scale(1.035)}
  34%{filter:brightness(1.2);box-shadow:0 0 0 1px #8ef4ff,0 0 18px rgba(142,244,255,.28);transform:scale(1.012)}
  52%{filter:brightness(1.75) saturate(1.25);box-shadow:0 0 0 3px #d9fbff,0 0 28px 10px rgba(142,244,255,.42);transform:scale(1.03)}
  74%{filter:brightness(1.18);box-shadow:0 0 0 1px rgba(142,244,255,.7),0 0 16px rgba(142,244,255,.2);transform:scale(1.008)}
}

/* Book#X · filtros por color y grid a tres columnas. */
.book-story-filters{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:7px!important}
.book-story-filter{min-width:0!important;padding:12px 4px!important;font-size:clamp(6.7px,2vw,8.5px)!important;white-space:nowrap!important}
.book-story-filter[data-book-feature="audio"]{color:#63ffa0!important;border-color:#236c43!important;background:#07150d!important}
.book-story-filter[data-book-feature="video"]{color:#70d4ff!important;border-color:#245e78!important;background:#07121a!important}
.book-story-filter[data-book-feature="exclusive"]{color:#ff7c84!important;border-color:#7c2a30!important;background:#19090b!important}
.book-story-filter.active[data-book-feature="all"]{background:#eee!important;color:#050505!important;border-color:#eee!important}
.book-story-filter.active[data-book-feature="audio"]{background:#0b5129!important;color:#d9ffe8!important;border-color:#4cff94!important;box-shadow:0 0 16px rgba(76,255,148,.15)!important}
.book-story-filter.active[data-book-feature="video"]{background:#0a3854!important;color:#e2f7ff!important;border-color:#52c8ff!important;box-shadow:0 0 16px rgba(82,200,255,.15)!important}
.book-story-filter.active[data-book-feature="exclusive"]{background:#521116!important;color:#ffe5e7!important;border-color:#ff6971!important;box-shadow:0 0 16px rgba(255,105,113,.16)!important}
.collection-story-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important}
.book-detail-title-row .book-feature-count.clickable.exclusive{color:#ff7c84!important;border-color:#7c2a30!important;background:rgba(82,17,22,.24)!important}

/* MIS STORIES · denominador, texto y navegación de filtros. */
.progress-big .progress-denom{font-size:clamp(36px,10.5vw,46px)!important;line-height:.82!important;font-weight:800!important;color:#d9e3e6!important}
.progress-big>em{font-size:clamp(9px,2.7vw,12px)!important}
.progress-side p{font-size:clamp(11.5px,3.2vw,13.5px)!important;line-height:1.5!important}
.my-tabs{scroll-margin-top:calc(var(--topbar-base) + 2px)!important}
.continue-card.progress-jump-flash{animation:continueJumpFlashV23 1.35s ease both!important}
@keyframes continueJumpFlashV23{0%,100%{border-color:#294c58;box-shadow:none;filter:brightness(1);transform:none}18%{border-color:#8ef4ff;box-shadow:0 0 0 2px rgba(142,244,255,.52),0 0 22px rgba(142,244,255,.32);filter:brightness(1.48);transform:translateY(-2px)}45%{border-color:#527984;box-shadow:0 0 12px rgba(142,244,255,.12);filter:brightness(1.1);transform:none}68%{border-color:#8ef4ff;box-shadow:0 0 18px rgba(142,244,255,.24);filter:brightness(1.32)}}
.continue-inline-icons{min-height:27px;margin:1px 0 5px;display:flex!important;flex-direction:row-reverse!important;justify-content:flex-start!important;align-items:center!important;gap:4px!important}
.continue-inline-icons>.ex-badge{position:static!important;transform:none!important;flex:none!important}
.continue-inline-icons>.story-media-badges{position:static!important;display:flex!important;flex-direction:row-reverse!important;align-items:center!important;gap:4px!important;pointer-events:none!important}
.continue-inline-icons .ex-badge,.continue-inline-icons .media-badge{width:25px!important;height:25px!important}
.continue-inline-icons .lock-svg,.continue-inline-icons .media-feature-svg{width:14px!important;height:14px!important}
.resume-arrow svg{width:19px!important;height:19px!important;display:block!important;fill:none!important;stroke:currentColor!important;stroke-width:2.2!important;stroke-linecap:round!important;stroke-linejoin:round!important}
.resume-arrow{font-size:0!important;place-items:center!important}

/* Menú lateral · Tutoriales sin icono temporal. */
.drawer-disabled.drawer-no-icon{padding-left:14px!important}

@media(prefers-reduced-motion:reduce){
  .hero.latest-storm .hero-media>.hero-main-image,.book-card-flash,.continue-card.progress-jump-flash{animation:none!important;transform:none!important}
}

/* v2.3 · también en Timeline/Sagas el candado conserva exactamente la métrica común. */
.timeline-poster>.ex-badge,.saga-part-poster>.ex-badge{width:29px!important;height:29px!important}
.timeline-poster>.ex-badge .lock-svg,.saga-part-poster>.ex-badge .lock-svg{width:17px!important;height:17px!important;stroke-width:1.9!important}


/* ============================================================
   DISTURBING STORIES APP v2.4
   QR live scanner · locked Story · badge · unlock reward · intro
   ============================================================ */

/* Locked Story poster: always complete, centered and never cropped. */
.locked-story-page .story-featured{
  width:100%!important;
  max-width:min(520px,100%)!important;
  min-height:0!important;
  display:grid!important;
  place-items:center!important;
  background:#050505!important;
  overflow:hidden!important;
  border-radius:12px!important;
}
.locked-story-page .story-featured>img{
  display:block!important;
  width:auto!important;
  height:auto!important;
  max-width:100%!important;
  max-height:68svh!important;
  margin:auto!important;
  object-fit:contain!important;
  object-position:50% 50%!important;
}

/* Scanner v2.4: smaller live camera zone, centered. */
.unlock-panel .qr-reader{
  width:min(82vw,360px)!important;
  min-height:220px!important;
  aspect-ratio:1/1!important;
  margin:0 auto 14px!important;
  border-radius:14px!important;
}
.unlock-panel .qr-reader video{
  width:100%!important;
  height:100%!important;
  max-height:none!important;
  object-fit:cover!important;
}
.unlock-panel .locked-teaser{margin:22px auto 4px!important;max-width:560px!important}
.unlock-panel .locked-teaser>.eyebrow{text-align:center!important}

/* Badge permission reminder: gold, alive but not distracting. */
.badge-permission-panel{
  border-color:#b99a3e!important;
  box-shadow:0 0 0 1px rgba(255,215,93,.10),0 0 18px rgba(211,171,58,.12)!important;
  animation:badgeReminderGoldV24 2.7s ease-in-out infinite!important;
}
.badge-permission-panel strong{color:#ffe394!important}
@keyframes badgeReminderGoldV24{
  0%,100%{border-color:#806b2c;box-shadow:0 0 0 1px rgba(255,215,93,.05),0 0 10px rgba(211,171,58,.07);transform:translateZ(0)}
  50%{border-color:#e0bd50;box-shadow:0 0 0 1px rgba(255,226,119,.22),0 0 24px rgba(223,181,63,.26);transform:translateZ(0)}
}

/* Unlock reward: poster appears above the confirmation and fades first. */
.unlock-reward-stack{position:relative;z-index:2;display:grid;justify-items:center;gap:14px;width:min(90vw,430px)}
.unlock-reward-poster{width:min(38vw,150px);max-height:42vh;opacity:0;transform:translateY(12px) scale(.94);transition:opacity .38s ease,transform .38s ease,filter .42s ease;filter:brightness(.9);filter:drop-shadow(0 18px 30px rgba(0,0,0,.58))}
.unlock-reward-poster img{display:block;width:100%;height:auto;max-height:42vh;object-fit:contain;border-radius:8px;border:1px solid #41656e;background:#05090a}
.unlock-reward.show .unlock-reward-poster{opacity:1;transform:translateY(0) scale(1)}
.unlock-reward-poster.fade-poster{opacity:0!important;transform:translateY(-8px) scale(.97)!important;filter:blur(2px) brightness(.65)!important}
.unlock-reward-card{width:100%!important}

/* Desktop/Windows: preserve the authored 9:16 intro frame in full. */
@media (min-width:700px) and (orientation:landscape){
  .intro-video{
    inset:0!important;
    width:100%!important;
    height:100%!important;
    object-fit:contain!important;
    object-position:center center!important;
    background:#000!important;
  }
}
@media(prefers-reduced-motion:reduce){.badge-permission-panel{animation:none!important}.unlock-reward-poster{transition:none!important}}

/* ============================================================
   DISTURBING STORIES APP v2.5
   Locked teaser · live QR · library stats · timeline · random · intro
   ============================================================ */

/* Todas las Stories: stats superiores realmente interactivos. */
.library-stats>button{
  appearance:none;border:1px solid #294c58;background:#071116;color:inherit;border-radius:12px;
  min-width:0;padding:14px 6px;cursor:pointer;text-align:center;font:inherit;
  transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease,filter .18s ease;
}
.library-stats>button:hover,.library-stats>button:focus-visible{border-color:#8ef4ff;box-shadow:0 0 18px rgba(142,244,255,.16);filter:brightness(1.12);outline:none}
.library-stats>button:active{transform:scale(.98)}
.library-stats>button strong,.library-stats>button span{display:block}
.stories-portals .portal-label{text-align:center!important}
.stories-portals-group.multimedia .portal-btn.nightmares{gap:2px!important}
.stories-portals-group.multimedia .portal-btn.nightmares .nightmare-diamond{margin-bottom:0!important}

/* QR v2.5: la cámara se abre por gesto directo del usuario y queda separada del teaser. */
.unlock-panel .scanner-instruction{max-width:520px;margin:0 auto 14px;text-align:center;border:1px solid #493d20;background:#0d0b06;border-radius:12px;padding:13px 14px}
.unlock-panel .scanner-instruction strong{display:block;color:#f0cf69;font:800 12px/1.15 Oxanium,sans-serif;letter-spacing:.08em;margin-bottom:8px}
.unlock-panel .scanner-instruction p{margin:4px 0;color:#bdcbd0;font-size:12px;line-height:1.45}
.unlock-panel .scan-zone{max-width:520px;margin:0 auto;border:1px solid #24454f;background:#050d10;border-radius:14px;padding:12px}
.unlock-panel .qr-reader{width:min(72vw,310px)!important;min-height:190px!important;margin:0 auto 12px!important;overflow:hidden!important}
.unlock-panel .qr-reader video{display:block!important;width:100%!important;height:100%!important;object-fit:cover!important}
.unlock-panel .locked-teaser{margin:20px auto 4px!important;max-width:320px!important;position:relative!important;z-index:1!important}
.locked-teaser-video{position:relative;width:100%;aspect-ratio:9/16;border:1px solid #294a54;border-radius:12px;overflow:hidden;background:#000;box-shadow:0 12px 32px rgba(0,0,0,.36)}
.locked-teaser-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}

/* Desbloqueo: póster mayor, cierre manual y duración visual de ~5s. */
.unlock-reward{pointer-events:auto!important;cursor:pointer!important}
.unlock-reward-poster{width:min(48vw,190px)!important;max-height:48vh!important}
.unlock-reward-poster img{max-height:48vh!important}
.unlock-reward:after{content:'TOCA PARA CERRAR';position:absolute;bottom:max(22px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);color:#7f9ba2;font:700 8px/1 Oxanium,sans-serif;letter-spacing:.12em;z-index:4}

/* TIMELINE v2.5: ocupa todo el ancho, años al borde, línea vertical y grupos por año. */
.timeline-section{padding-left:8px!important;padding-right:8px!important}
.timeline-title{margin-left:0!important;margin-right:0!important}
.timeline-title .eyebrow{font-size:clamp(8px,2.5vw,11px)!important;letter-spacing:.06em!important}
.timeline-list{width:100%!important;margin:0!important}
.timeline-era-block{--era:#8ef4ff;margin:12px 0 18px}
.timeline-era{width:100%!important;margin:0 0 8px!important;border:1px solid color-mix(in srgb,var(--era) 55%,#17272d)!important;border-left:4px solid var(--era)!important;background:linear-gradient(90deg,color-mix(in srgb,var(--era) 16%,transparent),rgba(4,10,12,.82) 62%)!important;color:#eefcff!important;border-radius:7px!important;padding:10px 12px!important;display:flex!important;justify-content:space-between!important;align-items:center!important;text-align:left!important;cursor:pointer!important}
.timeline-era span{font:800 10px/1 Oxanium,sans-serif;letter-spacing:.1em;color:var(--era)}
.timeline-era b{font:800 18px/1 Oxanium,sans-serif;color:var(--era)}
.timeline-era-body{position:relative;overflow:hidden;max-height:12000px;opacity:1;transition:max-height .35s ease,opacity .24s ease}
.timeline-era-body.collapsed{max-height:0;opacity:0}
.era-prehistory{--era:#b28b55}.era-ancient{--era:#d2b65b}.era-medieval{--era:#a979b8}.era-modern{--era:#77a9cc}.era-contemporary{--era:#8ef4ff}.era-renaissance{--era:#75d491}.era-advances{--era:#f18b78}.era-space{--era:#8f89ff}.era-unknown{--era:#74848a}
.timeline-year-group{display:grid!important;grid-template-columns:56px 18px minmax(0,1fr)!important;gap:0!important;align-items:stretch!important;width:100%!important;position:relative!important;margin:0!important}
.timeline-year{grid-column:1!important;align-self:center!important;padding:0 6px 0 0!important;text-align:left!important;font:800 clamp(8px,2.4vw,11px)/1.15 Oxanium,sans-serif!important;color:#d8fbff!important;word-break:normal!important}
.timeline-year-axis{grid-column:2!important;position:relative!important;min-height:100%!important}
.timeline-year-axis:before{content:'';position:absolute;left:50%;top:0;bottom:0;border-left:1px solid #426570;transform:translateX(-50%)}
.timeline-year-axis i{position:absolute;left:-9px;right:50%;top:50%;border-top:1px solid #426570}
.timeline-items{grid-column:3!important;position:relative!important;border-left:0!important;padding:6px 0 6px 10px!important;display:grid!important;gap:9px!important;min-width:0!important}
.timeline-item{position:relative!important;display:grid!important;grid-template-columns:70px minmax(0,1fr) auto!important;gap:10px!important;align-items:center!important;min-height:106px!important;width:100%!important;border:1px solid #213e47!important;border-radius:12px!important;background:#071116!important;padding:8px 9px!important}
.timeline-item .timeline-node{position:absolute!important;left:-20px!important;top:50%!important;transform:translate(-50%,-50%)!important;width:9px!important;height:9px!important;border-radius:50%!important;background:#8ef4ff!important;box-shadow:0 0 9px rgba(142,244,255,.42)!important;z-index:2!important}
.timeline-item:before{content:'';position:absolute;left:-16px;top:50%;width:16px;border-top:1px solid #426570}
.timeline-poster{width:70px!important}
.timeline-copy{min-width:0!important}
.timeline-copy>span{font-size:8px!important}.timeline-copy>strong{font-size:clamp(12px,3.4vw,16px)!important;line-height:1.2!important;white-space:normal!important}.timeline-copy>small{display:block;color:#66848c;font:700 7px/1.2 Oxanium,sans-serif;margin-top:5px}.timeline-copy>em{margin-top:7px!important}
.timeline-icons{justify-self:end!important;align-self:center!important}
@media(max-width:390px){.timeline-year-group{grid-template-columns:48px 16px minmax(0,1fr)!important}.timeline-item{grid-template-columns:60px minmax(0,1fr) auto!important;gap:7px!important;padding:7px!important}.timeline-poster{width:60px!important}.timeline-icons{display:flex!important;flex-direction:column!important;grid-column:auto!important}.timeline-section{padding-left:4px!important;padding-right:4px!important}}

/* RANDOM v2.5: carrusel rápido de pósters, sin ruleta circular y sin scroll necesario. */
.random-section{min-height:calc(100svh - 152px)!important;display:grid!important;grid-template-rows:auto auto minmax(0,1fr) auto!important;align-content:stretch!important;gap:8px!important;padding-top:10px!important;padding-bottom:10px!important;text-align:center!important;overflow:hidden!important}
.random-head h1{font-size:clamp(32px,9vw,44px)!important;margin:2px 0!important}
.random-filters{margin:4px 0!important}
.random-stage{min-height:0;display:grid;place-items:center;align-content:center;position:relative}
.random-poster-roll{width:min(43vw,170px);position:relative;transition:filter .15s ease,transform .15s ease}
.random-roll-card{position:relative;border:1px solid #355965;border-radius:11px;overflow:hidden;background:#071116;box-shadow:0 15px 38px rgba(0,0,0,.4)}
.random-roll-card img{display:block;width:100%;aspect-ratio:2/3;object-fit:cover}
.random-roll-card>span{display:grid;place-items:center;aspect-ratio:2/3;font:800 34px Oxanium,sans-serif}
.random-roll-card b{position:absolute;left:0;right:0;bottom:0;padding:7px 5px;background:linear-gradient(transparent,rgba(0,0,0,.9));font:800 8px/1 Oxanium,sans-serif;letter-spacing:.08em}
.random-poster-roll.rolling{filter:blur(.55px) brightness(1.12)}
.random-poster-roll.rolling .random-roll-card{animation:randomPosterTick .14s linear infinite}
@keyframes randomPosterTick{0%{transform:translateY(-4px) scale(.985);opacity:.72}50%{transform:translateY(3px) scale(1.015);opacity:1}100%{transform:translateY(-4px) scale(.985);opacity:.72}}
.random-poster-roll.winner{animation:randomWinnerV25 .72s cubic-bezier(.18,.9,.2,1) both}
@keyframes randomWinnerV25{0%{transform:scale(.82);filter:brightness(2.1);box-shadow:0 0 0 rgba(142,244,255,0)}35%{transform:scale(1.17) rotate(-1deg);filter:brightness(1.35);box-shadow:0 0 36px rgba(142,244,255,.6)}70%{transform:scale(1.05) rotate(.6deg)}100%{transform:scale(1);filter:none}}
.random-result-slot{position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:min(94vw,520px);pointer-events:none}
.random-result-v25{margin:0!important;max-width:none!important;border:1px solid #31535d;background:rgba(4,12,15,.96);border-radius:11px;padding:8px 10px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;text-align:left;pointer-events:auto}
.random-result-v25 h2{font-size:clamp(10px,2.8vw,14px)!important;margin:2px 0!important}.random-result-v25 p{margin:2px 0!important;font-size:9px}.random-result-v25 .random-actions{display:flex!important;gap:5px!important}.random-result-v25 .random-actions button{padding:8px 9px!important;font-size:7px!important;white-space:nowrap}
.random-result-slot.reward-in{animation:randomResultRewardV25 .7s cubic-bezier(.18,.9,.2,1) both}
@keyframes randomResultRewardV25{0%{opacity:0;transform:translate(-50%,18px) scale(.92)}55%{opacity:1;transform:translate(-50%,-4px) scale(1.03)}100%{transform:translate(-50%,0) scale(1)}}
.random-spin-btn{width:min(100%,420px)!important;margin:0 auto!important}

/* Intro: nunca mostrar texto de fallback por encima del vídeo. */
.intro-fallback{display:none!important}

@media(prefers-reduced-motion:reduce){.random-poster-roll.rolling .random-roll-card,.random-poster-roll.winner,.random-result-slot.reward-in{animation:none!important}.timeline-era-body{transition:none!important}}
.timeline-title h1{font-size:clamp(18px,5.6vw,28px)!important;line-height:1.08!important;max-width:100%!important}
.locked-inline-unlock{width:100%!important;margin-top:14px!important;padding-left:0!important;padding-right:0!important}
.locked-error-note{margin:10px auto;color:#ff9aa0;text-align:center;font-size:11px;max-width:520px}
/* Todos los TEASERS del proyecto son 9:16. */
.reader.teaser-reader .reader-media{width:min(100%,320px)!important;margin:24px auto!important}
.reader.teaser-reader .reader-media iframe,.reader.teaser-reader .reader-media video{width:100%!important;aspect-ratio:9/16!important;height:auto!important;max-height:none!important;object-fit:contain!important;background:#000!important;border-radius:12px!important}


/* ============================================================
   DISTURBING STORIES APP v2.6
   QR directo + teaser locked + header section cue + NEW gold + Timeline/Random
   ============================================================ */

/* Header · icono contextual, puramente informativo. */
.section-indicator{
  flex:0 0 38px;width:38px;height:38px;display:grid;place-items:center;
  border:1px solid #29444c;border-radius:9px;background:#081116;color:#b9eaf2;
  box-shadow:inset 0 0 12px rgba(142,244,255,.035);pointer-events:none;overflow:hidden;
}
.section-indicator>span{display:grid;place-items:center;width:100%;height:100%}
.section-indicator-home{font:700 28px/1 Arial,sans-serif;transform:translateY(-1px)}
.section-indicator-player{font:700 24px/1 Arial,sans-serif}
.section-indicator-grid{grid-template-columns:repeat(3,5px);grid-template-rows:repeat(3,5px);gap:2px}
.section-indicator-grid i{display:block;width:5px;height:5px;border-radius:1px;background:currentColor}
.section-indicator-books{display:flex!important;gap:2px!important;align-items:center!important;justify-content:center!important}
.section-indicator-books i{display:block;width:4px;height:21px;border:1.4px solid currentColor;border-radius:1px}
.section-indicator-watcher svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
.section-indicator-watcher .watcher-pupil{fill:currentColor;stroke:none}
.section-indicator-qr svg{width:24px;height:24px;fill:currentColor}
@media(max-width:390px){.section-indicator{flex-basis:34px;width:34px;height:34px}.topbar-left{gap:3px!important}.back-nav-btn{min-width:64px!important;max-width:68px!important}}

/* Stories bloqueadas · copy más grande y TEASER claramente fuera del scanner. */
.unlock-panel .scanner-instruction{max-width:620px!important;padding:17px 18px!important;border-color:#806b2c!important;background:linear-gradient(180deg,#151005,#0b0905)!important;box-shadow:inset 0 0 20px rgba(211,171,58,.04)!important}
.unlock-panel .scanner-instruction strong{font-size:clamp(15px,4.1vw,20px)!important;letter-spacing:.075em!important;margin-bottom:10px!important;color:#f4d46d!important;text-shadow:0 0 13px rgba(224,189,80,.16)}
.unlock-panel .scanner-instruction p{margin:0!important;color:#d7e2e5!important;font-size:clamp(11.5px,3.15vw,14px)!important;line-height:1.5!important;font-weight:600!important}
.unlock-panel .scanner-instruction.general-unlock p{font-size:clamp(14px,4vw,18px)!important;line-height:1.45!important;color:#f0d77e!important;font-family:Oxanium,sans-serif!important;font-weight:700!important}
.unlock-panel .scan-zone{position:relative!important;z-index:2!important;margin-bottom:0!important}
.unlock-panel .locked-teaser{display:block!important;clear:both!important;position:relative!important;z-index:1!important;margin:22px auto 0!important;width:min(100%,320px)!important;max-width:320px!important}
.locked-teaser-video{width:100%!important;aspect-ratio:9/16!important}
.locked-teaser-video iframe{width:100%!important;height:100%!important;aspect-ratio:9/16!important}

/* QR v2.7 · escáner live clásico Html5Qrcode restaurado para autodetección. */
.qr-reader-live{position:relative!important;aspect-ratio:1/1!important;min-height:0!important;background:#010506!important;overflow:hidden!important;border:1px solid #315965!important;box-shadow:inset 0 0 24px rgba(0,0,0,.65)!important}
.qr-live-video{display:block!important;width:100%!important;height:100%!important;object-fit:cover!important;object-position:center!important;background:#000!important}
.qr-live-overlay{position:absolute;inset:0;pointer-events:none;background:linear-gradient(transparent 49.6%,rgba(142,244,255,.2) 50%,transparent 50.4%);animation:qrSweepV26 2.1s linear infinite}
.qr-live-overlay i{position:absolute;width:34px;height:34px;border-color:#8ef4ff;border-style:solid;filter:drop-shadow(0 0 5px rgba(142,244,255,.42))}
.qr-live-overlay i:nth-child(1){left:13%;top:13%;border-width:2px 0 0 2px}.qr-live-overlay i:nth-child(2){right:13%;top:13%;border-width:2px 2px 0 0}.qr-live-overlay i:nth-child(3){left:13%;bottom:13%;border-width:0 0 2px 2px}.qr-live-overlay i:nth-child(4){right:13%;bottom:13%;border-width:0 2px 2px 0}
.qr-live-overlay span{position:absolute;left:14%;right:14%;top:50%;height:1px;background:#8ef4ff;box-shadow:0 0 8px rgba(142,244,255,.7);animation:qrLineV26 1.8s ease-in-out infinite alternate}
@keyframes qrLineV26{from{transform:translateY(-72px);opacity:.35}to{transform:translateY(72px);opacity:.95}}@keyframes qrSweepV26{from{background-position:0 -160px}to{background-position:0 160px}}

/* NEW · un único lenguaje dorado en bubble + marco de póster. */
.new-story-badge{background:#d7ad3a!important;color:#120e03!important;border:1px solid #ffe38a!important;box-shadow:0 0 12px rgba(224,181,63,.36)!important;text-shadow:none!important}
.story-thumb-wrap:has(.new-story-badge),.story-cover-card:has(.new-story-badge),.story-grid-poster:has(.new-story-badge),.story-featured:has(.new-story-badge),.media-collection-poster:has(.new-story-badge),.saga-part-poster:has(.new-story-badge){outline:2px solid #d8b243!important;outline-offset:-2px!important;box-shadow:0 0 0 1px rgba(255,225,119,.18),0 0 13px rgba(216,178,67,.16)!important}
.hero-story-media>.new-story-badge{left:50%!important;right:auto!important;top:9px!important;transform:translateX(-50%)!important;font-size:clamp(11px,3.3vw,15px)!important;padding:7px 13px!important;border-width:1px!important;box-shadow:0 0 14px rgba(224,181,63,.38)!important;animation:homeNewPulseV26 1.9s ease-in-out infinite!important}
@keyframes homeNewPulseV26{0%,100%{transform:translateX(-50%) scale(1);filter:brightness(1)}50%{transform:translateX(-50%) scale(1.08);filter:brightness(1.2);box-shadow:0 0 22px rgba(239,199,77,.5)}}

/* MULTIMEDIA · MICRO usa el mismo slot vertical del gamepad. */
.portal-btn.nightmares{gap:4px!important}
.nightmare-icon-slot{display:grid!important;place-items:center!important;width:35px!important;height:25px!important;flex:0 0 25px!important;margin:0!important}
.portal-btn.nightmares .nightmare-diamond{display:block!important;width:8px!important;height:8px!important;margin:0!important;transform:rotate(45deg)!important;border:1.2px solid currentColor!important}

/* Timeline v2.6 · años x2, copy mayor, sin repetir año y esquina verde en leídas. */
.timeline-year-group{grid-template-columns:82px 20px minmax(0,1fr)!important}
.timeline-year{font:800 clamp(16px,4.8vw,22px)/1 Oxanium,sans-serif!important;padding-right:7px!important;letter-spacing:-.035em!important}
.timeline-item{min-height:112px!important;grid-template-columns:72px minmax(0,1fr) auto!important;overflow:hidden!important}
.timeline-copy>span{font-size:10px!important;letter-spacing:.05em!important}.timeline-copy>strong{font-size:clamp(15px,4vw,19px)!important;line-height:1.18!important}.timeline-copy>small{display:none!important}.timeline-copy>em{display:block!important;font-size:9px!important;color:#91ffac!important;font-style:normal!important;font-weight:800!important;letter-spacing:.06em!important}
.timeline-item.timeline-read:after{content:'';position:absolute;left:0;bottom:0;width:0;height:0;border-style:solid;border-width:0 0 25px 25px;border-color:transparent transparent #2fa85b transparent;filter:drop-shadow(0 0 5px rgba(47,168,91,.24));z-index:3}
.timeline-order{font-size:clamp(10px,3vw,13px)!important;font-weight:800!important;letter-spacing:.1em!important}
@media(max-width:390px){.timeline-year-group{grid-template-columns:70px 18px minmax(0,1fr)!important}.timeline-year{font-size:16px!important}.timeline-item{grid-template-columns:60px minmax(0,1fr) auto!important}.timeline-copy>strong{font-size:14px!important}}

/* Ruleta Random v2.6 · filtros pegados al póster + FX + parada manual. */
.random-section{gap:0!important;grid-template-rows:auto auto minmax(0,1fr) auto!important}
.random-head h1{font-size:clamp(28px,8vw,42px)!important;margin:1px 0 4px!important}
.random-filters{margin:0!important;padding:0!important;position:relative;z-index:4}
.random-stage{align-content:start!important;padding-top:0!important;margin-top:0!important;overflow:visible!important}
.random-poster-roll{margin-top:0!important;z-index:3}
.random-energy{position:absolute;top:-7px;left:50%;width:min(60vw,230px);height:min(73vw,285px);transform:translateX(-50%);pointer-events:none;z-index:2;opacity:.72}
.random-energy:before,.random-energy:after{content:'';position:absolute;inset:6%;border:1px solid rgba(142,244,255,.22);border-radius:20px;animation:randomEnergyTurnV26 8s linear infinite}.random-energy:after{inset:13%;border-style:dashed;animation-direction:reverse;animation-duration:5.5s}
.random-energy i{position:absolute;width:5px;height:5px;border-radius:50%;background:#8ef4ff;box-shadow:0 0 9px rgba(142,244,255,.8);animation:randomSparkV26 2.4s ease-in-out infinite}.random-energy i:nth-child(1){left:3%;top:20%}.random-energy i:nth-child(2){right:4%;top:35%;animation-delay:.5s}.random-energy i:nth-child(3){left:8%;bottom:20%;animation-delay:1s}.random-energy i:nth-child(4){right:7%;bottom:9%;animation-delay:1.5s}.random-energy span,.random-energy b{position:absolute;left:0;right:0;top:50%;border-top:1px solid rgba(142,244,255,.22);transform:rotate(8deg)}.random-energy b{transform:rotate(-12deg);opacity:.5}
.random-energy.active{opacity:1;filter:drop-shadow(0 0 8px rgba(142,244,255,.22))}
.random-spin-btn.stop-mode{border-color:#e0bd50!important;color:#ffe598!important;background:#231a05!important;box-shadow:0 0 18px rgba(224,189,80,.18)!important}
@keyframes randomEnergyTurnV26{to{transform:rotate(360deg)}}@keyframes randomSparkV26{0%,100%{opacity:.18;transform:scale(.6)}50%{opacity:1;transform:scale(1.65)}}

@media(prefers-reduced-motion:reduce){.qr-live-overlay,.qr-live-overlay span,.hero-story-media>.new-story-badge,.random-energy:before,.random-energy:after,.random-energy i{animation:none!important}}


/* ============================================================
   DISTURBING STORIES APP v2.7
   teaser público + QR live clásico + header + Timeline + Random + HOME signal FX
   ============================================================ */

/* Stories bloqueadas: el TEASER es la única excepción multimedia pública. */
.locked-story-page>.locked-teaser{display:block!important;position:relative!important;z-index:1!important;clear:both!important;width:min(100%,320px)!important;max-width:320px!important;margin:22px auto 8px!important;padding:0!important}
.locked-inline-unlock{margin-bottom:0!important}.locked-inline-unlock .scan-zone{margin-bottom:0!important}
.locked-teaser .eyebrow{text-align:center!important;margin-bottom:9px!important;color:#d8b951!important}
.locked-teaser-video{position:relative!important;width:100%!important;aspect-ratio:9/16!important;overflow:hidden!important;border:1px solid #343027!important;border-radius:13px!important;background:#000!important;box-shadow:0 10px 30px rgba(0,0,0,.42)!important}
.locked-teaser-video iframe{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;border:0!important;display:block!important}

/* QR v2.7: Html5Qrcode vuelve a controlar directamente el vídeo live y la detección. */
.qr-reader-live{position:relative!important;width:min(100%,300px)!important;aspect-ratio:1/1!important;margin:0 auto 12px!important;min-height:0!important;background:#000!important;border:1px solid #315965!important;border-radius:12px!important;overflow:hidden!important;box-shadow:inset 0 0 22px rgba(0,0,0,.7)!important}
.qr-reader-live video{display:block!important;width:100%!important;height:100%!important;max-height:none!important;object-fit:cover!important;object-position:center!important;border:0!important;border-radius:0!important}
.qr-reader-live canvas{max-width:100%!important}
#qr-reader__scan_region{min-height:100%!important;background:#000!important}
#qr-reader__scan_region>img{display:none!important}
#qr-reader__dashboard,#qr-reader__dashboard_section{background:#05090b!important;color:#d9faff!important;border:0!important}
#qr-reader__dashboard_section_csr span,#qr-reader__dashboard_section_swaplink{color:#9ec8d1!important}

/* GAMES: único cambio solicitado, icono un poco menor. */
.portal-btn.games .gamepad-portal-svg{width:30px!important;height:21px!important}

/* Header: indicador contextual sin caja y con la altura visual del header. */
.section-indicator{flex:0 0 54px!important;width:54px!important;height:54px!important;display:grid!important;place-items:center!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;color:#c6f4fb!important;overflow:visible!important;padding:0!important;pointer-events:none!important}
.section-indicator>span{width:54px!important;height:54px!important;display:grid!important;place-items:center!important;align-content:center!important;justify-content:center!important;margin:0!important;padding:0!important;transform:none!important}
.section-indicator-grid{grid-template-columns:repeat(3,7px)!important;grid-template-rows:repeat(3,7px)!important;gap:3px!important;place-content:center!important;align-content:center!important;justify-content:center!important}
.section-indicator-grid i{width:7px!important;height:7px!important;margin:0!important}
.section-indicator-home{font-size:37px!important}.section-indicator-player{font-size:33px!important}
.section-indicator-books i{height:32px!important;width:5px!important}.section-indicator-books{gap:3px!important}
.section-indicator-watcher svg{width:40px!important;height:40px!important}.section-indicator-qr svg{width:36px!important;height:36px!important}
@media(max-width:390px){.section-indicator{flex-basis:50px!important;width:50px!important;height:54px!important}.section-indicator>span{width:50px!important;height:54px!important}.back-nav-btn{min-width:64px!important;max-width:68px!important}}

/* Timeline v2.7: esfera anual azul, grupos por año más legibles y años x2. */
.timeline-year-group{grid-template-columns:minmax(118px,148px) 32px minmax(0,1fr)!important;gap:7px!important;margin:10px 0 24px!important;position:relative!important}
.timeline-year{font:800 clamp(32px,9.4vw,44px)/.92 Oxanium,sans-serif!important;letter-spacing:-.065em!important;padding:0 8px 0 0!important;justify-content:flex-end!important;align-items:center!important;color:#cff8ff!important;text-shadow:0 0 12px rgba(88,200,255,.18)!important}
.timeline-year-axis{grid-column:2!important;position:relative!important;min-height:100%!important}
.timeline-year-axis:before{content:''!important;position:absolute!important;left:50%!important;top:-22px!important;bottom:-22px!important;border-left:2px solid #345a66!important;transform:translateX(-50%)!important;z-index:0!important}
.timeline-year-axis:after{content:''!important;position:absolute!important;left:50%!important;top:50%!important;width:17px!important;height:17px!important;border-radius:50%!important;transform:translate(-50%,-50%)!important;background:#58c8ff!important;border:2px solid #d4f5ff!important;box-shadow:0 0 14px rgba(88,200,255,.65)!important;z-index:3!important}
.timeline-year-axis i{position:absolute!important;left:50%!important;right:-20px!important;top:50%!important;border-top:2px solid #426b77!important;z-index:1!important}
.timeline-items{grid-column:3!important;position:relative!important;padding:6px 0 6px 18px!important;gap:10px!important}
.timeline-multi .timeline-items:before{content:'';position:absolute;left:0;top:56px;bottom:56px;border-left:2px solid #426b77;z-index:0}
.timeline-item{position:relative!important;min-height:116px!important;grid-template-columns:76px minmax(0,1fr) auto!important;border-color:#264953!important}
.timeline-item .timeline-node{left:-18px!important;width:11px!important;height:11px!important;border:2px solid #c9f2ff!important;background:#58c8ff!important;box-shadow:0 0 10px rgba(88,200,255,.5)!important;z-index:3!important}
.timeline-item:before{content:'';position:absolute;left:-18px;top:50%;width:18px;border-top:2px solid #426b77;z-index:1}
.timeline-copy>span{font-size:11px!important}.timeline-copy>strong{font-size:clamp(17px,4.6vw,22px)!important;line-height:1.15!important}.timeline-copy>em{font-size:10px!important}
.timeline-item.timeline-read:after{content:''!important;position:absolute!important;left:0!important;bottom:0!important;width:36px!important;height:36px!important;background:#18b85a!important;clip-path:polygon(0 0,0 100%,100% 100%)!important;border:0!important;filter:drop-shadow(1px -1px 4px rgba(0,0,0,.42))!important;z-index:3!important}
@media(max-width:470px){.timeline-year-group{grid-template-columns:92px 26px minmax(0,1fr)!important;gap:4px!important}.timeline-year{font-size:30px!important;padding-right:4px!important}.timeline-item{grid-template-columns:64px minmax(0,1fr) auto!important;padding:9px!important;gap:9px!important}.timeline-copy>strong{font-size:16px!important}.timeline-icons{gap:5px!important}.timeline-icon{width:28px!important;height:28px!important}}

/* Ruleta Random v2.7: 10px filtro→poster, 10px poster→botón, resultado debajo. */
.random-section{display:flex!important;flex-direction:column!important;min-height:calc(100svh - var(--topbar-base) - var(--bottomnav-base) - var(--top-safe) - var(--bottom-safe))!important;gap:0!important;overflow:hidden!important}
.random-filters{margin:0 0 10px!important;padding:0!important;flex:0 0 auto!important}
.random-stage{display:grid!important;place-items:center!important;align-content:center!important;flex:1 1 auto!important;min-height:0!important;margin:0 0 10px!important;padding:0!important;position:relative!important;overflow:visible!important}
.random-poster-roll{margin:0!important}
.random-spin-btn{flex:0 0 auto!important;width:min(100%,420px)!important;min-height:64px!important;margin:0 auto!important;padding:8px 14px!important;font-family:Impact,Haettenschweiler,'Arial Narrow Bold','Arial Black',sans-serif!important;font-weight:400!important;font-size:clamp(23px,7.2vw,34px)!important;line-height:.92!important;letter-spacing:.025em!important}
.random-result-slot{position:relative!important;left:auto!important;bottom:auto!important;transform:none!important;width:min(100%,520px)!important;margin:10px auto 0!important;pointer-events:auto!important;flex:0 0 auto!important}
.random-result-v25{grid-template-columns:minmax(0,1fr) minmax(120px,42%)!important;padding:10px 11px!important;gap:10px!important}
.random-result-v25 h2{font-size:clamp(12px,3.4vw,16px)!important;line-height:1.1!important}.random-result-v25 p{display:flex!important;flex-wrap:wrap!important;gap:7px!important;margin:5px 0 0!important;font-size:9px!important}.random-result-v25 p span+span{padding-left:7px;border-left:1px solid #31535d;color:#a9d8e2!important}
.random-result-v25 .random-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:6px!important}.random-result-v25 .random-actions button{min-height:48px!important;padding:6px 5px!important;font-size:9px!important;line-height:1.08!important;white-space:normal!important}

/* HOME · FX12/Opción 4/Sweep limpio completo: señal maldita, limpia y rápida. */
.hero.latest-storm .hero-media>.hero-main-image{object-fit:contain!important;object-position:center center!important;transform-origin:center center!important;animation:homeSignalDriftV27 7.2s ease-in-out infinite alternate!important;filter:brightness(.9) contrast(1.08)!important;will-change:transform,filter!important}
.hero.latest-storm .hero-media>.hero-backdrop{opacity:.35!important;filter:blur(13px) brightness(.46) contrast(1.08)!important;animation:homeSignalBackdropV27 9s ease-in-out infinite alternate!important}
.home-signal-fx{position:absolute;inset:0;z-index:2;overflow:hidden;pointer-events:none;isolation:isolate}
.home-signal-fx>span{position:absolute;inset:0;pointer-events:none}
.signal-darken{z-index:1;background:rgba(0,0,0,.12)}
.signal-scanlines{z-index:3;opacity:.22;background:repeating-linear-gradient(180deg,rgba(255,255,255,.06) 0 1px,transparent 1px 4px);mix-blend-mode:soft-light}
.signal-noise{z-index:4;opacity:.09;background-image:radial-gradient(circle at 15% 25%,#fff 0 .6px,transparent .8px),radial-gradient(circle at 72% 68%,#fff 0 .55px,transparent .8px),radial-gradient(circle at 40% 82%,#fff 0 .45px,transparent .7px);background-size:7px 9px,9px 7px,11px 10px;animation:signalNoiseV27 .16s steps(2,end) infinite}
.signal-tracking{z-index:5;top:-24%!important;height:18%!important;inset-inline:0!important;background:linear-gradient(180deg,transparent,rgba(218,236,240,.11) 35%,rgba(255,255,255,.18) 50%,rgba(218,236,240,.08) 68%,transparent);filter:blur(.4px);animation:signalTrackingV27 2.4s linear infinite}
.signal-ghost{z-index:2;opacity:.16;mix-blend-mode:screen;background-size:100% 100%}
.signal-ghost-red{box-shadow:inset 3px 0 0 rgba(255,30,45,.14);transform:translateX(2px)}
.signal-ghost-cold{box-shadow:inset -3px 0 0 rgba(190,235,255,.13);transform:translateX(-2px)}
.signal-slice{z-index:6;inset:auto 0!important;height:2px!important;background:rgba(230,248,255,.22);opacity:0;mix-blend-mode:screen}
.signal-slice-a{top:34%!important;animation:signalSliceAV27 2.7s steps(1,end) infinite}.signal-slice-b{top:61%!important;animation:signalSliceBV27 3.8s .4s steps(1,end) infinite}
.signal-sweep{z-index:8;top:0!important;bottom:0!important;right:auto!important;width:14px!important;inset-inline-start:auto!important;filter:blur(.5px);opacity:0;will-change:transform,opacity}
.signal-sweep-red{left:-42px!important;background:linear-gradient(90deg,transparent,rgba(255,28,42,.42) 25%,rgba(255,45,58,.98) 50%,rgba(255,45,58,.38) 75%,transparent);box-shadow:0 0 18px rgba(255,28,42,.42);animation:signalSweepRedV27 4.2s cubic-bezier(.32,.02,.2,1) infinite}
.signal-sweep-white{left:-42px!important;background:linear-gradient(90deg,transparent,rgba(230,248,255,.38) 25%,rgba(255,255,255,.98) 50%,rgba(210,241,255,.34) 75%,transparent);box-shadow:0 0 18px rgba(230,248,255,.46);animation:signalSweepWhiteV27 4.2s .82s cubic-bezier(.32,.02,.2,1) infinite}
.signal-red-pulse{z-index:7;top:52%!important;bottom:auto!important;height:1px!important;background:linear-gradient(90deg,transparent,rgba(255,37,47,.92) 18%,rgba(255,37,47,.42) 68%,transparent);opacity:.28;animation:signalRedPulseV27 2.1s ease-in-out infinite}
.signal-vignette{z-index:9;background:radial-gradient(ellipse at center,transparent 46%,rgba(0,0,0,.16) 70%,rgba(0,0,0,.58) 100%)}
@keyframes homeSignalDriftV27{0%{transform:scale(1.01) translate3d(-.35%,.2%,0)}45%{transform:scale(1.018) translate3d(.4%,-.25%,0)}100%{transform:scale(1.012) translate3d(-.15%,.35%,0)}}
@keyframes homeSignalBackdropV27{from{transform:scale(1.09) translate3d(-.6%,0,0)}to{transform:scale(1.12) translate3d(.7%,-.4%,0)}}
@keyframes signalNoiseV27{0%{transform:translate(0,0)}25%{transform:translate(1px,-1px)}50%{transform:translate(-1px,1px)}75%{transform:translate(1px,1px)}100%{transform:translate(-1px,-1px)}}
@keyframes signalTrackingV27{from{transform:translateY(-110%);opacity:.2}35%{opacity:.65}to{transform:translateY(720%);opacity:.12}}
@keyframes signalSliceAV27{0%,84%,100%{opacity:0;transform:translateX(0)}85%{opacity:.7;transform:translateX(6px)}86%{opacity:.16;transform:translateX(-3px)}87%{opacity:0}}
@keyframes signalSliceBV27{0%,62%,100%{opacity:0;transform:translateX(0)}63%{opacity:.45;transform:translateX(-7px)}64%{opacity:.12;transform:translateX(3px)}65%{opacity:0}}
@keyframes signalSweepRedV27{0%,8%{transform:translateX(0);opacity:0}10%{opacity:.95}34%{transform:translateX(calc(100vw + 90px));opacity:.95}36%,100%{transform:translateX(calc(100vw + 90px));opacity:0}}
@keyframes signalSweepWhiteV27{0%,8%{transform:translateX(0);opacity:0}10%{opacity:.9}34%{transform:translateX(calc(100vw + 90px));opacity:.9}36%,100%{transform:translateX(calc(100vw + 90px));opacity:0}}
@keyframes signalRedPulseV27{0%,100%{opacity:.12;transform:scaleX(.72)}48%{opacity:.38;transform:scaleX(1)}}
@media(prefers-reduced-motion:reduce){.hero.latest-storm .hero-media>.hero-main-image,.hero.latest-storm .hero-media>.hero-backdrop,.signal-noise,.signal-tracking,.signal-slice,.signal-sweep,.signal-red-pulse{animation:none!important}.signal-sweep{display:none!important}}


/* v2.7 final polish: delimitar grupos del mismo año y ghosting real de borde. */
.timeline-multi .timeline-items{padding-top:14px!important;padding-bottom:14px!important;background:linear-gradient(90deg,rgba(71,154,178,.07),transparent 42%)!important;border-top:1px solid rgba(83,157,177,.24)!important;border-bottom:1px solid rgba(83,157,177,.24)!important}
.timeline-multi .timeline-items:after{content:'';position:absolute;left:0;top:14px;width:13px;border-top:2px solid #426b77;pointer-events:none}
.hero.latest-storm .hero-media>.hero-main-image{filter:brightness(.9) contrast(1.08) drop-shadow(2px 0 0 rgba(255,35,48,.10)) drop-shadow(-2px 0 0 rgba(205,240,255,.09))!important}


/* ============================================================
   DISTURBING STORIES APP v2.8
   teaser bloqueado · QR live híbrido · header · timeline · random · HOME
   ============================================================ */

/* Story bloqueada: el TEASER sustituye físicamente al póster superior. */
.locked-story-page>.locked-hero-teaser{display:block!important;width:min(100%,520px)!important;max-width:520px!important;margin:0 auto 16px!important;padding:0!important;position:relative!important;z-index:1!important}
.locked-story-page>.locked-hero-teaser .locked-teaser-video{width:min(100%,calc(68svh * 9 / 16))!important;max-width:100%!important;aspect-ratio:9/16!important;margin:0 auto!important;border-radius:12px!important;border:1px solid #343027!important;overflow:hidden!important;background:#000!important;position:relative!important;box-shadow:0 10px 30px rgba(0,0,0,.42)!important}
.locked-story-page>.locked-hero-teaser iframe{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;border:0!important;display:block!important}
.locked-story-page>.locked-hero-teaser.teaser-unavailable .teaser-placeholder{display:grid!important;place-items:center!important;text-align:center!important;padding:24px!important;color:#d8b951!important}
.locked-story-page>.locked-hero-teaser.teaser-unavailable .teaser-placeholder span{font:900 22px/1 Oxanium,sans-serif!important;letter-spacing:.15em!important}.locked-story-page>.locked-hero-teaser.teaser-unavailable .teaser-placeholder small{max-width:280px;color:#7d7460;font-size:9px;line-height:1.5}

/* QR v2.8: vídeo nativo visible + autodetección continua. */
.qr-reader-live{position:relative!important;width:min(100%,300px)!important;aspect-ratio:1/1!important;margin:0 auto 12px!important;min-height:0!important;background:#000!important;border:1px solid #315965!important;border-radius:12px!important;overflow:hidden!important;box-shadow:inset 0 0 22px rgba(0,0,0,.7)!important}
.qr-live-video{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:cover!important;object-position:center!important;background:#000!important;display:block!important}
.qr-live-canvas{position:absolute!important;width:1px!important;height:1px!important;opacity:.001!important;pointer-events:none!important;left:-10px!important;top:-10px!important}
.qr-live-overlay{position:absolute!important;inset:11%!important;z-index:5!important;pointer-events:none!important}
.qr-live-overlay i{position:absolute;width:28px;height:28px;border-color:#b9f6ff;border-style:solid;filter:drop-shadow(0 0 6px rgba(142,244,255,.45))}.qr-live-overlay i:nth-child(1){left:0;top:0;border-width:2px 0 0 2px}.qr-live-overlay i:nth-child(2){right:0;top:0;border-width:2px 2px 0 0}.qr-live-overlay i:nth-child(3){left:0;bottom:0;border-width:0 0 2px 2px}.qr-live-overlay i:nth-child(4){right:0;bottom:0;border-width:0 2px 2px 0}.qr-live-overlay span{position:absolute;left:4%;right:4%;top:50%;height:1px;background:linear-gradient(90deg,transparent,#8ef4ff,transparent);box-shadow:0 0 8px rgba(142,244,255,.4);animation:qrScanLineV28 1.5s ease-in-out infinite alternate}
@keyframes qrScanLineV28{from{transform:translateY(-74px);opacity:.4}to{transform:translateY(74px);opacity:1}}

/* Header: iconografía contextual sin caja y copiada de la semántica real de cada sección. */
.section-indicator{border:0!important;background:transparent!important;box-shadow:none!important;overflow:visible!important}
.section-indicator-collection{display:grid!important;grid-template-columns:repeat(4,6px)!important;grid-template-rows:32px!important;gap:3px!important;place-content:center!important;align-content:center!important;justify-content:center!important}
.section-indicator-collection i{display:block!important;width:6px!important;height:32px!important;border-radius:2px!important;background:currentColor!important;margin:0!important;padding:0!important}
.section-indicator-saga,.section-indicator-random,.section-indicator-extras{font:800 34px/1 Oxanium,sans-serif!important}
.section-indicator-timeline .timeline-portal-svg{width:42px!important;height:24px!important;fill:none!important;stroke:currentColor!important;stroke-width:2!important}
.section-indicator-cassette .media-feature-svg,.section-indicator-tape .media-feature-svg{width:39px!important;height:39px!important;fill:none!important;stroke:currentColor!important;stroke-width:1.8!important}
.section-indicator-cassette{color:#70ff9c!important}.section-indicator-tape{color:#66cfff!important}
.section-indicator-games .gamepad-portal-svg{width:42px!important;height:31px!important;fill:none!important;stroke:currentColor!important;stroke-width:1.9!important}
.section-indicator-micro .nightmare-diamond{display:block!important;width:29px!important;height:29px!important;transform:rotate(45deg)!important;border:2px solid #ff8590!important;background:linear-gradient(135deg,#190508,#3a0a10)!important;box-shadow:0 0 11px rgba(255,90,104,.28)!important}

/* Timeline: eje general más a la izquierda, ramales visibles y cifras respirando. */
.timeline-year-group{grid-template-columns:minmax(96px,116px) 20px minmax(0,1fr)!important;column-gap:0!important;margin:10px 0 24px!important}
.timeline-year{font-size:clamp(34px,10vw,46px)!important;letter-spacing:.025em!important;padding:0 8px 0 0!important;justify-content:flex-end!important;font-variant-numeric:tabular-nums!important}
.timeline-year-axis{grid-column:2!important}
.timeline-year-axis:before{left:50%!important;border-left-width:2px!important}
.timeline-year-axis:after{width:18px!important;height:18px!important}
.timeline-year-axis i{left:50%!important;right:-34px!important;width:auto!important}
.timeline-items{grid-column:3!important;margin-left:28px!important;padding-left:34px!important;overflow:visible!important}
.timeline-item .timeline-node{left:-34px!important}
.timeline-item:before{left:-34px!important;width:34px!important}
.timeline-multi .timeline-items:before{left:-34px!important;top:58px!important;bottom:58px!important;border-left:2px solid #426b77!important}
.timeline-multi .timeline-items:after{left:-34px!important;width:34px!important}
@media(max-width:470px){.timeline-year-group{grid-template-columns:82px 18px minmax(0,1fr)!important}.timeline-year{font-size:33px!important;letter-spacing:.02em!important}.timeline-items{margin-left:18px!important;padding-left:28px!important}.timeline-item .timeline-node{left:-28px!important}.timeline-item:before{left:-28px!important;width:28px!important}.timeline-multi .timeline-items:before{left:-28px!important}.timeline-multi .timeline-items:after{left:-28px!important;width:28px!important}}

/* Ruleta: poster inmediatamente debajo de filtros; mantiene 10px hasta GIRAR RANDOM. */
.random-filters{margin-bottom:1px!important}
.random-stage{flex:0 0 auto!important;min-height:0!important;align-content:start!important;place-items:center!important;margin:0 0 10px!important;padding:0!important}
.random-poster-roll{margin-top:0!important;transform:none!important}

/* HOME v2.8: sin sweeps, imagen completa, wiggle y separación RGB real. */
.signal-sweep,.signal-sweep-red,.signal-sweep-white{display:none!important;animation:none!important}
.hero.latest-storm .hero-media>.hero-main-image,.hero.latest-storm .hero-media>.hero-rgb-ghost{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:contain!important;object-position:center center!important;transform-origin:center center!important}
.hero.latest-storm .hero-media>.hero-main-image{z-index:2!important;animation:homeDynamicV28 3.2s steps(1,end) infinite!important;filter:brightness(.93) contrast(1.1) saturate(1.05)!important;will-change:transform,filter!important}
.hero.latest-storm .hero-media>.hero-rgb-ghost{z-index:1!important;pointer-events:none!important;opacity:0;mix-blend-mode:screen!important;will-change:transform,opacity,filter!important}
.hero.latest-storm .hero-media>.hero-rgb-red{filter:sepia(1) saturate(8) hue-rotate(316deg) brightness(.8)!important;animation:rgbRedV28 2.3s steps(1,end) infinite!important}
.hero.latest-storm .hero-media>.hero-rgb-cyan{filter:sepia(1) saturate(7) hue-rotate(132deg) brightness(.86)!important;animation:rgbCyanV28 2.3s .04s steps(1,end) infinite!important}
.hero.latest-storm .hero-media>.hero-backdrop{inset:-3%!important;width:106%!important;height:106%!important;object-fit:cover!important;opacity:.46!important;filter:blur(12px) brightness(.48) contrast(1.12)!important;animation:homeBackdropV28 5.8s ease-in-out infinite alternate!important}
@keyframes homeDynamicV28{0%,12%,100%{transform:scale(.997) translate3d(0,0,0)}13%{transform:scale(.997) translate3d(.5%,-.2%,0)}14%{transform:scale(.997) translate3d(-.35%,.25%,0)}15%,46%{transform:scale(.997) translate3d(.1%,0,0)}47%{transform:scale(.997) translate3d(-.55%,.2%,0)}48%{transform:scale(.997) translate3d(.45%,-.15%,0)}49%,76%{transform:scale(.997) translate3d(0,.1%,0)}77%{transform:scale(.997) translate3d(.38%,-.22%,0)}78%{transform:scale(.997) translate3d(-.3%,.18%,0)}79%{transform:scale(.997) translate3d(.15%,0,0)}}
@keyframes rgbRedV28{0%,10%,100%{opacity:.04;transform:scale(.997) translateX(1px)}11%{opacity:.28;transform:scale(.997) translateX(5px)}12%{opacity:.12;transform:scale(.997) translateX(2px)}43%{opacity:.04}44%{opacity:.24;transform:scale(.997) translateX(4px)}45%{opacity:.07;transform:scale(.997) translateX(1px)}76%{opacity:.04}77%{opacity:.2;transform:scale(.997) translateX(3px)}78%{opacity:.05}}
@keyframes rgbCyanV28{0%,10%,100%{opacity:.04;transform:scale(.997) translateX(-1px)}11%{opacity:.25;transform:scale(.997) translateX(-5px)}12%{opacity:.1;transform:scale(.997) translateX(-2px)}43%{opacity:.04}44%{opacity:.22;transform:scale(.997) translateX(-4px)}45%{opacity:.06;transform:scale(.997) translateX(-1px)}76%{opacity:.04}77%{opacity:.18;transform:scale(.997) translateX(-3px)}78%{opacity:.05}}
@keyframes homeBackdropV28{from{transform:scale(1.01) translate3d(-.35%,.15%,0)}to{transform:scale(1.025) translate3d(.4%,-.25%,0)}}
/* NEW sigue dorado en listados, pero la primera media dentro de una Story nunca recibe marco dorado. */
.story-featured:has(.new-story-badge){outline:none!important;box-shadow:none!important}
@media(prefers-reduced-motion:reduce){.qr-live-overlay span,.hero.latest-storm .hero-media>.hero-main-image,.hero.latest-storm .hero-media>.hero-rgb-ghost,.hero.latest-storm .hero-media>.hero-backdrop{animation:none!important}.hero.latest-storm .hero-media>.hero-rgb-ghost{display:none!important}}
/* v2.8 final: GAMES un paso más pequeño que en v2.7, sin tocar el resto del bloque MULTIMEDIA. */
.portal-btn.games .gamepad-portal-svg{width:26px!important;height:18px!important}


/* ============================================================
   DISTURBING STORIES APP v2.9
   QR live visible · Timeline safety · Random result entrance · HOME full-height
   ============================================================ */
/* QR: el vídeo generado por html5-qrcode debe ocupar físicamente todo el monitor. */
.qr-reader-live{display:block!important;position:relative!important;background:#020202!important;isolation:isolate!important}
.qr-reader-live video,#qr-reader video{position:absolute!important;inset:0!important;z-index:2!important;display:block!important;visibility:visible!important;opacity:1!important;width:100%!important;height:100%!important;min-width:100%!important;min-height:100%!important;max-height:none!important;object-fit:cover!important;background:#000!important;transform:translateZ(0)!important;-webkit-transform:translateZ(0)!important}
#qr-reader__scan_region{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;min-height:100%!important;z-index:2!important;background:transparent!important;overflow:hidden!important}
#qr-reader__dashboard{position:absolute!important;left:0!important;right:0!important;bottom:0!important;z-index:5!important;background:linear-gradient(transparent,rgba(0,0,0,.82))!important}

/* Timeline: margen de seguridad real para que ningún año toque/corte el borde izquierdo. */
.timeline-section{padding-left:12px!important;padding-right:8px!important}
.timeline-list{padding-left:4px!important}
@media(max-width:470px){.timeline-section{padding-left:10px!important}.timeline-list{padding-left:2px!important}.timeline-year{padding-left:2px!important}}

/* RANDOM: el resultado sube dinámicamente desde la parte inferior de la pantalla. */
.random-result-slot.reward-in{animation:randomResultRiseV29 .72s cubic-bezier(.16,.86,.22,1.08) both!important;transform-origin:center bottom!important}
@keyframes randomResultRiseV29{0%{opacity:0;transform:translate3d(0,min(54vh,430px),0) scale(.92);filter:blur(6px)}55%{opacity:1;transform:translate3d(0,-10px,0) scale(1.018);filter:blur(0)}78%{transform:translate3d(0,4px,0) scale(.995)}100%{opacity:1;transform:translate3d(0,0,0) scale(1);filter:none}}

/* HOME: la media empieza detrás del HEADER y usa toda la altura superior disponible. */
.view.home-view{padding-top:0!important}
.view.home-view>.hero.latest-storm{min-height:calc(100svh - var(--bottomnav-base) - var(--bottom-safe))!important;padding-top:calc(var(--topbar-base) + var(--top-safe) + 18px)!important}
.view.home-view>.hero.latest-storm .hero-media{inset:0!important}
.hero.latest-storm .hero-media>.hero-main-image,.hero.latest-storm .hero-media>.hero-rgb-ghost{object-fit:contain!important;object-position:center top!important}
.hero.latest-storm .hero-media>.hero-main-image{animation:homeDynamicV29 2.65s steps(1,end) infinite!important;filter:brightness(.94) contrast(1.12) saturate(1.08)!important}
.hero.latest-storm .hero-media>.hero-rgb-red{animation:rgbRedV29 1.72s steps(1,end) infinite!important}
.hero.latest-storm .hero-media>.hero-rgb-cyan{animation:rgbCyanV29 1.72s .035s steps(1,end) infinite!important}
@keyframes homeDynamicV29{0%,8%,100%{transform:translate3d(0,0,0)}9%{transform:translate3d(.22%,-.10%,0)}10%{transform:translate3d(-.18%,.08%,0)}11%,33%{transform:translate3d(.04%,0,0)}34%{transform:translate3d(-.28%,.12%,0)}35%{transform:translate3d(.24%,-.10%,0)}36%,64%{transform:translate3d(0,.05%,0)}65%{transform:translate3d(.20%,-.12%,0)}66%{transform:translate3d(-.17%,.09%,0)}67%,82%{transform:translate3d(.03%,0,0)}83%{transform:translate3d(-.24%,.08%,0)}84%{transform:translate3d(.18%,-.07%,0)}}
@keyframes rgbRedV29{0%,13%,100%{opacity:.035;transform:translateX(1px)}14%{opacity:.34;transform:translateX(7px)}15%{opacity:.13;transform:translateX(2px)}46%{opacity:.04;transform:translateX(1px)}47%{opacity:.28;transform:translateX(6px)}48%{opacity:.08;transform:translateX(1px)}77%{opacity:.04}78%{opacity:.25;transform:translateX(5px)}79%{opacity:.05}}
@keyframes rgbCyanV29{0%,13%,100%{opacity:.035;transform:translateX(-1px)}14%{opacity:.31;transform:translateX(-7px)}15%{opacity:.12;transform:translateX(-2px)}46%{opacity:.04;transform:translateX(-1px)}47%{opacity:.26;transform:translateX(-6px)}48%{opacity:.07;transform:translateX(-1px)}77%{opacity:.04}78%{opacity:.23;transform:translateX(-5px)}79%{opacity:.05}}
@media(prefers-reduced-motion:reduce){.random-result-slot.reward-in,.hero.latest-storm .hero-media>.hero-main-image,.hero.latest-storm .hero-media>.hero-rgb-ghost{animation:none!important}}


/* ============================================================
   DISTURBING STORIES APP v2.10
   Header safe-zone · QR classic live · HOME overscan RGB/VHS
   ============================================================ */
/* REGLA GLOBAL: el HEADER nunca puede cubrir contenido navegable. */
html{scroll-padding-top:calc(var(--topbar-base) + var(--top-safe) + 8px)!important}
.view,.view.home-view{padding-top:calc(var(--topbar-base) + var(--top-safe))!important}
.section,.story-header,.unlock-panel,.timeline-section,.random-section,.player-section,.collection-section{scroll-margin-top:calc(var(--topbar-base) + var(--top-safe) + 8px)!important}
.view.home-view>.hero.latest-storm{
  min-height:calc(100svh - var(--topbar-base) - var(--top-safe) - var(--bottomnav-base) - var(--bottom-safe))!important;
  padding-top:clamp(24px,6vw,36px)!important;
}
.view.home-view>.hero.latest-storm .hero-media{inset:0!important}

/* QR v2.10: restauración visual del visor simple de las primeras versiones.
   No posicionar ni transformar el <video> que crea html5-qrcode: Safari debe
   poder gestionar sus dimensiones naturales y la reproducción inline. */
.qr-reader,#qr-reader{
  width:100%!important;
  min-height:280px!important;
  aspect-ratio:auto!important;
  position:relative!important;
  display:block!important;
  overflow:hidden!important;
  background:#050505!important;
  border:1px solid #292929!important;
  border-radius:16px!important;
  isolation:auto!important;
}
.qr-reader video,#qr-reader video{
  position:static!important;
  inset:auto!important;
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  width:100%!important;
  height:auto!important;
  min-width:0!important;
  min-height:0!important;
  max-width:100%!important;
  max-height:58svh!important;
  object-fit:cover!important;
  transform:none!important;
  -webkit-transform:none!important;
  background:#050505!important;
}
#qr-reader__scan_region{
  position:relative!important;
  inset:auto!important;
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  overflow:hidden!important;
  background:#050505!important;
}
#qr-reader__dashboard{position:relative!important;inset:auto!important;background:#080808!important;z-index:auto!important}
#qr-reader img{max-width:100%!important}

/* HOME v2.10: overscan real. La imagen empieza DESPUÉS del header, llena
   toda la zona y conserva proporción. El margen extra absorbe el wiggle. */
.hero.latest-storm .hero-media{overflow:hidden!important;background:#020305!important}
.hero.latest-storm .hero-media>.hero-main-image,
.hero.latest-storm .hero-media>.hero-rgb-ghost{
  inset:-7%!important;
  width:114%!important;
  height:114%!important;
  object-fit:cover!important;
  object-position:center center!important;
  transform-origin:center center!important;
}
.hero.latest-storm .hero-media>.hero-main-image{
  z-index:2!important;
  animation:homeDynamicV210 2.35s steps(1,end) infinite!important;
  filter:brightness(.95) contrast(1.14) saturate(1.09)!important;
  will-change:transform,filter!important;
}
.hero.latest-storm .hero-media>.hero-rgb-ghost{z-index:1!important;mix-blend-mode:screen!important;pointer-events:none!important;will-change:transform,opacity,filter!important}
.hero.latest-storm .hero-media>.hero-rgb-red{animation:rgbRedV210 1.42s steps(1,end) infinite!important;filter:sepia(1) saturate(9) hue-rotate(310deg) brightness(.82) contrast(1.12)!important}
.hero.latest-storm .hero-media>.hero-rgb-cyan{animation:rgbCyanV210 1.42s .035s steps(1,end) infinite!important;filter:sepia(1) saturate(8) hue-rotate(128deg) brightness(.9) contrast(1.1)!important}
.hero.latest-storm .hero-media>.hero-backdrop{inset:-10%!important;width:120%!important;height:120%!important;object-fit:cover!important;opacity:.46!important;filter:blur(14px) brightness(.46) contrast(1.14)!important;animation:homeBackdropV210 4.4s ease-in-out infinite alternate!important}
@keyframes homeDynamicV210{
  0%,7%,100%{transform:scale(1.025) translate3d(0,0,0);filter:brightness(.95) contrast(1.14) saturate(1.09)}
  8%{transform:scale(1.03) translate3d(.75%,-.32%,0);filter:brightness(1.04) contrast(1.22) saturate(1.14)}
  9%{transform:scale(1.025) translate3d(-.58%,.28%,0)}
  10%,29%{transform:scale(1.027) translate3d(.12%,0,0)}
  30%{transform:scale(1.032) translate3d(-.86%,.34%,0);filter:brightness(.9) contrast(1.3) saturate(1.18)}
  31%{transform:scale(1.027) translate3d(.68%,-.22%,0)}
  32%,54%{transform:scale(1.026) translate3d(0,.1%,0)}
  55%{transform:scale(1.034) translate3d(.92%,-.4%,0);filter:brightness(1.06) contrast(1.25) saturate(1.16)}
  56%{transform:scale(1.026) translate3d(-.7%,.3%,0)}
  57%,78%{transform:scale(1.028) translate3d(.08%,0,0)}
  79%{transform:scale(1.033) translate3d(-.8%,.24%,0);filter:brightness(.92) contrast(1.28) saturate(1.2)}
  80%{transform:scale(1.027) translate3d(.63%,-.18%,0)}
  81%{transform:scale(1.026) translate3d(-.12%,.08%,0)}
}
@keyframes rgbRedV210{
  0%,11%,100%{opacity:.045;transform:scale(1.025) translate3d(2px,0,0)}
  12%{opacity:.42;transform:scale(1.03) translate3d(10px,-1px,0)}
  13%{opacity:.16;transform:scale(1.026) translate3d(4px,1px,0)}
  38%{opacity:.05;transform:scale(1.025) translateX(2px)}
  39%{opacity:.34;transform:scale(1.03) translate3d(8px,1px,0)}
  40%{opacity:.08;transform:scale(1.026) translateX(3px)}
  70%{opacity:.045}
  71%{opacity:.38;transform:scale(1.03) translate3d(9px,-1px,0)}
  72%{opacity:.07;transform:scale(1.026) translateX(2px)}
}
@keyframes rgbCyanV210{
  0%,11%,100%{opacity:.045;transform:scale(1.025) translate3d(-2px,0,0)}
  12%{opacity:.39;transform:scale(1.03) translate3d(-10px,1px,0)}
  13%{opacity:.14;transform:scale(1.026) translate3d(-4px,-1px,0)}
  38%{opacity:.05;transform:scale(1.025) translateX(-2px)}
  39%{opacity:.31;transform:scale(1.03) translate3d(-8px,-1px,0)}
  40%{opacity:.075;transform:scale(1.026) translateX(-3px)}
  70%{opacity:.045}
  71%{opacity:.35;transform:scale(1.03) translate3d(-9px,1px,0)}
  72%{opacity:.065;transform:scale(1.026) translateX(-2px)}
}
@keyframes homeBackdropV210{from{transform:scale(1.025) translate3d(-.5%,.2%,0)}to{transform:scale(1.055) translate3d(.55%,-.3%,0)}}
@media(prefers-reduced-motion:reduce){.hero.latest-storm .hero-media>.hero-main-image,.hero.latest-storm .hero-media>.hero-rgb-ghost,.hero.latest-storm .hero-media>.hero-backdrop{animation:none!important}.hero.latest-storm .hero-media>.hero-main-image{transform:scale(1.025)!important}.hero.latest-storm .hero-media>.hero-rgb-ghost{display:none!important}}

/* ============================================================
   DISTURBING STORIES APP v2.11
   QR nativo iPhone/Safari · getUserMedia + AUTO-DETECT separado
   ============================================================ */
/* Safari ya no recibe un <video> creado/controlado por html5-qrcode.
   Este visor pertenece exclusivamente a getUserMedia(). */
.qr-reader,#qr-reader{
  width:100%!important;
  min-height:280px!important;
  aspect-ratio:1/1!important;
  position:relative!important;
  display:block!important;
  overflow:hidden!important;
  background:#020506!important;
  border:1px solid #315965!important;
  border-radius:16px!important;
  isolation:isolate!important;
}
.qr-native-stage{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;background:#000!important;overflow:hidden!important}
.qr-native-stage .qr-live-video,#qrLiveVideo{
  position:absolute!important;inset:0!important;z-index:1!important;
  display:block!important;visibility:visible!important;opacity:1!important;
  width:100%!important;height:100%!important;min-width:100%!important;min-height:100%!important;
  max-width:none!important;max-height:none!important;object-fit:cover!important;object-position:center!important;
  background:#000!important;transform:none!important;-webkit-transform:none!important;
}
.qr-native-stage .qr-live-canvas,#qrLiveCanvas{position:absolute!important;left:-4px!important;top:-4px!important;width:2px!important;height:2px!important;opacity:.001!important;pointer-events:none!important;z-index:0!important}
.qr-native-stage .qr-live-overlay{position:absolute!important;inset:11%!important;z-index:3!important;pointer-events:none!important}
.qr-native-stage .qr-live-overlay i{position:absolute;width:28px;height:28px;border-color:#b9f6ff;border-style:solid;filter:drop-shadow(0 0 6px rgba(142,244,255,.45))}
.qr-native-stage .qr-live-overlay i:nth-child(1){left:0;top:0;border-width:2px 0 0 2px}.qr-native-stage .qr-live-overlay i:nth-child(2){right:0;top:0;border-width:2px 2px 0 0}.qr-native-stage .qr-live-overlay i:nth-child(3){left:0;bottom:0;border-width:0 0 2px 2px}.qr-native-stage .qr-live-overlay i:nth-child(4){right:0;bottom:0;border-width:0 2px 2px}
.qr-native-stage .qr-live-overlay span{position:absolute;left:4%;right:4%;top:50%;height:1px;background:linear-gradient(90deg,transparent,#8ef4ff,transparent);box-shadow:0 0 8px rgba(142,244,255,.5);animation:qrScanLineV211 1.5s ease-in-out infinite alternate}
@keyframes qrScanLineV211{from{transform:translateY(-74px);opacity:.42}to{transform:translateY(74px);opacity:1}}
@media(prefers-reduced-motion:reduce){.qr-native-stage .qr-live-overlay span{animation:none!important}}

/* ============================================================
   DISTURBING STORIES APP v2.12
   QR: motor y visor restaurados desde v0.18
   ============================================================ */
/* Esta capa anula únicamente las reglas del visor nativo de v2.11.
   Html5Qrcode vuelve a crear y controlar su propio <video>, como en v0.18. */
.qr-reader,#qr-reader{
  width:100%!important;
  min-height:280px!important;
  aspect-ratio:auto!important;
  position:relative!important;
  display:block!important;
  overflow:hidden!important;
  background:#050505!important;
  border:1px solid #292929!important;
  border-radius:16px!important;
  isolation:auto!important;
}
.qr-reader video,#qr-reader video{
  position:static!important;
  inset:auto!important;
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  width:100%!important;
  height:auto!important;
  min-width:0!important;
  min-height:0!important;
  max-width:100%!important;
  max-height:58svh!important;
  object-fit:cover!important;
  object-position:center!important;
  transform:none!important;
  -webkit-transform:none!important;
  background:#050505!important;
}
#qr-reader__scan_region{
  position:relative!important;
  inset:auto!important;
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  overflow:hidden!important;
  background:#050505!important;
}
#qr-reader__dashboard,#qr-reader__dashboard_section{
  position:relative!important;
  inset:auto!important;
  z-index:auto!important;
  background:#080808!important;
  color:#ddd!important;
  border:0!important;
}
#qr-reader img{max-width:100%!important}


/* ============================================================
   DISTURBING STORIES APP v2.13
   QR iOS standalone safe · cámara nativa + foto normalizada + jsQR
   ============================================================ */
.qr-ios-standalone .qr-reader,
.qr-ios-standalone #qr-reader{
  min-height:250px!important;
  display:grid!important;
  place-items:center!important;
  background:radial-gradient(circle at 50% 40%,rgba(33,95,108,.18),transparent 55%),#030708!important;
  border-color:#315965!important;
}
.qr-ios-photo-mode{
  width:min(88%,420px);
  min-height:210px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:10px;
  text-align:center;
  padding:24px 20px;
  color:#dce9ec;
}
.qr-ios-photo-mark{
  width:72px;height:72px;
  display:grid;place-items:center;
  border:2px solid #8defff;
  box-shadow:0 0 0 6px rgba(141,239,255,.045),0 0 25px rgba(141,239,255,.13);
  font:900 22px/1 Oxanium,sans-serif;
  letter-spacing:.08em;
  color:#b9f6ff;
}
.qr-ios-photo-mode strong{font:800 15px/1.2 Oxanium,sans-serif;letter-spacing:.1em;color:#f3d675}
.qr-ios-photo-mode span{max-width:340px;font-size:12px;line-height:1.55;color:#b8c7cb;font-weight:600}
.qr-ios-standalone #startQr{min-height:52px}
.qr-ios-standalone #unlockStatus{min-height:18px}

/* ============================================================
   DISTURBING STORIES APP v2.14
   QR iOS standalone · AUTO-DETECT live con fallback seguro a foto
   ============================================================ */
.qr-ios-live-mode{
  width:min(88%,420px);
  min-height:210px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:10px;
  text-align:center;
  padding:24px 20px;
  color:#dce9ec;
}
.qr-ios-live-mode strong{font:800 15px/1.2 Oxanium,sans-serif;letter-spacing:.1em;color:#f3d675}
.qr-ios-live-mode span{max-width:340px;font-size:12px;line-height:1.55;color:#b8c7cb;font-weight:600}
.qr-ios-live-wrap{
  position:relative;
  width:100%;
  min-height:250px;
  overflow:hidden;
  background:#000;
  display:grid;
  place-items:center;
}
#qrIosLiveVideo{
  display:block;
  width:100%;
  height:100%;
  min-height:250px;
  max-height:430px;
  object-fit:cover;
  background:#000;
}
.qr-ios-live-target{
  position:absolute;
  left:50%;top:50%;
  width:min(62vw,220px);height:min(62vw,220px);
  max-width:220px;max-height:220px;
  transform:translate(-50%,-50%);
  border:2px solid rgba(141,239,255,.9);
  box-shadow:0 0 0 999px rgba(0,0,0,.18),0 0 26px rgba(141,239,255,.18);
  pointer-events:none;
}
.qr-gallery-btn{opacity:.82}
.qr-fallback-ready{
  animation:qrFallbackPulse .7s ease-in-out 3;
}
@keyframes qrFallbackPulse{
  0%,100%{transform:scale(1)}
  50%{transform:scale(1.025);box-shadow:0 0 0 3px rgba(243,214,117,.16),0 0 22px rgba(243,214,117,.18)}
}


/* ============================================================
   DISTURBING STORIES APP v2.16
   QR definitivo · foto nativa + análisis automático
   ============================================================ */
.qr-photo-only .qr-reader,
.qr-photo-only #qr-reader{
  min-height:250px!important;
  display:grid!important;
  place-items:center!important;
  aspect-ratio:auto!important;
  background:radial-gradient(circle at 50% 40%,rgba(33,95,108,.18),transparent 55%),#030708!important;
  border:1px solid #315965!important;
  border-radius:16px!important;
  overflow:hidden!important;
}
.qr-photo-mode{
  width:min(88%,420px);
  min-height:210px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:10px;
  text-align:center;
  padding:24px 20px;
  color:#dce9ec;
}
.qr-photo-mode strong{font:800 15px/1.2 Oxanium,sans-serif;letter-spacing:.1em;color:#f3d675}
.qr-photo-mode span{max-width:340px;font-size:12px;line-height:1.55;color:#b8c7cb;font-weight:600}
.qr-photo-only #photoQr{min-height:52px}
.qr-photo-only #unlockStatus{min-height:18px}


/* ============================================================
   DISTURBING STORIES APP v2.16
   Install prompt, HOME protection, saga banners and layout fixes
   ============================================================ */
.install-app-svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
#installBtn:not(.hidden){display:flex!important;align-items:center!important;gap:11px!important}
.drawer-install{font-size:0!important}
.install-app-panel{width:calc(100% - (var(--reader-pad) * 2))!important;margin:calc(var(--topbar-base) + var(--top-safe) + 10px) var(--reader-pad) 12px!important;cursor:pointer;grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important;text-align:left!important}
.install-app-panel-copy{display:grid;gap:4px;min-width:0}
.install-app-panel-copy strong{font-family:Oxanium,sans-serif!important;color:#ffe394!important;font-size:11px!important;letter-spacing:.05em}
.install-app-panel-copy span{font-size:10px!important;color:#98b2ba!important;line-height:1.4!important}
.install-app-panel-cta{display:flex;align-items:center;gap:8px;color:#f6fbff}
.install-app-panel-cta b{font-size:9px;letter-spacing:.05em}
.install-guide-actions{margin-top:16px;display:flex;justify-content:center}
.install-guide .cta{min-width:190px}
.install-guide .install-steps{display:grid;gap:10px;margin:0 0 14px}
.install-guide .install-steps div{display:grid;grid-template-columns:30px minmax(0,1fr);gap:10px;align-items:start;border:1px solid #28454e;background:#08151a;border-radius:12px;padding:10px}
.install-guide .install-steps b{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#10313a;color:#dffcff;font:700 14px/1 Oxanium,sans-serif}
.install-guide .install-steps span{color:#d6e4e8;font-size:13px;line-height:1.45}
.install-guide .install-steps em{font-style:normal;color:#8ef4ff}
.view.home-view>.hero.latest-storm{min-height:calc(100svh - var(--bottomnav-base) - var(--bottom-safe) - 84px)!important;padding-top:18px!important;margin-top:0!important}
.hero.latest-storm .hero-media{overflow:hidden!important;background:#010305!important}
.hero.latest-storm .hero-media>.hero-main-image,
.hero.latest-storm .hero-media>.hero-rgb-ghost{object-fit:cover!important;object-position:center center!important;transform-origin:center center!important}
.hero.latest-storm .hero-media>.hero-main-image{animation:homeDynamicV216 .74s steps(1,end) infinite!important;filter:brightness(.98) contrast(1.16) saturate(1.08)!important;z-index:2!important;will-change:transform,filter}
.hero.latest-storm .hero-media>.hero-rgb-red{opacity:.78!important;animation:rgbRedV216 .56s steps(1,end) infinite!important;filter:sepia(1) saturate(12) hue-rotate(312deg) brightness(.9) contrast(1.18)!important}
.hero.latest-storm .hero-media>.hero-rgb-cyan{opacity:.7!important;animation:rgbCyanV216 .56s .018s steps(1,end) infinite!important;filter:sepia(1) saturate(10) hue-rotate(132deg) brightness(.95) contrast(1.15)!important}
.hero.latest-storm .hero-media>.hero-backdrop{inset:-12%!important;width:124%!important;height:124%!important;object-fit:cover!important;opacity:.52!important;filter:blur(16px) brightness(.42) contrast(1.18)!important;animation:homeBackdropV216 2.6s ease-in-out infinite alternate!important}
.section-indicator-home{font-size:46px!important;line-height:1!important;transform:none!important}
.section-indicator-collection{display:flex!important;align-items:center!important;justify-content:center!important;gap:3px!important}
.section-indicator-collection i{flex:0 0 auto!important}
.my-stories{scroll-margin-top:calc(var(--topbar-base) + var(--top-safe) + 12px)!important}
#myFilterBar{scroll-margin-top:calc(var(--topbar-base) + var(--top-safe) + 12px)!important;margin-top:2px!important;padding-top:4px!important}
.progress-dashboard{grid-template-columns:auto minmax(0,1fr)!important;align-items:stretch!important}
.progress-side{display:grid!important;grid-template-columns:minmax(92px,.72fr) minmax(0,1fr)!important;align-items:center!important;gap:10px!important}
.progress-side .collection-progress.large{width:100%!important;max-width:none!important}
.personal-stats .stat-action span{font-size:8px!important;line-height:1.08!important}
.timeline-section{padding-left:18px!important;padding-right:10px!important}
.timeline-list{padding-left:10px!important}
.timeline-year{padding-left:6px!important}
.saga-card{min-height:165px!important;border-color:#294852!important;background:#050b0e!important}
.saga-card>img{object-fit:cover!important;object-position:center center!important}
.saga-card-shade{display:none!important}
.saga-card-copy{position:absolute!important;left:12px!important;right:12px!important;bottom:12px!important;width:auto!important;padding:10px 12px!important;background:rgba(4,12,15,.78)!important;border:1px solid rgba(82,120,131,.42)!important;border-radius:12px!important;backdrop-filter:blur(6px)!important;-webkit-backdrop-filter:blur(6px)!important}
.saga-card-copy>span{display:block!important;color:#d0dde2!important;font-size:8px!important;letter-spacing:.08em!important}
.saga-card-copy h2{margin:6px 0 10px!important;font-size:21px!important}
.saga-card-copy>strong{display:block!important;margin-top:8px!important;font-size:10px!important;color:#fff!important}
.saga-card-copy>strong em{font-style:normal;font-size:10px!important}
.saga-card-copy>strong .read{color:#d9ac42!important}
.saga-card-copy>strong .published{color:#66cfff!important}
.saga-detail-banner{margin:calc(var(--topbar-base) + var(--top-safe) + 6px) calc(var(--reader-pad) * -1) 18px!important;height:auto!important;min-height:0!important;overflow:hidden!important}
.saga-detail-banner img{display:block!important;width:100%!important;height:auto!important}
.saga-detail-content{padding-top:4px!important}
.saga-detail-bubbles{display:flex!important;justify-content:center!important;align-items:center!important;gap:8px!important;flex-wrap:wrap!important;margin:0 0 16px!important}
.saga-info-bubble{display:inline-flex!important;align-items:center!important;justify-content:center!important;border:1px solid #3b5e67!important;background:#071217!important;color:#dffcff!important;border-radius:999px!important;padding:8px 12px!important;font-size:9px!important;font-weight:900!important;letter-spacing:.05em!important;text-align:center!important}
.saga-synopsis{text-align:center!important;max-width:720px!important;margin:0 auto 14px!important}
.saga-percent{padding:14px 14px 12px!important;text-align:center!important}
.saga-percent-line{display:flex!important;justify-content:center!important;align-items:baseline!important;gap:6px!important;flex-wrap:wrap!important;font-size:clamp(15px,4.4vw,22px)!important;font-weight:900!important;color:#fff!important;line-height:1.1!important;margin-bottom:10px!important}
.saga-percent-line .saga-percent-label,.saga-percent-line .saga-percent-divider{font-size:inherit!important;color:#fff!important}
.saga-read-value{color:#d9ac42!important;font-size:inherit!important}
.saga-published-value{color:#66cfff!important;font-size:inherit!important}
.saga-extra-text{text-align:center!important}
.saga-part-icons{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:8px!important}
.saga-feature-icon.extra{font-family:Oxanium,sans-serif!important;font-weight:900!important;font-size:18px!important;color:#ffe394!important}
.future-part{display:grid!important;place-items:center!important;min-height:118px!important;text-align:center!important;padding:14px!important}
.future-part strong{display:block!important;margin:0!important;font-size:clamp(13px,4vw,16px)!important;color:#cfe4e9!important}
@media(max-width:470px){
  .install-app-panel{grid-template-columns:1fr!important;gap:10px!important}
  .install-app-panel-cta{justify-content:flex-start!important}
  .section-indicator-home{font-size:42px!important}
  .timeline-section{padding-left:14px!important}.timeline-list{padding-left:6px!important}
  .saga-detail-bubbles{gap:6px!important}.saga-info-bubble{font-size:8px!important;padding:7px 10px!important}
}
@keyframes homeDynamicV216{0%{transform:translate3d(0,0,0) scale(1.085)}10%{transform:translate3d(-.8%,.5%,0) scale(1.092)}18%{transform:translate3d(1.1%,-.6%,0) scale(1.087)}26%{transform:translate3d(-1.2%,.8%,0) scale(1.094)}34%{transform:translate3d(.9%,-.5%,0) scale(1.086)}42%{transform:translate3d(-.7%,.9%,0) scale(1.093)}50%{transform:translate3d(1.2%,-.7%,0) scale(1.088)}60%{transform:translate3d(-1.1%,.3%,0) scale(1.095)}70%{transform:translate3d(.7%,-.9%,0) scale(1.086)}80%{transform:translate3d(-.9%,.6%,0) scale(1.092)}90%{transform:translate3d(1%,-.4%,0) scale(1.088)}100%{transform:translate3d(0,0,0) scale(1.09)}}
@keyframes rgbRedV216{0%,100%{opacity:.12;transform:translate3d(0,0,0) scale(1.09)}12%{opacity:.85;transform:translate3d(9px,-2px,0) scale(1.094)}22%{opacity:.18;transform:translate3d(-2px,1px,0) scale(1.088)}34%{opacity:.92;transform:translate3d(-11px,1px,0) scale(1.098)}46%{opacity:.12;transform:translate3d(1px,0,0) scale(1.09)}58%{opacity:.82;transform:translate3d(7px,2px,0) scale(1.094)}72%{opacity:.16;transform:translate3d(-1px,-1px,0) scale(1.088)}84%{opacity:.9;transform:translate3d(-8px,-2px,0) scale(1.096)}}
@keyframes rgbCyanV216{0%,100%{opacity:.08;transform:translate3d(0,0,0) scale(1.09)}10%{opacity:.78;transform:translate3d(-9px,2px,0) scale(1.095)}20%{opacity:.14;transform:translate3d(2px,-1px,0) scale(1.088)}32%{opacity:.86;transform:translate3d(10px,-2px,0) scale(1.097)}44%{opacity:.08;transform:translate3d(0,0,0) scale(1.09)}56%{opacity:.74;transform:translate3d(-7px,-2px,0) scale(1.094)}70%{opacity:.14;transform:translate3d(2px,1px,0) scale(1.088)}82%{opacity:.88;transform:translate3d(8px,2px,0) scale(1.097)}}
@keyframes homeBackdropV216{0%{transform:translate3d(-1.2%,-.8%,0) scale(1.03)}100%{transform:translate3d(1.3%,.9%,0) scale(1.08)}}
@media(prefers-reduced-motion:reduce){.install-app-panel,.hero.latest-storm .hero-media>.hero-main-image,.hero.latest-storm .hero-media>.hero-rgb-ghost,.hero.latest-storm .hero-media>.hero-backdrop{animation:none!important}}

/* ============================================================
   DISTURBING STORIES APP v2.17
   HOME, dashboard, Timeline y SAGAS
   ============================================================ */
/* HOME install panel: the .view already reserves the fixed header. */
.install-app-panel{
  margin:8px var(--reader-pad) 12px!important;
}

/* HOME section indicator matches the physical app icon height. */
.section-indicator-home{
  width:50px!important;height:50px!important;
  font-size:50px!important;line-height:50px!important;
  display:grid!important;place-items:center!important;
  transform:none!important;
}
@media(max-width:390px){.section-indicator-home{width:46px!important;height:46px!important;font-size:46px!important;line-height:46px!important}}
@media(max-width:350px){.section-indicator-home{width:42px!important;height:42px!important;font-size:42px!important;line-height:42px!important}}

/* HOME featured image: full-frame RGB split in intermittent bursts + slower wiggle. */
.hero.latest-storm .hero-media>.hero-main-image,
.hero.latest-storm .hero-media>.hero-rgb-ghost{
  inset:-4%!important;width:108%!important;height:108%!important;
  object-fit:cover!important;object-position:center center!important;
  clip-path:none!important;
  transform-origin:center center!important;
}
.hero.latest-storm .hero-media>.hero-main-image{
  animation:homeWiggleV217 4.8s ease-in-out infinite!important;
  filter:brightness(.97) contrast(1.14) saturate(1.08)!important;
}
.hero.latest-storm .hero-media>.hero-rgb-ghost{
  mix-blend-mode:screen!important;
  opacity:0;
}
.hero.latest-storm .hero-media>.hero-rgb-red{
  animation:homeRgbRedV217 6.2s steps(1,end) infinite!important;
  filter:sepia(1) saturate(12) hue-rotate(311deg) brightness(.82) contrast(1.18)!important;
}
.hero.latest-storm .hero-media>.hero-rgb-cyan{
  animation:homeRgbCyanV217 6.2s .055s steps(1,end) infinite!important;
  filter:sepia(1) saturate(10) hue-rotate(132deg) brightness(.9) contrast(1.16)!important;
}
@keyframes homeWiggleV217{
  0%,100%{transform:translate3d(0,0,0) scale(1.035)}
  20%{transform:translate3d(-.45%,.22%,0) scale(1.04)}
  42%{transform:translate3d(.35%,-.32%,0) scale(1.038)}
  65%{transform:translate3d(-.2%,-.12%,0) scale(1.042)}
  82%{transform:translate3d(.42%,.26%,0) scale(1.037)}
}
@keyframes homeRgbRedV217{
  0%,17%,39%,63%,83%,100%{opacity:0;transform:translate3d(0,0,0) scale(1.035)}
  20%{opacity:.34;transform:translate3d(8px,-2px,0) scale(1.04)}
  24%{opacity:.18;transform:translate3d(-5px,1px,0) scale(1.038)}
  28%{opacity:.38;transform:translate3d(11px,0,0) scale(1.041)}
  32%{opacity:.1;transform:translate3d(-3px,-1px,0) scale(1.036)}
  66%{opacity:.28;transform:translate3d(-9px,2px,0) scale(1.041)}
  71%{opacity:.4;transform:translate3d(7px,-1px,0) scale(1.038)}
  76%{opacity:.16;transform:translate3d(-4px,1px,0) scale(1.04)}
}
@keyframes homeRgbCyanV217{
  0%,18%,40%,64%,84%,100%{opacity:0;transform:translate3d(0,0,0) scale(1.035)}
  21%{opacity:.3;transform:translate3d(-8px,2px,0) scale(1.04)}
  25%{opacity:.16;transform:translate3d(6px,-1px,0) scale(1.038)}
  29%{opacity:.36;transform:translate3d(-10px,0,0) scale(1.041)}
  33%{opacity:.1;transform:translate3d(3px,1px,0) scale(1.036)}
  67%{opacity:.27;transform:translate3d(9px,-2px,0) scale(1.041)}
  72%{opacity:.37;transform:translate3d(-7px,1px,0) scale(1.038)}
  77%{opacity:.14;transform:translate3d(4px,-1px,0) scale(1.04)}
}

/* MIS STORIES dashboard hierarchy. */
.progress-dashboard{align-items:center!important}
.progress-big{display:grid!important;gap:3px!important;align-content:center!important;justify-items:center!important}
.progress-count-line{display:flex!important;align-items:flex-end!important;justify-content:center!important;gap:7px!important;width:max-content!important;max-width:100%!important}
.progress-count-line strong{font-family:Impact,Haettenschweiler,"Arial Narrow Bold","Arial Black",sans-serif!important;font-size:52px!important;font-weight:400!important;line-height:.82!important}
.progress-count-line .progress-denom{font-size:clamp(22px,6vw,30px)!important;line-height:.9!important;color:#d9e2e5!important;font-weight:800!important;white-space:nowrap!important}
.progress-big>em{display:block!important;width:100%!important;margin:0!important;text-align:center!important;font-style:normal!important;font-size:clamp(8px,2.4vw,11px)!important;letter-spacing:.055em!important;color:#82949a!important;font-weight:900!important;white-space:nowrap!important}
.progress-side{display:flex!important;flex-direction:column!important;justify-content:center!important;align-items:stretch!important;gap:8px!important;min-width:0!important}
.progress-side .collection-progress.large{order:1!important;width:100%!important;max-width:none!important;margin:0!important}
.progress-side p{order:2!important;margin:0!important;width:100%!important;font-size:10px!important;line-height:1.45!important}
.personal-stats .stat-action span{font-size:clamp(7.5px,2.15vw,9.5px)!important;line-height:1.05!important;font-weight:900!important;letter-spacing:.045em!important}
@media(max-width:390px){
  .progress-count-line strong{font-size:46px!important}
  .progress-count-line .progress-denom{font-size:clamp(20px,6.2vw,26px)!important}
  .progress-dashboard{grid-template-columns:auto minmax(0,1fr)!important;gap:12px!important;padding:15px!important}
}

/* TIMELINE: safer left margin, clearer same-year groups and scroll reveal. */
.timeline-title h1{display:grid!important;gap:2px!important;text-align:center!important;line-height:.98!important}
.timeline-title h1>span{display:block!important}
.timeline-section{padding-left:26px!important;padding-right:10px!important;overflow:visible!important}
.timeline-list{padding-left:12px!important;overflow:visible!important}
.timeline-year-group{overflow:visible!important}
.timeline-year{padding-left:8px!important;overflow:visible!important}
.timeline-year-axis,.timeline-items,.timeline-item{overflow:visible!important}
.timeline-multi .timeline-items{
  position:relative!important;
  padding-top:16px!important;padding-bottom:16px!important;
  background:linear-gradient(90deg,rgba(61,148,174,.13),rgba(61,148,174,.035) 58%,transparent)!important;
  border-top:1px solid rgba(92,189,218,.36)!important;
  border-bottom:1px solid rgba(92,189,218,.36)!important;
  border-radius:0 10px 10px 0!important;
}
.timeline-multi .timeline-items:before{
  content:""!important;position:absolute!important;left:-34px!important;top:20px!important;bottom:20px!important;
  border-left:3px solid #58b9d2!important;opacity:.82!important;
}
.timeline-multi .timeline-items:after{
  content:""!important;position:absolute!important;left:-34px!important;top:20px!important;width:34px!important;
  border-top:3px solid #58b9d2!important;opacity:.82!important;
}
.timeline-multi .timeline-item:before{border-top-color:#58b9d2!important;border-top-width:2px!important}
.timeline-multi .timeline-item:last-child:after{
  content:"";position:absolute;left:-34px;bottom:20px;width:34px;border-top:3px solid #58b9d2;opacity:.82;
}
/* reveal initial state */
[data-timeline-reveal] .timeline-year{opacity:0;transform:translateX(-16px)}
[data-timeline-reveal] .timeline-year-axis:before,[data-timeline-reveal] .timeline-year-axis i{transform:scaleY(0);transform-origin:top center;opacity:0}
[data-timeline-reveal] .timeline-year-axis:after{opacity:0;transform:scale(.2)}
[data-timeline-reveal] .timeline-item{opacity:0;transform:translateX(24px)}
[data-timeline-reveal] .timeline-item .timeline-poster,
[data-timeline-reveal] .timeline-item .timeline-copy,
[data-timeline-reveal] .timeline-item .timeline-icons{opacity:0;transform:translateY(8px)}
[data-timeline-reveal].timeline-reveal-in .timeline-year{opacity:1;transform:none;transition:opacity .48s ease,transform .55s cubic-bezier(.2,.8,.2,1)}
[data-timeline-reveal].timeline-reveal-in .timeline-year-axis:before,
[data-timeline-reveal].timeline-reveal-in .timeline-year-axis i{transform:scaleY(1);opacity:1;transition:transform .7s cubic-bezier(.2,.8,.2,1),opacity .25s ease}
[data-timeline-reveal].timeline-reveal-in .timeline-year-axis:after{opacity:1;transform:scale(1);transition:opacity .28s .16s ease,transform .42s .12s cubic-bezier(.18,.9,.22,1.25)}
[data-timeline-reveal].timeline-reveal-in .timeline-item{opacity:1;transform:none;transition:opacity .5s ease,transform .55s cubic-bezier(.2,.8,.2,1)}
[data-timeline-reveal].timeline-reveal-in .timeline-item:nth-child(2){transition-delay:.08s}
[data-timeline-reveal].timeline-reveal-in .timeline-item:nth-child(3){transition-delay:.16s}
[data-timeline-reveal].timeline-reveal-in .timeline-item:nth-child(4){transition-delay:.24s}
[data-timeline-reveal].timeline-reveal-in .timeline-item .timeline-poster,
[data-timeline-reveal].timeline-reveal-in .timeline-item .timeline-copy,
[data-timeline-reveal].timeline-reveal-in .timeline-item .timeline-icons{opacity:1;transform:none;transition:opacity .45s .16s ease,transform .48s .12s cubic-bezier(.2,.8,.2,1)}
@media(max-width:470px){
  .timeline-section{padding-left:22px!important;padding-right:8px!important}
  .timeline-list{padding-left:8px!important}
  .timeline-year{padding-left:6px!important}
  .timeline-multi .timeline-items:before{left:-28px!important}
  .timeline-multi .timeline-items:after,.timeline-multi .timeline-item:last-child:after{left:-28px!important;width:28px!important}
}

/* SAGAS: banner is a real flow block. Nothing below can overlap it. */
.saga-detail{overflow:visible!important}
.saga-detail-banner{
  position:relative!important;z-index:3!important;
  margin:0 calc(var(--reader-pad) * -1) 20px!important;
  height:auto!important;min-height:0!important;
  overflow:hidden!important;background:#020507!important;
}
.saga-detail-banner img{
  position:relative!important;left:auto!important;top:auto!important;inset:auto!important;
  display:block!important;width:100%!important;max-width:100%!important;height:auto!important;
  object-fit:contain!important;object-position:center center!important;
}
.saga-detail-content{position:relative!important;z-index:2!important;clear:both!important;padding-top:0!important}
.saga-percent-line{margin-bottom:0!important}
.saga-percent .saga-progress{position:relative!important;margin-top:18px!important;clear:both!important}
.saga-part.future-part{grid-template-columns:1fr!important;place-items:center!important;align-content:center!important;justify-content:center!important}
.saga-part.future-part strong{width:100%!important;text-align:center!important;justify-self:center!important;align-self:center!important;margin:0!important}

@media(prefers-reduced-motion:reduce){
  .hero.latest-storm .hero-media>.hero-main-image,.hero.latest-storm .hero-media>.hero-rgb-ghost{animation:none!important}
  [data-timeline-reveal] .timeline-year,[data-timeline-reveal] .timeline-item,[data-timeline-reveal] .timeline-item .timeline-poster,[data-timeline-reveal] .timeline-item .timeline-copy,[data-timeline-reveal] .timeline-item .timeline-icons{opacity:1!important;transform:none!important}
  [data-timeline-reveal] .timeline-year-axis:before,[data-timeline-reveal] .timeline-year-axis i{transform:none!important;opacity:1!important}
  [data-timeline-reveal] .timeline-year-axis:after{opacity:1!important;transform:none!important}
}

/* v2.17 timeline line reveal corrections */
[data-timeline-reveal] .timeline-year-axis:before{transform:scaleY(0)!important;transform-origin:top center!important;opacity:0!important}
[data-timeline-reveal] .timeline-year-axis i{transform:scaleX(0)!important;transform-origin:left center!important;opacity:0!important}
[data-timeline-reveal].timeline-reveal-in .timeline-year-axis:before{transform:scaleY(1)!important;opacity:1!important;transition:transform .72s cubic-bezier(.2,.8,.2,1),opacity .25s ease!important}
[data-timeline-reveal].timeline-reveal-in .timeline-year-axis i{transform:scaleX(1)!important;opacity:1!important;transition:transform .58s .14s cubic-bezier(.2,.8,.2,1),opacity .25s .12s ease!important}
[data-timeline-reveal].timeline-multi .timeline-items:before{transform:scaleY(0);transform-origin:top center;opacity:0!important}
[data-timeline-reveal].timeline-multi .timeline-items:after{transform:scaleX(0);transform-origin:left center;opacity:0!important}
[data-timeline-reveal].timeline-multi .timeline-item:before{transform:scaleX(0);transform-origin:left center;opacity:0}
[data-timeline-reveal].timeline-multi .timeline-item:last-child:after{transform:scaleX(0);transform-origin:left center;opacity:0}
[data-timeline-reveal].timeline-reveal-in.timeline-multi .timeline-items:before{transform:scaleY(1);opacity:.82!important;transition:transform .72s .18s cubic-bezier(.2,.8,.2,1),opacity .25s .16s ease}
[data-timeline-reveal].timeline-reveal-in.timeline-multi .timeline-items:after{transform:scaleX(1);opacity:.82!important;transition:transform .48s .22s cubic-bezier(.2,.8,.2,1),opacity .2s .2s ease}
[data-timeline-reveal].timeline-reveal-in.timeline-multi .timeline-item:before{transform:scaleX(1);opacity:1;transition:transform .42s .28s cubic-bezier(.2,.8,.2,1),opacity .2s .26s ease}
[data-timeline-reveal].timeline-reveal-in.timeline-multi .timeline-item:last-child:after{transform:scaleX(1);opacity:.82;transition:transform .42s .34s cubic-bezier(.2,.8,.2,1),opacity .2s .32s ease}
@media(prefers-reduced-motion:reduce){[data-timeline-reveal] .timeline-year-axis:before,[data-timeline-reveal] .timeline-year-axis i,[data-timeline-reveal].timeline-multi .timeline-items:before,[data-timeline-reveal].timeline-multi .timeline-items:after,[data-timeline-reveal].timeline-multi .timeline-item:before,[data-timeline-reveal].timeline-multi .timeline-item:last-child:after{transform:none!important;opacity:1!important}}

/* ============================================================
   DISTURBING STORIES APP v2.18
   Pulido HOME, portales, Mis Stories, Timeline, Random, Sagas, Extras
   ============================================================ */

/* HOME · glitch RGB en toda la superficie, más lento e intermitente. */
.view.home-view>.install-app-panel{margin:4px var(--reader-pad) 12px!important}
.view.home-view>.hero.latest-storm{min-height:calc(100svh - var(--bottomnav-base) - var(--bottom-safe) - 92px)!important;padding-top:0!important}
.hero.latest-storm .hero-media{position:relative!important;overflow:hidden!important;isolation:isolate!important}
.hero.latest-storm .hero-media::before,
.hero.latest-storm .hero-media::after{content:'';position:absolute;inset:0;pointer-events:none;z-index:4}
.hero.latest-storm .hero-media::before{background:repeating-linear-gradient(180deg,rgba(255,255,255,.045) 0 1px,transparent 1px 4px);mix-blend-mode:soft-light;opacity:0;animation:heroSurfacePulseV218 5.4s steps(1,end) infinite}
.hero.latest-storm .hero-media::after{background:linear-gradient(90deg,rgba(255,46,64,.12),transparent 26%,rgba(120,224,255,.10) 52%,transparent 78%,rgba(255,46,64,.12));mix-blend-mode:screen;opacity:0;animation:heroRgbSurfaceV218 6.2s steps(1,end) infinite}
.hero.latest-storm .hero-media>.hero-main-image,
.hero.latest-storm .hero-media>.hero-rgb-ghost{inset:0!important;width:100%!important;height:100%!important;object-fit:cover!important;object-position:center center!important;transform-origin:center center!important}
.hero.latest-storm .hero-media>.hero-main-image{animation:homeDynamicV218 6.4s ease-in-out infinite!important;filter:brightness(.98) contrast(1.12) saturate(1.05)!important}
.hero.latest-storm .hero-media>.hero-rgb-red{opacity:0!important;animation:rgbRedV218 6.2s steps(1,end) infinite!important;filter:sepia(1) saturate(10) hue-rotate(312deg) brightness(.94) contrast(1.14)!important}
.hero.latest-storm .hero-media>.hero-rgb-cyan{opacity:0!important;animation:rgbCyanV218 6.2s .08s steps(1,end) infinite!important;filter:sepia(1) saturate(9) hue-rotate(132deg) brightness(.98) contrast(1.12)!important}
.hero.latest-storm .hero-media>.hero-backdrop{opacity:.34!important;animation:homeBackdropV218 8.6s ease-in-out infinite alternate!important}
@keyframes heroSurfacePulseV218{0%,13%,18%,49%,56%,100%{opacity:0}14%,17%{opacity:.28}50%,55%{opacity:.18}}
@keyframes heroRgbSurfaceV218{0%,19%,24%,61%,68%,100%{opacity:0}20%,23%{opacity:.55}62%,67%{opacity:.4}}
@keyframes homeDynamicV218{0%,100%{transform:translate3d(0,0,0) scale(1.035)}25%{transform:translate3d(-.8%,.45%,0) scale(1.055)}50%{transform:translate3d(.7%,-.35%,0) scale(1.048)}75%{transform:translate3d(-.45%,-.2%,0) scale(1.058)}}
@keyframes rgbRedV218{0%,19%,24%,61%,68%,100%{opacity:0;transform:translate3d(0,0,0) scale(1.036)}20%,23%{opacity:.72;transform:translate3d(6px,-2px,0) scale(1.046)}62%,67%{opacity:.52;transform:translate3d(4px,1px,0) scale(1.043)}}
@keyframes rgbCyanV218{0%,19%,24%,61%,68%,100%{opacity:0;transform:translate3d(0,0,0) scale(1.036)}20%,23%{opacity:.7;transform:translate3d(-6px,2px,0) scale(1.046)}62%,67%{opacity:.48;transform:translate3d(-4px,-1px,0) scale(1.043)}}
@keyframes homeBackdropV218{0%{transform:scale(1.05) translate3d(-1.2%,0,0)}100%{transform:scale(1.13) translate3d(1.2%,-.5%,0)}}
@media(prefers-reduced-motion:reduce){.hero.latest-storm .hero-media::before,.hero.latest-storm .hero-media::after,.hero.latest-storm .hero-media>.hero-main-image,.hero.latest-storm .hero-media>.hero-rgb-ghost,.hero.latest-storm .hero-media>.hero-backdrop{animation:none!important;opacity:1!important}}

/* HEADER · el icono HOME iguala la altura del icono principal de la app. */
.section-indicator-home{width:52px!important;height:52px!important;display:grid!important;place-items:center!important;font-size:52px!important;line-height:52px!important}
@media(max-width:390px){.section-indicator-home{width:48px!important;height:48px!important;font-size:48px!important;line-height:48px!important}}

/* TODAS LAS STORIES · portales e iconos más grandes. */
.portal-btn{min-height:92px!important;gap:7px!important;padding:10px 6px!important}
.portal-btn .portal-custom-svg,.portal-btn .media-feature-svg{width:36px!important;height:30px!important}
.portal-btn>span:first-child{font-size:34px!important;line-height:1!important}
.portal-btn strong{font-size:clamp(9px,2.55vw,11px)!important;letter-spacing:.045em!important}
.portal-btn small{font-size:6.5px!important;letter-spacing:.04em!important}
.portal-btn.games .gamepad-portal-svg{width:34px!important;height:25px!important}
.portal-btn.nightmares .nightmare-icon-slot{display:grid!important;place-items:center!important}
.portal-btn.nightmares .nightmare-diamond{width:15px!important;height:15px!important}
.stories-portals-group.multimedia .portal-btn,.stories-portals-group .portal-btn{align-content:center!important;justify-items:center!important}

/* MIS STORIES · dashboard y accesos. */
.progress-dashboard.stat-action{grid-template-columns:minmax(122px,.95fr) minmax(0,1.3fr)!important;gap:10px!important;align-items:center!important}
.progress-big .progress-count-line{display:flex!important;flex-wrap:wrap!important;align-items:baseline!important;gap:6px!important}
.progress-big>em{display:block!important;margin-top:2px!important;font-size:clamp(11px,2.9vw,13px)!important;line-height:1.05!important;letter-spacing:.05em!important}
.progress-side{display:grid!important;grid-template-columns:1fr!important;grid-auto-rows:auto!important;align-content:center!important;gap:8px!important}
.progress-side .collection-progress.large{order:1!important;width:100%!important;max-width:none!important;margin:0!important}
.progress-side p{order:2!important;margin:0!important;line-height:1.4!important}
.personal-stats .stat-action span{font-size:clamp(10px,2.65vw,12px)!important;letter-spacing:.06em!important}
#myContinueGroup,.my-continue-group,.my-continue-group .section-title{scroll-margin-top:calc(var(--topbar-base) + var(--top-safe) + 10px)!important}

/* TIMELINE · título real a 2 líneas, más margen izquierdo, grupos muy claros y sin esferas pequeñas. */
.timeline-section{padding-left:22px!important;padding-right:10px!important}
.timeline-title h1 span{display:block!important}
.timeline-title h1 span+span{margin-top:2px!important}
.timeline-list{padding-left:12px!important}
.timeline-year-group{grid-template-columns:minmax(106px,126px) 22px minmax(0,1fr)!important;margin:12px 0 28px!important}
.timeline-year{padding-left:8px!important;padding-right:12px!important;font-size:clamp(36px,10.6vw,50px)!important;letter-spacing:.12em!important}
.timeline-year-axis:after{width:20px!important;height:20px!important;box-shadow:0 0 12px rgba(110,210,255,.35)!important}
.timeline-items{margin-left:24px!important;padding-left:38px!important}
.timeline-item .timeline-node{display:none!important}
.timeline-item:before{left:-38px!important;width:38px!important;border-top:2px solid #5db7d1!important;opacity:.95!important}
.timeline-multi .timeline-items{position:relative!important;padding-top:12px!important;padding-bottom:12px!important;border-left:0!important;background:linear-gradient(90deg,rgba(22,48,56,.32),rgba(7,17,22,0));border-radius:14px!important}
.timeline-multi .timeline-items:before{content:''!important;position:absolute!important;left:-38px!important;top:20px!important;bottom:20px!important;border-left:3px solid #63c0db!important;opacity:.95!important}
.timeline-multi .timeline-items:after{content:''!important;position:absolute!important;left:-38px!important;top:20px!important;width:38px!important;border-top:2px solid #63c0db!important;opacity:.95!important}
.timeline-multi .timeline-item:last-child:after{content:''!important;position:absolute!important;left:-38px!important;top:50%!important;width:38px!important;border-top:2px solid #63c0db!important;opacity:.95!important}
@media(max-width:470px){.timeline-section{padding-left:18px!important}.timeline-list{padding-left:8px!important}.timeline-year-group{grid-template-columns:92px 20px minmax(0,1fr)!important}.timeline-year{padding-left:6px!important;padding-right:10px!important;font-size:34px!important;letter-spacing:.08em!important}.timeline-items{margin-left:16px!important;padding-left:30px!important}.timeline-item:before,.timeline-multi .timeline-items:after,.timeline-multi .timeline-item:last-child:after{left:-30px!important;width:30px!important}.timeline-multi .timeline-items:before{left:-30px!important}}

/* RULETA RANDOM · botón girar corto, resultado con póster destacado y acciones grandes. */
.random-spin-btn{font-size:clamp(16px,4.8vw,22px)!important;letter-spacing:.08em!important}
.random-result{display:grid!important;grid-template-columns:minmax(96px,120px) minmax(0,1fr)!important;gap:12px!important;align-items:center!important}
.random-result-poster{position:relative!important;width:100%!important;align-self:center!important;border-radius:12px!important;overflow:hidden!important;border:1px solid rgba(130,213,255,.35)!important;box-shadow:0 0 0 1px rgba(255,255,255,.02),0 0 26px rgba(84,200,255,.16)!important;animation:randomPosterGlowV218 2.1s ease-in-out infinite!important}
.random-result-poster img{display:block!important;width:100%!important;aspect-ratio:2/3!important;object-fit:cover!important;animation:randomPosterPulseV218 2.1s ease-in-out infinite!important}
.random-result-copy h2{margin:4px 0 6px!important}
.random-actions{grid-column:1/-1!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important;margin-top:4px!important}
.random-actions .cta,.random-actions .secondary-btn{min-height:72px!important;font-size:clamp(14px,4vw,19px)!important;line-height:1.05!important;letter-spacing:.04em!important}
@keyframes randomPosterPulseV218{0%,100%{transform:scale(1)}50%{transform:scale(1.045)}}
@keyframes randomPosterGlowV218{0%,100%{box-shadow:0 0 0 1px rgba(255,255,255,.03),0 0 24px rgba(84,200,255,.18)}50%{box-shadow:0 0 0 1px rgba(255,255,255,.08),0 0 34px rgba(255,211,92,.28)}}

/* SAGAS · texto sobre la imagen en listado y más aire en LEÍDO/PUBLICADO. */
.saga-card{overflow:hidden!important}
.saga-card-copy{background:none!important;border:0!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;left:14px!important;right:14px!important;bottom:10px!important;padding:0!important;text-shadow:0 2px 10px rgba(0,0,0,.72)!important}
.saga-card-copy h2{margin:4px 0 8px!important}
.saga-card-copy>span,.saga-card-copy>strong{filter:drop-shadow(0 1px 4px rgba(0,0,0,.8))}
.saga-percent{padding:14px 14px 16px!important}
.saga-percent-line{display:flex!important;justify-content:center!important;align-items:baseline!important;gap:7px!important;margin-bottom:12px!important}
.saga-percent .saga-progress{margin-top:10px!important}

/* EXTRAS · grid de 3 columnas, solo pósters + lock bubble. */
.extras-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:10px!important}
.extra-card.poster-only{position:relative!important;padding:0!important;min-height:0!important;background:#061015!important;border-radius:12px!important;overflow:hidden!important}
.extra-card.poster-only>img,.extra-card.poster-only>.extra-poster-placeholder{display:block!important;width:100%!important;aspect-ratio:2/3!important;object-fit:cover!important}
.extra-card.poster-only .ex-badge{position:absolute!important;top:7px!important;left:7px!important;z-index:2!important}
.extra-card.poster-only>div{display:none!important}
.extra-detail{text-align:center!important}
.extra-detail .eyebrow{display:block!important;text-align:center!important;margin-bottom:10px!important}
.extra-main-poster{display:block!important;width:min(420px,92vw)!important;max-width:92vw!important;margin:4px auto 18px!important;border-radius:14px!important;box-shadow:0 12px 28px rgba(0,0,0,.35)!important}
.extra-text,.physical-extra-notice{max-width:760px!important;margin-left:auto!important;margin-right:auto!important;text-align:center!important}
.extra-text{font-size:clamp(13px,3.4vw,16px)!important;line-height:1.75!important}
@media(max-width:390px){.extras-grid{gap:8px!important}}

/* ============================================================
   DISTURBING STORIES APP v2.19
   Pulido final del día
   ============================================================ */

/* HOME · VHS más evidente en toda la destacada. */
.hero.latest-storm .hero-media::before{opacity:0!important;animation:heroSurfacePulseV219 4.8s steps(1,end) infinite!important}
.hero.latest-storm .hero-media::after{opacity:0!important;animation:heroRgbSurfaceV219 4.9s steps(1,end) infinite!important}
.hero.latest-storm .hero-media>.hero-main-image{filter:brightness(.98) contrast(1.16) saturate(1.07)!important}
.hero.latest-storm .hero-media>.hero-rgb-red{animation:rgbRedV219 4.9s steps(1,end) infinite!important}
.hero.latest-storm .hero-media>.hero-rgb-cyan{animation:rgbCyanV219 4.9s .06s steps(1,end) infinite!important}
@keyframes heroSurfacePulseV219{0%,8%,14%,27%,35%,58%,67%,100%{opacity:0}9%,13%{opacity:.34}28%,34%{opacity:.28}59%,66%{opacity:.24}}
@keyframes heroRgbSurfaceV219{0%,8%,14%,27%,35%,58%,67%,100%{opacity:0}9%,13%{opacity:.72}28%,34%{opacity:.56}59%,66%{opacity:.46}}
@keyframes rgbRedV219{0%,8%,14%,27%,35%,58%,67%,100%{opacity:0;transform:translate3d(0,0,0) scale(1.036)}9%,13%{opacity:.92;transform:translate3d(9px,-3px,0) scale(1.05)}28%,34%{opacity:.64;transform:translate3d(6px,2px,0) scale(1.045)}59%,66%{opacity:.5;transform:translate3d(4px,-1px,0) scale(1.042)}}
@keyframes rgbCyanV219{0%,8%,14%,27%,35%,58%,67%,100%{opacity:0;transform:translate3d(0,0,0) scale(1.036)}9%,13%{opacity:.9;transform:translate3d(-9px,3px,0) scale(1.05)}28%,34%{opacity:.62;transform:translate3d(-6px,-2px,0) scale(1.045)}59%,66%{opacity:.48;transform:translate3d(-4px,1px,0) scale(1.042)}}

/* MIS STORIES · BLOQUEADAS en rojo. */
.personal-stats [data-my-jump="blocked"]{border-color:#7f2229!important;background:linear-gradient(145deg,#25080c,#120406)!important;box-shadow:inset 0 0 0 1px rgba(255,83,97,.08),0 0 18px rgba(170,26,39,.12)!important}
.personal-stats [data-my-jump="blocked"] strong{color:#ff7a84!important}
.personal-stats [data-my-jump="blocked"] span{color:#ff9aa3!important}
.personal-stats [data-my-jump="blocked"] .hud-corner{border-color:#d14755!important;filter:drop-shadow(0 0 7px rgba(255,94,108,.28))!important}

/* TIMELINE · título nuevo, años más contenidos y conectores limpios. */
.timeline-title h1{font-family:Oxanium,sans-serif!important;text-transform:uppercase!important;display:block!important;text-align:center!important}
.timeline-title h1 span{display:block!important}
.timeline-year-group{grid-template-columns:minmax(82px,96px) 22px minmax(0,1fr)!important;margin:12px 0 26px!important}
.timeline-year{font-size:clamp(24px,7vw,32px)!important;letter-spacing:.08em!important;padding-left:10px!important;padding-right:10px!important}
.timeline-list{padding-left:10px!important}
.timeline-items{border-left:0!important;margin-left:18px!important;padding-left:34px!important;background:none!important;border-radius:0!important;box-shadow:none!important}
.timeline-year-axis:before{border-left:2px solid #4d8190!important}
.timeline-year-axis:after{width:18px!important;height:18px!important;background:#58c8ff!important;border:2px solid #cff3ff!important;box-shadow:0 0 12px rgba(88,200,255,.42)!important}
.timeline-year-axis i{display:none!important}
.timeline-item{background:#081217!important;border:1px solid #24414a!important;border-radius:12px!important;padding:9px!important}
.timeline-item .timeline-node{display:none!important}
.timeline-item:before{content:''!important;position:absolute!important;left:-34px!important;top:50%!important;width:34px!important;border-top:2px solid #5db7d1!important;transform:none!important;opacity:1!important}
.timeline-multi .timeline-items{padding-top:10px!important;padding-bottom:10px!important}
.timeline-multi .timeline-items:before{content:''!important;position:absolute!important;left:-34px!important;top:20px!important;bottom:20px!important;border-left:3px solid #63c0db!important;opacity:1!important}
.timeline-multi .timeline-items:after{content:''!important;position:absolute!important;left:-34px!important;top:20px!important;width:34px!important;border-top:2px solid #63c0db!important;opacity:1!important}
.timeline-multi .timeline-item:last-child:after{content:''!important;position:absolute!important;left:-34px!important;top:50%!important;width:34px!important;border-top:2px solid #63c0db!important;opacity:1!important}
@media(max-width:470px){.timeline-year-group{grid-template-columns:84px 18px minmax(0,1fr)!important}.timeline-year{font-size:26px!important;padding-left:8px!important}.timeline-list{padding-left:6px!important}.timeline-items{margin-left:14px!important;padding-left:28px!important}.timeline-item:before,.timeline-multi .timeline-items:after,.timeline-multi .timeline-item:last-child:after{left:-28px!important;width:28px!important}.timeline-multi .timeline-items:before{left:-28px!important}}

/* RULETA RANDOM · tipografía sci-fi y CTAs más grandes. */
.random-head h1,.random-filters button,.random-spin-btn,.random-actions .cta,.random-actions .secondary-btn{font-family:Oxanium,sans-serif!important;text-transform:uppercase!important;letter-spacing:.06em!important}
.random-head h1{font-size:clamp(24px,7vw,30px)!important}
.random-filters button{font-size:clamp(10px,3vw,12px)!important}
.random-spin-btn,.random-spin-btn.stop-mode{font-size:clamp(18px,5.2vw,24px)!important}
.random-actions .cta,.random-actions .secondary-btn{min-height:86px!important;font-size:clamp(18px,5vw,24px)!important;line-height:1.02!important;padding:10px 8px!important}

/* SAGA detail · aire real entre texto y barra, y elimina falsas barras superiores. */
.saga-percent{padding:14px 14px 18px!important}
.saga-percent-line{margin-bottom:14px!important;position:relative!important;z-index:2!important;height:auto!important;background:none!important}
.saga-percent>div:not(.saga-percent-line):not(.saga-progress){display:none!important}
.saga-progress{position:relative!important;z-index:1!important;margin-top:0!important}

/* EXTRAS · póster individual un poco más pequeño. */
.extra-main-poster{width:min(340px,82vw)!important;max-width:82vw!important}

/* PLAYER · centrar iconos y nota móvil. */
.player-controls-main button{display:grid!important;place-items:center!important;text-align:center!important;line-height:1!important;padding:0!important}
#playerPrev,#playerNext{font-size:56px!important}
#playerPlay{font-size:52px!important}
#playerPlay.is-pause{font-size:42px!important}
#playerPlay.is-play{font-size:52px!important}
.player-mobile-volume-note{margin:14px 0 6px!important;text-align:center!important;color:#98b7bf!important;font-size:11px!important;line-height:1.45!important}

/* INSTALAR APP · modal con vídeo y resumen por plataforma. */
.install-guide-card{width:min(94vw,460px)!important;max-height:min(92svh,860px)!important;overflow:auto!important}
.install-guide-video-wrap{position:relative!important;width:100%!important;aspect-ratio:9/16!important;max-height:44svh!important;border:1px solid #375a65!important;border-radius:14px!important;overflow:hidden!important;background:#000!important;margin:10px 0 16px!important;box-shadow:0 16px 38px rgba(0,0,0,.45)!important}
.install-guide-video{display:block!important;width:100%!important;height:100%!important;object-fit:cover!important;background:#000!important}
.install-guide-video-fallback{display:none!important;position:absolute!important;inset:0!important;place-items:center!important;text-align:center!important;padding:18px!important;background:rgba(0,0,0,.82)!important;color:#b9d0d7!important}
.install-guide-video-wrap.video-unavailable .install-guide-video-fallback{display:grid!important}
.install-platform-summary{margin:14px 0 10px!important;border:1px solid #28454e!important;background:#08151a!important;border-radius:12px!important;padding:12px 12px 10px!important}
.install-platform-summary strong{display:block!important;margin-bottom:8px!important;color:#ffe394!important;font-family:Oxanium,sans-serif!important;font-size:12px!important;letter-spacing:.07em!important}
.install-platform-summary ul{margin:0!important;padding-left:18px!important;color:#d6e4e8!important}
.install-platform-summary li{margin:0 0 6px!important;line-height:1.45!important}

/* ============================================================
   DISTURBING STORIES APP v2.20
   Timeline / Random / Player / Install final refinements
   ============================================================ */

/* HOME · caja INSTALA ESTA APP compacta y llena correctamente. */
.view.home-view>.install-app-panel{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:12px!important;
  min-height:58px!important;
  padding:12px 14px!important;
}
.install-app-panel-copy{display:flex!important;align-items:center!important;min-width:0!important}
.install-app-panel-copy strong{font-size:clamp(13px,3.8vw,16px)!important;line-height:1!important;white-space:nowrap!important}
.install-app-panel-copy>span{display:none!important}
.install-app-panel-cta{justify-self:end!important;display:flex!important;align-items:center!important;gap:8px!important;white-space:nowrap!important}
.install-app-panel-cta .install-app-svg{width:24px!important;height:24px!important}
.install-app-panel-cta b{font-size:clamp(9px,2.7vw,11px)!important;line-height:1.05!important}
@media(max-width:390px){.view.home-view>.install-app-panel{grid-template-columns:minmax(0,1fr) auto!important;gap:8px!important;padding:11px 10px!important}.install-app-panel-copy strong{font-size:12px!important}.install-app-panel-cta b{font-size:8px!important}.install-app-panel-cta .install-app-svg{width:21px!important;height:21px!important}}

/* TIMELINE · sin caja grupal; ramificación secundaria desplazada a la derecha. */
.timeline-multi .timeline-items{
  background:none!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  padding-top:10px!important;
  padding-bottom:10px!important;
}
.timeline-items{
  margin-left:18px!important;
  padding-left:24px!important;
  overflow:visible!important;
}
.timeline-item{overflow:visible!important}
.timeline-item:before{
  content:''!important;
  position:absolute!important;
  left:-24px!important;
  top:50%!important;
  width:24px!important;
  border-top:2px solid #5db7d1!important;
  opacity:1!important;
  z-index:1!important;
}
.timeline-multi .timeline-items:before{
  content:''!important;
  position:absolute!important;
  left:0!important;
  top:calc(58px + 10px)!important;
  bottom:calc(58px + 10px)!important;
  border-left:3px solid #63c0db!important;
  opacity:.92!important;
  z-index:0!important;
}
.timeline-multi .timeline-items:after{
  content:''!important;
  position:absolute!important;
  left:-29px!important;
  top:calc(58px + 10px)!important;
  width:29px!important;
  border-top:2px solid #63c0db!important;
  opacity:.92!important;
  z-index:0!important;
}
.timeline-multi .timeline-item:last-child:after{display:none!important;content:none!important}
.timeline-year-axis i{display:block!important;left:50%!important;right:-29px!important;top:50%!important;border-top:2px solid #426b77!important;z-index:1!important}
/* Una sola línea desde la esfera anual hasta la ramificación. */
.timeline-multi .timeline-year-axis i{right:-47px!important}
/* Mantener la animación progresiva de las nuevas líneas. */
[data-timeline-reveal].timeline-multi .timeline-items:before{transform:scaleY(0)!important;transform-origin:top center!important;opacity:0!important}
[data-timeline-reveal].timeline-multi .timeline-items:after{transform:scaleX(0)!important;transform-origin:left center!important;opacity:0!important}
[data-timeline-reveal].timeline-multi .timeline-item:before{transform:scaleX(0)!important;transform-origin:left center!important;opacity:0!important}
[data-timeline-reveal].timeline-reveal-in.timeline-multi .timeline-items:before{transform:scaleY(1)!important;opacity:.92!important;transition:transform .72s .18s cubic-bezier(.2,.8,.2,1),opacity .25s .16s ease!important}
[data-timeline-reveal].timeline-reveal-in.timeline-multi .timeline-items:after{transform:scaleX(1)!important;opacity:.92!important;transition:transform .48s .22s cubic-bezier(.2,.8,.2,1),opacity .2s .2s ease!important}
[data-timeline-reveal].timeline-reveal-in.timeline-multi .timeline-item:before{transform:scaleX(1)!important;opacity:1!important;transition:transform .42s .28s cubic-bezier(.2,.8,.2,1),opacity .2s .26s ease!important}
@media(max-width:470px){
  .timeline-items{margin-left:14px!important;padding-left:20px!important}
  .timeline-item:before{left:-20px!important;width:20px!important}
  .timeline-multi .timeline-items:before{left:0!important}
  .timeline-multi .timeline-items:after{left:-25px!important;width:25px!important}
  .timeline-multi .timeline-year-axis i{right:-39px!important}
}

/* RANDOM · resultado algo más compacto y CTAs de una sola línea. */
.random-result-slot{width:min(96%,460px)!important;margin-top:8px!important}
.random-result-v25{padding:8px 9px!important;gap:8px!important}
.random-result{grid-template-columns:minmax(76px,92px) minmax(0,1fr)!important;gap:9px!important}
.random-result-poster{max-width:92px!important;margin:0!important}
.random-result-copy h2{font-size:clamp(11px,3vw,14px)!important;line-height:1.08!important}
.random-result-copy p{font-size:8px!important;margin-top:4px!important}
.random-actions{gap:7px!important;margin-top:2px!important}
.random-actions .cta,.random-actions .secondary-btn{
  min-height:54px!important;
  font-size:clamp(12px,3.2vw,15px)!important;
  line-height:1!important;
  padding:8px 6px!important;
  white-space:nowrap!important;
}

/* PLAYER · iconos realmente centrados verticalmente. */
.player-controls-main button{
  position:relative!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  padding:0!important;
  line-height:1!important;
  overflow:hidden!important;
}
#playerPrev,#playerNext{padding-bottom:5px!important}
#playerPlay{padding-top:1px!important}
#playerPlay.is-pause{font-size:40px!important}
.player-mobile-volume-note{
  opacity:0;
  transform:translateY(10px);
  animation:playerMobileNoteInV220 .62s .18s cubic-bezier(.2,.8,.2,1) forwards!important;
}
@keyframes playerMobileNoteInV220{to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.player-mobile-volume-note{opacity:1!important;transform:none!important;animation:none!important}}

/* INSTALL tutorial · escritorio sin vídeo, móvil/iPhone conserva soporte. */
.install-guide-card:not(:has(.install-guide-video-wrap)){padding-top:26px!important}
/* v2.20 · Timeline connector simplification: sphere → branch → story, no duplicate upper line. */
.timeline-year-axis i{display:block!important;left:50%!important;right:-18px!important;top:50%!important;border-top:2px solid #426b77!important}
.timeline-multi .timeline-items:after{display:none!important;content:none!important}
[data-timeline-reveal].timeline-multi .timeline-items:after{display:none!important;content:none!important}
@media(max-width:470px){.timeline-year-axis i{right:-14px!important}.timeline-multi .timeline-items:after{display:none!important}}

/* ============================================================
   DISTURBING STORIES APP v2.21
   Timeline final + install alignment
   ============================================================ */

/* HOME · título + icono/guía juntos, una sola línea y centrados. */
.view.home-view>.install-app-panel{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:14px!important;
  min-height:58px!important;
  padding:11px 14px!important;
  text-align:center!important;
}
.install-app-panel-copy,.install-app-panel-cta{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex:0 0 auto!important;
  width:auto!important;
  min-width:0!important;
}
.install-app-panel-copy strong{font-size:clamp(13px,3.7vw,16px)!important;white-space:nowrap!important}
.install-app-panel-cta{gap:7px!important}
.install-app-panel-cta b{font-size:clamp(9px,2.6vw,11px)!important;white-space:nowrap!important}
@media(max-width:370px){.view.home-view>.install-app-panel{gap:8px!important;padding-inline:8px!important}.install-app-panel-copy strong{font-size:11px!important}.install-app-panel-cta b{font-size:7.5px!important}.install-app-panel-cta .install-app-svg{width:19px!important;height:19px!important}}

/* TIMELINE · rama exacta entre el centro de la primera y última caja. */
.timeline-multi .timeline-items{
  position:relative!important;
  background:none!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  padding-top:10px!important;
  padding-bottom:10px!important;
}
.timeline-multi .timeline-items:before{
  content:''!important;
  position:absolute!important;
  left:6px!important;
  top:var(--timeline-branch-top,50px)!important;
  bottom:var(--timeline-branch-bottom,50px)!important;
  border-left:3px solid #63c0db!important;
  opacity:.95!important;
  z-index:0!important;
}
.timeline-multi .timeline-items:after{display:none!important;content:none!important}
.timeline-multi .timeline-item:before{
  content:''!important;
  position:absolute!important;
  left:-18px!important;
  top:50%!important;
  width:18px!important;
  border-top:2px solid #63c0db!important;
  opacity:1!important;
  z-index:1!important;
}
.timeline-multi .timeline-item:last-child:after{display:none!important;content:none!important}
.timeline-multi .timeline-year-axis i{right:-53px!important}
[data-timeline-reveal].timeline-multi .timeline-items:before{transform:scaleY(0)!important;transform-origin:top center!important;opacity:0!important}
[data-timeline-reveal].timeline-reveal-in.timeline-multi .timeline-items:before{transform:scaleY(1)!important;opacity:.95!important;transition:transform .72s .18s cubic-bezier(.2,.8,.2,1),opacity .25s .16s ease!important}
[data-timeline-reveal].timeline-multi .timeline-item:before{transform:scaleX(0)!important;transform-origin:left center!important;opacity:0!important}
[data-timeline-reveal].timeline-reveal-in.timeline-multi .timeline-item:before{transform:scaleX(1)!important;opacity:1!important;transition:transform .42s .28s cubic-bezier(.2,.8,.2,1),opacity .2s .26s ease!important}
@media(max-width:470px){
  .timeline-multi .timeline-items:before{left:5px!important}
  .timeline-multi .timeline-item:before{left:-15px!important;width:15px!important}
  .timeline-multi .timeline-year-axis i{right:-43px!important}
}

/* GAMES / MICRO · la caja solo comunica PRÓXIMAMENTE. */
.future-placeholder-box{display:grid!important;place-items:center!important;text-align:center!important;min-height:120px!important}
.future-placeholder-box strong{margin:0!important}

/* ============================================================
   DISTURBING STORIES APP v2.22 · CIERRE 2.x
   ============================================================ */

/* Story exclusiva bloqueada sin teaser público: mostrar el póster en el mismo marco 9:16. */
.locked-story-page>.locked-hero-teaser.locked-poster-fallback{display:block!important;width:min(100%,520px)!important;max-width:520px!important;margin:0 auto 16px!important;padding:0!important}
.locked-story-page>.locked-hero-teaser.locked-poster-fallback .locked-teaser-video{position:relative!important;width:min(100%,calc(68svh * 9 / 16))!important;max-width:100%!important;aspect-ratio:9/16!important;margin:0 auto!important;overflow:hidden!important;background:#000!important}
.locked-story-page>.locked-hero-teaser .locked-teaser-poster{position:absolute!important;inset:0!important;display:block!important;width:100%!important;height:100%!important;object-fit:contain!important;object-position:center center!important;background:#000!important;visibility:visible!important}
.locked-story-page>.locked-hero-teaser .locked-poster-empty{position:absolute!important;inset:0!important;background:#030709!important}

/* CASSETTES / TAPES: el icono de tipo vive en el HEADER, no se repite junto al título. */
.media-section-head>.media-title-no-icon{display:block!important}
.media-section-head>.media-title-no-icon>div{display:block!important}
.media-section-head>.media-title-no-icon svg{display:none!important}

/* GAMES / MICRO-PESADILLAS: la caja central contiene exclusivamente PRÓXIMAMENTE. */
.future-placeholder-box>*:not(strong){display:none!important}
.future-placeholder-box strong{display:block!important;margin:0!important}

/* La opción de instalación nunca debe ocupar espacio en modo PWA instalada. */
#installBtn.hidden,#installBtn[aria-hidden="true"]{display:none!important}

/* ============================================================
   DISTURBING STORIES APP v2.23
   Fallback póster · Media locked · YouTube /videos · Intro
   ============================================================ */

/* Story bloqueada sin teaser: el póster se muestra limpio, sin caja 9:16 artificial. */
.locked-story-page>.locked-hero-teaser.locked-poster-fallback{
  display:block!important;
  width:min(100%,calc(68svh * 9 / 16))!important;
  max-width:520px!important;
  margin:0 auto 16px!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  overflow:visible!important;
}
.locked-story-page>.locked-hero-teaser.locked-poster-fallback .locked-teaser-poster{
  position:static!important;
  inset:auto!important;
  display:block!important;
  width:100%!important;
  height:auto!important;
  max-height:none!important;
  object-fit:contain!important;
  object-position:center center!important;
  margin:0 auto!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  visibility:visible!important;
}
.locked-story-page>.locked-hero-teaser.locked-poster-fallback.locked-poster-empty{min-height:0!important;height:0!important;margin-bottom:0!important}

/* CASSETTES / TAPES: también aparecen exclusivas bloqueadas y todos sus iconos a la derecha. */
.media-collection-card{
  grid-template-columns:58px minmax(0,1fr) auto!important;
  min-height:102px!important;
  padding:8px 9px 8px 8px!important;
}
.media-collection-card.is-locked{background:linear-gradient(90deg,#071116,#120709)!important}
.media-collection-icons{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:6px!important;min-width:30px!important}
.media-list-icon{width:28px!important;height:28px!important;border:1px solid #31535c!important;border-radius:50%!important;display:grid!important;place-items:center!important;background:#071116!important}
.media-list-icon .media-feature-svg,.media-list-icon .lock-svg{width:16px!important;height:16px!important;fill:none!important;stroke:currentColor!important;stroke-width:1.9!important}
.media-list-icon.audio{color:#72ffad!important;border-color:#267d50!important}
.media-list-icon.video{color:#7bd7ff!important;border-color:#2d7eaa!important}
.media-list-icon.lock.open{color:#75ff9b!important;border-color:#287b43!important;background:#06190d!important}
.media-list-icon.lock.closed{color:#ff686d!important;border-color:#8d272d!important;background:#230507!important}

/* Resumen superior en una sola línea por caja, usando el color de cada subsección. */
.media-summary{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
.media-summary>div{display:flex!important;align-items:center!important;justify-content:center!important;gap:6px!important;min-width:0!important;padding:11px 8px!important;white-space:nowrap!important;overflow:hidden!important}
.media-summary span,.media-summary strong,.media-summary em{display:inline!important;margin:0!important;font-family:Oxanium,sans-serif!important;font-size:clamp(9px,2.7vw,12px)!important;line-height:1!important;font-style:normal!important;font-weight:800!important;letter-spacing:.035em!important;white-space:nowrap!important}
.cassettes .media-summary span,.cassettes .media-summary strong,.cassettes .media-summary em{color:#7dffb3!important}
.tapes .media-summary span,.tapes .media-summary strong,.tapes .media-summary em{color:#8bdcff!important}
@media(max-width:360px){.media-summary>div{gap:4px!important;padding-inline:5px!important}.media-summary span,.media-summary strong,.media-summary em{font-size:8px!important;letter-spacing:.01em!important}}

/* MICRO-PESADILLAS: icono ligeramente menor tanto en portal como en subsección/header. */
.portal-btn.nightmares .nightmare-diamond{width:12px!important;height:12px!important;border-width:1.2px!important}
.section-indicator-micro .nightmare-diamond{width:24px!important;height:24px!important;border-width:1.8px!important}

/* ============================================================
   DISTURBING STORIES APP v3.0
   Inicio rama 3.x · CASSETTES / TAPES
   ============================================================ */

/* Resumen: cifras blancas, más visibles que las etiquetas. */
.media-summary>div{gap:7px!important}
.media-summary span,.media-summary em{color:inherit!important;opacity:.72!important;font-weight:700!important}
.media-summary strong{
  color:#fff!important;
  opacity:1!important;
  font-size:clamp(13px,3.4vw,17px)!important;
  font-weight:900!important;
  text-shadow:0 0 10px rgba(255,255,255,.14)!important;
}
.cassettes .media-summary>div{color:#7dffb3!important}
.tapes .media-summary>div{color:#8bdcff!important}

/* Catálogo multimedia: todos los estados/iconos a la derecha, sin duplicarlos sobre el póster. */
.media-collection-card{
  grid-template-columns:58px minmax(0,1fr) auto!important;
  gap:10px!important;
}
.media-collection-poster{position:relative!important}
.media-collection-icons{
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:6px!important;
  min-width:30px!important;
}
.media-list-icon{
  width:28px!important;
  height:28px!important;
  display:grid!important;
  place-items:center!important;
  border:1px solid #31535c!important;
  border-radius:50%!important;
  background:#071116!important;
}
.media-list-icon svg{width:17px!important;height:17px!important}
.media-list-icon.audio{color:#7dffb3!important;border-color:#287c4d!important}
.media-list-icon.video{color:#8bdcff!important;border-color:#2a7399!important}
.media-list-icon.extra{color:#f3d970!important;border-color:#7d6e31!important;font:900 15px/1 Oxanium,sans-serif!important}
.media-list-icon.lock.closed{color:#ff6f7b!important;border-color:#8e2d36!important;background:#1a0709!important}
.media-list-icon.lock.open{color:#7dff9f!important;border-color:#2c7e49!important;background:#07170d!important}
.media-duration-row{display:flex!important;align-items:center!important;gap:7px!important;flex-wrap:wrap!important;margin-top:2px!important}
.media-duration-row em{margin:0!important}
.media-read-bubble{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  border:1px solid #2f8852!important;
  background:#071b10!important;
  color:#8fffb0!important;
  border-radius:999px!important;
  padding:3px 7px!important;
  font:800 7px/1 Oxanium,sans-serif!important;
  letter-spacing:.06em!important;
  white-space:nowrap!important;
}

/* No repetir la marca como etiqueta de sección interna. */
.media-title-no-icon .eyebrow,.future-placeholder>.eyebrow{display:none!important}

/* ============================================================
   DISTURBING STORIES APP v3.1
   Importer persistente · media · instalación · Random · Timeline
   ============================================================ */

/* CASSETTES / TAPES · las cifras del resumen mandan visualmente. */
.media-collection.cassettes .media-summary>div>strong,
.media-collection.tapes .media-summary>div>strong{
  color:#fff!important;
  opacity:1!important;
  font-size:clamp(15px,4vw,19px)!important;
  font-weight:900!important;
  letter-spacing:.02em!important;
  text-shadow:0 0 12px rgba(255,255,255,.22)!important;
}
.media-collection.cassettes .media-summary>div>span,
.media-collection.cassettes .media-summary>div>em{color:#7dffb3!important;opacity:.76!important}
.media-collection.tapes .media-summary>div>span,
.media-collection.tapes .media-summary>div>em{color:#8bdcff!important;opacity:.76!important}
/* EXTRAS usa +; ✓ queda reservado a estados realmente leídos. */
.media-list-icon.extra{font-size:19px!important;font-weight:700!important}

/* INSTALAR APP · instrucciones mínimas, visuales y sin resumen repetido. */
.install-guide-card{padding-bottom:18px!important}
.install-guide-card h2{margin-bottom:12px!important}
.install-quick-steps{display:grid!important;gap:8px!important;margin:8px 0 10px!important}
.install-quick-steps>div{display:grid!important;grid-template-columns:36px minmax(0,1fr)!important;gap:10px!important;align-items:center!important;border:1px solid #28454e!important;background:#08151a!important;border-radius:11px!important;padding:8px 10px!important}
.install-step-icon{display:grid!important;place-items:center!important;width:34px!important;height:34px!important;border-radius:9px!important;background:#10313a!important;color:#dffcff!important;font:800 18px/1 Oxanium,sans-serif!important}
.install-quick-steps span{color:#dce9ec!important;font-size:12px!important;line-height:1.32!important}
.install-speed-note{display:block!important;margin:10px 0 0!important;color:#82a4ad!important;font-size:10px!important;line-height:1.35!important;text-align:center!important}
.install-guide-actions{margin-top:12px!important}
.install-guide-video-wrap{margin-bottom:12px!important}

/* PLAYER · segunda línea de Spotify. */
.spotify-companion span{display:grid!important;gap:4px!important;min-width:0!important}
.spotify-companion strong{margin:0!important}
.spotify-companion small{display:block!important;color:#78b88a!important;font-size:clamp(8px,2.35vw,10px)!important;line-height:1.2!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}

/* MENÚ LATERAL · HOME algo mayor. */
.drawer-home-icon{font-size:25px!important;transform:scale(1.08)!important;transform-origin:center!important}

/* RULETA RANDOM · resultado con póster y LEER STORY simétricos. */
.random-result-slot{width:min(98%,500px)!important;overflow:visible!important}
.random-result-v25{
  --random-tile:clamp(76px,23vw,94px);
  grid-template-columns:var(--random-tile) minmax(0,1fr) var(--random-tile)!important;
  gap:10px!important;
  align-items:center!important;
  padding:10px!important;
  overflow:visible!important;
}
.random-result-v25 .random-result-poster{
  width:var(--random-tile)!important;
  max-width:none!important;
  margin:0!important;
  aspect-ratio:2/3!important;
  align-self:center!important;
  overflow:hidden!important;
}
.random-result-v25 .random-result-poster img{width:100%!important;height:100%!important;object-fit:cover!important}
.random-result-copy{min-width:0!important;text-align:left!important}
.random-result-copy .eyebrow{font-size:clamp(10px,2.7vw,12px)!important;margin-bottom:5px!important}
.random-result-copy h2{font-size:clamp(18px,5vw,24px)!important;line-height:1.02!important;margin:0 0 8px!important;overflow-wrap:anywhere!important}
.random-result-copy p{font-size:clamp(12px,3.25vw,15px)!important;line-height:1.18!important;gap:7px!important;margin:0!important}
.random-result-v25 .random-actions{grid-column:3!important;grid-row:1!important;display:block!important;margin:0!important;width:var(--random-tile)!important;height:calc(var(--random-tile) * 1.5)!important}
.random-result-v25 .random-actions .random-read-tile{
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  padding:0!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  align-items:center!important;
  gap:3px!important;
  font-family:Oxanium,sans-serif!important;
  font-size:clamp(17px,5vw,23px)!important;
  line-height:.98!important;
  letter-spacing:.055em!important;
  text-align:center!important;
}
.random-result-v25 .random-actions .random-read-tile span{display:block!important}
/* El póster debe quedar por encima del flash al entrar en la Story para que el efecto sea visible. */
.random-result-poster.story-enter-target{z-index:1001!important;animation:none!important;overflow:visible!important}
.random-result-poster.story-enter-target img{animation:none!important;border-radius:12px!important}
@media(max-width:360px){
  .random-result-v25{--random-tile:72px;gap:7px!important;padding:8px!important}
  .random-result-copy h2{font-size:16px!important}.random-result-copy p{font-size:11px!important}.random-result-copy .eyebrow{font-size:9px!important}
  .random-result-v25 .random-actions .random-read-tile{font-size:16px!important}
}

/* TIMELINE · contador por EDAD a la izquierda de +/−. */
.timeline-era-name{min-width:0!important}
.timeline-era-right{margin-left:auto!important;display:flex!important;align-items:center!important;gap:10px!important;flex:0 0 auto!important}
.timeline-era-right em{font-style:normal!important;color:#e5f7fa!important;font:800 9px/1 Oxanium,sans-serif!important;letter-spacing:.06em!important;white-space:nowrap!important;opacity:.82!important}
.timeline-era-right b{display:block!important;min-width:16px!important;text-align:center!important}
@media(max-width:370px){.timeline-era-right{gap:7px!important}.timeline-era-right em{font-size:8px!important}}
/* v3.1 fine tune · Spotify subtitle must remain fully readable. */
.spotify-companion small{white-space:normal!important;overflow:visible!important;text-overflow:clip!important}

/* ============================================================
   DISTURBING STORIES APP v3.2
   Instalación desktop · SAGAS · Continuar leyendo · RANDOM
   ============================================================ */

/* MIS STORIES · toda la tarjeta de CONTINUAR LEYENDO es interactiva. */
.continue-card-link{cursor:pointer!important;transition:transform .18s ease,filter .18s ease,border-color .18s ease!important;outline:none!important}
.continue-card-link:hover,.continue-card-link:focus-visible{filter:brightness(1.12)!important;border-color:#426976!important}
.continue-card-link:active{transform:scale(.992)!important}
.continue-card-link .continue-cover,.continue-card-link .resume-arrow{pointer-events:none!important}
.continue-card-link .resume-arrow{display:grid!important;place-items:center!important}

/* SAGAS · estado de la saga en la esquina superior izquierda. */
.saga-card{position:relative!important}
.saga-status-bubble{position:absolute!important;top:10px!important;left:10px!important;z-index:6!important;padding:6px 9px!important;border-radius:999px!important;font:900 9px/1 Oxanium,sans-serif!important;letter-spacing:.08em!important;text-transform:uppercase!important;box-shadow:0 4px 14px rgba(0,0,0,.36)!important;backdrop-filter:blur(6px)!important;-webkit-backdrop-filter:blur(6px)!important}
.saga-status-complete{color:#c9f5ff!important;background:rgba(8,45,64,.88)!important;border:1px solid #3eb8e8!important;box-shadow:0 0 16px rgba(62,184,232,.20),0 4px 14px rgba(0,0,0,.36)!important}
.saga-status-read{color:#ffe79a!important;background:rgba(58,42,5,.90)!important;border:1px solid #d9ad42!important;box-shadow:0 0 17px rgba(217,173,66,.22),0 4px 14px rgba(0,0,0,.36)!important}
.saga-feature-icon.extra{font-family:Oxanium,sans-serif!important;font-weight:900!important}

/* RULETA RANDOM · resultado inmediato, luminoso y dinámico. */
.random-result-slot.reward-in{animation:none!important;overflow:visible!important}
.random-result-slot.reward-in .random-result-v25{position:relative!important;isolation:isolate!important;animation:randomResultCardV32 .58s cubic-bezier(.12,.88,.18,1.08) both!important;box-shadow:0 0 0 1px rgba(110,222,255,.18),0 0 32px rgba(76,190,235,.24),0 14px 38px rgba(0,0,0,.46)!important}
.random-result-slot.reward-in .random-result-v25::before{content:'';position:absolute;inset:-2px;z-index:-1;border-radius:13px;background:linear-gradient(105deg,transparent 10%,rgba(116,231,255,.34) 35%,rgba(255,226,132,.22) 50%,rgba(116,231,255,.34) 65%,transparent 90%);filter:blur(7px);opacity:0;animation:randomResultGlowV32 .8s ease-out both!important;pointer-events:none}
.random-result-slot.reward-in .random-result-poster{animation:randomResultPosterV32 .72s cubic-bezier(.18,.92,.22,1.08) both!important}
.random-result-slot.reward-in .random-result-copy{animation:randomResultCopyV32 .5s .05s ease-out both!important}
.random-result-slot.reward-in .random-read-tile{animation:randomResultActionV32 .5s .10s cubic-bezier(.18,.9,.22,1.08) both!important}
@keyframes randomResultCardV32{0%{opacity:0;transform:translate3d(0,18px,0) scale(.94);filter:brightness(1.8) blur(3px)}38%{opacity:1;transform:translate3d(0,-5px,0) scale(1.025);filter:brightness(1.28) blur(0)}70%{transform:translate3d(2px,2px,0) scale(.995)}100%{opacity:1;transform:none;filter:none}}
@keyframes randomResultGlowV32{0%{opacity:0;transform:scale(.94)}28%{opacity:1;transform:scale(1.035)}100%{opacity:0;transform:scale(1.08)}}
@keyframes randomResultPosterV32{0%{opacity:0;transform:translateX(-14px) rotate(-1.5deg) scale(.94)}55%{opacity:1;transform:translateX(3px) rotate(.5deg) scale(1.035)}100%{opacity:1;transform:none}}
@keyframes randomResultCopyV32{0%{opacity:0;transform:translateY(8px)}100%{opacity:1;transform:none}}
@keyframes randomResultActionV32{0%{opacity:0;transform:translateX(12px) scale(.94)}65%{opacity:1;transform:translateX(-2px) scale(1.025)}100%{opacity:1;transform:none}}
/* El efecto de entrada en Story no debe tapar la tarjeta elegida. */
.random-result-poster.story-enter-target{position:relative!important;z-index:1600!important;isolation:isolate!important;filter:brightness(1.14) contrast(1.14) saturate(1.12)!important}
.random-result-poster.story-enter-target::after{content:'';position:absolute;inset:-7px;z-index:-1;border-radius:16px;box-shadow:0 0 22px 7px rgba(107,224,239,.72),0 0 46px 16px rgba(45,125,194,.42)!important;pointer-events:none}
@media(prefers-reduced-motion:reduce){.random-result-slot.reward-in .random-result-v25,.random-result-slot.reward-in .random-result-v25::before,.random-result-slot.reward-in .random-result-poster,.random-result-slot.reward-in .random-result-copy,.random-result-slot.reward-in .random-read-tile{animation:none!important}}


/* ============================================================
   DISTURBING STORIES APP v3.3
   TIMELINE invertido · instalación desktop reforzada
   ============================================================ */

/* La instalación desktop sigue siendo directa; el CTA de HOME lo refleja. */
@media (pointer:fine){.install-app-panel-cta b{letter-spacing:.055em!important}}


/* ============================================================
   DISTURBING STORIES APP v3.4
   Intro estable · Extras · Multimedia multidioma · Booktrailers
   ============================================================ */

/* El candado de EXTRAS queda visualmente centrado en su círculo. */
.extra-card.poster-only .ex-badge{display:grid!important;place-items:center!important;line-height:0!important}
.extra-card.poster-only .ex-badge .lock-svg{display:block!important;margin:0!important;transform:translateY(1px)!important}

/* CASSETTES / TAPES: título compacto + selector de idioma a la derecha. */
.media-heading-row{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;flex-wrap:wrap!important;width:100%!important}
.media-title-no-icon h1{font-family:Oxanium,Impact,Haettenschweiler,"Arial Narrow Bold",sans-serif!important;font-weight:900!important;letter-spacing:.045em!important;text-transform:uppercase!important;margin:0!important}
.media-language-switch{display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:5px!important;flex-wrap:wrap!important}
.media-language-switch button{border:1px solid #314249!important;background:#071014!important;color:#71858b!important;border-radius:999px!important;padding:7px 9px!important;font:800 7px/1 Oxanium,sans-serif!important;letter-spacing:.045em!important;white-space:nowrap!important}
.cassettes .media-language-switch button.active{border-color:#2f8f59!important;background:#092016!important;color:#8effb5!important;box-shadow:0 0 12px rgba(72,224,132,.14)!important}
.tapes .media-language-switch button.active{border-color:#2b7ea8!important;background:#091923!important;color:#92dcff!important;box-shadow:0 0 12px rgba(77,181,235,.14)!important}
@media(max-width:430px){.media-heading-row{align-items:flex-start!important}.media-language-switch{width:100%!important;justify-content:flex-start!important}.media-language-switch button{padding:7px 8px!important;font-size:6.5px!important}}

/* BOOKTRAILER dentro de cada libro: Amazon -> trailer -> estadísticas. */
.book-trailer{margin:14px 0 12px!important}
.book-trailer-label{font:900 9px/1 Oxanium,sans-serif!important;letter-spacing:.12em!important;color:#8fa4aa!important;margin:0 0 7px!important}
.book-trailer-video{position:relative!important;width:100%!important;aspect-ratio:16/9!important;border:1px solid #26373d!important;border-radius:12px!important;overflow:hidden!important;background:#020405!important;box-shadow:0 0 22px rgba(86,190,220,.06)!important}
.book-trailer-video iframe{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;border:0!important}


/* ============================================================
   DISTURBING STORIES APP v3.5
   Extras · idiomas multimedia · próxima Story
   ============================================================ */

/* EXTRAS · texto manual inmediatamente debajo del póster. */
.extra-detail>.extra-main-poster+.extra-text{margin-top:-2px!important;margin-bottom:14px!important}
.extra-detail>.extra-text+.physical-extra-notice{margin-top:0!important}

/* CASSETTES / TAPES · selector de idioma aproximadamente al doble de tamaño. */
.media-language-switch{gap:8px!important}
.media-language-switch button{min-height:38px!important;padding:11px 15px!important;font-size:10px!important;letter-spacing:.05em!important}
@media(max-width:430px){.media-language-switch{gap:7px!important}.media-language-switch button{min-height:35px!important;padding:10px 12px!important;font-size:9px!important}}

/* HOME · cuenta atrás de la próxima Story. */
.home-next-story{margin:12px 0 18px!important;border:1px solid #334951!important;background:linear-gradient(145deg,#071014,#0b171b)!important;border-radius:15px!important;padding:15px 14px!important;box-shadow:0 10px 26px rgba(0,0,0,.24),inset 0 0 22px rgba(98,211,231,.025)!important}
.home-next-story-label{font:900 9px/1 Oxanium,sans-serif!important;letter-spacing:.13em!important;color:#8ea7ad!important;margin-bottom:11px!important}
.home-next-story-countdown{display:flex!important;align-items:center!important;justify-content:center!important;gap:7px!important;min-height:48px!important;color:#fff!important}
.home-next-story-countdown>span{display:grid!important;justify-items:center!important;gap:4px!important;min-width:48px!important}
.home-next-story-countdown b{font:900 clamp(24px,7vw,35px)/.9 Oxanium,sans-serif!important;letter-spacing:.02em!important;color:#fff!important;text-shadow:0 0 14px rgba(136,230,244,.15)!important}
.home-next-story-countdown small{font:800 6.5px/1 Oxanium,sans-serif!important;letter-spacing:.10em!important;color:#6f8d94!important}
.home-next-story-countdown i{font-style:normal!important;font:800 20px/1 Oxanium,sans-serif!important;color:#34535b!important;transform:translateY(-6px)!important}
.home-next-pending{font:900 13px/1 Oxanium,sans-serif!important;letter-spacing:.10em!important;color:#7d969c!important}
@media(max-width:370px){.home-next-story-countdown{gap:4px!important}.home-next-story-countdown>span{min-width:42px!important}.home-next-story-countdown b{font-size:22px!important}.home-next-story-countdown i{font-size:17px!important}}

/* ============================================================
   DISTURBING STORIES APP v4.0
   HOME · countdown + continuar leyendo
   ============================================================ */

/* PRÓXIMA STORY: mismo ancho que el resto de cajas de HOME y nueva identidad dorada. */
.home-next-story{
  margin:12px var(--reader-pad) 18px!important;
  border-color:#6f5a24!important;
  background:linear-gradient(145deg,#151005,#0d0a04)!important;
  box-shadow:0 10px 26px rgba(0,0,0,.28),inset 0 0 24px rgba(224,179,74,.055),0 0 18px rgba(211,164,54,.035)!important;
}
.home-next-story-label{
  text-align:center!important;
  color:#e4c56d!important;
  text-shadow:0 0 11px rgba(224,179,74,.16)!important;
}
.home-next-story-countdown b{color:#fff!important;text-shadow:0 0 14px rgba(224,179,74,.20)!important}
.home-next-story-countdown small{color:#b59a57!important}
.home-next-story-countdown i{color:#806b37!important}
.home-next-pending{color:#d7ba68!important}

/* CONTINUAR LEYENDO: toda la caja funciona como destino, manteniendo el botón como pista visual. */
.home-continue-link{cursor:pointer!important;outline:none!important;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease!important}
.home-continue-link:hover,.home-continue-link:focus-visible{border-color:#405b64!important;box-shadow:0 0 18px rgba(113,206,230,.08)!important}
.home-continue-link:active{transform:scale(.992)!important}



/* ===== v4.0 USER / AVATARES ===== */
.drawer-user{font-size:1.35em!important}.user-page{padding-bottom:120px}.user-hero{display:flex;gap:18px;align-items:center;padding:18px;border:1px solid rgba(215,181,95,.36);background:rgba(7,10,13,.88);margin-bottom:18px}.user-avatar-current{width:92px;height:92px;flex:0 0 92px;border-radius:50%;overflow:hidden;border:2px solid rgba(215,181,95,.8);background:#07090b;display:grid;place-items:center}.user-avatar-img,.avatar-choice-img,.avatar-reward-img{width:100%;height:100%;object-fit:cover}.avatar-missing{visibility:hidden}.user-email{opacity:.72}.user-avatar-section,.user-account-panel{padding:18px;border:1px solid rgba(255,255,255,.14);background:rgba(4,8,11,.9);margin-top:16px}.avatar-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.avatar-choice{position:relative;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.16);padding:8px;color:#fff;min-width:0}.avatar-choice.selected{border-color:#d8b75e;box-shadow:0 0 18px rgba(216,183,94,.22)}.avatar-choice.locked{opacity:.55}.avatar-choice-img{aspect-ratio:1;border-radius:50%;background:#111}.avatar-choice strong,.avatar-choice small{display:block;margin-top:6px;font-size:11px}.avatar-choice small{opacity:.68;min-height:28px}.avatar-lock{position:absolute;right:8px;top:8px;background:#050607;border-radius:50%;padding:4px}.user-form{display:grid;gap:12px;margin-top:14px}.user-form label{font-size:11px;letter-spacing:.09em}.user-form input{display:block;width:100%;margin-top:5px}.user-login-existing{margin-top:18px}.avatar-reward{position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.86);display:grid;place-items:center;opacity:0;transition:.25s}.avatar-reward.show{opacity:1}.avatar-reward-card{width:min(86vw,380px);padding:26px;text-align:center;border:1px solid #d7b55f;background:#070a0d;box-shadow:0 0 60px rgba(215,181,95,.24);position:relative}.avatar-reward-img{width:180px;height:180px;border-radius:50%;border:3px solid #d7b55f;margin:auto}.avatar-reward-card small,.avatar-reward-card strong,.avatar-reward-card em{display:block;margin-top:12px}.avatar-reward-card strong{font-family:Oxanium,sans-serif;font-size:20px}.avatar-reward-card em{font-style:normal;color:#d7b55f}.avatar-reward-close{position:absolute;right:8px;top:8px}.note.bad{color:#ff8d8d}@media(max-width:460px){.avatar-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.user-hero{align-items:flex-start}.user-avatar-current{width:78px;height:78px;flex-basis:78px}}


/* ===== v4.1 USER / AVATARES ===== */
.drawer-user svg,.section-indicator-user .user-silhouette-svg{width:31px;height:31px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.section-indicator-user .user-silhouette-svg{width:40px;height:40px}.user-greeting{display:block;min-width:0;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:Oxanium,sans-serif;font-size:12px;font-weight:700;letter-spacing:.03em;color:#e8f9fc;padding:0 4px}.user-greeting.hidden{display:none!important}
.user-avatar-current{aspect-ratio:1/1!important;border-radius:50%!important}.user-avatar-current .user-avatar-img{width:100%!important;height:100%!important;aspect-ratio:1/1!important;border-radius:50%!important;object-fit:cover!important}
.avatar-grid{align-items:start}.avatar-choice{display:block!important;width:100%!important;padding:8px!important;overflow:visible!important}.avatar-choice.locked{opacity:1!important}.avatar-choice-frame{position:relative;display:block;width:100%;aspect-ratio:1/1;border-radius:50%;overflow:hidden;background:#111;border:2px solid rgba(255,255,255,.16)}.avatar-choice.selected .avatar-choice-frame{border-color:#d8b75e;box-shadow:0 0 18px rgba(216,183,94,.3)}.avatar-choice-img{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;aspect-ratio:1/1!important;border-radius:50%!important;object-fit:cover!important}.avatar-lock-overlay{position:absolute;inset:0;z-index:2;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:13%;background:rgba(0,0,0,.67);backdrop-filter:blur(1px);-webkit-backdrop-filter:blur(1px);color:#fff;text-shadow:0 1px 4px #000}.avatar-lock-symbol{width:25px;height:25px;margin-bottom:5px}.avatar-lock-symbol svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.8}.avatar-requirement{font:700 9px/1.25 Oxanium,sans-serif;letter-spacing:.03em}.avatar-requirement b{font-size:9px;color:#f1d27b}.avatar-visible-name{display:block;margin-top:7px!important;min-height:0!important;font:700 11px/1.2 Oxanium,sans-serif!important;letter-spacing:.02em}.avatar-choice small,.avatar-choice>.avatar-lock{display:none!important}.user-account-panel .secondary-btn{margin-top:10px}
@media(max-width:460px){.avatar-choice{padding:6px!important}.avatar-requirement,.avatar-requirement b{font-size:8px}.user-greeting{max-width:112px;font-size:10px}.section-indicator-user .user-silhouette-svg{width:36px;height:36px}}
@media(max-width:350px){.user-greeting{max-width:82px;font-size:9px}}


/* v4.4 · USER hero, header avatar and achievements */
.user-hero{position:relative!important;isolation:isolate!important;overflow:hidden!important}
.user-hero-background{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:cover!important;opacity:.85!important;z-index:-2!important;pointer-events:none!important}
.user-hero.registered::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(2,5,7,.78),rgba(2,5,7,.45));pointer-events:none}
.user-hero>.user-avatar-current,.user-hero>.user-hero-copy{position:relative;z-index:1}
.user-header-avatar{width:34px;height:34px;flex:0 0 34px;border-radius:50%;overflow:hidden;border:1px solid rgba(215,181,95,.86);background:#080b0d;box-shadow:0 0 10px rgba(215,181,95,.12)}
.user-header-avatar.hidden{display:none!important}.user-header-avatar img{display:block;width:100%;height:100%;object-fit:cover;aspect-ratio:1/1;border-radius:50%}
.user-achievements-section{padding:14px 18px 16px;border:1px solid rgba(215,181,95,.28);background:rgba(4,8,11,.92);margin:16px 0 0}
.user-box-title{text-align:center;font-family:Oxanium,sans-serif;font-weight:700;letter-spacing:.08em;font-size:14px;color:#f0d37c;margin-bottom:12px}
.achievement-earned-list{display:grid;gap:9px}.achievement-earned-card{display:flex;align-items:center;gap:11px;padding:10px 12px;border:1px solid rgba(255,255,255,.11);background:rgba(255,255,255,.035)}
.achievement-medal{display:grid;place-items:center;width:34px;height:34px;flex:0 0 34px;border:1px solid rgba(215,181,95,.7);border-radius:50%;color:#e8c761;font-size:15px;background:rgba(215,181,95,.08)}
.achievement-earned-card strong,.achievement-earned-card small{display:block}.achievement-earned-card strong{font-family:Oxanium,sans-serif;font-size:12px;letter-spacing:.04em}.achievement-earned-card small{margin-top:2px;font-size:10px;opacity:.68;letter-spacing:.02em}.achievement-empty{margin:0;text-align:center;font-size:12px;opacity:.62}
.user-avatar-section{padding-top:10px!important}.user-avatar-section>h2{margin-top:0!important;margin-bottom:12px!important}
.sync-active-title{display:block;text-align:center!important;font-family:Oxanium,sans-serif;letter-spacing:.06em}
@media(max-width:460px){.user-header-avatar{width:30px;height:30px;flex-basis:30px}.user-achievements-section{padding:12px}.user-hero.registered::after{background:rgba(2,5,7,.48)}}
@media(max-width:370px){.user-header-avatar{width:27px;height:27px;flex-basis:27px}.user-greeting{max-width:70px!important}}


/* v4.4 · USER / LOGROS / AVATARES */
.user-hero-copy h1{font-size:clamp(28px,7.2vw,42px)!important;line-height:.98!important;margin:.12em 0 .18em!important;letter-spacing:-.025em!important}
.achievement-earned-list{display:flex!important;flex-wrap:wrap!important;gap:9px!important;align-items:flex-start!important;justify-content:flex-start!important}
.achievement-earned-card{display:inline-flex!important;flex:1 1 auto!important;width:max-content!important;max-width:100%!important;min-width:min(160px,100%)!important;align-self:stretch!important;box-sizing:border-box!important}
.achievement-earned-card>div{min-width:0}.achievement-earned-card .achievement-number{color:#a88c49!important;opacity:1!important;font-size:8px!important;letter-spacing:.08em!important;margin:0 0 3px!important}
.user-sync-copy{text-align:center!important;color:#7f8a90!important;font-size:10px!important;line-height:1.45!important;max-width:390px!important;margin:10px auto 12px!important}
.user-logout-btn{display:block!important;margin:10px auto 0!important;border-color:#8e2831!important;color:#ff939a!important;background:rgba(117,18,29,.2)!important;box-shadow:0 0 16px rgba(142,40,49,.08)!important}
.user-logout-btn:hover,.user-logout-btn:focus-visible{border-color:#d24c58!important;color:#fff!important;background:rgba(139,25,37,.38)!important}
.achievement-reward{position:fixed;z-index:1300;inset:0;display:grid;place-items:center;background:rgba(0,2,3,.88);opacity:0;transition:opacity .18s ease;cursor:pointer}
.achievement-reward.show{opacity:1}.achievement-reward-flash{position:absolute;inset:0;background:radial-gradient(circle at 50% 45%,#fff 0 3%,rgba(255,218,104,.95) 7%,rgba(215,181,95,.42) 25%,transparent 60%);opacity:0}
.achievement-reward.show .achievement-reward-flash{animation:achievementFlashV43 .75s .2s ease-out both}
.achievement-reward-card{position:relative;width:min(88vw,420px);padding:28px 24px 26px;text-align:center;border:1px solid #d7b55f;background:linear-gradient(180deg,rgba(27,22,10,.98),rgba(7,9,10,.99));box-shadow:0 0 0 1px rgba(255,231,158,.06),0 24px 90px rgba(0,0,0,.78),0 0 54px rgba(215,181,95,.2);transform:scale(.9)}
.achievement-reward.show .achievement-reward-card{animation:achievementCardV43 .62s .16s cubic-bezier(.2,.85,.2,1) both}
.achievement-reward-medal{width:96px;height:96px;margin:0 auto 14px;border-radius:50%;display:grid;place-items:center;border:2px solid #e1c56e;color:#ffe493;background:radial-gradient(circle,rgba(215,181,95,.3),rgba(215,181,95,.05) 65%);font-size:42px;box-shadow:0 0 34px rgba(215,181,95,.26)}
.achievement-reward-card small{display:block;color:#bfa761;font:700 9px/1 Oxanium,sans-serif;letter-spacing:.12em}.achievement-reward-card strong{display:block;margin-top:8px;color:#ffe899;font:700 22px/1 Oxanium,sans-serif;letter-spacing:.035em;text-shadow:0 0 18px rgba(255,217,96,.24)}
.achievement-reward-card h3{margin:14px 0 0;color:#fff;font:700 18px/1.15 Oxanium,sans-serif}.achievement-reward-card em{display:block;margin-top:8px;color:#a9b2b6;font:500 11px/1.4 Exo 2,sans-serif;font-style:normal}
.achievement-reward-close{position:absolute;right:8px;top:8px}.achievement-reward:after{content:'TOCA PARA CERRAR';position:absolute;bottom:max(22px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);color:#8e8058;font:700 8px/1 Oxanium,sans-serif;letter-spacing:.12em}
@keyframes achievementFlashV43{0%{opacity:0;transform:scale(.6)}20%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1.5)}}
@keyframes achievementCardV43{0%{opacity:0;transform:translateY(22px) scale(.86)}60%{opacity:1;transform:translateY(-3px) scale(1.025)}100%{opacity:1;transform:translateY(0) scale(1)}}
@media(prefers-reduced-motion:reduce){.achievement-reward-card,.achievement-reward-flash{animation:none!important}.achievement-reward.show .achievement-reward-card{transform:none!important;opacity:1!important}}
@media(max-width:460px){.user-greeting{max-width:108px!important}.achievement-earned-card{max-width:100%!important}.user-hero-copy h1{font-size:clamp(25px,7vw,34px)!important}}

/* v4.4 · cada fila de logros ocupa todo el ancho y el acceso USER del header es pulsable */
.achievement-earned-list{width:100%!important;align-content:stretch!important}
.achievement-earned-card{justify-content:flex-start!important}
.user-header-avatar,.user-greeting{cursor:pointer!important}
.user-header-avatar:focus-visible,.user-greeting:focus-visible{outline:1px solid rgba(215,181,95,.9)!important;outline-offset:3px!important}


/* ============================================================
   DISTURBING STORIES APP v4.5 · USER / AVATARES / LOGROS
   ============================================================ */
.user-hero.registered{isolation:isolate!important}
.user-hero-media{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;background:#010305}
.user-hero-media::before,.user-hero-media::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:4;opacity:0}
.user-hero-media::before{background:repeating-linear-gradient(180deg,rgba(255,255,255,.045) 0 1px,transparent 1px 4px);mix-blend-mode:soft-light;animation:heroSurfacePulseV219 4.8s steps(1,end) infinite}
.user-hero-media::after{background:linear-gradient(90deg,rgba(255,46,64,.12),transparent 26%,rgba(120,224,255,.10) 52%,transparent 78%,rgba(255,46,64,.12));mix-blend-mode:screen;animation:heroRgbSurfaceV219 4.9s steps(1,end) infinite}
.user-hero-background{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:cover!important;object-position:center center!important;transform-origin:center center!important;pointer-events:none!important}
.user-hero-bg-main{z-index:2!important;opacity:.85!important;animation:homeDynamicV218 6.4s ease-in-out infinite!important;filter:brightness(.98) contrast(1.16) saturate(1.07)!important}
.user-hero-bg-backdrop{z-index:0!important;inset:-12%!important;width:124%!important;height:124%!important;opacity:.30!important;filter:blur(16px) brightness(.42) contrast(1.18)!important;animation:homeBackdropV218 8.6s ease-in-out infinite alternate!important}
.user-hero-bg-ghost{z-index:1!important;opacity:0!important;mix-blend-mode:screen!important}
.user-hero-bg-red{animation:rgbRedV219 4.9s steps(1,end) infinite!important;filter:sepia(1) saturate(10) hue-rotate(312deg) brightness(.94) contrast(1.14)!important}
.user-hero-bg-cyan{animation:rgbCyanV219 4.9s .06s steps(1,end) infinite!important;filter:sepia(1) saturate(9) hue-rotate(132deg) brightness(.98) contrast(1.12)!important}
.user-hero-shade{position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(90deg,rgba(2,5,7,.78),rgba(2,5,7,.45))}
.user-hero.registered::after{display:none!important}
.user-hero>.user-avatar-current,.user-hero>.user-hero-copy{z-index:3!important}
@media(max-width:460px){.user-hero-shade{background:rgba(2,5,7,.48)}}
@media(prefers-reduced-motion:reduce){.user-hero-media::before,.user-hero-media::after,.user-hero-bg-main,.user-hero-bg-backdrop,.user-hero-bg-ghost{animation:none!important}.user-hero-bg-ghost{display:none!important}}


/* ============================================================
   DISTURBING STORIES APP v4.6 · USER / STORIES / DRAWER
   ============================================================ */
.user-avatar-section>h2{text-align:center!important}
.achievement-row-hidden{display:none!important}
.achievement-list-toggle{display:block;width:100%;margin:11px 0 0;padding:10px 12px;border:1px solid rgba(215,181,95,.28);background:rgba(215,181,95,.055);color:#cbb56f;font:700 9px/1 Oxanium,sans-serif;letter-spacing:.08em;cursor:pointer}
.achievement-list-toggle:hover,.achievement-list-toggle:focus-visible{border-color:rgba(215,181,95,.55);color:#f2d77e;background:rgba(215,181,95,.1)}
.story-manual-read-row{display:flex;justify-content:flex-end;width:calc(100% + (var(--reader-pad) * 2));margin-left:calc(var(--reader-pad) * -1);padding:0 var(--reader-pad) 10px;background:#070707}
.story-manual-read-btn{min-height:30px;padding:7px 10px;border:1px solid #39434a;background:#0e1418;color:#bac4c9;font:700 8px/1 Oxanium,sans-serif;letter-spacing:.07em;cursor:pointer}
.story-manual-read-btn:hover,.story-manual-read-btn:focus-visible{border-color:#d7b55f;color:#f1d77d}.story-manual-read-btn.is-read{border-color:#386347;color:#b7e0c0;background:rgba(33,88,49,.18);cursor:default}
.drawer-user-avatar-img{display:none;width:100%;height:100%;object-fit:cover;aspect-ratio:1/1;border-radius:50%}.drawer-user.has-avatar{border-radius:50%;overflow:hidden;border:1px solid rgba(215,181,95,.72);background:#080b0d}.drawer-user.has-avatar svg{display:none!important}.drawer-user.has-avatar .drawer-user-avatar-img{display:block!important}


/* ============================================================
   DISTURBING STORIES APP v4.7 · LOGROS / NIVEL / STORY STATUS
   ============================================================ */
.story-manual-read-row{gap:7px!important;flex-wrap:wrap!important}.story-manual-unread-btn{border-color:#6b3d42!important;color:#d59a9f!important;background:rgba(92,25,32,.12)!important}.story-manual-unread-btn:hover,.story-manual-unread-btn:focus-visible{border-color:#b75460!important;color:#ffd0d3!important}.story-manual-unread-btn.hidden{display:none!important}
.user-header-avatar,.drawer-user{position:relative!important;overflow:visible!important}.user-header-avatar img,.drawer-user-avatar-img{border-radius:50%!important}.user-level-badge,.drawer-level-badge{position:absolute;z-index:12;right:-7px;top:-7px;min-width:20px;height:20px;padding:0 4px;border-radius:999px;display:flex;align-items:center;justify-content:center;background:#c52231;color:#fff;border:1px solid #ff7b86;box-shadow:0 2px 8px rgba(0,0,0,.5);font:800 8px/1 Oxanium,sans-serif;letter-spacing:-.02em;white-space:nowrap;pointer-events:none}.drawer-level-badge{right:-8px;top:-8px}.user-level-badge.hidden,.drawer-level-badge.hidden{display:none!important}
.user-hero-level{position:relative;z-index:3;margin-left:auto;align-self:center;min-width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;gap:2px;border:1px solid rgba(215,181,95,.8);background:rgba(5,7,8,.72);color:#fff1ad;box-shadow:0 0 22px rgba(215,181,95,.15);font:800 26px/1 Oxanium,sans-serif}.user-hero-level span{font-size:.55em;color:#f0cc68}.user-hero>.user-hero-level{z-index:3!important}
@media(max-width:460px){.user-hero-level{min-width:52px;height:52px;font-size:21px}.user-level-badge,.drawer-level-badge{min-width:18px;height:18px;font-size:7px}}


/* ============================================================
   DISTURBING STORIES APP v4.8 · LOGROS / HOME / MIS STORIES / BOOKS
   ============================================================ */
.user-level-badge,.drawer-level-badge{width:24px!important;min-width:24px!important;height:24px!important;padding:0!important;border-radius:50%!important;background:rgba(7,10,13,.25)!important;color:#f5e6ad!important;border:1px solid rgba(215,181,95,.86)!important;box-shadow:0 2px 8px rgba(0,0,0,.45),0 0 9px rgba(215,181,95,.12)!important;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}
.achievement-lost-break{flex:0 0 100%;height:0!important;margin:0!important;padding:0!important}
.achievement-earned-card.achievement-lost{border-color:rgba(190,56,68,.55)!important;background:rgba(118,23,31,.13)!important;color:#efb0b6!important}
.achievement-earned-card.achievement-lost .achievement-medal{border-color:rgba(202,66,78,.72)!important;color:#ff8c98!important;background:rgba(166,35,47,.12)!important}
.achievement-lost-label{color:#e56e78!important;opacity:1!important;font-weight:800!important;letter-spacing:.07em!important}
.home-progress-link{cursor:pointer!important;outline:none!important;transition:border-color .18s ease,transform .18s ease,filter .18s ease!important}.home-progress-link:hover,.home-progress-link:focus-visible{border-color:#49656d!important;filter:brightness(1.1)!important}.home-progress-link:active{transform:scale(.993)!important}
.home-next-story{animation:nextStoryBoxInV48 .72s cubic-bezier(.2,.82,.2,1) .12s both}.home-next-story-label{animation:nextStoryItemInV48 .55s ease .28s both}.home-next-story-countdown{animation:nextStoryItemInV48 .6s ease .38s both}@keyframes nextStoryBoxInV48{from{opacity:0;transform:translateY(18px) scale(.985);filter:blur(5px)}to{opacity:1;transform:none;filter:none}}@keyframes nextStoryItemInV48{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.my-filter[data-my="blocked"]{border-color:rgba(170,48,60,.48)!important;color:#d88d95!important;background:rgba(94,19,28,.12)!important}.my-filter[data-my="blocked"].active{border-color:#cf5360!important;background:rgba(156,35,47,.32)!important;color:#ffd8dc!important}
.my-filter[data-my="read"]{border-color:rgba(60,132,82,.48)!important;color:#91c9a2!important;background:rgba(28,83,45,.12)!important}.my-filter[data-my="read"].active{border-color:#59a871!important;background:rgba(38,118,62,.30)!important;color:#d8ffe3!important}
.continue-more-btn,.continue-collapse-btn{width:100%;min-height:46px;border:1px solid #36515a;background:rgba(31,59,66,.17);color:#b9d9df;font:800 10px/1 Oxanium,sans-serif;letter-spacing:.12em;cursor:pointer}.continue-more-btn:hover,.continue-collapse-btn:hover{border-color:#5d8792;color:#fff}.continue-extra:not(.hidden){display:contents}.continue-more-btn.hidden,.continue-collapse-btn.hidden,.continue-extra.hidden{display:none!important}.continue-collapse-btn{width:auto!important;min-height:28px!important;justify-self:center!important;margin:2px auto 0!important;padding:7px 13px!important;border-color:#2d383d;background:#0b0f11;color:#7f9298;font-size:8px!important}
.book-trailer{margin:4px 0 12px!important}.book-trailer-label{display:none!important}
@media(prefers-reduced-motion:reduce){.home-next-story,.home-next-story-label,.home-next-story-countdown,.home-next-story-countdown>span{animation:none!important}}


/* =========================================================
   DISTURBING STORIES APP v4.9 · USER / LOGROS / HOME
   ========================================================= */
/* Nivel sobre avatar: círculo más pequeño, trazo + relleno al 15%; texto algo mayor. */
.user-level-badge,.drawer-level-badge{
  width:19px!important;min-width:19px!important;height:19px!important;padding:0!important;
  right:-5px!important;top:-5px!important;
  background:rgba(7,10,13,.15)!important;
  border-color:rgba(215,181,95,.15)!important;
  box-shadow:0 2px 7px rgba(0,0,0,.38)!important;
  color:#f7e7ad!important;font-size:9.5px!important;font-weight:900!important;
  backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
}
.drawer-level-badge{right:-6px!important;top:-6px!important}

/* HOME · PRÓXIMA STORY: la animación solo se inicia al entrar en viewport. */
.home-next-story{opacity:0!important;transform:translateY(28px) scale(.975)!important;filter:blur(7px)!important;animation:none!important;transition:none!important}
.home-next-story .home-next-story-label,.home-next-story .home-next-story-countdown{opacity:0!important;transform:translateY(12px)!important;animation:none!important}
.home-next-story.home-next-story-visible{animation:nextStoryBoxInV49 .86s cubic-bezier(.16,.86,.22,1) both!important}
.home-next-story.home-next-story-visible .home-next-story-label{animation:nextStoryItemInV49 .62s ease .24s both!important}
.home-next-story.home-next-story-visible .home-next-story-countdown{animation:nextStoryItemInV49 .68s ease .38s both!important}
@keyframes nextStoryBoxInV49{0%{opacity:0;transform:translateY(28px) scale(.975);filter:blur(7px)}65%{opacity:1;transform:translateY(-3px) scale(1.006);filter:blur(0)}100%{opacity:1;transform:none;filter:none}}
@keyframes nextStoryItemInV49{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.home-next-story,.home-next-story .home-next-story-label,.home-next-story .home-next-story-countdown{opacity:1!important;transform:none!important;filter:none!important;animation:none!important}}

/* USER registrado: nombre primero; estado debajo y más discreto. */
.user-hero-copy .user-hero-name{margin:0!important;color:#fff!important;font-size:clamp(25px,7vw,36px)!important;line-height:1!important}
.user-hero-status{margin-top:6px;color:#d7b55f;font:700 8px/1 Oxanium,sans-serif;letter-spacing:.13em;text-transform:uppercase}
.user-hero-copy .user-email{margin-top:7px!important}


/* =========================================================
   DISTURBING STORIES APP v4.10 · LIBROS / USER / HOME / NIVEL
   ========================================================= */
/* Nivel sobre avatar: estrella pequeña en superíndice sobre el número. */
.user-level-badge,.drawer-level-badge{display:block!important;position:absolute!important;text-align:center!important;line-height:19px!important}
.user-level-badge .user-level-number,.drawer-level-badge .user-level-number{display:inline-block;font:900 10px/19px Oxanium,sans-serif;color:#f7e7ad;vertical-align:middle}
.user-level-badge .user-level-star,.drawer-level-badge .user-level-star{position:absolute;right:1px;top:1px;font:900 5.5px/1 Oxanium,sans-serif;color:#f0cf70;transform:translate(18%,-18%)}

/* HOME: PRÓXIMA STORY siempre visible, con entrada estándar y segura. */
.home-next-story{opacity:1!important;transform:none!important;filter:none!important;transition:none!important;animation:v21HeadingIn .62s ease both!important}
.home-next-story .home-next-story-label{opacity:1!important;transform:none!important;animation:v21HeadingIn .52s ease .08s both!important}
.home-next-story .home-next-story-countdown{opacity:1!important;transform:none!important;animation:v21HeadingIn .56s ease .16s both!important}

/* USER registrado: avatar, bloque de nombre/estado y nivel centrados en el mismo eje vertical. */
.user-hero.registered{align-items:center!important}
.user-hero.registered>.user-avatar-current,.user-hero.registered>.user-hero-copy,.user-hero.registered>.user-hero-level{align-self:center!important}
.user-hero.registered>.user-hero-copy{display:flex!important;flex-direction:column!important;justify-content:center!important;min-height:64px}

/* Libro completado: las tres estadísticas y la tarjeta de COLECCIÓN pasan a verde. */
.book-detail-stats.is-book-complete>div{border-color:rgba(65,170,98,.72)!important;background:rgba(24,91,44,.18)!important;box-shadow:0 0 16px rgba(53,158,83,.10)!important}
.book-detail-stats.is-book-complete>div strong,.book-detail-stats.is-book-complete>div span{color:#86d69f!important}
.book-card.book-complete-read{border-color:rgba(65,170,98,.68)!important;box-shadow:0 0 0 1px rgba(65,170,98,.14),0 0 18px rgba(53,158,83,.10)!important}
.book-card.book-complete-read .book-numbers strong,.book-card.book-complete-read .book-numbers span{color:#86d69f!important}
.book-card.book-complete-read .collection-progress>span{background:#4eaf70!important}


/* =========================================================
   DISTURBING STORIES APP v4.11 · HOME / COLECCIÓN / USER
   ========================================================= */
/* HOME · TU PROGRESO: identidad dorada en contorno y barra. */
.home-progress.home-progress-link{
  border-color:rgba(215,181,95,.72)!important;
  box-shadow:0 0 0 1px rgba(215,181,95,.08),0 0 18px rgba(215,181,95,.07)!important;
}
.home-progress.home-progress-link .collection-progress>span{background:#d7b55f!important}
.home-progress.home-progress-link:hover,.home-progress.home-progress-link:focus-visible{border-color:#e3c66f!important}

/* COLECCIÓN · libro leído: bubble en la misma línea que BOOK#X. */
.book-card-title-row{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;margin:0 0 10px}
.book-card-title-row h2{margin:0!important;min-width:0}
.book-read-bubble{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(78,175,112,.76);background:rgba(28,102,53,.23);color:#a7e7b9;border-radius:999px;padding:6px 8px;font:900 7px/1 Oxanium,sans-serif;letter-spacing:.06em;white-space:nowrap;box-shadow:0 0 12px rgba(78,175,112,.08)}
.book-card.book-complete-read .book-read-bubble{border-color:rgba(92,193,126,.86);color:#c7ffd6}

/* USER · indicador de nivel de la caja: estrella como superíndice real. */
.user-hero-level{position:relative!important;display:grid!important;place-items:center!important;gap:0!important}
.user-hero-level-number{display:inline-block;font:800 26px/1 Oxanium,sans-serif;color:#fff1ad}
.user-hero-level-star{position:absolute;left:50%;top:50%;font:900 9px/1 Oxanium,sans-serif;color:#f0cc68;transform:translate(9px,-19px)}
/* El nombre manda visualmente: bajar ligeramente el bloque nombre + estado. */
.user-hero.registered>.user-hero-copy{transform:translateY(5px)!important}
@media(max-width:460px){
  .book-card-title-row{gap:6px}.book-read-bubble{font-size:6px;padding:5px 6px}
  .user-hero-level-number{font-size:21px}.user-hero-level-star{font-size:7px;transform:translate(8px,-16px)}
  .user-hero.registered>.user-hero-copy{transform:translateY(4px)!important}
}


/* =========================================================
   DISTURBING STORIES APP v4.12 · HOME / USER / ESTANTERÍA
   ========================================================= */
/* HOME · TU PROGRESO: entrada completa y escalonada de todos sus elementos. */
.home-progress.home-progress-reveal-ready{
  opacity:0;transform:translateY(18px) scale(.985);filter:blur(4px);
}
.home-progress.home-progress-reveal-ready .home-progress-copy,
.home-progress.home-progress-reveal-ready .home-progress-copy .eyebrow,
.home-progress.home-progress-reveal-ready .home-progress-copy strong,
.home-progress.home-progress-reveal-ready .collection-progress,
.home-progress.home-progress-reveal-ready .collection-progress>span,
.home-progress.home-progress-reveal-ready .link-btn{
  opacity:0;transform:translateY(10px);filter:blur(2px);
}
.home-progress.home-progress-reveal-in{
  opacity:1;transform:none;filter:none;
  transition:opacity .48s ease,transform .58s cubic-bezier(.2,.8,.2,1),filter .48s ease;
}
.home-progress.home-progress-reveal-in .home-progress-copy{opacity:1;transform:none;filter:none;transition:opacity .42s .10s ease,transform .48s .08s cubic-bezier(.2,.8,.2,1),filter .4s .08s ease}
.home-progress.home-progress-reveal-in .home-progress-copy .eyebrow{opacity:1;transform:none;filter:none;transition:opacity .38s .16s ease,transform .44s .14s cubic-bezier(.2,.8,.2,1),filter .36s .14s ease}
.home-progress.home-progress-reveal-in .home-progress-copy strong{opacity:1;transform:none;filter:none;transition:opacity .38s .22s ease,transform .44s .20s cubic-bezier(.2,.8,.2,1),filter .36s .20s ease}
.home-progress.home-progress-reveal-in .collection-progress{opacity:1;transform:none;filter:none;transition:opacity .36s .28s ease,transform .42s .26s cubic-bezier(.2,.8,.2,1),filter .34s .26s ease}
.home-progress.home-progress-reveal-ready .collection-progress>span{transform:scaleX(0);transform-origin:left center}
.home-progress.home-progress-reveal-in .collection-progress>span{opacity:1;transform:scaleX(1);filter:none;transition:transform .72s .34s cubic-bezier(.18,.86,.22,1),opacity .25s .32s ease}
.home-progress.home-progress-reveal-in .link-btn{opacity:1;transform:none;filter:none;transition:opacity .38s .46s ease,transform .44s .43s cubic-bezier(.2,.8,.2,1),filter .36s .43s ease}

/* USER · el número del nivel en la caja registrada crece x4 respecto a v4.11. */
.user-hero-level{min-width:112px!important;width:112px!important;height:112px!important;flex:0 0 112px!important}
.user-hero-level-number{font-size:104px!important;line-height:.78!important;letter-spacing:-.08em!important;transform:translateX(-3px)}
.user-hero-level-star{font-size:15px!important;transform:translate(31px,-46px)!important}

/* COLECCIÓN · monstruo lector dentro de la mitad derecha libre de la ESTANTERÍA. */
.book-shelf-wrap{position:relative!important;isolation:isolate!important}
.book-shelf-title{position:relative;z-index:5}
.book-shelf{position:relative;z-index:3}
.shelf-reading-loop{
  position:absolute;z-index:2;left:50%;right:0;top:28px;bottom:12px;
  display:flex;align-items:center;justify-content:center;overflow:hidden;
  pointer-events:none;padding:6px 10px 0;
}
.shelf-reading-loop video{
  display:block;width:auto;height:auto;max-width:96%;max-height:96%;object-fit:contain;
  pointer-events:none;user-select:none;-webkit-user-select:none;
}
.shelf-board{position:relative;z-index:4}

@media(max-width:460px){
  .user-hero{gap:12px!important}
  .user-hero-level{min-width:88px!important;width:88px!important;height:88px!important;flex-basis:88px!important}
  .user-hero-level-number{font-size:84px!important;transform:translateX(-2px)}
  .user-hero-level-star{font-size:12px!important;transform:translate(25px,-38px)!important}
  .shelf-reading-loop{top:26px;padding:5px 6px 0}
}
@media(prefers-reduced-motion:reduce){
  .home-progress.home-progress-reveal-ready,.home-progress.home-progress-reveal-ready *{opacity:1!important;transform:none!important;filter:none!important;transition:none!important}
}


/* =========================================================
   DISTURBING STORIES APP v4.13 · ESTANTERÍA / HOME / USER / MIS STORIES
   ========================================================= */
/* ESTANTERÍA · fundir el WebM opaco con la caja y aprovechar al máximo el hueco. */
.book-shelf-wrap{background:#090d14!important}
.shelf-reading-loop{left:50%!important;right:0!important;top:22px!important;bottom:12px!important;padding:0!important;background:#090d14!important}
.shelf-reading-loop video{height:100%!important;width:auto!important;max-height:100%!important;max-width:100%!important;object-fit:contain!important;background:#090d14!important}
.shelf-reading-loop::after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 10px 0 14px -12px #090d14,inset -7px 0 12px -12px #090d14}

/* HOME · TU PROGRESO más rápido, manteniendo la secuencia completa. */
.home-progress.home-progress-reveal-in{transition:opacity .26s ease,transform .34s cubic-bezier(.2,.8,.2,1),filter .26s ease!important}
.home-progress.home-progress-reveal-in .home-progress-copy{transition:opacity .23s .04s ease,transform .28s .03s cubic-bezier(.2,.8,.2,1),filter .22s .03s ease!important}
.home-progress.home-progress-reveal-in .home-progress-copy .eyebrow{transition:opacity .21s .07s ease,transform .25s .06s cubic-bezier(.2,.8,.2,1),filter .20s .06s ease!important}
.home-progress.home-progress-reveal-in .home-progress-copy strong{transition:opacity .21s .10s ease,transform .25s .09s cubic-bezier(.2,.8,.2,1),filter .20s .09s ease!important}
.home-progress.home-progress-reveal-in .collection-progress{transition:opacity .20s .13s ease,transform .24s .12s cubic-bezier(.2,.8,.2,1),filter .20s .12s ease!important}
.home-progress.home-progress-reveal-in .collection-progress>span{transition:transform .42s .15s cubic-bezier(.18,.86,.22,1),opacity .18s .14s ease!important}
.home-progress.home-progress-reveal-in .link-btn{transition:opacity .21s .20s ease,transform .25s .18s cubic-bezier(.2,.8,.2,1),filter .20s .18s ease!important}

/* PRÓXIMA STORY · animar también sus elementos internos con entrada estándar. */
.home-next-story{opacity:1!important;transform:none!important;filter:none!important;animation:v413NextBox .46s cubic-bezier(.2,.82,.2,1) both!important}
.home-next-story .home-next-story-label{opacity:0;animation:v413NextItem .34s ease .08s both!important}
.home-next-story .home-next-story-countdown{opacity:0;animation:v413NextItem .36s ease .13s both!important}
.home-next-story .home-next-story-countdown>span,.home-next-story .home-next-story-countdown>i{opacity:0;animation:v413NextUnit .30s ease both!important}
.home-next-story .home-next-story-countdown>span:nth-child(1){animation-delay:.16s!important}.home-next-story .home-next-story-countdown>i:nth-child(2){animation-delay:.18s!important}.home-next-story .home-next-story-countdown>span:nth-child(3){animation-delay:.20s!important}.home-next-story .home-next-story-countdown>i:nth-child(4){animation-delay:.22s!important}.home-next-story .home-next-story-countdown>span:nth-child(5){animation-delay:.24s!important}.home-next-story .home-next-story-countdown>i:nth-child(6){animation-delay:.26s!important}.home-next-story .home-next-story-countdown>span:nth-child(7){animation-delay:.28s!important}
@keyframes v413NextBox{from{opacity:0;transform:translateY(14px) scale(.99)}to{opacity:1;transform:none}}
@keyframes v413NextItem{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
@keyframes v413NextUnit{from{opacity:0;transform:translateY(5px) scale(.96)}to{opacity:1;transform:none}}

/* USER · v4.12=10, v4.13=7: reducir el número al 70% manteniendo ★ en superíndice. */
.user-hero-level-number{font-size:73px!important;line-height:.82!important;letter-spacing:-.06em!important;transform:translateX(-2px)!important}
.user-hero-level-star{font-size:12px!important;transform:translate(23px,-34px)!important}

/* MIS STORIES · el extremo derecho de los iconos queda centrado sobre la flecha. */
.continue-copy{position:relative!important}
.continue-inline-icons{width:calc(100% + 40px)!important;margin-right:-40px!important;box-sizing:border-box!important;padding-right:0!important}
.resume-arrow{justify-self:end!important}

@media(max-width:460px){
  .user-hero-level-number{font-size:59px!important;transform:translateX(-1px)!important}
  .user-hero-level-star{font-size:10px!important;transform:translate(19px,-28px)!important}
  .shelf-reading-loop{top:22px!important;padding:0!important}
}
@media(prefers-reduced-motion:reduce){
  .home-next-story,.home-next-story *{animation:none!important;opacity:1!important;transform:none!important}
}


/* =========================================================
   DISTURBING STORIES APP v4.15 · PLAYER / HOME / USER / MIS STORIES
   ========================================================= */
/* PLAYER · imágenes configurables por pista, siempre detrás de los controles. */
.player-console{position:relative!important;overflow:hidden!important;isolation:isolate!important;background:#080808!important}
.player-console>*:not(.player-artwork-bg){position:relative;z-index:3}
.player-artwork-bg{position:absolute!important;inset:0!important;z-index:0!important;overflow:hidden!important;pointer-events:none!important;background:radial-gradient(circle at 28% 22%,rgba(31,17,19,.9),rgba(8,8,8,.96) 68%)!important}
.player-artwork-bg::after{content:"";position:absolute;inset:0;z-index:2;background:linear-gradient(180deg,rgba(8,8,8,.25),rgba(8,8,8,.48) 44%,rgba(8,8,8,.72)),radial-gradient(circle at 50% 40%,rgba(8,8,8,.08),rgba(8,8,8,.68) 92%);pointer-events:none}
.player-artwork-slide{position:absolute;inset:-2%;opacity:0;transition:opacity 5s ease-in-out;z-index:0;overflow:hidden;will-change:opacity}
.player-artwork-slide.active{opacity:.62;z-index:1}
.player-artwork-slide img{display:block;width:100%;height:100%;object-fit:cover;object-position:center center;filter:brightness(.76) contrast(1.13) saturate(.92);will-change:object-position,transform,filter}
.player-artwork-slide.active img.pan-y{animation:playerArtworkPanY 20s ease-in-out infinite alternate}
.player-artwork-slide.active img.pan-x{animation:playerArtworkPanX 20s ease-in-out infinite alternate}
.player-artwork-slide.active img.pan-soft{animation:playerArtworkPanSoft 20s ease-in-out infinite alternate}
.player-artwork-signal{position:absolute;inset:0;z-index:2;opacity:.22;mix-blend-mode:screen;background:repeating-linear-gradient(180deg,rgba(255,255,255,.035) 0 1px,transparent 1px 5px),linear-gradient(90deg,rgba(255,34,48,.07),transparent 34%,rgba(110,225,255,.055) 68%,transparent);animation:playerArtworkSignal 5.6s steps(1,end) infinite;pointer-events:none}
@keyframes playerArtworkPanY{0%{object-position:50% 0%;transform:scale(1.03)}100%{object-position:50% 100%;transform:scale(1.07)}}
@keyframes playerArtworkPanX{0%{object-position:0% 50%;transform:scale(1.03)}100%{object-position:100% 50%;transform:scale(1.07)}}
@keyframes playerArtworkPanSoft{0%{object-position:48% 46%;transform:scale(1.02)}100%{object-position:52% 54%;transform:scale(1.075)}}
@keyframes playerArtworkSignal{0%,88%,100%{opacity:.13;transform:none}89%{opacity:.31;transform:translateX(2px)}90%{opacity:.08;transform:translateX(-1px)}91%{opacity:.22;transform:none}}

/* HOME · barra estándar de izquierda a derecha + actividad en loop solo en lo completado. */
.home-progress .collection-progress{position:relative;overflow:hidden!important}
.home-progress .collection-progress>span{position:relative;overflow:hidden!important}
.home-progress.home-progress-reveal-in .collection-progress>span::after{content:"";position:absolute;inset:0;transform:translateX(-115%);background:linear-gradient(105deg,transparent 0 28%,rgba(255,247,201,.08) 40%,rgba(255,247,201,.58) 50%,rgba(255,247,201,.10) 60%,transparent 72% 100%);animation:homeProgressShimmer 1.55s .55s ease-in-out infinite;pointer-events:none}
@keyframes homeProgressShimmer{0%{transform:translateX(-115%)}68%,100%{transform:translateX(115%)}}
/* La cuenta atrás se crea de nuevo cada segundo: tras la primera entrada anulamos sus animaciones. */
.home-next-story.home-next-story-steady,.home-next-story.home-next-story-steady .home-next-story-label,.home-next-story.home-next-story-steady .home-next-story-countdown,.home-next-story.home-next-story-steady .home-next-story-countdown>*{animation:none!important;opacity:1!important;transform:none!important;filter:none!important}

/* USER · trazo interior más grueso del indicador grande X★. */
.user-hero-level{box-shadow:inset 0 0 0 7px rgba(215,181,95,.34),0 0 22px rgba(215,181,95,.15)!important}

/* MIS STORIES · recuperar los iconos y centrar su eje con la flecha de la derecha. */
.continue-card{overflow:visible!important}
.continue-copy{overflow:visible!important;padding-right:0!important}
.continue-inline-icons{position:absolute!important;right:-52px!important;top:calc(100% - 50px)!important;width:40px!important;height:28px!important;margin:0!important;padding:0!important;display:flex!important;flex-direction:row!important;flex-wrap:wrap!important;justify-content:center!important;align-items:center!important;gap:3px!important;z-index:6!important;overflow:visible!important}
.continue-inline-icons:empty{display:none!important}
.continue-inline-icons>.ex-badge,.continue-inline-icons>.story-media-badges{position:static!important;transform:none!important;margin:0!important}
.continue-inline-icons>.story-media-badges{display:flex!important;flex-direction:row!important;gap:3px!important;align-items:center!important}
.continue-inline-icons .ex-badge,.continue-inline-icons .media-badge{width:23px!important;height:23px!important;min-width:23px!important;min-height:23px!important}
.resume-arrow{align-self:end!important;margin-bottom:22px!important;justify-self:center!important}

@media(prefers-reduced-motion:reduce){
  .player-artwork-slide,.player-artwork-slide img,.player-artwork-signal,.home-progress .collection-progress>span::after{animation:none!important;transition:none!important}
  .player-artwork-slide.active{opacity:.56!important}
}


/* =========================================================
   DISTURBING STORIES APP v4.15 · HOME / USER / MIS STORIES
   ========================================================= */
/* HOME · la barra carga visiblemente de 0 al progreso real; después mantiene shimmer solo dentro del tramo dorado. */
.home-progress.home-progress-reveal-ready .collection-progress>span{transform:none!important;width:0;transition:none!important}
.home-progress.home-progress-reveal-in .collection-progress>span{transform:none!important;transition:width .68s .14s cubic-bezier(.18,.86,.22,1),opacity .18s .12s ease!important}
.home-progress.home-progress-reveal-in .collection-progress>span::after{animation-delay:.88s!important}

/* USER · entrada gradual de cajas y elementos. */
.user-page.user-page-reveal-ready>.user-hero,
.user-page.user-page-reveal-ready>.user-achievements-section,
.user-page.user-page-reveal-ready>.user-avatar-section,
.user-page.user-page-reveal-ready>.user-account-panel{opacity:0;transform:translateY(16px);filter:blur(3px)}
.user-page.user-page-reveal-in>.user-hero,
.user-page.user-page-reveal-in>.user-achievements-section,
.user-page.user-page-reveal-in>.user-avatar-section,
.user-page.user-page-reveal-in>.user-account-panel{animation:userBoxInV415 .42s cubic-bezier(.2,.82,.2,1) both;animation-delay:calc(var(--user-box-i,0) * .09s)}
.user-page.user-page-reveal-ready>.user-hero>*:not(.user-hero-media):not(.user-hero-shade),
.user-page.user-page-reveal-ready>.user-achievements-section>* ,
.user-page.user-page-reveal-ready>.user-avatar-section>* ,
.user-page.user-page-reveal-ready>.user-account-panel>*,
.user-page.user-page-reveal-ready .achievement-earned-card,
.user-page.user-page-reveal-ready .avatar-choice{opacity:0;transform:translateY(8px)}
.user-page.user-page-reveal-in>.user-hero>*:not(.user-hero-media):not(.user-hero-shade),
.user-page.user-page-reveal-in>.user-achievements-section>* ,
.user-page.user-page-reveal-in>.user-avatar-section>* ,
.user-page.user-page-reveal-in>.user-account-panel>*,
.user-page.user-page-reveal-in .achievement-earned-card,
.user-page.user-page-reveal-in .avatar-choice{animation:userItemInV415 .32s ease both;animation-delay:calc(.12s + (var(--user-box-i,0) * .09s) + (var(--user-item-i,0) * .035s))}
@keyframes userBoxInV415{from{opacity:0;transform:translateY(16px);filter:blur(3px)}to{opacity:1;transform:none;filter:none}}
@keyframes userItemInV415{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
/* Avatares: exactamente cuatro por fila. */
.user-avatar-section .avatar-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:8px!important}

/* USER · indicador grande: trazo interior dorado y 8 px. */
.user-hero-level{box-shadow:inset 0 0 0 8px rgba(240,204,104,.88),0 0 22px rgba(215,181,95,.15)!important}

/* MIS STORIES · los badges se sitúan por encima de la flecha, nunca detrás de ella. */
.continue-card{position:relative!important}
.continue-inline-icons{right:-52px!important;top:auto!important;bottom:38px!important;width:42px!important;height:auto!important;min-height:22px!important;z-index:8!important;justify-content:center!important;align-items:flex-end!important}
.resume-arrow{position:relative!important;z-index:5!important;align-self:end!important;margin-bottom:4px!important}

@media(max-width:460px){
  .user-avatar-section .avatar-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:6px!important}
  .continue-inline-icons{right:-48px!important;bottom:36px!important;width:38px!important}
}
@media(prefers-reduced-motion:reduce){
  .user-page.user-page-reveal-ready>* , .user-page.user-page-reveal-ready *{animation:none!important;opacity:1!important;transform:none!important;filter:none!important}
  .home-progress.home-progress-reveal-ready .collection-progress>span{transition:none!important}
}


/* =========================================================
   DISTURBING STORIES APP v4.16 · USER / PLAYER / MIS STORIES / UNLOCK
   ========================================================= */
/* USER · login existente claramente accesible. */
.user-existing-login-cta{width:100%;min-height:58px;border-radius:13px;border:1px solid #d6b659;background:linear-gradient(180deg,#2b220b,#171004);color:#f3d77a;font:900 12px/1.15 Oxanium,sans-serif;letter-spacing:.06em;box-shadow:inset 0 0 22px rgba(229,191,72,.08),0 6px 20px rgba(0,0,0,.28);cursor:pointer}
.user-existing-login-cta.active{background:linear-gradient(180deg,#40320d,#1b1304);box-shadow:inset 0 0 28px rgba(229,191,72,.14),0 0 20px rgba(215,181,95,.09)}
.user-existing-login-panel{margin-top:10px;padding:12px;border:1px solid #3c3420;border-radius:12px;background:#090804}
.user-register-divider{display:flex;align-items:center;gap:10px;margin:18px 0 12px;color:#626262;font:800 8px/1 Oxanium,sans-serif;letter-spacing:.12em}.user-register-divider:before,.user-register-divider:after{content:"";height:1px;flex:1;background:#242424}

/* PLAYER · ninguna nota/artefacto auxiliar debajo del volumen. */
.player-mobile-volume-note{display:none!important}

/* USER · estrella más próxima al número y algo mayor. */
.user-hero-level-star{font-size:15px!important;transform:translate(22px,-34px)!important}
@media(max-width:460px){.user-hero-level-star{font-size:12px!important;transform:translate(18px,-28px)!important}}

/* MIS STORIES · flecha alineada con la barra; badges siempre apilados encima y separados. */
.continue-card{position:relative!important;grid-template-columns:56px minmax(0,1fr) 38px!important}
.continue-copy{position:relative!important;overflow:visible!important}
.resume-arrow{position:absolute!important;right:8px!important;bottom:18px!important;margin:0!important;align-self:auto!important;justify-self:auto!important;z-index:6!important}
.continue-inline-icons{position:absolute!important;right:7px!important;bottom:57px!important;width:36px!important;min-height:0!important;height:auto!important;margin:0!important;display:flex!important;flex-direction:column!important;flex-wrap:nowrap!important;align-items:center!important;justify-content:flex-end!important;gap:6px!important;z-index:7!important}
.continue-inline-icons>.story-media-badges{display:flex!important;flex-direction:column!important;gap:6px!important;align-items:center!important}
.continue-inline-icons .ex-badge,.continue-inline-icons .media-badge{margin:0!important;flex:none!important}
@media(max-width:460px){.resume-arrow{right:7px!important;bottom:17px!important}.continue-inline-icons{right:6px!important;bottom:55px!important;width:34px!important}}

/* DESBLOQUEAR STORY · entrada gradual, sin interferir con clicks/navegación. */
.unlock-page-reveal-ready>*{opacity:0;transform:translateY(12px);filter:blur(2px)}
.unlock-page-reveal-in>*{animation:unlockItemInV416 .34s cubic-bezier(.2,.82,.2,1) both;animation-delay:calc(var(--unlock-item-i,0) * .055s)}
@keyframes unlockItemInV416{from{opacity:0;transform:translateY(12px);filter:blur(2px)}to{opacity:1;transform:none;filter:none}}
@media(prefers-reduced-motion:reduce){.unlock-page-reveal-ready>*{opacity:1!important;transform:none!important;filter:none!important;animation:none!important}}


/* =========================================================
   DISTURBING STORIES APP v4.17 · USER / LOGROS / PLAYER / MIS STORIES
   ========================================================= */
/* USER · CTA de login todavía más evidente. */
.user-existing-login-cta{min-height:66px!important;font-size:clamp(15px,4.15vw,18px)!important;line-height:1.05!important;letter-spacing:.045em!important;text-shadow:0 0 14px rgba(243,215,122,.18)!important}

/* LOGROS · icono de recompensa muy vistoso, con destellos y barrido dorado. */
.achievement-reward-icon-stage{position:relative;width:142px;height:142px;margin:-2px auto 18px;display:grid;place-items:center;isolation:isolate}
.achievement-reward-medal{position:relative!important;z-index:4!important;width:104px!important;height:104px!important;margin:0!important;overflow:hidden!important;border:3px solid #f2d66f!important;color:#fff1aa!important;background:radial-gradient(circle at 38% 28%,rgba(255,250,201,.42),rgba(218,174,47,.26) 30%,rgba(69,43,4,.52) 70%,rgba(8,8,6,.94))!important;box-shadow:0 0 0 2px rgba(255,224,115,.12),0 0 25px rgba(255,207,54,.6),0 0 68px rgba(215,181,95,.42),inset 0 0 24px rgba(255,228,128,.18)!important;transform:scale(.45) rotate(-18deg);opacity:0}
.achievement-reward.show .achievement-reward-medal{animation:achievementMedalPopV417 .9s .12s cubic-bezier(.16,.92,.22,1.16) forwards,achievementMedalGlowV417 1.6s 1.1s ease-in-out infinite alternate}
.achievement-reward-medal-star{position:relative;z-index:3;display:block;font-size:52px;line-height:1;text-shadow:0 0 8px #fff0a8,0 0 24px #e5af25;filter:drop-shadow(0 4px 5px rgba(0,0,0,.5))}
.achievement-reward-gold-sweep{position:absolute;z-index:5;top:-28%;bottom:-28%;left:-55%;width:36%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.9) 45%,rgba(255,221,83,.94) 56%,transparent);transform:skewX(-18deg);filter:blur(1px);opacity:0}
.achievement-reward.show .achievement-reward-gold-sweep{animation:achievementGoldSweepV417 1.15s .72s cubic-bezier(.25,.7,.2,1) forwards,achievementGoldSweepV417 1.45s 2.55s ease-in-out forwards}
.achievement-reward-ring{position:absolute;inset:18px;border-radius:50%;border:1px solid rgba(255,218,86,.75);z-index:1;opacity:0;box-shadow:0 0 18px rgba(255,213,68,.25)}
.achievement-reward.show .ring-a{animation:achievementRingV417 1.2s .18s ease-out forwards}.achievement-reward.show .ring-b{animation:achievementRingV417 1.35s .48s ease-out forwards}
.achievement-reward-spark{position:absolute;z-index:6;left:50%;top:50%;width:5px;height:18px;border-radius:999px;background:linear-gradient(#fff6bc,#e6ac23);transform-origin:50% 70px;transform:translate(-50%,-50%) rotate(calc(var(--spark-i) * 25.714deg)) translateY(-36px) scaleY(.2);opacity:0;box-shadow:0 0 8px #ffd958}
.achievement-reward.show .achievement-reward-spark{animation:achievementSparkV417 .92s calc(.22s + var(--spark-i) * .025s) cubic-bezier(.15,.72,.15,1) both}
@keyframes achievementMedalPopV417{0%{opacity:0;transform:scale(.42) rotate(-18deg);filter:brightness(2.4)}52%{opacity:1;transform:scale(1.14) rotate(4deg);filter:brightness(1.65)}72%{transform:scale(.96) rotate(-2deg)}100%{opacity:1;transform:scale(1) rotate(0);filter:brightness(1)}}
@keyframes achievementMedalGlowV417{from{box-shadow:0 0 0 2px rgba(255,224,115,.12),0 0 24px rgba(255,207,54,.42),0 0 52px rgba(215,181,95,.28),inset 0 0 22px rgba(255,228,128,.16)}to{box-shadow:0 0 0 3px rgba(255,224,115,.2),0 0 42px rgba(255,218,75,.78),0 0 92px rgba(215,181,95,.5),inset 0 0 30px rgba(255,239,167,.28)}}
@keyframes achievementGoldSweepV417{0%{left:-55%;opacity:0}14%{opacity:1}72%{opacity:.9}100%{left:122%;opacity:0}}
@keyframes achievementRingV417{0%{opacity:0;transform:scale(.55)}22%{opacity:.95}100%{opacity:0;transform:scale(1.38)}}
@keyframes achievementSparkV417{0%{opacity:0;transform:translate(-50%,-50%) rotate(calc(var(--spark-i) * 25.714deg)) translateY(-35px) scaleY(.15)}24%{opacity:1}100%{opacity:0;transform:translate(-50%,-50%) rotate(calc(var(--spark-i) * 25.714deg)) translateY(-82px) scaleY(1)}}

/* PLAYER · limpiar cualquier salida/nota residual bajo el control de volumen. */
.player-console .player-volume{overflow:hidden!important;margin-bottom:0!important;padding-bottom:0!important;min-height:24px!important}
.player-console .player-volume::before,.player-console .player-volume::after{content:none!important;display:none!important}
.player-console .player-mobile-volume-note,.player-console .player-volume-note,.player-console [data-player-volume-note],.player-console .volume-output,.player-console output{display:none!important;visibility:hidden!important;height:0!important;margin:0!important;padding:0!important}

/* USER · estrella algo mayor y muy próxima al número sin tocarlo. */
.user-hero-level-star{font-size:18px!important;transform:translate(20px,-34px)!important}
@media(max-width:460px){.user-hero-level-star{font-size:14px!important;transform:translate(17px,-28px)!important}}

/* MIS STORIES · rail derecho totalmente contenido en la tarjeta. Flecha alineada con progreso; badges por encima. */
.continue-card{position:relative!important;overflow:hidden!important;grid-template-columns:56px minmax(0,1fr) 38px!important;padding-right:7px!important}
.continue-copy{position:static!important;overflow:hidden!important;padding-right:0!important}
.resume-arrow{position:absolute!important;right:9px!important;bottom:17px!important;width:32px!important;height:32px!important;margin:0!important;z-index:6!important}
.continue-inline-icons{position:absolute!important;right:7px!important;bottom:55px!important;width:74px!important;min-height:22px!important;height:auto!important;margin:0!important;padding:0!important;display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;align-items:center!important;justify-content:flex-end!important;gap:4px!important;z-index:7!important;overflow:hidden!important}
.continue-inline-icons>.story-media-badges{display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;gap:4px!important;align-items:center!important;justify-content:flex-end!important}
.continue-inline-icons .ex-badge,.continue-inline-icons .media-badge{width:20px!important;height:20px!important;min-width:20px!important;min-height:20px!important;margin:0!important;flex:0 0 20px!important}
.continue-inline-icons .lock-svg,.continue-inline-icons .media-feature-svg{width:12px!important;height:12px!important}
@media(max-width:460px){.resume-arrow{right:7px!important;bottom:16px!important}.continue-inline-icons{right:6px!important;bottom:53px!important;width:70px!important}}

/* Importer-tagged teaser thumbnail/row distinction in app-independent stylesheet harmless fallback. */
@media(prefers-reduced-motion:reduce){.achievement-reward-icon-stage *{animation:none!important}.achievement-reward-medal{opacity:1!important;transform:none!important}}


/* ============================================================
   DISTURBING STORIES APP v4.18 · USER / PLAYER / HEADER
   ============================================================ */

/* HEADER · atrás compacto: solo la flecha, grande y centrada. */
.back-nav-btn{
  width:46px!important;min-width:46px!important;max-width:46px!important;height:40px!important;
  padding:0!important;display:grid!important;place-items:center!important;
  font-size:31px!important;line-height:1!important;font-weight:500!important;letter-spacing:0!important;
  color:#d7e8ec!important;border-color:#36525b!important;background:#071014!important;
}
@media(max-width:390px){.back-nav-btn{width:42px!important;min-width:42px!important;max-width:42px!important;height:38px!important;font-size:29px!important}}

/* PLAYER · control de volumen completamente personalizado. El input nativo queda
   invisible como capa interactiva para evitar el artefacto vertical visto en WebKit. */
.player-console .player-volume{display:grid!important;grid-template-columns:34px minmax(0,1fr)!important;align-items:center!important;gap:10px!important;overflow:visible!important;min-height:28px!important}
.player-volume-label{display:block!important;align-self:center!important;margin:0!important;padding:0!important;line-height:1!important}
.player-volume-control{position:relative!important;height:28px!important;min-width:0!important;--volume-pct:85%;isolation:isolate!important;overflow:hidden!important;border-radius:14px!important}
.player-volume-track{position:absolute!important;left:0!important;right:0!important;top:50%!important;height:6px!important;transform:translateY(-50%)!important;border:1px solid #24506c!important;border-radius:999px!important;background:#17242d!important;overflow:hidden!important;pointer-events:none!important;z-index:1!important}
.player-volume-track>i{display:block!important;width:var(--volume-pct)!important;height:100%!important;background:linear-gradient(90deg,#168ad8,#54c6ff)!important;border-radius:inherit!important}
.player-volume-thumb{position:absolute!important;left:var(--volume-pct)!important;top:50%!important;width:18px!important;height:18px!important;transform:translate(-50%,-50%)!important;border-radius:50%!important;background:#e8f7ff!important;border:2px solid #33a8ff!important;box-shadow:0 0 0 2px rgba(51,168,255,.12),0 2px 8px rgba(0,0,0,.55)!important;pointer-events:none!important;z-index:2!important}
.player-volume-control input[type="range"]{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;margin:0!important;padding:0!important;opacity:0!important;appearance:none!important;-webkit-appearance:none!important;background:transparent!important;border:0!important;z-index:3!important;cursor:pointer!important}
.player-volume-control input[type="range"]::-webkit-slider-runnable-track,.player-volume-control input[type="range"]::-webkit-slider-thumb{appearance:none!important;-webkit-appearance:none!important;background:transparent!important;border:0!important;box-shadow:none!important}
.player-volume-control input[type="range"]::-moz-range-track,.player-volume-control input[type="range"]::-moz-range-progress,.player-volume-control input[type="range"]::-moz-range-thumb{background:transparent!important;border:0!important;box-shadow:none!important}
.player-console .player-mobile-volume-note,.player-console .player-volume-note,.player-console [data-player-volume-note],.player-console .volume-output,.player-console output{display:none!important}

/* USER · edición de nombre sin tocar email/credenciales. */
.user-edit-name-btn{margin-top:9px!important;align-self:flex-start!important;border:1px solid rgba(215,181,95,.48)!important;background:rgba(8,10,11,.7)!important;color:#e7cf87!important;border-radius:8px!important;padding:7px 10px!important;font:800 8px/1 Oxanium,sans-serif!important;letter-spacing:.08em!important;cursor:pointer!important}
.user-name-editor{margin-top:8px!important;width:min(100%,260px)!important;padding:9px!important;border:1px solid rgba(215,181,95,.34)!important;border-radius:9px!important;background:rgba(3,6,8,.84)!important}
.user-name-editor.hidden{display:none!important}.user-name-editor input{width:100%!important;min-width:0!important;border:1px solid #39464a!important;background:#05090b!important;color:#fff!important;border-radius:7px!important;padding:8px 9px!important;font-size:12px!important;outline:none!important}.user-name-editor input:focus{border-color:#d7b55f!important;box-shadow:0 0 0 2px rgba(215,181,95,.12)!important}
.user-name-editor-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:6px!important;margin-top:7px!important}.user-name-editor-actions button{min-height:31px!important;border-radius:7px!important;border:1px solid #3b4548!important;background:#111719!important;color:#d7e8ec!important;font:800 8px/1 Oxanium,sans-serif!important;letter-spacing:.06em!important}.user-name-editor-actions #userNameSave{border-color:#8c742e!important;color:#f3d77a!important;background:#171204!important}.user-name-editor small{display:block!important;margin-top:6px!important;color:#9faeb2!important;font-size:8px!important}.user-name-editor small.bad{color:#ff8e95!important}

/* USER · nivel grande: contenido algo más bajo y aro dorado más fino. */
.user-hero-level{box-shadow:inset 0 0 0 3px rgba(240,204,104,.92),0 0 22px rgba(215,181,95,.15)!important}
.user-hero-level-number{transform:translate(-2px,5px)!important}
.user-hero-level-star{transform:translate(20px,-27px)!important}
@media(max-width:460px){.user-hero-level-number{transform:translate(-1px,4px)!important}.user-hero-level-star{transform:translate(17px,-22px)!important}}

/* ============================================================
   DISTURBING STORIES APP v4.19 · PLAYER / HEADER / USER / SAGAS
   ============================================================ */

/* PLAYER · el control de volumen ya no contiene ningún input range nativo.
   Toda la interacción se resuelve por pointer/teclado sobre este contenedor. */
.player-console .player-volume{
  display:grid!important;grid-template-columns:34px minmax(0,1fr)!important;
  align-items:center!important;gap:10px!important;overflow:hidden!important;
  min-height:30px!important;margin-bottom:0!important;padding-bottom:0!important;
}
.player-volume-control{
  position:relative!important;height:30px!important;min-width:0!important;
  --volume-pct:85%;isolation:isolate!important;overflow:hidden!important;
  border-radius:15px!important;cursor:pointer!important;touch-action:none!important;
  outline:none!important;
}
.player-volume-control:focus-visible{box-shadow:0 0 0 1px #54c6ff,0 0 10px rgba(84,198,255,.18)!important}
.player-volume-track{left:0!important;right:0!important;top:50%!important;height:6px!important;transform:translateY(-50%)!important}
.player-volume-thumb{left:var(--volume-pct)!important;top:50%!important}
.player-volume-control input,.player-console .player-volume input{display:none!important}
.player-console .player-mobile-volume-note,.player-console .player-volume-note,.player-console [data-player-volume-note],.player-console .volume-output,.player-console output{display:none!important}

/* PLAYER · imágenes con un recorrido más evidente y más frecuente. */
.player-artwork-slide{inset:-7%!important}
.player-artwork-slide.active img.pan-y{animation:playerArtworkPanY419 8s ease-in-out infinite alternate!important}
.player-artwork-slide.active img.pan-x{animation:playerArtworkPanX419 8s ease-in-out infinite alternate!important}
.player-artwork-slide.active img.pan-soft{animation:playerArtworkPanSoft419 7s ease-in-out infinite alternate!important}
.player-artwork-signal{animation-duration:3.1s!important}
@keyframes playerArtworkPanY419{
  0%{object-position:50% 0%;transform:scale(1.02) translate3d(0,-1.5%,0)}
  100%{object-position:50% 100%;transform:scale(1.13) translate3d(0,1.5%,0)}
}
@keyframes playerArtworkPanX419{
  0%{object-position:0% 50%;transform:scale(1.02) translate3d(-1.8%,0,0)}
  100%{object-position:100% 50%;transform:scale(1.13) translate3d(1.8%,0,0)}
}
@keyframes playerArtworkPanSoft419{
  0%{object-position:40% 40%;transform:scale(1.02) translate3d(-2%,-1%,0)}
  100%{object-position:60% 60%;transform:scale(1.14) translate3d(2%,1%,0)}
}

/* PLAYER · símbolos de los tres modos con aproximadamente el doble de escala. */
.player-mode{display:flex!important;align-items:center!important;justify-content:center!important;gap:7px!important;padding:5px 7px!important}
.player-mode .player-mode-icon{display:inline-grid!important;place-items:center!important;font-size:30px!important;line-height:.72!important;font-weight:800!important;flex:0 0 auto!important}
.player-mode>span:last-child{font-size:clamp(10px,2.9vw,13px)!important;line-height:1!important}

/* PLAYER · visualizador largo. Se mantiene anclado a la derecha, pero añade
   suficientes barras para llenar todo el espacio hasta el tiempo de pista. */
.player-progress-meta{grid-template-columns:auto minmax(0,1fr)!important;gap:7px!important}
.player-wave{width:100%!important;min-width:0!important;justify-content:flex-end!important;gap:2px!important;height:35px!important;overflow:hidden!important}
.player-wave i{width:3px!important;flex:0 0 3px!important;animation:none!important;transition:opacity .07s linear!important;will-change:transform,opacity!important}
.player-wave.playing i{animation:none!important}

/* PLAYER · playlist inicialmente colapsada, con CTA del mismo peso visual que Spotify. */
.player-playlist-toggle{
  width:100%!important;display:flex!important;align-items:center!important;gap:11px!important;
  border:1px solid #315965!important;background:#071217!important;color:#e7fbff!important;
  border-radius:13px!important;padding:12px 13px!important;margin:12px 0!important;
  text-align:left!important;cursor:pointer!important;
}
.player-playlist-mark{width:34px;height:34px;flex:0 0 34px;display:grid;place-items:center;border:1px solid #4ca4ba;border-radius:50%;color:#8ef4ff;font:900 23px/1 Oxanium,sans-serif;background:#061015}
.player-playlist-toggle>span:nth-child(2){display:grid;gap:4px;min-width:0;flex:1}
.player-playlist-toggle strong{display:block;font-family:Oxanium,sans-serif;font-size:clamp(14px,3.9vw,17px)!important;line-height:1.1;letter-spacing:-.01em}
.player-playlist-toggle small{display:block;color:#789da6;font-size:clamp(8px,2.35vw,10px);line-height:1.2}
.player-playlist-toggle>b{font-size:22px;line-height:1;transition:transform .2s ease;color:#9ad5df}
.player-playlist-toggle.open>b{transform:rotate(180deg)}
.player-playlist-toggle.open{border-color:#4f8f9e!important;background:#091a20!important}
.player-playlist-panel{margin-top:0!important;overflow:hidden!important}
.player-playlist-panel.hidden{display:none!important}
.player-playlist-panel .player-list{margin-top:0!important}
.player-playlist-panel .player-note{margin-bottom:0!important}

/* HEADER · flecha SVG perfectamente centrada en ambos ejes. */
.back-nav-btn{display:grid!important;place-items:center!important;line-height:0!important}
.back-nav-btn svg{display:block!important;width:27px!important;height:27px!important;margin:0!important;padding:0!important;overflow:visible!important}
.back-nav-btn svg path{fill:none!important;stroke:currentColor!important;stroke-width:2.15!important;stroke-linecap:round!important;stroke-linejoin:round!important}
@media(max-width:390px){.back-nav-btn svg{width:25px!important;height:25px!important}}

/* USER en su propia página: al estar registrado, el avatar + Hola ocupan el lugar
   del icono genérico porque el indicador contextual se oculta por JS. */
.topbar-left .section-indicator.hidden{display:none!important}

@media(prefers-reduced-motion:reduce){
  .player-artwork-slide.active img.pan-y,.player-artwork-slide.active img.pan-x,.player-artwork-slide.active img.pan-soft{animation:none!important}
  .player-playlist-toggle>b{transition:none!important}
}

/* ============================================================
   DISTURBING STORIES APP v4.20 · PLAYER FINAL POLISH
   ============================================================ */

/* PLAYER · volumen: el progreso se pinta directamente en el track.
   No existe ningún <i>, pseudo-elemento ni input nativo que pueda dibujar
   el artefacto vertical observado bajo VOL en iPhone/WebKit. */
.player-console .player-volume{overflow:hidden!important}
.player-volume-track{
  background:linear-gradient(90deg,#168ad8 0%,#54c6ff var(--volume-pct),#17242d var(--volume-pct),#17242d 100%)!important;
  overflow:hidden!important;
}
.player-volume-track>i{display:none!important;width:0!important;height:0!important;background:none!important}
.player-volume-label{position:relative!important;overflow:hidden!important}
.player-volume-label::before,.player-volume-label::after{content:none!important;display:none!important}

/* PLAYER · anterior / siguiente: SVG centrado y ligeramente elevado. */
#playerPrev,#playerNext{display:grid!important;place-items:center!important;line-height:0!important;padding:0!important}
.player-skip-svg{display:block;width:31px;height:31px;transform:translateY(-2px);fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}

/* PLAYER · PLAYLIST: mismo tamaño exterior que Spotify, pictograma más pequeño
   y flecha final verdaderamente centrada. */
.player-playlist-mark{width:34px!important;height:34px!important;flex:0 0 34px!important;padding:0!important;line-height:0!important}
.player-playlist-icon{display:block;width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.player-playlist-icon circle{fill:currentColor;stroke:none}
.player-playlist-chevron{width:34px;height:34px;flex:0 0 34px;display:grid!important;place-items:center!important;align-self:center!important;line-height:0!important;color:#9ad5df;transform:none!important}
.player-playlist-chevron svg{display:block;width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;transform:translateY(-1px);transition:transform .2s ease}
.player-playlist-toggle.open .player-playlist-chevron{transform:none!important}
.player-playlist-toggle.open .player-playlist-chevron svg{transform:translateY(1px) rotate(180deg)}

@media(max-width:360px){
  .player-playlist-mark{width:30px!important;height:30px!important;flex-basis:30px!important}
  .player-playlist-icon{width:15px;height:15px}
  .player-playlist-chevron{width:30px;height:30px;flex-basis:30px}
  .player-playlist-chevron svg{width:25px;height:25px}
}

@media(prefers-reduced-motion:reduce){
  .player-playlist-chevron svg{transition:none!important}
}


/* ============================================================
   DISTURBING STORIES APP v4.21 · PLAYER / HOME / USER MOTION
   ============================================================ */

/* PLAYER · volumen reconstruido desde cero. No usa span, input, pista auxiliar,
   pseudo-elementos ni elementos secundarios que WebKit pueda materializar. */
.player-console .player-volume{
  display:grid!important;grid-template-columns:34px minmax(0,1fr)!important;
  align-items:center!important;gap:10px!important;min-height:28px!important;
  margin-top:16px!important;padding:0!important;overflow:visible!important;
}
.player-console .player-volume-label{
  display:block!important;position:static!important;width:auto!important;height:auto!important;
  margin:0!important;padding:0!important;overflow:visible!important;background:none!important;
  border:0!important;box-shadow:none!important;line-height:1!important;color:#72c2ff!important;
}
.player-console .player-volume-control{
  position:relative!important;display:block!important;height:6px!important;min-height:6px!important;
  max-height:6px!important;margin:0!important;padding:0!important;overflow:visible!important;
  border:1px solid #24506c!important;border-radius:999px!important;
  background:linear-gradient(90deg,#168ad8 0%,#54c6ff var(--volume-pct),#17242d var(--volume-pct),#17242d 100%)!important;
  box-shadow:none!important;isolation:auto!important;cursor:pointer!important;
}
.player-console .player-volume-control::before,.player-console .player-volume-control::after,
.player-console .player-volume-label::before,.player-console .player-volume-label::after{
  content:none!important;display:none!important;
}
.player-console .player-volume-track{display:none!important}
.player-console .player-volume-thumb{
  position:absolute!important;left:var(--volume-pct)!important;top:50%!important;
  width:18px!important;height:18px!important;transform:translate(-50%,-50%)!important;
  border-radius:50%!important;background:#e8f7ff!important;border:2px solid #33a8ff!important;
  box-shadow:0 0 0 2px rgba(51,168,255,.12),0 2px 8px rgba(0,0,0,.55)!important;
  pointer-events:none!important;z-index:2!important;
}
.player-console .player-volume>*:not(.player-volume-label):not(.player-volume-control){display:none!important}

/* PLAYER · las imágenes de pista se leen mucho mejor: capa oscura reducida a la mitad. */
.player-artwork-bg::after{
  background:linear-gradient(180deg,rgba(8,8,8,.125),rgba(8,8,8,.24) 44%,rgba(8,8,8,.36)),
             radial-gradient(circle at 50% 40%,rgba(8,8,8,.04),rgba(8,8,8,.34) 92%)!important;
}

/* Spotify · flecha mayor, centrada y texto definitivo. */
.spotify-companion>b{
  width:34px!important;height:34px!important;display:grid!important;place-items:center!important;
  align-self:center!important;font-size:30px!important;line-height:1!important;transform:translateY(-1px)!important;
}

/* HOME · shimmer mucho más evidente, siempre restringido al progreso dorado. */
.home-progress.home-progress-reveal-in .collection-progress>span::after{
  background:linear-gradient(105deg,transparent 0 22%,rgba(255,249,207,.16) 34%,rgba(255,255,232,.96) 49%,rgba(255,219,96,.70) 56%,rgba(255,247,201,.18) 68%,transparent 80% 100%)!important;
  filter:drop-shadow(0 0 5px rgba(255,226,105,.72))!important;
  animation:homeProgressShimmerV421 1.12s .34s ease-in-out infinite!important;
}
@keyframes homeProgressShimmerV421{0%{transform:translateX(-125%)}72%,100%{transform:translateX(125%)}}

/* USER · secuencia superior específica: círculos nacen desde 0; textos se escriben
   por JS; nivel cuenta 0→X; EDITAR NOMBRE aparece al final. */
.user-page.user-page-reveal-in>.user-hero.user-hero-v421>.user-avatar-current{
  opacity:0!important;transform:scale(0)!important;
  animation:userHeroCircleInV421 .62s .08s cubic-bezier(.12,.9,.22,1.18) forwards!important;
}
.user-page.user-page-reveal-in>.user-hero.user-hero-v421>.user-hero-level{
  opacity:0!important;transform:scale(0)!important;
  animation:userHeroCircleInV421 .66s .34s cubic-bezier(.12,.9,.22,1.18) forwards!important;
}
.user-hero-v421 .user-hero-copy{opacity:1!important;transform:none!important}
.user-hero-v421 .user-hero-name,.user-hero-v421 .user-hero-status,.user-hero-v421 .user-email{
  min-height:1em;
}
.user-edit-name-v421-wait{opacity:0!important;transform:translateY(7px)!important;pointer-events:none!important}
.user-edit-name-v421-show{animation:userEditFadeV421 .44s cubic-bezier(.2,.8,.2,1) both!important;pointer-events:auto!important}
@keyframes userHeroCircleInV421{0%{opacity:0;transform:scale(0)}68%{opacity:1;transform:scale(1.09)}100%{opacity:1;transform:scale(1)}}
@keyframes userEditFadeV421{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){
  .user-page.user-page-reveal-in>.user-hero.user-hero-v421>.user-avatar-current,
  .user-page.user-page-reveal-in>.user-hero.user-hero-v421>.user-hero-level,
  .user-edit-name-v421-show{animation:none!important;opacity:1!important;transform:none!important}
}


/* ============================================================
   DISTURBING STORIES APP v4.22 · PLAYER VOLUME CLEAN ROOM / USER
   ============================================================ */

/* PLAYER · volumen aislado de TODO el CSS histórico del componente.
   Las clases son nuevas y únicas para impedir que reglas antiguas de .player-volume,
   input[type=range], <i> o pseudo-elementos puedan volver a renderizar artefactos. */
.ds-volume-v422{
  display:grid!important;grid-template-columns:34px minmax(0,1fr)!important;
  align-items:center!important;gap:10px!important;min-height:28px!important;
  margin-top:16px!important;padding:0!important;overflow:visible!important;
  color:#72c2ff!important;font:1000 8px/1 Oxanium,sans-serif!important;
}
.ds-volume-v422::before,.ds-volume-v422::after,
.ds-volume-label-v422::before,.ds-volume-label-v422::after,
.ds-volume-control-v422::before,.ds-volume-control-v422::after,
.ds-volume-thumb-v422::before,.ds-volume-thumb-v422::after{content:none!important;display:none!important}
.ds-volume-label-v422{
  display:block!important;position:static!important;width:auto!important;height:auto!important;
  margin:0!important;padding:0!important;border:0!important;background:transparent!important;
  box-shadow:none!important;overflow:visible!important;color:#72c2ff!important;line-height:1!important;
}
.ds-volume-control-v422{
  position:relative!important;display:block!important;height:6px!important;min-height:6px!important;max-height:6px!important;
  margin:0!important;padding:0!important;border:1px solid #24506c!important;border-radius:999px!important;
  background:linear-gradient(90deg,#168ad8 0%,#54c6ff var(--volume-pct),#17242d var(--volume-pct),#17242d 100%)!important;
  box-shadow:none!important;overflow:visible!important;isolation:auto!important;cursor:pointer!important;touch-action:none!important;outline:none!important;
}
.ds-volume-control-v422:focus-visible{box-shadow:0 0 0 1px #54c6ff,0 0 10px rgba(84,198,255,.18)!important}
.ds-volume-thumb-v422{
  position:absolute!important;left:var(--volume-pct)!important;top:50%!important;width:18px!important;height:18px!important;
  transform:translate(-50%,-50%)!important;border-radius:50%!important;background:#e8f7ff!important;border:2px solid #33a8ff!important;
  box-shadow:0 0 0 2px rgba(51,168,255,.12),0 2px 8px rgba(0,0,0,.55)!important;pointer-events:none!important;z-index:2!important;
}

/* PLAYER · imagen de pista: la capa oscura vuelve a reducirse aproximadamente a la mitad. */
.player-artwork-bg::after{
  background:linear-gradient(180deg,rgba(8,8,8,.06),rgba(8,8,8,.12) 44%,rgba(8,8,8,.18)),
             radial-gradient(circle at 50% 40%,rgba(8,8,8,.015),rgba(8,8,8,.17) 92%)!important;
}

/* USER · avatar y nivel recuperados y con entrada segura.
   La clase final garantiza que nunca puedan quedarse ocultos si se interrumpe una animación. */
body .user-page.user-page-reveal-in>.user-hero.user-hero-v422>.user-avatar-current{
  visibility:visible!important;filter:none!important;opacity:0!important;transform:scale(.05)!important;
  animation:userHeroAvatarInV422 .40s 0s cubic-bezier(.16,.88,.22,1.12) forwards!important;
}
body .user-page.user-page-reveal-in>.user-hero.user-hero-v422>.user-hero-level{
  visibility:visible!important;filter:none!important;opacity:0!important;transform:scale(.05)!important;
  animation:userHeroLevelInV422 .42s .15s cubic-bezier(.16,.88,.22,1.12) forwards!important;
}
body .user-page>.user-hero.user-hero-v422.user-hero-v422-complete>.user-avatar-current,
body .user-page>.user-hero.user-hero-v422.user-hero-v422-complete>.user-hero-level{
  opacity:1!important;visibility:visible!important;transform:none!important;filter:none!important;animation:none!important;
}
.user-hero-v422 .user-hero-copy{opacity:1!important;transform:none!important}
.user-hero-v422 .user-hero-name,.user-hero-v422 .user-hero-status,.user-hero-v422 .user-email{min-height:1em}
@keyframes userHeroAvatarInV422{0%{opacity:0;transform:scale(.05)}72%{opacity:1;transform:scale(1.08)}100%{opacity:1;transform:scale(1)}}
@keyframes userHeroLevelInV422{0%{opacity:0;transform:scale(.05)}72%{opacity:1;transform:scale(1.08)}100%{opacity:1;transform:scale(1)}}

/* USER · mayor recorrido horizontal/vertical del fondo, sin cambiar la estética RGB. */
.user-hero-bg-main{animation:userHeroDynamicV422 5.7s ease-in-out infinite!important}
.user-hero-bg-backdrop{animation:userHeroBackdropV422 7.2s ease-in-out infinite alternate!important}
@keyframes userHeroDynamicV422{
  0%,100%{transform:translate3d(-2.8%,-2.0%,0) scale(1.115)}
  24%{transform:translate3d(3.2%,1.9%,0) scale(1.14)}
  50%{transform:translate3d(-1.8%,3.0%,0) scale(1.125)}
  76%{transform:translate3d(2.7%,-2.7%,0) scale(1.145)}
}
@keyframes userHeroBackdropV422{
  0%{transform:scale(1.12) translate3d(-4.0%,2.1%,0)}
  100%{transform:scale(1.19) translate3d(4.2%,-3.2%,0)}
}
@media(prefers-reduced-motion:reduce){.user-hero-bg-main,.user-hero-bg-backdrop{animation:none!important}body .user-page>.user-hero.user-hero-v422>.user-avatar-current,body .user-page>.user-hero.user-hero-v422>.user-hero-level{opacity:1!important;visibility:visible!important;transform:none!important;animation:none!important}}

/* ============================================================
   DISTURBING STORIES APP v4.23 · MULTIMEDIA / INTRO / USER / SAGAS
   ============================================================ */

/* Intro: el último fotograma blanco continúa sobre HOME y desaparece en 1 segundo. */
.intro-white-handoff{
  position:fixed;inset:0;z-index:1999;background:#fff;opacity:1;pointer-events:none;
  transition:opacity 1s linear;will-change:opacity;
}
.intro-white-handoff.hidden{display:none!important}
.intro-white-handoff.fade-out{opacity:0}

/* PLAYER: en secuencias de varias imágenes cada imagen vuelve suavemente a su
   posición inicial antes del fundido. Así al perder .active no existe salto. */
.player-artwork-bg:not(.single) .player-artwork-slide img.pan-y{
  object-position:50% 0%!important;transform:scale(1.02) translate3d(0,-1.5%,0)!important;
}
.player-artwork-bg:not(.single) .player-artwork-slide img.pan-x{
  object-position:0% 50%!important;transform:scale(1.02) translate3d(-1.8%,0,0)!important;
}
.player-artwork-bg:not(.single) .player-artwork-slide img.pan-soft{
  object-position:40% 40%!important;transform:scale(1.02) translate3d(-2%,-1%,0)!important;
}
body .player-artwork-bg:not(.single) .player-artwork-slide.active img.motion-run.pan-y{
  animation:playerArtworkPanY423 9.4s cubic-bezier(.45,.02,.55,.98) 1 both!important;
}
body .player-artwork-bg:not(.single) .player-artwork-slide.active img.motion-run.pan-x{
  animation:playerArtworkPanX423 9.4s cubic-bezier(.45,.02,.55,.98) 1 both!important;
}
body .player-artwork-bg:not(.single) .player-artwork-slide.active img.motion-run.pan-soft{
  animation:playerArtworkPanSoft423 9.4s cubic-bezier(.45,.02,.55,.98) 1 both!important;
}
@keyframes playerArtworkPanY423{
  0%{object-position:50% 0%;transform:scale(1.02) translate3d(0,-1.5%,0)}
  48%{object-position:50% 100%;transform:scale(1.13) translate3d(0,1.5%,0)}
  100%{object-position:50% 0%;transform:scale(1.02) translate3d(0,-1.5%,0)}
}
@keyframes playerArtworkPanX423{
  0%{object-position:0% 50%;transform:scale(1.02) translate3d(-1.8%,0,0)}
  48%{object-position:100% 50%;transform:scale(1.13) translate3d(1.8%,0,0)}
  100%{object-position:0% 50%;transform:scale(1.02) translate3d(-1.8%,0,0)}
}
@keyframes playerArtworkPanSoft423{
  0%{object-position:40% 40%;transform:scale(1.02) translate3d(-2%,-1%,0)}
  48%{object-position:60% 60%;transform:scale(1.14) translate3d(2%,1%,0)}
  100%{object-position:40% 40%;transform:scale(1.02) translate3d(-2%,-1%,0)}
}

/* USER: avatar y nivel empiezan a formarse desde el primer instante y nunca
   pasan por un estado completamente desaparecido. */
body .user-page.user-page-reveal-ready>.user-hero.user-hero-v423,
body .user-page.user-page-reveal-in>.user-hero.user-hero-v423{
  opacity:1!important;transform:none!important;filter:none!important;animation:none!important;
}
body .user-page.user-page-reveal-ready>.user-hero.user-hero-v423>.user-avatar-current,
body .user-page.user-page-reveal-ready>.user-hero.user-hero-v423>.user-hero-level{
  visibility:visible!important;opacity:.22!important;filter:none!important;transform:scale(.34)!important;animation:none!important;
}
body .user-page.user-page-reveal-in>.user-hero.user-hero-v423>.user-avatar-current{
  visibility:visible!important;opacity:.22!important;transform:scale(.34)!important;
  animation:userHeroAvatarInV423 .44s 0s cubic-bezier(.15,.88,.2,1.14) forwards!important;
}
body .user-page.user-page-reveal-in>.user-hero.user-hero-v423>.user-hero-level{
  visibility:visible!important;opacity:.22!important;transform:scale(.34)!important;
  animation:userHeroLevelInV423 .48s .02s cubic-bezier(.15,.88,.2,1.14) forwards!important;
}
body .user-page>.user-hero.user-hero-v423.user-hero-v423-complete>.user-avatar-current,
body .user-page>.user-hero.user-hero-v423.user-hero-v423-complete>.user-hero-level{
  opacity:1!important;visibility:visible!important;transform:none!important;filter:none!important;animation:none!important;
}
.user-hero-v423 .user-hero-copy{opacity:1!important;transform:none!important}
.user-hero-v423 .user-hero-name,.user-hero-v423 .user-hero-status,.user-hero-v423 .user-email{min-height:1em}
@keyframes userHeroAvatarInV423{0%{opacity:.22;transform:scale(.34)}68%{opacity:1;transform:scale(1.08)}100%{opacity:1;transform:scale(1)}}
@keyframes userHeroLevelInV423{0%{opacity:.22;transform:scale(.34)}68%{opacity:1;transform:scale(1.08)}100%{opacity:1;transform:scale(1)}}

/* SAGAS: si toda la saga está publicada y leída, el trazo se vuelve dorado. */
.saga-card.saga-card-read-complete{
  border-color:#d7b55f!important;
  box-shadow:0 0 0 1px rgba(215,181,95,.34),0 0 24px rgba(215,181,95,.16)!important;
}

@media(prefers-reduced-motion:reduce){
  .intro-white-handoff{transition:none!important}
  body .player-artwork-bg:not(.single) .player-artwork-slide img{animation:none!important}
  body .user-page>.user-hero.user-hero-v423>.user-avatar-current,
  body .user-page>.user-hero.user-hero-v423>.user-hero-level{opacity:1!important;visibility:visible!important;transform:none!important;animation:none!important}
}


/* ============================================================
   DISTURBING STORIES APP v4.24 · ENTRY / STORM / PLAYER / USER
   ============================================================ */
.entry-gate{position:fixed;inset:0;z-index:2200;display:grid;place-items:center;background:#03080b;overflow:hidden;transition:opacity .2s ease;}
.entry-gate.hidden{display:none!important}.entry-gate.leaving{opacity:0;pointer-events:none}
.entry-gate-button{position:relative;width:min(54vw,280px);aspect-ratio:1;border:0;background:transparent;padding:0;display:grid;place-items:center;cursor:pointer;isolation:isolate}
.entry-gate-button img{position:relative;z-index:2;display:block;width:78%;height:78%;object-fit:contain;filter:drop-shadow(0 0 26px rgba(82,220,236,.18));animation:entryViscousV424 3.2s ease-in-out infinite;transform-origin:center}
.entry-gate-ripples{position:absolute;inset:4%;z-index:1;display:block;pointer-events:none}.entry-gate-ripples i{position:absolute;inset:19%;border:1px solid rgba(95,222,236,.2);border-radius:50%;animation:entryRippleV424 2.6s ease-out infinite}.entry-gate-ripples i:nth-child(2){animation-delay:.8s}.entry-gate-ripples i:nth-child(3){animation-delay:1.6s}
@keyframes entryViscousV424{0%,100%{transform:scale(1) scaleX(1) scaleY(1)}25%{transform:scale(1.055) scaleX(1.025) scaleY(.985)}52%{transform:scale(.985) scaleX(.975) scaleY(1.035)}76%{transform:scale(1.04) scaleX(1.035) scaleY(.98)}}
@keyframes entryRippleV424{0%{opacity:.55;transform:scale(.68)}75%{opacity:.12}100%{opacity:0;transform:scale(1.52)}}
.intro-white-handoff{transition:none!important}
.storm-toggle{width:36px!important;height:36px!important;min-width:36px!important;border-radius:50%!important;padding:7px!important;opacity:.96}
.storm-toggle svg{width:21px;height:21px;display:block;overflow:visible}.storm-toggle path{fill:none;stroke:#b9d7dc;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}.storm-toggle .storm-bolt{fill:#d7b55f;stroke:#d7b55f;stroke-width:.8}.storm-toggle .storm-off-slash{display:none;stroke:#e24d55;stroke-width:2.1}.storm-toggle.inactive{opacity:.5}.storm-toggle.inactive .storm-bolt{fill:none;stroke:#87979b}.storm-toggle.inactive .storm-off-slash{display:block}
/* Player: el movimiento continúa durante el fundido; la imagen saliente nunca salta a su origen. */
body .player-artwork-bg:not(.single) .player-artwork-slide.active img.motion-run.pan-y,
body .player-artwork-bg:not(.single) .player-artwork-slide.leaving img.motion-run.pan-y{animation:playerArtworkPanY424 8s ease-in-out infinite alternate!important}
body .player-artwork-bg:not(.single) .player-artwork-slide.active img.motion-run.pan-x,
body .player-artwork-bg:not(.single) .player-artwork-slide.leaving img.motion-run.pan-x{animation:playerArtworkPanX424 8s ease-in-out infinite alternate!important}
body .player-artwork-bg:not(.single) .player-artwork-slide.active img.motion-run.pan-soft,
body .player-artwork-bg:not(.single) .player-artwork-slide.leaving img.motion-run.pan-soft{animation:playerArtworkPanSoft424 7.2s ease-in-out infinite alternate!important}
.player-artwork-slide.active.leaving{opacity:0!important;z-index:1!important}
@keyframes playerArtworkPanY424{0%{object-position:50% 4%;transform:scale(1.05) translate3d(0,-3.5%,0)}100%{object-position:50% 96%;transform:scale(1.16) translate3d(0,3.5%,0)}}
@keyframes playerArtworkPanX424{0%{object-position:4% 50%;transform:scale(1.05) translate3d(-4.5%,0,0)}100%{object-position:96% 50%;transform:scale(1.16) translate3d(4.5%,0,0)}}
@keyframes playerArtworkPanSoft424{0%{object-position:34% 34%;transform:scale(1.05) translate3d(-3.5%,-2.4%,0)}100%{object-position:66% 66%;transform:scale(1.16) translate3d(3.5%,2.4%,0)}}
/* USER: avatar y nivel ya están en su posición final; solo hacen fade. */
body .user-page.user-page-reveal-ready>.user-hero.user-hero-v424>.user-avatar-current,
body .user-page.user-page-reveal-ready>.user-hero.user-hero-v424>.user-hero-level{visibility:visible!important;transform:none!important;opacity:0;animation:none!important}
body .user-page.user-page-reveal-in>.user-hero.user-hero-v424>.user-avatar-current,
body .user-page.user-page-reveal-in>.user-hero.user-hero-v424>.user-hero-level{visibility:visible!important;transform:none!important;animation:userHeroCircleFadeV424 .36s ease-out both!important}
body .user-page>.user-hero.user-hero-v424.user-hero-v424-complete>.user-avatar-current,
body .user-page>.user-hero.user-hero-v424.user-hero-v424-complete>.user-hero-level{opacity:1!important;visibility:visible!important;transform:none!important;animation:none!important}
@keyframes userHeroCircleFadeV424{from{opacity:0;transform:none}to{opacity:1;transform:none}}
.user-hero-v424 .user-hero-level-star{opacity:0}
.user-hero-v424.user-hero-v424-complete .user-hero-level-star{opacity:1}
@media(prefers-reduced-motion:reduce){.entry-gate-button img,.entry-gate-ripples i,.player-artwork-slide img{animation:none!important}.user-hero-v424 .user-hero-level-star{opacity:1!important}}


/* ============================================================
   DISTURBING STORIES APP v4.25 · PLAYER MOTION / ENTRY / STORM / USER
   ============================================================ */
/* PLAYER: cada imagen tiene su propia fase/frecuencia de movimiento. Durante
   el crossfade, entrante y saliente continúan moviéndose de forma independiente. */
.player-artwork-slide img.motion-v0{--art-dur:6.2s;--art-delay:-.35s}
.player-artwork-slide img.motion-v1{--art-dur:7.35s;--art-delay:-2.1s}
.player-artwork-slide img.motion-v2{--art-dur:5.7s;--art-delay:-1.25s}
.player-artwork-slide img.motion-v3{--art-dur:8.05s;--art-delay:-3.45s}
body .player-artwork-bg .player-artwork-slide.active img.motion-run.pan-y,
body .player-artwork-bg .player-artwork-slide.leaving img.motion-run.pan-y{
  animation:playerArtworkPanY425 var(--art-dur,6.8s) ease-in-out var(--art-delay,0s) infinite alternate!important;
  animation-play-state:running!important;
}
body .player-artwork-bg .player-artwork-slide.active img.motion-run.pan-x,
body .player-artwork-bg .player-artwork-slide.leaving img.motion-run.pan-x{
  animation:playerArtworkPanX425 var(--art-dur,6.8s) ease-in-out var(--art-delay,0s) infinite alternate!important;
  animation-play-state:running!important;
}
body .player-artwork-bg .player-artwork-slide.active img.motion-run.pan-soft,
body .player-artwork-bg .player-artwork-slide.leaving img.motion-run.pan-soft{
  animation:playerArtworkPanSoft425 var(--art-dur,6.8s) ease-in-out var(--art-delay,0s) infinite alternate!important;
  animation-play-state:running!important;
}
@keyframes playerArtworkPanY425{0%{object-position:48% 2%;transform:scale(1.055) translate3d(-1%,-5%,0)}45%{object-position:54% 84%;transform:scale(1.145) translate3d(1.8%,3.2%,0)}100%{object-position:46% 98%;transform:scale(1.185) translate3d(-1.2%,5%,0)}}
@keyframes playerArtworkPanX425{0%{object-position:2% 47%;transform:scale(1.055) translate3d(-6%,-1%,0)}48%{object-position:76% 54%;transform:scale(1.14) translate3d(3.5%,1.4%,0)}100%{object-position:98% 45%;transform:scale(1.18) translate3d(6%,-1.2%,0)}}
@keyframes playerArtworkPanSoft425{0%{object-position:28% 30%;transform:scale(1.055) translate3d(-4.4%,-3.2%,0)}50%{object-position:68% 58%;transform:scale(1.15) translate3d(3.4%,2.7%,0)}100%{object-position:42% 76%;transform:scale(1.1) translate3d(-1.8%,4%,0)}}
.player-artwork-slide.active.leaving{opacity:0!important;z-index:1!important}

/* ENTRY: start.png aumenta hasta el máximo útil del viewport sin deformarse. */
.entry-gate-button{width:min(96vw,720px)!important;max-height:92svh!important;aspect-ratio:1/1!important}
.entry-gate-button img{width:min(100%,660px)!important;height:min(88svh,660px)!important;max-width:100%!important;max-height:88svh!important;object-fit:contain!important}
.entry-gate-button::after{content:"";position:absolute;inset:5%;z-index:3;pointer-events:none;border-radius:50%;opacity:0;background:radial-gradient(circle,rgba(255,255,255,.72) 0 5%,rgba(87,232,255,.26) 22%,rgba(87,232,255,0) 66%);mix-blend-mode:screen}
.entry-gate-button.entry-confirm img{animation:entryConfirmV425 .33s cubic-bezier(.25,.85,.2,1) both!important;filter:drop-shadow(0 0 38px rgba(96,236,255,.62)) brightness(1.34)!important}
.entry-gate-button.entry-confirm::after{animation:entryConfirmGlowV425 .33s ease-out both!important}
@keyframes entryConfirmV425{0%{transform:scale(1)}36%{transform:scale(1.14)}70%{transform:scale(.94)}100%{transform:scale(1.035)}}
@keyframes entryConfirmGlowV425{0%{opacity:0;transform:scale(.72)}36%{opacity:1;transform:scale(1.02)}100%{opacity:0;transform:scale(1.34)}}

/* STORM: un único rayo vertical, grande; el estado OFF cruza todo el icono. */
.storm-toggle{position:relative!important;width:34px!important;min-width:34px!important;height:52px!important;min-height:52px!important;border:0!important;border-radius:8px!important;padding:0!important;background:transparent!important;opacity:1!important;overflow:visible!important}
.storm-toggle svg{width:27px!important;height:48px!important;display:block!important;overflow:visible!important}
.storm-toggle .storm-bolt{fill:#e0bd57!important;stroke:#f3da82!important;stroke-width:.8!important;filter:drop-shadow(0 0 5px rgba(224,189,87,.32))}
.storm-toggle.inactive{opacity:.72!important}
.storm-toggle.inactive .storm-bolt{fill:#778286!important;stroke:#9aa4a7!important;filter:none!important}
.storm-toggle::after{content:"";display:none;position:absolute;inset:0;pointer-events:none;border-radius:8px;background:linear-gradient(to bottom right,transparent 46%,#f04452 46%,#f04452 54%,transparent 54%);filter:drop-shadow(0 0 2px rgba(240,68,82,.55))}
.storm-toggle.inactive::after{display:block}
@media(max-width:460px){.storm-toggle{height:46px!important;min-height:46px!important;width:31px!important;min-width:31px!important}.storm-toggle svg{height:43px!important;width:24px!important}}

/* USER: nivel se ensancha para 2/3+ cifras y la estrella siempre queda a la derecha. */
.user-hero-level{display:flex!important;align-items:center!important;justify-content:center!important;gap:4px!important;padding:0 12px!important;box-sizing:border-box!important;overflow:visible!important}
.user-hero-level.level-multi{width:142px!important;min-width:142px!important;border-radius:34px!important;padding:0 14px!important}
.user-hero-level.level-3plus{width:164px!important;min-width:164px!important;border-radius:30px!important;padding:0 14px!important}
.user-hero-level-number{position:static!important;display:block!important;transform:translateY(5px)!important;letter-spacing:-.06em!important;white-space:nowrap!important}
.user-hero-level.level-multi .user-hero-level-number{font-size:62px!important;letter-spacing:-.08em!important}
.user-hero-level.level-3plus .user-hero-level-number{font-size:48px!important;letter-spacing:-.09em!important}
.user-hero-level-star{position:static!important;display:block!important;flex:0 0 auto!important;margin-left:1px!important;transform:translateY(-20px)!important;font-size:18px!important;white-space:nowrap!important}
.user-level-badge,.drawer-level-badge{display:flex!important;align-items:center!important;justify-content:center!important;gap:1px!important;width:auto!important;min-width:24px!important;padding:0 3px!important;overflow:visible!important}
.user-level-badge.level-multi,.drawer-level-badge.level-multi{min-width:31px!important;border-radius:8px!important}
.user-level-badge.level-3plus,.drawer-level-badge.level-3plus{min-width:37px!important;border-radius:7px!important}
.user-level-badge .user-level-number,.drawer-level-badge .user-level-number{position:static!important;display:block!important;line-height:19px!important}
.user-level-badge .user-level-star,.drawer-level-badge .user-level-star{position:static!important;display:block!important;flex:0 0 auto!important;margin-left:0!important;transform:translateY(-3px)!important;font-size:6px!important}

/* USER background: más recorrido vertical + horizontal con trayectoria irregular. */
.user-hero-bg-main{animation:userHeroDynamicV425 5.4s ease-in-out infinite!important}
.user-hero-bg-backdrop{animation:userHeroBackdropV425 7.1s ease-in-out infinite alternate!important}
@keyframes userHeroDynamicV425{0%,100%{transform:translate3d(-4.2%,-5.4%,0) scale(1.16)}18%{transform:translate3d(4.8%,1.8%,0) scale(1.19)}39%{transform:translate3d(-2.9%,5.8%,0) scale(1.17)}61%{transform:translate3d(5.1%,-3.7%,0) scale(1.2)}82%{transform:translate3d(-4.6%,3.9%,0) scale(1.18)}}
@keyframes userHeroBackdropV425{0%{transform:scale(1.17) translate3d(-5.2%,5.1%,0)}32%{transform:scale(1.21) translate3d(3.8%,-4.9%,0)}68%{transform:scale(1.19) translate3d(-2.8%,-6%,0)}100%{transform:scale(1.23) translate3d(5.5%,4.4%,0)}}

@media(prefers-reduced-motion:reduce){
  .entry-gate-button.entry-confirm img,.entry-gate-button.entry-confirm::after{animation:none!important}
  body .player-artwork-bg .player-artwork-slide img.motion-run{animation:none!important}
}


/* ============================================================
   DISTURBING STORIES APP v4.26 · PLAYER MOTION / STORM / USER / HOME / LOGROS
   ============================================================ */
/* PLAYER: el movimiento de artwork lo controla JS (rAF), no CSS. Esto evita
   conflictos acumulados entre generaciones de @keyframes y funciona durante
   todo el crossfade: entrante y saliente continúan moviéndose a la vez. */
body .player-artwork-bg .player-artwork-slide img.motion-run{
  animation:none!important;
  transition:none!important;
  transform-origin:50% 50%!important;
  will-change:transform!important;
}
.player-artwork-slide{inset:-9%!important}

/* STORM: icono de tormenta contenido completamente dentro de su caja. */
.storm-toggle{
  width:40px!important;min-width:40px!important;height:40px!important;min-height:40px!important;
  padding:4px!important;border-radius:10px!important;overflow:hidden!important;display:grid!important;place-items:center!important;
}
.storm-toggle svg{width:27px!important;height:34px!important;max-width:27px!important;max-height:34px!important;overflow:hidden!important}
.storm-toggle .storm-cloud{fill:none!important;stroke:#9fc7cf!important;stroke-width:1.6!important;stroke-linecap:round!important;stroke-linejoin:round!important}
.storm-toggle .storm-bolt{fill:#e0bd57!important;stroke:#f3da82!important;stroke-width:.65!important;stroke-linejoin:round!important;filter:drop-shadow(0 0 4px rgba(224,189,87,.28))}
.storm-toggle.inactive .storm-cloud{stroke:#778286!important}.storm-toggle.inactive .storm-bolt{fill:#778286!important;stroke:#98a1a4!important;filter:none!important}
.storm-toggle::after{inset:4px!important;border-radius:7px!important;background:linear-gradient(to bottom right,transparent 43%,#f04452 43%,#f04452 57%,transparent 57%)!important}

/* Nivel del avatar: vuelve a la posición inferior-derecha; multi-dígito sigue
   creciendo horizontalmente sin que la estrella pise la cifra. */
.user-level-badge,.drawer-level-badge{top:auto!important;bottom:-7px!important;right:-7px!important}
.drawer-level-badge{bottom:-8px!important;right:-8px!important}

/* USER hero: recorrer de verdad el máximo encuadre útil de la foto. Reducimos
   zoom y animamos object-position por casi toda la superficie. */
.user-hero-bg-main{animation:userHeroExploreV426 12.8s cubic-bezier(.45,.03,.55,.97) infinite!important;transform:scale(1.045)!important}
.user-hero-bg-backdrop{animation:userHeroBackdropExploreV426 15.6s ease-in-out infinite alternate!important}
@keyframes userHeroExploreV426{
  0%,100%{object-position:4% 8%;transform:scale(1.045) translate3d(-1.5%,-1%,0)}
  22%{object-position:96% 18%;transform:scale(1.055) translate3d(1.4%,-.4%,0)}
  45%{object-position:84% 94%;transform:scale(1.04) translate3d(1.1%,1.3%,0)}
  68%{object-position:7% 88%;transform:scale(1.052) translate3d(-1.4%,1.1%,0)}
  84%{object-position:42% 38%;transform:scale(1.043) translate3d(.2%,-.3%,0)}
}
@keyframes userHeroBackdropExploreV426{
  0%{object-position:0% 100%;transform:scale(1.08) translate3d(-2%,1%,0)}
  35%{object-position:100% 72%;transform:scale(1.1) translate3d(2%,.6%,0)}
  70%{object-position:82% 0%;transform:scale(1.085) translate3d(1.4%,-1.2%,0)}
  100%{object-position:8% 24%;transform:scale(1.095) translate3d(-1.6%,-.4%,0)}
}

/* HOME · última publicación: drift lento e irregular adicional al glitch/breath. */
.hero.latest-storm .hero-media>.hero-main-image{
  animation:homeDynamicV218 6.4s ease-in-out infinite,homeLatestDriftV426 21s cubic-bezier(.45,.02,.55,.98) infinite!important;
}
@keyframes homeLatestDriftV426{
  0%,100%{object-position:47% 45%}
  18%{object-position:54% 43%}
  37%{object-position:57% 52%}
  59%{object-position:44% 56%}
  78%{object-position:41% 47%}
  91%{object-position:50% 42%}
}

/* LOGROS: al desplegar, como máximo se ven 5,5 filas y el resto hace scroll. */
.achievement-earned-list.achievement-expanded-scroll{
  overflow-y:auto!important;overflow-x:hidden!important;overscroll-behavior:contain;scrollbar-gutter:stable;
  scrollbar-width:thin;scrollbar-color:rgba(215,181,95,.42) rgba(255,255,255,.035);
}
.achievement-earned-list.achievement-expanded-scroll::-webkit-scrollbar{width:5px}
.achievement-earned-list.achievement-expanded-scroll::-webkit-scrollbar-thumb{background:rgba(215,181,95,.42);border-radius:99px}
.achievement-earned-list.achievement-expanded-scroll::-webkit-scrollbar-track{background:rgba(255,255,255,.035)}


/* ============================================================
   DISTURBING STORIES APP v4.27 · STORM / USER / HOME / COLECCIÓN
   ============================================================ */
/* STORM ocupa al máximo su caja sin deformar el SVG. */
.storm-toggle{
  width:42px!important;min-width:42px!important;height:42px!important;min-height:42px!important;
  padding:1px!important;overflow:hidden!important;place-items:center!important;
}
.storm-toggle svg{
  width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;
  display:block!important;object-fit:contain!important;overflow:visible!important;
}
.storm-toggle::after{inset:2px!important}

/* Bubble de nivel: diagonal arriba-derecha y apenas invade el avatar. */
.user-level-badge,.drawer-level-badge{
  top:-5px!important;bottom:auto!important;right:-10px!important;
}
.drawer-level-badge{top:-6px!important;right:-11px!important}

/* USER background: JS añade translate/scale/object-position; mantener margen de seguridad. */
.user-hero-media{overflow:hidden!important}
.user-hero-background{will-change:transform,translate,scale,object-position!important}
.user-hero-bg-main,.user-hero-bg-ghost{inset:-5%!important;width:110%!important;height:110%!important}
.user-hero-bg-backdrop{inset:-10%!important;width:120%!important;height:120%!important}

/* HOME: zoom lento adicional 100% -> 120%, pausa de ~1 s y vuelta a 100%.
   Se anima la propiedad individual scale para no alterar transform/glitch existentes. */
.hero.latest-storm .hero-media>.hero-main-image{
  animation:homeDynamicV218 6.4s ease-in-out infinite,homeLatestDriftV426 21s cubic-bezier(.45,.02,.55,.98) infinite,homeLatestZoomV427 20s ease-in-out infinite!important;
  will-change:transform,object-position,scale!important;
}
@keyframes homeLatestZoomV427{
  0%,8%{scale:1}
  48%{scale:1.2}
  53%{scale:1.2}
  94%,100%{scale:1}
}

/* COLECCIÓN: vídeo final a ancho completo, proporción natural. */
.collection-bibliofooter{
  width:100%;margin:18px 0 0;overflow:hidden;line-height:0;background:transparent;
}
.collection-bibliofooter video{
  display:block;width:100%;height:auto;max-width:100%;margin:0 auto;object-fit:contain;
}


/* ============================================================
   DISTURBING STORIES APP v4.28 · ICONOS DEFINITIVOS / COLECCIÓN / STORM
   Referencia: ICON ANIMATION TEST · 7.00 s · v3
   ============================================================ */
:root{--ds-icon-cycle:7s;--collection-video-bg:#090D14}

/* COLECCIÓN: mismo fondo que biblioloop/bibliofooter para eliminar cualquier corte visual. */
.view.collection-view,.view.collection-view>.collection-section,.collection-section{background:var(--collection-video-bg)!important}
.collection-section{min-height:calc(100svh - var(--topbar-base) - var(--top-safe))!important}
.book-shelf-wrap{background:var(--collection-video-bg)!important}
.shelf-reading-loop{background:var(--collection-video-bg)!important;align-items:flex-end!important}
.shelf-reading-loop video{background:var(--collection-video-bg)!important;align-self:flex-end!important;object-position:center bottom!important}
.shelf-reading-loop::after{box-shadow:inset 10px 0 14px -12px var(--collection-video-bg),inset -7px 0 12px -12px var(--collection-video-bg)!important}
.collection-bibliofooter,.collection-bibliofooter video{background:var(--collection-video-bg)!important}

/* STORM: un único rayo de tormenta, grande, centrado y sin deformación. */
.storm-toggle{display:grid!important;place-items:center!important;padding:2px!important;overflow:hidden!important}
.storm-toggle svg{width:92%!important;height:92%!important;max-width:92%!important;max-height:92%!important;overflow:visible!important;display:block!important;margin:auto!important}
.storm-toggle .storm-bolt{fill:#e0bd57!important;stroke:#f3da82!important;stroke-width:.7!important;stroke-linejoin:round!important;filter:drop-shadow(0 0 5px rgba(224,189,87,.34))}
.storm-toggle.inactive .storm-bolt{fill:#778286!important;stroke:#9aa4a7!important;filter:none!important}

/* Nivel sobre avatar: solo cifra + estrella; sin caja, borde ni relleno. */
.user-level-badge,.drawer-level-badge{
  top:-4px!important;bottom:auto!important;right:-8px!important;
  width:auto!important;min-width:0!important;height:auto!important;min-height:0!important;padding:0!important;
  background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;
  backdrop-filter:none!important;-webkit-backdrop-filter:none!important;overflow:visible!important;
  gap:1px!important;text-shadow:0 1px 2px #000,0 0 4px rgba(0,0,0,.95),0 0 5px rgba(215,181,95,.35)!important;
}
.drawer-level-badge{top:-5px!important;right:-9px!important}
.user-level-badge.level-multi,.drawer-level-badge.level-multi,.user-level-badge.level-3plus,.drawer-level-badge.level-3plus{min-width:0!important;border-radius:0!important}
.user-level-badge .user-level-number,.drawer-level-badge .user-level-number{font:900 10px/1 Oxanium,sans-serif!important;color:#f7e7ad!important}
.user-level-badge .user-level-star,.drawer-level-badge .user-level-star{font:900 6px/1 Oxanium,sans-serif!important;color:#f0cf70!important;transform:translateY(-4px)!important}

/* ----- Sistema de iconos animados definitivo: ciclo exacto 7 s ----- */
.ds-ani-icon{position:relative;display:grid;place-items:center;width:36px;height:36px;color:#d8faff;overflow:visible;flex:none;line-height:1;--ds-run:12px;--ds-pulse:3.3px}
.ds-ani-icon *{box-sizing:border-box}
.ds-ani-svg{width:70%;height:70%;overflow:visible;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.ds-ani-game .ds-ani-svg{width:80%;height:58%;stroke-width:1.9}.ds-ani-timeline .ds-ani-svg{width:85%;height:48%;stroke-width:2}
.ds-ani-cassette{color:#baffd6}.ds-ani-tape{color:#caedff}.ds-ani-game{color:#ff8de9}.ds-ani-micro{color:#ffd7d9}.ds-ani-saga,.ds-ani-timeline,.ds-ani-random,.ds-ani-extras{color:#d8faff}
.ds-ani-glyph{font-family:'Oxanium',ui-sans-serif,sans-serif;font-weight:700;font-size:28px;line-height:1;color:currentColor;display:block;font-style:normal}
.ds-ani-extras .ds-ani-glyph{font-size:26px}
.ds-form-piece,.ds-form-glyph,.ds-micro-diamond{animation-duration:var(--ds-icon-cycle);animation-timing-function:linear;animation-iteration-count:infinite;animation-name:dsPieceLife}
@keyframes dsPieceLife{0%{opacity:0;transform:var(--enter,scale(.2));filter:blur(5px)}9%{opacity:1;filter:blur(0)}14.2857%{opacity:1;transform:var(--base,none);filter:blur(0)}85.7142%{opacity:1;transform:var(--base,none);filter:blur(0)}93%{opacity:.7;filter:blur(1px)}100%{opacity:0;transform:var(--exit,scale(1.7));filter:blur(7px)}}
.ds-stroke{stroke-dasharray:120;stroke-dashoffset:120;animation:dsStrokeLife var(--ds-icon-cycle) linear infinite}.ds-stroke-short{stroke-dasharray:24;stroke-dashoffset:24;animation:dsStrokeLifeShort var(--ds-icon-cycle) linear infinite}.ds-stroke-mid{stroke-dasharray:36;stroke-dashoffset:36;animation:dsStrokeLifeMid var(--ds-icon-cycle) linear infinite}
@keyframes dsStrokeLife{0%{stroke-dashoffset:120;opacity:0}3%{opacity:1}14.2857%{stroke-dashoffset:0;opacity:1}85.7142%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:-120;opacity:0}}
@keyframes dsStrokeLifeShort{0%{stroke-dashoffset:24;opacity:0}5%{opacity:1}14.2857%{stroke-dashoffset:0;opacity:1}85.7142%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:-24;opacity:0}}
@keyframes dsStrokeLifeMid{0%{stroke-dashoffset:36;opacity:0}5%{opacity:1}14.2857%{stroke-dashoffset:0;opacity:1}85.7142%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:-36;opacity:0}}
.ds-loop-shell{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;animation:dsLoopGate var(--ds-icon-cycle) linear infinite}
@keyframes dsLoopGate{0%,13.9%{opacity:0}14.2857%,85.7142%{opacity:1}86%,100%{opacity:0}}

/* CASSETTES — geometría/animación de la referencia v3. */
.ds-ani-cassette .ds-cassette-arc{--enter:translateY(-22px) scale(.4);--base:translateY(0) scale(1);--exit:translateY(-18px) scale(.45)}
.ds-ani-cassette .ds-ear-l{--enter:translateX(-26px) translateY(8px) scale(.25) rotate(-25deg);--base:translateX(0) translateY(0) scale(1) rotate(0);--exit:translateX(-16px) translateY(8px) scale(.35) rotate(-20deg)}
.ds-ani-cassette .ds-ear-r{--enter:translateX(26px) translateY(8px) scale(.25) rotate(25deg);--base:translateX(0) translateY(0) scale(1) rotate(0);--exit:translateX(16px) translateY(8px) scale(.35) rotate(20deg)}
.ds-ani-cassette .ds-ear-l,.ds-ani-cassette .ds-ear-r{transform-box:fill-box;transform-origin:center}
.ds-cassette-eq{position:absolute;display:flex;align-items:flex-end;gap:3%;width:28%;height:28%;transform:translateY(11%)}
.ds-cassette-eq i{display:block;width:12%;border-radius:99px;background:currentColor;box-shadow:0 0 3px currentColor;animation:dsCassetteEq 1s steps(4,end) infinite;opacity:.9;transform-origin:center bottom}
.ds-cassette-eq i:nth-child(1){height:38%;animation-delay:0s}.ds-cassette-eq i:nth-child(2){height:69%;animation-delay:.12s}.ds-cassette-eq i:nth-child(3){height:100%;animation-delay:.24s}.ds-cassette-eq i:nth-child(4){height:58%;animation-delay:.36s}.ds-cassette-eq i:nth-child(5){height:85%;animation-delay:.48s}
@keyframes dsCassetteEq{0%{transform:scaleY(.35);opacity:.28}25%{transform:scaleY(.95);opacity:.85}50%{transform:scaleY(.55);opacity:.56}75%{transform:scaleY(1.18);opacity:1}100%{transform:scaleY(.35);opacity:.28}}

/* TAPES — geometría/animación de la referencia v3. */
.ds-ani-tape .ds-tape-body{--enter:translateX(-18px) scaleX(.2);--base:translateX(0) scaleX(1);--exit:translateX(-16px) scaleX(.25)}
.ds-ani-tape .ds-tape-cone{--enter:translateX(24px) scale(.08) rotate(38deg);--base:translateX(0) scale(1) rotate(0);--exit:translateX(18px) scale(.16) rotate(-24deg);transform-box:fill-box;transform-origin:left center}
.ds-screen-glow{position:absolute;width:34%;height:20%;border-radius:5px;background:linear-gradient(90deg,transparent 0%,rgba(202,237,255,.08) 25%,rgba(202,237,255,.42) 50%,rgba(202,237,255,.08) 75%,transparent 100%);animation:dsTapeSweep 1s linear infinite;mix-blend-mode:screen;filter:blur(.3px)}
.ds-play-spark{position:absolute;width:17%;height:17%;border-right:1px solid currentColor;border-top:1px solid currentColor;opacity:.2;animation:dsTapeBlink 1s ease-in-out infinite}
@keyframes dsTapeSweep{0%{opacity:0;transform:translate(-65%,-4%) skewX(-20deg) scaleX(.4)}15%{opacity:.22}50%{opacity:.68;transform:translate(-30%,-4%) skewX(-20deg) scaleX(1)}85%{opacity:.22}100%{opacity:0;transform:translate(3%,-4%) skewX(-20deg) scaleX(.4)}}
@keyframes dsTapeBlink{0%,100%{opacity:.12;transform:translate(100%,0) rotate(45deg) scale(.84)}50%{opacity:.65;transform:translate(100%,0) rotate(45deg) scale(1.08)}}

/* GAMES. */
.ds-ani-game .ds-game-outline{--enter:translateY(16px) scale(.55);--base:translateY(0) scale(1);--exit:translateY(17px) scale(.45)}
.ds-ani-game .ds-plus-v{--enter:translateY(-12px) scaleY(.1);--base:translateY(0) scaleY(1);--exit:translateY(12px) scaleY(.1)}
.ds-ani-game .ds-plus-h{--enter:translateX(-12px) scaleX(.1);--base:translateX(0) scaleX(1);--exit:translateX(12px) scaleX(.1)}
.ds-ani-game .ds-btn-a{--enter:scale(.06) translate(0,0);--base:scale(1) translate(0,0);--exit:scale(.06) translate(10px,-8px)}
.ds-ani-game .ds-btn-b{--enter:scale(.06) translate(0,0);--base:scale(1) translate(0,0);--exit:scale(.06) translate(10px,8px)}
.ds-ani-game .ds-game-topline{--enter:translateY(-12px) scale(.2);--base:translateY(0) scale(1);--exit:translateY(-15px) scale(.2)}
.ds-ani-game .ds-plus-v,.ds-ani-game .ds-plus-h,.ds-ani-game .ds-btn-a,.ds-ani-game .ds-btn-b,.ds-ani-game .ds-game-topline{transform-box:fill-box;transform-origin:center}
.ds-ani-game .ds-plus-v{animation-delay:.08s}.ds-ani-game .ds-plus-h{animation-delay:.18s}.ds-ani-game .ds-btn-a{animation-delay:.27s}.ds-ani-game .ds-btn-b{animation-delay:.35s}
.ds-pulse-dot{position:absolute;width:6.5%;height:6.5%;border-radius:50%;border:1px solid currentColor;animation:dsGamePulse 1s ease-out infinite}.ds-pulse-a{transform:translate(80%,-8%)}.ds-pulse-b{transform:translate(102%,28%);animation-delay:.16s}
.ds-cross-glow{position:absolute;width:19%;height:19%;transform:translate(-50%,3%)}.ds-cross-glow:before,.ds-cross-glow:after{content:"";position:absolute;left:50%;top:50%;background:currentColor;box-shadow:0 0 8px currentColor;opacity:.45;animation:dsGameCrossBlink 1s ease-in-out infinite}.ds-cross-glow:before{width:2px;height:80%;transform:translate(-50%,-50%)}.ds-cross-glow:after{width:80%;height:2px;transform:translate(-50%,-50%)}
@keyframes dsGamePulse{0%{opacity:1;box-shadow:0 0 0 0 currentColor}65%,100%{opacity:0;box-shadow:0 0 0 var(--ds-pulse) transparent}}@keyframes dsGameCrossBlink{0%,100%{opacity:.14;transform:translate(-50%,-50%) scale(.84)}50%{opacity:.52;transform:translate(-50%,-50%) scale(1.08)}}

/* MICRO. */
.ds-micro-diamond{width:18%;height:18%;border:1px solid currentColor;--enter:rotate(-135deg) scale(.05);--base:rotate(45deg) scale(1);--exit:rotate(225deg) scale(.05);box-shadow:0 0 0 currentColor}
.ds-ani-micro .ds-loop-shell:before,.ds-ani-micro .ds-loop-shell:after{content:"";position:absolute;width:18%;height:18%;border:.7px solid currentColor;transform:rotate(45deg);animation:dsMicroEcho 1s ease-out infinite}.ds-ani-micro .ds-loop-shell:after{animation-delay:.5s}
@keyframes dsMicroEcho{0%{opacity:.3;transform:rotate(45deg) scale(.82)}100%{opacity:0;transform:rotate(45deg) scale(1.65)}}

/* SAGAS. */
.ds-ani-saga .ds-form-glyph{--enter:rotate(-90deg) scale(.05);--base:rotate(0) scale(1);--exit:rotate(90deg) scale(.05)}
.ds-ani-saga .ds-ghost{animation:dsSagaBreath 1s ease-in-out infinite}@keyframes dsSagaBreath{0%,100%{transform:scale(.96);opacity:.22;filter:blur(2px)}50%{transform:scale(1.09);opacity:.05;filter:blur(5px)}}

/* TIMELINE. */
.ds-ani-timeline .ds-timeline-line{--enter:scaleX(.02);--base:scaleX(1);--exit:scaleX(.02);transform-box:fill-box;transform-origin:center}.ds-ani-timeline .ds-timeline-node{transform-box:fill-box;transform-origin:center;--enter:scale(.02);--base:scale(1);--exit:scale(.02)}.ds-ani-timeline .ds-n1{animation-delay:0s}.ds-ani-timeline .ds-n2{animation-delay:.10s}.ds-ani-timeline .ds-n3{animation-delay:.20s}
.ds-timeline-runner{width:8%;height:8%;border-radius:50%;background:currentColor;box-shadow:0 0 11px currentColor;animation:dsTimelineRun 1s linear infinite}@keyframes dsTimelineRun{0%{transform:translateX(calc(-1 * var(--ds-run))) scale(.45);opacity:0}10%{opacity:.85}50%{transform:translateX(0) scale(1)}90%{opacity:.85}100%{transform:translateX(var(--ds-run)) scale(.45);opacity:0}}

/* RANDOM. */
.ds-ani-random .ds-form-glyph{--enter:rotate(-270deg) scale(.03);--base:rotate(0deg) scale(1);--exit:rotate(270deg) scale(.03)}.ds-ani-random .ds-ghost{animation:dsRandomSpin 1s cubic-bezier(.34,.02,.28,1) infinite}@keyframes dsRandomSpin{0%{transform:rotate(0) scale(.92);opacity:.11}65%{opacity:.22}100%{transform:rotate(360deg) scale(.92);opacity:.11}}

/* EXTRAS. */
.ds-ani-extras .ds-form-glyph{--enter:rotate(-180deg) scale(.02);--base:rotate(0deg) scale(1);--exit:rotate(180deg) scale(.02)}.ds-ani-extras .ds-ghost{animation:dsExtraLoop 1s ease-in-out infinite}@keyframes dsExtraLoop{0%,100%{transform:rotate(0) scale(.84);opacity:.04}50%{transform:rotate(90deg) scale(1.10);opacity:.20;filter:drop-shadow(0 0 7px currentColor)}}

/* Adaptación proporcional a cada lugar de la App. */
.portal-btn>.ds-ani-icon{width:36px!important;height:36px!important}.portal-btn>.ds-ani-icon .ds-ani-glyph{font-size:28px!important}
.section-indicator .ds-ani-icon{width:42px!important;height:42px!important;--ds-run:14px;--ds-pulse:3.9px}.section-indicator .ds-ani-icon .ds-ani-glyph{font-size:34px!important}
.section-indicator-cassette .ds-ani-icon,.section-indicator-tape .ds-ani-icon{width:39px!important;height:39px!important}
.media-feature-svg.ds-ani-icon{display:grid!important;fill:none!important;stroke:none!important}
.story-thumb-wrap .media-feature-svg.ds-ani-icon{width:14px!important;height:14px!important}.story-thumb-wrap .media-feature-svg.ds-ani-icon .ds-ani-glyph{font-size:10px!important}
.book-feature-count .media-feature-svg.ds-ani-icon{width:18px!important;height:18px!important}
.saga-feature-icon .ds-ani-icon{width:18px!important;height:18px!important}.saga-feature-icon .ds-ani-icon .ds-ani-glyph{font-size:14px!important}
.media-list-icon .ds-ani-icon{width:16px!important;height:16px!important}.media-list-icon .ds-ani-icon .ds-ani-glyph{font-size:12px!important}
.continue-inline-icons .ds-ani-icon{width:12px!important;height:12px!important}
.saga-feature-icon.extra,.media-list-icon.extra{font-size:0!important}
.portal-btn.nightmares .ds-ani-icon{width:36px!important;height:36px!important}

@media(prefers-reduced-motion:reduce){.ds-ani-icon,.ds-ani-icon *{animation-play-state:paused!important}}
/* v4.28 · biblioloop ocupa todo su hueco pero alinea el contenido al estante inferior. */
.shelf-reading-loop video{width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;object-fit:contain!important;object-position:center bottom!important}


/* ============================================================
   DISTURBING STORIES APP v4.29.1 · STORM / COLECCIÓN / PORTALES / PLAYER
   ============================================================ */
/* STORM: rayo algo más pequeño y perfectamente centrado dentro de su caja. */
.storm-toggle{
  width:42px!important;min-width:42px!important;height:42px!important;min-height:42px!important;
  display:grid!important;place-items:center!important;padding:6px!important;overflow:hidden!important;
}
.storm-toggle svg{
  width:24px!important;height:30px!important;max-width:24px!important;max-height:30px!important;
  display:block!important;margin:0!important;overflow:visible!important;align-self:center!important;justify-self:center!important;
  transform:none!important;
}
.storm-toggle::after{inset:4px!important}

/* COLECCIÓN: tono real del fondo de biblioloop/bibliofooter, tomado de la referencia visual. */
:root{--collection-video-bg:#090D14}
.view.collection-view,.view.collection-view>.collection-section,.collection-section,
.book-shelf-wrap,.shelf-reading-loop,.shelf-reading-loop video,
.collection-bibliofooter,.collection-bibliofooter video{background:var(--collection-video-bg)!important}

/* TODAS LAS STORIES: los 8 botones aparecen en secuencia global con 3 frames (~50 ms) entre inicios. */
.stories-v22-enter.stories-v22-on .stories-portals-group{animation-delay:.08s!important}
.stories-v22-enter.stories-v22-on .portal-btn{
  animation-delay:calc(.12s + (var(--portal-i,0) * .05s))!important;
}

/* PLAYER · artwork v4.29.1
   - entrada/crossfade 5 s en escala 100%
   - después 100 -> 120% en 5 s
   - después 120 -> 100% en 5 s
   - entonces comienza el fundido a la siguiente imagen. */
body .player-artwork-bg .player-artwork-slide img.motion-run{
  animation:none!important;transition:none!important;transform:scale(1)!important;
  object-position:center center!important;transform-origin:50% 50%!important;will-change:transform!important;
}
body .player-artwork-bg .player-artwork-slide.active img.motion-run{
  animation:playerArtworkZoomV429 10s ease-in-out 5s 1 both!important;
}
body .player-artwork-bg .player-artwork-slide.active.artwork-initial img.motion-run{
  animation-delay:0s!important;
}
body .player-artwork-bg .player-artwork-slide.leaving img.motion-run{
  animation:none!important;transform:scale(1)!important;
}
@keyframes playerArtworkZoomV429{
  0%{transform:scale(1)}
  50%{transform:scale(1.2)}
  100%{transform:scale(1)}
}

@media(prefers-reduced-motion:reduce){
  .stories-v22-enter.stories-v22-on .portal-btn{animation-delay:0s!important}
  body .player-artwork-bg .player-artwork-slide img.motion-run{animation:none!important;transform:scale(1)!important}
}


/* ============================================================
   DISTURBING STORIES APP v4.30 · COLECCIÓN / PORTALES / PLAYER / ENTRY
   ============================================================ */
/* COLECCIÓN: la página conserva su background normal. Solo la caja de la
   ESTANTERÍA toma el tono real de biblioloop (#121418). */
.view.collection-view,.view.collection-view>.collection-section,.collection-section{
  background:transparent!important;
}
.book-shelf-wrap,.shelf-reading-loop,.shelf-reading-loop video{
  background:#121418!important;
}
.shelf-reading-loop::after{
  box-shadow:inset 10px 0 14px -12px #121418,inset -7px 0 12px -12px #121418!important;
}
.collection-bibliofooter{background:transparent!important}

/* TODAS LAS STORIES: secuencia global con 6 frames (~100 ms a 60 fps). */
.stories-v22-enter.stories-v22-on .portal-btn{
  animation-delay:calc(.12s + (var(--portal-i,0) * .10s))!important;
}

/* PLAYER: bloque de duración en una caja translúcida al 50%. */
.player-progress-meta{align-items:end!important}
.player-time-box{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:28px;padding:5px 9px;border:1px solid rgba(129,207,219,.20);
  border-radius:7px;background:rgba(0,0,0,.50);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);
}
.player-time-box .player-time{margin:0!important;white-space:nowrap}

/* PLAYER artwork v4.30:
   tras el fundido: 2 s quieta -> 5 s 100→120 -> 5 s 120→100 -> 1 s quieta -> siguiente fundido.
   La imagen que entra permanece a 100% durante el crossfade de 5 s. */
body .player-artwork-bg .player-artwork-slide img.motion-run{
  animation:none!important;transform:scale(1)!important;object-position:center center!important;
  transform-origin:50% 50%!important;will-change:transform!important;
}
body .player-artwork-bg .player-artwork-slide.active.artwork-initial img.motion-run{
  animation:playerArtworkCycleV430 13s linear 0s 1 both!important;
}
body .player-artwork-bg .player-artwork-slide.active.artwork-cycle-incoming img.motion-run{
  animation:playerArtworkCycleV430 13s linear 5s 1 both!important;
}
body .player-artwork-bg.single .player-artwork-slide.active.artwork-cycle-single img.motion-run{
  animation:playerArtworkCycleV430 13s linear 0s infinite both!important;
}
body .player-artwork-bg .player-artwork-slide.leaving img.motion-run{
  animation:none!important;transform:scale(1)!important;object-position:center center!important;
}
@keyframes playerArtworkCycleV430{
  0%,15.3846%{transform:scale(1)}
  53.8462%{transform:scale(1.2)}
  92.3077%,100%{transform:scale(1)}
}

/* ENTRY: start_splatter + start_title son un único objeto interactivo de dos capas.
   Conservan la viscosidad/ripples y añaden parallax opuesto y suave. */
.entry-gate-button{width:min(96vw,720px)!important;max-height:92svh!important;aspect-ratio:1/1!important}
.entry-gate-stack{
  position:relative;z-index:2;display:block;width:min(100%,660px);height:min(88svh,660px);
  max-width:100%;max-height:88svh;aspect-ratio:1/1;transform-origin:center;
  animation:entryViscousStackV430 3.2s ease-in-out infinite;
  filter:drop-shadow(0 0 26px rgba(82,220,236,.18));
}
.entry-gate-button .entry-gate-layer{
  position:absolute!important;inset:0!important;display:block!important;width:100%!important;height:100%!important;
  max-width:none!important;max-height:none!important;object-fit:contain!important;transform-origin:center!important;
  filter:none!important;pointer-events:none!important;
}
.entry-gate-button .entry-gate-splatter{
  z-index:1!important;animation:entryParallaxSplatterV430 4.2s ease-in-out infinite alternate!important;
}
.entry-gate-button .entry-gate-title{
  z-index:2!important;animation:entryParallaxTitleV430 4.2s ease-in-out infinite alternate!important;
}
.entry-gate-button.entry-confirm .entry-gate-stack{
  animation:entryConfirmV430 .33s cubic-bezier(.25,.85,.2,1) both!important;
  filter:drop-shadow(0 0 40px rgba(119,255,96,.58)) brightness(1.28)!important;
}
.entry-gate-button.entry-confirm .entry-gate-splatter{
  animation:entryParallaxSplatterV430 4.2s ease-in-out infinite alternate!important;
}
.entry-gate-button.entry-confirm .entry-gate-title{
  animation:entryParallaxTitleV430 4.2s ease-in-out infinite alternate!important;
}
@keyframes entryViscousStackV430{
  0%,100%{transform:scale(1) scaleX(1) scaleY(1)}
  25%{transform:scale(1.045) scaleX(1.025) scaleY(.99)}
  52%{transform:scale(.992) scaleX(.982) scaleY(1.028)}
  76%{transform:scale(1.034) scaleX(1.028) scaleY(.988)}
}
@keyframes entryParallaxSplatterV430{
  0%{transform:translate3d(-1.7%,-1.1%,0) scale(1.012) rotate(-.35deg)}
  50%{transform:translate3d(1.5%,1.2%,0) scale(1.025) rotate(.28deg)}
  100%{transform:translate3d(-.6%,1.8%,0) scale(1.015) rotate(-.18deg)}
}
@keyframes entryParallaxTitleV430{
  0%{transform:translate3d(1.5%,1%,0) scale(.995) rotate(.22deg)}
  50%{transform:translate3d(-1.4%,-1.2%,0) scale(1.01) rotate(-.2deg)}
  100%{transform:translate3d(.7%,-1.7%,0) scale(1.004) rotate(.16deg)}
}
@keyframes entryConfirmV430{0%{transform:scale(1)}36%{transform:scale(1.13)}70%{transform:scale(.95)}100%{transform:scale(1.025)}}

@media(prefers-reduced-motion:reduce){
  .stories-v22-enter.stories-v22-on .portal-btn{animation-delay:0s!important}
  .entry-gate-stack,.entry-gate-button .entry-gate-layer{animation:none!important}
  body .player-artwork-bg .player-artwork-slide img.motion-run{animation:none!important;transform:scale(1)!important}
}

/* ============================================================
   DISTURBING STORIES APP v4.31 · PLAYER ARTWORK / START
   ============================================================ */
/* PLAYER: el ciclo se calcula en JS según el tiempo real de exposición de cada
   imagen. El zoom termina siempre en escala/posición inicial antes del crossfade. */
body .player-artwork-bg .player-artwork-slide img.motion-run{
  animation:none!important;
  transition:none!important;
  scale:1;
  object-position:center center!important;
  transform-origin:50% 50%!important;
  will-change:scale!important;
}
.player-artwork-slide{transition-duration:var(--art-fade,3s)}

/* START: mismo parallax/movimiento, pero casi sin rotación para conservar la
   geometría percibida de las dos capas. */
.entry-gate-button .entry-gate-splatter{animation:entryParallaxSplatterV431 4.2s ease-in-out infinite alternate!important}
.entry-gate-button .entry-gate-title{animation:entryParallaxTitleV431 4.2s ease-in-out infinite alternate!important}
.entry-gate-button.entry-confirm .entry-gate-splatter{animation:entryParallaxSplatterV431 4.2s ease-in-out infinite alternate!important}
.entry-gate-button.entry-confirm .entry-gate-title{animation:entryParallaxTitleV431 4.2s ease-in-out infinite alternate!important}
@keyframes entryParallaxSplatterV431{
  0%{transform:translate3d(-1.7%,-1.1%,0) scale(1.012) rotate(-.06deg)}
  50%{transform:translate3d(1.5%,1.2%,0) scale(1.025) rotate(.05deg)}
  100%{transform:translate3d(-.6%,1.8%,0) scale(1.015) rotate(-.03deg)}
}
@keyframes entryParallaxTitleV431{
  0%{transform:translate3d(1.5%,1%,0) scale(.995) rotate(.04deg)}
  50%{transform:translate3d(-1.4%,-1.2%,0) scale(1.01) rotate(-.04deg)}
  100%{transform:translate3d(.7%,-1.7%,0) scale(1.004) rotate(.03deg)}
}


/* ============================================================
   DISTURBING STORIES APP v4.32 · PLAYER FULLSCREEN / ARTWORK / STORM / START
   ============================================================ */
/* Fullscreen interno: el mismo NOW PLAYING se mueve a una capa fixed, sin duplicar audio ni estado. */
.player-console-host{display:block;width:100%}
.player-fullscreen-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;margin:2px 0 10px auto;
  min-height:34px;padding:7px 10px;border:1px solid rgba(111,210,225,.46);border-radius:9px;
  background:rgba(4,13,17,.56);color:#c9f7ff;font:800 8px/1 Oxanium,sans-serif;letter-spacing:.055em;
}
.player-fullscreen-btn>span{font-size:18px;line-height:.7}
.player-fullscreen-layer{
  position:fixed;inset:0;z-index:12000;background:#030608;display:block;overflow:hidden;
  opacity:1;visibility:visible;transition:opacity .28s ease,visibility .28s ease;
}
.player-fullscreen-layer.hidden{opacity:0!important;visibility:hidden!important;pointer-events:none!important}
.player-fullscreen-stage{position:absolute;inset:0;width:100%;height:100%;overflow:hidden}
.player-fullscreen-close{
  position:absolute;z-index:12010;top:max(14px,env(safe-area-inset-top));right:max(14px,env(safe-area-inset-right));
  width:52px;height:52px;display:grid;place-items:center;padding:0;border:1px solid rgba(207,247,255,.7);
  border-radius:13px;background:rgba(2,10,13,.78);color:#fff;font:300 36px/1 system-ui,sans-serif;
  box-shadow:0 8px 30px rgba(0,0,0,.48),0 0 18px rgba(95,223,239,.14);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
}
body.player-fullscreen-open{overflow:hidden!important;overscroll-behavior:none!important}
body.player-fullscreen-open .player-fullscreen-btn{display:none!important}
.player-fullscreen-layer .player-console{
  width:100%!important;height:100dvh!important;min-height:100dvh!important;max-height:none!important;
  margin:0!important;padding:max(76px,calc(env(safe-area-inset-top) + 66px)) clamp(18px,5vw,64px) max(24px,env(safe-area-inset-bottom))!important;
  border:0!important;border-radius:0!important;box-sizing:border-box!important;display:flex!important;flex-direction:column!important;
  justify-content:center!important;overflow:hidden!important;background:#05080a!important;
}
.player-fullscreen-layer .player-console>*:not(.player-artwork-bg){width:min(100%,900px)!important;margin-left:auto!important;margin-right:auto!important}
.player-fullscreen-layer .player-artwork-bg{inset:0!important;background:#030608!important}
.player-fullscreen-layer .player-artwork-slide{inset:-4%!important}
.player-fullscreen-layer .player-artwork-slide.active{opacity:.88!important}
.player-fullscreen-layer .player-artwork-slide img{filter:brightness(.92) contrast(1.08) saturate(1.02)!important}
.player-fullscreen-layer .player-artwork-bg::after{
  background:linear-gradient(180deg,rgba(3,6,8,.18),rgba(3,6,8,.32) 42%,rgba(3,6,8,.58)),radial-gradient(circle at 50% 42%,rgba(3,6,8,.02),rgba(3,6,8,.44) 94%)!important;
}
.player-fullscreen-layer .player-console-head span{font-size:clamp(8px,1.8vw,13px)!important}
.player-fullscreen-layer .player-console-head strong{font-size:clamp(22px,5.4vw,48px)!important;min-height:0!important;margin-top:10px!important;text-shadow:0 3px 22px rgba(0,0,0,.78)}
.player-fullscreen-layer .player-progress-meta{margin-top:clamp(24px,6vh,60px)!important}
.player-fullscreen-layer .player-time-box{font-size:clamp(10px,2vw,14px)!important}
.player-fullscreen-layer .player-wave{height:clamp(42px,8vh,82px)!important}
.player-fullscreen-layer .player-controls-main{margin-top:clamp(18px,4vh,38px)!important}
.player-fullscreen-layer .player-controls-main button{height:clamp(58px,9vh,82px)!important}
.player-fullscreen-layer .player-mode-controls{margin-top:14px!important}
.player-fullscreen-layer .ds-volume-v422{margin-top:18px!important}
@media(max-height:720px){
  .player-fullscreen-layer .player-console{padding-top:max(64px,calc(env(safe-area-inset-top) + 56px))!important;justify-content:flex-start!important;overflow:auto!important}
  .player-fullscreen-layer .player-progress-meta{margin-top:12px!important}.player-fullscreen-layer .player-controls-main{margin-top:12px!important}
}

/* STORM OFF: diagonal roja más fina. */
.storm-toggle::after{
  background:linear-gradient(to bottom right,transparent calc(50% - 1px),#f04452 calc(50% - 1px),#f04452 calc(50% + 1px),transparent calc(50% + 1px))!important;
  filter:drop-shadow(0 0 1px rgba(240,68,82,.48))!important;
}

/* Artwork v4.32: el movimiento lo controla WAAPI en JS; nunca CSS. */
body .player-artwork-bg .player-artwork-slide img.motion-run{
  animation:none!important;transition:none!important;scale:1;translate:0 0;object-position:center center!important;
  transform-origin:50% 50%!important;will-change:scale,translate!important;
}

/* START: parallax/viscosidad intactos, rotación prácticamente nula. */
.entry-gate-button .entry-gate-splatter{animation:entryParallaxSplatterV432 4.2s ease-in-out infinite alternate!important}
.entry-gate-button .entry-gate-title{animation:entryParallaxTitleV432 4.2s ease-in-out infinite alternate!important}
.entry-gate-button.entry-confirm .entry-gate-splatter{animation:entryParallaxSplatterV432 4.2s ease-in-out infinite alternate!important}
.entry-gate-button.entry-confirm .entry-gate-title{animation:entryParallaxTitleV432 4.2s ease-in-out infinite alternate!important}
@keyframes entryParallaxSplatterV432{
  0%{transform:translate3d(-1.7%,-1.1%,0) scale(1.012) rotate(-.012deg)}
  50%{transform:translate3d(1.5%,1.2%,0) scale(1.025) rotate(.010deg)}
  100%{transform:translate3d(-.6%,1.8%,0) scale(1.015) rotate(-.006deg)}
}
@keyframes entryParallaxTitleV432{
  0%{transform:translate3d(1.5%,1%,0) scale(.995) rotate(.008deg)}
  50%{transform:translate3d(-1.4%,-1.2%,0) scale(1.01) rotate(-.008deg)}
  100%{transform:translate3d(.7%,-1.7%,0) scale(1.004) rotate(.005deg)}
}


/* ============================================================
   DISTURBING STORIES APP v4.33 · PLAYER FULLSCREEN / ARTWORK / AUDIO CLEANUP
   ============================================================ */

/* Los dos motores de audio globales nunca deben generar superficie visual.
   En iOS/WebKit podían aparecer como pequeños rectángulos vacíos. */
#globalPlayerAudio,#stormAudio{
  display:none!important;visibility:hidden!important;opacity:0!important;
  position:fixed!important;left:-99999px!important;top:-99999px!important;
  width:0!important;height:0!important;min-width:0!important;min-height:0!important;
  max-width:0!important;max-height:0!important;margin:0!important;padding:0!important;
  border:0!important;outline:0!important;box-shadow:none!important;pointer-events:none!important;
  overflow:hidden!important;appearance:none!important;-webkit-appearance:none!important;
}
#globalPlayerAudio::-webkit-media-controls,#stormAudio::-webkit-media-controls,
#globalPlayerAudio::-webkit-media-controls-enclosure,#stormAudio::-webkit-media-controls-enclosure{
  display:none!important;width:0!important;height:0!important;opacity:0!important;
}

/* Fullscreen: visualizador pegado al borde inferior y extendido a todo el ancho. */
.player-fullscreen-layer .player-console{
  padding-bottom:clamp(104px,16vh,150px)!important;
}
.player-fullscreen-layer .player-progress-meta{
  display:block!important;width:min(100%,900px)!important;
  margin-top:clamp(24px,6vh,60px)!important;
}
.player-fullscreen-layer .player-time-box{
  min-height:56px!important;padding:10px 18px!important;border-radius:12px!important;
  border-width:2px!important;background:rgba(0,0,0,.50)!important;
}
.player-fullscreen-layer .player-time-box .player-time{
  font-size:clamp(18px,4vw,28px)!important;line-height:1!important;letter-spacing:.025em!important;
}
.player-fullscreen-layer .player-wave{
  position:absolute!important;left:0!important;right:0!important;bottom:0!important;
  width:100%!important;max-width:none!important;height:clamp(72px,13vh,126px)!important;
  margin:0!important;padding:0 4px max(2px,env(safe-area-inset-bottom))!important;
  display:grid!important;grid-template-columns:repeat(46,minmax(0,1fr))!important;
  align-items:end!important;justify-content:stretch!important;gap:clamp(1px,.45vw,5px)!important;
  overflow:hidden!important;z-index:5!important;pointer-events:none!important;opacity:.60!important;
}
.player-fullscreen-layer .player-wave.playing{opacity:1!important}
.player-fullscreen-layer .player-wave i{
  width:100%!important;max-width:none!important;min-width:0!important;flex:none!important;
  transform-origin:center bottom!important;border-radius:4px 4px 1px 1px!important;
}
@media(max-height:720px){
  .player-fullscreen-layer .player-console{padding-bottom:92px!important}
  .player-fullscreen-layer .player-wave{height:70px!important}
  .player-fullscreen-layer .player-time-box{min-height:48px!important;padding:8px 15px!important}
  .player-fullscreen-layer .player-time-box .player-time{font-size:17px!important}
}

/* Artwork v4.33: solo transform compuesto. El estado final queda en identidad
   antes de que empiece el crossfade, evitando el frame de salto de Safari. */
body .player-artwork-bg .player-artwork-slide img.motion-run{
  animation:none!important;transition:none!important;
  scale:unset!important;translate:unset!important;
  transform:translate3d(0,0,0) scale(1);
  object-position:center center!important;transform-origin:50% 50%!important;
  will-change:transform!important;backface-visibility:hidden!important;-webkit-backface-visibility:hidden!important;
}


/* ============================================================
   DISTURBING STORIES APP v4.34 · PLAYER GHOST BOX CLEANUP
   ============================================================ */
/* El volumen vigente es EXCLUSIVAMENTE .ds-volume-v422. Cualquier resto de las
   generaciones antiguas queda neutralizado para que no pueda crear contornos vacíos. */
.player-console .player-volume,
.player-console .player-volume-label,
.player-console .player-volume-control:not(.ds-volume-control-v422),
.player-console .player-volume-track,
.player-console .player-volume-thumb:not(.ds-volume-thumb-v422),
.player-console .player-mobile-volume-note,
.player-console .player-volume-note,
.player-console [data-player-volume-note],
.player-console .volume-output,
.player-console output{
  display:none!important;visibility:hidden!important;opacity:0!important;
  width:0!important;height:0!important;min-width:0!important;min-height:0!important;
  margin:0!important;padding:0!important;border:0!important;outline:0!important;
  box-shadow:none!important;overflow:hidden!important;pointer-events:none!important;
}
/* Ningún motor global de audio existe ya en el DOM en v4.34. Estas reglas son solo
   una defensa extra si una copia antigua/cacheada llegara a inyectarlos. */
#globalPlayerAudio,#stormAudio{
  display:none!important;visibility:hidden!important;opacity:0!important;
  position:absolute!important;left:-100000px!important;top:-100000px!important;
  width:0!important;height:0!important;min-width:0!important;min-height:0!important;
  max-width:0!important;max-height:0!important;margin:0!important;padding:0!important;
  border:0!important;outline:0!important;box-shadow:none!important;pointer-events:none!important;
  overflow:hidden!important;appearance:none!important;-webkit-appearance:none!important;
}

/* ============================================================
   DISTURBING STORIES APP v4.35 · PLAYER SANITIZED / ISOLATED UI
   ============================================================
   NOW PLAYING deja de usar las clases visuales históricas .player-*.
   El bloque usa únicamente clases ds435-* para evitar que reglas acumuladas
   de versiones anteriores puedan generar contornos o superficies fantasma.
   ============================================================ */
.ds435-player-host{display:block;width:100%;min-width:0}
.ds435-player-console{
  position:relative;isolation:isolate;overflow:hidden;width:100%;min-width:0;
  padding:20px;border:1px solid #315965;border-radius:19px;box-sizing:border-box;
  background:#080b0d;box-shadow:inset 0 0 34px rgba(65,190,215,.035),0 18px 50px rgba(0,0,0,.45);
}
.ds435-player-console::before,.ds435-player-console::after{content:none!important;display:none!important}
.ds435-player-console>*:not(.ds435-player-artwork){position:relative;z-index:3;box-sizing:border-box}

.ds435-player-artwork{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;background:#05080a}
.ds435-player-artwork::after{
  content:"";position:absolute;inset:0;z-index:2;pointer-events:none;
  background:linear-gradient(180deg,rgba(4,8,10,.14),rgba(4,8,10,.30) 44%,rgba(4,8,10,.54)),radial-gradient(circle at 50% 40%,rgba(4,8,10,.01),rgba(4,8,10,.38) 94%);
}
.ds435-player-artwork-slide{position:absolute;inset:-2%;z-index:0;overflow:hidden;opacity:0;transition:opacity 5s ease-in-out;will-change:opacity}
.ds435-player-artwork-slide.active{z-index:1;opacity:.78}
.ds435-player-artwork-slide.leaving{z-index:1}
.ds435-player-artwork-slide img{display:block;width:100%;height:100%;object-fit:cover;object-position:center center;filter:brightness(.90) contrast(1.08) saturate(1.02);transform:translate3d(0,0,0) scale(1);transform-origin:50% 50%;backface-visibility:hidden;-webkit-backface-visibility:hidden;will-change:transform}
.ds435-player-artwork-signal{position:absolute;inset:0;z-index:2;pointer-events:none;opacity:.14;mix-blend-mode:screen;background:repeating-linear-gradient(180deg,rgba(255,255,255,.025) 0 1px,transparent 1px 5px),linear-gradient(90deg,rgba(255,34,48,.04),transparent 34%,rgba(110,225,255,.04) 68%,transparent)}

.ds435-player-head span{display:block;color:#e7303a;font-size:8px;font-weight:1000;letter-spacing:.14em}
.ds435-player-head strong{display:block;margin-top:8px;min-height:46px;font-size:19px;line-height:1.18;overflow-wrap:anywhere}
.ds435-player-fullscreen-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;margin:2px 0 10px auto;min-height:34px;
  padding:7px 10px;border:1px solid rgba(111,210,225,.46);border-radius:9px;background:rgba(4,13,17,.56);
  color:#c9f7ff;font:800 8px/1 Oxanium,sans-serif;letter-spacing:.055em;appearance:none;-webkit-appearance:none;
}
.ds435-player-fullscreen-btn>span{font-size:18px;line-height:.7}

.ds435-player-progress-meta{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:end;gap:7px;margin:12px 0 7px;min-width:0}
.ds435-player-time-box{display:flex;align-items:center;min-height:28px;padding:5px 8px;border:1px solid rgba(89,201,219,.42);border-radius:7px;background:rgba(0,0,0,.50);box-sizing:border-box}
.ds435-player-time{margin:0;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:#b7bdc0;font-size:10px;line-height:1}
.ds435-player-wave{width:100%;min-width:0;height:35px;display:flex;align-items:flex-end;justify-content:flex-end;gap:2px;overflow:hidden;opacity:.42;pointer-events:none}
.ds435-player-wave.playing{opacity:1}
.ds435-player-wave i{display:block;width:3px;height:5px;flex:0 0 3px;border-radius:3px 3px 1px 1px;background:linear-gradient(180deg,#98f7ff,#6ea6ff);transform-origin:center bottom;transition:opacity .07s linear;will-change:transform,opacity}

.ds435-player-progress{
  display:block;position:relative;width:100%;height:12px;margin:0;padding:0;overflow:hidden;cursor:pointer;
  border:1px solid #315965;border-radius:0;background:#03090c;box-shadow:none;outline:0;appearance:none;-webkit-appearance:none;
}
.ds435-player-progress::before,.ds435-player-progress::after{content:none!important;display:none!important}
.ds435-player-progress>span{display:block;width:0;height:100%;background:linear-gradient(90deg,#65d7e7,#8be8f4);box-shadow:none}
.ds435-player-progress:focus-visible{outline:1px solid #78dceb;outline-offset:2px}

.ds435-player-controls-main{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;gap:9px;margin-top:17px}
.ds435-player-controls-main button{
  width:100%;height:60px;min-width:0;padding:0;display:grid;place-items:center;border:1px solid #315965;border-radius:12px;
  background:rgba(8,10,11,.90);color:#e2e7e9;line-height:1;appearance:none;-webkit-appearance:none;
}
.ds435-player-controls-main .ds435-player-main-play{background:#63d4e5;border-color:#63d4e5;color:#041015;font-size:51px}
.ds435-player-skip-svg{display:block;width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round;transform:translateY(-2px)}

.ds435-player-mode-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:13px}
.ds435-player-mode{
  min-height:60px;padding:5px 7px;display:flex;align-items:center;justify-content:center;gap:7px;border:1px solid #315965;border-radius:10px;
  background:rgba(8,10,11,.88);color:#c3c9cb;font:900 clamp(10px,2.9vw,13px)/1 Oxanium,sans-serif;letter-spacing:.02em;appearance:none;-webkit-appearance:none;
}
.ds435-player-mode.active{color:#fff;border-color:#5bc9d8;background:rgba(91,201,216,.11);box-shadow:inset 0 0 18px rgba(91,201,216,.10),0 0 12px rgba(91,201,216,.06)}
.ds435-player-mode-icon{display:inline-grid;place-items:center;font-size:30px;line-height:.72;font-weight:800;flex:0 0 auto}

.ds435-player-volume{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:10px;width:100%;min-height:28px;margin-top:16px;padding:0;border:0;outline:0;background:none;box-shadow:none;overflow:visible}
.ds435-player-volume::before,.ds435-player-volume::after,.ds435-player-volume-label::before,.ds435-player-volume-label::after,.ds435-player-volume-control::before,.ds435-player-volume-control::after,.ds435-player-volume-thumb::before,.ds435-player-volume-thumb::after{content:none!important;display:none!important}
.ds435-player-volume-label{display:block;margin:0;padding:0;border:0;background:none;color:#72c2ff;font:1000 8px/1 Oxanium,sans-serif;letter-spacing:.04em}
.ds435-player-volume-control{
  --volume-pct:85%;position:relative;width:100%;height:20px;margin:0;padding:0;border:0;outline:0;background:none;cursor:pointer;touch-action:none;
}
.ds435-player-volume-control::selection{background:transparent}
.ds435-player-volume-control:focus-visible{outline:1px solid #54c6ff;outline-offset:2px;border-radius:5px}
.ds435-player-volume-control{background:linear-gradient(90deg,#199ee5 0 var(--volume-pct),transparent var(--volume-pct) 100%) center/100% 4px no-repeat,linear-gradient(#163a49,#163a49) center/100% 4px no-repeat}
.ds435-player-volume-control> .ds435-player-volume-thumb{
  position:absolute;z-index:2;left:var(--volume-pct);top:50%;width:17px;height:17px;margin:0;padding:0;border:2px solid #8be8f4;border-radius:50%;
  background:#f5fbff;box-shadow:0 0 0 2px rgba(84,198,255,.18),0 0 10px rgba(84,198,255,.28);transform:translate(-50%,-50%);pointer-events:none;
}
.ds435-player-volume-control> .ds435-player-volume-thumb::after{content:none!important}

/* Full screen conserva el MISMO DOM. Solo cambia layout de las clases ds435. */
.player-fullscreen-layer .ds435-player-console{
  width:100%;height:100dvh;min-height:100dvh;max-height:none;margin:0;padding:max(76px,calc(env(safe-area-inset-top) + 66px)) clamp(18px,5vw,64px) clamp(104px,16vh,150px);
  border:0;border-radius:0;display:flex;flex-direction:column;justify-content:center;overflow:hidden;background:#05080a;box-shadow:none;
}
.player-fullscreen-layer .ds435-player-console>*:not(.ds435-player-artwork){width:min(100%,900px);margin-left:auto;margin-right:auto}
.player-fullscreen-layer .ds435-player-artwork{inset:0;background:#030608}
.player-fullscreen-layer .ds435-player-artwork-slide{inset:-4%}
.player-fullscreen-layer .ds435-player-artwork-slide.active{opacity:.90}
.player-fullscreen-layer .ds435-player-artwork-slide img{filter:brightness(.94) contrast(1.06) saturate(1.03)}
.player-fullscreen-layer .ds435-player-artwork::after{background:linear-gradient(180deg,rgba(3,6,8,.14),rgba(3,6,8,.25) 42%,rgba(3,6,8,.48)),radial-gradient(circle at 50% 42%,rgba(3,6,8,.01),rgba(3,6,8,.36) 94%)}
.player-fullscreen-layer .ds435-player-head span{font-size:clamp(8px,1.8vw,13px)}
.player-fullscreen-layer .ds435-player-head strong{font-size:clamp(22px,5.4vw,48px);min-height:0;margin-top:10px;text-shadow:0 3px 22px rgba(0,0,0,.78)}
.player-fullscreen-layer .ds435-player-fullscreen-btn{display:none}
.player-fullscreen-layer .ds435-player-progress-meta{display:block;width:min(100%,900px);margin-top:clamp(24px,6vh,60px)}
.player-fullscreen-layer .ds435-player-time-box{min-height:56px;padding:10px 18px;border-width:2px;border-radius:12px;background:rgba(0,0,0,.50)}
.player-fullscreen-layer .ds435-player-time{font-size:clamp(18px,4vw,28px);line-height:1;letter-spacing:.025em}
.player-fullscreen-layer .ds435-player-controls-main{margin-top:clamp(18px,4vh,38px)}
.player-fullscreen-layer .ds435-player-controls-main button{height:clamp(58px,9vh,82px)}
.player-fullscreen-layer .ds435-player-mode-controls{margin-top:14px}
.player-fullscreen-layer .ds435-player-volume{margin-top:18px}
.player-fullscreen-layer .ds435-player-wave{
  position:absolute;left:0;right:0;bottom:0;width:100%;max-width:none;height:clamp(72px,13vh,126px);margin:0!important;padding:0 4px max(2px,env(safe-area-inset-bottom));
  display:grid;grid-template-columns:repeat(46,minmax(0,1fr));align-items:end;justify-content:stretch;gap:clamp(1px,.45vw,5px);overflow:hidden;z-index:5;pointer-events:none;opacity:.60;
}
.player-fullscreen-layer .ds435-player-wave.playing{opacity:1}
.player-fullscreen-layer .ds435-player-wave i{width:100%;max-width:none;min-width:0;flex:none;transform-origin:center bottom;border-radius:4px 4px 1px 1px}

/* Defensa: dentro del bloque saneado no se renderiza ninguna generación antigua. */
.ds435-player-console .player-volume,.ds435-player-console .player-volume-label,.ds435-player-console .player-volume-control,.ds435-player-console .player-volume-track,.ds435-player-console .player-volume-thumb,.ds435-player-console .player-mobile-volume-note,.ds435-player-console .player-volume-note,.ds435-player-console output{display:none!important;width:0!important;height:0!important;border:0!important;margin:0!important;padding:0!important}

@media(max-height:720px){
  .player-fullscreen-layer .ds435-player-console{padding-top:max(64px,calc(env(safe-area-inset-top) + 56px));padding-bottom:92px;justify-content:flex-start;overflow:auto}
  .player-fullscreen-layer .ds435-player-progress-meta{margin-top:12px}
  .player-fullscreen-layer .ds435-player-controls-main{margin-top:12px}
  .player-fullscreen-layer .ds435-player-wave{height:70px}
  .player-fullscreen-layer .ds435-player-time-box{min-height:48px;padding:8px 15px}
  .player-fullscreen-layer .ds435-player-time{font-size:17px}
}
@media(max-width:460px){
  .ds435-player-console{padding:18px 16px}
  .ds435-player-head strong{font-size:17px}
  .ds435-player-controls-main button{height:58px}
  .ds435-player-mode{min-height:56px}
}
@media(prefers-reduced-motion:reduce){
  .ds435-player-artwork-slide{transition:none!important}
  .ds435-player-artwork-slide img{animation:none!important;transition:none!important}
}

/* ============================================================
   DISTURBING STORIES APP v4.36 · FULL SCREEN LAYOUT REFINEMENT
   ============================================================
   Full Screen conserva la composición y proporciones del NOW PLAYING normal.
   Solo el artwork ocupa el viewport completo.
   ============================================================ */
.player-fullscreen-layer .ds435-player-console>*:not(.ds435-player-artwork){
  width:min(var(--ds435-normal-console-width,900px),calc(100vw - clamp(36px,10vw,128px)))!important;
  max-width:100%!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

/* Cabecera: misma escala y posición relativa que en la vista normal. */
.player-fullscreen-layer .ds435-player-head span{font-size:8px!important}
.player-fullscreen-layer .ds435-player-head strong{
  margin-top:8px!important;
  min-height:46px!important;
  font-size:19px!important;
  line-height:1.18!important;
  text-shadow:0 3px 18px rgba(0,0,0,.72)!important;
}

/* Duración + visualizador: recuperan exactamente la estructura horizontal normal. */
.player-fullscreen-layer .ds435-player-progress-meta{
  position:relative!important;
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr)!important;
  align-items:end!important;
  gap:7px!important;
  margin:12px auto 7px!important;
  min-width:0!important;
}
.player-fullscreen-layer .ds435-player-time-box{
  display:inline-flex!important;
  width:max-content!important;
  min-width:0!important;
  max-width:100%!important;
  min-height:28px!important;
  padding:5px 8px!important;
  border-width:1px!important;
  border-radius:7px!important;
  background:rgba(0,0,0,.50)!important;
  justify-self:start!important;
  align-self:end!important;
}
.player-fullscreen-layer .ds435-player-time-box .ds435-player-time,
.player-fullscreen-layer .ds435-player-time{
  font-size:10px!important;
  line-height:1!important;
  letter-spacing:0!important;
  white-space:nowrap!important;
}
.player-fullscreen-layer .ds435-player-wave{
  position:static!important;
  inset:auto!important;
  width:100%!important;
  max-width:none!important;
  height:35px!important;
  margin:0!important;
  padding:0!important;
  display:flex!important;
  align-items:flex-end!important;
  justify-content:flex-end!important;
  gap:2px!important;
  overflow:hidden!important;
  z-index:auto!important;
  opacity:.42!important;
}
.player-fullscreen-layer .ds435-player-wave.playing{opacity:1!important}
.player-fullscreen-layer .ds435-player-wave i{
  display:block!important;
  width:3px!important;
  max-width:3px!important;
  min-width:3px!important;
  height:5px!important;
  flex:0 0 3px!important;
  border-radius:3px 3px 1px 1px!important;
  transform-origin:center bottom!important;
}

/* Barra de progreso y volumen mantienen su tamaño normal. */
.player-fullscreen-layer .ds435-player-progress{height:12px!important}
.player-fullscreen-layer .ds435-player-volume{margin-top:16px!important}

/* Los seis botones se reducen ligeramente, sin alterar su estructura 3 + 3. */
.player-fullscreen-layer .ds435-player-controls-main,
.player-fullscreen-layer .ds435-player-mode-controls{
  width:min(calc(var(--ds435-normal-console-width,900px) - 28px),calc(100vw - clamp(44px,12vw,150px)))!important;
  max-width:calc(100% - 28px)!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
.player-fullscreen-layer .ds435-player-controls-main{margin-top:15px!important;gap:8px!important}
.player-fullscreen-layer .ds435-player-controls-main button{height:54px!important;border-radius:11px!important}
.player-fullscreen-layer .ds435-player-controls-main .ds435-player-main-play{font-size:46px!important}
.player-fullscreen-layer .ds435-player-skip-svg{width:27px!important;height:27px!important}
.player-fullscreen-layer .ds435-player-mode-controls{margin-top:11px!important;gap:8px!important}
.player-fullscreen-layer .ds435-player-mode{min-height:54px!important;padding:5px 6px!important}
.player-fullscreen-layer .ds435-player-mode-icon{font-size:27px!important}

@media(max-height:720px){
  .player-fullscreen-layer .ds435-player-progress-meta{margin-top:12px!important}
  .player-fullscreen-layer .ds435-player-wave{height:35px!important}
  .player-fullscreen-layer .ds435-player-time-box{min-height:28px!important;padding:5px 8px!important}
  .player-fullscreen-layer .ds435-player-time-box .ds435-player-time,
  .player-fullscreen-layer .ds435-player-time{font-size:10px!important}
}


/* ============================================================
   DISTURBING STORIES APP v4.37 · FULL SCREEN / START / HEADER
   ============================================================ */

/* Full Screen: X de cierre y caja al doble de escala. */
.player-fullscreen-close{
  width:104px!important;height:104px!important;border-radius:22px!important;
  font-size:72px!important;line-height:1!important;
}

/* NOW PLAYING y título ligeramente mayores exclusivamente en Full Screen. */
.player-fullscreen-layer .ds435-player-head span{font-size:11px!important;letter-spacing:.15em!important}
.player-fullscreen-layer .ds435-player-head strong{font-size:24px!important;line-height:1.16!important}

/* Duración: tres veces la escala de la vista normal, sin poder expandirse a lo ancho. */
.player-fullscreen-layer .ds435-player-time-box{
  display:inline-flex!important;width:max-content!important;min-width:0!important;max-width:max-content!important;
  min-height:84px!important;padding:15px 24px!important;border-width:2px!important;border-radius:15px!important;
  justify-self:start!important;align-self:end!important;flex:0 0 auto!important;
}
.player-fullscreen-layer .ds435-player-time-box .ds435-player-time,
.player-fullscreen-layer .ds435-player-time{
  font-size:30px!important;line-height:1!important;letter-spacing:.01em!important;white-space:nowrap!important;
}

/* Visualizador: misma posición horizontal, pero barras más altas. */
.player-fullscreen-layer .ds435-player-wave{height:52px!important;align-items:flex-end!important}
.player-fullscreen-layer .ds435-player-wave i{
  width:3px!important;min-width:3px!important;max-width:3px!important;flex:0 0 3px!important;
  height:10px!important;transform-origin:center bottom!important;
}

/* Barra de progreso: doble de altura en Full Screen, misma anchura que v4.36.
   touch-action:none hace fiable el seek por arrastre en iPhone/iPad. */
.ds435-player-progress{touch-action:none!important;-webkit-user-select:none!important;user-select:none!important}
.player-fullscreen-layer .ds435-player-progress{
  height:24px!important;min-height:24px!important;cursor:pointer!important;touch-action:none!important;
}
.player-fullscreen-layer .ds435-player-progress>span{height:100%!important;min-height:100%!important}

/* START: sin círculo/ripples ni halo exterior permanente alrededor del splatter.
   Se conservan parallax, viscosidad y la confirmación de pulsación. */
.entry-gate-ripples{display:none!important}
.entry-gate-stack{filter:none!important}
.entry-gate-button.entry-confirm .entry-gate-stack{filter:brightness(1.28)!important}

/* HEADER: el usuario registrado ocupa solo el avatar + nivel; sin HOLA/NOMBRE. */
.user-greeting{display:none!important}



/* ============================================================
   DISTURBING STORIES APP v4.38 · FULL SCREEN + TODASLOOP
   ============================================================ */

/* Full Screen: X algo más compacta y SVG geométricamente centrado. */
.player-fullscreen-close{
  width:84px!important;height:84px!important;border-radius:18px!important;
  display:grid!important;place-items:center!important;padding:0!important;
  font-size:0!important;line-height:0!important;
}
.player-fullscreen-close-svg{
  display:block;width:48px;height:48px;overflow:visible;
  fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;
  vector-effect:non-scaling-stroke;transform:none!important;
}

/* Full Screen: NOW PLAYING / título algo mayores. */
.player-fullscreen-layer .ds435-player-head span{font-size:13px!important;letter-spacing:.15em!important}
.player-fullscreen-layer .ds435-player-head strong{font-size:28px!important;line-height:1.14!important}

/* Duración: un poco más compacta que v4.37, siempre ceñida a las cifras. */
.player-fullscreen-layer .ds435-player-time-box{
  display:inline-flex!important;width:max-content!important;min-width:0!important;max-width:max-content!important;
  min-height:68px!important;padding:11px 17px!important;border-width:2px!important;border-radius:13px!important;
  justify-self:start!important;align-self:end!important;flex:0 0 auto!important;
}
.player-fullscreen-layer .ds435-player-time-box .ds435-player-time,
.player-fullscreen-layer .ds435-player-time{font-size:23px!important;line-height:1!important;letter-spacing:.01em!important;white-space:nowrap!important}

/* Visualizador musical: más alto, misma anchura/proporción horizontal. */
.player-fullscreen-layer .ds435-player-wave{height:68px!important;align-items:flex-end!important}
.player-fullscreen-layer .ds435-player-wave i{height:14px!important;transform-origin:center bottom!important}

/* TODAS LAS STORIES · loop decorativo a la derecha del título. */
.stories-title-with-loop{align-items:center!important;min-height:108px}
.stories-title-with-loop>div:first-child{min-width:0;flex:1 1 auto}
.stories-title-loop{
  flex:0 0 clamp(96px,27vw,154px);width:clamp(96px,27vw,154px);
  height:clamp(82px,23vw,118px);display:flex;align-items:center;justify-content:center;
  overflow:hidden;pointer-events:none;margin-left:auto;
}
.stories-title-loop video{
  display:block;width:100%;height:100%;object-fit:contain;object-position:center center;
  background:transparent;border:0;outline:0;pointer-events:none;
}
@media(max-width:420px){
  .stories-title-with-loop{gap:8px!important;min-height:92px}
  .stories-title-loop{flex-basis:112px;width:112px;height:92px}
}


/* ============================================================
   DISTURBING STORIES APP v5.1 · IMPORTER / USER / PLAYER / HOME
   ============================================================ */

/* USER · indicador de nivel de la caja registrada al 70% de la escala v4.38. */
.user-hero-level{
  min-width:78px!important;width:78px!important;height:78px!important;flex:0 0 78px!important;
  padding:0 8px!important;
}
.user-hero-level-number{font-size:51px!important;transform:translateY(4px)!important}
.user-hero-level-star{font-size:13px!important;transform:translateY(-14px)!important}
.user-hero-level.level-multi{width:99px!important;min-width:99px!important;border-radius:24px!important;padding:0 10px!important}
.user-hero-level.level-multi .user-hero-level-number{font-size:43px!important}
.user-hero-level.level-3plus{width:115px!important;min-width:115px!important;border-radius:21px!important;padding:0 10px!important}
.user-hero-level.level-3plus .user-hero-level-number{font-size:34px!important}
@media(max-width:460px){
  .user-hero-level{min-width:62px!important;width:62px!important;height:62px!important;flex-basis:62px!important;padding:0 6px!important}
  .user-hero-level-number{font-size:41px!important;transform:translateY(3px)!important}
  .user-hero-level-star{font-size:12px!important;transform:translateY(-11px)!important}
  .user-hero-level.level-multi{width:99px!important;min-width:99px!important;padding:0 9px!important}
  .user-hero-level.level-multi .user-hero-level-number{font-size:43px!important}
  .user-hero-level.level-3plus{width:115px!important;min-width:115px!important;padding:0 9px!important}
  .user-hero-level.level-3plus .user-hero-level-number{font-size:34px!important}
}

/* PLAYER normal · misma anchura de la duración, menos altura. Full Screen conserva v4.38. */
body:not(.player-fullscreen-open) .ds435-player-time-box{
  min-height:20px!important;padding-top:2px!important;padding-bottom:2px!important;
}

/* HOME · loop inferior con el mismo patrón de colocación que BIBLIOFOOTER. */
.home-bottom-loop{width:100%;margin:18px 0 0;overflow:hidden;line-height:0;background:transparent;pointer-events:none}
.home-bottom-loop video{display:block;width:100%;height:auto;max-width:100%;margin:0 auto;object-fit:contain;pointer-events:none;user-select:none;-webkit-user-select:none}


/* ============================================================
   DISTURBING STORIES APP v5.2 · PLAYER / START RESPONSIVE
   ============================================================ */

/* PLAYER Full Screen · conservar el ancho v4.38 y ceñir la altura a las cifras. */
.player-fullscreen-layer .ds435-player-time-box{
  height:auto!important;min-height:0!important;
  padding-top:4px!important;padding-bottom:4px!important;
}

/* PLAYER · aviso discreto bajo el control de volumen. */
.ds435-player-volume-note{
  display:block;margin:5px 0 0;padding:0;border:0;background:none;
  color:rgba(205,221,226,.58);font:500 8px/1.35 Oxanium,sans-serif;
  letter-spacing:.015em;text-align:center;
}
.player-fullscreen-layer .ds435-player-volume-note{font-size:8px!important;margin-top:5px!important}

/* START · el conjunto title + splatter escala siempre de forma proporcional y
   conserva margen horizontal incluso durante viscosidad/parallax/confirmación. */
.entry-gate-button{width:min(96vw,720px)!important;max-width:96vw!important}
.entry-gate-stack{
  width:min(82vw,84svh,660px)!important;height:auto!important;
  max-width:82vw!important;max-height:84svh!important;aspect-ratio:1/1!important;
}
.entry-gate-button .entry-gate-layer{width:100%!important;height:100%!important;object-fit:contain!important}

/* ============================================================
   v5.4 · MICRO-PESADILLAS
   Catálogo propio, lectura breve y relaciones narrativas.
   El mismo renderer se usa en la APP y en el preview del Importer.
   ============================================================ */
.micro-section{padding-bottom:120px}
.micro-title{border:1px solid #5d2429;background:linear-gradient(180deg,#17090b,#0b0809);border-radius:16px;padding:18px;margin-bottom:12px;overflow:hidden;position:relative}
.micro-title:after{content:"";position:absolute;inset:auto -20% -55% 22%;height:140px;background:radial-gradient(ellipse,rgba(255,90,101,.14),transparent 68%);pointer-events:none}
.micro-title h1{font-family:Oxanium,sans-serif;letter-spacing:.04em;margin:2px 0 8px;color:#ffd7d9;font-size:clamp(25px,8vw,38px)}
.micro-title p{margin:0;color:#a78d91;line-height:1.55;font-size:12px;max-width:560px}
.micro-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0}.micro-stats>div{border:1px solid #4a2327;background:#10090a;border-radius:12px;padding:11px 8px;text-align:center;display:grid;gap:2px}.micro-stats strong{font-family:Oxanium,sans-serif;font-size:22px;color:#fff}.micro-stats span{font-size:8px;letter-spacing:.1em;color:#bd8c92}
.micro-filters{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:12px 0}.micro-filters button{border:1px solid #3d272a;background:#0b0909;color:#947f82;border-radius:10px;padding:10px 4px;font:800 8px/1 Oxanium,sans-serif;letter-spacing:.04em}.micro-filters button.active{border-color:#a23c45;color:#ffd7d9;background:#241013}
.micro-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.micro-card{min-width:0;border:1px solid #3b2528;background:#0d0a0a;border-radius:13px;overflow:hidden;cursor:pointer}.micro-card-cover{position:relative;aspect-ratio:2/3;background:#050505;display:grid;place-items:center;overflow:hidden}.micro-card-cover>img{width:100%;height:100%;object-fit:cover;display:block}.micro-card-cover>span{font:800 24px Oxanium,sans-serif;color:#6b353b}.micro-card-read{position:absolute;left:7px;bottom:7px;border:1px solid #287b45;background:rgba(4,23,12,.9);color:#a8ffc4;border-radius:999px;padding:5px 7px;font:800 7px Oxanium,sans-serif}.micro-card-copy{padding:9px 9px 11px}.micro-card-copy .story-number{color:#a9545d;font-size:7px}.micro-card-copy h3{font-size:13px;line-height:1.2;margin:4px 0;color:#f3e7e8}.micro-card-copy small{display:block;color:#846a6e;font-size:7px;line-height:1.35;margin-top:6px}
@media(min-width:680px){.micro-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.micro-detail{padding:8px 0 120px}.micro-detail-head{padding:20px 18px 15px;border-bottom:1px solid #3b2024;background:linear-gradient(180deg,#16090b,#090808)}.micro-detail-head .story-number{color:#b95660}.micro-detail-head h1{font-family:Oxanium,sans-serif;color:#fff;font-size:clamp(27px,8vw,42px);line-height:1.02;margin:7px 0 10px}.micro-detail .meta-row{gap:5px}.micro-cover{margin:0;background:#050505;border-bottom:1px solid #2d1b1e}.micro-cover img{width:100%;display:block;max-height:78vh;object-fit:contain;background:#050505}.micro-read-controls{padding:12px 14px 0;margin:0}.micro-reader{padding-top:18px}.micro-reader .micro-text-block{margin:0 0 16px}.micro-reader .micro-text-block p{white-space:normal;text-align:justify;margin:0 0 1.1em}.micro-image-block{margin:18px -2px 22px}.micro-image-block img{display:block;width:100%;height:auto;border-radius:7px;background:#050505;cursor:zoom-in}.micro-story-link{margin:18px 14px 8px;border-top:1px solid #3e2327;padding-top:16px}.micro-story-link>.eyebrow{color:#9c646a}.micro-relation-type{display:inline-flex;margin:7px 0;border:1px solid #673039;color:#e59da5;border-radius:999px;padding:5px 8px;font:800 7px Oxanium,sans-serif;letter-spacing:.08em}.micro-story-link>button{width:100%;display:grid;grid-template-columns:62px 1fr auto;gap:10px;align-items:center;text-align:left;border:1px solid #3b2528;background:#0d090a;border-radius:12px;padding:8px;color:#fff}.micro-story-link img{width:62px;aspect-ratio:2/3;object-fit:cover;border-radius:7px}.micro-story-link span{display:grid;gap:3px;min-width:0}.micro-story-link span b{font:800 8px Oxanium,sans-serif;color:#b05b64}.micro-story-link span strong{font-size:13px;overflow:hidden;text-overflow:ellipsis}.micro-story-link span small{font-size:7px;color:#a76f75}.micro-story-link em{font:normal 28px/1 sans-serif;color:#ad5962}
.story-micro-relations{margin:18px 14px 28px;border-top:1px solid #3d272a;padding-top:15px}.story-micro-relations>.eyebrow{color:#b86b73;margin-bottom:9px}.story-micro-grid{display:grid;gap:7px}.story-micro-grid button{display:grid;grid-template-columns:48px 1fr;gap:9px;align-items:center;text-align:left;border:1px solid #3b2528;background:#0e0a0b;color:#fff;border-radius:10px;padding:7px}.story-micro-grid img{width:48px;aspect-ratio:2/3;object-fit:cover;border-radius:6px}.story-micro-grid span{min-width:0;display:grid;gap:2px}.story-micro-grid b{font:800 7px Oxanium,sans-serif;color:#b65e67}.story-micro-grid strong{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.story-micro-grid small{font-size:7px;color:#876b6e}
body.micro-preview-mode .entry-gate{display:none!important}


/* v5.4 · MICRO-PESADILLAS · cabecera, lectura y filtros */
.micro-section{overflow:hidden;padding-top:0}
.micro-title{margin:0 calc(0px - var(--reader-pad)) 12px;border-radius:0;padding:0;border-left:0;border-right:0;background:#090607}
.micro-title:after{display:none}
.micro-title-logo{display:block;width:100%;height:auto;max-width:none;background:#050505}
.micro-intro-panel{position:relative;padding:15px var(--reader-pad) 8px;background:linear-gradient(180deg,#15090b,#0a0809);border-top:1px solid #4b2025;border-bottom:1px solid #4b2025}
.micro-intro-lead{margin:0;text-align:center;color:#d0b6b9;font-size:11px;line-height:1.55}
.micro-intro-more{max-height:0;opacity:0;overflow:hidden;visibility:hidden;transition:max-height .42s ease,opacity .24s ease;padding:0 3px;text-align:center}
.micro-intro-panel.expanded .micro-intro-more{max-height:900px;opacity:1;visibility:visible;padding-top:13px}
.micro-intro-more p{margin:9px auto;color:#a98e92;font-size:11px;line-height:1.58;max-width:520px}
.micro-intro-more strong{display:block;margin:9px auto 5px;color:#ffd7d9;font:800 13px/1.3 Oxanium,sans-serif;letter-spacing:.025em;max-width:520px}
.micro-intro-more b{color:#e9b9be}
.micro-intro-toggle{display:grid;place-items:center;width:44px;height:28px;margin:8px auto 0;padding:0;border:0;background:transparent;color:#c7737c;cursor:pointer}
.micro-intro-toggle span{display:block;font:700 25px/1 sans-serif;transition:transform .24s ease}
.micro-intro-panel.expanded .micro-intro-toggle span{transform:rotate(180deg)}
.micro-filters button[data-micro-filter="all"]{border-color:#6a6a6a;background:#161616;color:#c9c9c9}
.micro-filters button[data-micro-filter="all"].active{border-color:#d0d0d0;background:#303030;color:#fff;box-shadow:0 0 14px rgba(255,255,255,.07)}
.micro-filters button[data-micro-filter="unread"]{border-color:#6d2d34;color:#d88a92;background:#180b0d}
.micro-filters button[data-micro-filter="unread"].active{border-color:#b84d59;color:#ffd5d9;background:#2b1014}
.micro-filters button[data-micro-filter="read"]{border-color:#28613c;background:#09150e;color:#8dd5a4}
.micro-filters button[data-micro-filter="read"].active{border-color:#45a667;background:#10291a;color:#c5ffd5;box-shadow:0 0 14px rgba(76,190,111,.09)}
.micro-read-controls{width:100%!important;box-sizing:border-box!important;margin:0!important;padding:12px 14px 0!important;display:flex!important;justify-content:flex-end!important;align-items:stretch!important;gap:7px!important;flex-wrap:nowrap!important;overflow:hidden!important}
.micro-read-controls .story-manual-read-btn{box-sizing:border-box!important;min-width:0!important;max-width:calc(50% - 3.5px)!important;white-space:normal!important;text-align:center!important;overflow-wrap:anywhere!important}
.micro-read-controls .story-manual-unread-btn.hidden + .story-manual-read-btn{max-width:100%!important}
.read-celebration.micro-read-celebration{border-color:#702b33;box-shadow:0 24px 80px rgba(0,0,0,.75),0 0 42px rgba(188,35,52,.13)}
.read-celebration.micro-read-celebration .read-check{background:#451016;border-color:#8d303b;color:#ffd9dd;box-shadow:0 0 24px rgba(207,46,64,.18)}
.read-celebration.micro-read-celebration .eyebrow{color:#d36b76}
.read-celebration.micro-read-celebration strong{color:#fff0f1;text-shadow:0 0 18px rgba(221,59,76,.18)}
.read-celebration.micro-read-celebration small{color:#b37b81}
@media(prefers-reduced-motion:reduce){.micro-intro-more,.micro-intro-toggle span{transition:none!important}}


/* ============================================================
   v5.5 · MICRO-PESADILLAS · cabecera centrada y feedback positivo
   ============================================================ */
.micro-intro-panel{text-align:center!important}
.micro-intro-lead{display:block!important;width:100%!important;max-width:560px!important;margin:0 auto!important;text-align:center!important}
.micro-intro-more,.micro-intro-more p,.micro-intro-more strong{text-align:center!important}
.micro-intro-toggle{width:38px!important;height:34px!important;margin:6px auto 0!important;display:grid!important;place-items:center!important;line-height:0!important;color:#d98a92!important}
.micro-intro-chevron{width:34px!important;height:34px!important;display:grid!important;place-items:center!important;line-height:0!important;transform:none!important}
.micro-intro-chevron svg{display:block;width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;transform:translateY(-1px);transition:transform .2s ease}
.micro-intro-panel.expanded .micro-intro-toggle span{transform:none!important}
.micro-intro-panel.expanded .micro-intro-chevron svg{transform:translateY(1px) rotate(180deg)!important}

/* LEÍDA MICRO: conserva rojo corporativo pero añade luz, barridos y destellos
   para que se perciba inequívocamente como recompensa positiva. */
.read-celebration.micro-read-celebration{overflow:visible!important;isolation:isolate;border-color:#a6424d!important;background:radial-gradient(circle at 50% 22%,rgba(112,21,34,.32),rgba(8,8,8,.97) 55%)!important;box-shadow:0 24px 80px rgba(0,0,0,.78),0 0 20px rgba(255,91,110,.24),0 0 64px rgba(210,48,67,.28)!important}
.micro-read-light-flash{position:absolute;inset:-18px;border-radius:28px;pointer-events:none;z-index:-1;opacity:0;background:radial-gradient(circle,rgba(255,230,233,.38) 0%,rgba(255,80,104,.22) 25%,rgba(148,15,33,.08) 48%,transparent 72%)}
.micro-read-celebration.show .micro-read-light-flash{animation:microReadFlashV55 1.05s .05s ease-out both,microReadAuraV55 1.25s 1.05s ease-in-out infinite alternate}
.micro-read-icon-stage{position:relative;width:112px;height:104px;margin:-2px auto 7px;display:grid;place-items:center;isolation:isolate}
.micro-read-icon-stage .read-check{position:relative;z-index:4;margin:0!important;overflow:hidden!important;background:radial-gradient(circle at 38% 28%,#8f3440,#4b1119 66%,#22090e)!important;border:2px solid #f08c99!important;color:#fff5f6!important;box-shadow:0 0 0 2px rgba(255,174,184,.08),0 0 20px rgba(255,83,104,.56),0 0 50px rgba(255,255,255,.12),inset 0 0 16px rgba(255,220,225,.14)!important;transform:scale(.72);opacity:.25}
.micro-read-celebration.show .micro-read-icon-stage .read-check{animation:microReadCheckPopV55 .72s .08s cubic-bezier(.16,.92,.22,1.16) forwards,microReadCheckGlowV55 1.25s .9s ease-in-out infinite alternate}
.micro-read-sweep{position:absolute;z-index:5;top:-30%;bottom:-30%;left:-70%;width:42%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.9) 48%,rgba(255,170,181,.82) 58%,transparent);transform:skewX(-18deg);opacity:0;filter:blur(.5px)}
.micro-read-celebration.show .micro-read-sweep{animation:microReadSweepV55 1.05s .52s ease-out forwards}
.micro-read-ring{position:absolute;inset:20px;border-radius:50%;border:1px solid rgba(255,139,153,.78);z-index:1;opacity:0;box-shadow:0 0 16px rgba(255,87,108,.25)}
.micro-read-celebration.show .micro-read-ring.ring-a{animation:microReadRingV55 1.0s .12s ease-out forwards}
.micro-read-celebration.show .micro-read-ring.ring-b{animation:microReadRingV55 1.15s .36s ease-out forwards}
.micro-read-spark{position:absolute;z-index:6;left:50%;top:50%;width:4px;height:15px;border-radius:999px;background:linear-gradient(#fff,#ff9dab 45%,#d83f56);transform-origin:50% 55px;transform:translate(-50%,-50%) rotate(calc(var(--micro-spark) * 30deg)) translateY(-29px) scaleY(.15);opacity:0;box-shadow:0 0 7px rgba(255,126,144,.9)}
.micro-read-celebration.show .micro-read-spark{animation:microReadSparkV55 .78s calc(.16s + var(--micro-spark) * .024s) cubic-bezier(.15,.72,.15,1) both}
@keyframes microReadFlashV55{0%{opacity:0;transform:scale(.75)}28%{opacity:1;transform:scale(1.04)}100%{opacity:.2;transform:scale(1.18)}}
@keyframes microReadAuraV55{from{opacity:.18;filter:blur(0)}to{opacity:.5;filter:blur(2px)}}
@keyframes microReadCheckPopV55{0%{opacity:.15;transform:scale(.55) rotate(-12deg)}72%{opacity:1;transform:scale(1.09) rotate(2deg)}100%{opacity:1;transform:scale(1) rotate(0)}}
@keyframes microReadCheckGlowV55{from{box-shadow:0 0 20px rgba(255,83,104,.42),0 0 42px rgba(255,255,255,.08),inset 0 0 16px rgba(255,220,225,.12)}to{box-shadow:0 0 28px rgba(255,83,104,.72),0 0 62px rgba(255,215,221,.2),inset 0 0 22px rgba(255,230,234,.2)}}
@keyframes microReadSweepV55{0%{left:-70%;opacity:0}20%{opacity:.9}100%{left:135%;opacity:0}}
@keyframes microReadRingV55{0%{opacity:.8;transform:scale(.56)}100%{opacity:0;transform:scale(1.62)}}
@keyframes microReadSparkV55{0%{opacity:0;transform:translate(-50%,-50%) rotate(calc(var(--micro-spark) * 30deg)) translateY(-26px) scaleY(.1)}35%{opacity:1}100%{opacity:0;transform:translate(-50%,-50%) rotate(calc(var(--micro-spark) * 30deg)) translateY(-53px) scaleY(1)}}
@media(prefers-reduced-motion:reduce){.micro-intro-chevron svg{transition:none!important}.micro-read-celebration *{animation:none!important}.micro-read-light-flash{opacity:.32!important}.micro-read-icon-stage .read-check{opacity:1!important;transform:none!important}}


/* ============================================================
   v5.7 · MICRO / PORTALES / USER
   ============================================================ */
.micro-intro-panel{cursor:pointer!important;user-select:none;outline:none}
.micro-intro-panel:focus-visible{box-shadow:inset 0 0 0 1px rgba(226,111,124,.6),0 0 0 2px rgba(226,111,124,.12)}
.micro-intro-panel .micro-intro-toggle{pointer-events:none!important}
.micro-exclusive-lead{white-space:nowrap!important;max-width:none!important;font-size:clamp(8px,2.7vw,11px)!important;letter-spacing:-.01em!important;margin-bottom:5px!important}
.micro-app-name{color:#fff4f5!important;font-size:clamp(14px,4vw,18px)!important;letter-spacing:.075em!important;text-shadow:0 0 18px rgba(255,76,94,.2)!important;margin:3px auto 7px!important}
.micro-app-icon{display:block!important;width:clamp(58px,18vw,82px)!important;height:auto!important;aspect-ratio:1!important;object-fit:contain!important;margin:4px auto 8px!important;border-radius:18%!important;filter:drop-shadow(0 0 14px rgba(220,54,72,.16))}
.micro-exclusive-final{margin-top:4px!important;color:#ffd7d9!important}
.portal-btn.is-coming{cursor:default!important;filter:saturate(.42) brightness(.68)!important;opacity:.76!important}
.portal-btn.is-coming:hover{transform:none!important}
.user-hero-readcount{margin-top:4px;color:#fff;font:700 8px/1.1 Oxanium,sans-serif;letter-spacing:.065em;text-transform:none;white-space:nowrap}
.user-hero-readcount strong{font:inherit;color:#fff;font-variant-numeric:tabular-nums}
@media(max-width:390px){.micro-exclusive-lead{font-size:7.7px!important}.user-hero-readcount{font-size:7.5px}}

/* v5.7 · MICRO icon highlight + USER read counter */
.micro-app-icon{animation:microAppIconHighlight 2.8s ease-in-out infinite;will-change:transform,filter}
@keyframes microAppIconHighlight{0%,100%{transform:scale(1);filter:drop-shadow(0 0 10px rgba(220,54,72,.18)) brightness(1)}45%{transform:scale(1.045);filter:drop-shadow(0 0 12px rgba(255,255,255,.20)) drop-shadow(0 0 22px rgba(238,55,76,.62)) brightness(1.2)}58%{transform:scale(1.025);filter:drop-shadow(0 0 9px rgba(255,180,190,.22)) drop-shadow(0 0 15px rgba(238,55,76,.40)) brightness(1.1)}}
.user-hero-readcount strong{font-size:17px!important;line-height:.92!important;font-weight:900!important;letter-spacing:0!important;vertical-align:-1px}
@media(prefers-reduced-motion:reduce){.micro-app-icon{animation:none!important}}


/* ============================================================
   v5.8 · GAMES
   Catálogo, ficha y GAME PLAYER embebido / Full Screen.
   ============================================================ */
.games-section{padding-bottom:125px}.games-hero{border:1px solid #5b2451;background:radial-gradient(circle at 78% 12%,rgba(255,141,233,.12),transparent 34%),linear-gradient(180deg,#160b15,#090809);border-radius:16px;padding:18px;text-align:center;margin-bottom:10px}.games-hero>div{width:76px;height:62px;margin:0 auto 3px;color:#ff8de9}.games-hero .portal-custom-svg{width:100%;height:100%}.games-hero>span{display:block;font:800 8px Oxanium,sans-serif;letter-spacing:.11em;color:#c686bb}.games-hero h1{font:900 clamp(31px,10vw,48px)/1 Oxanium,sans-serif;color:#ffd5f6;letter-spacing:.045em;margin:6px 0 9px}.games-hero p{font-size:10px;line-height:1.55;color:#aa879f;max-width:540px;margin:0 auto}.games-summary{display:flex;align-items:baseline;justify-content:center;gap:7px;border:1px solid #3b2637;background:#0d0a0d;border-radius:11px;padding:9px;margin:9px 0 12px}.games-summary strong{font:900 22px Oxanium,sans-serif;color:#fff}.games-summary span{font:800 7px Oxanium,sans-serif;letter-spacing:.08em;color:#bf8eb4}.games-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.game-card{padding:0;border:1px solid #40283b;background:#0d090c;color:#fff;border-radius:13px;overflow:hidden;text-align:left;cursor:pointer;min-width:0}.game-card>img,.game-card-placeholder{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;background:#070507}.game-card-placeholder{display:grid;place-items:center;font:900 22px Oxanium,sans-serif;color:#8e4b82}.game-card-copy{padding:10px;display:grid;gap:4px}.game-card-copy>span{font:800 7px Oxanium,sans-serif;color:#dc78c8;letter-spacing:.08em}.game-card-copy h2{font-size:14px;line-height:1.15;margin:0;color:#fff}.game-card-copy small{font:800 7px Oxanium,sans-serif;color:#c3a0ba}.game-card-copy em{font:normal 7px/1.35 Oxanium,sans-serif;color:#8c7185;font-style:normal;margin-top:3px}.game-card:active{transform:scale(.985)}
@media(min-width:700px){.games-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.game-detail{padding-bottom:125px}.game-detail-head{border:1px solid #4e2948;border-radius:16px;overflow:hidden;background:#0d090c}.game-detail-cover{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;background:#050505}.game-detail-copy{padding:14px}.game-detail-copy>span{font:800 8px Oxanium,sans-serif;letter-spacing:.09em;color:#e582d4}.game-detail-copy h1{font:900 clamp(27px,8vw,42px)/1.04 Oxanium,sans-serif;color:#fff;margin:6px 0 7px}.game-detail-copy>small{color:#92798d;font-size:8px}.game-badges{display:flex;flex-wrap:wrap;gap:5px;margin-top:11px}.game-badges b{border:1px solid #6a3761;background:#1d0d1a;color:#f0b4e4;border-radius:999px;padding:6px 8px;font:800 7px Oxanium,sans-serif}.game-description{margin:15px 4px 0;color:#d0bbc9;font-size:12px;line-height:1.58}.game-instructions{margin:14px 0 0;border:1px solid #342330;background:#0c090b;border-radius:12px;padding:12px}.game-instructions strong{font:800 8px Oxanium,sans-serif;color:#e38bd3;letter-spacing:.08em}.game-instructions p{font-size:10px;line-height:1.55;color:#a98f9f;margin:7px 0 0}.game-actions{margin:14px 0}.game-play-btn{width:100%;min-height:52px;border:1px solid #d85fc2;background:linear-gradient(180deg,#6d205f,#3b1235);color:#fff;border-radius:12px;font:900 12px Oxanium,sans-serif;letter-spacing:.08em;box-shadow:0 0 24px rgba(255,96,224,.12)}.game-related-story{border-top:1px solid #3a2735;padding-top:15px;margin-top:15px}.game-related-story .eyebrow{color:#c07daf}.game-related-story button{width:100%;display:grid;grid-template-columns:58px 1fr auto;align-items:center;gap:10px;border:1px solid #382633;background:#0d090c;color:#fff;border-radius:11px;padding:8px;text-align:left}.game-related-story img{width:58px;aspect-ratio:2/3;object-fit:cover;border-radius:6px}.game-related-story span{display:grid;gap:3px}.game-related-story b{font:800 7px Oxanium,sans-serif;color:#d879c6}.game-related-story strong{font-size:12px}.game-related-story em{font:normal 28px sans-serif;color:#c16eb3}
.game-play-shell{position:fixed;inset:0;z-index:9000;background:#000;display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:100vw;height:100dvh;overflow:hidden}.game-play-toolbar{height:auto;min-height:50px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:7px;align-items:center;padding:max(7px,env(safe-area-inset-top)) 8px 7px;background:#090709;border-bottom:1px solid #44233e}.game-play-toolbar button{min-height:36px;border:1px solid #5c3455;background:#170d15;color:#f6d3ee;border-radius:8px;padding:0 10px;font:800 8px Oxanium,sans-serif}.game-play-toolbar strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center;font:800 10px Oxanium,sans-serif;color:#fff}.game-frame-wrap{position:relative;min-height:0;background:#000;overflow:hidden}.game-frame-wrap iframe{display:block;width:100%;height:100%;border:0;background:#000}.game-frame-loading{position:absolute;inset:0;display:grid;place-items:center;z-index:2;background:#050505;color:#c784bb;font:800 9px Oxanium,sans-serif;letter-spacing:.08em;pointer-events:none}.game-frame-loading.hidden{display:none}.game-play-hint{text-align:center;padding:5px 8px max(5px,env(safe-area-inset-bottom));background:#090709;border-top:1px solid #2f202c;color:#886a80;font:700 7px Oxanium,sans-serif;letter-spacing:.05em}.game-play-shell:fullscreen{width:100%;height:100%;inset:0}.game-play-shell.game-pseudo-fullscreen{inset:0}.game-play-shell.prefers-landscape .game-play-hint:after{content:' · Si el juego lo requiere, gira el dispositivo.'}.game-play-shell.prefers-portrait .game-play-hint:after{content:' · Mantén el dispositivo en vertical.'}
@media(max-width:430px){.game-play-toolbar{grid-template-columns:auto 1fr auto}.game-play-toolbar button{font-size:7px;padding:0 7px}.game-play-toolbar strong{font-size:8px}.game-play-hint{font-size:6.5px}}


/* ============================================================
   v5.9 · GAMES refinement + MICRO/GAMES 3-column entry motion
   ============================================================ */
.micro-grid,.games-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:7px!important}
@keyframes sectionEntryV59{0%{opacity:0;transform:translateY(13px) scale(.975);filter:blur(2px)}100%{opacity:1;transform:none;filter:none}}
.section-entry-page .section-entry-block,.section-entry-page .section-entry-item,.micro-section .micro-title,.micro-section .micro-stats,.micro-section .micro-filters,.micro-section .micro-card{opacity:0;animation:sectionEntryV59 .46s ease-out forwards}
.section-entry-page .section-entry-block:nth-child(1),.micro-section .micro-title{animation-delay:.02s}.section-entry-page .section-entry-block:nth-child(2),.micro-section .micro-stats{animation-delay:.09s}.micro-section .micro-filters{animation-delay:.16s}
.section-entry-page .section-entry-item{animation-delay:calc(.16s + (var(--entry-i,0) * .055s))}.micro-section .micro-card:nth-child(1){animation-delay:.20s}.micro-section .micro-card:nth-child(2){animation-delay:.255s}.micro-section .micro-card:nth-child(3){animation-delay:.31s}.micro-section .micro-card:nth-child(4){animation-delay:.365s}.micro-section .micro-card:nth-child(5){animation-delay:.42s}.micro-section .micro-card:nth-child(6){animation-delay:.475s}.micro-section .micro-card:nth-child(n+7){animation-delay:.52s}
.games-hero{position:relative!important;padding:0!important;overflow:hidden!important;min-height:82px!important;display:grid!important;place-items:end center!important;background:linear-gradient(180deg,#160b15,#090809)!important}
.games-hero.has-image{min-height:0!important;display:block!important}
.games-hero-image{position:relative!important;display:block!important;width:100%!important;height:auto!important;max-width:none!important;object-fit:contain!important;object-position:center!important;background:#050405!important}
.games-hero p{position:absolute!important;left:0!important;right:0!important;bottom:0!important;margin:0!important;padding:12px 14px!important;max-width:none!important;min-height:42px!important;display:grid!important;place-items:center!important;background:linear-gradient(180deg,rgba(4,3,4,0),rgba(4,3,4,.9) 36%,rgba(4,3,4,.96))!important;color:#f0d7e9!important;font-size:9px!important;line-height:1.45!important;text-align:center!important;text-shadow:0 1px 3px #000!important}
.games-hero:not(.has-image) p{position:relative!important;background:transparent!important;padding:18px!important}
.games-summary{padding:11px 8px!important;gap:9px!important}.games-summary strong{font-size:27px!important}.games-summary span{font-size:19px!important;line-height:1!important;letter-spacing:.025em!important;color:#d9b6d2!important}
.game-card>img,.game-card-placeholder{aspect-ratio:2/3!important;object-fit:cover!important}.game-card-copy{padding:6px!important;gap:5px!important}.game-card-copy>span{font-size:6.5px!important}.game-card-copy h2{display:block!important;margin:0!important;font-size:9px!important;line-height:1.15!important;color:#fff!important}
.game-device-badge{display:flex;align-items:center;gap:10px;border:1px solid #633457;background:#160c14;color:#f6dcf0;border-radius:11px;padding:9px 10px;margin-top:10px}.game-device-badge.compact{gap:4px;margin:0;padding:5px 6px;border-radius:8px}.game-device-icons{display:flex;align-items:center;gap:5px;flex:0 0 auto}.game-device-icons i{position:relative;display:grid;place-items:center;color:#ff9deb}.game-device-icons svg{display:block;width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.7}.game-device-phone svg{width:15px;height:24px}.game-device-phone.is-disabled{color:#754054;opacity:.8}.game-device-phone b{position:absolute;inset:auto -3px -2px auto;color:#ff596e;font:900 15px/1 Arial,sans-serif;text-shadow:0 0 5px #000}.game-device-copy{display:grid;gap:2px;min-width:0}.game-device-copy strong{font:900 9px/1.15 Oxanium,sans-serif;color:#fff}.game-device-copy small{font:700 7px/1.3 Oxanium,sans-serif;color:#c39ab8}.game-device-badge.desktop-only{border-color:#7e3343;background:#1b0c10}.game-device-badge.desktop-only .game-device-copy strong{color:#ffbcc6}.game-device-badge.mobile-desktop{border-color:#326a55;background:#091610}.game-device-badge.mobile-desktop .game-device-icons i{color:#7de1af}.game-device-badge.desktop-recommended{border-color:#725828;background:#171208}.game-device-badge.desktop-recommended .game-device-icons i{color:#ffd27e}.game-device-badge.compact .game-device-icons svg{width:15px;height:15px}.game-device-badge.compact .game-device-phone svg{width:10px;height:16px}.game-device-badge.compact .game-device-copy strong{font-size:5.7px}.game-device-badge.compact .game-device-copy small{display:none}
.game-detail{padding-top:0!important}.game-detail-poster{margin:0 calc(0px - var(--reader-pad));background:#030303;border-bottom:1px solid #40283b}.game-detail-cover{display:block!important;width:100%!important;height:auto!important;aspect-ratio:2/3!important;object-fit:contain!important;object-position:center!important;background:#050505!important}.game-detail-info{margin:0 calc(0px - var(--reader-pad));padding:13px var(--reader-pad) 15px;border-bottom:1px solid #4e2948;background:linear-gradient(180deg,#130a12,#090709)}.game-detail-topline{display:flex;justify-content:space-between;align-items:center;gap:8px}.game-detail-topline>span{font:800 8px Oxanium,sans-serif;letter-spacing:.09em;color:#e582d4}.game-detail-topline>small{font-size:8px;color:#90798b}.game-detail-info .game-device-badge{margin:11px 0 0}.game-detail-info .game-badges{margin-top:8px}.game-description{margin:14px 0 0!important;color:#d0bbc9!important;font-size:12px!important;line-height:1.58!important;white-space:normal!important}.game-description br{content:""}.game-description br+br{display:block;margin-top:.65em}.game-related-story,.game-related-saga{border-top:1px solid #3a2735;padding-top:15px;margin-top:15px}.game-related-story .eyebrow,.game-related-saga .eyebrow{color:#c07daf}.game-related-story button,.game-related-saga button{width:100%;display:grid;grid-template-columns:58px 1fr auto;align-items:center;gap:10px;border:1px solid #382633;background:#0d090c;color:#fff;border-radius:11px;padding:8px;text-align:left}.game-related-story img{width:58px;aspect-ratio:2/3;object-fit:cover;border-radius:6px}.game-related-saga img,.game-related-saga-placeholder{width:58px;aspect-ratio:16/9;object-fit:cover;border-radius:6px;background:#160d15;display:grid;place-items:center;font:800 7px Oxanium,sans-serif;color:#c684b8}.game-related-story span,.game-related-saga span{display:grid;gap:3px;min-width:0}.game-related-story b,.game-related-saga b{font:800 7px Oxanium,sans-serif;color:#d879c6}.game-related-story strong,.game-related-saga strong{font-size:12px;overflow:hidden;text-overflow:ellipsis}.game-related-story em,.game-related-saga em{font:normal 28px sans-serif;color:#c16eb3}.game-back-btn{width:100%;min-height:45px;margin-top:15px;border:1px solid #493343;background:#100b0f;color:#e3c5da;border-radius:11px;font:900 9px Oxanium,sans-serif;letter-spacing:.08em}
.game-play-shell{z-index:2147483000!important;isolation:isolate!important;overscroll-behavior:none!important}.game-frame-wrap{contain:strict!important}.game-frame-wrap iframe{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;overscroll-behavior:contain!important}
@media(max-width:430px){.games-summary span{font-size:16px!important}.games-summary strong{font-size:25px!important}.game-device-badge{padding:8px}.game-device-copy strong{font-size:8px}.game-device-copy small{font-size:6px}.micro-grid,.games-grid{gap:6px!important}}
@media(prefers-reduced-motion:reduce){.section-entry-page .section-entry-block,.section-entry-page .section-entry-item,.micro-section .micro-title,.micro-section .micro-stats,.micro-section .micro-filters,.micro-section .micro-card{opacity:1!important;animation:none!important}}

/* ============================================================
   v5.10 · DESTACADO HOME + GAMES compatibility polish
   ============================================================ */
.home-highlight{
  position:relative;overflow:hidden;margin:16px 0 18px;border:1px solid rgba(255,255,255,.16);
  border-radius:18px;min-height:170px;background:#090a0d;cursor:pointer;isolation:isolate;
  display:flex;align-items:flex-end;box-shadow:0 0 0 1px rgba(255,255,255,.025) inset;
}
.home-highlight:focus-visible{outline:2px solid rgba(255,221,132,.9);outline-offset:3px}
.home-highlight-media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-3}
.home-highlight-shade{position:absolute;inset:0;z-index:-2;background:linear-gradient(180deg,rgba(0,0,0,.12),rgba(0,0,0,.38) 38%,rgba(0,0,0,.92) 100%)}
.home-highlight-copy{width:100%;padding:20px 18px 18px;box-sizing:border-box}
.home-highlight-copy .eyebrow{opacity:.72;margin-bottom:5px}
.home-highlight-copy h2{margin:0 0 7px;font-size:clamp(22px,7vw,34px);line-height:1;text-transform:uppercase}
.home-highlight-copy p{margin:0 0 12px;max-width:44rem;line-height:1.42;color:rgba(255,255,255,.88)}
.home-highlight-badge{position:absolute;top:12px;right:12px;padding:6px 9px;border-radius:999px;background:#fff;color:#080808;font-weight:900;font-size:11px;letter-spacing:.09em;box-shadow:0 0 18px rgba(255,255,255,.28)}
.home-highlight-cta{display:inline-flex;align-items:center;min-height:34px;font-weight:900;letter-spacing:.08em;font-size:12px}

.games-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.games-summary{display:flex!important;align-items:center!important;justify-content:center!important;min-height:102px!important;text-align:center!important}
.games-summary strong,.games-summary span{align-self:center!important}
.game-description{text-align:justify!important;text-justify:inter-word;hyphens:auto;white-space:normal}
.game-description p,.game-description div{margin:0 0 .8em}.game-description p:last-child,.game-description div:last-child{margin-bottom:0}
.game-back-btn-top{position:relative;overflow:hidden;margin:0 0 12px!important;width:100%;z-index:2}
.game-back-btn-top .game-back-sweep{position:absolute;top:0;bottom:0;width:28%;left:-38%;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(255,255,255,.06),rgba(255,255,255,.68),rgba(255,255,255,.08),transparent);transform:skewX(-18deg);animation:gameBackSweep 2.4s ease-in-out infinite}
@keyframes gameBackSweep{0%,18%{left:-42%;opacity:0}28%{opacity:1}62%{left:118%;opacity:.95}70%,100%{left:118%;opacity:0}}
@media (prefers-reduced-motion:reduce){.game-back-btn-top .game-back-sweep{animation:none;display:none}}
.micro-home-highlight{position:relative;outline:2px solid rgba(255,74,74,.8);box-shadow:0 0 24px rgba(255,45,45,.35)}
.micro-home-new{position:absolute;top:7px;left:7px;z-index:5;padding:4px 7px;border-radius:999px;background:#ff2a2a;color:#fff;font-size:10px;font-weight:900;letter-spacing:.08em;box-shadow:0 0 13px rgba(255,42,42,.55)}


/* ============================================================
   v5.11 · HOME highlight + GAMES visual refinement
   ============================================================ */
.home-highlight{
  width:calc(100% - (var(--reader-pad) * 2))!important;
  max-width:calc(100% - (var(--reader-pad) * 2))!important;
  margin:16px var(--reader-pad) 18px!important;
  box-sizing:border-box!important;
}
.home-highlight-copy h2{font-size:clamp(17px,5vw,25px)!important;line-height:1.05!important;margin-top:0!important}
.home-highlight-badge{
  overflow:hidden;transform-origin:center;will-change:transform,filter,box-shadow;
  animation:homeHighlightBadgePulseV511 2s ease-in-out infinite;
}
.home-highlight-badge::after{content:"";position:absolute;inset:-35% auto -35% -65%;width:46%;background:linear-gradient(105deg,transparent,rgba(255,255,255,.18),rgba(255,255,255,.96),rgba(255,255,255,.18),transparent);transform:skewX(-18deg);animation:homeHighlightBadgeSweepV511 1.35s ease-in-out infinite;pointer-events:none}
@keyframes homeHighlightBadgePulseV511{0%,100%{transform:scale(1);filter:brightness(1);box-shadow:0 0 12px rgba(255,255,255,.26)}50%{transform:scale(1.2);filter:brightness(1.32);box-shadow:0 0 8px #fff,0 0 24px rgba(255,255,255,.72),0 0 40px rgba(255,221,132,.32)}}
@keyframes homeHighlightBadgeSweepV511{0%,14%{left:-65%;opacity:0}25%{opacity:1}68%{left:130%;opacity:.95}76%,100%{left:130%;opacity:0}}

/* GAMES catalog: two columns with custom cartridge/list image. */
.games-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}
.game-card>img{width:100%!important;aspect-ratio:1470/1635!important;object-fit:contain!important;object-position:center!important;background:#050405!important}

/* Compatibility indicators: approximately x2 versus v5.10. */
.game-device-badge{gap:18px!important;padding:17px 18px!important;border-radius:14px!important;flex-wrap:nowrap!important}
.game-device-icons{gap:9px!important}
.game-device-icons svg{width:48px!important;height:48px!important;stroke-width:1.7!important}
.game-device-phone svg{width:30px!important;height:48px!important}
.game-device-phone b{font-size:26px!important;right:-5px!important;bottom:-3px!important}
.game-device-copy strong{font-size:18px!important;line-height:1.12!important}
.game-device-copy small{font-size:14px!important;line-height:1.28!important;margin-top:3px!important}
.game-device-badge.compact{gap:8px!important;padding:9px 10px!important;border-radius:10px!important;margin:0!important;width:100%!important;box-sizing:border-box!important;min-width:0!important}.game-device-badge.compact .game-device-copy{min-width:0!important}.game-device-badge.compact .game-device-copy strong{overflow-wrap:anywhere!important}
.game-device-badge.compact .game-device-icons{gap:5px!important}
.game-device-badge.compact .game-device-icons svg{width:30px!important;height:30px!important}
.game-device-badge.compact .game-device-phone svg{width:20px!important;height:32px!important}
.game-device-badge.compact .game-device-phone b{font-size:18px!important}
.game-device-badge.compact .game-device-copy strong{font-size:11.5px!important;line-height:1.12!important}
.game-device-badge.compact .game-device-copy small{display:none!important}

/* GAME detail scale / spacing. */
.game-detail{padding-top:12px!important}
.game-back-btn-top{margin-top:0!important;margin-bottom:12px!important}
.game-detail-topline>span{font-size:16px!important;line-height:1.1!important}
.game-detail-topline>small{font-size:9px!important}
.game-detail-info .game-badges{display:flex!important;flex-wrap:wrap!important;gap:8px!important;margin-top:11px!important}
.game-detail-info .game-badges b{font:900 13px/1.15 Oxanium,sans-serif!important;padding:10px 12px!important;border-radius:999px!important}
.game-orientation-badge{border-color:#b85aa7!important;background:#281020!important;color:#ffd7f7!important;box-shadow:0 0 17px rgba(255,112,226,.16)!important}
.game-version-badge{border-color:#46505a!important;background:#10151a!important;color:#d9e4eb!important}
.game-description{font-size:13px!important;line-height:1.62!important}
.game-play-btn{font-size:24px!important;min-height:62px!important;letter-spacing:.075em!important}

@media(max-width:430px){
  .game-device-badge{padding:15px 14px!important;gap:13px!important}
  .game-device-copy strong{font-size:16px!important}
  .game-device-copy small{font-size:12px!important}
  .game-device-badge.compact{padding:8px!important;gap:6px!important}
  .game-device-badge.compact .game-device-copy strong{font-size:10.5px!important}
  .games-grid{gap:8px!important}
}
@media(prefers-reduced-motion:reduce){.home-highlight-badge{animation:none!important}.home-highlight-badge::after{display:none!important}}


/* ============================================================
   v5.12 · HOME compacta + GAMES filtros/glitch/screenshots
   ============================================================ */
/* Destacado HOME: menos oscurecimiento para que el multimedia tenga más presencia. */
.home-highlight-shade{background:linear-gradient(180deg,rgba(0,0,0,.04),rgba(0,0,0,.14) 42%,rgba(0,0,0,.40) 100%)!important}

/* CONTINUAR LEYENDO: título limpio y aproximadamente x2. */
.home-continue-copy strong{font-size:clamp(25px,6.8vw,30px)!important;line-height:1.02!important}

/* PUBLICADAS ANTERIORMENTE: tres posters compactos + tiempo en caja inferior. */
.home-previous-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 16px}.home-prev-story{min-width:0;cursor:pointer;border:0;background:transparent;color:#fff;padding:0;text-align:left}.home-prev-poster{position:relative;width:100%;aspect-ratio:2/3;border:1px solid #303236;border-radius:10px 10px 0 0;overflow:hidden;background:#08090a}.home-prev-poster>img{display:block;width:100%;height:100%;object-fit:cover}.home-prev-placeholder{display:grid;place-items:center;width:100%;height:100%;font:900 18px Oxanium,sans-serif;color:#687176}.home-prev-readtime{border:1px solid #303236;border-top:0;border-radius:0 0 10px 10px;background:#0c0d0f;color:#e9ecee;text-align:center;padding:7px 3px;font:900 9px/1 Oxanium,sans-serif;letter-spacing:.06em}.home-prev-story:active{transform:scale(.985)}

/* GAMES: cabecera exclusivamente visual + FX 8-bit/glitch. */
.games-hero{position:relative!important;padding:0!important;min-height:0!important;overflow:hidden!important;background:#050405!important}.games-hero.has-image{border-color:#5b2451!important}.games-hero-image{display:block!important;width:100%!important;height:auto!important;max-height:none!important;object-fit:contain!important;position:relative!important;z-index:1;transform-origin:center;animation:gamesHero8BitV512 4.2s steps(1,end) infinite}.games-hero::before,.games-hero::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:3}.games-hero::before{background:repeating-linear-gradient(0deg,rgba(255,255,255,.03) 0 1px,transparent 1px 4px);mix-blend-mode:screen;opacity:.35}.games-hero::after{background:linear-gradient(90deg,transparent 0 31%,rgba(255,0,190,.18) 32% 34%,transparent 35% 67%,rgba(0,220,255,.15) 68% 70%,transparent 71%);animation:gamesHeroScanV512 2.8s steps(7,end) infinite}.games-hero-pixel-fx{position:absolute;inset:0;z-index:4;pointer-events:none;background:repeating-linear-gradient(90deg,transparent 0 14px,rgba(255,255,255,.018) 14px 15px);animation:gamesHeroPixelV512 3.4s steps(6,end) infinite}
@keyframes gamesHero8BitV512{0%,88%,100%{transform:translate(0,0) scale(1);filter:none}89%{transform:translate(-2px,1px) scale(1.005);filter:contrast(1.16) saturate(1.15)}91%{transform:translate(2px,-1px) scale(1.003);filter:hue-rotate(5deg) contrast(1.2)}93%{transform:translate(-1px,0);filter:contrast(1.08)}95%{transform:none;filter:none}}
@keyframes gamesHeroScanV512{0%,76%,100%{transform:translateX(-100%);opacity:0}78%{opacity:.8}92%{transform:translateX(100%);opacity:.55}94%{opacity:0}}
@keyframes gamesHeroPixelV512{0%,82%,100%{clip-path:inset(0 0 0 0);transform:none;opacity:.12}84%{clip-path:inset(18% 0 61% 0);transform:translateX(4px);opacity:.65}87%{clip-path:inset(56% 0 24% 0);transform:translateX(-5px);opacity:.5}90%{clip-path:inset(38% 0 44% 0);transform:translateX(2px);opacity:.4}92%{clip-path:inset(0);transform:none;opacity:.12}}
.games-intro-box{border:1px solid #3f2939;background:#0d090c;border-radius:13px;padding:13px 15px;margin:10px 0;color:#bca3b5;text-align:center;min-height:44px;display:grid;place-items:center}.games-intro-box p{margin:0;font-size:10px;line-height:1.55}
.games-summary{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:10px!important;align-items:center!important;justify-content:stretch!important;padding:10px 12px!important}.games-summary-count{display:flex;align-items:center;justify-content:center;gap:8px;min-width:0}.games-filter-icons{display:flex;align-items:center;gap:5px}.games-filter-icons button{width:48px;min-height:54px;border:1px solid #3b3038;background:#0b090b;color:#7f6979;border-radius:9px;padding:5px 3px;display:grid;place-items:center;gap:2px;cursor:pointer}.games-filter-icons button svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.7}.games-filter-icons button small{font:900 6px/1 Oxanium,sans-serif;letter-spacing:.04em}.games-filter-icons button.active{border-color:#ff8de9;color:#ffd4f7;background:#261020;box-shadow:0 0 13px rgba(255,141,233,.13)}
.game-card-copy>span{font-size:19px!important;line-height:1!important;color:#f29bdf!important;letter-spacing:.02em!important}.game-card-copy h2{font-size:18px!important;line-height:1.08!important;margin-top:2px!important}.game-card-copy{gap:7px!important;padding:9px!important}
.game-screenshots{display:grid;gap:10px;margin-top:14px}.game-screenshot{display:block;width:100%;border:1px solid #382b35;background:#050505;border-radius:10px;padding:0;overflow:hidden;cursor:zoom-in}.game-screenshot img{display:block;width:100%;height:auto;max-height:75vh;object-fit:contain;background:#030303}
.games-filter-empty{grid-column:1/-1}
@media(max-width:430px){.games-summary{grid-template-columns:minmax(0,1fr) auto!important;gap:6px!important;padding:8px!important}.games-summary-count{gap:5px!important;flex-direction:column}.games-filter-icons{gap:3px}.games-filter-icons button{width:38px;min-height:48px}.games-filter-icons button svg{width:20px;height:20px}.games-filter-icons button small{font-size:5px}.home-previous-grid{gap:5px}.home-prev-readtime{font-size:7px;padding:6px 2px}}
@media(prefers-reduced-motion:reduce){.games-hero-image,.games-hero::after,.games-hero-pixel-fx{animation:none!important}}


/* =========================================================
   DISTURBING STORIES APP v5.14 · IMPORTER FEEDBACK / DESTACADOS
   ========================================================= */
/* DESTACADO TEMPORAL: imagen 100% visible y velo negro máximo 20%. */
.home-highlight-media{opacity:1!important}
.home-highlight-shade{background:linear-gradient(180deg,rgba(0,0,0,.015),rgba(0,0,0,.07) 42%,rgba(0,0,0,.20) 100%)!important}
/* HOME · CONTINUAR LEYENDO: título ligeramente más compacto que v5.12. */
.home-continue-copy strong{font-size:clamp(21px,5.8vw,26px)!important;line-height:1.04!important}
/* GAMES · texto de cabecera respeta exactamente saltos introducidos en Importer. */
.games-intro-box p{white-space:pre-wrap!important}
/* USER · avatares siempre 4 columnas; con 9+ se muestran dos filas + tercera fila de apertura. */
.user-avatar-section .avatar-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:8px!important}
.user-avatar-section:not(.avatars-expanded) .avatar-choice.avatar-collapse-extra{display:none!important}
.avatar-expand-row{grid-column:1/-1;min-height:52px;display:grid;place-items:center;border:1px solid rgba(216,250,255,.16);border-radius:10px;background:rgba(216,250,255,.025);margin-top:2px;overflow:hidden}
.avatar-expand-toggle{width:100%;min-height:48px;border:0;background:transparent;color:#d8faff;display:grid;place-items:center;cursor:pointer}
.avatar-expand-toggle svg{width:34px;height:34px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;transition:transform .22s ease,filter .22s ease;filter:drop-shadow(0 0 7px rgba(216,250,255,.16))}
.user-avatar-section.avatars-expanded .avatar-expand-toggle svg{transform:rotate(180deg)}
.user-avatar-loop{width:100%;margin:14px 0 16px;overflow:hidden;position:relative;z-index:1;pointer-events:none}
.user-avatar-loop video{display:block;width:100%;height:auto;max-width:100%;object-fit:contain}
.user-page.user-page-reveal-ready>.user-avatar-loop{opacity:0;transform:translateY(16px);filter:blur(3px)}
.user-page.user-page-reveal-in>.user-avatar-loop{animation:userBoxInV415 .42s cubic-bezier(.2,.82,.2,1) both;animation-delay:calc(var(--user-box-i,0) * .09s)}
@media(max-width:460px){.user-avatar-section .avatar-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:6px!important}.avatar-expand-row{min-height:46px}.avatar-expand-toggle{min-height:44px}.avatar-expand-toggle svg{width:30px;height:30px}}
@media(prefers-reduced-motion:reduce){.avatar-expand-toggle svg{transition:none!important}.user-page.user-page-reveal-ready>.user-avatar-loop{opacity:1!important;transform:none!important;filter:none!important;animation:none!important}}


/* ============================================================
   v5.15 · HOME CTA + selección catálogo + MICRO typography
   ============================================================ */
/* HOME · última publicación: LEER con presencia x2. */
.hero.latest-storm #openLatest{font-size:24px!important;line-height:1!important;min-height:62px!important}
/* HOME · TU PROGRESO: acceso centrado dentro de la caja. */
.home-progress .link-btn{width:100%!important;margin:10px auto 0!important;text-align:center!important;justify-content:center!important}
/* HOME · DESTACADO TEMPORAL: CTA anclado visualmente a la esquina inferior derecha. */
.home-highlight-copy{padding-bottom:56px!important}.home-highlight-cta{position:absolute!important;right:18px!important;bottom:14px!important;display:flex!important;width:max-content!important;margin:0!important;justify-content:flex-end!important;text-align:right!important}
/* MICRO · catálogo: solo #XXX y título x2. */
.micro-card-copy .story-number{font-size:9px!important;line-height:1!important;color:#c45c67!important}
.micro-card-copy h3{font-size:26px!important;line-height:1.02!important;margin:5px 0 4px!important;overflow-wrap:anywhere}
/* Selección inequívoca antes de entrar en GAME/MICRO. */
.game-card,.micro-card{position:relative;isolation:isolate;transition:transform .18s ease,filter .18s ease,border-color .18s ease,box-shadow .18s ease}
.game-card::after,.micro-card::after{content:"";position:absolute;z-index:12;inset:-1px;pointer-events:none;opacity:0;transform:translateX(-120%);background:linear-gradient(100deg,transparent 0 28%,rgba(255,255,255,.10) 39%,rgba(255,255,255,.88) 50%,rgba(255,255,255,.12) 61%,transparent 72% 100%)}
.game-card.is-selecting{transform:scale(.965)!important;filter:brightness(1.28)!important;border-color:#ff9bea!important;box-shadow:0 0 0 2px rgba(255,141,233,.20),0 0 30px rgba(255,71,216,.55)!important}
.micro-card.is-selecting{transform:scale(.965)!important;filter:brightness(1.25)!important;border-color:#ef6d79!important;box-shadow:0 0 0 2px rgba(239,109,121,.20),0 0 30px rgba(221,53,70,.55)!important}
.game-card.is-selecting::after,.micro-card.is-selecting::after{animation:catalogSelectSweepV515 .32s ease-out forwards}
@keyframes catalogSelectSweepV515{0%{opacity:0;transform:translateX(-120%)}22%{opacity:1}100%{opacity:0;transform:translateX(120%)}}
/* GAMES · texto rico de cabecera. */
.games-intro-rich{width:100%;font-size:10px;line-height:1.55;color:#bca3b5;white-space:normal}
.games-intro-rich p,.games-intro-rich div{margin:0 0 .55em}.games-intro-rich p:last-child,.games-intro-rich div:last-child{margin-bottom:0}
@media(max-width:430px){.micro-card-copy h3{font-size:22px!important}.hero.latest-storm #openLatest{font-size:22px!important}}
@media(prefers-reduced-motion:reduce){.game-card.is-selecting,.micro-card.is-selecting{transform:none!important}.game-card.is-selecting::after,.micro-card.is-selecting::after{animation:none!important;display:none!important}}

/* ========================================================================
   v5.16 · MICRO typography + selección STORY estable (sin tocar layout)
   ======================================================================== */
.micro-card-copy h3{font-size:22px!important;line-height:1.04!important}
@media(max-width:430px){.micro-card-copy h3{font-size:19px!important}}

/* La transición ya no transforma el app-shell ni eleva/recoloca la tarjeta real. */
.app-shell.story-entering{
  animation:none!important;
  transform:none!important;
  filter:none!important;
  will-change:auto!important;
}
.app-shell.story-entering::after{
  content:"";
  position:fixed;
  z-index:19990;
  inset:0;
  pointer-events:none;
  background:radial-gradient(circle at 50% 44%,rgba(255,255,255,.88) 0 3%,rgba(142,244,255,.68) 11%,rgba(72,184,224,.46) 25%,rgba(22,72,118,.28) 47%,transparent 72%)!important;
  mix-blend-mode:screen;
  animation:storySelectionFlashV516 .27s steps(5,end) 1!important;
}
.story-enter-focus{
  position:fixed;
  z-index:19991;
  pointer-events:none;
  box-sizing:border-box;
  border:2px solid rgba(237,253,255,.98);
  outline:1px solid rgba(91,214,235,.58);
  box-shadow:0 0 14px 5px rgba(91,214,235,.82),0 0 34px 12px rgba(45,125,194,.52),inset 0 0 16px rgba(255,255,255,.16);
  animation:storySelectionFocusV516 .27s steps(5,end) 1;
  contain:layout paint style;
}
.story-enter-target:not(.random-result-poster){position:static!important;z-index:auto!important;box-shadow:inherit!important;filter:none!important}
@keyframes storySelectionFlashV516{0%{opacity:0}20%{opacity:.9}40%{opacity:.16}60%{opacity:.7}80%{opacity:.13}100%{opacity:0}}
@keyframes storySelectionFocusV516{0%{opacity:0;filter:brightness(1)}20%{opacity:1;filter:brightness(1.7)}40%{opacity:.45;filter:brightness(1.1)}60%{opacity:1;filter:brightness(1.55)}80%{opacity:.55;filter:brightness(1.12)}100%{opacity:0;filter:brightness(1)}}
@media(prefers-reduced-motion:reduce){
  .app-shell.story-entering::after,.story-enter-focus{animation:none!important;display:none!important}
}

/* ========================================================================
   v5.17 · MICRO VHS + SFX UI + USER sound preference
   ======================================================================== */
/* MICRO · títulos algo más pequeños */
.micro-card-copy h3{font-size:19px!important;line-height:1.06!important}
@media(max-width:430px){.micro-card-copy h3{font-size:17px!important}}

/* MICRO · cabecera visual VHS / interferencia / iluminación */
.micro-title-media{position:relative;overflow:hidden;background:#030303;isolation:isolate}
.micro-title-media::before{content:"";position:absolute;z-index:4;inset:0;pointer-events:none;opacity:.34;background:repeating-linear-gradient(180deg,rgba(255,255,255,.035) 0 1px,transparent 1px 4px);mix-blend-mode:screen;animation:microVhsScanV517 .38s steps(2,end) infinite}
.micro-title-media::after{content:"";position:absolute;z-index:5;left:-30%;right:-30%;height:15%;top:18%;pointer-events:none;opacity:0;background:linear-gradient(180deg,transparent,rgba(255,255,255,.22),rgba(255,57,77,.13),transparent);filter:blur(.4px);animation:microVhsTrackingV517 4.6s steps(1,end) infinite}
.micro-title-logo{position:relative;z-index:1;transform:translateZ(0);filter:brightness(.96) contrast(1.06) saturate(.9) drop-shadow(0 0 0 rgba(255,68,87,0));animation:microLogoSignalV517 5.4s steps(1,end) infinite,microLogoLightV517 3.1s ease-in-out infinite}
.micro-title-vhs{position:absolute;z-index:2;inset:0;pointer-events:none;opacity:.22;background-image:linear-gradient(90deg,rgba(255,35,57,.11),transparent 18%,rgba(116,235,255,.08) 51%,transparent 78%),radial-gradient(circle at 70% 35%,rgba(255,255,255,.11),transparent 25%);mix-blend-mode:screen;animation:microVhsNoiseV517 .16s steps(2,end) infinite}
.micro-title-light{position:absolute;z-index:3;inset:-22%;pointer-events:none;opacity:.24;background:radial-gradient(ellipse at 22% 48%,rgba(255,51,74,.33),transparent 30%),radial-gradient(ellipse at 78% 52%,rgba(175,239,255,.18),transparent 26%);filter:blur(10px);mix-blend-mode:screen;animation:microHeaderGlowV517 3.8s ease-in-out infinite alternate}
@keyframes microVhsNoiseV517{0%{transform:translate(0,0);opacity:.15}25%{transform:translate(-1.2%,.5%);opacity:.28}50%{transform:translate(.8%,-.4%);opacity:.12}75%{transform:translate(-.5%,.8%);opacity:.24}100%{transform:translate(0,0);opacity:.16}}
@keyframes microVhsScanV517{0%{transform:translateY(0)}100%{transform:translateY(2px)}}
@keyframes microVhsTrackingV517{0%,79%{top:12%;opacity:0}80%{top:12%;opacity:.55}84%{top:58%;opacity:.24}87%{top:76%;opacity:0}100%{top:76%;opacity:0}}
@keyframes microLogoSignalV517{0%,7%,14%,46%,52%,82%,100%{transform:translateX(0) scale(1);clip-path:inset(0)}8%{transform:translateX(-2px);clip-path:inset(18% 0 63% 0)}9%{transform:translateX(2px);clip-path:inset(55% 0 23% 0)}10%{transform:translateX(0);clip-path:inset(0)}47%{transform:translateX(1px)}48%{transform:translateX(-1px)}49%{transform:translateX(0)}83%{transform:translateX(-2px);clip-path:inset(68% 0 10% 0)}84%{transform:translateX(0);clip-path:inset(0)}}
@keyframes microLogoLightV517{0%,100%{filter:brightness(.94) contrast(1.06) saturate(.92) drop-shadow(0 0 4px rgba(255,58,81,.08))}45%{filter:brightness(1.06) contrast(1.1) saturate(1.02) drop-shadow(0 0 18px rgba(255,58,81,.28))}52%{filter:brightness(1.16) contrast(1.14) saturate(1.05) drop-shadow(0 0 28px rgba(255,220,225,.22))}58%{filter:brightness(.98) contrast(1.08) saturate(.95) drop-shadow(0 0 9px rgba(255,58,81,.16))}}
@keyframes microHeaderGlowV517{from{opacity:.15;transform:translateX(-2%) scale(.98)}to{opacity:.43;transform:translateX(2%) scale(1.03)}}

/* USER · preferencia global de sonidos de interfaz, justo antes de todasloop.webm */
.user-sounds-panel{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;margin:14px 0 0;padding:13px 14px;border:1px solid rgba(122,125,130,.38);border-radius:13px;background:linear-gradient(180deg,rgba(20,22,25,.96),rgba(10,11,13,.98));box-shadow:inset 0 0 20px rgba(255,255,255,.015)}
.user-sounds-panel>div{min-width:0;display:grid;gap:4px}
.user-sounds-panel strong{font:800 10px/1.1 Oxanium,sans-serif;letter-spacing:.08em;color:#f4f4f4}
.user-sounds-panel small{font-size:8px;line-height:1.35;color:#85898e}
.user-sounds-toggle{min-width:62px;height:38px;border-radius:999px;border:1px solid #454a4f;background:#17191c;color:#8b9096;padding:0 12px;font:900 10px/1 Oxanium,sans-serif;letter-spacing:.08em;transition:border-color .18s ease,background .18s ease,color .18s ease,box-shadow .18s ease}
.user-sounds-toggle.is-on{border-color:#aa8643;background:linear-gradient(180deg,#2b2417,#17130d);color:#ffe4a8;box-shadow:0 0 14px rgba(199,151,60,.15),inset 0 0 10px rgba(255,211,122,.05)}
.user-sounds-toggle.is-off{border-color:#4a3135;background:#171012;color:#b27b83}
.user-sounds-toggle:focus-visible{outline:2px solid #fff;outline-offset:2px}

@media(prefers-reduced-motion:reduce){
  .micro-title-media::before,.micro-title-media::after,.micro-title-logo,.micro-title-vhs,.micro-title-light{animation:none!important}
  .micro-title-logo{filter:brightness(1.02) contrast(1.08) saturate(.96) drop-shadow(0 0 12px rgba(255,58,81,.18))}
  .micro-title-media::before{opacity:.18}
}
.user-page.user-page-reveal-ready>.user-sounds-panel{opacity:0;transform:translateY(16px);filter:blur(3px)}
.user-page.user-page-reveal-in>.user-sounds-panel{animation:userBoxInV415 .42s cubic-bezier(.2,.82,.2,1) both;animation-delay:calc(var(--user-box-i,0) * .09s)}
@media(prefers-reduced-motion:reduce){.user-page.user-page-reveal-ready>.user-sounds-panel{opacity:1!important;transform:none!important;filter:none!important;animation:none!important}}


/* ========================================================================
   v5.18 · MICRO usa el mismo FX visual de la destacada HOME + títulos refinados
   ======================================================================== */
.micro-card-copy h3{font-size:17px!important;line-height:1.07!important}
@media(max-width:430px){.micro-card-copy h3{font-size:15px!important}}

/* Sustituye por completo el FX propio v5.17 por la misma familia de HOME. */
.micro-title-media.micro-title-homefx{position:relative!important;overflow:hidden!important;isolation:isolate!important;background:#010305!important}
.micro-title-media.micro-title-homefx::before,
.micro-title-media.micro-title-homefx::after{content:"";position:absolute;inset:0!important;left:0!important;right:0!important;top:0!important;bottom:0!important;width:auto!important;height:auto!important;filter:none!important;pointer-events:none;z-index:4;opacity:0}
.micro-title-media.micro-title-homefx::before{background:repeating-linear-gradient(180deg,rgba(255,255,255,.045) 0 1px,transparent 1px 4px);mix-blend-mode:soft-light;animation:heroSurfacePulseV219 4.8s steps(1,end) infinite!important}
.micro-title-media.micro-title-homefx::after{background:linear-gradient(90deg,rgba(255,46,64,.12),transparent 26%,rgba(120,224,255,.10) 52%,transparent 78%,rgba(255,46,64,.12));mix-blend-mode:screen;animation:heroRgbSurfaceV219 4.9s steps(1,end) infinite!important}
.micro-title-media .micro-home-main{position:relative!important;z-index:2!important;display:block!important;width:100%!important;height:auto!important;max-width:none!important;object-fit:contain!important;object-position:center!important;transform-origin:center center!important;animation:homeDynamicV218 6.4s ease-in-out infinite!important;filter:brightness(.98) contrast(1.16) saturate(1.07)!important;will-change:transform,filter}
.micro-title-media .micro-home-backdrop,
.micro-title-media .micro-home-rgb{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-position:center!important;transform-origin:center center!important;pointer-events:none}
.micro-title-media .micro-home-backdrop{z-index:0!important;object-fit:cover!important;opacity:.34!important;filter:blur(14px) brightness(.44) contrast(1.16)!important;animation:homeBackdropV218 8.6s ease-in-out infinite alternate!important}
.micro-title-media .micro-home-rgb{z-index:1!important;object-fit:contain!important;opacity:0!important;mix-blend-mode:screen!important}
.micro-title-media .micro-home-rgb-red{animation:rgbRedV219 4.9s steps(1,end) infinite!important;filter:sepia(1) saturate(10) hue-rotate(312deg) brightness(.94) contrast(1.14)!important}
.micro-title-media .micro-home-rgb-cyan{animation:rgbCyanV219 4.9s .06s steps(1,end) infinite!important;filter:sepia(1) saturate(9) hue-rotate(132deg) brightness(.98) contrast(1.12)!important}
.micro-title-media .home-signal-fx{z-index:3!important}
@media(prefers-reduced-motion:reduce){
  .micro-title-media.micro-title-homefx::before,.micro-title-media.micro-title-homefx::after,
  .micro-title-media .micro-home-main,.micro-title-media .micro-home-backdrop,.micro-title-media .micro-home-rgb{animation:none!important}
  .micro-title-media .micro-home-rgb{display:none!important}
  .micro-title-media .micro-home-main{transform:none!important;filter:brightness(1) contrast(1.08)!important}
}

/* ========================================================================
   v5.22 · GAMES → LOGROS → RECOMPENSAS funcionales
   ======================================================================== */
/* Los modales de logro/recompensa deben quedar por encima del GAME PLAYER. */
.achievement-reward{z-index:2147483500!important}
.story-achievement-reward{position:fixed;z-index:2147483550;inset:0;display:grid;place-items:center;padding:max(18px,env(safe-area-inset-top)) 18px max(18px,env(safe-area-inset-bottom));background:rgba(0,2,3,.92);opacity:0;transition:opacity .2s ease;cursor:default;overflow:auto}
.story-achievement-reward.show{opacity:1}
.story-achievement-reward-flash{position:absolute;inset:0;pointer-events:none;opacity:0;background:radial-gradient(circle at 50% 42%,#fff 0 2%,rgba(105,255,212,.9) 7%,rgba(39,191,156,.36) 25%,transparent 62%)}
.story-achievement-reward.show .story-achievement-reward-flash{animation:storyAchievementFlashV519 .9s .08s ease-out both}
.story-achievement-reward-card{position:relative;width:min(88vw,420px);max-height:calc(100dvh - 36px);overflow:auto;padding:20px 20px 22px;text-align:center;border:1px solid rgba(103,226,191,.72);border-radius:16px;background:linear-gradient(180deg,rgba(13,27,25,.99),rgba(5,9,10,.995));box-shadow:0 22px 90px rgba(0,0,0,.8),0 0 44px rgba(64,214,172,.2),inset 0 0 26px rgba(93,242,199,.035);transform:scale(.9) translateY(10px);opacity:0}
.story-achievement-reward.show .story-achievement-reward-card{animation:storyAchievementCardV519 .55s .1s cubic-bezier(.2,.86,.2,1) both}
.story-achievement-reward-close{position:absolute;z-index:3;right:9px;top:9px;width:34px;height:34px;border:1px solid rgba(255,255,255,.16);border-radius:50%;background:rgba(0,0,0,.62);color:#fff;font:500 22px/1 Arial,sans-serif;display:grid;place-items:center;padding:0}
.story-achievement-reward-poster{display:block;width:min(52vw,210px);aspect-ratio:2/3;object-fit:cover;margin:0 auto 16px;border-radius:9px;border:1px solid rgba(255,255,255,.12);box-shadow:0 14px 35px rgba(0,0,0,.58),0 0 24px rgba(74,229,185,.1)}
.story-achievement-reward-card>small{display:block;color:#79e9c9;font:800 10px/1.1 Oxanium,sans-serif;letter-spacing:.12em}
.story-achievement-reward-card>strong{display:block;margin-top:8px;color:#caffef;font:900 26px/1 Oxanium,sans-serif;text-shadow:0 0 18px rgba(89,240,197,.26)}
.story-achievement-reward-card>h3{margin:8px 0 0;color:#fff;font:800 22px/1.08 Oxanium,sans-serif;letter-spacing:.02em}
.story-achievement-reward-card>p{margin:13px auto 0;max-width:320px;color:#abb9b6;font:500 11px/1.48 "Exo 2",sans-serif}
.story-achievement-reward-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:18px}
.story-achievement-reward-actions button{min-height:46px;border:1px solid rgba(100,222,188,.42);border-radius:10px;background:#101a19;color:#c8fff0;padding:8px 10px;font:800 9px/1.25 Oxanium,sans-serif;letter-spacing:.055em}
.story-achievement-reward-actions [data-reward-open]{border-color:#d5b660;background:linear-gradient(180deg,#332912,#171207);color:#ffe8a6;box-shadow:0 0 18px rgba(213,182,96,.11)}
@keyframes storyAchievementFlashV519{0%{opacity:0;transform:scale(.7)}24%{opacity:.95}100%{opacity:0;transform:scale(1.25)}}
@keyframes storyAchievementCardV519{0%{opacity:0;transform:scale(.9) translateY(10px)}100%{opacity:1;transform:scale(1) translateY(0)}}
@media(max-width:430px){.story-achievement-reward-card{padding:18px 14px 18px}.story-achievement-reward-actions{grid-template-columns:1fr}.story-achievement-reward-poster{width:min(47vw,180px)}}
@media(prefers-reduced-motion:reduce){.story-achievement-reward-flash,.story-achievement-reward-card{animation:none!important}.story-achievement-reward.show .story-achievement-reward-card{opacity:1!important;transform:none!important}}


/* ===== v5.22 · MIS STORIES + relaciones Story/Media ===== */
.my-stories-title{display:grid!important;grid-template-columns:minmax(0,1fr) auto minmax(150px,38%)!important;gap:10px!important;align-items:stretch!important}
.my-stories-heading{display:flex;flex-direction:column;justify-content:center;min-width:0}
.my-stories-avatar{position:relative;align-self:stretch;aspect-ratio:1/1;min-width:0;height:100%;max-height:none;border:1px solid rgba(255,255,255,.2);border-radius:9px;padding:0;overflow:hidden;background:#090909;cursor:pointer;box-shadow:inset 0 0 18px rgba(255,255,255,.035),0 7px 18px rgba(0,0,0,.35)}
.my-stories-avatar img{width:100%;height:100%;display:block;object-fit:cover}
.my-stories-avatar span{position:absolute;right:3px;bottom:3px;min-width:22px;height:20px;padding:0 4px;border-radius:999px;display:flex;align-items:center;justify-content:center;gap:1px;background:rgba(0,0,0,.84);border:1px solid rgba(230,190,86,.62);font:800 9px/1 Oxanium,sans-serif;color:#f1cc70;box-shadow:0 0 9px rgba(230,190,86,.22)}
.my-stories-avatar span b{font:inherit;color:#fff}
.my-stories-title .unread-callout{height:100%!important;align-self:stretch!important}
@media(max-width:390px){.my-stories-title{grid-template-columns:minmax(0,1fr) auto minmax(118px,38%)!important;gap:7px!important}.my-stories-avatar span{right:2px;bottom:2px}}
@media(max-width:350px){.my-stories-title{grid-template-columns:minmax(0,1fr) auto 112px!important;gap:6px!important}}
.user-sounds-panel strong{font-size:12px!important;line-height:1.22!important;letter-spacing:.055em!important}.user-sounds-panel small{font-size:10px!important;line-height:1.45!important}
.story-block-relations{display:flex;gap:7px;flex-wrap:wrap;justify-content:center;margin:10px 0 18px}
.story-block-relations button{border:1px solid rgba(255,255,255,.2);border-radius:999px;background:rgba(15,15,16,.94);color:#e9e9e9;padding:8px 11px;font:800 8px/1.1 Oxanium,sans-serif;letter-spacing:.055em;cursor:pointer;box-shadow:inset 0 0 12px rgba(255,255,255,.025)}
.story-block-relations button:active{transform:scale(.97)}
.reader-image img{cursor:default!important}
.story-game-relations{margin:18px var(--reader-pad,18px);padding:13px;border:1px solid rgba(255,255,255,.13);border-radius:13px;background:rgba(12,12,13,.95)}
.story-game-relations>.eyebrow{margin-bottom:9px}.story-game-relation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.story-game-relation-grid button{display:grid;grid-template-columns:54px minmax(0,1fr);gap:9px;align-items:center;text-align:left;border:1px solid rgba(255,255,255,.13);border-radius:9px;background:#101011;color:#eee;padding:7px;cursor:pointer;min-width:0}
.story-game-relation-grid img{width:54px;aspect-ratio:1470/1635;object-fit:contain;border-radius:5px;background:#050505}.story-game-relation-grid span{display:grid;gap:3px;min-width:0}.story-game-relation-grid b{font:800 8px/1 Oxanium,sans-serif;color:#d18bb3}.story-game-relation-grid strong{font:800 11px/1.15 'Exo 2',sans-serif;overflow-wrap:anywhere}
@media(max-width:380px){.story-game-relation-grid{grid-template-columns:1fr}}


/* ========================================================================
   v5.25 · EXTRAS / SAGAS / TIMELINE / MIS STORIES / LOGROS
   ======================================================================== */
/* MIS STORIES: avatar compacto, circular y exactamente tan alto como la caja pendiente. */
.my-stories-title{grid-template-columns:minmax(0,1fr) auto minmax(150px,38%)!important;align-items:stretch!important}
.my-stories-avatar{align-self:center!important;justify-self:center!important;width:64px;height:64px;min-width:42px!important;aspect-ratio:1/1!important;border-radius:50%!important;padding:0!important;overflow:hidden!important;background:#090909!important}
.my-stories-avatar img{width:100%!important;height:100%!important;display:block!important;object-fit:cover!important;border-radius:50%!important}
.my-stories-avatar span{right:0!important;bottom:0!important;transform:none!important}
.my-stories-heading{align-self:stretch!important}.my-stories-title .unread-callout{align-self:stretch!important}
@media(max-width:390px){.my-stories-title{grid-template-columns:minmax(0,1fr) auto minmax(118px,38%)!important}.my-stories-avatar{width:56px;height:56px}}
@media(max-width:350px){.my-stories-title{grid-template-columns:minmax(0,1fr) auto 112px!important}.my-stories-avatar{width:52px;height:52px}}

/* EXTRAS y partes de SAGA: respuesta visual antes de navegar. */
.extra-card,.saga-part.published-part{position:relative;overflow:hidden;isolation:isolate;transition:transform .18s ease,filter .18s ease,border-color .18s ease,box-shadow .18s ease}
.extra-card::after,.saga-part.published-part::after{content:"";position:absolute;z-index:40;inset:-25% auto -25% -65%;width:40%;pointer-events:none;opacity:0;background:linear-gradient(105deg,transparent,rgba(255,255,255,.1),rgba(255,255,255,.88),rgba(255,255,255,.1),transparent);transform:skewX(-18deg)}
.extra-card.is-selecting{transform:scale(.965)!important;filter:brightness(1.28)!important;border-color:#ffd56f!important;box-shadow:0 0 0 2px rgba(255,213,111,.2),0 0 30px rgba(255,193,65,.42)!important}
.saga-part.published-part.is-selecting{transform:scale(.975)!important;filter:brightness(1.22)!important;border-color:#78d9ff!important;box-shadow:0 0 0 2px rgba(120,217,255,.16),0 0 28px rgba(75,184,229,.35)!important}
.extra-card.is-selecting::after,.saga-part.published-part.is-selecting::after{opacity:1;animation:catalogSelectSweepV515 .32s ease-out forwards}
.extra-custom-badge{position:absolute;z-index:32;top:8px;right:8px;display:inline-flex!important;align-items:center;justify-content:center;width:max-content!important;max-width:none!important;box-sizing:border-box;padding:6px 9px;border-radius:999px;background:#fff;color:#080808;font:900 11px/1 Oxanium,sans-serif;letter-spacing:.09em;white-space:nowrap;overflow:visible;text-overflow:clip;box-shadow:0 0 18px rgba(255,255,255,.28);animation:homeHighlightBadgePulseV511 2s ease-in-out infinite}
.extra-custom-badge::after{content:"";position:absolute;inset:-35% auto -35% -65%;width:46%;background:linear-gradient(105deg,transparent,rgba(255,255,255,.18),rgba(255,255,255,.96),rgba(255,255,255,.18),transparent);transform:skewX(-18deg);animation:homeHighlightBadgeSweepV511 1.35s ease-in-out infinite;pointer-events:none}

/* TIMELINE: toda la caja es el acceso a la Story. */
.timeline-item[data-timeline-story]{cursor:pointer;transition:border-color .16s ease,background .16s ease,filter .16s ease,transform .16s ease}
.timeline-item[data-timeline-story]:hover,.timeline-item[data-timeline-story]:focus-visible{border-color:#4f8797!important;background:#0a171b!important;outline:none;filter:brightness(1.08)}
.timeline-item[data-timeline-story]:active{transform:scale(.987)}
.timeline-item .timeline-poster{pointer-events:none}

/* SAGAS: loop visual en el espacio derecho del encabezado. */
.sagas-title-with-loop{align-items:stretch!important;min-height:72px}
.sagas-title-copy{display:flex;flex-direction:column;justify-content:flex-end;flex:0 1 auto;min-width:max-content}
.sagas-header-loop{flex:1 1 auto;min-width:0;max-width:62%;height:clamp(58px,15vw,88px);align-self:center;overflow:hidden;border-radius:10px;background:#030405;pointer-events:none}
.sagas-header-loop video{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
@media(max-width:390px){.sagas-header-loop{max-width:56%;height:60px}.sagas-title-copy{min-width:0}}

/* USER · descripciones de LOGROS: 3 palabras hasta que se seleccionan. */
.achievement-earned-card[data-achievement-card]{cursor:pointer;transition:flex-basis .22s ease,width .22s ease,border-color .18s ease,background .18s ease,box-shadow .18s ease,transform .18s ease}
.achievement-earned-card .achievement-desc-full{display:none!important}
.achievement-earned-card.achievement-description-open{flex:1 0 100%!important;width:100%!important;max-width:100%!important;align-self:auto!important;border-color:rgba(229,194,99,.66)!important;background:linear-gradient(135deg,rgba(95,73,23,.18),rgba(255,255,255,.045))!important;box-shadow:0 0 0 1px rgba(229,194,99,.12),0 0 24px rgba(229,194,99,.13)!important;transform:translateY(-1px)}
.achievement-earned-card.achievement-description-open .achievement-desc-short{display:none!important}
.achievement-earned-card.achievement-description-open .achievement-desc-full{display:block!important;opacity:.82!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important}
.achievement-earned-card:focus-visible{outline:1px solid rgba(229,194,99,.72);outline-offset:2px}

@media(prefers-reduced-motion:reduce){
  .extra-card.is-selecting,.saga-part.published-part.is-selecting{transform:none!important}
  .extra-card.is-selecting::after,.saga-part.published-part.is-selecting::after,.extra-custom-badge,.extra-custom-badge::after{animation:none!important}
  .achievement-earned-card[data-achievement-card]{transition:none!important}
}


/* ========================================================================
   v5.26 · MICRO badge / MIS STORIES / SAGAS / TODAS LAS STORIES
   ======================================================================== */
/* MICRO-PESADILLAS · badge configurable de cabecera, misma familia que HOME. */
.micro-header-custom-badge{
  position:absolute;z-index:12;top:12px;right:12px;
  display:inline-flex!important;align-items:center;justify-content:center;
  width:max-content!important;max-width:calc(100% - 24px)!important;box-sizing:border-box;
  padding:6px 9px;border-radius:999px;background:#fff;color:#080808;
  font:900 11px/1 Oxanium,sans-serif;letter-spacing:.09em;white-space:nowrap;
  overflow:visible;text-overflow:clip;box-shadow:0 0 18px rgba(255,255,255,.28);
  animation:homeHighlightBadgePulseV511 2s ease-in-out infinite;pointer-events:none
}
.micro-header-custom-badge::after{content:"";position:absolute;inset:-35% auto -35% -65%;width:46%;background:linear-gradient(105deg,transparent,rgba(255,255,255,.18),rgba(255,255,255,.96),rgba(255,255,255,.18),transparent);transform:skewX(-18deg);animation:homeHighlightBadgeSweepV511 1.35s ease-in-out infinite;pointer-events:none}

/* MIS STORIES · avatar a media escala con el nivel por encima, como en menú lateral. */
.my-stories-avatar{position:relative!important;width:32px!important;height:32px!important;min-width:0!important;flex-basis:32px!important;overflow:visible!important;border-radius:50%!important;padding:0!important;align-self:center!important;justify-self:center!important}
.my-stories-avatar>img{width:100%!important;height:100%!important;display:block!important;object-fit:cover!important;border-radius:50%!important}
.my-stories-avatar>.my-stories-level-badge{right:-8px!important;top:-8px!important;bottom:auto!important;transform:none!important;display:flex!important}
@media(max-width:390px){.my-stories-avatar{width:28px!important;height:28px!important;flex-basis:28px!important}}
@media(max-width:350px){.my-stories-avatar{width:26px!important;height:26px!important;flex-basis:26px!important}}

/* SAGAS · feedback visual al elegir una saga, sin mover el layout. */
.saga-card::after{content:"";position:absolute;z-index:45;inset:-25% auto -25% -65%;width:40%;pointer-events:none;opacity:0;background:linear-gradient(105deg,transparent,rgba(255,255,255,.08),rgba(134,224,255,.88),rgba(255,255,255,.08),transparent);transform:skewX(-18deg)}
.saga-card.is-selecting{filter:brightness(1.22)!important;border-color:#78d9ff!important;box-shadow:0 0 0 2px rgba(120,217,255,.16),0 0 30px rgba(75,184,229,.34)!important}
.saga-card.is-selecting::after{opacity:1;animation:catalogSelectSweepV515 .32s ease-out forwards}

/* TODAS LAS STORIES · respuesta breve en cada caja interactiva importante. */
.stories-section [data-story-id],.stories-section .portal-btn,.stories-section .library-stats button,.stories-section .advanced-toggle,.stories-section .view-mode{transition:filter .11s ease,outline-color .11s ease,box-shadow .11s ease!important}
.stories-section .stories-quick-press{filter:brightness(1.28) saturate(1.08)!important;outline:2px solid rgba(255,255,255,.42)!important;outline-offset:-2px!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.16),0 0 16px rgba(255,255,255,.16)!important}

@media(prefers-reduced-motion:reduce){
  .micro-header-custom-badge{animation:none!important}.micro-header-custom-badge::after{display:none!important}
  .saga-card.is-selecting::after{animation:none!important}.stories-section .stories-quick-press{transition:none!important}
}


/* ========================================================================
   v5.27 · MICRO badge / MIS STORIES / SAGAS LOOP
   ======================================================================== */
/* MICRO-PESADILLAS · badge negro, texto blanco y reflejo estrictamente recortado al interior. */
.micro-header-custom-badge{
  background:#050505!important;color:#fff!important;
  border:1px solid rgba(255,255,255,.48)!important;
  overflow:hidden!important;isolation:isolate!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.04),inset 0 0 12px rgba(255,255,255,.06)!important;
}
.micro-header-custom-badge::after{
  z-index:2!important;inset:-35% auto -35% -65%!important;
  border-radius:inherit!important;pointer-events:none!important;
}

/* MIS STORIES · cabecera título + avatar; las cuatro estadísticas ocupan una única fila equivalente. */
.my-stories-title{
  grid-template-columns:minmax(0,1fr) minmax(118px,38%)!important;
  gap:10px!important;align-items:stretch!important;
}
.my-stories-heading{min-width:0!important;align-self:stretch!important;justify-content:center!important}
.my-stories-avatar-slot{display:grid;place-items:center;min-width:0;align-self:stretch}
.my-stories-avatar{
  width:56px!important;height:56px!important;flex-basis:56px!important;
  align-self:center!important;justify-self:center!important;overflow:visible!important;
}
.my-stories-avatar>img{border-radius:50%!important;overflow:hidden!important}
.my-stories-avatar>.my-stories-level-badge{right:-8px!important;top:-8px!important;bottom:auto!important}
.personal-stats{grid-template-columns:repeat(4,minmax(0,1fr))!important;align-items:stretch!important;gap:7px!important}
.personal-stats>.stat-action{display:flex!important;flex-direction:column!important;justify-content:center!important;align-items:center!important;min-width:0!important;height:100%!important}
.personal-stats .my-unread-stat{border-color:#6e3e1b!important;background:linear-gradient(145deg,#1b1007,#100a06)!important;box-shadow:inset 0 0 0 1px rgba(255,156,66,.06),0 0 18px rgba(180,93,24,.08)!important}
.personal-stats .my-unread-stat strong{color:#ff9c42!important}
.personal-stats .my-unread-stat span{color:#d7a06f!important;font-size:clamp(7px,1.95vw,9.5px)!important;line-height:1.05!important;letter-spacing:.015em!important}
@media(max-width:390px){
  .my-stories-title{grid-template-columns:minmax(0,1fr) minmax(94px,34%)!important;gap:7px!important}
  .my-stories-avatar{width:48px!important;height:48px!important;flex-basis:48px!important}
  .personal-stats{gap:5px!important}
  .personal-stats>.stat-action{padding-left:2px!important;padding-right:2px!important}
}
@media(max-width:350px){
  .my-stories-title{grid-template-columns:minmax(0,1fr) 86px!important;gap:6px!important}
  .personal-stats{gap:4px!important}
  .personal-stats .my-unread-stat span{font-size:6.8px!important}
}

/* SAGAS · el loop conserva su caja pero el contenido visual se escala al 140%. */
.sagas-header-loop video{transform:scale(1.4)!important;transform-origin:center center!important;will-change:transform}

@media(prefers-reduced-motion:reduce){
  .micro-header-custom-badge{animation:none!important}
  .micro-header-custom-badge::after{display:none!important}
}
/* v5.27 · normalización final de etiquetas para la nueva fila de 4 estadísticas. */
.personal-stats span{
  font-size:clamp(7px,2vw,9.5px)!important;
  line-height:1.05!important;
  letter-spacing:-.01em!important;
  white-space:normal!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
  text-align:center!important;
}
.personal-stats>div:nth-child(3) span{font-size:clamp(7px,2vw,9.5px)!important;line-height:1.05!important}
.personal-stats .my-unread-stat span{font-size:clamp(7px,1.95vw,9.5px)!important;white-space:normal!important}

/* ========================================================================
   v5.28 · MICRO badge / MIS STORIES avatar / COLLECTION loop / SAGAS loop
   ======================================================================== */
/* MICRO-PESADILLAS · halo exterior pulsante 100→0→100 en 1,3 s.
   El reflejo ::after sigue estrictamente recortado dentro del badge. */
.micro-header-custom-badge{
  background:#050505!important;color:#fff!important;
  border:1px solid rgba(255,255,255,.78)!important;
  overflow:hidden!important;isolation:isolate!important;
  animation:microHeaderBadgeHaloV528 1.3s ease-in-out infinite!important;
}
@keyframes microHeaderBadgeHaloV528{
  0%,100%{box-shadow:0 0 5px rgba(255,255,255,.95),0 0 13px rgba(255,255,255,.48),0 0 23px rgba(255,255,255,.16),inset 0 0 0 1px rgba(255,255,255,.08),inset 0 0 10px rgba(255,255,255,.07)}
  50%{box-shadow:0 0 0 rgba(255,255,255,0),0 0 0 rgba(255,255,255,0),0 0 0 rgba(255,255,255,0),inset 0 0 0 1px rgba(255,255,255,.03),inset 0 0 4px rgba(255,255,255,.02)}
}

/* MIS STORIES · avatar x2, círculo recuperado y nivel en diagonal superior-derecha. */
.my-stories-avatar{
  width:112px!important;height:112px!important;flex-basis:112px!important;
  border:2px solid rgba(215,181,95,.88)!important;
  border-radius:50%!important;background:#07090b!important;
  box-shadow:0 0 0 1px rgba(255,255,255,.06),0 0 18px rgba(215,181,95,.18)!important;
  overflow:visible!important;
}
.my-stories-avatar>img{
  width:100%!important;height:100%!important;display:block!important;
  object-fit:cover!important;border-radius:50%!important;overflow:hidden!important;
}
.my-stories-avatar>.my-stories-level-badge{
  right:-10px!important;top:-8px!important;bottom:auto!important;
  transform:none!important;z-index:4!important;
}
@media(max-width:390px){.my-stories-avatar{width:96px!important;height:96px!important;flex-basis:96px!important}.my-stories-avatar>.my-stories-level-badge{right:-8px!important;top:-7px!important}}
@media(max-width:350px){.my-stories-avatar{width:88px!important;height:88px!important;flex-basis:88px!important}}

/* COLECCIÓN · nuevo collectionloop.webm en el hueco derecho del encabezado. */
.collection-title-with-loop{align-items:stretch!important;min-height:72px}
.collection-title-copy{display:flex;flex-direction:column;justify-content:flex-end;flex:0 1 auto;min-width:max-content}
.collection-header-loop{flex:1 1 auto;min-width:0;max-width:62%;height:clamp(58px,15vw,88px);align-self:center;overflow:hidden;border-radius:10px;background:#030405;pointer-events:none}
.collection-header-loop video{display:block;width:100%;height:100%;object-fit:contain;object-position:center}
@media(max-width:390px){.collection-header-loop{max-width:56%;height:60px}.collection-title-copy{min-width:0}}

/* SAGAS · caja ampliada al 130%; el vídeo completo permanece siempre dentro. */
.sagas-title-with-loop{min-height:94px!important}
.sagas-header-loop{max-width:80.6%!important;height:clamp(75px,19.5vw,114px)!important;overflow:hidden!important}
.sagas-header-loop video{width:100%!important;height:100%!important;object-fit:contain!important;object-position:center!important;transform:none!important;will-change:auto!important}
@media(max-width:390px){.sagas-header-loop{max-width:72.8%!important;height:78px!important}}

@media(prefers-reduced-motion:reduce){
  .micro-header-custom-badge{animation:none!important;box-shadow:0 0 7px rgba(255,255,255,.6),0 0 14px rgba(255,255,255,.25),inset 0 0 0 1px rgba(255,255,255,.06)!important}
}

/* ========================================================================
   v5.29 · MICRO badge / MIS STORIES level / COLLECTION + SAGAS 16:9 loops
   ======================================================================== */
/* MICRO-PESADILLAS · badge realmente destacado: recupera el pulso de escala
   original, mantiene el reflejo interior y suma halo/contraste pulsante. */
.micro-header-custom-badge{
  top:14px!important;right:14px!important;
  background:#050505!important;color:#fff!important;
  border:1px solid rgba(255,255,255,.92)!important;
  overflow:hidden!important;isolation:isolate!important;
  transform-origin:center center!important;
  will-change:transform,filter,box-shadow!important;
  animation:microHeaderBadgeSpotV529 2s cubic-bezier(.4,0,.2,1) infinite!important;
}
.micro-header-custom-badge::after{
  display:block!important;
  animation:homeHighlightBadgeSweepV511 1.35s ease-in-out infinite!important;
}
@keyframes microHeaderBadgeSpotV529{
  0%,100%{
    transform:scale(1);
    filter:brightness(1) saturate(1);
    border-color:rgba(255,255,255,.76);
    box-shadow:0 0 5px rgba(255,255,255,.48),0 0 12px rgba(255,255,255,.18),inset 0 0 10px rgba(255,255,255,.06);
  }
  44%,56%{
    transform:scale(1.20);
    filter:brightness(1.38) saturate(1.08);
    border-color:#fff;
    box-shadow:0 0 8px rgba(255,255,255,1),0 0 20px rgba(255,255,255,.82),0 0 34px rgba(224,236,255,.48),inset 0 0 13px rgba(255,255,255,.18);
  }
}

/* MIS STORIES · el nivel deja de ser una caja: solo cifra + estrella,
   ambas al doble de tamaño y en la diagonal superior-derecha del avatar. */
.my-stories-avatar>.my-stories-level-badge,
.my-stories-avatar>.my-stories-level-badge.level-multi,
.my-stories-avatar>.my-stories-level-badge.level-3plus{
  position:absolute!important;display:flex!important;align-items:flex-start!important;justify-content:center!important;gap:1px!important;
  top:-12px!important;right:-18px!important;bottom:auto!important;
  width:auto!important;min-width:0!important;height:auto!important;min-height:0!important;
  padding:0!important;margin:0!important;border:0!important;border-radius:0!important;
  background:transparent!important;box-shadow:none!important;
  backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
  line-height:1!important;overflow:visible!important;transform:none!important;
  text-shadow:0 2px 4px #000,0 0 7px rgba(215,181,95,.62)!important;
}
.my-stories-avatar>.my-stories-level-badge .user-level-number{
  position:static!important;display:block!important;
  font:900 20px/1 Oxanium,sans-serif!important;color:#f7e7ad!important;
  transform:none!important;margin:0!important;padding:0!important;
}
.my-stories-avatar>.my-stories-level-badge .user-level-star{
  position:static!important;display:block!important;
  font:900 12px/1 Oxanium,sans-serif!important;color:#f0cf70!important;
  transform:translateY(-5px)!important;margin:0!important;padding:0!important;
}
@media(max-width:390px){
  .my-stories-avatar>.my-stories-level-badge,
  .my-stories-avatar>.my-stories-level-badge.level-multi,
  .my-stories-avatar>.my-stories-level-badge.level-3plus{top:-10px!important;right:-15px!important}
  .my-stories-avatar>.my-stories-level-badge .user-level-number{font-size:18px!important}
  .my-stories-avatar>.my-stories-level-badge .user-level-star{font-size:11px!important;transform:translateY(-4px)!important}
}

/* COLLECTION + SAGAS · loops 16:9 reales, sin bandas laterales y anclados
   al extremo derecho del viewport/contenido, sin depender del typewriter. */
.collection-title-with-loop,.sagas-title-with-loop{
  position:relative!important;
  align-items:center!important;
  overflow:visible!important;
}
.collection-title-with-loop{min-height:96px!important;padding-right:clamp(142px,45vw,202px)!important}
.sagas-title-with-loop{min-height:112px!important;padding-right:clamp(164px,50vw,226px)!important}
.collection-title-copy,.sagas-title-copy{position:relative!important;z-index:2!important;min-width:0!important}
.collection-header-loop,.sagas-header-loop{
  position:absolute!important;
  z-index:1!important;
  right:calc(-1 * var(--reader-pad))!important;
  top:50%!important;
  transform:translateY(-50%)!important;
  height:auto!important;
  aspect-ratio:16/9!important;
  flex:none!important;
  max-width:none!important;
  min-width:0!important;
  margin:0!important;
  overflow:hidden!important;
  background:#000!important;
  border-radius:10px!important;
  pointer-events:none!important;
}
.collection-header-loop{width:clamp(132px,42vw,188px)!important}
.sagas-header-loop{width:clamp(154px,48vw,218px)!important}
.collection-header-loop video,.sagas-header-loop video{
  display:block!important;width:100%!important;height:100%!important;
  aspect-ratio:16/9!important;object-fit:cover!important;object-position:center!important;
  transform:none!important;margin:0!important;background:#000!important;
}
@media(max-width:390px){
  .collection-title-with-loop{min-height:82px!important;padding-right:132px!important}
  .sagas-title-with-loop{min-height:94px!important;padding-right:148px!important}
  .collection-header-loop{width:136px!important}
  .sagas-header-loop{width:152px!important}
}
@media(max-width:350px){
  .collection-title-with-loop{padding-right:118px!important}
  .sagas-title-with-loop{padding-right:132px!important}
  .collection-header-loop{width:122px!important}
  .sagas-header-loop{width:136px!important}
}

@media(prefers-reduced-motion:reduce){
  .micro-header-custom-badge{animation:none!important;transform:none!important;filter:none!important;box-shadow:0 0 8px rgba(255,255,255,.72),0 0 18px rgba(255,255,255,.28)!important}
  .micro-header-custom-badge::after{animation:none!important;display:none!important}
}


/* ========================================================================
   v5.30 · MIS STORIES level cleanup + COLLECTION/SAGAS bg match
   ======================================================================== */
/* MICRO-PESADILLAS · badge vuelve a tener presencia real: pulso de escala,
   barrido interior y halo exterior respirando sin verse cortado. */
.micro-header-custom-badge{
  animation:microHeaderBadgePulseV530 2s cubic-bezier(.4,0,.2,1) infinite!important;
  box-shadow:0 0 6px rgba(255,255,255,.32),0 0 14px rgba(255,255,255,.14),inset 0 0 0 1px rgba(255,255,255,.08)!important;
}
.micro-header-custom-badge::before{content:"";position:absolute;inset:-1px;border-radius:inherit;pointer-events:none;z-index:-1;box-shadow:0 0 0 1px rgba(255,255,255,.25),0 0 10px rgba(255,255,255,.28),0 0 22px rgba(255,255,255,.10);animation:microHeaderBadgeHaloV530 1.3s ease-in-out infinite!important}
.micro-header-custom-badge::after{display:block!important;animation:homeHighlightBadgeSweepV511 1.2s ease-in-out infinite!important}
@keyframes microHeaderBadgePulseV530{
  0%,100%{transform:scale(1);filter:brightness(1) saturate(1)}
  46%,54%{transform:scale(1.18);filter:brightness(1.28) saturate(1.06)}
}
@keyframes microHeaderBadgeHaloV530{
  0%,100%{opacity:1}
  50%{opacity:0}
}

/* MIS STORIES · avatar: solo cifra + estrella visibles, sin ninguna caja
   ni círculo detrás, y aproximadamente al doble del tamaño previo. */
.my-stories-avatar>.my-stories-level-badge,
.my-stories-avatar>.my-stories-level-badge.level-multi,
.my-stories-avatar>.my-stories-level-badge.level-3plus,
.my-stories-avatar>.my-stories-level-badge .user-level-number,
.my-stories-avatar>.my-stories-level-badge .user-level-star{
  background:transparent!important;border:0!important;box-shadow:none!important;outline:0!important;border-radius:0!important;
  width:auto!important;height:auto!important;min-width:0!important;min-height:0!important;padding:0!important;margin:0!important;
}
.my-stories-avatar>.my-stories-level-badge,
.my-stories-avatar>.my-stories-level-badge.level-multi,
.my-stories-avatar>.my-stories-level-badge.level-3plus{
  top:-14px!important;right:-22px!important;gap:1px!important;
}
.my-stories-avatar>.my-stories-level-badge .user-level-number{font:900 40px/1 Oxanium,sans-serif!important;color:#f7e7ad!important;text-shadow:0 2px 5px #000,0 0 8px rgba(215,181,95,.65)!important}
.my-stories-avatar>.my-stories-level-badge .user-level-star{font:900 24px/1 Oxanium,sans-serif!important;color:#f0cf70!important;transform:translateY(-10px)!important;text-shadow:0 2px 5px #000,0 0 8px rgba(215,181,95,.65)!important}
@media(max-width:390px){
  .my-stories-avatar>.my-stories-level-badge,.my-stories-avatar>.my-stories-level-badge.level-multi,.my-stories-avatar>.my-stories-level-badge.level-3plus{top:-12px!important;right:-19px!important}
  .my-stories-avatar>.my-stories-level-badge .user-level-number{font-size:34px!important}
  .my-stories-avatar>.my-stories-level-badge .user-level-star{font-size:20px!important;transform:translateY(-9px)!important}
}
@media(max-width:350px){
  .my-stories-avatar>.my-stories-level-badge .user-level-number{font-size:31px!important}
  .my-stories-avatar>.my-stories-level-badge .user-level-star{font-size:18px!important;transform:translateY(-8px)!important}
}

/* COLECCIÓN + SAGAS · el fondo de toda la sección se iguala exactamente al
   tono dominante de los loops 16:9 para evitar saltos visibles. */
:root{--collection-loop-surface:#070f14;--sagas-loop-surface:#070f14}
.view.collection-view,.view.collection-view>.collection-section,.collection-section,
.collection-header-loop,.collection-header-loop video,.collection-title-with-loop{
  background:var(--collection-loop-surface)!important;
}
.view.sagas-view,.view.sagas-view>.sagas-section,.sagas-section,
.sagas-header-loop,.sagas-header-loop video,.sagas-title-with-loop{
  background:var(--sagas-loop-surface)!important;
}
.collection-header-loop,.sagas-header-loop{border-radius:10px!important}

@media(prefers-reduced-motion:reduce){
  .micro-header-custom-badge{animation:none!important;transform:none!important;filter:none!important}
  .micro-header-custom-badge::before,.micro-header-custom-badge::after{animation:none!important;opacity:1!important}
}


/* ======================================================================
   v6.2 · TUTORIAL 1 / PRIMER CONTACTO
   Motor visual independiente. No transforma el layout de la PWA.
   ====================================================================== */
.section-indicator-tutorials{width:24px;height:24px;border:1px solid #8ef4ff;border-radius:50%;display:grid;place-items:center;color:#8ef4ff;font-family:Oxanium,sans-serif;font-size:12px;font-weight:700;box-shadow:0 0 10px rgba(142,244,255,.15)}
.tutorials-page-v61{max-width:760px;margin:0 auto;padding-bottom:110px}.tutorials-copy-v61{color:#839ba2;line-height:1.55;margin:6px 0 18px;max-width:570px}.tutorial-list-v61{display:grid;gap:10px}.tutorial-list-v61>button{width:100%;display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px;border:1px solid #294851;border-radius:13px;background:linear-gradient(145deg,#091318,#050a0d);color:#fff;text-align:left;box-shadow:inset 0 0 0 1px rgba(255,255,255,.012);transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease}.tutorial-list-v61>button:hover,.tutorial-list-v61>button:focus-visible{border-color:#4a7b87;box-shadow:0 0 24px rgba(142,244,255,.08)}.tutorial-list-v61>button:active{transform:scale(.985)}.tutorial-list-number{width:42px;height:42px;border:1px solid #31545d;border-radius:10px;display:grid;place-items:center;color:#8ef4ff;font-family:Oxanium,sans-serif;font-size:15px}.tutorial-list-copy{min-width:0}.tutorial-list-copy strong{display:block;font-family:Oxanium,sans-serif;font-size:13px;letter-spacing:.035em}.tutorial-list-copy small{display:block;margin-top:4px;color:#7e969d;font-size:9px;line-height:1.35}.tutorial-viewed-badge,.tutorial-new-badge{font-style:normal;font-family:Oxanium,sans-serif;font-size:8px;letter-spacing:.08em;border-radius:999px;padding:6px 8px}.tutorial-viewed-badge{color:#83f5ac;border:1px solid #296d42;background:#07160d}.tutorial-new-badge{color:#8ef4ff;border:1px solid #31545d;background:#071217}
.tutorial-overlay-v61{position:fixed;z-index:5200;inset:0;pointer-events:auto;opacity:0;transition:opacity .24s ease}.tutorial-overlay-v61.is-visible{opacity:1}.tutorial-dim-v61{position:absolute;inset:0;background:rgba(0,0,0,var(--tutorial-dim,.64));backdrop-filter:blur(.7px);pointer-events:auto}.tutorial-focus-ring-v61{position:fixed;z-index:5202;border:2px solid #8ef4ff;box-shadow:0 0 0 9999px rgba(0,0,0,.08),0 0 18px 4px rgba(142,244,255,.26),inset 0 0 14px rgba(142,244,255,.08);pointer-events:none;animation:tutorialFocusBreathe 2.8s ease-in-out infinite}.tutorial-focus-ring-v61.hidden{display:none!important}
.tutorial-tk-stage-v61{position:fixed;z-index:5204;pointer-events:none;--tutorial-scale:1;--tutorial-translate-x:0}.tutorial-tk-card{width:100%;height:100%;position:relative;overflow:hidden;border:1px solid #31535d;background:#102329;border-radius:14px;box-shadow:0 14px 36px rgba(0,0,0,.45),0 0 22px rgba(142,244,255,.08);transform:translateX(var(--tutorial-translate-x,0)) scale(var(--tutorial-scale,1));transform-origin:center;animation:tutorialTkBreath 4.2s ease-in-out infinite}.tutorial-tk-square .tutorial-tk-card{aspect-ratio:1/1}.tutorial-tk-vertical .tutorial-tk-card{border-radius:15px}.tutorial-tk-horizontal .tutorial-tk-card{border-radius:13px}.tutorial-tk-card:after{content:"";position:absolute;inset:-20% auto -20% -35%;width:25%;background:linear-gradient(90deg,transparent,rgba(142,244,255,.08),transparent);transform:skewX(-16deg);animation:tutorialTkSweep 6.5s ease-in-out infinite}.tutorial-tk-card video{width:100%;height:100%;display:block;object-fit:cover;background:#102329}.tutorial-tk-card video.missing{display:none}.tutorial-tk-fallback{position:absolute;inset:0;display:grid;place-items:center;background:#102329;color:#476c75;font-family:Oxanium,sans-serif;font-size:clamp(22px,6vw,42px);font-weight:700;letter-spacing:.08em}.tutorial-tk-card video:not(.missing)+.tutorial-tk-fallback{display:none}
.tutorial-bubble-v61{position:fixed;z-index:5205;box-sizing:border-box;border:1px solid #355c66;border-radius:15px;background:linear-gradient(155deg,rgba(8,20,25,.98),rgba(4,10,13,.985));color:#f2fbfd;padding:17px 18px 16px;box-shadow:0 18px 48px rgba(0,0,0,.62),0 0 24px rgba(142,244,255,.07);animation:tutorialBubbleIn .38s cubic-bezier(.2,.8,.2,1) both}.tutorial-close-v61{position:absolute;right:5px;top:5px;width:40px;height:40px;border:0;background:transparent;color:#789199;font:300 26px/1 Arial;display:grid;place-items:center;border-radius:50%;transition:color .18s ease,background .18s ease,transform .18s ease}.tutorial-close-v61:hover,.tutorial-close-v61:focus-visible{color:#fff;background:rgba(255,255,255,.04)}.tutorial-close-v61:active{transform:scale(.88)}.tutorial-step-label{display:flex;align-items:center;gap:7px;padding-right:42px;color:#748d94;font-family:Oxanium,sans-serif;font-size:10px;font-weight:600;letter-spacing:.13em}.tutorial-step-label i{width:6px;height:6px;border-radius:50%;background:#8ef4ff;box-shadow:0 0 8px #8ef4ff;animation:tutorialStepDot 2.3s ease-in-out infinite}.tutorial-bubble-v61 h2{margin:7px 40px 7px 0;font-family:Oxanium,sans-serif;font-size:clamp(17px,4.2vw,22px);line-height:1.12;letter-spacing:.025em}.tutorial-main-text,.tutorial-secondary-text{margin:0;color:#d9e7ea;font-size:14px;line-height:1.48;animation:tutorialTextReveal .58s .08s ease both}.tutorial-secondary-text{margin-top:6px;color:#849ba1;font-size:12px}.tutorial-micro-rule{display:inline-flex;margin-top:11px;padding:6px 9px;border:1px solid #466a73;border-radius:999px;background:#09161b;color:#a6f7ff;font-family:Oxanium,sans-serif;font-size:9px;font-weight:700;letter-spacing:.08em;animation:tutorialTextReveal .46s .36s ease both}.tutorial-controls{margin-top:15px;padding-top:12px;border-top:1px solid rgba(70,104,113,.35);display:flex;align-items:center;justify-content:space-between;gap:10px}.tutorial-bubble-v61 .tutorial-controls>button{width:auto;height:auto;aspect-ratio:auto;padding-left:10px;padding-right:10px}.tutorial-controls button{min-height:40px;border-radius:9px;font-family:Oxanium,sans-serif;font-size:9px;font-weight:600;letter-spacing:.055em;transition:transform .16s ease,border-color .16s ease,background .16s ease}.tutorial-controls button:active{transform:scale(.96)}.tutorial-back{padding:0 10px;border:1px solid #29474f;background:#081216;color:#8ea4aa}.tutorial-next,.tutorial-start{padding:0 15px;border:1px solid #8d272d;background:#4b0d12;color:#fff;box-shadow:0 0 14px rgba(210,35,42,.08)}.tutorial-next b{font-size:15px;margin-left:4px}.tutorial-controls-first{justify-content:flex-end}.tutorial-controls-first>span{display:none}.tutorial-controls-final{align-items:flex-end}.tutorial-final-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}.tutorial-more{padding:0 12px;border:1px solid #31545d;background:#09161b;color:#a9f8ff}.tutorial-start{padding:0 14px}
.tutorial-lock-stage{position:fixed;z-index:5204;width:var(--tutorial-lock-size,150px);height:var(--tutorial-lock-size,150px);display:grid;place-items:center;pointer-events:none}.tutorial-lock-icon{position:absolute;inset:0;display:grid;place-items:center;border-radius:50%;filter:drop-shadow(0 0 14px currentColor)}.tutorial-lock-icon .lock-svg{width:78%;height:78%;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.tutorial-lock-red{color:#ff686d}.tutorial-lock-green{color:#75ff9b;opacity:0;transform:scale(.55)}.tutorial-lock-flash{position:absolute;width:30%;height:30%;border-radius:50%;background:#eaffee;opacity:0;filter:blur(8px)}.tutorial-lock-stage.is-unlocked .tutorial-lock-red{animation:tutorialLockRedOut .33s ease forwards}.tutorial-lock-stage.is-unlocked .tutorial-lock-green{animation:tutorialLockGreenIn .48s .14s cubic-bezier(.2,1.4,.3,1) forwards}.tutorial-lock-stage.is-unlocked .tutorial-lock-flash{animation:tutorialLockFlash .42s .1s ease-out forwards}
@keyframes tutorialBubbleIn{from{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:none}}@keyframes tutorialTextReveal{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes tutorialFocusBreathe{0%,100%{box-shadow:0 0 0 9999px rgba(0,0,0,.08),0 0 15px 3px rgba(142,244,255,.2),inset 0 0 10px rgba(142,244,255,.06)}50%{box-shadow:0 0 0 9999px rgba(0,0,0,.08),0 0 24px 6px rgba(142,244,255,.32),inset 0 0 16px rgba(142,244,255,.1)}}@keyframes tutorialTkBreath{0%,100%{box-shadow:0 14px 36px rgba(0,0,0,.45),0 0 18px rgba(142,244,255,.05)}50%{box-shadow:0 14px 36px rgba(0,0,0,.45),0 0 29px rgba(142,244,255,.12)}}@keyframes tutorialTkSweep{0%,68%{left:-35%;opacity:0}74%{opacity:1}88%{left:118%;opacity:.8}100%{left:118%;opacity:0}}@keyframes tutorialStepDot{0%,100%{opacity:.5;transform:scale(.8)}50%{opacity:1;transform:scale(1.18)}}@keyframes tutorialLockRedOut{0%{opacity:1;transform:scale(1)}55%{opacity:1;transform:scale(1.09)}100%{opacity:0;transform:scale(.55)}}@keyframes tutorialLockGreenIn{0%{opacity:0;transform:scale(.5) rotate(-7deg)}68%{opacity:1;transform:scale(1.08) rotate(2deg)}100%{opacity:1;transform:scale(1) rotate(0)}}@keyframes tutorialLockFlash{0%{opacity:0;transform:scale(.3)}35%{opacity:.85;transform:scale(1.45)}100%{opacity:0;transform:scale(2.4)}}
@media(max-width:600px){.tutorial-bubble-v61{padding:15px 15px 14px}.tutorial-main-text{font-size:12px;line-height:1.45}.tutorial-secondary-text{font-size:10px}.tutorial-controls{margin-top:12px}.tutorial-controls-final{display:block}.tutorial-controls-final>.tutorial-back{margin-bottom:8px}.tutorial-final-actions{display:grid;grid-template-columns:1fr 1.35fr}.tutorial-final-actions button{padding:0 8px;font-size:8px}.tutorial-list-v61>button{grid-template-columns:40px minmax(0,1fr) auto;padding:12px 10px;gap:9px}.tutorial-list-number{width:36px;height:36px}}
@media(prefers-reduced-motion:reduce){.tutorial-focus-ring-v61,.tutorial-tk-card,.tutorial-tk-card:after,.tutorial-step-label i{animation:none!important}.tutorial-bubble-v61,.tutorial-main-text,.tutorial-secondary-text,.tutorial-micro-rule{animation-duration:.01ms!important}.tutorial-lock-stage.is-unlocked .tutorial-lock-red{opacity:0!important;animation:none!important}.tutorial-lock-stage.is-unlocked .tutorial-lock-green{opacity:1!important;transform:scale(1)!important;animation:none!important}.tutorial-lock-stage.is-unlocked .tutorial-lock-flash{display:none!important}}

/* ======================================================================
   v6.2 · TUTORIAL 1 · refinamiento visual / composición por pasos
   ====================================================================== */
.drawer-help{width:22px!important;height:22px!important;min-width:22px!important;min-height:22px!important;flex:0 0 22px!important;aspect-ratio:1/1!important;box-sizing:border-box!important;border-radius:50%!important;padding:0!important;line-height:1!important}

/* Navegación: cajas equivalentes y limpias. */
.tutorial-controls-first{display:block!important}
.tutorial-controls-first .tutorial-next{width:100%!important;min-height:46px!important;border-radius:8px!important;padding:0 14px!important}
.tutorial-controls-nav{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important;align-items:stretch!important}
.tutorial-controls-nav .tutorial-nav-box{width:100%!important;min-height:48px!important;border-radius:8px!important;padding:0 8px!important;text-align:center!important}
.tutorial-controls-final{display:block!important}
.tutorial-controls-final>.tutorial-back{width:calc(50% - 5px)!important;min-height:48px!important;border-radius:8px!important;margin:0 0 10px!important;padding:0 8px!important;text-align:center!important}
.tutorial-final-actions{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;width:100%!important}
.tutorial-final-actions button{width:100%!important;min-height:48px!important;border-radius:8px!important;padding:0 12px!important}

/* Paso 5: el cierre debe leerse de un vistazo. */
.tutorial-step-5 .tutorial-bubble-v61 h2{display:inline-block!important;color:#fff!important;font-size:clamp(20px,5vw,25px)!important;letter-spacing:.04em!important;padding-bottom:5px!important;border-bottom:2px solid #d2232a!important;text-shadow:0 0 16px rgba(210,35,42,.26)!important}

/* El icono real de TODAS LAS STORIES se replica por encima del dim para no oscurecerlo. */
.tutorial-target-clone-v62{position:fixed!important;z-index:5203!important;pointer-events:none!important;margin:0!important;opacity:1!important;color:#fff!important;background:rgba(8,8,8,.97)!important;border:1px solid rgba(142,244,255,.48)!important;border-radius:12px!important;box-shadow:0 0 12px rgba(142,244,255,.42),0 0 30px rgba(142,244,255,.28),0 0 54px rgba(255,255,255,.10)!important;filter:none!important;transform:none!important}
.tutorial-target-clone-v62 span,.tutorial-target-clone-v62 small{color:#fff!important;opacity:1!important;filter:none!important}
.tutorial-focus-ring-v61.is-strong{z-index:5203;border-color:#eaffff!important;box-shadow:0 0 0 1px rgba(142,244,255,.68),0 0 16px 5px rgba(142,244,255,.62),0 0 42px 13px rgba(142,244,255,.26)!important;animation:tutorialTargetSignalV62 1.15s ease-in-out infinite!important}
.tutorial-focus-ring-v61.is-strong::before,.tutorial-focus-ring-v61.is-strong::after{content:"";position:absolute;pointer-events:none;border-radius:inherit}
.tutorial-focus-ring-v61.is-strong::before{inset:-9px;border:1px solid rgba(142,244,255,.58);animation:tutorialTargetOuterV62 1.15s ease-out infinite}
.tutorial-focus-ring-v61.is-strong::after{inset:-17px;border:1px solid rgba(255,255,255,.22);animation:tutorialTargetOuterV62 1.15s .28s ease-out infinite}
@keyframes tutorialTargetSignalV62{0%,100%{filter:brightness(.9);box-shadow:0 0 0 1px rgba(142,244,255,.45),0 0 12px 4px rgba(142,244,255,.42),0 0 28px 9px rgba(142,244,255,.18)}50%{filter:brightness(1.35);box-shadow:0 0 0 2px rgba(255,255,255,.86),0 0 24px 8px rgba(142,244,255,.82),0 0 55px 18px rgba(142,244,255,.32)}}
@keyframes tutorialTargetOuterV62{0%{opacity:.95;transform:scale(.92)}75%,100%{opacity:0;transform:scale(1.12)}}

/* Candados del Tutorial 1: entrada narrativa + transformación posterior. */
.tutorial-lock-locked .tutorial-lock-red{opacity:0;transform:scale(.48) translateY(9px);animation:tutorialLockEnterV62 2s .12s cubic-bezier(.16,.8,.2,1) forwards!important}
.tutorial-lock-unlock:not(.is-unlocked) .tutorial-lock-red{opacity:0;transform:scale(.62) translateY(7px);animation:tutorialLockEnterV62 .65s .70s cubic-bezier(.16,.8,.2,1) forwards!important}
@keyframes tutorialLockEnterV62{0%{opacity:0;transform:scale(.48) translateY(10px);filter:drop-shadow(0 0 0 currentColor)}55%{opacity:.78;transform:scale(1.06) translateY(0);filter:drop-shadow(0 0 25px currentColor)}100%{opacity:1;transform:scale(1) translateY(0);filter:drop-shadow(0 0 14px currentColor)}}

/* 1 QR = 1 STORY toma el lenguaje de los badges NEW: pulso, halo y barrido. */
.tutorial-step-4 .tutorial-micro-rule{position:relative!important;isolation:isolate;overflow:hidden!important;border-color:#6aa7b5!important;color:#d9fcff!important;box-shadow:0 0 10px rgba(142,244,255,.20),0 0 22px rgba(142,244,255,.08)!important;animation:tutorialMicroPulseV62 1.65s ease-in-out infinite!important}
.tutorial-step-4 .tutorial-micro-rule::before{content:"";position:absolute;inset:-1px;border-radius:inherit;z-index:-1;box-shadow:0 0 0 1px rgba(142,244,255,.24),0 0 12px rgba(142,244,255,.35),0 0 26px rgba(142,244,255,.14);animation:tutorialMicroHaloV62 1.65s ease-in-out infinite}
.tutorial-step-4 .tutorial-micro-rule::after{content:"";position:absolute;inset:-40% auto -40% -65%;width:46%;background:linear-gradient(105deg,transparent,rgba(255,255,255,.12),rgba(255,255,255,.95),rgba(255,255,255,.14),transparent);transform:skewX(-18deg);animation:tutorialMicroSweepV62 1.25s ease-in-out infinite;pointer-events:none}
@keyframes tutorialMicroPulseV62{0%,100%{transform:scale(1);filter:brightness(.94)}50%{transform:scale(1.055);filter:brightness(1.18)}}
@keyframes tutorialMicroHaloV62{0%,100%{opacity:.55}50%{opacity:1}}
@keyframes tutorialMicroSweepV62{0%{left:-65%;opacity:0}18%{opacity:1}62%{left:118%;opacity:.9}100%{left:118%;opacity:0}}

/* La composición se calcula en JS; evitamos transiciones que puedan desplazar los stacks. */
.tutorial-step-1 .tutorial-tk-stage-v61,.tutorial-step-2 .tutorial-tk-stage-v61,.tutorial-step-3 .tutorial-tk-stage-v61,.tutorial-step-4 .tutorial-tk-stage-v61,.tutorial-step-5 .tutorial-tk-stage-v61{max-width:calc(100vw - 24px)}
.tutorial-step-3 .tutorial-bubble-v61,.tutorial-step-4 .tutorial-bubble-v61{max-width:calc(100vw - 32px)}

@media(max-width:600px){
  .tutorial-controls-nav .tutorial-nav-box{min-height:46px!important;font-size:8px!important}
  .tutorial-controls-final>.tutorial-back{min-height:46px!important}
  .tutorial-final-actions button{min-height:46px!important;font-size:8px!important}
  .tutorial-step-5 .tutorial-bubble-v61 h2{font-size:20px!important}
}
@media(prefers-reduced-motion:reduce){
  .tutorial-focus-ring-v61.is-strong,.tutorial-focus-ring-v61.is-strong::before,.tutorial-focus-ring-v61.is-strong::after,
  .tutorial-lock-locked .tutorial-lock-red,.tutorial-lock-unlock:not(.is-unlocked) .tutorial-lock-red,
  .tutorial-step-4 .tutorial-micro-rule,.tutorial-step-4 .tutorial-micro-rule::before,.tutorial-step-4 .tutorial-micro-rule::after{animation:none!important}
  .tutorial-lock-locked .tutorial-lock-red,.tutorial-lock-unlock:not(.is-unlocked) .tutorial-lock-red{opacity:1!important;transform:none!important}
}

/* ======================================================================
   v6.3 · TUTORIAL 1 · microajustes de foco, timing e interacción
   ====================================================================== */
/* HEADER TUTORIALES: ? más grande, perfectamente centrado dentro del círculo. */
.section-indicator-tutorials{
  display:grid!important;place-items:center!important;
  padding:0!important;box-sizing:border-box!important;
  font-size:20px!important;font-weight:700!important;line-height:1!important;
  text-align:center!important;text-indent:0!important;
}

/* Todos los controles principales comparten exactamente la altura de EMPEZAR. */
.tutorial-bubble-v61 .tutorial-controls button,
.tutorial-controls-first .tutorial-next,
.tutorial-controls-nav .tutorial-nav-box,
.tutorial-controls-final>.tutorial-back,
.tutorial-final-actions button{
  height:48px!important;min-height:48px!important;max-height:48px!important;
  aspect-ratio:auto!important;
}

/* PASO 2: el icono real permanece limpio desde el inicio; el halo llega después. */
.tutorial-target-clone-v62{
  background:transparent!important;border-color:transparent!important;
  border-radius:0!important;box-shadow:none!important;
  overflow:visible!important;color:#f2fdff!important;
  filter:drop-shadow(0 0 8px rgba(142,244,255,.18))!important;
}
.tutorial-target-clone-v62.is-signaled{
  filter:brightness(1.18) drop-shadow(0 0 10px rgba(142,244,255,.82)) drop-shadow(0 0 22px rgba(142,244,255,.48))!important;
}
.tutorial-target-clone-v62.nav-icon{display:grid!important;place-items:center!important}
.tutorial-target-clone-v62.nav-grid9{grid-template-columns:repeat(3,1fr)!important;grid-template-rows:repeat(3,1fr)!important}

/* PASO 3: 2 s adicionales de espera antes de la entrada de 2 s del candado. */
.tutorial-step-3 .tutorial-lock-locked .tutorial-lock-red{
  animation:tutorialLockEnterV62 2s var(--tutorial-lock-entry-delay,2120ms) cubic-bezier(.16,.8,.2,1) forwards!important;
}

/* PASO 4: TK cuadrado más contenido + badge QR mayor y alineado a la derecha. */
.tutorial-step-4 .tutorial-micro-rule{
  display:flex!important;width:max-content!important;max-width:100%!important;
  margin:13px 0 0 auto!important;padding:8px 13px!important;
  font-size:11px!important;line-height:1!important;letter-spacing:.085em!important;
}

/* Microfeedback luminoso al pulsar cualquier control/caja interactiva del tutorial. */
.tutorial-interaction-flash{animation:tutorialInteractionGlowV63 .44s cubic-bezier(.2,.8,.2,1)!important}
@keyframes tutorialInteractionGlowV63{
  0%{filter:brightness(1);box-shadow:0 0 0 rgba(142,244,255,0)}
  38%{filter:brightness(1.35);box-shadow:0 0 0 1px rgba(234,255,255,.92),0 0 16px 5px rgba(142,244,255,.72),0 0 34px 10px rgba(142,244,255,.28)}
  100%{filter:brightness(1);box-shadow:0 0 0 rgba(142,244,255,0)}
}

@media(max-width:600px){
  .section-indicator-tutorials{font-size:19px!important}
  .tutorial-bubble-v61 .tutorial-controls button,
  .tutorial-controls-first .tutorial-next,
  .tutorial-controls-nav .tutorial-nav-box,
  .tutorial-controls-final>.tutorial-back,
  .tutorial-final-actions button{height:48px!important;min-height:48px!important;max-height:48px!important}
  .tutorial-step-4 .tutorial-micro-rule{font-size:10px!important;padding:8px 12px!important}
}
@media(prefers-reduced-motion:reduce){.tutorial-interaction-flash{animation:none!important}}


/* ======================================================================
   v6.4 · TUTORIAL 1 · continuidad de candado, cierre y geometría final
   ====================================================================== */
/* HEADER: círculo TUTORIALES exactamente del tamaño del avatar; el ? conserva v6.3. */
.section-indicator>.section-indicator-tutorials{
  width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important;
  border-radius:50%!important;place-self:center!important;
}
@media(max-width:460px){.section-indicator>.section-indicator-tutorials{width:30px!important;height:30px!important;min-width:30px!important;min-height:30px!important}}
@media(max-width:370px){.section-indicator>.section-indicator-tutorials{width:27px!important;height:27px!important;min-width:27px!important;min-height:27px!important}}

/* PASO 2: la copia del icono conserva exactamente la geometría real del footer. */
.tutorial-target-clone-v62.nav-grid9{justify-content:center!important;align-content:center!important}

/* PASO 4: el mismo candado rojo del paso 3 aterriza aquí sin reentrada/fade. */
.tutorial-lock-bridge-v64{
  position:fixed;z-index:5212;display:grid;place-items:center;pointer-events:none;color:#ff686d;
  filter:drop-shadow(0 0 14px currentColor);transition:left .32s cubic-bezier(.2,.8,.2,1),top .32s cubic-bezier(.2,.8,.2,1),width .32s cubic-bezier(.2,.8,.2,1),height .32s cubic-bezier(.2,.8,.2,1);
}
.tutorial-lock-bridge-v64 .lock-svg{width:78%;height:78%;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.tutorial-step-4 .tutorial-lock-unlock:not(.is-unlocked) .tutorial-lock-red{opacity:1!important;transform:none!important;animation:none!important}
.tutorial-step-4 .tutorial-lock-stage.is-bridge-target .tutorial-lock-red{opacity:0!important}
.tutorial-step-4 .tutorial-lock-stage.is-bridged:not(.is-unlocked) .tutorial-lock-red{opacity:1!important;transform:none!important;animation:none!important}

/* PASO 5: texto centrado, TK del mismo ancho que CAJA TEXTO y controles finales apilados. */
.tutorial-step-5 .tutorial-bubble-v61{text-align:center!important}
.tutorial-step-5 .tutorial-step-label{justify-content:center!important;padding-left:42px!important;padding-right:42px!important}
.tutorial-step-5 .tutorial-bubble-v61 h2{margin-left:40px!important;margin-right:40px!important;text-align:center!important}
.tutorial-step-5 .tutorial-main-text,.tutorial-step-5 .tutorial-secondary-text{text-align:center!important}
.tutorial-step-5 .tutorial-controls-final>.tutorial-back{
  width:100%!important;height:30px!important;min-height:30px!important;max-height:30px!important;
  padding:0 10px!important;margin:0 0 8px!important;line-height:1!important;
}
.tutorial-step-5 .tutorial-start{
  position:relative!important;isolation:isolate;overflow:hidden!important;
  animation:tutorialStartPulseV64 1.7s ease-in-out infinite!important;
}
.tutorial-step-5 .tutorial-start::after{
  content:"";position:absolute;inset:-35% auto -35% -60%;width:42%;pointer-events:none;
  background:linear-gradient(105deg,transparent,rgba(255,255,255,.12),rgba(255,255,255,.92),rgba(255,255,255,.12),transparent);
  transform:skewX(-18deg);animation:tutorialStartSweepV64 1.55s ease-in-out infinite;
}
@keyframes tutorialStartPulseV64{0%,100%{filter:brightness(.96);box-shadow:0 0 10px rgba(210,35,42,.18)}50%{filter:brightness(1.16);box-shadow:0 0 0 1px rgba(255,99,107,.52),0 0 22px rgba(210,35,42,.48),0 0 38px rgba(210,35,42,.18)}}
@keyframes tutorialStartSweepV64{0%{left:-60%;opacity:0}18%{opacity:.9}62%{left:118%;opacity:.8}100%{left:118%;opacity:0}}
@media(prefers-reduced-motion:reduce){.tutorial-step-5 .tutorial-start,.tutorial-step-5 .tutorial-start::after{animation:none!important}}

/* ======================================================================
   v6.5 · TUTORIAL 1 · typewriter + microajustes finales de sesión
   ====================================================================== */
/* Typewriter real: el alto de cada bloque se reserva desde JS para evitar saltos. */
[data-tutorial-typewrite].tutorial-typewrite-pending{color:transparent!important;text-shadow:none!important}
[data-tutorial-typewrite].tutorial-typewrite-writing{visibility:visible}
.tutorial-step-label [data-tutorial-typewrite]{display:inline-block}

/* PASO 5: CTA finales con mayor presencia tipográfica. */
.tutorial-step-5 .tutorial-final-actions button{
  font-size:13px!important;font-weight:750!important;letter-spacing:.065em!important;
}
@media(max-width:600px){
  .tutorial-step-5 .tutorial-final-actions button{font-size:11px!important;letter-spacing:.055em!important}
}


/* ============================================================
   v6.6 · Tutorial voice + coherencia MIS STORIES + EXTRA por libro
           HOME destacado + QR preview + CTA
   ============================================================ */
/* MIS STORIES · NO LEÍDAS comparte la misma familia naranja de TODAVÍA POR LEER. */
.my-filter[data-my="unread"]{
  border-color:#6e3e1b!important;
  color:#d7a06f!important;
  background:linear-gradient(145deg,#1b1007,#100a06)!important;
  box-shadow:inset 0 0 0 1px rgba(255,156,66,.06),0 0 18px rgba(180,93,24,.08)!important;
}
.my-filter[data-my="unread"].active{
  border-color:#ff9c42!important;
  color:#fff0df!important;
  background:linear-gradient(145deg,#5a2c0d,#2a1509)!important;
  box-shadow:0 0 18px rgba(255,156,66,.22),inset 0 0 0 1px rgba(255,191,116,.12)!important;
}

/* HOME · DESTACADO TEMPORAL: CTA debajo del texto, abajo-izquierda. */
.home-highlight-copy{padding-bottom:18px!important}
.home-highlight-cta{
  position:static!important;left:auto!important;right:auto!important;bottom:auto!important;
  display:inline-flex!important;width:max-content!important;margin:2px 0 0!important;
  justify-content:flex-start!important;text-align:left!important;
}

/* LIBRO · 15 Stories + EXTRA = parrilla exacta de cuatro columnas. */
.collection-story-grid.book-grid-4x4{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:7px!important}
.collection-story-grid .book-extra-card{width:100%!important;aspect-ratio:2/3!important;border-radius:5px!important;min-width:0!important}
.collection-story-grid .book-extra-card>img,.collection-story-grid .book-extra-card>.extra-poster-placeholder{width:100%!important;height:100%!important;aspect-ratio:auto!important;object-fit:cover!important}
@media(max-width:390px){.collection-story-grid.book-grid-4x4{gap:5px!important}}

/* DESBLOQUEAR QR · ejemplo real de QR de la App con loop ambiental. */
.qr-photo-mode{min-height:250px!important;gap:14px!important}
.qr-app-demo-wrap{
  width:min(48vw,178px);aspect-ratio:1/1;padding:9px;border-radius:14px;background:#f7f7f4;
  box-shadow:0 0 0 1px rgba(142,244,255,.30),0 0 22px rgba(142,244,255,.12);
  display:grid;place-items:center;transform-origin:center;animation:qrAppDemoLoopV66 3.4s ease-in-out infinite;
}
.qr-app-demo{display:block;width:100%;height:100%;object-fit:contain;image-rendering:auto}
@keyframes qrAppDemoLoopV66{0%,100%{transform:scale(.985);filter:brightness(.92);box-shadow:0 0 0 1px rgba(142,244,255,.22),0 0 14px rgba(142,244,255,.08)}50%{transform:scale(1.025);filter:brightness(1.08);box-shadow:0 0 0 1px rgba(142,244,255,.55),0 0 28px rgba(142,244,255,.22)}}
.qr-photo-only #photoQr{font-size:150%!important;line-height:1.05!important;min-height:58px!important}
.qr-photo-only #galleryQr{min-height:48px!important}
@media(prefers-reduced-motion:reduce){.qr-app-demo-wrap{animation:none!important;transform:none!important}}

/* ======================================================================
   v6.7 · navegación superior + HOME/EXTRAS/QR/USER
   ====================================================================== */
/* DESBLOQUEAR QR · barrido luminoso continuo en la acción principal. */
.qr-photo-only #photoQr{
  position:relative!important;isolation:isolate;overflow:hidden!important;
  box-shadow:0 0 12px rgba(210,35,42,.16)!important;
}
.qr-photo-only #photoQr::after{
  content:"";position:absolute;inset:-35% auto -35% -55%;width:34%;pointer-events:none;
  background:linear-gradient(105deg,transparent,rgba(255,255,255,.10),rgba(255,255,255,.90),rgba(255,255,255,.12),transparent);
  transform:skewX(-18deg);animation:qrPhotoButtonSweepV67 2.15s ease-in-out infinite;
}
@keyframes qrPhotoButtonSweepV67{0%,18%{left:-55%;opacity:0}30%{opacity:.9}68%{left:122%;opacity:.76}100%{left:122%;opacity:0}}

/* EXTRA · descripción y aviso físico exactamente al ancho visual del póster. */
.extra-detail>.extra-text,.extra-detail>.physical-extra-notice{
  box-sizing:border-box!important;width:min(340px,82vw)!important;max-width:82vw!important;
  margin-left:auto!important;margin-right:auto!important;
}
.extra-detail>.physical-extra-notice{padding:12px 11px!important}
.extra-detail>.physical-extra-notice strong{display:block!important;line-height:1.32!important}
.extra-detail>.physical-extra-notice p{margin:7px 0 0!important;line-height:1.45!important}

/* HOME · jerarquía/alineación final. */
.home-previous>.section-title{justify-content:center!important;text-align:center!important}
.home-previous>.section-title>h2,.home-previous>.section-title>div{margin-left:auto!important;margin-right:auto!important;text-align:center!important}
.secondary-home-cta{font-size:130%!important}
.home-progress .link-btn{margin-left:0!important;margin-right:auto!important;text-align:left!important;justify-content:flex-start!important}

/* USER · contador secundario de MICRO-PESADILLAS leídas. */
.user-hero-microcount{
  margin-top:5px;color:#d96c76;font:750 7px/1.12 Oxanium,sans-serif;
  letter-spacing:.055em;white-space:nowrap;text-shadow:0 0 10px rgba(220,54,72,.18);
}
.user-hero-microcount strong{font:900 13px/.95 Oxanium,sans-serif;color:#ff8a94;font-variant-numeric:tabular-nums;vertical-align:-1px}
@media(max-width:390px){.user-hero-microcount{font-size:6.6px}.user-hero-microcount strong{font-size:12px}}

@media(prefers-reduced-motion:reduce){.qr-photo-only #photoQr::after{animation:none!important;display:none!important}}


/* ======================================================================
   v6.8 · HOME interaction FX + EXTRA CTA + LIBROS + USER Micro counter
   ====================================================================== */
/* EXTRA · ABRIR CONTENIDO comparte exactamente el ancho visual del póster. */
.extra-detail>.extra-destination{
  box-sizing:border-box!important;
  width:min(340px,82vw)!important;max-width:82vw!important;
  margin-left:auto!important;margin-right:auto!important;
}

/* HOME · CTA final en dos líneas, manteniendo el aumento de v6.7. */
.secondary-home-cta{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;line-height:1.08!important;gap:2px!important}
.secondary-home-cta>span{display:block!important}

/* HOME · feedback luminoso breve, sin desplazar ni escalar el layout. */
.home-interaction-glow{animation:homeInteractionGlowV68 .42s ease-out!important;position:relative;z-index:2}
@keyframes homeInteractionGlowV68{
  0%{filter:brightness(1);box-shadow:0 0 0 rgba(142,244,255,0)}
  28%{filter:brightness(1.30);box-shadow:0 0 0 1px rgba(142,244,255,.68),0 0 18px rgba(142,244,255,.52),0 0 34px rgba(210,35,42,.20)}
  100%{filter:brightness(1);box-shadow:0 0 0 rgba(142,244,255,0)}
}

/* LIBRO · los pósters ya comunican lectura con el triángulo verde.
   En estas subpáginas no duplicamos tiempo de lectura ni bubble LEÍDA. */
.collection-story-grid .story-read-time-badge,
.collection-story-grid .cover-read{display:none!important}

/* USER · Micro-Pesadillas como dato secundario, en cápsula oscura ajustada. */
.user-hero-microcount{
  display:inline-flex!important;align-items:center!important;gap:4px!important;
  width:max-content!important;max-width:100%!important;
  margin-top:6px!important;padding:4px 7px!important;
  border:1px solid rgba(217,108,118,.34)!important;border-radius:7px!important;
  background:rgba(5,3,4,.72)!important;
  box-shadow:inset 0 0 0 1px rgba(255,138,148,.03),0 0 11px rgba(220,54,72,.08)!important;
}
@media(prefers-reduced-motion:reduce){.home-interaction-glow{animation:none!important;filter:brightness(1.12)!important}}
