/* ── Page Video Runtime ── */

#page-video{position:relative;overflow-x:hidden;background:#f0f0f2;}

/* ── Hero zone (sticky header + bg) ── */
.vid-hero{position:relative;}
.vid-bg-wrap{position:absolute;inset:0;z-index:0;pointer-events:none;
  -webkit-mask-image:linear-gradient(to bottom,black 30%,rgba(0,0,0,0.6) 58%,rgba(0,0,0,0.15) 78%,transparent 95%);
  mask-image:linear-gradient(to bottom,black 30%,rgba(0,0,0,0.6) 58%,rgba(0,0,0,0.15) 78%,transparent 95%);}
.vid-bg-layer{position:absolute;inset:0;background:linear-gradient(180deg,#1a1030 0%,#0a0818 100%);background-size:cover;background-position:center top;transition:opacity 0.65s ease;}

/* ── Topbar ── */
.vid-sticky{position:-webkit-sticky;position:sticky;top:0;z-index:30;background:transparent;}
.vid-topbar{display:flex;align-items:center;padding:calc(12px + var(--safe-top)) 14px 8px;gap:10px;}
.vid-menu-btn{flex-shrink:0;display:flex;flex-direction:column;gap:5px;cursor:pointer;padding:3px 0;}
.vid-menu-btn span{display:block;height:2px;border-radius:1px;background:rgba(255,255,255,0.9);}
.vid-menu-btn span:nth-child(1),.vid-menu-btn span:nth-child(3){width:22px;}
.vid-menu-btn span:nth-child(2){width:15px;}

.vid-search-box{flex:1;display:flex;align-items:center;gap:8px;background:rgba(255,255,255,0.14);-webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%);border:1px solid rgba(255,255,255,0.2);border-radius:99px;height:38px;padding:0 14px;cursor:pointer;}
.vid-search-hint{font-size:14px;color:rgba(255,255,255,0.65);flex:1;}
.vid-search-sep{width:1px;height:14px;background:rgba(255,255,255,0.28);flex-shrink:0;}
.vid-search-filter{font-size:13px;color:rgba(255,255,255,0.85);font-weight:500;flex-shrink:0;}

/* ── L1 tabs (推荐/中文AV/日本AV...) ── */
.vid-l1-bar{display:flex;align-items:center;padding:4px 14px 10px;gap:0;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none;background:transparent;touch-action:pan-x;overscroll-behavior-x:contain;}
.vid-l1-bar::-webkit-scrollbar{display:none;}
.vid-l1-tab{flex-shrink:0;padding:6px 14px;font-size:14px;color:rgba(255,255,255,0.5);cursor:pointer;white-space:nowrap;transition:all 0.2s;position:relative;}
.vid-l1-tab.active{color:#fff;font-weight:700;font-size:16px;}
.vid-l1-tab.active::after{content:'';position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:16px;height:3px;background:#fff;border-radius:2px;}

/* ── L2 tabs (全部/最新/排行榜) · 跟 L3 同一套设计 · 白胶囊带图标 ── */
.vid-l2-bar{
  display:flex;
  align-items:center;
  padding:12px 14px 6px;
  gap:8px;
  background:#f0f0f2;
  overflow-x:auto;overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;touch-action:pan-x;
}
.vid-l2-bar::-webkit-scrollbar{display:none;}
.vid-l2-tab{
  flex-shrink:0;
  height:30px;
  min-width:80px;
  padding:0 14px 0 10px;
  border-radius:99px;
  font-size:13px;
  font-weight:500;
  color:#3f3f46;
  background:#fff;
  border:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  cursor:pointer;
  white-space:nowrap;
  -webkit-tap-highlight-color:transparent;
  box-shadow:0 1px 2px rgba(0,0,0,0.04);
  transition:transform 0.12s,background 0.15s,color 0.15s;
  box-sizing:border-box;
}
.vid-l2-tab:active{transform:scale(0.96);}
.vid-l2-tab.active{
  background:#111;
  color:#fff;
  font-weight:700;
  box-shadow:none;
}
.vid-l2-tab.active .vid-l2-tab__icon{color:#fff;}
.vid-l2-tab__icon{
  flex-shrink:0;
  width:14px;
  height:14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#3f3f46;
}
.vid-l2-tab__icon svg{width:100%;height:100%;}

/* ── L3 chips (全部/麻豆/糖心...) · 跟 L2 完全一致大小，仅区别在无图标 ── */
.vid-l3-bar{
  display:flex;align-items:center;
  padding:6px 14px 14px;
  gap:8px;
  background:#f0f0f2;
  overflow-x:auto;overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  touch-action:pan-x;
  overscroll-behavior-x:contain;
}
.vid-l3-bar::-webkit-scrollbar{display:none;}
.vid-l3-chip{
  flex-shrink:0;
  height:30px;
  min-width:72px;
  padding:0 14px;
  border-radius:99px;
  font-size:13px;
  font-weight:500;
  color:#3f3f46;
  white-space:nowrap;
  background:#fff;
  border:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
  box-shadow:0 1px 2px rgba(0,0,0,0.04);
  transition:transform 0.12s,background 0.15s,color 0.15s;
  box-sizing:border-box;
}
.vid-l3-chip:active{transform:scale(0.96);}
.vid-l3-chip.active{
  background:#111;
  color:#fff;
  font-weight:700;
  box-shadow:none;
}

/* ── Video grid ── */
.vf-grid{display:flex;flex-wrap:wrap;background:#f0f0f2;padding:8px 8px 80px;gap:0;}
.vf-card{background:transparent;border-radius:0;box-shadow:none;width:calc(50% - 5px);margin:0 5px 16px 0;flex-shrink:0;cursor:pointer;-webkit-tap-highlight-color:transparent;}
.vf-card:nth-child(2n){margin-right:0;}
.vf-card:active .vf-thumb{transform:scale(0.98);}
.vf-thumb{width:100%;aspect-ratio:16/9;border-radius:10px;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;background:#1e2128;box-shadow:0 2px 8px rgba(0,0,0,0.08);transition:transform 0.15s;}
.vf-thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;}
.vf-thumb-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,0.55) 0%,rgba(0,0,0,0.08) 38%,transparent 60%);z-index:1;pointer-events:none;}
.vf-emoji{z-index:0;font-size:32px;filter:drop-shadow(0 2px 8px rgba(0,0,0,0.5));}

/* 右上角 badge（上新/VIP/独播 等） */
.vf-badge{position:absolute;top:6px;right:6px;z-index:2;font-size:10px;font-weight:800;padding:3px 8px;border-radius:5px;letter-spacing:0.3px;line-height:1.4;box-shadow:0 2px 6px rgba(0,0,0,0.25);}
.vf-b-vip{background:linear-gradient(135deg,#ffd166,#ffaa00);color:#5a2800;}
.vf-b-svip{background:linear-gradient(135deg,#c4a8ff,#8b5cf6);color:#2a0a5e;}
.vf-b-xianmian{background:linear-gradient(135deg,#ff8a3d,#ff5722);color:#fff;}
.vf-b-free{background:linear-gradient(135deg,#34d399,#10b981);color:#fff;}
.vf-b-new{background:linear-gradient(135deg,#ffd166,#fbbf24);color:#7a4a00;}
.vf-b-coin{background:linear-gradient(135deg,#f5c400,#c88000);color:#fff;}

/* 右下角评分 */
.vf-rating{position:absolute;bottom:6px;right:6px;z-index:2;font-size:13px;font-weight:800;color:#ffaa00;text-shadow:0 1px 4px rgba(0,0,0,0.85),0 0 2px rgba(0,0,0,0.5);letter-spacing:0.3px;}

.vf-info{padding:8px 2px 8px;}
.vf-title-row{display:flex;align-items:flex-start;gap:4px;min-width:0;}
.vf-title{color:#111;font-size:14px;font-weight:700;line-height:1.35;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;overflow:hidden;flex:1;min-width:0;letter-spacing:-0.2px;}
.vf-more{flex-shrink:0;width:18px;height:18px;display:flex;align-items:center;justify-content:center;color:rgba(0,0,0,0.25);font-size:16px;cursor:pointer;font-weight:700;line-height:1;}
.vf-subtitle{font-size:12px;color:rgba(0,0,0,0.42);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.4;}

/* ── Ad slot in grid ── */
.vf-ad{border-radius:8px;overflow:hidden;aspect-ratio:16/9;background:#111;position:relative;cursor:pointer;width:100%;}
.vf-ad img{width:100%;height:100%;object-fit:cover;display:block;}
.vf-ad-label{position:absolute;top:6px;right:8px;font-size:9px;color:rgba(255,255,255,0.5);background:rgba(0,0,0,0.45);padding:2px 6px;border-radius:3px;}
