/* v9 竖屏短剧 + 牛牛小说（布局参考番茄小说的信息结构，视觉为原创「牛角·漫格」） */
/* ---- 竖屏 ---- */
.shorts{height:calc(100vh - 130px);height:calc(100dvh - 130px);overflow-y:auto;scroll-snap-type:y mandatory;border-radius:18px;max-width:460px;margin:0 auto;background:#000;border:2px solid #000;box-shadow:6px 6px 0 var(--horn);scrollbar-width:none}
.shorts::-webkit-scrollbar{display:none}
.sh-slide{position:relative;height:100%;scroll-snap-align:start;scroll-snap-stop:always;overflow:hidden;display:grid;place-items:center}
.sh-slide .bg{position:absolute;inset:0;background-size:cover;background-position:center;filter:blur(18px) brightness(.45);transform:scale(1.15)}
.sh-slide video,.sh-slide .poster{position:relative;width:100%;height:100%;object-fit:contain;z-index:1}
.sh-slide .poster{object-fit:cover}
.sh-ov{position:absolute;inset:auto 0 0 0;z-index:3;padding:90px 16px 18px;background:linear-gradient(transparent,rgba(0,0,0,.85));display:flex;flex-direction:column;gap:6px}
.sh-ov h2{font-size:18px;font-weight:900}.sh-ov p{font-size:12.5px;color:#e8cdb8;line-height:1.6}
.sh-ov .recap{background:rgba(255,176,46,.12);border-left:3px solid var(--horn);padding:6px 8px;border-radius:6px}
.sh-side{position:absolute;right:10px;bottom:150px;z-index:4;display:flex;flex-direction:column;gap:14px;align-items:center}
.sh-side button,.sh-side a{width:48px;height:48px;border-radius:50%;background:rgba(0,0,0,.55);border:1.5px solid rgba(255,255,255,.25);display:grid;place-items:center;font-size:20px;color:#fff;cursor:pointer}
.sh-side small{font-size:10px;color:#ddd;margin-top:-10px}
.sh-react{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden}
.sh-react span{position:absolute;right:-30%;white-space:nowrap;font-size:14px;font-weight:700;color:#fff;text-shadow:0 1px 3px #000;animation:shFly 7s linear forwards}
@keyframes shFly{to{right:120%}}
.sh-tl{position:absolute;left:0;right:0;bottom:0;height:3px;z-index:5;background:rgba(255,255,255,.15)}
.sh-tl i{display:block;height:100%;background:var(--horn);width:0}
.sh-tl b{position:absolute;bottom:3px;width:3px;height:8px;background:var(--mint);border-radius:2px}
.sh-pick{position:absolute;right:66px;bottom:150px;z-index:6;display:none;flex-wrap:wrap;gap:6px;max-width:220px;background:rgba(0,0,0,.8);padding:8px;border-radius:12px}
.sh-pick.on{display:flex}.sh-pick button{font-size:20px;padding:4px}
.sh-pick input{flex:1 1 100%;background:#120c08;border:1px solid #3a2a20;border-radius:8px;padding:6px;color:#fff}
.sh-hint{text-align:center;color:var(--dim);font-size:12px;margin-top:10px}
@media (max-width:640px){.shorts{height:calc(100dvh - 120px);border-radius:0;border:0;box-shadow:none;margin:0 -16px}}
/* ---- 小说 ---- */
.nv-channel button{min-width:72px}
.nv-sec{margin:22px 0}.nv-sec h2{font-size:19px;font-weight:950;margin-bottom:10px;display:flex;align-items:baseline;gap:8px}
.nv-ranks{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.nv-rank{padding:14px}.nv-rank h3{font-size:16px;font-weight:950;margin-bottom:8px;display:flex;gap:8px;align-items:center}
.nv-rank ol{list-style:none;display:grid;gap:8px;padding:0}
.nv-rank li a{display:flex;gap:10px;align-items:center}
.nv-rank li .n{width:22px;font-weight:950;color:var(--dim);text-align:center}
.nv-rank li:nth-child(-n+3) .n{color:var(--horn)}
.nv-rank li img{width:40px;height:54px;object-fit:cover;border-radius:4px;border:1px solid #000}
.nv-rank li b{display:block;font-size:13.5px}.nv-rank li small{font-size:11px;color:var(--dim)}
.nv-books{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.nv-book{display:flex;gap:12px;padding:12px;background:var(--ink2);border:1px solid #2e2118;border-radius:14px}
.nv-book img{width:84px;height:112px;object-fit:cover;border-radius:6px;border:2px solid #000;box-shadow:3px 3px 0 var(--horn);flex:none}
.nv-book h3{font-size:15px;font-weight:900}.nv-book p{font-size:12.5px;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.nv-meta{font-size:11.5px;color:var(--dim);display:flex;gap:8px;flex-wrap:wrap}
.nv-tags{display:flex;gap:5px;flex-wrap:wrap}.nv-tags span{font-size:11px;padding:1px 7px;border-radius:6px;background:#2a1e15;color:#e8cdb8}
.nv-link{font-size:11.5px;color:var(--mint)!important;font-weight:800}
.nv-hero{display:grid;grid-template-columns:180px 1fr;gap:20px;padding:20px}
.nv-hero img{width:180px;aspect-ratio:3/4;object-fit:cover;border:2px solid #000;box-shadow:5px 5px 0 var(--horn)}
.nv-hero h1{font-size:26px;font-weight:950}
.nv-toc{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:6px}
.nv-toc a{padding:9px 12px;border-radius:10px;background:var(--ink2);border:1px solid #2e2118;font-size:13.5px;display:flex;gap:8px}
.nv-toc a small{margin-left:auto;color:var(--mint);font-size:11px}
.nv-reader{max-width:760px;margin:0 auto}
.nv-bar{position:sticky;top:0;z-index:20;display:flex;gap:8px;align-items:center;padding:10px 0;background:var(--nv-bar-bg,var(--ink,#0d0907));color:var(--text)}
.nv-bar b{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nv-text{font-size:18px;line-height:2;color:var(--nv-text,#efe3d6);padding:10px 4px}
.nv-text h1{font-size:22px;margin:10px 0 18px}
.nv-p{position:relative;margin:0 0 1em;text-indent:2em}
.nv-p .pc{position:relative;display:inline-grid;place-items:center;min-width:22px;height:18px;padding:0 5px;margin-left:6px;font-size:11px;text-indent:0;border-radius:9px;background:#2a1e15;color:var(--horn);cursor:pointer;vertical-align:middle;line-height:1}
.nv-p .pc.has{background:var(--horn);color:#1a0d04}
.nv-dm{height:0;position:relative;overflow:visible}
.nv-dm span{position:absolute;top:-1.7em;right:-30%;white-space:nowrap;font-size:12.5px;color:var(--mint);background:rgba(13,9,7,.6);padding:0 6px;border-radius:6px;animation:shFly 9s linear forwards;text-indent:0}
.nv-pc-box{margin:4px 0 14px;padding:10px;border:1px dashed #3a2a20;border-radius:10px;font-size:13px;text-indent:0}
.nv-pc-box form{display:flex;gap:6px;margin-top:6px}.nv-pc-box input{flex:1;background:#120c08;border:1px solid #3a2a20;border-radius:8px;padding:6px 8px;color:#fff}
.nv-pc-box li{list-style:none;padding:3px 0;color:var(--muted)}
.nv-epbar{display:flex;gap:10px;align-items:center;padding:12px 14px;margin:14px 0;border-radius:12px;background:linear-gradient(90deg,#10281f,#0a1612);border:1px solid #1e4a3a}
.nv-epbar p{flex:1;font-size:13px}
.nv-nav{display:flex;gap:10px;justify-content:space-between;margin:20px 0}
.nv-drawer{position:fixed;inset:0;z-index:100;display:none}
.nv-drawer.on{display:block}
.nv-drawer .mask{position:absolute;inset:0;background:rgba(0,0,0,.6)}
.nv-drawer .pane{position:absolute;left:0;top:0;bottom:0;width:min(340px,86vw);background:var(--ink2);border-right:2px solid #000;padding:16px;overflow-y:auto}
.nv-drawer .pane a{display:flex;gap:6px;padding:9px 6px;border-bottom:1px solid #2a1e15;font-size:13.5px}
.nv-drawer .pane a.on{color:var(--horn);font-weight:900}
.nv-drawer .pane a small{margin-left:auto;color:var(--mint)}
@media (max-width:800px){.nv-ranks{grid-template-columns:1fr}.nv-hero{grid-template-columns:110px 1fr;padding:14px}.nv-hero img{width:110px}.nv-hero h1{font-size:20px}}

/* v10.9 light reader contrast */
html[data-theme=light]{--nv-text:#2a1a10;--nv-bar-bg:#f3ebe2}
