/* 91jav 前台样式 */

:root {
  /* 颜色 */
  --bg:        #15171a;
  --nav:       #1b1e22;
  --surface:   #21262b;   /* 卡面 */
  --surface-2: #23272c;   /* 输入框/次级 */
  --card:      #1e2228;   /* hover 预览卡 */
  --footer:    #101215;
  --accent:    #4f8fcf;   /* 冷蓝 */
  --accent-2:  #8fbce8;
  --accent-strong: #3f78b5;
  --accent-soft: #8fbce8;
  --text:      #e6e8ea;
  --text-2:    #c4c8cd;
  --text-3:    #d6d9dd;
  --muted:     #8a9099;
  --muted-2:   #7e848c;
  --faint:     #6b717a;
  --line:      rgba(255,255,255,.07);
  --line-2:    rgba(255,255,255,.12);
  --chip-bg:   rgba(79,143,207,.16);
  --chip-bd:   rgba(79,143,207,.4);
  --chip-fg:   #cfe0f2;

  /* 统一 gutter：小屏随屏宽流动；大屏内容封顶 1700 居中、留白不再过空。
     每条楼层都用同一条 var(--gut)，不准单独铺满屏。 */
  --content-max: 1700px;
  --gut: max(clamp(24px, 6vw, 160px), (100% - var(--content-max)) / 2);

  /* 播放器 V2.0：Web/H5 共用渲染值，页面只负责布局。 */
  --player-icon-size: 22px;
  --player-hit-web: 36px;
  --player-hit-h5: 44px;
  --player-center-play-web: 64px;
  --player-center-play-h5: 54px;
  --player-center-icon-web: 26px;
  --player-center-icon-h5: 22px;
  --player-progress-web: 4px;
  --player-progress-h5: 3px;
  --player-progress-dragging: 8px;
  --player-thumb-size: 12px;
  --player-thumb-dragging: 18px;
  --player-node-size: 7px;
  --player-control-gap: 4px;
  --player-group-gap: 12px;
  --player-control-radius: 6px;
  --player-bubble-radius: 6px;
  --player-motion-fast: 140ms;
  --player-motion-layer: 200ms;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-family: 'Noto Sans SC', sans-serif;
  font-size: 14px;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; border: 0; background: none; }
input, textarea { font-family: inherit; }

::-webkit-scrollbar { height: 8px; width: 8px; }
::-webkit-scrollbar-thumb { background: rgba(128,128,128,.35); border-radius: 8px; }
::-webkit-scrollbar-track { background: transparent; }
.srail { scrollbar-width: none; }
.srail::-webkit-scrollbar { display: none; }

/* gutter 工具类 */
.gut  { padding-inline: var(--gut); }
.gutm { margin-inline: var(--gut); }
/* 自带 gutter 的"楼层级"组件若被放进 .gut 容器，取消其自带 gutter，避免双重缩进（与同级区块对齐） */
.gut .floor-head, .gut .ad-floor { padding-inline: 0; }

/* 占位条纹 */
.ph-cover   { background: repeating-linear-gradient(135deg,#21262b 0 8px,#272c31 8px 16px); }
.ph-hover   { background: repeating-linear-gradient(135deg,#23272c 0 10px,#2a2f34 10px 20px); }
.ph-hero    { background: repeating-linear-gradient(135deg,#23272c 0 12px,#2a2f34 12px 24px); }
.ph-avatar  { background: repeating-linear-gradient(135deg,#21262b 0 8px,#272c31 8px 16px); }
.ph-ad      { background: repeating-linear-gradient(135deg,#1a1d21 0 10px,#1d2125 10px 20px); }

/* ===================== 导航 ===================== */
/* 导航吸顶：sticky 必须放在「有移动空间的包裹层」上。.nav 被包在 #nav 里、二者同高，
   若把 sticky 放 .nav 则零移动空间(一滚就跟走=不吸顶)，故吸顶放到 #nav 包裹层。 */
#nav { position: sticky; top: 0; z-index: 50; }
.nav { background: rgba(0,0,0,.88); border-bottom: 1px solid var(--accent); backdrop-filter: blur(7px); -webkit-backdrop-filter: blur(7px); }
.nav__inner { display: flex; align-items: center; gap: 32px; height: 80px; padding-inline: var(--gut); }
.logo { font-weight: 700; font-size: 18px; letter-spacing: .04em; color: #fff; white-space: nowrap; }
.logo span { color: var(--accent); }
.nav__menu { display: flex; align-items: center; gap: 24px; font-size: 14px; }
.nav__menu a { color: var(--text); letter-spacing: .05em; padding-bottom: 4px; border-bottom: 2px solid transparent; white-space: nowrap; transition: color .12s, border-color .12s; }
.nav__menu a:hover, .nav__menu a.active { color: #fff; border-bottom-color: var(--accent); font-weight: 500; }
.nav__reserve { border: 1px dashed rgba(255,255,255,.22); border-radius: 3px; padding: 2px 9px; font-size: 11.5px; color: #9aa0a8; }
.nav__spacer { flex: 1; }
.search { display: flex; align-items: center; gap: 5px; width: 198px; background: transparent; border: 1px solid transparent; border-radius: 9999px; padding: 9px 16px; transition: width .18s ease, border-color .16s ease, box-shadow .16s ease, background .16s ease; }
.search input { border: 0; background: transparent; outline: none; color: var(--text-3); font: 400 14px 'Noto Sans SC'; flex: 1; min-width: 0; }
.nav__avatar { width: 34px; height: 34px; border-radius: 50%; flex: none; border: 1px solid rgba(255,255,255,.1);
  background: repeating-linear-gradient(135deg,#272b30 0 6px,#2e3338 6px 12px); }
.nav__burger { display: none; flex-direction: column; gap: 3.5px; width: 18px; cursor: pointer; }
.nav__burger span { height: 1.6px; background: var(--text-2); }
@media (max-width: 860px) {
  .nav__menu, .nav__reserve, .nav__spacer { display: none; }
  .nav__burger { display: flex; flex: none; }
}

/* ===================== 楼层标题 + 滑动进度细线 ===================== */
.floor-head { display: flex; align-items: center; justify-content: space-between; padding-block: 64px 24px; padding-inline: var(--gut); }
.floor-head.gap { gap: 12px; justify-content: flex-start; }
.floor-head h2 { font-size: 19px; font-weight: 700; margin: 0; color: #fff; letter-spacing: .01em; }
.floor-head h2.ops { color: var(--accent); }      /* 运营楼层（合集）蓝标 */
.floor-head .more { font-size: 13px; color: var(--muted); }
.floor-head .more:hover { color: var(--accent-2); }
.tag-sys { font-size: 11px; color: var(--muted); border: 1px solid var(--line-2); border-radius: 3px; padding: 2px 8px; }
.prog { width: 56px; height: 3px; border-radius: 2px; background: rgba(255,255,255,.14); position: relative; }
.prog > i { position: absolute; top: 0; bottom: 0; left: 0; width: 20px; border-radius: 2px; background: rgba(255,255,255,.55); transition: left .3s ease; }

/* ===================== 横滑卡带 ===================== */
.railwrap { position: relative; }
.gmask { position: absolute; top: 0; bottom: 0; width: var(--gut); background: var(--bg); z-index: 1; pointer-events: none; }
.gmask.l { left: 0; } .gmask.r { right: 0; }
.navbtn { position: absolute; top: 0; width: 74px; z-index: 20; display: flex; align-items: center; justify-content: center;
  cursor: pointer; color: #fff; font-size: 42px; font-weight: 300; line-height: 1; opacity: 0; transition: opacity .2s ease; }
.railwrap:hover .navbtn { opacity: 1; }
.navbtn.navL { left: var(--gut); background: linear-gradient(to right,rgba(8,10,12,.92),rgba(8,10,12,0)); }
.navbtn.navR { right: var(--gut); background: linear-gradient(to left,rgba(8,10,12,.92),rgba(8,10,12,0)); }
.railwrap[data-at-start="1"] .navL { opacity: 0 !important; pointer-events: none; }
.railwrap[data-at-end="1"] .navR { opacity: 0 !important; pointer-events: none; }
.clipbox { margin-inline: var(--gut); overflow-x: clip; overflow-y: visible; overflow-clip-margin: 24px; }
.track { display: flex; gap: 18px; padding: 0; transform: translateX(0); transition: transform .45s ease; }
.track--girls { gap: 24px; }

.home-video-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 20px 14px; margin: 0 var(--gut) 18px; }
.home-video-grid .vcard { width: auto; min-width: 0; transition: none; }
.home-video-grid .vcard__cover { border-radius: 6px; border-color: rgba(255,255,255,.06); }
.home-video-grid .vhover { border-radius: 6px; }

/* 视频卡 */
.vcard { display: block; width: 240px; flex: none; position: relative; color: inherit; container-type: inline-size; container-name: video-card; }
.vcard__hit { position: absolute; inset: 0; z-index: 1; border-radius: 8px; }
.vcard__hit:focus-visible { outline: 2px solid var(--accent-2); outline-offset: 3px; }
.vcard__cover { position: relative; aspect-ratio: 16/9; border-radius: 12px; overflow: hidden; border: 1px solid rgba(255,255,255,.05); }
.vcard__cover .dur { position: absolute; bottom: 7px; right: 7px; font: 400 11px 'Noto Sans SC'; color: #fff; background: rgba(0,0,0,.7); padding: 2px 6px; border-radius: 3px; }
.vcard__cover .prog-w { position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: rgba(255,255,255,.2); }
.vcard__cover .prog-w > i { display: block; height: 100%; background: var(--accent); }
.vcard__ct { min-height: 19px; margin-top: 8px; font-size: 13px; line-height: 1.45; color: var(--text-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.vcard__tags { position: relative; z-index: 2; height: 19px; display: flex; align-items: center; gap: 6px; margin-top: 5px; overflow: hidden; }
.vcard__tags.is-empty { visibility: hidden; }
.vcard__tag { height: 18px; display: inline-flex; align-items: center; flex: 0 1 auto; min-width: 0; max-width: 104px; padding: 0 6px; border: 1px solid rgba(255,255,255,.08); border-radius: 3px; background: rgba(255,255,255,.025); color: #aab0b8; font-size: 10.5px; line-height: 1; font-weight: 500; white-space: nowrap; overflow: hidden; text-decoration: none; }
.vcard__tag:focus-visible { outline: 2px solid var(--accent-2); outline-offset: 2px; }
.vcard__tag-label { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.vcard__tag-label--medium, .vcard__tag-label--compact, .vcard__tag-label--mobile { display: none; }
.vcard__tagmore { display: none; flex: none; color: var(--faint); font-size: 13px; line-height: 1; }
.vcard__tags[data-has-more="1"][data-wide-truncated="0"] .vcard__tagmore { display: inline; }
@container video-card (max-width: 319px) {
  .vcard__tag-label--wide { display: none; }
  .vcard__tag-label--medium { display: inline; }
  .vcard__tag--tertiary { display: none; }
  .vcard__tag { max-width: 86px; }
  .vcard__tags .vcard__tagmore { display: none; }
  .vcard__tags[data-medium-more="1"][data-medium-truncated="0"] .vcard__tagmore { display: inline; }
}
@container video-card (max-width: 239px) {
  .vcard__tag-label--wide, .vcard__tag-label--medium, .vcard__tag-label--mobile { display: none; }
  .vcard__tag-label--compact { display: inline; }
  .vcard__tag { max-width: 72px; }
  .vcard__tags .vcard__tagmore { display: none; }
  .vcard__tags[data-compact-more="1"][data-compact-truncated="0"] .vcard__tagmore { display: inline; }
}
@container video-card (max-width: 199px) {
  .vcard__tag--secondary, .vcard__tag--tertiary { display: none; }
  .vcard__tag-label--wide, .vcard__tag-label--medium, .vcard__tag-label--compact { display: none; }
  .vcard__tag-label--mobile { display: inline; }
  .vcard__tag { max-width: 86px; }
  .vcard__tags .vcard__tagmore { display: none; }
  .vcard__tags[data-mobile-more="1"][data-mobile-truncated="0"] .vcard__tagmore { display: inline; }
}
.film-attr-badge {
  position: absolute;
  top: 6px;
  left: 6px;
  z-index: 3;
  height: 20px;
  min-width: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 7px;
  border-radius: 4px;
  background: var(--accent-strong);
  border: 1px solid rgba(255,255,255,.28);
  color: #fff;
  font-size: 10.5px;
  line-height: 1;
  font-weight: 800;
  white-space: nowrap;
  box-shadow: 0 4px 10px rgba(0,0,0,.18);
  backdrop-filter: none;
}
.topic-video-block { margin:8px 0 28px; }
.topic-video-block > h2 { margin:0 0 14px; color:#fff; font-size:19px; font-weight:700; }
.topic-video-block__caption { margin-top:10px; color:var(--muted); font-size:12.5px; }
.topic-video-placeholder { aspect-ratio:16/9; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:7px; border:1px solid var(--line-2); border-radius:8px; color:var(--muted); background:repeating-linear-gradient(135deg,#171a1e 0 12px,#1c2025 12px 24px); text-align:center; }
.topic-video-placeholder strong { color:#e6e8ea; font-size:15px; }
.topic-video-placeholder span { padding:0 18px; font-size:12px; }
/* 赞助卡（原生广告）：跟随视频卡尺寸、"广告"角标、缓和呼吸动效(非狂闪)、无 hover —— 不伪装、助识别 */
.vcard--sp { cursor: pointer; }
.vcard--sp .vcard__cover { background: linear-gradient(135deg,#242a31,#1c2127); display: flex; align-items: center; justify-content: center; }
.vcard--sp .vcard__cover::after { content: ''; position: absolute; inset: 0; background: linear-gradient(115deg, transparent 40%, rgba(79,143,207,.10) 50%, transparent 60%); animation: spShine 3.2s ease-in-out infinite; }
@keyframes spShine { 0%,100% { opacity: .35; } 50% { opacity: 1; } }
.vcard--sp .vcard__ct { color: var(--muted); }
/* 通用赞助角标/占位（赞助卡 + 相关推荐赞助卡共用）*/
.sp-badge { position: absolute; top: 7px; left: 7px; z-index: 4; font-size: 12px; line-height: 1; font-weight: 700; color: #0f1114; background: #e8c45a; border-radius: 4px; padding: 4px 8px; }  /* 广告身份优先于内容属性角标 */
.sp-ph { position: relative; z-index: 1; font: 400 12px ui-monospace,monospace; color: #6f7680; }
.ad--728 { max-width: 728px; margin: 0 auto; }
/* 详情页右侧竖幅 300×600（广告位5）—— 三类选择器提特异性，压过基础 .ad-rect 的 height:150 */
.detail-rail .ad-rect.ad-rect--tall { aspect-ratio: 1/2; height: auto; width: 100%; max-width: 300px; }
/* 详情页相关推荐赞助卡（广告位6）：复用 .rrail 的 .c/.ct，加底色+角标+缓和动效、无 hover */
.rr-sp { display: flex; gap: 11px; border-radius: 8px; padding: 6px; cursor: pointer; }
.rr-sp .c { position: relative; width: 140px; flex: none; aspect-ratio: 16/9; border-radius: 5px; overflow: hidden; background: linear-gradient(135deg,#242a31,#1c2127); display: flex; align-items: center; justify-content: center; }
.rr-sp .c::after { content: ''; position: absolute; inset: 0; background: linear-gradient(115deg, transparent 40%, rgba(79,143,207,.10) 50%, transparent 60%); animation: spShine 3.2s ease-in-out infinite; }
.rr-sp .ct { color: var(--muted); font-size: 12.5px; line-height: 1.45; }

/* 视频卡悬停只在封面原位展示预览，不扩张卡片，也不附带操作。 */
.vhover { position: absolute; top: 0; left: 0; width: 100%; aspect-ratio: 16/9; z-index: 3; border-radius: 12px; overflow: hidden; opacity: 0; pointer-events: none; transition: opacity .18s ease; }
.vcard:hover .vhover { opacity: 1; }
.vhover__cover { position: absolute; inset: 0; }
.vhover-preview { position: absolute; inset: 0; overflow: hidden; background: linear-gradient(118deg, rgba(8,11,15,.20), rgba(8,11,15,.04) 42%, rgba(8,11,15,.32)), url('../img/actress-cover.jpg') 50% 18% / cover no-repeat; animation: vhoverPreviewPan 2.4s ease-in-out infinite alternate; }
.vhover-preview::after { content: ''; position: absolute; inset: -12%; background: linear-gradient(108deg, transparent 28%, rgba(255,255,255,.18) 49%, transparent 70%); animation: vhoverPreviewSweep 1.8s ease-in-out infinite alternate; }
@keyframes vhoverPreviewPan { from { background-position: center, 44% 16%; } to { background-position: center, 56% 24%; } }
@keyframes vhoverPreviewSweep { from { transform: translateX(-22%); } to { transform: translateX(22%); } }

/* 按钮 */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; border-radius: 5px; font-size: 14px; font-weight: 500; text-decoration: none; cursor: pointer; transition: filter .12s, border-color .12s; }
.btn--primary { background: var(--accent); color: #fff; font-weight: 700; padding: 12px 24px; }
.btn--primary:hover { filter: brightness(1.08); }
.btn--ghost { border: 1px solid rgba(255,255,255,.26); color: var(--text); padding: 12px 20px; }
.btn--ghost:hover { border-color: rgba(255,255,255,.5); }
.btn--sm { padding: 9px 13px; font-size: 12.5px; }
.btn--block { width: 100%; }
.tri { width: 0; height: 0; border-left: 9px solid currentColor; border-top: 6px solid transparent; border-bottom: 6px solid transparent; }
.action-icon { width: 1.15em; height: 1.15em; display: block; flex: none; overflow: visible; color: currentColor; }
/* 收藏文案 收藏↔已收藏 等宽，切换不跳动（D4）；em 单位同时适配 hero 与 btn--sm 卡片按钮 */
.js-fav-txt { display: inline-block; min-width: 3.4em; text-align: center; }
.btn.is-on { background: var(--chip-bg); color: var(--accent-2); border-color: var(--chip-bd); }

/* ===================== HERO（内收圆角影院卡） ===================== */
/* Hero = flex 纵向分区(文字区 flex:1 + 缩略条 固定)，缩略条进入正常流不再绝对定位压住按钮(对照 91SM)；
   高度随视口收缩、封顶 600，首屏底部露出下一层(热门推荐标题+卡片顶 ~80-120px) */
.hero { position: relative; display: flex; flex-direction: column; margin-top: 24px; margin-inline: var(--gut);
        height: clamp(480px, calc(100svh - 240px), 600px); border-radius: 14px; overflow: hidden; }
.hero__fill { position: absolute; inset: 0; }   /* 大图铺满整张 hero，垫在文字/缩略条之下 */
.hero__ph { position: absolute; top: 30%; right: 14%; font: 400 12px ui-monospace,monospace; color: #5b626b; }
.hero__scrim-l { position: absolute; inset: 0; background: linear-gradient(90deg,rgba(15,17,20,.97) 0%,rgba(15,17,20,.93) 24%,rgba(15,17,20,.55) 48%,rgba(15,17,20,.1) 72%,rgba(15,17,20,0) 84%); }
.hero__scrim-b { position: absolute; left: 0; right: 0; bottom: 0; height: 300px; background: linear-gradient(to top,rgba(15,17,20,.97) 14%,rgba(15,17,20,.55) 52%,transparent); }
.hero__body { position: relative; z-index: 2; flex: 1 1 auto; min-height: 0; overflow: hidden; padding: 52px 48px 0; max-width: 600px; display: flex; flex-direction: column; }
.hero__title { font-size: 38px; font-weight: 700; line-height: 1.26; color: #fff; letter-spacing: .01em; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; transition: opacity .3s ease; }
.hero__tagline { font-size: 14px; color: var(--accent-2); margin-top: 18px; letter-spacing: .06em; }
.hero__desc { font-size: 14px; line-height: 1.75; color: #aab0b8; margin: 14px 0 24px; max-width: 520px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.hero__attrs { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 28px; }
.hero__attrs span { font-size: 12px; color: var(--text-2); border: 1px solid rgba(255,255,255,.2); border-radius: 4px; padding: 4px 12px; }
.hero__cta { display: flex; align-items: center; gap: 12px; }
.hero__thumbs { position: relative; z-index: 2; flex: 0 0 auto; padding: 0 48px 22px; }
.hero__thumbs .row { display: grid; grid-template-columns: repeat(6,1fr); gap: 14px; scroll-behavior: smooth; }
.hthumb { width: auto; min-width: 0; cursor: pointer; }
.hthumb__c { position: relative; aspect-ratio: 16/9; border-radius: 6px; overflow: hidden; background: repeating-linear-gradient(135deg,#2a2f34 0 9px,#31363c 9px 18px); }
.hthumb__c .nm { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); font: 600 14px 'Noto Sans SC'; color: rgba(255,255,255,.92); }
.hthumb__c .dur { position: absolute; bottom: 6px; right: 6px; font: 400 11px 'Noto Sans SC'; color: #fff; background: rgba(0,0,0,.7); padding: 2px 6px; border-radius: 3px; }
.hthumb__c .sel { position: absolute; inset: 0; border-radius: 6px; box-shadow: inset 0 0 0 2px var(--accent), 0 0 18px rgba(79,143,207,.55); animation: heroSelIn .25s ease; }
@keyframes heroSelIn { from { opacity: 0; } to { opacity: 1; } }
/* 矮视口(桌面/平板)：hero 收缩后优先保住按钮+缩略条+露出感，简介作为次要元素收起 */
/* 简介收起时，给 厂商·日期·时长(tagline) 补底距，避免直接贴住下方标签 */
@media (min-width: 641px) and (max-height: 760px) { .hero__desc { display: none; } .hero__tagline { margin-bottom: 16px; } }
.hthumb__cap { margin-top: 8px; font-size: 12.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; transition: color .25s ease; }

/* ===================== 热门女优（圆头像） ===================== */
.gcard { display: block; width: 112px; flex: none; color: inherit; text-align: center; }
.gcard__a { width: 112px; height: 112px; border-radius: 50%; overflow: hidden; border: 1px solid rgba(255,255,255,.05); display: flex; align-items: center; justify-content: center; }
.gcard__a span { font: 400 11px ui-monospace,monospace; color: #5b626b; }
.gcard__name { margin-top: 8px; font-size: 13px; color: var(--text-3); font-weight: 500; }
.gcard__works { margin-top: 2px; font-size: 11.5px; color: var(--muted-2); }

/* ===================== 广告位 ===================== */
.ad { border: 1px dashed rgba(255,255,255,.18); border-radius: 8px; display: flex; align-items: center; justify-content: center;
  font: 400 11px ui-monospace,monospace; color: var(--faint); background: repeating-linear-gradient(135deg,#1a1d21 0 10px,#1d2125 10px 20px); }
.ad--banner { height: 90px; }
/* 广告轮播（Carousel）：淡入淡出、≤4个、不轮播视频 —— 《统一规格》§四之二。用于右侧栏竖幅/楼层间横幅 */
.adcar { position: relative; }
.adcar__slide { position: absolute; inset: 0; opacity: 0; transition: opacity .6s ease; pointer-events: none; }
.adcar__slide.is-active { opacity: 1; pointer-events: auto; }
.adcar__slide > .ad { width: 100%; height: 100%; }
.adcar--floor { height: 90px; }
.adcar--tall { width: 100%; max-width: 300px; aspect-ratio: 1/2; }
.adcar__dots { position: absolute; bottom: 8px; left: 50%; transform: translateX(-50%); display: flex; gap: 6px; z-index: 3; }
.adcar__dot { width: 6px; height: 6px; border-radius: 50%; background: rgba(255,255,255,.3); transition: background .3s; }
.adcar__dot.is-active { background: rgba(255,255,255,.85); }
/* 区分①：轮播位标识角标（一眼分清"多广告主轮播位"vs 静态横幅）—— 伪元素，所有 .adcar 自动带，无需改 HTML */
.adcar::before { content: '轮播 · 多广告主'; position: absolute; top: 8px; left: 8px; z-index: 4; pointer-events: none;
  font: 600 10px/1 ui-monospace,monospace; letter-spacing: .03em; color: #cfe0f2;
  background: rgba(15,17,20,.72); border: 1px solid rgba(143,188,232,.42); border-radius: 5px; padding: 4px 8px; }
/* 区分②：每张 slide 不同底色 + 左侧不同色 accent 条（切换时视觉差异明显，用项目石墨色板 蓝/绿/琥珀，无霓虹）*/
.adcar__slide:nth-child(1) .ad { background: repeating-linear-gradient(135deg,#171c24 0 10px,#1b212b 10px 20px); box-shadow: inset 3px 0 0 #4f8fcf; }
.adcar__slide:nth-child(2) .ad { background: repeating-linear-gradient(135deg,#16201b 0 10px,#1a2620 10px 20px); box-shadow: inset 3px 0 0 #7bc47f; }
.adcar__slide:nth-child(3) .ad { background: repeating-linear-gradient(135deg,#221c14 0 10px,#28211a 10px 20px); box-shadow: inset 3px 0 0 #e8c45a; }
.adcar__slide:nth-child(4) .ad { background: repeating-linear-gradient(135deg,#201620 0 10px,#261a26 10px 20px); box-shadow: inset 3px 0 0 #b88fd0; }
.ad-spec { opacity: .8; }   /* 广告占位里的桌面尺寸/计费字样：移动端隐藏(见 640 块)，桌面保留供对规格 */
.ad-floor { padding-block: 56px 0; padding-inline: var(--gut); }
/* 图标墙(.iconwall/.iconcell) 与 冠名条(.rk-sponsor) 已按《统一规格》§〇 全站砍掉，样式同步删除 */
/* 合集详情页·内联上下文导航：相关合集属于头部信息，不另起卡片楼层或弹层。 */
.coll-switcher { position: relative; margin: 14px 0 24px; container: coll-switcher / inline-size; }
.coll-caps { min-width: 0; }
.coll-inline { display: flex; min-width: 0; align-items: flex-start; gap: 12px; }
.coll-inline__label { flex: none; padding-top: 8px; color: var(--muted-2); font-size: 12px; white-space: nowrap; }
.coll-inline__items { display: flex; min-width: 0; flex: 1; flex-wrap: wrap; align-items: center; gap: 7px; }
.coll-inline-link { display: inline-flex; height: 32px; min-width: 0; align-items: center; gap: 6px; padding: 0 10px 0 11px; color: var(--text-2); white-space: nowrap; background: rgba(255,255,255,.022); border: 1px solid var(--line); border-radius: 6px; transition: color .13s ease, background .13s ease, border-color .13s ease; }
.coll-inline-link strong { max-width: 10em; overflow: hidden; font-size: 12px; font-weight: 500; text-overflow: ellipsis; }
.coll-inline-link small { color: var(--muted); font-size: 10.5px; }
.coll-inline-link i { color: var(--faint); font-size: 14px; font-style: normal; line-height: 1; transition: color .13s ease, transform .13s ease; }
.coll-inline-link:hover,.coll-inline-link:focus-visible { color: #fff; background: rgba(79,143,207,.09); border-color: rgba(79,143,207,.4); outline: none; }
.coll-inline-link:hover i,.coll-inline-link:focus-visible i { color: var(--accent-2); transform: translateX(1px); }
.coll-inline:not(.is-expanded) .coll-inline-link--extra,
.coll-stickybar:not(.is-expanded) .coll-inline-link--extra { display: none; }
.coll-inline-more { display: inline-flex; height: 32px; flex: none; align-items: center; gap: 6px; padding: 0 10px 0 11px; color: var(--accent-2); white-space: nowrap; cursor: pointer; font: inherit; background: rgba(79,143,207,.055); border: 1px solid rgba(79,143,207,.22); border-radius: 6px; transition: color .13s ease, background .13s ease, border-color .13s ease; }
.coll-inline-more[hidden] { display: none; }
.coll-inline-more strong { font-size: 12px; font-weight: 500; }
.coll-inline-more small { color: #789fc5; font-size: 10.5px; }
.coll-inline-more small[hidden] { display: none; }
.coll-inline-more i { color: #789fc5; font-size: 13px; font-style: normal; line-height: 1; transition: transform .16s ease; }
.coll-inline-more:hover,.coll-inline-more:focus-visible { color: #fff; background: rgba(79,143,207,.11); border-color: rgba(79,143,207,.46); outline: none; }
.coll-inline-more[aria-expanded="true"] i { transform: rotate(180deg); }

/* 吸顶态沿用同一按钮语言；展开时只让同一条导航自然增高，不生成第二层。 */
.coll-stickybar { position: fixed; top: 80px; left: 0; right: 0; z-index: 46; min-height: 50px; max-height: min(42vh,260px); overflow-y: auto; opacity: 0; visibility: hidden; pointer-events: none; background: rgba(15,17,20,.97); border-bottom: 1px solid var(--line); box-shadow: 0 12px 26px rgba(0,0,0,.3); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); transform: translateY(-4px); transition: opacity .14s ease, visibility .14s ease, transform .14s ease; }
.coll-switcher.is-stuck .coll-stickybar { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0); }
.coll-stickybar__inner { display: flex; min-height: 50px; min-width: 0; align-items: flex-start; gap: 14px; padding: 9px var(--gut); }
.coll-stickybar__current { display: flex; min-width: 0; flex: none; align-items: center; gap: 9px; }
.coll-stickybar__dot { width: 5px; height: 5px; flex: none; background: var(--accent); border-radius: 50%; }
.coll-stickybar__current strong { min-width: 0; max-width: min(24vw,320px); overflow: hidden; color: var(--text); font-size: 13px; font-weight: 500; white-space: nowrap; text-overflow: ellipsis; }
.coll-stickybar__current small { flex: none; color: var(--muted); font-size: 11px; }
.coll-stickybar__divider { width: 1px; height: 18px; flex: none; margin-top: 6px; background: var(--line-2); }
.coll-stickybar__links { display: flex; min-width: 0; flex: 1; flex-wrap: wrap; align-items: center; gap: 7px; }
.coll-stickybar__links .coll-inline-link { height: 30px; flex: none; gap: 5px; padding-inline: 8px; }
.coll-stickybar__links .coll-inline-more { height: 30px; gap: 5px; padding-inline: 8px; }

@container coll-switcher (max-width: 899px) {
  .coll-inline-link small { display: none; }
}
@container coll-switcher (max-width: 639px) {
  .coll-inline { flex-direction: column; gap: 7px; }
  .coll-inline__label { padding-top: 0; }
}
@media (max-width: 900px) {
  .coll-stickybar__divider { display: none; }
}
@media (max-width: 560px) {
  .coll-stickybar__current small,.coll-stickybar__links .coll-inline-more small { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .coll-inline-link,.coll-inline-link i,.coll-inline-more,.coll-inline-more i,.coll-stickybar { transition: none; }
}
/* 标签详情·页尾人物探索：位于分页后、页脚前，完整展示人物内链，不参与筛选或吸顶。 */
.tag-actress-footer { margin-top: 40px; padding-top: 24px; border-top: 1px solid var(--line); }
.tag-actress-footer[hidden] { display: none; }
.tag-actress-footer__head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.tag-actress-footer__head h2 { margin: 0; color: #fff; font-size: 16px; font-weight: 700; }
.tag-actress-footer__head p { margin: 4px 0 0; color: var(--muted); font-size: 11.5px; }
.tag-actress-footer__grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 0 22px; }
.tag-actress-footer__item { display: flex; min-width: 0; min-height: 44px; align-items: center; justify-content: space-between; gap: 10px; color: var(--text-2); border-bottom: 1px solid var(--line); transition: color .13s ease,border-color .13s ease; }
.tag-actress-footer__item strong { min-width: 0; max-width: 8em; overflow: hidden; color: inherit; font-size: 12.5px; font-weight: 500; white-space: nowrap; text-overflow: ellipsis; text-underline-offset: 3px; }
.tag-actress-footer__meta { display: inline-flex; flex: none; align-items: center; gap: 7px; }
.tag-actress-footer__meta small { color: var(--faint); font-size: 11px; font-weight: 400; }
.tag-actress-footer__item i { flex: none; color: #789fc5; font-size: 14px; font-style: normal; transition: transform .13s ease; }
.tag-actress-footer__item:hover,.tag-actress-footer__item:focus-visible { color: var(--accent-2); border-color: rgba(79,143,207,.32); outline: none; }
.tag-actress-footer__item:hover strong,.tag-actress-footer__item:focus-visible strong { text-decoration: underline; }
.tag-actress-footer__item:hover i,.tag-actress-footer__item:focus-visible i { transform: translateX(1px); }
@media (max-width: 980px) { .tag-actress-footer__grid { grid-template-columns: repeat(3,minmax(0,1fr)); } }
@media (max-width: 720px) { .tag-actress-footer__grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (prefers-reduced-motion: reduce) { .tag-actress-footer__item,.tag-actress-footer__item i { transition: none; } }
/* 合集总览页·合集卡（16:9 封面 + 合集名 + 影片数）—— collections.html 与合集式赞助专题卡共用 */
.ccard { display: block; }
.ccard__cover { position: relative; aspect-ratio: 16/9; border-radius: 8px; overflow: hidden; }
.ccard__count { position: absolute; right: 8px; bottom: 8px; font-size: 12px; color: #fff; background: rgba(0,0,0,.66); padding: 2px 8px; border-radius: 4px; }
.ccard__name { margin-top: 9px; font-size: 14px; font-weight: 500; color: var(--text); line-height: 1.45; }
.ccard__sub { margin-top: 3px; font-size: 12px; color: var(--muted); }
.ccard--sp .ccard__name { color: var(--text-3); }

/* ===================== 聚光位（最近更新） ===================== */
.spot-wrap { padding-block: 0 8px; padding-inline: var(--gut); }
/* 整模块填满内容宽(封顶 1560)、放大：播放器 58%(≤880)，信息卡吸收剩余宽；缩略图按比例缩放(始终 ~3 张，
   随模块一起变大)——大屏更大更协调、缩略不增数；不改布局。 */
.spot { position: relative; max-width: 1640px; margin: 0; padding-top: 24px; --splay-w: clamp(560px, 58%, 880px); }
.splay { position: absolute; left: 0; top: 0; width: var(--splay-w); aspect-ratio: 16/9; border-radius: 14px; overflow: hidden; box-shadow: 0 20px 48px rgba(0,0,0,.5); background: #0c0e11; cursor: pointer; z-index: 2; }
.splay .scover { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; transition: background .35s ease, opacity .22s ease; opacity: 1; }
.splay .scover .ph { font: 400 12px ui-monospace,monospace; }
.splay .scover .hint { position: absolute; left: 14px; bottom: 14px; display: inline-flex; align-items: center; gap: 8px; font-size: 11.5px; color: #fff; background: rgba(12,14,17,.62); border: 1px solid rgba(255,255,255,.18); padding: 5px 11px; border-radius: 999px; }
.splay .sprev { position: absolute; inset: 0; background: #0c0e11; display: flex; align-items: center; justify-content: center; opacity: 0; transition: opacity .22s ease; }
.splay:hover .sprev { opacity: 1; } .splay:hover .scover { opacity: 0; }
.splay .sprev .ph { font: 400 12px ui-monospace,monospace; color: #4a525c; }
.splay .sbar { position: absolute; left: 0; right: 0; bottom: 0; padding: 12px 16px; background: linear-gradient(to top,rgba(8,10,12,.9),transparent); }
.splay .sbar .track { height: 3px; border-radius: 2px; background: rgba(255,255,255,.22); position: relative; margin-bottom: 10px; display: block; }
.splay .sbar .track > i { position: absolute; left: 0; top: 0; bottom: 0; width: 24%; background: var(--accent); border-radius: 2px; }
.splay .sbar .row { display: flex; align-items: center; gap: 14px; color: var(--text); }
/* 信息卡吸收剩余宽(从播放器右缘-56起到模块右缘)、与播放器底边对齐(等高=播放器最大高495-24)；
   flex-column + 缩略轨 margin-top:auto 钉底消下方留白 */
.spot__info { margin-left: calc(var(--splay-w) - 56px); min-height: calc(880px * 9 / 16 - 24px); padding: 32px 34px 28px 84px; display: flex; flex-direction: column; border-radius: 16px; }
.spot__code { display: inline-flex; align-self: flex-start; align-items: center; gap: 7px; font: 500 11.5px 'Noto Sans SC'; padding: 3px 10px; border-radius: 3px; letter-spacing: .04em; margin-bottom: 10px; }
/* 关键信息留在设计宽度内、左对齐：信息卡再宽，标题/属性/按钮组也不摊薄（设计v10 §四.2） */
.spot__title { font-size: 24px; font-weight: 700; line-height: 1.36; margin: 0; max-width: 460px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.spot__attrs { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0 16px; max-width: 460px; }
.spot__attrs span { font-size: 12.5px; border-radius: 5px; padding: 4px 12px; }
/* 聚光位简介：两行截断 + 末尾自动"…"，不加展开按钮（看全文进详情）；填补信息卡空白 */
.spot__desc { font-size: 13.5px; line-height: 1.7; margin: 0 0 14px; max-width: 460px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.spot__cta { display: flex; align-items: center; gap: 12px; max-width: 460px; }
/* 两按钮精确等高：primary 补 1px 透明边框，与 ghost 的 1px 边框对齐盒模型 */
.hero__cta .btn--primary, .spot__cta .btn--primary { border: 1px solid transparent; }
/* 翻牌式轮播缩略轨：卡绝对定位、宽高/left/z-index 由 JS 按比例算；left 变化用 transition 平移
   (已看左叠各露~16% · 当前高亮 · 待看右排)；容器高度由 JS 设为卡高+6 */
.spot__thumbs { position: relative; overflow: hidden; padding-top: 6px; margin-top: auto; }
.spot__thumbs .t { position: absolute; top: 6px; left: 0; border-radius: 7px; cursor: pointer; box-shadow: 0 4px 12px rgba(0,0,0,.3); transition: left .34s cubic-bezier(.2,.7,.2,1), opacity .3s ease, box-shadow .25s ease, filter .2s ease; }
.spot__thumbs .t:hover { filter: brightness(1.08); }
.spot__thumbs .t.active { cursor: default; }

/* ===================== 页脚 ===================== */
.footer { border-top: 1px solid var(--line); background: var(--footer); padding-block: 48px 0; padding-inline: var(--gut); margin-top: 64px; }
.footer__top { display: flex; gap: 40px; flex-wrap: wrap; justify-content: space-between; }
.footer__brand { max-width: 320px; min-width: 260px; }
.footer__brand .desc { max-width: 320px; margin: 16px 0 0; color: var(--muted-2); font-size: 13.5px; font-weight: 400; line-height: 1.75; }
.footer__badges { display: flex; gap: 10px; margin-top: 12px; }
.footer__badges span { font-size: 11px; color: #aab0b8; border: 1px solid var(--line-2); border-radius: 4px; padding: 5px 12px; }
.footer__col { font-size: 12.5px; line-height: 2.1; color: var(--muted); }
.footer__col h4 { color: var(--text-2); font-weight: 500; margin: 0 0 8px; }
.footer__col a:hover { color: var(--text-2); }
.footer__bottom { margin-top: 34px; border-top: 1px solid var(--line); padding: 16px 0 22px; display: flex; justify-content: space-between; flex-wrap: wrap; gap: 10px; font-size: 11.5px; color: var(--faint); }

/* ===================== 通用页内容（面包屑/网格/筛选/分页/聚合） ===================== */
.page { padding-inline: var(--gut); }
.breadcrumb { min-width: 0; overflow: hidden; color: var(--muted); font-size: 12.5px; padding-block: 18px 0; }
.breadcrumb__list { width:min(100%,1360px); display: flex; align-items: center; flex-wrap: nowrap; gap: 8px; min-width: 0; overflow: hidden; margin: 0 auto; padding: 0; list-style: none; white-space: nowrap; }
.breadcrumb__item, .breadcrumb__sep { display: inline-flex; align-items: center; flex: none; min-width: 0; }
.breadcrumb__item[hidden], .breadcrumb__sep[hidden] { display: none !important; }
.breadcrumb__item:last-child { flex: none; overflow: hidden; }
.breadcrumb__item.is-truncated { overflow: hidden; }
.breadcrumb__item.is-truncated > a,
.breadcrumb__item:last-child .cur { display: block; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.breadcrumb a:hover { color: var(--text-2); }
.breadcrumb .cur { color: var(--text-2); }
.listhead { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; padding-block: 8px 0; }
.listhead h1 { font-size: 24px; font-weight: 700; color: #fff; margin: 0; }
.listhead .count { font-size: 13px; color: var(--muted); }
.sort { display: flex; align-items: center; gap: 8px; margin-left: auto; }
.sort__label { font-size: 12px; color: var(--muted-2); }
.chip { font-size: 12.5px; border-radius: 999px; padding: 5px 14px; cursor: pointer; transition: all .12s; background: var(--surface-2); color: var(--text-2); border: 1px solid rgba(255,255,255,.1); }
.chip:hover { border-color: rgba(255,255,255,.3); }
.chip.on { background: var(--accent); color: #fff; border-color: var(--accent); }

.filter { background: var(--nav); border-radius: 8px; padding: 6px 18px; margin-top: 24px; }
.filter__row { display: flex; align-items: center; gap: 14px; padding: 10px 0; }
.filter__row + .filter__row { border-top: 1px solid rgba(255,255,255,.05); }
.filter__label { font-size: 12.5px; color: var(--muted-2); width: 52px; flex: none; }
.filter__chips { display: flex; flex-wrap: wrap; gap: 8px; }
.filter__summary { font-size: 12.5px; color: var(--chip-fg); }
.filter__reset { font-size: 12px; color: var(--muted); cursor: pointer; margin-left: auto; }
.filter__reset:hover { color: var(--text-2); }
/* 相关聚合(.aggs/.agg)已随组合页移除 */

.grid { display: grid; gap: 18px; padding-top: 24px; grid-template-columns: repeat(4,1fr); }
/* 网格项必须 min-width:0：否则单行截断标题(nowrap)会把 1fr 轨道撑宽、整列溢出屏幕（源稿在卡片上写了 min-width:0） */
.grid > *, .review-grid > * { min-width: 0; }
.grid .vcard { width: auto; }
.grid--4 { grid-template-columns: repeat(4,1fr); }
.grid--3 { grid-template-columns: repeat(3,1fr); }
.grid--collections { grid-template-columns: repeat(5,1fr); }
.grid--actress { grid-template-columns: repeat(8,1fr); }
.grid--square { grid-template-columns: repeat(6,1fr); }

.pager { display: flex; align-items: center; justify-content: center; gap: 8px; padding: 48px 0 12px; flex-wrap: wrap; }
.pager a { color: var(--text-2); font-size: 13px; min-width: 38px; height: 38px; border-radius: 6px; display: inline-flex; align-items: center; justify-content: center; padding: 0 12px; transition: background .12s; cursor: pointer; }
.pager a:hover { background: var(--surface-2); }
.pager a.on { background: var(--accent); color: #fff; }
.pager a.is-disabled { opacity: .4; pointer-events: none; }
.pager .dots { color: var(--faint); padding: 0 4px; }
.pager-jump { display:inline-flex; align-items:center; gap:6px; margin-left:6px; color:var(--muted-2); font-size:12px; }
.pager-jump input { width:52px; height:32px; box-sizing:border-box; padding:0 7px; border:1px solid var(--line-2); border-radius:6px; color:var(--text); background:var(--surface-2); font:inherit; }
.pager-jump button { height:32px; padding:0 9px; border:1px solid var(--line-2); border-radius:6px; color:var(--text-2); background:var(--surface-2); font:inherit; cursor:pointer; }
.pager--web .pager-jump { margin:0 6px; }
.pager--web .pager-jump input { text-align:center; }
.pager--web .pager-jump span { color:var(--muted); }
.pager--web .pager-jump button { color:#fff; border-color:var(--accent); background:var(--accent); }
.pager__note { text-align: center; color: var(--faint); font-size: 12px; }
.pager__note, #pageNote, #userNote { display: none !important; }

/* 加载更多 */
.loadmore { display: flex; justify-content: center; padding: 40px 0 8px; }
.loadmore button { border: 1px solid var(--line-2); color: var(--text-2); border-radius: 8px; padding: 11px 28px; font-size: 13px; }
.loadmore button:hover { border-color: var(--accent); color: var(--accent-2); }

/* A-Z 索引 */
.az { display: flex; flex-wrap: wrap; gap: 6px; padding-top: 24px; }
.az a { font-size: 12.5px; border-radius: 6px; padding: 5px 0; min-width: 30px; text-align: center; background: var(--nav); color: var(--text-2); transition: all .12s; cursor: pointer; }
.az a:hover, .az a.on { background: var(--accent); color: #fff; }
.az a.all { padding: 5px 11px; min-width: 0; }

/* 空状态 / 骨架 */
.empty { text-align: center; color: var(--muted); padding: 48px 20px; }
.empty .big { color: var(--text-2); font-size: 15px; margin-bottom: 8px; }

/* 年龄弹窗 */
.agegate { position: fixed; inset: 0; z-index: 200; display: none; align-items: center; justify-content: center; padding: 20px; background: rgba(8,10,12,.85); backdrop-filter: blur(3px); }
.agegate.show { display: flex; }
.agegate__box { background: var(--nav); border: 1px solid var(--line-2); width: 460px; max-width: calc(100vw - 40px); border-radius: 14px; padding: 40px 38px; text-align: center; }
.agegate__18 { display: inline-flex; align-items: center; justify-content: center; width: 60px; height: 60px; color: var(--accent); font-size: 20px; font-weight: 700; border: 2px solid var(--accent); border-radius: 50%; margin: 18px 0 14px; }
.agegate__box h3 { color: #fff; font-size: 18px; font-weight: 600; margin: 0 0 12px; }
.agegate__box p { color: #aab0b8; font-size: 13px; line-height: 1.8; margin: 0 0 24px; }
.agegate__box .btn { width: 100%; margin-bottom: 10px; }
.agegate__leave { display: block; color: var(--text-2); font-size: 14px; border-radius: 8px; padding: 12px; }
.agegate__fine { color: var(--faint); font-size: 11px; line-height: 1.7; margin-top: 16px; }
.link { color: var(--accent-2); }

/* toast */
.toast { position: fixed; left: 50%; bottom: 38px; transform: translateX(-50%) translateY(12px); background: var(--surface-2); color: var(--text); border: 1px solid var(--line-2); border-radius: 8px; padding: 11px 20px; font-size: 13.5px; z-index: 300; opacity: 0; pointer-events: none; box-shadow: 0 10px 30px rgba(0,0,0,.5); transition: opacity .2s, transform .2s; }
.toast.show { opacity: 1; transform: translateX(-50%) translateY(0); }

/* ===================== 响应式（≤640 对应 移动·390 帧） ===================== */
@media (max-width: 1100px) { .grid { grid-template-columns: repeat(4,1fr); } .grid--actress { grid-template-columns: repeat(6,1fr); } .hero__thumbs .row { grid-template-columns: repeat(4,1fr); } }
@media (max-width: 820px) {
  .grid { grid-template-columns: repeat(3,1fr); }
  .home-video-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .grid--actress { grid-template-columns: repeat(4,1fr); }
  .grid--square { grid-template-columns: repeat(3,1fr); }
  .hero__title { font-size: 28px; }  /* 高度由基础 clamp(视口相关) 统一接管，保证露出感 */
  /* 聚光位降级为竖排堆叠 */
  .spot { max-width: none; margin: 0; }
  .splay { position: static; width: auto; }
  .spot__info { width: auto; margin-left: 0; margin-top: 0; padding: 24px; min-height: 0; }
}
@media (max-width: 640px) {
  /* 按钮组移动端：主按钮占满剩余宽（flex gap 排布，禁止绝对定位/负 margin） */
  .hero__cta .btn--primary, .spot__cta .btn--primary { flex: 1; }
  .nav__inner { height: 54px; gap: 12px; }
  .nav__menu, .nav__reserve, .nav__spacer { display: none; }
  .nav__burger { display: flex; flex: none; }          /* 不被压缩，始终露出 ☰ */
  /* 移动端搜索收成图标(设计稿:☰ LOGO ⟶ 🔍 头像)，点按打开全屏搜索浮层 */
  .search-wrap { margin-left: auto; flex: none; }
  .search { width: auto; flex: none; gap: 0; padding: 8px; background: transparent; border-color: transparent; }
  .search input, .search .search__clear { display: none; }
  .floor-head { padding-block: 24px 12px; }
  .floor-head h2 { font-size: 16px; }
  .prog { display: none; }
  /* 卡带在窄屏改原生横滑、隐藏箭头/遮罩 */
  .navbtn, .gmask { display: none; }
  .clipbox { overflow-x: auto; }
  .vcard { width: 158px; }
  .vhover { display: none; }
  /* 移动端 Hero(新设计)：干净 16:9 大图在上 + 标题/信息/按钮在下方(不再文字叠加在图上) */
  .hero { height: auto; margin-top: 12px; border-radius: 0; background: var(--bg); }
  .hero__fill { position: relative; inset: auto; width: 100%; aspect-ratio: 16/9; border-radius: 10px; background: repeating-linear-gradient(135deg,#23272c 0 12px,#2a2f34 12px 24px); }
  .hero__ph { position: absolute; top: 0; left: 0; right: auto; width: 100%; aspect-ratio: 16/9; display: flex; align-items: center; justify-content: center; }
  .hero__scrim-l, .hero__scrim-b { display: none; }   /* 图文分离后不需要压暗遮罩 */
  .hero__title { font-size: 22px; }
  .hero__body { max-width: none; background: var(--bg); padding: 16px 0 2px; }
  /* 设计稿移动端 Hero 仅:标题 → tagline → 按钮组(不展示简介/属性条) */
  .hero__desc, .hero__attrs { display: none; }
  .hero__tagline { margin-bottom: 14px; }
  /* 缩略条:横向滚动的纯封面占位(去掉内嵌大标题与下方说明，避免文字换行) */
  .hero__thumbs { padding: 10px 0 16px; }
  .hero__thumbs .row { display: flex; gap: 8px; overflow-x: auto; }
  .hero__thumbs .hthumb { width: 96px; flex: none; }
  .hthumb__c .nm, .hthumb__cap { display: none; }
  .grid { grid-template-columns: repeat(2,1fr); gap: 12px; }
  .home-video-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px 12px; }
  .film-attr-badge { top: 5px; left: 5px; height: 18px; min-width:30px; padding: 0 6px; border-radius: 3px; font-size: 10px; }
  .grid--actress { grid-template-columns: repeat(3,1fr); }
  .grid--square { grid-template-columns: repeat(2,1fr); }
  .ad-floor { padding-block: 24px 0; }
  .ad--banner { height: 64px; }                         /* 设计稿移动端通栏广告 64px */
  .adcar--floor { height: 64px; }                       /* 轮播楼层横幅 H5 同 64px */
  .ad-spec { display: none; }                           /* 移动端隐藏桌面尺寸/计费字样，只留"广告·位置" */
  .u-sec-extra { display: none; }                       /* 用户页区块头部的次要提示移动端隐藏，避免标题被挤换行 */
}

/* ============================================================
   页面级样式（详情 / 女优详情 / 女优库方卡 / 用户 / 静态 / 404 / 专题）
   ============================================================ */

/* ---------- 短视频详情页 ---------- */
body.is-short-detail { overflow: hidden; }
body.is-short-detail #footer { display: none; }
.short-detail-page { height: calc(100vh - 72px); min-height: 0; display: flex; flex-direction: column; overflow: hidden; background: #0d0f12; }
.short-detail-page .gut { padding-inline: var(--gut); }
.short-detail-page #shortRoot { flex: 1; min-height: 0; display: flex; }
.short-detail__crumb { flex: none; padding-block: 14px 10px; }
.short-detail__crumb .cur { min-width: 0; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.short-watch { flex: 1; min-height: 0; display: flex; align-items: center; justify-content: center; width: 100%; margin: 0 auto; padding: 14px var(--gut) 34px; box-sizing: border-box; }
.short-watch--vertical { max-width: 900px; }
.short-watch--wide { max-width: 900px; }
.short-stage { display: flex; align-items: center; justify-content: center; gap: 18px; min-width: 0; }
.short-phone { position: relative; height: min(76vh, 760px); aspect-ratio: 2/3; min-height: 520px; overflow: hidden; border-radius: 10px; border: 1px solid rgba(255,255,255,.08); background:
  radial-gradient(circle at 50% 28%, hsla(calc(203 + var(--sv, 0) * 9), 34%, 42%, .42), transparent 32%),
  linear-gradient(155deg, hsl(calc(210 + var(--sv, 0) * 7) 22% 20%), #111418 72%);
  box-shadow: 0 24px 70px rgba(0,0,0,.42);
}
.short-phone::before { content: ''; position: absolute; inset: 0; z-index: 0; background: repeating-linear-gradient(135deg, rgba(255,255,255,.045) 0 10px, transparent 10px 20px); opacity: .52; pointer-events: none; }
.short-phone::after { content: ''; position: absolute; inset: 0; z-index: 2; background: linear-gradient(to bottom, rgba(0,0,0,.22), transparent 28%, transparent 48%, rgba(0,0,0,.82)); pointer-events: none; }
.short-landscape { position: absolute; inset: 0; z-index: 1; display: grid; place-items: center; overflow: hidden; }
.short-landscape__bg { position: absolute; inset: 0; background:
  radial-gradient(circle at 28% 24%, hsla(calc(203 + var(--sv, 0) * 9), 44%, 54%, .46), transparent 36%),
  linear-gradient(145deg, hsl(calc(210 + var(--sv, 0) * 7) 24% 24%), #090b0f 68%);
  filter: blur(32px) brightness(.68); transform: scale(1.18); opacity: .92;
}
.short-landscape__frame { position: relative; z-index: 1; width: 100%; aspect-ratio: 16/9; display: flex; align-items: center; justify-content: center; background: #11161c; border-block: 1px solid rgba(255,255,255,.08); color: rgba(255,255,255,.54); font-size: 14px; font-weight: 800; }
.short-phone__top { position: absolute; top: 13px; left: 13px; right: 13px; z-index: 3; display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.short-phone__top a, .short-phone__top button { height: 28px; display: inline-flex; align-items: center; border-radius: 999px; background: rgba(10,12,15,.64); border: 1px solid rgba(255,255,255,.12); color: #fff; font-size: 12px; padding: 0 10px; }
.short-phone__top a { color: #dce8f5; font-weight: 700; }
.short-phone__top button { cursor: pointer; }
.short-fs-btn { display: inline-flex; }
.short-play { position:absolute; left:50%; top:48%; z-index:7; width:76px; height:76px; display:flex; align-items:center; justify-content:center; padding:0; color:#fff; transform:translate(-50%,-50%); border:1px solid rgba(255,255,255,.18); border-radius:50%; background:rgba(79,143,207,.92); box-shadow:0 14px 40px rgba(0,0,0,.35); transition:opacity .18s ease,transform .14s ease; }
.short-play .player-icon { width:32px; height:32px; }
.short-play:active { transform:translate(-50%,-50%) scale(.96); }
.short-play:focus-visible,.short-player-btn:focus-visible,.short-progress:focus-visible { outline:2px solid var(--accent-2); outline-offset:2px; }
.short-phone.is-controls-hidden .short-play { opacity:0; pointer-events:none; }
.short-caption { position: absolute; left: 18px; right: 18px; bottom: 102px; z-index: 3; color: #fff; }
.short-caption h1 { display:-webkit-box; margin:0; overflow:hidden; font-size:20px; line-height:1.35; font-weight:800; letter-spacing:0; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.short-caption__intro { display: -webkit-box; max-height: calc(2 * 1.55em); margin: 7px 0 0; overflow: hidden; color: rgba(255,255,255,.78); font-size: 12.5px; line-height: 1.55; -webkit-box-orient: vertical; -webkit-line-clamp: 2; transition: max-height 180ms ease; }
.short-caption__intro-wrap { display:flex; align-items:flex-end; gap:8px; }
.short-caption__intro.is-expanded { display:block; max-height:22vh; overflow:auto; overscroll-behavior:contain; -webkit-line-clamp:unset; }
.short-caption__intro-toggle { flex:none; min-height:28px; padding:0 6px; border:0; color:#d7e9f9; background:transparent; font-size:11px; font-weight:700; }
.short-caption__tags { display:flex; flex-wrap:nowrap; gap:6px; margin-top:10px; overflow:hidden; }
.short-caption__tags a { min-width:0; max-width:32%; display:inline-flex; align-items:center; min-height:22px; padding:0 8px; overflow:hidden; border:1px solid rgba(141,185,228,.46); border-radius:4px; background:rgba(11,17,23,.48); color:#b7d8f6; font-size:11.5px; line-height:1; text-overflow:ellipsis; white-space:nowrap; }
.short-caption__tags a:hover { border-color: var(--accent-2); color: #fff; }
.short-player-controls { position:absolute; z-index:6; left:0; right:0; bottom:0; padding:28px 12px 8px; color:#fff; background:linear-gradient(to top,rgba(5,7,9,.94),rgba(5,7,9,.62) 58%,transparent); opacity:1; transform:translateY(0); transition:opacity .18s ease,transform .18s ease; }
.short-phone.is-controls-hidden .short-player-controls { opacity:0; pointer-events:none; transform:translateY(7px); }
.short-progress { position:relative; height:44px; display:flex; align-items:center; border-radius:999px; touch-action:none; cursor:pointer; }
.short-progress::before { position:absolute; left:0; right:0; top:50%; height:3px; border-radius:999px; content:""; background:rgba(255,255,255,.24); transform:translateY(-50%); }
.short-progress i { position:absolute; left:0; top:50%; height:3px; border-radius:999px; background:var(--accent); transform:translateY(-50%); }
.short-progress b { position:absolute; z-index:2; top:50%; width:12px; height:12px; border:2px solid #fff; border-radius:50%; background:var(--accent); box-shadow:0 2px 7px rgba(0,0,0,.42); transform:translate(-50%,-50%); }
.short-progress output { position:absolute; z-index:4; bottom:33px; min-width:54px; display:none; padding:6px 8px; border:1px solid rgba(255,255,255,.15); border-radius:5px; color:#fff; background:rgba(10,12,15,.97); font-size:11px; font-variant-numeric:tabular-nums; text-align:center; transform:translateX(-50%); }
.short-phone.is-dragging .short-progress::before,.short-phone.is-dragging .short-progress i { height:7px; }
.short-phone.is-dragging .short-progress b { width:18px; height:18px; }
.short-phone.is-dragging .short-progress output { display:block; }
.short-player-row { min-height:40px; display:flex; align-items:center; gap:5px; color:rgba(255,255,255,.82); font-size:11px; font-variant-numeric:tabular-nums; }
.short-player-row > i { flex:1; }
.short-player-row em { color:rgba(255,255,255,.4); font-style:normal; }
.short-player-btn { width:40px; min-width:40px; height:40px; display:grid; place-items:center; padding:0; border:1px solid transparent; border-radius:6px; color:#fff; background:transparent; transition:background .14s ease,border-color .14s ease,transform .14s ease; }
.short-player-btn:hover { border-color:rgba(255,255,255,.14); background:rgba(255,255,255,.08); }
.short-player-btn:active { background:rgba(79,143,207,.28); transform:scale(.96); }
.short-player-btn .player-icon { width:22px; height:22px; }
.short-phone--wide:fullscreen { width: 100vw; height: 100vh; aspect-ratio: auto; border-radius: 0; border: 0; background: #000; }
.short-phone--wide:fullscreen .short-landscape { inset: 0; }
.short-phone--wide:fullscreen .short-landscape__frame { position: absolute; inset: 0; width: 100vw; height: 100vh; aspect-ratio: auto; border: 0; transform: none; }
.short-phone--wide:fullscreen .short-landscape__bg,
.short-phone--wide:fullscreen .short-phone__top a { display: none; }
@media (max-aspect-ratio: 1/1) {
  .short-phone--wide:fullscreen .short-landscape__frame {
    width: 100vh;
    height: 100vw;
    inset: auto;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) rotate(90deg);
  }
}
.short-actions { display: flex; flex-direction: column; gap: 12px; flex: none; }
.short-action { width: 58px; display: flex; flex-direction: column; align-items: center; gap: 6px; color: var(--text-3); }
.short-action span { width: 48px; height: 48px; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: #1a1e24; border: 1px solid rgba(255,255,255,.08); color: #fff; }
.short-action svg { width: 23px; height: 23px; }
.short-action b { max-width: 66px; color: var(--text-3); font-size: 11.5px; font-weight: 600; line-height: 1.15; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.short-action.is-on span { background: var(--accent); color: #fff; border-color: rgba(255,255,255,.14); }
.short-comment-mask { position: fixed; inset: 0; z-index: 210; background: rgba(0,0,0,.48); }
.short-comment-drawer { position: fixed; top: 0; right: 0; bottom: 0; z-index: 220; width: min(420px, 92vw); display: flex; flex-direction: column; background: #12161c; border-left: 1px solid rgba(255,255,255,.08); box-shadow: -20px 0 60px rgba(0,0,0,.42); transform: translateX(100%); transition: transform .22s ease; }
.short-comment-drawer.is-open { transform: translateX(0); }
.short-comment-drawer__head { height: 58px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 0 18px; border-bottom: 1px solid var(--line); }
.short-comment-drawer__head h3 { margin: 0; color: #fff; font-size: 16px; }
.short-comment-drawer__head button { width: 32px; height: 32px; border-radius: 6px; color: var(--text-2); font-size: 20px; }
.short-comment-list { flex: 1; overflow: auto; padding: 6px 18px; }
.short-comment { display: flex; gap: 10px; padding: 14px 0; border-bottom: 1px solid rgba(255,255,255,.05); }
.short-comment__av { width: 34px; height: 34px; border-radius: 50%; background: #1e242c; color: var(--accent-2); display: flex; align-items: center; justify-content: center; flex: none; font-weight: 700; }
.short-comment__meta { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; color: var(--muted); font-size: 12px; }
.short-comment__meta b { color: var(--text-2); font-size: 12.5px; }
.short-comment__meta em { color: #e8c45a; font-style: normal; }
.short-comment p { margin: 5px 0 0; color: var(--text-2); font-size: 13px; line-height: 1.6; }
.short-comment-form { display: flex; gap: 8px; padding: 13px 18px; border-top: 1px solid var(--line); }
.short-comment-form input { flex: 1; min-width: 0; height: 38px; border-radius: 6px; border: 1px solid rgba(255,255,255,.08); background: #1a1f25; color: #fff; padding: 0 12px; }
.short-comment-form button { height: 38px; border-radius: 6px; background: var(--accent); color: #fff; padding: 0 16px; font-weight: 700; }
.short-watch.is-exit-up .short-stage { animation: shortExitUp 140ms ease forwards; }
.short-watch.is-exit-down .short-stage { animation: shortExitDown 140ms ease forwards; }
.short-watch.is-enter-from-down .short-stage { animation: shortEnterFromDown 140ms cubic-bezier(.22,.61,.36,1) both; }
.short-watch.is-enter-from-up .short-stage { animation: shortEnterFromUp 140ms cubic-bezier(.22,.61,.36,1) both; }
@keyframes shortExitUp { to { opacity: 0; transform: translateY(-42px) scale(.985); } }
@keyframes shortExitDown { to { opacity: 0; transform: translateY(42px) scale(.985); } }
@keyframes shortEnterFromDown { from { opacity: 0; transform: translateY(48px) scale(.985); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes shortEnterFromUp { from { opacity: 0; transform: translateY(-48px) scale(.985); } to { opacity: 1; transform: translateY(0) scale(1); } }

/* ---------- 短视频列表页 ---------- */
.short-list-page { padding-bottom: 46px; }
.short-list-head { display: flex; align-items: end; justify-content: space-between; gap: 18px; padding: 8px 0 20px; border-bottom: 1px solid var(--line); }
.short-list-head h1 { margin: 0; color: #fff; font-size: 30px; line-height: 1.2; letter-spacing: 0; }
.short-list-head p { margin: 10px 0 0; max-width: 620px; color: var(--muted); font-size: 14px; line-height: 1.8; }
.short-list-head span { flex: none; color: var(--muted); font-size: 13px; }
.short-cat-tabs { display: flex; gap: 10px; margin: 18px 0 22px; overflow-x: auto; scrollbar-width: none; }
.short-list-tools { display:flex; align-items:center; justify-content:flex-end; gap:8px; margin-top:16px; }
.short-list-tools__label { color:var(--muted-2); font-size:12px; }
.short-sort { padding:6px 14px; border-radius:999px; color:var(--muted); font-size:12.5px; }
.short-sort.is-on { background:var(--surface); color:var(--text); }
.short-cat-tabs::-webkit-scrollbar { display: none; }
.short-cat-tab { flex: none; height: 36px; display: inline-flex; align-items: center; justify-content: center; padding: 0 18px; border-radius: 999px; border: 1px solid rgba(255,255,255,.08); background: #1a1e23; color: var(--text-2); font-size: 13px; font-weight: 700; }
.short-cat-tab.is-on { background: rgba(79,143,207,.18); border-color: rgba(79,143,207,.52); color: #fff; box-shadow: inset 0 0 0 1px rgba(79,143,207,.08); }
.short-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 22px 18px; }
.short-card { min-width: 0; color: inherit; }
.short-card__cover { position: relative; aspect-ratio: 2/3; overflow: hidden; border-radius: 9px; border: 1px solid rgba(255,255,255,.07); background:
  radial-gradient(circle at calc(20% + (var(--sv) * 11%)) 18%, rgba(79,143,207,.32), transparent 30%),
  radial-gradient(circle at calc(80% - (var(--sv) * 7%)) 72%, rgba(232,196,90,.18), transparent 28%),
  linear-gradient(145deg, #1b242d, #0f1318 62%, #080a0d);
}
.short-card__cover::before { content: ''; position: absolute; inset: 0; z-index: 0; background: repeating-linear-gradient(135deg, rgba(255,255,255,.045) 0 10px, transparent 10px 20px); opacity: .54; pointer-events: none; }
.short-card__cover::after { content: ''; position: absolute; inset: 0; z-index: 2; background: linear-gradient(to bottom, rgba(0,0,0,.12), transparent 46%, rgba(0,0,0,.74)); pointer-events: none; }
.short-card__cat, .short-card__views, .short-card__dur, .short-card__play { position: absolute; z-index: 2; }
.short-card__cat, .short-card__views, .short-card__dur { z-index: 3; }
.short-card__cat { top: 10px; left: 10px; max-width: calc(100% - 20px); height: 24px; display: inline-flex; align-items: center; padding: 0 9px; border-radius: 999px; background: rgba(0,0,0,.44); color: #fff; font-size: 11.5px; font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.short-card__landscape { position: absolute; left: 0; right: 0; top: 50%; z-index: 1; transform: translateY(-50%); aspect-ratio: 16/9; display: flex; align-items: center; justify-content: center; background: #11161c; border-block: 1px solid rgba(255,255,255,.08); color: rgba(255,255,255,.48); font-size: 12px; font-weight: 800; }
.short-card__play { left: 50%; top: 50%; z-index: 4; width: 42px; height: 42px; display: flex; align-items: center; justify-content: center; transform: translate(-50%,-50%); border-radius: 50%; background: rgba(79,143,207,.9); box-shadow: 0 10px 28px rgba(0,0,0,.32); }
.short-card__play .tri { border-left-width: 14px; border-top-width: 9px; border-bottom-width: 9px; border-left-color: #fff; margin-left: 3px; }
.short-card__views { left: 10px; bottom: 10px; max-width: calc(100% - 74px); color: rgba(255,255,255,.86); font-size: 11.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.short-card__dur { right: 8px; bottom: 8px; padding: 3px 6px; border-radius: 4px; background: rgba(0,0,0,.66); color: #fff; font-size: 11.5px; }
.short-card h2 { margin: 9px 0 0; color: var(--text); font-size: 13.5px; line-height: 1.45; font-weight: 600; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.short-grid .empty { grid-column: 1 / -1; }
@media (max-width: 1180px) {
  .short-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 860px) {
  .short-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px 14px; }
}

@media (max-width: 640px) {
  .short-detail-page { height: calc(100vh - 58px); min-height: 0; }
  .short-detail__crumb { display: none; }
  .short-watch { display: block; padding: 0; }
  .short-stage { position: relative; display: block; width: 100%; height: 100%; }
  .short-phone { width: 100%; height: 100%; min-height: 0; border-radius: 0; border-inline: 0; box-shadow: none; }
  .short-actions { position: absolute; right: 10px; bottom: 132px; z-index: 7; gap: 10px; }
  .short-action { width: 50px; }
  .short-action span { width: 44px; height: 44px; background: rgba(0,0,0,.48); }
  .short-action b { color: #fff; text-shadow: 0 1px 2px rgba(0,0,0,.4); }
  .short-caption { right: 76px; bottom: 106px; }
  .short-player-btn { width:44px; min-width:44px; height:44px; }
  .short-caption h1 { font-size: 18px; }
  .short-comment-drawer { top: auto; left: 0; right: 0; width: 100%; height: 74vh; border-radius: 12px 12px 0 0; border-left: 0; border-top: 1px solid rgba(255,255,255,.08); transform: translateY(100%); }
  .short-comment-drawer.is-open { transform: translateY(0); }
  .short-list-head { display: block; padding-top: 4px; }
  .short-list-head h1 { font-size: 26px; }
  .short-list-head span { display: inline-flex; margin-top: 10px; }
  .short-cat-tabs { margin-block: 14px 18px; }
  .short-cat-tab { height: 34px; padding-inline: 14px; font-size: 12.5px; }
  .short-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 12px; }
  .short-card h2 { font-size: 13px; }
}

/* ---------- 详情页 ---------- */
.detail-page {
  --detail-max: 1360px;
  --detail-gut: max(clamp(18px,4vw,56px), calc((100% - var(--detail-max)) / 2));
  background: #0d0f12;
}
.detail-page .gut { padding-inline: var(--detail-gut); }
.detail-page .breadcrumb { padding-block: 14px 12px; background: #0d0f12; }
.detail-top {
  display: flex;
  gap: 22px;
  padding-inline: var(--detail-gut);
  padding-block: 18px 24px;
  background: #101215;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.detail-main { flex: 1; min-width: 0; }
.detail-rail { width: 320px; flex: none; }
.ps-toggle { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
.ps-toggle .lbl { font-size: 11.5px; color: var(--muted-2); }
.ps-toggle .chip { padding: 5px 13px; }
/* 移动端：演示开关弱化——单行横滑、变小变淡，不占视觉重心 */
@media (max-width: 640px) {
  .ps-toggle { flex-wrap: nowrap; overflow-x: auto; gap: 6px; margin-bottom: 10px; padding-bottom: 2px; opacity: .8; }
  .ps-toggle .lbl, .ps-toggle .chip { flex: none; }
  .ps-toggle .chip { padding: 4px 11px; font-size: 12px; }
}
.player { position: relative; aspect-ratio: 16/9; border-radius: 4px; overflow: hidden; border: 1px solid rgba(255,255,255,.06); background:#111419; }
.player__poster { position:absolute; inset:0; background:linear-gradient(to top,rgba(8,10,12,.82),rgba(8,10,12,.08) 58%,rgba(8,10,12,.28)),url('../img/actress-cover.jpg') center 22% / cover no-repeat; }
.player .ph { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); font: 400 12px ui-monospace,monospace; color: #5b626b; }
.player__play { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); width: 72px; height: 72px; padding: 0; border: 0; border-radius: 50%; background: rgba(79,143,207,.92); display: flex; align-items: center; justify-content: center; cursor: pointer; }
.player__play .tri { border-left-width: 18px; border-top-width: 12px; border-bottom-width: 12px; border-left-color: #fff; margin-left: 4px; }
.player__resume { position: absolute; left: 16px; top: 16px; z-index: 3; display: flex; align-items: center; gap: 10px; min-height: 30px; padding: 0 8px 0 10px; background: rgba(10,12,15,.78); border: 1px solid rgba(255,255,255,.14); border-radius: 4px; color: #e6e8ea; font-size: 12px; }
.player__resume button { min-height: 24px; padding: 0 7px; border: 0; border-left: 1px solid rgba(255,255,255,.16); border-radius: 0; background: transparent; color: var(--accent-2); font-size: 12px; cursor: pointer; }
.player__resume button:hover { color: #fff; }
.player__ctrl { position: absolute; left: 0; right: 0; bottom: 0; padding: 12px 16px; background: linear-gradient(to top,rgba(8,10,12,.85),transparent); }
.player__bar { height: 4px; border-radius: 2px; background: rgba(255,255,255,.22); position: relative; }
.player__bar > i { position: absolute; left: 0; top: 0; bottom: 0; width: 34%; background: var(--accent); border-radius: 2px; }
.player__bar > b { position: absolute; left: 34%; top: 50%; transform: translate(-50%,-50%); width: 12px; height: 12px; border-radius: 50%; background: #fff; }
.player__chapter { position: absolute; top: 50%; width: 28px; height: 30px; padding: 0; transform: translate(-50%,-50%); z-index: 4; border: 0; background: transparent; }
.player__chapter::before { content: ''; position: absolute; left: 50%; top: 50%; width: 9px; height: 9px; border: 2px solid #101215; border-radius: 50%; background: #dceafd; transform: translate(-50%,-50%); box-shadow: 0 0 0 1px rgba(207,224,242,.7), 0 2px 6px rgba(0,0,0,.42); }
.player__chapter span { position: absolute; left: 50%; bottom: 23px; min-width: 82px; max-width: 180px; padding: 7px 9px; display: flex; flex-direction: column; gap: 3px; transform: translate(-50%,4px); overflow: hidden; pointer-events: none; opacity: 0; color: #fff; background: rgba(12,14,17,.94); border: 1px solid rgba(255,255,255,.14); border-radius: 4px; box-shadow: 0 8px 20px rgba(0,0,0,.4); transition: opacity .14s ease, transform .14s ease; }
.player__chapter span strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; font-weight: 500; line-height: 1.2; }
.player__chapter span em { color: var(--accent-2); font-size: 10px; font-style: normal; line-height: 1; }
.player__chapter.is-first span { left: 0; transform: translate(0,4px); text-align: left; }
.player__chapter.is-last span { left: 100%; transform: translate(-100%,4px); text-align: right; }
.player__chapter:hover::before { width: 11px; height: 11px; background: var(--accent-2); box-shadow: 0 0 0 2px rgba(79,143,207,.28), 0 2px 8px rgba(0,0,0,.48); }
.player__chapter:hover span { opacity: 1; transform: translate(-50%,0); }
.player__chapter.is-first:hover span { transform: translate(0,0); }
.player__chapter.is-last:hover span { transform: translate(-100%,0); }
.player__chapter.is-touch-preview::before { width: 11px; height: 11px; background: var(--accent-2); box-shadow: 0 0 0 2px rgba(79,143,207,.28), 0 2px 8px rgba(0,0,0,.48); }
.player__chapter.is-touch-preview span { opacity: 1; transform: translate(-50%,0); }
.player__row { display: flex; align-items: center; gap: 16px; margin-top: 10px; color: var(--text); font-size: 12.5px; }
.player__toggle { width:18px; height:18px; padding:0; display:inline-flex; align-items:center; justify-content:center; color:#fff; line-height:1; }
.player__toggle .tri { border-left-width:8px; border-top-width:5px; border-bottom-width:5px; }
.player__toggle .player__pause-icon { display:none; font-size:14px; line-height:1; }
.player.is-playing .player__toggle .tri { display:none; }
.player.is-playing .player__toggle .player__pause-icon { display:block; }
.player__row .t { color: var(--text-2); } .player__row .sp { flex: 1; }
.player__row .q { font-size: 12.5px; border: 1px solid var(--line-2); border-radius: 4px; padding: 2px 8px; }
@media (max-width: 640px) {
  .player__resume { left: 10px; top: 10px; gap: 7px; font-size: 11px; }
  .player__resume button { font-size: 11px; }
  .player__chapter { width:30px; height:30px; }
  .player__chapter::before { width:10px; height:10px; }
  .player__chapter span { left:50%; bottom:22px; max-width:150px; overflow:visible; padding:6px 8px; }
  .player__chapter.is-first.is-touch-preview span { left:0; transform:translate(0,0); }
  .player__chapter.is-last.is-touch-preview span { left:100%; transform:translate(-100%,0); }
}
.badge-ad { background: #e8c45a; color: #0f1114; font-size: 11px; font-weight: 700; border-radius: 3px; padding: 2px 6px; }
.preroll { position: absolute; inset: 0; }
.preroll__skip { position: absolute; right: 14px; bottom: 46px; background: rgba(0,0,0,.5); color: var(--text); font-size: 12.5px; border-radius: 5px; padding: 6px 14px; cursor: pointer; }
.preroll__count { position: absolute; right: 14px; top: 14px; background: rgba(0,0,0,.6); color: #fff; font-size: 12px; border-radius: 999px; padding: 3px 11px; }
.preroll__bar { position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: rgba(255,255,255,.18); }
.preroll__bar > i { display: block; height: 100%; width: 42%; background: #e8c45a; }
.pause-ov { position: absolute; inset: 0; z-index:4; background: rgba(10,12,14,.62); display: none; align-items: center; justify-content: center; }
.player.is-paused .pause-ov { display:flex; }
.player.is-playing .player__play { display:none; }
.pause-ov .box { background: rgba(20,22,25,.6); color: #9aa0a8; width: min(58%,460px); aspect-ratio: 16/6; border-radius: 8px; display: flex; flex-direction:column; gap:12px; align-items: center; justify-content: center; text-align: center; font-size: 13px; padding: 12px; }
.pause-ov__resume { height:30px; padding:0 13px; border:1px solid rgba(79,143,207,.58); border-radius:5px; color:#fff; background:rgba(79,143,207,.78); font-size:12px; }
/* 角标浮条：源稿位于左下、压在控制条上方（left:16px;bottom:64px），带细边框 */
.float-ad { position: absolute; z-index:3; left: 16px; bottom: 64px; display: flex; align-items: center; gap: 11px; width: clamp(240px,30%,320px); background: rgba(20,22,25,.92); border: 1px solid rgba(255,255,255,.2); border-radius: 8px; padding: 10px; }
.float-ad .c { width: 78px; height: 48px; border-radius: 4px; flex: none; background: repeating-linear-gradient(135deg,#2a2f34 0 7px,#31363c 7px 14px); }
.float-ad__txt { min-width: 0; flex: 1; }
.float-ad__head { display: flex; align-items: center; gap: 6px; }
.float-ad__badge { font-size: 9.5px; color: #0f1114; background: #e8c45a; font-weight: 700; padding: 1px 6px; border-radius: 2px; }
.float-ad__name { font-size: 12.5px; color: var(--text); font-weight: 500; }
.float-ad__sub { font-size: 11px; color: #9aa0a8; margin-top: 3px; }
.float-ad .x { color: var(--muted); cursor: pointer; align-self: flex-start; font-size: 13px; }
.detail-meta { margin-top: 18px; }
.detail-meta .code { font-size: 13px; padding: 4px 12px; border-radius: 4px; }
.detail-meta__top { display: flex; align-items: flex-start; gap: 20px; }
.detail-meta h1 { min-width: 0; font-size: 22px; font-weight: 700; line-height: 1.45; color: #fff; margin: 0; }
.detail-actions { display: flex; gap: 10px; flex: none; }
.detail-icon-action { position: relative; width: 38px; height: 38px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--line-2); border-radius: 7px; background: #181c21; color: var(--text-2); cursor: pointer; transition: border-color .16s ease, background .16s ease, color .16s ease; }
.detail-icon-action svg { width: 19px; height: 19px; }
.detail-icon-action--count { width: auto; min-width: 90px; padding: 0 10px; gap: 5px; }
.detail-action-label { color: currentColor; font-size: 12px; line-height: 1; white-space: nowrap; }
.detail-action-count { color: currentColor; font-size: 11.5px; font-variant-numeric: tabular-nums; line-height: 1; white-space: nowrap; }
.detail-icon-action:hover { border-color: rgba(79,143,207,.68); background: rgba(79,143,207,.14); color: #fff; }
.detail-icon-action.is-on { border-color: rgba(79,143,207,.78); background: rgba(79,143,207,.22); color: var(--accent-2); }
.detail-icon-action[data-fav].is-on { border-color: rgba(232,183,58,.72); background: rgba(232,183,58,.14); color: #e8b73a; }
.detail-icon-action[data-fav].is-on svg { fill: currentColor; }
.detail-icon-action[data-tooltip]::after { position: absolute; left: 50%; bottom: calc(100% + 8px); z-index: 12; padding: 4px 7px; border-radius: 4px; background: #050608; color: #fff; font-size: 11px; line-height: 1; white-space: nowrap; content: attr(data-tooltip); opacity: 0; pointer-events: none; transform: translate(-50%, 4px); transition: opacity .14s ease, transform .14s ease; }
.detail-icon-action[data-tooltip]:hover::after, .detail-icon-action[data-tooltip]:focus-visible::after { opacity: 1; transform: translate(-50%, 0); }
.detail-row { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; margin-top: 16px; color: var(--muted); font-size: 13px; }
.detail-row--summary { margin-top: 12px; gap: 10px 22px; }
.detail-row--summary .detail-actions { order: 4; margin-left: auto; }
.detail-row .lbl { font-size: 12px; color: var(--muted-2); }
.detail-attrs { gap: 8px; }
.detail-attrs .lbl { margin-right: 4px; }
.detail-attrs .attrs { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.detail-attrs .attr { display: inline-flex; align-items: center; color: #cfe0f2; background: rgba(79,143,207,.14); border: 1px solid rgba(79,143,207,.34); border-radius: 5px; font-size: 12.5px; line-height: 1.2; padding: 4px 11px; }
.cast { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.cast a { display: flex; align-items: center; gap: 9px; }
.cast .av { width: 32px; height: 32px; border-radius: 50%; }
.cast .nm { color: var(--text-3); font-size: 13.5px; }
.cast-more { padding: 0; border: 0; background: transparent; color: var(--accent-2); font-size: 12.5px; cursor: pointer; }
.cast-more::after { content: ' ▾'; }
.cast-more.is-expanded::after { content: ' ▴'; }
.detail-tags { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.detail-tags .lbl { color: var(--text-2); font-size: 13px; font-weight: 500; }
.detail-tags a { color: var(--text-3); font-size: 13px; border: 1px solid var(--line-2); border-radius: 999px; padding: 5px 14px; }
.detail-tags a:hover { border-color: var(--accent); color: var(--accent-2); }
.detail-intro { margin-top: 16px; }
.detail-intro h4 { color: var(--muted-2); font-size: 11.5px; margin: 0 0 6px; }
.detail-intro p { color: #aab0b8; font-size: 13.5px; line-height: 1.85; margin: 0; }
.detail-intro p.clamp { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.intro-toggle { margin-top: 6px; padding: 0; background: none; border: 0; color: var(--accent-2); font-size: 12.5px; cursor: pointer; }
.intro-toggle::after { content: ' ▾'; }
.intro-toggle.on::after { content: ' ▴'; }
.rrail { display: flex; flex-direction: column; gap: 16px; margin-top: 0; }
.rrail a { display: block; border-radius: 4px; padding: 0; transition: none; }
.rrail a:hover { transform: none; }
.rrail .c { position: relative; width: 100%; flex: none; aspect-ratio: 16/9; border-radius: 4px; overflow: hidden; border: 1px solid rgba(255,255,255,.06); }
.rrail .c .dur { position: absolute; bottom: 4px; right: 4px; font-size: 11px; color: #fff; background: rgba(0,0,0,.7); padding: 1px 5px; border-radius: 3px; }
.rrail .c .film-attr-badge { top: 5px; left: 5px; height: 18px; min-width:30px; padding: 0 6px; border-radius: 3px; font-size: 10px; }
.rrail .ct { color: var(--text-3); font-size: 12.5px; line-height: 1.45; margin-top: 7px; min-height: 36px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.rrail__tags { height: 18px; margin-top: 4px; }
.rrail__tags .vcard__tag { height: 17px; max-width: 72px; padding: 0 5px; font-size: 9.5px; }
.rrail__tags .vcard__tagmore { display: none !important; }
.rrail .rr-sp .ct { color: var(--muted); }
.detail-rail .ad-rect { height: 150px; margin-top: 16px; }
.detail-rail .detail-mobad { display: none; }   /* H5 才显示的正文内通栏横幅（压过基类 .ad 的 flex） */
/* ---------- 详情页移动端:双列降级为单列堆叠(设计稿) ---------- */
@media (max-width: 820px) {
  .detail-top { flex-direction: column; gap: 0; }
  .detail-main, .detail-rail { width: auto; }
  .detail-rail { margin-top: 30px; }
  /* 相关推荐:侧栏纵向列表 → 横向滑动卡片(缩略图在上、标题在下) */
  .rrail { flex-direction: row; overflow-x: auto; gap: 10px; padding-bottom: 4px; }
  .rrail a, .rrail .rr-sp { flex-direction: column; width: 158px; flex: none; gap: 8px; padding: 0; }
  .rrail .c { width: 100%; }
  /* H5：竖幅(轮播)不复用 → 隐藏，改用正文内通栏横幅 320×100（IAB） */
  .detail-rail .ad-rect--tall, .detail-rail .adcar--tall { display: none; }
  .detail-rail .detail-mobad { display: flex; height: 100px; width: 100%; max-width: 320px; margin: 6px auto 0; }
}
@media (max-width: 640px) {
  .detail-meta__top { align-items: flex-start; gap: 12px; }
  .detail-meta h1 { font-size: 19px; }
  .detail-actions { gap: 7px; }
  .detail-icon-action { width: 34px; height: 34px; }
  .detail-icon-action--count { width: auto; min-width: 84px; padding: 0 7px; gap: 4px; }
  .detail-row--summary .detail-actions { order: 0; margin-left: 0; }
}

/* ---------- 女优库筛选条移动端:单行 排序左 / 筛选右(设计稿) ---------- */
@media (max-width: 640px) {
  .ac-fltbar { flex-wrap: nowrap !important; gap: 8px !important; }
  .ac-sortlbl, .ac-vdiv, #countText { display: none; }
  #activeChips, #clear { display: none !important; }
  .ac-fltbar .srt--more { display: none; }   /* 移动端留 最热 | 作品数 */
  .ac-fltbar .srt { order: 1; }
  .ac-spacer { order: 2; }
  #filterToggle { order: 3; }
  /* 女优库自带分页:移动端单行、只留箭头 */
  .pager-m { flex-wrap: nowrap !important; gap: 6px !important; }
  .pager-m .pg-txt { display: none; }
}
.shelf { padding-block: 26px 14px; }
.shelf h2 { font-size: 19px; font-weight: 700; color: #fff; margin: 0; }
.comments { padding-top: 36px; }
.comments > h2 { font-size: 19px; font-weight: 700; color: #fff; margin: 0; }
.comments > h2 span { font-size: 15px; font-weight: 400; color: var(--muted-2); }
.cbox { display: flex; gap: 12px; margin: 16px 0 26px; }
.cbox .av { width: 40px; height: 40px; border-radius: 50%; flex: none; }
.cbox .field { flex: 1; }
.cbox textarea { width: 100%; background: #1a1d21; border: 1px solid var(--line); color: var(--text); font-size: 13px; border-radius: 8px; padding: 12px 14px; resize: vertical; min-height: 46px; outline: none; }
.cbox textarea::placeholder { color: var(--faint); }
.cbox .submit { display: flex; justify-content: flex-end; margin-top: 10px; }
.clist { display: flex; flex-direction: column; gap: 20px; }
.comment { display: flex; gap: 12px; }
.comment .av { width: 40px; height: 40px; border-radius: 50%; flex: none; }
.comment .head { display: flex; align-items: center; gap: 10px; }
.comment .nm { color: var(--text-3); font-size: 13px; font-weight: 500; }
.comment .tm { color: var(--faint); font-size: 11.5px; }
.comment .tx { color: #aab0b8; font-size: 13.5px; line-height: 1.7; margin-top: 3px; }
.ph-av { background: repeating-linear-gradient(135deg,#21262b 0 6px,#272c31 6px 12px); }

/* ---------- 女优详情 头部 ---------- */
.ahero { position: relative; }
.ahero__bd { height: 200px; }
.ahero__scrim { position: absolute; inset: 0; background: linear-gradient(to bottom,rgba(21,23,26,.2),var(--bg)); }
.ahero__body { position: relative; display: flex; align-items: flex-end; gap: 30px; margin-top: -70px; padding-bottom: 8px; flex-wrap: wrap; }
.ahero__avatar { width: 140px; height: 140px; border-radius: 50%; flex: none; border: 3px solid var(--bg); display: flex; align-items: center; justify-content: center; color: #5b626b; font-size: 12px; }
.ahero__main { flex: 1; min-width: 240px; padding-bottom: 6px; }
.ahero__name { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.ahero__name h1 { color: #fff; font-size: 30px; font-weight: 700; margin: 0; }
.ahero__alias { color: var(--muted); font-size: 13px; }
.astats { display: flex; align-items: center; gap: 24px; margin: 14px 0 12px; flex-wrap: wrap; }
.astats .big { color: #fff; font-size: 22px; font-weight: 700; }
.astats .lbl { color: var(--muted); font-size: 12.5px; margin-left: 5px; }
.astats .vline { width: 1px; height: 26px; background: var(--line-2); }
.ainfo { display: flex; flex-wrap: wrap; gap: 8px 22px; color: var(--muted); font-size: 12.5px; margin-bottom: 12px; }
.ainfo b { color: var(--text-2); font-weight: 400; }
.abio { color: #aab0b8; font-size: 13px; line-height: 1.7; max-width: 620px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ahero__actions { display: flex; gap: 10px; align-self: flex-start; margin-top: 10px; }

/* ---------- 女优库 头肩方卡 ---------- */
.scard { display: block; background: var(--nav); border-radius: 10px; overflow: hidden; }
.scard .c { aspect-ratio: 1/1; display: flex; align-items: center; justify-content: center; color: #5b626b; font-size: 12px; background: repeating-linear-gradient(135deg,#21262b 0 10px,#272c31 10px 20px); }
.scard__body { padding: 11px 13px 13px; }
.scard__name { color: #fff; font-size: 13.5px; font-weight: 600; }
.scard__row { display: flex; align-items: center; justify-content: space-between; margin-top: 6px; }
.scard__works { color: var(--muted-2); font-size: 11.5px; }
.scard__follow { color: var(--accent-2); font-size: 11px; border: 1px solid var(--chip-bd); border-radius: 999px; padding: 2px 9px; }
.scard__follow.is-on { background: var(--chip-bg); }

/* ---------- 用户中心 ---------- */
.user-layout { display: flex; gap: 30px; padding-block: 30px 40px; align-items: flex-start; flex-wrap: wrap; }
.user-side { width: 248px; flex: none; }
.user-card { background: var(--nav); border-radius: 12px; padding: 22px 20px; text-align: center; }
.user-card .av { width: 72px; height: 72px; border-radius: 50%; margin: 0 auto 12px; }
.user-card .nm { color: #fff; font-size: 16px; font-weight: 600; }
.user-card .id { color: var(--muted); font-size: 12px; margin-top: 4px; }
.user-menu { display: flex; flex-direction: column; gap: 2px; margin-top: 14px; }
.user-menu a { display: flex; align-items: center; justify-content: space-between; font-size: 13.5px; padding: 11px 14px; border-radius: 8px; color: var(--text-2); cursor: pointer; }
.user-menu a:hover { background: rgba(255,255,255,.04); }
.user-menu a.on { color: #fff; background: var(--chip-bg); }
.user-menu a .n { color: var(--faint); }
.user-logout { color: #d98a8a; font-size: 13px; display: block; border-radius: 8px; padding: 10px 14px; margin-top: 8px; cursor: pointer; }
.user-logout:hover { background: rgba(217,138,138,.1); }
.user-content { flex: 1; min-width: 0; }
.user-sec-head { display: flex; align-items: center; gap: 12px; margin: 6px 0 16px; }
.user-sec-head h2 { color: #fff; font-size: 20px; font-weight: 700; margin: 0; }
.user-sec-head .count { color: var(--muted); font-size: 13px; }
.user-sec-head .seg { margin-left: auto; display: flex; gap: 8px; }
.user-sec-head + .user-sec-head, .user-content .user-sec-head ~ .user-sec-head { margin-top: 34px; }

/* 登录 / 注册 */
.auth-wrap { display: flex; justify-content: center; padding-block: 56px 80px; }
.auth-box { background: var(--nav); width: 400px; max-width: 100%; border-radius: 14px; padding: 34px; }
.auth-tabs { display: flex; gap: 24px; margin-bottom: 24px; }
.auth-tabs span { font-size: 16px; font-weight: 500; color: var(--muted); cursor: pointer; }
.auth-tabs span.on { color: #fff; font-weight: 700; }
.auth-field { margin-bottom: 16px; }
.auth-field label { display: block; color: var(--muted); font-size: 12.5px; margin-bottom: 7px; }
.auth-input { display: flex; align-items: center; gap: 8px; background: var(--bg); border: 1px solid var(--line); border-radius: 8px; padding: 11px 14px; }
.auth-input input { flex: 1; border: 0; background: transparent; outline: none; color: var(--text); font-size: 13px; }
.auth-forgot { text-align: right; margin-bottom: 16px; }
.auth-box .btn { width: 100%; font-size: 15px; padding: 12px; }
.auth-gate { position: fixed; inset: 0; z-index: 100120; display: flex; align-items: center; justify-content: center; padding: 20px; background: rgba(7,9,12,.68); backdrop-filter: blur(4px); }
.auth-gate__panel { position: relative; width: 376px; max-width: 100%; padding: 28px; border: 1px solid var(--line-2); border-radius: 10px; background: #1b1e22; box-shadow: 0 24px 60px rgba(0,0,0,.52); }
.auth-gate__close { position: absolute; top: 11px; right: 12px; width: 30px; height: 30px; color: var(--muted); font-size: 22px; line-height: 1; }
.auth-gate__close:hover { color: #fff; }
.auth-gate__tabs { display: flex; gap: 20px; margin-bottom: 18px; }
.auth-gate__tabs button { padding: 0 0 6px; color: var(--muted); font-size: 16px; border-bottom: 2px solid transparent; }
.auth-gate__tabs button.is-on { color: #fff; font-weight: 700; border-color: var(--accent); }
.auth-gate__reason { margin: 0 0 18px; color: var(--text-2); font-size: 13px; }
.auth-gate__field { display: block; margin-bottom: 14px; color: var(--muted); font-size: 12.5px; }
.auth-gate__field input { display: block; width: 100%; margin-top: 7px; padding: 11px 13px; color: var(--text); font-size: 13px; background: var(--bg); border: 1px solid var(--line); border-radius: 7px; outline: none; }
.auth-gate__field input:focus { border-color: var(--accent); }
.auth-gate__panel .btn { width: 100%; padding: 11px; }
.auth-gate__fine { margin: 13px 0 0; color: var(--faint); font-size: 11.5px; text-align: center; }
.auth-alt { color: var(--muted); font-size: 12.5px; text-align: center; margin-top: 16px; }
.auth-fine { color: var(--faint); font-size: 11px; line-height: 1.7; text-align: center; margin-top: 14px; }

/* ---------- 静态页 ---------- */
.doc-layout { display: flex; gap: 32px; padding-block: 22px 40px; align-items: flex-start; flex-wrap: wrap; }
.doc-side { width: 200px; flex: none; }
.doc-side .ttl { color: var(--muted-2); font-size: 12px; margin-bottom: 10px; }
.doc-side a { display: block; font-size: 13.5px; padding: 10px 14px; border-radius: 6px; color: var(--text-2); cursor: pointer; }
.doc-side a:hover { background: rgba(255,255,255,.04); }
.doc-side a.on { color: #fff; background: var(--chip-bg); border-left: 2px solid var(--accent); }
.doc-content { flex: 1; min-width: 0; max-width: 780px; }
.doc-content h1 { color: #fff; font-size: 24px; font-weight: 700; margin: 0; }
.doc-content .upd { color: var(--faint); font-size: 12.5px; margin: 6px 0 22px; }
.doc-content h2 { color: var(--text); font-size: 16px; font-weight: 600; margin: 24px 0 10px; }
.doc-content p { color: #aab0b8; font-size: 14px; line-height: 1.9; }
.doc-content ul { color: #aab0b8; font-size: 14px; line-height: 1.9; padding-left: 20px; margin: 10px 0; }
.doc-callout { background: var(--nav); color: #aab0b8; font-size: 13px; line-height: 1.8; border-radius: 8px; padding: 16px 18px; margin-top: 18px; }

/* ---------- 404 ---------- */
.notfound { text-align: center; padding: 80px 20px 90px; }
.notfound__code { color: var(--accent); font-size: 96px; font-weight: 700; line-height: 1; }
.notfound h2 { color: #fff; font-size: 19px; font-weight: 600; margin: 10px 0 0; }
.notfound p { color: var(--muted); font-size: 13.5px; line-height: 1.7; margin: 8px 0 22px; }
.notfound .search { width: 420px; max-width: 100%; margin: 0 auto 22px; }
.notfound__cta { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }

/* ---------- 专题列表 ---------- */
.ad-lead { padding-top: 24px; }
.ad-lead .ad { height: 90px; }
.review-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px 20px; padding-top: 24px; }
.ad-rowfull { grid-column: 1 / -1; }
.ad-rowfull .ad { height: 90px; }
.rcard { display: block; color: inherit; background: var(--nav); border-radius: 10px; overflow: hidden; }
.rcard__c { aspect-ratio: 16/9; display: flex; align-items: center; justify-content: center; color: #5b626b; font: 400 12px ui-monospace,monospace; background: repeating-linear-gradient(135deg,#21262b 0 10px,#272c31 10px 20px); }
.rcard__b { padding: 14px 16px 16px; }
.rcard__t { color: var(--text); font-size: 14.5px; font-weight: 600; line-height: 1.45; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.rcard__ex { color: var(--muted); font-size: 12.5px; line-height: 1.6; margin: 8px 0 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rcard__meta { display: flex; align-items: center; justify-content: space-between; font-size: 11.5px; }
.rcard__rel { color: var(--accent-2); } .rcard__date { color: var(--faint); }

/* ---------- 专题作者页（遗留样式，页面已跳转） ---------- */
.author-hero { position: relative; }
.author-hero__bd { height: 188px; }
.author-hero__scrim { position: absolute; inset: 0; background: linear-gradient(to bottom,rgba(21,23,26,.12),var(--bg)); }
.author-hero__body { position: relative; display: flex; align-items: flex-end; gap: 28px; margin-top: -64px; padding-bottom: 12px; flex-wrap: wrap; }
.author-hero__avatar { width: 128px; height: 128px; border-radius: 50%; flex: none; border: 3px solid var(--bg); display: flex; align-items: center; justify-content: center; color: #66707a; font-size: 28px; font-weight: 700; }
.author-hero__main { flex: 1; min-width: 260px; padding-bottom: 6px; }
.author-hero__name { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.author-hero__name h1 { color: #fff; font-size: 30px; font-weight: 700; margin: 0; }
.author-hero__role { color: var(--accent-2); font-size: 12px; border: 1px solid var(--chip-bd); background: var(--chip-bg); border-radius: 999px; padding: 4px 12px; }
.author-hero__bio { color: #aab0b8; font-size: 13px; line-height: 1.7; max-width: 720px; margin: 10px 0 0; }
.author-hero__stats { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 24px; margin-top: 14px; color: var(--muted); font-size: 12.5px; }
.author-hero__stats b { color: #fff; font-size: 18px; font-weight: 700; margin-right: 5px; }
.author-hero__actions { display: flex; gap: 10px; align-self: flex-start; margin-top: 10px; }
.author-listhead { display: flex; align-items: flex-end; gap: 16px; justify-content: space-between; padding-block: 36px 18px; }
.author-listhead h2 { color: #fff; font-size: 19px; font-weight: 700; margin: 0 0 5px; }
.author-listhead span { color: var(--muted); font-size: 12.5px; }
.author-listtools { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; justify-content: flex-end; }
.author-rv-card { position: relative; display: block; width: 100%; aspect-ratio: 3/4; overflow: hidden; background: #1b1e22; box-shadow: inset 0 0 0 1px rgba(255,255,255,.05); color: inherit; }
.author-rv-card__cover { position: absolute; left: 0; right: 0; top: 0; height: 56%; background: radial-gradient(120% 100% at 50% 12%, rgba(150,178,214,.12), transparent 58%), repeating-linear-gradient(118deg, rgba(255,255,255,.016) 0 1.5px, transparent 1.5px 6px), linear-gradient(168deg,#2c333d 0%,#232a33 60%,#181e24 100%); }
.author-rv-card__code { position: absolute; top: 12px; left: 12px; white-space: nowrap; font: 600 10px ui-monospace,monospace; color: #cfe0f2; background: rgba(15,17,20,.5); border: 1px solid rgba(255,255,255,.1); padding: 3px 8px; border-radius: 5px; }
.author-rv-card__body { position: absolute; left: 0; right: 0; top: 56%; bottom: 0; padding: 13px 14px; display: flex; flex-direction: column; }
.author-rv-card__title { color: #fff; font-size: 14px; font-weight: 700; line-height: 1.38; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.author-rv-card__excerpt { color: #868d96; font-size: 11.5px; line-height: 1.55; margin-top: 7px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; flex: 1; }
.author-rv-card__meta { display: flex; align-items: center; justify-content: space-between; gap: 8px; color: var(--faint); font-size: 10.5px; margin-top: 8px; }
.author-rv-card__meta span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.author-rvb-card { position: relative; display: block; aspect-ratio: 16/9; overflow: hidden; text-decoration: none; color: inherit; border-radius: 12px; box-shadow: inset 0 0 0 1px rgba(255,255,255,.06); background: #1b1e22; }
.author-rvb-card__cover { position: absolute; inset: 0; background: radial-gradient(130% 95% at 50% 14%, rgba(150,178,214,.12), transparent 55%), repeating-linear-gradient(118deg, rgba(255,255,255,.016) 0 1.5px, transparent 1.5px 6px), linear-gradient(160deg,#2c333d 0%,#222a33 52%,#10151b 100%); }
.author-rvb-card__shade { position: absolute; inset: 0; background: linear-gradient(to top, rgba(8,10,12,.94), rgba(8,10,12,.15) 52%, transparent 78%); }
.author-rvb-card__code { position: absolute; top: 12px; left: 12px; white-space: nowrap; font: 600 10.5px ui-monospace,monospace; color: #cfe0f2; background: rgba(15,17,20,.5); border: 1px solid rgba(255,255,255,.1); padding: 3px 9px; border-radius: 5px; }
.author-rvb-card__body { position: absolute; left: 0; right: 0; bottom: 0; padding: 14px 15px; }
.author-rvb-card__title { color: #fff; font-size: 15px; font-weight: 700; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.author-rvb-card__meta { display: flex; align-items: center; justify-content: space-between; gap: 10px; color: var(--faint); font-size: 10.5px; margin-top: 8px; }
.author-rvb-card__meta span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.author-empty { text-align: center; padding: 86px 20px 96px; }
.author-empty h1 { color: #fff; font-size: 24px; font-weight: 700; margin: 0 0 8px; }
.author-empty p { color: var(--muted); font-size: 13.5px; line-height: 1.7; margin: 0 0 22px; }
.author-empty--inline { grid-column: 1 / -1; padding-block: 54px 64px; background: var(--nav); border: 1px solid var(--line); border-radius: 10px; }
@media (max-width: 640px) {
  .author-hero__bd { height: 150px; }
  .author-hero__body { align-items: center; gap: 16px; margin-top: -52px; }
  .author-hero__avatar { width: 104px; height: 104px; font-size: 24px; }
  .author-hero__name h1 { font-size: 25px; }
  .author-hero__actions { width: 100%; }
  .author-listhead { align-items: flex-start; flex-direction: column; padding-block: 30px 16px; }
  .author-listtools { justify-content: flex-start; }
}

/* ===== 专题 · 3:4 卡墙 ===== */
.rv-card { border-radius: 12px; }
.rv-top-grid { display: grid; grid-template-columns: 1.62fr 1fr; gap: 18px; }
.rv-wall-grid { display: grid; grid-template-columns: repeat(5,1fr); gap: 18px; }   /* 设计稿：5列 gap:18px（呼吸感，非无缝） */
@media (max-width: 1100px) { .rv-wall-grid { grid-template-columns: repeat(3,1fr); } }
@media (max-width: 820px) { .rv-top-grid { grid-template-columns: 1fr; } }
@media (max-width: 640px) { .rv-wall-grid { grid-template-columns: repeat(2,1fr); gap: 12px; } }   /* 设计稿移动：2列 gap:12px */

/* ---------- 专题详情 ---------- */
/* 专题详情 · 1700自适应：正文720固定居中 + 两侧竖幅栏宽随屏自适应(对齐 IAB)，sticky 跟随 */
.article-layout { display: flex; gap: 28px; padding-block: 24px 40px; align-items: flex-start; justify-content: center; }
.article-ad { width: 180px; flex: none; position: sticky; top: 88px; display: flex; flex-direction: column; gap: 10px; align-items: center; }
.article-ad .label { font-size: 11px; color: var(--muted-2); align-self: flex-start; }
.article-ad .v { width: 160px; height: 600px; }            /* 默认(1366–1599)：IAB 160×600，栏 180 */
.article-ad .v .sz-300 { display: none; }
.article { flex: 1; min-width: 0; max-width: 720px; margin: 0 auto; }

/* 宽屏 ≥1600：栏宽 300，放 IAB 300×600（每侧留白≥400 足够） */
@media (min-width: 1600px) {
  .article-ad { width: 300px; }
  .article-ad .v { width: 300px; height: 600px; }
  .article-ad .v .sz-160 { display: none; }
  .article-ad .v .sz-300 { display: inline; }
}

/* 侧栏竖幅的窄屏/移动回退位（正文内）：默认隐藏，由下方断点显示 */
.article-incontent { display: none; margin: 26px auto; flex-direction: column; gap: 8px; align-items: center; }
.article-incontent .label { font-size: 11px; color: var(--muted-2); align-self: flex-start; }
.article-incontent .ic-box { width: 300px; height: 250px; }   /* <1366 → IAB 中矩形 300×250 */
.article-incontent .ic-mob { display: none; }

/* <1366：留白不足 → 隐藏两侧竖幅、转单栏 + 正文内 300×250 */
@media (max-width: 1365px) {
  .article-layout { flex-direction: column; gap: 0; }
  .article-ad { display: none; }
  .article-incontent { display: flex; }
}

/* H5 ≤640：正文满宽，回退位换 IAB 320×100 横幅 */
@media (max-width: 640px) {
  .article { max-width: none; }
  .article h1 { font-size: 24px; }
  .article-incontent .ic-box { width: 320px; height: 100px; }
  .article-incontent .ic-rect { display: none; }
  .article-incontent .ic-mob { display: inline; }
}
.article h1 { color: #fff; font-size: 28px; font-weight: 700; line-height: 1.4; margin: 12px 0 0; }
.article__meta { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 18px; color: var(--muted); font-size: 12.5px; margin: 14px 0 24px; }
.article__meta .who { display: flex; align-items: center; gap: 8px; }
.article__meta .who .av { width: 26px; height: 26px; border-radius: 50%; background: var(--accent); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 11px; }
.article-author-link { color: var(--text-2); transition: color .12s; }
.article-author-link:hover { color: #fff; }
.article__body p { color: #c7ccd2; font-size: 15.5px; line-height: 1.95; margin: 0 0 20px; }
.article__body h2 { color: #fff; font-size: 19px; font-weight: 700; margin: 32px 0 14px; }
.article__fig { aspect-ratio: 16/9; border-radius: 8px; display: flex; align-items: center; justify-content: center; color: #5b626b; font: 400 12px ui-monospace,monospace; background: repeating-linear-gradient(135deg,#21262b 0 10px,#272c31 10px 20px); margin: 8px 0 6px; }
.article__figcap { color: var(--faint); font-size: 12px; text-align: center; margin-bottom: 24px; }
.article__ad { margin: 8px 0 28px; }

/* ---------- 详情页底部推荐：同女优推荐 / 同类作品推荐，四列 16:9 自然卡片 ---------- */
.detail-page #shelves {
  background: #101215;
  border-bottom: 1px solid var(--line);
  padding-block: 4px 30px;
}
.dshelf { padding-inline: var(--detail-gut, var(--gut)); padding-block: 30px 0; }
.dshelf + .dshelf { padding-top: 32px; }
.dshelf-head { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; padding: 0 0 14px; }
.dshelf-head h2 { font-size: 18px; font-weight: 700; margin: 0; color: #fff; }
.dshelf-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 20px 14px; }
.dshelf-grid .vcard { width: auto; min-width: 0; transition: none; }
.dshelf-grid .vcard__cover { border-radius: 4px; border-color: rgba(255,255,255,.06); }
.dshelf-grid .vcard__ct {
  margin-top: 7px;
  min-height: 36px;
  color: var(--text-3);
  font-size: 12.5px;
  line-height: 1.45;
  white-space: normal;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.detail-page .ad--banner { border-radius: 6px; }
@media (max-width: 980px) { .dshelf-grid { grid-template-columns: repeat(3,minmax(0,1fr)); } }
@media (max-width: 640px) {
  .detail-page #shelves { padding-block: 0 24px; }
  .dshelf { padding-block: 28px 0; }
  .dshelf + .dshelf { padding-top: 26px; }
  .dshelf-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px 12px; }
}

/* ---------- 列表页·头部变体（标签/合集/大分类/搜索/空状态） ---------- */
.lhead { padding-block: 8px 0; }
.lhead__kicker { font-size: 12px; color: var(--accent-2); letter-spacing: .04em; margin-bottom: 6px; }
.lhead__title { display: flex; align-items: baseline; flex-wrap: wrap; gap: 12px; }
.lhead__title h1 { font-size: 24px; font-weight: 700; color: #fff; margin: 0; }
.lhead__title .tagname { font-size: 24px; font-weight: 700; color: #fff; }
.lhead__sub { font-size: 13px; color: var(--muted); }
.lhead__intro { color: #aab0b8; font-size: 13.5px; line-height: 1.7; max-width: 760px; margin: 12px 0 0; text-wrap: pretty; }
.lhead__meta { display: flex; align-items: center; gap: 8px; margin-top: 12px; color: var(--muted); font-size: 12.5px; }
.lhead__ops { display: inline-flex; align-items: center; font-size: 12px; color: var(--accent-2); }
.headrow { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.headrow .label { font-size: 12.5px; color: var(--muted-2); margin-right: 4px; }
.headrow a { font-size: 12.5px; color: var(--text-2); background: var(--nav); border: 1px solid var(--line); border-radius: 999px; padding: 5px 13px; }
.headrow a:hover, .headrow a.on { color: #fff; border-color: var(--accent); }
.restabs { display: flex; gap: 8px; margin-top: 12px; }
/* 搜索空状态兜底 */
.noresult { text-align: center; padding: 40px 20px 8px; }
.noresult__icon { width: 56px; height: 56px; border-radius: 50%; background: var(--nav); display: flex; align-items: center; justify-content: center; margin: 0 auto 16px; }
.noresult h3 { color: var(--text); font-size: 16px; font-weight: 600; margin: 0 0 8px; }
.noresult p { color: var(--muted); font-size: 13px; line-height: 1.7; margin: 0 0 14px; }
.noresult .guess { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 8px; }

/* ============================================================
   搜索：常驻框 + 浮层联想(①②③) + 结果页(④⑤⑥) + 移动全屏(⑦)
   依据 设计稿/前台设计需求说明/搜索功能.html 1:1
   ============================================================ */
.search-wrap { position: relative; }
.search.focused { background: rgba(255,255,255,.04); border-color: rgba(229,9,20,.5); box-shadow: 0 0 0 3px rgba(229,9,20,.12); }
.search.focused svg circle { stroke: var(--accent); }
.search.focused svg line { stroke: var(--accent); }
.search__clear { color: var(--muted); cursor: pointer; font-size: 15px; line-height: 1; padding-left: 4px; }
/* 背景压暗层（浮层态盖住当前页，不跳转） */
.search-dim { position: fixed; inset: 0; background: rgba(0,0,0,.68); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); z-index: 55; }
/* 下拉浮层（锚定在搜索框下方） */
/* Web 搜索浮层：规则与 H5 统一，桌面端用中等面板承载 6 个热门番号。 */
.search-drop { position: fixed; top: 128px; left: 50%; right: auto; width: min(760px, calc(100vw - 56px)); max-height: min(76vh, 720px); overflow-y: auto; background: #121212; border: 1px solid rgba(255,255,255,.16); border-radius: 12px; box-shadow: 0 28px 80px rgba(0,0,0,.68); z-index: 70; transform: translateX(-50%); transform-origin: top center; animation: searchDropIn .16s cubic-bezier(.2,.7,.2,1); }
.search-drop { overscroll-behavior: contain; scrollbar-gutter: stable; }
.search-fulltext-tip { position:fixed; z-index:90; max-width:min(320px,calc(100vw - 24px)); padding:8px 10px; border:1px solid rgba(255,255,255,.16); border-radius:7px; color:var(--text); background:#262b30; box-shadow:0 10px 28px rgba(0,0,0,.48); font-size:12px; line-height:1.5; overflow-wrap:anywhere; opacity:0; pointer-events:none; transition:opacity .12s ease; }
.search-fulltext-tip.is-show { opacity:1; }
@keyframes searchDropIn {
  from { opacity: 0; transform: translateX(-50%) translateY(-6px) scale(.985); }
  to { opacity: 1; transform: translateX(-50%) translateY(0) scale(1); }
}
.search-panel-head { position: sticky; top: 0; z-index: 2; display: flex; align-items: center; gap: 18px; padding: 18px 20px; background: #121212; border-bottom: 1px solid rgba(255,255,255,.1); }
.search-panel-input { min-width: 0; flex: 1; min-height: 28px; display: flex; align-items: center; gap: 12px; color: var(--text-2); cursor: text; padding: 0; border: 0; border-radius: 0; background: transparent; }
.search-panel-input svg { width: 16px; height: 16px; flex: none; }
.search-panel-input span { min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; color: var(--text-2); font-size: 14px; }
.search-panel-go { flex: none; color: var(--accent-2); background: transparent; border-radius: 0; font-size: 13px; font-weight: 700; padding: 4px 0 4px 12px; }
.search-sec { padding: 12px 0; }
.search-sec + .search-sec { border-top: 1px solid var(--line); }
.search-sec__head { display: flex; align-items: center; justify-content: space-between; padding: 3px 16px 8px; font-size: 12px; color: var(--muted-2); }
.search-sec__head .clear { color: var(--muted); cursor: pointer; }
.search-sec__head .badge2 { margin-left: 4px; font-size: 10px; color: var(--muted); border: 1px solid var(--line-2); border-radius: 4px; padding: 1px 6px; }
.srow { display: flex; align-items: center; gap: 11px; padding: 8px 16px; cursor: pointer; }
.srow:hover, .srow.hl { background: #1e2228; }
.srow .ic { width: 24px; flex: none; text-align: center; color: var(--muted); }
.srow .av { width: 28px; height: 28px; border-radius: 50%; flex: none; background: linear-gradient(135deg,#3a4046,#262b30); }
.srow .tagic { width: 28px; height: 28px; border-radius: 7px; flex: none; display: flex; align-items: center; justify-content: center; background: #1e2a1e; color: #8fcf9a; font-size: 13px; }
.srow .codeic { width: 28px; height: 28px; border-radius: 7px; flex: none; display: flex; align-items: center; justify-content: center; background: #15212e; color: #6fa8dc; font-size: 9px; }
.srow .main { min-width: 0; flex: 1; }
.srow .t1 { font-size: 13px; color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.srow .t1 b { color: var(--accent-2); font-weight: 700; }
.srow .t2 { font-size: 11.5px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-top: 1px; }
.srow .hot { font-size: 10.5px; color: var(--accent-2); background: var(--chip-bg); border-radius: 4px; padding: 1px 6px; flex: none; }
.srow .n { font-size: 11.5px; color: var(--muted); flex: none; }
.srow .del { color: var(--faint); font-size: 13px; flex: none; }
.search-history-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
.search-history-grid .srow { min-width:0; }
.hotrow { display: flex; flex-wrap: wrap; gap: 8px; padding: 0 16px; }
.hotchip { display: inline-flex; align-items: center; gap: 5px; max-width: 118px; min-height: 28px; background: rgba(255,255,255,.055); border: 1px solid rgba(255,255,255,.04); border-radius: 999px; padding: 5px 12px; font-size: 12.5px; color: var(--text-2); cursor: pointer; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hotchip--tag { max-width: 142px; }
.hotchip--actress { max-width: 118px; }
.hotchip .r { color: var(--accent-2); font-weight: 700; }
.search-buckets { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; padding: 2px 18px 16px; align-items: start; }
.search-bucket__ttl { color: var(--muted); font-size: 11.5px; padding: 0 16px 6px; }
.search-buckets .search-bucket__ttl { padding-inline: 0; }
.search-buckets .hotrow { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; padding: 0; }
.search-buckets .hotchip { width: 100%; max-width: none; justify-content: center; }
.search-bucket--codes { grid-column: 1 / -1; }
.hotcode-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.hotcode-card { min-width: 0; overflow: hidden; color: inherit; text-decoration: none; border-radius: 8px; }
.hotcode-card:hover .hotcode-card__title { color: #fff; }
.hotcode-card__cover { aspect-ratio: 16/9; overflow: hidden; border-radius: 8px; background: linear-gradient(135deg,#252a31,#1a1d22); border: 1px solid rgba(255,255,255,.07); }
.hotcode-card__cover img { display: block; width: 100%; height: 100%; object-fit: cover; }
.hotcode-card__title { margin-top: 7px; color: var(--text); font-size: 13px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hotcode-card__intro { margin-top: 3px; min-height: 31px; color: var(--muted); font-size: 11px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
/* 联想·相关性聚合（女优入口 / 相关视频 标题+番号 / 标签chip / 查看全部 / 无命中纠错） */
.srow .vthumb { width: 54px; height: 32px; border-radius: 5px; flex: none; background: linear-gradient(135deg,#33383f,#23272c); }
.srow .vfn { font-size: 11px; color: var(--accent); margin-top: 2px; }
.srow .arrow2 { font-size: 12px; color: var(--accent); flex: none; margin-left: 4px; }
.search-tagrow { display: flex; flex-wrap: wrap; gap: 8px; padding: 2px 16px 6px; }
.search-tagrow .tg { font-size: 12.5px; background: var(--surface); border: 1px solid var(--line-2); border-radius: 999px; padding: 4px 13px; color: var(--text-2); cursor: pointer; }
.search-tagrow .tg b { color: var(--muted); font-weight: 500; margin-right: 6px; }
.search-tagrow .tg:hover { color: var(--text); border-color: var(--accent); }
.search-seeall { padding: 10px 16px; color: var(--accent); font-size: 12.5px; cursor: pointer; text-align: center; border-top: 1px solid var(--line); }
.search-seeall:hover { background: #1e2228; }
.search-empty { padding: 14px 16px 4px; }
.search-empty .corr { font-size: 13.5px; color: var(--text); line-height: 1.7; }
.search-empty .corr b { color: var(--accent); cursor: pointer; font-weight: 600; }

/* 结果页（④⑤⑥） */
.sres-head { padding-block: 8px 0; }
.sres-head h1 { font-size: 22px; font-weight: 700; color: #fff; margin: 0; }
.sres-head h1 b { color: var(--accent-2); }
.sres-head .sub { font-size: 13px; color: var(--muted); margin-top: 5px; }
.sres-sec { margin-top: 24px; }
.sres-sec__head { display: flex; align-items: center; gap: 9px; margin-bottom: 14px; font-size: 14px; font-weight: 600; color: #fff; }
.sres-sec__head .hit { font-size: 11px; font-weight: 400; color: #6fa8dc; background: #15212e; border-radius: 4px; padding: 1px 7px; }
.sres-sec__head .note { font-size: 12px; font-weight: 400; color: var(--muted); }
.sres-recognized { display: flex; align-items: flex-start; flex-wrap: wrap; gap: 8px; margin-top: 14px; min-height: 28px; }
.sres-recognized__label { flex: none; color: var(--muted); font-size: 12px; line-height: 28px; }
.sres-recognized__chips { display: flex; flex: 1 1 260px; flex-wrap: wrap; gap: 7px; min-width: 0; }
.sres-recognized__chip, .sres-recognized__text { display: inline-flex; align-items: center; min-height: 28px; border: 1px solid var(--line-2); border-radius: 4px; padding: 3px 9px; color: var(--text-2); background: transparent; font-size: 12.5px; line-height: 1.25; }
.sres-recognized__chip b { margin-right: 5px; color: var(--muted); font-size: 11.5px; font-weight: 500; }
.sres-recognized__chip:hover { border-color: var(--accent); color: #fff; }
.sres-recognized__text { color: var(--text-3); }
.sres-recognized.is-candidate .sres-recognized__label { color: var(--accent-2); }
.actress-hit { display: inline-flex; align-items: center; gap: 12px; background: var(--surface); border-radius: 10px; padding: 11px 18px 11px 11px; }
.actress-hit .av { width: 52px; height: 52px; border-radius: 50%; flex: none; background: linear-gradient(135deg,#3a4046,#262b30); }
.actress-hit .nm { display: block; color: #fff; font-size: 15px; font-weight: 600; }
.actress-hit .meta { font-size: 12px; color: var(--muted); }
.actress-hit .meta .go { color: var(--accent-2); }
/* 番号唯一命中：单结果大卡（不拉满整行，左对齐突出） */
.sres-single { max-width: 300px; }
.sres-single .vcard { width: 100%; }
/* 空结果纠错 */
.sres-empty { text-align: center; padding: 32px 20px 8px; }
.sres-empty__icon { width: 60px; height: 60px; border-radius: 50%; background: var(--nav); display: flex; align-items: center; justify-content: center; margin: 0 auto 16px; }
.sres-empty h3 { color: var(--text); font-size: 16px; font-weight: 600; margin: 0; }
.sres-empty .didyou { margin-top: 12px; font-size: 13.5px; color: var(--muted); }
.sres-empty .didyou b { color: var(--accent-2); cursor: pointer; }

/* 移动全屏搜索（⑦） */
.msearch { position: fixed; inset: 0; z-index: 80; background: var(--bg); display: none; flex-direction: column; }
.msearch.show { display: flex; }
.msearch__bar { display: flex; align-items: center; gap: 10px; padding: 12px 14px; background: var(--nav); border-bottom: 1px solid var(--line); }
.msearch__back { font-size: 20px; color: var(--text-2); cursor: pointer; }
.msearch__box { flex: 1; display: flex; align-items: center; gap: 9px; background: var(--surface-2); border-radius: 10px; padding: 0 13px; height: 38px; }
.msearch__box input { flex: 1; border: 0; background: transparent; outline: none; color: var(--text); font-size: 14px; }
.msearch__go { color: var(--accent-2); font-size: 14px; cursor: pointer; }
.msearch__body { flex: 1; overflow-y: auto; }
@media (min-width: 641px) { .msearch { display: none !important; } }

/* ---------- 列表筛选·紧凑单行横条（更新版：排序+属性同行，可换行；移动收抽屉） ---------- */
.filterbar { margin-top: 16px; background: var(--nav); border: 1px solid rgba(255,255,255,.06); border-radius: 8px; padding: 10px 16px; }
.filterbar__row { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 14px; }
.filterbar .lbl { font-size: 12px; color: var(--muted-2); flex: none; }
.filterbar .lbl.ml { margin-left: 2px; }
.filterbar .div { width: 1px; height: 18px; background: var(--line-2); flex: none; }
.filterbar .sp { flex: 1; min-width: 8px; }
.filterbar .summary { font-size: 12px; color: var(--chip-fg); flex: none; }
.filterbar .reset { font-size: 12px; color: var(--muted); cursor: pointer; text-decoration: underline; text-underline-offset: 3px; flex: none; }
.filterbar .reset:hover { color: var(--text-2); }
/* 移动端：横条收成 排序 + 「筛选」按钮 */
.fb-mob { display: none; align-items: center; gap: 8px; margin-top: 16px; }
.fb-mob .sp { flex: 1; }
.fb-filterbtn { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; color: #fff; background: var(--surface-2); border: 1px solid var(--accent); border-radius: 999px; padding: 6px 14px; flex: none; cursor: pointer; }
.fb-filterbtn .cnt { font-size: 10px; color: #fff; background: var(--accent); border-radius: 999px; min-width: 15px; height: 15px; display: inline-flex; align-items: center; justify-content: center; padding: 0 4px; }
.fb-filterbtn .cnt:empty { display: none; }
/* 筛选抽屉（移动） */
.filter-drawer { position: fixed; inset: 0; z-index: 90; display: none; }
.filter-drawer.show { display: block; }
.filter-drawer__dim { position: absolute; inset: 0; background: rgba(8,10,12,.6); }
.filter-drawer__sheet { position: absolute; left: 0; right: 0; bottom: 0; background: var(--nav); border-radius: 16px 16px 0 0; padding: 18px 16px calc(18px + env(safe-area-inset-bottom)); max-height: 80vh; overflow-y: auto; }
.filter-drawer__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.filter-drawer__head h3 { font-size: 15px; font-weight: 700; color: #fff; margin: 0; }
.filter-drawer__head .x { color: var(--muted); font-size: 18px; cursor: pointer; }
.fd-group { padding: 10px 0; }
.fd-group + .fd-group { border-top: 1px solid rgba(255,255,255,.05); }
.fd-group .glbl { font-size: 12.5px; color: var(--muted-2); margin-bottom: 8px; }
.fd-group .chips { display: flex; flex-wrap: wrap; gap: 8px; }
.filter-drawer__foot { display: flex; gap: 12px; margin-top: 16px; }
.filter-drawer__foot .btn { flex: 1; justify-content: center; padding: 11px; }
@media (max-width: 640px) {
  .filterbar { display: none; }
  .filterbar.keep { display: block; }   /* 搜索结果页等无抽屉处，移动端横条换行保留（细节后续优化） */
  .fb-mob { display: flex; }
}
@media (min-width: 641px) {
  .fb-mob, .filter-drawer { display: none !important; }
}

/* ---------- 标签库页（标签：热门 + 分组，样式按本站） ---------- */
.tagsec { margin-top: 28px; }
.tagsec:first-of-type { margin-top: 24px; }
.tagsec__head { display: flex; align-items: center; gap: 9px; margin-bottom: 14px; }
.tagsec__head h2 { font-size: 15px; font-weight: 700; color: #fff; margin: 0; }
.tagsec__head .cnt { font-size: 12px; color: var(--muted); }
.tagcloud { display: flex; flex-wrap: wrap; gap: 10px; }
.tagpill { display: inline-flex; align-items: center; gap: 6px; background: var(--nav); border: 1px solid var(--line); color: var(--text-2); font-size: 13px; border-radius: 999px; padding: 7px 16px; transition: all .12s; }
.tagpill:hover { border-color: var(--accent); color: var(--accent-2); }
.tagpill .n { font-size: 11px; color: var(--faint); }
.tagpill--hot { background: var(--chip-bg); border-color: var(--chip-bd); color: var(--chip-fg); }
.tagpill--hot:hover { color: #fff; }

/* ---------- 导航二级 hover 下拉（日本AV：无码/中文字幕/素人） ---------- */
.nav__item { position: relative; display: inline-flex; align-items: center; }
.nav__drop { position: absolute; top: calc(100% + 9px); left: -8px; min-width: 154px; background: linear-gradient(180deg, #20242a, var(--nav)); border: 1px solid var(--line-2); border-radius: 11px; padding: 6px; box-shadow: 0 18px 44px rgba(0,0,0,.55), 0 0 0 1px rgba(0,0,0,.2); opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity .18s ease, transform .18s cubic-bezier(.2,.7,.2,1), visibility .18s; z-index: 60; }
.nav__drop::before { content: ''; position: absolute; left: 0; right: 0; bottom: 100%; height: 11px; }   /* hover 桥：补足触发器与浮层间隙，移动光标不断开 */
.nav__item:hover .nav__drop { opacity: 1; visibility: visible; transform: translateY(0); }
.nav__drop a { display: flex; align-items: center; gap: 9px; padding: 9px 13px; border-radius: 7px; font-size: 13.5px; color: var(--text-2); white-space: nowrap; transition: background .13s ease, color .13s ease; }
.nav__drop a::before { content: ''; width: 4px; height: 4px; border-radius: 50%; background: currentColor; opacity: .4; flex: none; transition: opacity .13s, transform .13s; }
.nav__drop a:hover { background: rgba(79,143,207,.16); color: #fff; }
.nav__drop a:hover::before { opacity: 1; transform: scale(1.4); background: var(--accent); }

/* ---------- 移动端左侧滑出抽屉导航 ---------- */
.mdrawer { position: fixed; inset: 0; z-index: 90; visibility: hidden; }
.mdrawer.show { visibility: visible; }
.mdrawer__ov { position: absolute; inset: 0; background: rgba(8,10,12,.62); opacity: 0; transition: opacity .26s ease; }
.mdrawer.show .mdrawer__ov { opacity: 1; }
.mdrawer__panel { position: absolute; top: 0; left: 0; bottom: 0; width: 80%; max-width: 320px; background: var(--nav); border-right: 1px solid var(--line); display: flex; flex-direction: column; transform: translateX(-100%); transition: transform .28s cubic-bezier(.2,.7,.2,1); overflow-y: auto; }
.mdrawer.show .mdrawer__panel { transform: none; }
.mdrawer__head { display: flex; align-items: center; justify-content: space-between; padding: 15px 18px; border-bottom: 1px solid var(--line); flex: none; }
.mdrawer__head .logo { font-size: 18px; font-weight: 700; }
.mdrawer__close { background: none; border: 0; color: var(--text-2); font-size: 26px; line-height: 1; cursor: pointer; padding: 0 4px; }
.mdrawer__nav { flex: 1; padding: 6px 0; }
.mdrawer__group { border-bottom: 1px solid rgba(255,255,255,.04); }
.mdrawer__row { display: flex; align-items: stretch; }
.mdrawer__link { flex: 1; min-width: 0; display: flex; align-items: center; padding: 14px 18px; font-size: 15px; font-weight: 500; color: var(--text-1); }
.mdrawer__link--solo { border-bottom: 1px solid rgba(255,255,255,.04); }
.mdrawer__link.is-active { color: var(--accent-2); }
.mdrawer__exp { flex: none; width: 54px; display: flex; align-items: center; justify-content: center; background: none; border: 0; border-left: 1px solid rgba(255,255,255,.06); color: var(--muted); cursor: pointer; }
.mdrawer__exp .cv { font-size: 12px; transition: transform .22s ease; }
.mdrawer__exp.open .cv { transform: rotate(180deg); color: var(--accent-2); }
.mdrawer__sub { max-height: 0; overflow: hidden; background: rgba(0,0,0,.2); transition: max-height .26s ease; }
.mdrawer__sub.open { max-height: 260px; }
.mdrawer__sub--show { max-height: none; overflow: visible; }   /* 缩进直显：二级常显，不折叠 */
.mdrawer__group .mdrawer__link { border-bottom: 1px solid rgba(255,255,255,.04); }
.mdrawer__sublink { display: block; padding: 12px 18px 12px 32px; font-size: 14px; color: var(--text-3); }
.mdrawer__sublink.is-active, .mdrawer__sublink:hover { color: #fff; }
.mdrawer__foot { padding: 15px 18px; border-top: 1px solid var(--line); flex: none; }
.mdrawer__foot-link { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; color: var(--text-2); }
/* 最新地址页 */
.latest-card { background: var(--nav); border: 1px solid var(--line); border-radius: 12px; padding: 24px; max-width: 640px; }
.latest-row { display: flex; align-items: center; gap: 12px; padding: 14px 0; }
.latest-row + .latest-row { border-top: 1px solid var(--line); }
.latest-row .tag { font-size: 11px; flex: none; }
.latest-row .url { flex: 1; min-width: 0; font: 500 14px ui-monospace,monospace; color: var(--text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.latest-row .copy { flex: none; font-size: 12.5px; color: var(--accent-2); border: 1px solid var(--chip-bd); border-radius: 6px; padding: 6px 12px; cursor: pointer; }
.latest-tip { color: var(--muted); font-size: 12.5px; line-height: 1.8; margin-top: 18px; }
.latest-tip b { color: var(--text-2); font-weight: 500; }
@media (max-width: 640px) {
  .nav__drop { display: none; }
  /* 移动端汉堡菜单：二级「缩进直显」在父项下（做法 D，不点击展开） */
  .nav__menu.open .nav__item { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; width: 100%; }
  .nav__menu.open .nav__drop { display: flex; flex-direction: column; position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: 0; background: transparent; padding: 2px 0 0 16px; min-width: 0; }
  .nav__menu.open .nav__drop a { padding: 5px 0; font-size: 13px; color: var(--text-3); }
}

/* ============================================================
   女优库 v2（差异化：3:4 半身像 + 分层 + 可视化属性筛选）
   依据 女优库_差异化_demo_2.html + 《女优库页·设计需求》
   ============================================================ */
.alib-floor { display: flex; align-items: baseline; gap: 12px; padding: 32px 0 16px; }
.alib-floor h2 { font-size: 17px; font-weight: 700; color: #fff; margin: 0; }
/* 3:4 半身卡 */
.acard { position: relative; border-radius: 12px; overflow: hidden; background: var(--surface); cursor: pointer; aspect-ratio: 3/4; color: inherit; display: block; }
.acard .ph { position: absolute; inset: 0; background: linear-gradient(150deg,#2c3037,#1a1d22); display: flex; align-items: center; justify-content: center; color: #3a4048; font-size: 13px; }
.acard .mask { position: absolute; inset: 0; background: linear-gradient(to top,rgba(8,9,11,.92) 0%,rgba(8,9,11,.5) 28%,transparent 52%); }
.acard .info { position: absolute; left: 0; right: 0; bottom: 0; padding: 12px; }
.acard .nm { font-size: 15px; font-weight: 700; margin-bottom: 5px; text-shadow: 0 1px 4px rgba(0,0,0,.6); color: #fff; }
.acard .meta { font-size: 11.5px; color: #c4c9cf; }
.acard .props { display: flex; gap: 5px; margin-top: 7px; flex-wrap: wrap; }
.acard .props span { font-size: 10.5px; background: rgba(255,255,255,.12); border-radius: 4px; padding: 2px 7px; backdrop-filter: blur(2px); }
.acard .reps { display: none; }
.acard .reps .rt { font-size: 11px; color: var(--muted); margin-bottom: 7px; }
.acard .reps .thumbs { display: flex; gap: 6px; }
.acard .reps .thumbs i { flex: 1; aspect-ratio: 16/10; background: linear-gradient(135deg,#33383f,#23272c); border-radius: 4px; }
.acard .reps .repbtn { margin-top: 9px; display: block; text-align: center; background: var(--accent); color: #fff; border-radius: 7px; padding: 7px; font-size: 12.5px; font-weight: 500; }
.grid-all { display: grid; grid-template-columns: repeat(6,1fr); gap: 14px; }
.grid-all > * { min-width: 0; }
/* 可视化女优属性筛选 */
.alib-filter { background: var(--nav); border: 1px solid #2a2f36; border-radius: 12px; padding: 18px 20px; margin-top: 8px; }
.alib-filter .frow { display: flex; align-items: center; gap: 14px; padding: 8px 0; flex-wrap: wrap; }
.alib-filter .frow + .frow { border-top: 1px solid #2a2f36; }
.alib-filter .flabel { width: 54px; color: var(--muted); font-size: 13px; flex-shrink: 0; }
.alib-filter .cup { display: flex; gap: 6px; flex-wrap: wrap; }
.alib-filter .cup .chip { min-width: 34px; text-align: center; font-weight: 600; }
.alib-filter .range { display: flex; align-items: center; gap: 10px; color: var(--muted); font-size: 12.5px; }
.alib-filter .range input { accent-color: var(--accent); }
.alib-filter .range--dual { flex: 1; min-width: 260px; flex-wrap: wrap; }
.alib-filter .range--dual input { width: 150px; }
.alib-filter .range__value { color: var(--text); font-size: 13px; min-width: 66px; }
.alib-filter .range__hint { color: var(--faint); font-size: 12px; }
.alib-sort { display: flex; align-items: center; gap: 10px; margin: 24px 0 14px; flex-wrap: wrap; }
.alib-sort .s { font-size: 13px; color: var(--muted); padding: 6px 14px; border-radius: 999px; cursor: pointer; }
.alib-sort .s.on { background: var(--surface); color: var(--text); }
.alib-sort .clearbtn { font-size: 12.5px; color: var(--accent); cursor: pointer; display: none; }
.alib-sort .clearbtn.show { display: inline; }
.alib-sort .cnt { margin-left: auto; color: var(--muted); font-size: 12.5px; }
@media (max-width: 900px) {
  .grid-all { grid-template-columns: repeat(3,1fr); }
}
@media (max-width: 640px) {
  .grid-all { grid-template-columns: repeat(3,1fr); gap: 10px; }
  .acard .nm { font-size: 13px; } .acard .reps { display: none; }
}

/* ===== 女优库 · 层叠书架（定稿）：筛选属性收起下拉 + 全量 3:4 人像层叠墙 ===== */
.alib-bar { display: flex; align-items: center; gap: 14px; margin: 16px 0 18px; flex-wrap: wrap; }
.alib-bar__toggle { display: inline-flex; align-items: center; gap: 8px; padding: 9px 16px; background: var(--nav); border: 1px solid var(--line-2); border-radius: 999px; color: var(--text); font: inherit; font-size: 13px; cursor: pointer; }
.alib-bar__count { min-width: 18px; height: 18px; display: none; align-items: center; justify-content: center; border-radius: 999px; background: var(--accent); color: #fff; font-size: 11px; font-weight: 700; }
.alib-bar__toggle .arr { font-size: 10px; transition: transform .2s; }
.alib-bar__toggle.on .arr { transform: rotate(180deg); }
.alib-bar .sp { flex: 1; }
.alib-bar .alib-sort { margin: 0; }
.alib-bar__toggle { order: 2; }
.alib-bar .alib-sort { order: 1; }
.alib-filter.collapsed { display: none; }
.alib-filter { margin-bottom: 18px; }
/* 层叠书架墙：作品数常显，避免依赖悬停才可读。 */
.bshelf-wall { display: flex; flex-wrap: wrap; padding-left: 18px; }
.bcard { position: relative; width: 150px; margin: 0 0 24px -18px; flex: none; cursor: pointer; color: inherit; }
.bcard__cover { position: relative; aspect-ratio: 3/4; border-radius: 8px; overflow: hidden; background: linear-gradient(160deg,#2c3037,#1a1d22); border: 1px solid rgba(255,255,255,.08); box-shadow: -12px 0 22px rgba(0,0,0,.5); }
.bcard__cover .ph { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: #3a4048; font-size: 11px; }
.bcard__works { position: absolute; left: 0; right: 0; bottom: 0; padding: 22px 8px 9px; background: linear-gradient(to top,rgba(8,9,11,.92),transparent); font-size: 11.5px; color: #d2d6db; text-align: center; }
.bcard__nm { margin-top: 9px; font-size: 12.5px; color: var(--text); text-align: center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding: 0 4px; }
@media (max-width: 1100px) { .bcard { width: 132px; } }
@media (max-width: 760px) { .bcard { width: 110px; margin-bottom: 20px; } }
@media (max-width: 480px) { .bshelf-wall { padding-left: 14px; } .bcard { width: 92px; margin-left: -14px; } }
@media (max-width: 560px) { .alib-filter .range--dual input { width: 100%; } }

/* ===================== 法务/帮助文档页（独立页：faq/dmca/terms/privacy/2257/content-removal/contact） ===================== */
.legal { max-width: 820px; margin: 0 auto; padding-block: 26px 60px; }
.legal-title { color: #fff; font-size: 26px; font-weight: 700; margin: 0; display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.legal-title small { font-size: 13.5px; font-weight: 400; color: var(--muted); letter-spacing: .02em; }
.legal-meta { color: var(--faint); font-size: 12.5px; margin: 12px 0 26px; padding-bottom: 18px; border-bottom: 1px solid var(--line); }
.legal-sec { margin-top: 26px; }
.legal-sec h2 { color: var(--text); font-size: 16.5px; font-weight: 600; margin: 0 0 10px; display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.legal-sec h2 small { font-size: 12px; font-weight: 400; color: var(--muted-2); }
.legal-sec p { color: #aab0b8; font-size: 14px; line-height: 1.9; margin: 0 0 10px; }
.legal-sec p.en { color: var(--faint); font-size: 12.5px; line-height: 1.8; font-style: normal; }
.legal-sec ul { color: #aab0b8; font-size: 14px; line-height: 1.9; padding-left: 20px; margin: 8px 0; }
.legal-callout { background: var(--nav); color: #aab0b8; font-size: 13px; line-height: 1.8; border: 1px solid var(--line); border-radius: 8px; padding: 16px 18px; margin-top: 18px; }
.legal-callout .link { color: var(--accent-2); }

/* ===================== 标签库（石墨版，结构对标 91sm tags） ===================== */
.tags-hero { text-align: center; padding-block: 50px 8px; padding-inline: var(--gut); }
.tags-hero-title { font-size: 30px; font-weight: 900; color: #fff; margin: 0; letter-spacing: .01em; }
.tags-hero-title em { color: var(--accent); font-style: normal; }
.trending-row { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 20px; }
.trending-chip { display: inline-flex; align-items: center; gap: 8px; background: var(--nav); border: 1px solid var(--line-2); border-radius: 999px; padding: 8px 16px; font-size: 13px; color: var(--text-2); transition: all .14s; }
.trending-chip:hover { border-color: var(--accent); color: #fff; }
.trending-chip .rk { font-size: 11px; font-weight: 700; color: var(--accent); font-family: ui-monospace, Menlo, monospace; }
.trending-chip .up { font-size: 11px; color: #7bc47f; }
/* 焦点标签云 */
.focus-cloud-wrap { padding-inline: var(--gut); margin-top: 18px; }
.focus-cloud { position: relative; height: 300px; border: 1px solid var(--line); border-radius: 16px; overflow: hidden; background: radial-gradient(130% 120% at 50% 0%, #1c2027 0%, var(--bg) 72%); }
.focus-grid { position: absolute; inset: 0; background-image: linear-gradient(rgba(79,143,207,.055) 1px, transparent 1px), linear-gradient(90deg, rgba(79,143,207,.055) 1px, transparent 1px); background-size: 40px 40px; }
.focus-scan { position: absolute; left: 0; right: 0; height: 130px; top: 0; background: linear-gradient(180deg, transparent, rgba(79,143,207,.10), transparent); animation: focusScan 6.5s linear infinite; }
@keyframes focusScan { 0% { transform: translateY(-130px); } 100% { transform: translateY(300px); } }
.focus-tags { position: absolute; inset: 0; }
.focus-tag { position: absolute; transform: translate(-50%, -50%); white-space: nowrap; color: var(--text-2); background: rgba(27,30,34,.72); border: 1px solid var(--line-2); border-radius: 999px; padding: 6px 14px; transition: all .14s; }
.focus-tag:hover { color: #fff; border-color: var(--accent); transform: translate(-50%, -50%) scale(1.07); }
.focus-tag.f1 { font-size: 22px; font-weight: 700; color: #fff; border-color: var(--chip-bd); background: var(--chip-bg); }
.focus-tag.f2 { font-size: 18px; font-weight: 600; }
.focus-tag.f3 { font-size: 16px; }
.focus-tag.f4 { font-size: 14px; }
.focus-tag.f5 { font-size: 13px; color: var(--muted); }
/* 时间 Tab（桌面） */
.time-tabs-wrap { display: flex; justify-content: center; padding-inline: var(--gut); margin-top: 38px; }
.time-tabs { display: inline-flex; gap: 4px; background: var(--nav); border: 1px solid var(--line); border-radius: 10px; padding: 4px; }
.time-tab { padding: 8px 18px; border-radius: 7px; font-size: 13px; color: var(--muted); transition: all .14s; }
.time-tab:hover { color: var(--text); }
.time-tab.active { background: var(--chip-bg); color: #fff; }
/* TOP 榜单（桌面 4 列） */
.board-wrap { padding-inline: var(--gut); margin-top: 26px; padding-bottom: 10px; }
.board-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.board { background: var(--nav); border: 1px solid var(--line); border-radius: 14px; overflow: hidden; }
.board-head { display: flex; align-items: baseline; gap: 8px; padding: 16px 16px 12px; border-bottom: 1px solid var(--line); }
.board-title { font-size: 15px; font-weight: 700; color: #fff; }
.board-en { font-size: 10.5px; color: var(--faint); letter-spacing: .05em; text-transform: uppercase; margin-left: auto; }
.board-list { padding: 6px 6px 10px; }
.board-row { display: flex; align-items: center; gap: 10px; padding: 9px 10px; border-radius: 8px; transition: background .12s; }
.board-row:hover { background: rgba(79,143,207,.06); }
.board-rank { width: 20px; text-align: center; font-size: 13px; font-weight: 700; color: var(--faint); font-family: ui-monospace, Menlo, monospace; flex: none; }
.board-row[data-rank="1"] .board-rank { color: #e8c45a; }
.board-row[data-rank="2"] .board-rank { color: #cdd2d8; }
.board-row[data-rank="3"] .board-rank { color: #d99a6c; }
.board-name { flex: 1; min-width: 0; font-size: 13.5px; color: var(--text-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.board-row:hover .board-name { color: #fff; }
.board-heat { font-size: 11.5px; color: var(--muted); font-family: ui-monospace, Menlo, monospace; flex: none; }
.board-trend { font-size: 11px; flex: none; width: 30px; text-align: right; }
.board-trend.up { color: #7bc47f; }
.board-trend.down { color: var(--faint); }
.board-trend.new { color: var(--accent-2); }
/* 移动端：维度 Tab + 时间下拉 + 列表 */
.m-board-bar, .m-board-wrap { display: none; }
.m-dim-tabs { display: flex; gap: 6px; overflow-x: auto; }
.m-dim-tab { padding: 7px 14px; border-radius: 999px; border: 1px solid var(--line-2); background: var(--nav); font-size: 12.5px; color: var(--text-2); white-space: nowrap; }
.m-dim-tab.is-active { background: var(--chip-bg); border-color: var(--chip-bd); color: #fff; }
.m-time-dd { position: relative; flex: none; }
.m-time-trigger { display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px; border-radius: 8px; border: 1px solid var(--line-2); background: var(--nav); font-size: 12.5px; color: var(--text-2); }
.m-time-menu { position: absolute; right: 0; top: calc(100% + 6px); background: var(--nav); border: 1px solid var(--line-2); border-radius: 10px; padding: 6px; min-width: 130px; box-shadow: 0 14px 34px rgba(0,0,0,.5); display: none; z-index: 30; }
.m-time-menu.show { display: block; }
.m-time-opt { display: block; width: 100%; text-align: left; padding: 8px 12px; border-radius: 6px; font-size: 12.5px; color: var(--text-2); }
.m-time-opt.is-active { background: var(--chip-bg); color: #fff; }
.m-board-list .board-row { border-bottom: 1px solid var(--line); border-radius: 0; }
@media (max-width: 1240px) { .board-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 980px) {
  .time-tabs-wrap, .board-wrap { display: none; }
  .focus-cloud { height: 230px; }
  .m-board-bar { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding-inline: var(--gut); margin-top: 26px; }
  .m-board-wrap { display: block; padding-inline: var(--gut); margin-top: 14px; }
  .m-board-list { background: var(--nav); border: 1px solid var(--line); border-radius: 14px; overflow: hidden; }
}


/* ===================== 中转页 / 官方发布页（防失联） ===================== */
.rd-top { display: flex; justify-content: space-between; align-items: center; padding: 18px var(--gut); }
.rd-mark { display: flex; align-items: center; gap: 9px; font-size: 14px; font-weight: 700; color: #fff; letter-spacing: .04em; }
.rd-mark .dot { width: 8px; height: 8px; border-radius: 50%; background: var(--accent); }
.rd-status { display: inline-flex; align-items: center; gap: 7px; font-size: 12px; color: #7bc47f; border: 1px solid rgba(123,196,127,.35); border-radius: 999px; padding: 5px 13px; }
.rd-status .live { width: 7px; height: 7px; border-radius: 50%; background: #7bc47f; animation: rdPulse 2s infinite; }
@keyframes rdPulse { 0% { box-shadow: 0 0 0 0 rgba(123,196,127,.5); } 70% { box-shadow: 0 0 0 8px rgba(123,196,127,0); } 100% { box-shadow: 0 0 0 0 rgba(123,196,127,0); } }
.rd-hero { text-align: center; padding: 56px var(--gut) 36px; }
.rd-wordmark { font-size: 64px; font-weight: 900; color: #fff; letter-spacing: .05em; margin: 0; line-height: 1; }
.rd-wordmark span { color: var(--accent); }
.rd-tagline { color: var(--muted); font-size: 13px; margin-top: 16px; }
.rd-cta { margin-top: 30px; display: flex; flex-direction: column; align-items: center; gap: 16px; }
.rd-btn { display: inline-flex; align-items: center; gap: 10px; background: var(--accent); color: #fff; font-size: 15px; font-weight: 600; padding: 14px 42px; border-radius: 10px; transition: all .14s; }
.rd-btn:hover { background: #5f9bd8; transform: translateY(-1px); }
.rd-domain { display: inline-flex; align-items: center; gap: 16px; font-size: 13px; color: var(--text-2); }
.rd-domain b { color: #fff; font-family: ui-monospace, Menlo, monospace; }
.rd-latency { display: inline-flex; align-items: center; gap: 6px; color: #7bc47f; font-size: 11.5px; }
.rd-latency .led { width: 6px; height: 6px; border-radius: 50%; background: #7bc47f; }
.rd-section { padding: 0 var(--gut); max-width: 1000px; margin: 0 auto; }
.rd-section-head { display: flex; align-items: center; gap: 12px; margin: 40px 0 6px; }
.rd-section-head .idx { font-family: ui-monospace, Menlo, monospace; color: var(--accent); font-size: 13px; }
.rd-section-head h2 { font-size: 16px; color: #fff; font-weight: 700; margin: 0; }
.rd-section-head .rule { flex: 1; height: 1px; background: var(--line); }
.rd-section-head .helper { font-size: 10.5px; color: var(--faint); font-family: ui-monospace, Menlo, monospace; letter-spacing: .04em; }
.rd-section-desc { color: var(--muted); font-size: 12.5px; margin: 6px 0 16px; }
.rd-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; padding-bottom: 8px; }
.rd-node { background: var(--nav); border: 1px solid var(--line); border-radius: 12px; padding: 16px; }
.rd-node__tag { font-size: 10.5px; color: var(--accent-2); letter-spacing: .06em; font-family: ui-monospace, Menlo, monospace; }
.rd-node__domain { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 10px; }
.rd-node__domain code { font-size: 14px; color: #fff; font-family: ui-monospace, Menlo, monospace; }
.rd-copy { font-size: 11.5px; color: var(--accent-2); border: 1px solid var(--chip-bd); border-radius: 6px; padding: 4px 10px; transition: all .12s; }
.rd-copy:hover { background: var(--chip-bg); color: #fff; }
.rd-node__meta { display: flex; gap: 14px; margin-top: 12px; font-size: 11px; color: var(--muted); }
.rd-foot { text-align: center; color: var(--faint); font-size: 12px; padding: 40px var(--gut) 50px; }
@media (max-width: 860px) { .rd-grid { grid-template-columns: 1fr; } .rd-wordmark { font-size: 48px; } }

/* ===== 列表筛选工具条 · 女优库同款（筛选属性按钮 → 收起面板 + 排序 pill 一行 + 已选可删 chip） ===== */
.flt-bar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 8px 0 0; }
.flt-toggle { display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; font-size: 13px; font-weight: 500; color: #e6e8ea; background: #23272c; border: 1px solid rgba(255,255,255,.12); border-radius: 8px; padding: 8px 14px; cursor: pointer; flex: none; }
.flt-toggle svg { display: block; }
.flt-toggle .badge { font-size: 11px; font-weight: 700; color: #0f1114; background: #4f8fcf; border-radius: 999px; min-width: 18px; text-align: center; padding: 1px 6px; }
.flt-toggle .arr { font-size: 10px; color: #8a9099; }
.flt-rmchip { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; color: #cfe0f2; background: rgba(79,143,207,.16); border: 1px solid rgba(79,143,207,.4); border-radius: 999px; padding: 4px 11px; cursor: pointer; }
.flt-rmchip .x { color: #8fbce8; }
.flt-clear { font-size: 12px; color: #8fbce8; cursor: pointer; }
.flt-spacer { flex: 1; min-width: 20px; }
.flt-sortlbl { font-size: 12px; color: #7e848c; }
.flt-sort { font-size: 12.5px; border-radius: 999px; padding: 5px 14px; cursor: pointer; background: #23272c; color: #c4c8cd; border: 1px solid rgba(255,255,255,.1); }
.flt-sort.on { background: #4f8fcf; color: #fff; border-color: transparent; }
.flt-vdiv { width: 1px; height: 18px; background: rgba(255,255,255,.12); }
.flt-count { font-size: 12.5px; color: #8a9099; white-space: nowrap; }
.flt-panel { margin-top: 12px; background: #1b1e22; border: 1px solid rgba(255,255,255,.06); border-radius: 10px; padding: 16px 18px; }
.flt-panel.collapsed { display: none; }
.flt-grp { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 14px; }
.flt-grp:last-child { margin-bottom: 0; }
.flt-grp .glbl { font-size: 12.5px; color: #7e848c; width: 48px; flex: none; padding-top: 5px; }
.flt-grp .opts { display: flex; flex-wrap: wrap; gap: 7px; }
.flt-chip { font-size: 12.5px; border-radius: 999px; padding: 4px 12px; cursor: pointer; transition: all .12s; background: #23272c; color: #c4c8cd; border: 1px solid rgba(255,255,255,.1); }
.flt-chip.on { background: #4f8fcf; color: #fff; border-color: transparent; }
/* 日本AV列表 · 吸附控制条 + 二级分类目录 */
.jp-tools { position: sticky; top: 65px; z-index: 45; margin-top: 16px; background: var(--bg); border-bottom: 1px solid var(--line); box-shadow: 0 0 0 12px var(--bg); }
.jp-tools.is-stuck { top:73px; }
.jp-tools__inner { display: flex; align-items: center; gap: 10px; min-height: 46px; padding: 0 0 8px; }
.jp-tools.is-desktop-expanded { box-shadow:0 12px 24px rgba(0,0,0,.28), 0 0 0 12px var(--bg); }
.jp-tools.is-desktop-expanded .jp-tools__inner { align-items:flex-start; }
.jp-tools.is-desktop-expanded .jp-tools__sortset { margin-top:1px; }
.jp-tools.is-desktop-expanded .jp-tools__divider { margin-top:3px; }
.jp-tools.is-desktop-expanded .jp-tools__more { margin-top:1px; }
.jp-tools__sortset { flex: none; display: inline-flex; align-items: center; width: fit-content; min-width: 0; padding: 2px; border: 1px solid rgba(255,255,255,.075); border-radius: 8px; background: rgba(10,12,15,.2); }
.jp-tools__sortset { order: 3; }
.jp-tools__divider { flex: none; width: 1px; height: 26px; background: rgba(255,255,255,.1); order: 2; }
.jp-tools__sortbtn, .jp-tools__chip, .jp-tools__all { height: 30px; display: inline-flex; align-items: center; justify-content: center; border-radius: 7px; border: 1px solid transparent; color: #c4c8cd; font-size: 12.5px; font-weight: 700; line-height: 1; white-space: nowrap; }
.jp-tools__sortbtn { min-width: 58px; padding: 0 13px; color: #929aa4; }
.jp-tools__sortbtn.is-on { background: #4f8fcf; color: #fff; border-color: rgba(255,255,255,.12); box-shadow: 0 5px 14px rgba(79,143,207,.2); }
.jp-tools__all { min-width: 58px; padding: 0 12px; color: #aab0b8; background: rgba(255,255,255,.035); border-color: rgba(255,255,255,.085); }
.jp-tools__all:hover { color: #fff; border-color: rgba(79,143,207,.42); background: rgba(79,143,207,.09); }
.jp-tools__all.is-on { background: rgba(79,143,207,.18); border-color: rgba(79,143,207,.58); color: #fff; }
.jp-tools__desktop-categories { flex:1 1 auto; display:flex; align-items:flex-start; gap:12px; min-width:0; }
.jp-tools__desktop-categories { order: 1; }
.jp-tools__desktop-list { flex:1 1 auto; display:grid; grid-template-columns:repeat(14,minmax(52px,1fr)); grid-auto-rows:32px; gap:10px 8px; max-height:32px; overflow:hidden; }
.jp-tools.is-desktop-expanded .jp-tools__desktop-list { max-height:74px; }
.jp-tools__desktop-list .jp-tools__chip, .jp-tools__desktop-list .jp-tools__all { width:auto; min-width:0; padding:0 8px; overflow:hidden; text-overflow:ellipsis; font-size:14px; font-weight:500; }
.jp-tools__mobile-toggle { display:none; align-items:center; justify-content:space-between; gap:12px; min-width:126px; height:32px; padding:0 11px 0 13px; border:1px solid rgba(255,255,255,.1); border-radius:7px; color:#c9ced5; background:rgba(255,255,255,.035); font-size:12.5px; font-weight:700; white-space:nowrap; }
.jp-tools__mobile-toggle:hover, .jp-tools.is-open .jp-tools__mobile-toggle { color:#fff; border-color:rgba(79,143,207,.58); background:rgba(79,143,207,.12); }
.jp-tools__mobile-toggle.has-selected { color:#cfe0f2; }
.jp-tools__mobile-toggle i, .jp-tools__more i { color:#8fbce8; font-size:11px; font-style:normal; }
.jp-tools__more { flex:none; height:30px; display:inline-flex; align-items:center; gap:6px; padding:0 8px; color:#8fbce8; font-size:12px; font-weight:700; white-space:nowrap; }
.jp-tools__more { order: 4; }
.jp-tools__more:hover { color:#fff; }
.jp-tools__catalog { display:none; }
.jp-tools__catalog-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; color:#e6e8ea; font-size:13px; }
.jp-tools__catalog-head button { width:28px; height:28px; border-radius:5px; color:#9ba3ad; font-size:20px; line-height:1; }
.jp-tools__catalog-head button:hover { color:#fff; background:rgba(255,255,255,.06); }
.jp-tools__categories { display:grid; grid-template-columns:repeat(auto-fit,minmax(72px,1fr)); gap:8px; min-width:0; }
.jp-tools__chip { flex: none; min-width: 58px; padding: 0 12px; color: #c9ced5; background: rgba(255,255,255,.035); border-color: rgba(255,255,255,.085); box-shadow: inset 0 1px 0 rgba(255,255,255,.035); }
.jp-tools__chip:hover { color: #fff; border-color: rgba(79,143,207,.42); background: rgba(79,143,207,.09); }
.jp-tools__chip.is-on { background: rgba(79,143,207,.18); border-color: rgba(79,143,207,.58); color: #fff; box-shadow: inset 0 0 0 1px rgba(79,143,207,.10); }
.jp-tools__scrim { display:none; }
/* 窄屏：控制条保持紧凑，二级分类从底部弹出。 */
@media (max-width: 900px) {
  body.jp-catalog-open { overflow:hidden; }
  .jp-tools { top:73px; margin-top:14px; background:var(--bg); border-bottom:0; box-shadow:0 0 0 8px var(--bg); }
  .jp-tools__inner { gap:8px; min-height:50px; padding:8px 10px; background:var(--nav); border:1px solid rgba(255,255,255,.065); border-radius:8px; box-shadow:0 10px 22px rgba(0,0,0,.18); }
  .jp-tools__sortbtn { min-width: 48px; padding-inline: 10px; }
  .jp-tools__divider { height:24px; }
  .jp-tools__desktop-categories { display:none; }
  .jp-tools__mobile-toggle { display:inline-flex; flex:1; min-width:0; }
  .jp-tools__sortset { order: 1; }
  .jp-tools__divider { order: 1; }
  .jp-tools__mobile-toggle { order: 2; }
  .jp-tools__scrim { position:fixed; inset:0; z-index:59; display:none; background:#101215; }
  .jp-tools.is-open .jp-tools__scrim { display:block; }
  .jp-tools__catalog { position:fixed; z-index:60; inset:auto 0 0; max-height:70vh; overflow-y:auto; display:block; padding:18px max(18px, env(safe-area-inset-right)) calc(20px + env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left)); background:#181b20; border:1px solid rgba(255,255,255,.09); border-bottom:0; border-radius:14px 14px 0 0; box-shadow:0 -18px 40px rgba(0,0,0,.42); transform:translateY(105%); transition:transform .22s ease; }
  .jp-tools.is-open .jp-tools__catalog { transform:translateY(0); }
  .jp-tools__catalog-head { margin-bottom:16px; }
  .jp-tools__catalog-head strong { font-size:15px; }
  .jp-tools__categories { grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
  .jp-tools__chip { min-width:0; height:38px; padding-inline:8px; }
  .flt-bar { flex-wrap: nowrap; gap: 8px; }
  .flt-sortlbl, .flt-vdiv, .flt-rmchip, .flt-clear { display: none; }
  .flt-sort { order: 1; }
  .flt-spacer { order: 2; flex: 1 1 auto; flex-basis: auto; min-width: 8px; height: auto; }
  .flt-toggle { order: 3; }
  .flt-count { order: 4; display: none; }   /* 结果数不挤进筛选行 */
  .pager { flex-wrap: wrap; gap: 6px; padding-top: 32px; }
  .pager .pg-txt { display: none; }         /* 移动端分页只留箭头 ‹ ›(设计稿) */
  .pager a { min-width: 34px; padding: 0 8px; }
}
@media (max-width: 640px) {
  .jp-tools { top:63px; margin-top:12px; }
}

.rv-layout { display: inline-flex; gap: 4px; background: #1b1e22; border: 1px solid rgba(255,255,255,.08); border-radius: 10px; padding: 5px; }
.rv-layout span { font-size: 12.5px; font-weight: 600; padding: 7px 14px; border-radius: 7px; cursor: pointer; color: #8a9099; transition: all .15s; white-space: nowrap; }
.rv-layout span.on { background: #4f8fcf; color: #fff; }

/* 仅供屏幕阅读器/SEO 的视觉隐藏（如首页 H1）—— 不影响视觉布局 */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

/* ============================================================
   长视频播放器基础版 · 交互原型
   A/B/C 共用状态内核，只改变控制层级与顺序。
   ============================================================ */
.player-review-toolbar { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:10px; padding:10px 12px; border:1px solid rgba(255,255,255,.1); border-radius:8px; color:var(--text-2); background:var(--nav); }
.player-review-toolbar__copy { min-width:0; display:grid; gap:2px; }
.player-review-toolbar__copy strong { color:#fff; font-size:12px; }
.player-review-toolbar__copy span { color:var(--muted); font-size:10.5px; line-height:1.45; }
.player-review-toolbar__actions { flex:none; display:flex; align-items:center; gap:5px; }
.player-review-toolbar__actions button { min-height:32px; display:inline-flex; align-items:center; gap:5px; padding:0 10px; border:1px solid var(--line-2); border-radius:6px; color:var(--text-2); background:transparent; font-size:11px; }
.player-review-toolbar__actions button small { padding:1px 4px; border-radius:999px; color:#cfe0f2; background:rgba(79,143,207,.22); font-size:8px; }
.player-review-toolbar__actions button:hover,.player-review-toolbar__actions button[aria-pressed="true"] { color:#fff; border-color:rgba(143,188,232,.62); background:rgba(79,143,207,.18); }
.player-review-toolbar__actions button:focus-visible { outline:2px solid var(--accent-2); outline-offset:2px; }
.player--prototype { container-type: inline-size; color: #fff; user-select: none; -webkit-user-select: none; }
.player--prototype button, .player--prototype input { font: inherit; }
.player-proto__center-play { position:absolute; z-index:9; top:50%; left:50%; width:var(--player-center-play-web); height:var(--player-center-play-web); display:grid; place-items:center; padding:0; border:1px solid rgba(255,255,255,.22); border-radius:50%; color:#fff; background:rgba(79,143,207,.92); box-shadow:0 10px 28px rgba(0,0,0,.36); cursor:pointer; transform:translate(-50%,-50%); transition:transform var(--player-motion-fast) ease,background var(--player-motion-fast) ease,opacity var(--player-motion-fast) ease; }
.player-proto__center-play:hover { background:#5d9bd8; transform:translate(-50%,-50%) scale(1.04); }
.player-proto__center-play svg { width:var(--player-center-icon-web); height:var(--player-center-icon-web); margin-left:3px; }
.player--prototype.is-playing .player-proto__center-play,
.player--prototype.is-buffering .player-proto__center-play,
.player--prototype.is-error .player-proto__center-play,
.player--prototype.is-dragging .player-proto__center-play,
.player--prototype.is-marker-open .player-proto__center-play { opacity:0; pointer-events:none; }
.player--prototype:focus-visible { outline:2px solid var(--accent-2); outline-offset:2px; }
.player-proto__controls { position:absolute; z-index:8; left:0; right:0; bottom:0; padding:42px 12px 10px; background:linear-gradient(to top,rgba(5,7,9,.96) 0,rgba(5,7,9,.76) 48%,transparent 100%); opacity:1; transform:translateY(0); transition:opacity var(--player-motion-layer) ease,transform var(--player-motion-layer) ease; }
.player--prototype.is-controls-hidden .player-proto__controls { opacity:0; pointer-events:none; transform:translateY(8px); }
.player-proto__row { min-width:0; display:flex; align-items:center; gap:var(--player-control-gap); }
.player-proto__timeline { display:grid; grid-template-columns:auto minmax(120px,1fr) auto; align-items:center; gap:10px; min-width:0; }
.player-proto__time,.player-proto__compact-time { color:#d4d8dd; font-size:12px; font-variant-numeric:tabular-nums; white-space:nowrap; }
.player-proto__compact-time { display:inline-flex; align-items:center; gap:4px; }
.player-proto__compact-time i { color:#737b84; font-style:normal; }
.player-proto__action,.player-proto__text-action { position:relative; flex:none; width:var(--player-hit-web); height:var(--player-hit-web); min-width:var(--player-hit-web); display:inline-flex; align-items:center; justify-content:center; padding:0; border:1px solid transparent; border-radius:var(--player-control-radius); color:#edf0f3; background:transparent; cursor:pointer; transition:color var(--player-motion-fast) ease,background var(--player-motion-fast) ease,border-color var(--player-motion-fast) ease,transform var(--player-motion-fast) ease; }
.player-proto__action:hover,.player-proto__text-action:hover { border-color:rgba(255,255,255,.16); color:#fff; background:rgba(255,255,255,.09); }
.player-proto__action:active:not(:disabled),.player-proto__text-action:active:not(:disabled) { color:#fff; background:rgba(79,143,207,.28); transform:scale(.96); }
.player-proto__action:focus-visible,.player-proto__text-action:focus-visible,.player-proto__center-play:focus-visible,.player-proto__marker:focus-visible { outline:2px solid var(--accent-2); outline-offset:2px; }
.player-proto__action:disabled,.player-proto__text-action:disabled,.player-proto__center-play:disabled { opacity:.42; cursor:not-allowed; }
.player-proto__action .player-icon,.player-proto__toggle .player-icon { width:var(--player-icon-size); height:var(--player-icon-size); }
.player-proto__toggle { width:var(--player-hit-web); min-width:var(--player-hit-web); height:var(--player-hit-web); }
.player-proto__toggle [data-player-pause-icon],.player--prototype.is-playing .player-proto__toggle [data-player-play-icon] { display:none; }
.player--prototype.is-playing .player-proto__toggle [data-player-pause-icon] { display:inline-flex; }
.player-proto__text-action { width:var(--player-hit-web); min-width:var(--player-hit-web); padding-inline:0; border-color:transparent; color:#f1f3f5; background:transparent; font-size:14px; font-variant-numeric:tabular-nums; }
.player-proto__action[aria-pressed="true"],.player-proto__text-action[aria-expanded="true"] { border-color:rgba(126,183,238,.7); color:#fff; background:rgba(79,143,207,.26); }
.player-proto__action[data-player-tooltip]::after,.player-proto__text-action[data-player-tooltip]::after,.player-proto__center-play[data-player-tooltip]::after { position:absolute; z-index:30; left:50%; bottom:calc(100% + 7px); min-width:max-content; padding:5px 7px; border:1px solid rgba(255,255,255,.13); border-radius:5px; content:attr(data-player-tooltip); color:#f3f5f7; background:rgba(8,10,13,.96); box-shadow:0 6px 18px rgba(0,0,0,.34); font-size:10.5px; font-weight:400; line-height:1.2; opacity:0; pointer-events:none; transform:translate(-50%,3px); transition:opacity .12s ease,transform .12s ease; }
.player-proto__center-play[data-player-tooltip]::after { bottom:auto; top:calc(100% + 8px); }
.player-proto__action[data-tooltip-edge="left"]::after { left:0; transform:translate(0,3px); }
.player-proto__action[data-tooltip-edge="right"]::after { right:0; left:auto; transform:translate(0,3px); }
@media (hover:hover) and (pointer:fine) {
  .player-proto__action[data-player-tooltip]:hover::after,.player-proto__text-action[data-player-tooltip]:hover::after,.player-proto__center-play[data-player-tooltip]:hover::after { opacity:1; transform:translate(-50%,0); transition-delay:.38s; }
  .player-proto__action[data-tooltip-edge="left"]:hover::after,.player-proto__action[data-tooltip-edge="right"]:hover::after { transform:translate(0,0); }
}
.player-proto__spacer { min-width:var(--player-group-gap); flex:1 1 auto; }
.player-proto__seek { position:relative; min-width:0; height:20px; display:flex; align-items:center; touch-action:none; cursor:pointer; }
.player-proto__seek[aria-disabled="true"] { cursor:not-allowed; opacity:.55; }
.player-proto__track { position:relative; width:100%; height:var(--player-progress-web); border-radius:999px; background:rgba(255,255,255,.22); transition:height var(--player-motion-fast) ease; }
.player-proto__track > span { position:absolute; inset:0 auto 0 0; width:0; border-radius:inherit; background:rgba(255,255,255,.38); pointer-events:none; }
.player-proto__track > i { position:absolute; inset:0 auto 0 0; width:0; border-radius:inherit; background:var(--accent); pointer-events:none; }
.player-proto__track > b { position:absolute; z-index:3; top:50%; left:0; width:var(--player-thumb-size); height:var(--player-thumb-size); border:2px solid #fff; border-radius:50%; background:var(--accent); box-shadow:0 2px 7px rgba(0,0,0,.42); pointer-events:none; transform:translate(-50%,-50%); transition:width var(--player-motion-fast) ease,height var(--player-motion-fast) ease; }
.player--prototype.is-dragging .player-proto__track { height:var(--player-progress-dragging); }
.player--prototype.is-dragging .player-proto__track > b { width:var(--player-thumb-dragging); height:var(--player-thumb-dragging); }
.player-proto__seek-bubble { position:absolute; z-index:8; bottom:18px; min-width:54px; display:none; padding:6px 8px; border:1px solid rgba(255,255,255,.16); border-radius:var(--player-bubble-radius); color:#fff; background:rgba(10,12,15,.96); box-shadow:0 8px 20px rgba(0,0,0,.38); font-size:11px; font-variant-numeric:tabular-nums; text-align:center; pointer-events:none; transform:translateX(-50%); }
.player-proto__seek-bubble::after,.player-proto__marker-bubble::after { position:absolute; left:50%; bottom:-5px; width:8px; height:8px; content:""; background:inherit; border-right:1px solid rgba(255,255,255,.16); border-bottom:1px solid rgba(255,255,255,.16); transform:translateX(-50%) rotate(45deg); }
.player--prototype.is-dragging .player-proto__seek-bubble { display:block; }
@media (hover:hover) and (pointer:fine) {
  .player--prototype.is-seek-hovering:not(.is-dragging):not(.is-marker-open) .player-proto__seek-bubble { display:block; }
}
.player--prototype.is-marker-open .player-proto__seek-bubble { display:none; }
.player-proto__marker-slot { position:absolute; z-index:5; top:50%; width:18px; height:18px; transform:translate(-50%,-50%); }
.player-proto__marker { position:relative; width:18px; height:18px; display:block; padding:0; border:0; background:transparent; cursor:pointer; }
.player-proto__marker > i { position:absolute; top:50%; left:50%; width:var(--player-node-size); height:var(--player-node-size); border:1px solid rgba(220,234,253,.78); border-radius:50%; background:#17212a; box-shadow:0 1px 4px rgba(0,0,0,.42); transform:translate(-50%,-50%); transition:background var(--player-motion-fast) ease,box-shadow var(--player-motion-fast) ease; }
.player-proto__marker:hover > i,.player-proto__marker.is-active > i { background:var(--accent-2); box-shadow:0 0 0 2px rgba(79,143,207,.24),0 2px 8px rgba(0,0,0,.48); }
.player-proto__marker-bubble { position:absolute; left:50%; bottom:20px; width:max-content; min-width:132px; max-width:210px; display:none; padding:8px 10px; border:1px solid rgba(255,255,255,.16); border-radius:var(--player-bubble-radius); color:#fff; background:rgba(10,12,15,.97); box-shadow:0 9px 22px rgba(0,0,0,.42); text-align:left; pointer-events:none; transform:translateX(-50%); }
.player-proto__marker-bubble strong,.player-proto__marker-bubble p,.player-proto__marker-bubble em { display:block; }
.player-proto__marker-bubble strong { overflow:hidden; color:#f3f5f7; font-size:11px; font-weight:600; text-overflow:ellipsis; white-space:nowrap; }
.player-proto__marker-bubble p { display:-webkit-box; overflow:hidden; margin:3px 0 0; color:#aeb4bd; font-size:10px; line-height:1.35; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.player-proto__marker-bubble em { margin-top:3px; color:var(--accent-2); font-size:10px; font-style:normal; font-variant-numeric:tabular-nums; }
.player-proto__marker-slot.is-active .player-proto__marker-bubble,.player-proto__marker-slot:hover .player-proto__marker-bubble,.player-proto__marker-slot:focus-within .player-proto__marker-bubble { display:block; }
.player-proto__marker-slot.is-first .player-proto__marker-bubble { left:0; transform:translateX(0); }
.player-proto__marker-slot.is-first .player-proto__marker-bubble::after { left:8px; transform:rotate(45deg); }
.player-proto__marker-slot.is-last .player-proto__marker-bubble { right:0; left:auto; transform:translateX(0); }
.player-proto__marker-slot.is-last .player-proto__marker-bubble::after { right:8px; left:auto; transform:rotate(45deg); }
.player--prototype.is-dragging .player-proto__marker-slot { pointer-events:none; }
.player--prototype.is-dragging .player-proto__marker-bubble { display:none; }
.player--prototype:is(.is-buffering,.is-error,.is-retrying,.is-disabled-demo) .player-proto__marker-slot { pointer-events:none; }
.player--prototype:is(.is-buffering,.is-error,.is-retrying,.is-disabled-demo) .player-proto__marker-bubble { display:none; }
.player-proto__layout--b > .player-proto__seek { margin-bottom:8px; }
.player-proto__layout--c .player-proto__row { margin-top:8px; }
.player-proto__layout--a .player-proto__row { gap:5px; }
.player-proto__layout--a .player-proto__toggle { order:0; }
.player-proto__layout--a .player-proto__compact-time { order:1; }
.player-proto__layout--a .player-proto__seek { order:2; flex:1 1 auto; min-width:100px; }
.player-proto__layout--a [data-player-action="back"] { order:3; }
.player-proto__layout--a [data-player-action="forward"] { order:4; }
.player-proto__layout--a .player-proto__volume { order:6; }
.player-proto__layout--a [data-player-action="fullscreen"] { order:8; }
.player-proto__volume { position:relative; flex:none; }
.player-proto__panel-head { min-height:32px; display:flex; align-items:center; justify-content:space-between; padding:0 2px 3px 8px; color:#f3f5f7; font-size:11px; font-weight:600; }
.player-proto__panel-head button { width:30px; min-width:30px; height:30px; display:grid; place-items:center; padding:0; color:#aeb5bc; background:transparent; }
.player-proto__panel-head .player-icon { width:16px; height:16px; }
.player-proto__volume-panel { position:absolute; z-index:12; left:50%; bottom:44px; width:40px; height:126px; display:none; align-items:center; justify-content:center; border:1px solid rgba(255,255,255,.14); border-radius:7px; background:rgba(12,14,17,.98); box-shadow:0 12px 30px rgba(0,0,0,.44); transform:translateX(-50%); }
.player-proto__volume:hover .player-proto__volume-panel,.player-proto__volume:focus-within .player-proto__volume-panel,.player-proto__volume.is-open .player-proto__volume-panel { display:flex; }
.player-proto__volume input { width:92px; accent-color:var(--accent); transform:rotate(-90deg); }
.player-proto__volume [data-player-volume-low-icon],.player-proto__volume [data-player-muted-icon] { display:none; }
.player--prototype.is-volume-low .player-proto__volume [data-player-volume-high-icon],.player--prototype.is-muted .player-proto__volume [data-player-volume-high-icon] { display:none; }
.player--prototype.is-volume-low .player-proto__volume [data-player-volume-low-icon],.player--prototype.is-muted .player-proto__volume [data-player-muted-icon] { display:inline-flex; }
.player-proto__status { position:absolute; z-index:10; top:50%; left:50%; display:none; flex-direction:column; align-items:center; gap:8px; color:#f1f3f5; text-align:center; transform:translate(-50%,-50%); }
.player-proto__status--loading i { width:30px; height:30px; border:3px solid rgba(255,255,255,.24); border-top-color:#fff; border-radius:50%; animation:player-proto-spin .8s linear infinite; }
.player-proto__status span { color:#aab1b8; font-size:12px; }
.player-proto__status strong { font-size:15px; }
.player-proto__status button { min-height:36px; display:inline-flex; align-items:center; gap:7px; padding:0 14px; border:1px solid rgba(79,143,207,.7); border-radius:6px; color:#fff; background:rgba(79,143,207,.78); cursor:pointer; }
.player-proto__status button .player-icon { width:18px; height:18px; }
.player-proto__status button:focus-visible { outline:2px solid var(--accent-2); outline-offset:2px; }
.player--prototype.is-buffering .player-proto__status--loading,.player--prototype.is-error .player-proto__status--error { display:flex; }
.player--prototype.is-error::after { position:absolute; z-index:6; inset:0; content:""; background:rgba(5,7,9,.6); }
.player-proto__skip-feedback { position:absolute; z-index:10; top:50%; left:50%; min-width:66px; min-height:30px; display:grid; place-items:center; padding:0 10px; border-radius:999px; color:#fff; background:rgba(7,9,12,.78); font-size:12px; pointer-events:none; transform:translate(-50%,-50%); }
.player-proto__skip-feedback:empty { display:none; }
.player--prototype.is-fullscreen-demo { position:fixed; z-index:9999; inset:0; width:100vw; height:100vh; aspect-ratio:auto; border:0; border-radius:0; }
.player--prototype.is-fullscreen-demo .player-proto__controls { padding:90px clamp(20px,4vw,68px) 28px; }
.player--prototype [data-player-exit-icon] { display:none; }
.player--prototype.is-fullscreen-demo [data-player-fullscreen-icon],.player--prototype.is-landscape-demo [data-player-fullscreen-icon] { display:none; }
.player--prototype.is-fullscreen-demo [data-player-exit-icon],.player--prototype.is-landscape-demo [data-player-exit-icon] { display:inline-flex; }
.player--prototype.is-hit-debug .player-proto__action,.player--prototype.is-hit-debug .player-proto__text-action,.player--prototype.is-hit-debug .player-proto__center-play { outline:1px dashed rgba(143,188,232,.9); background-color:rgba(79,143,207,.13); }
.player--prototype.is-hit-debug .player-proto__seek { outline:1px dashed rgba(143,188,232,.72); outline-offset:-1px; background:rgba(79,143,207,.08); }
.player--prototype.is-hit-debug .player-proto__marker { outline:1px dashed rgba(232,196,90,.8); border-radius:50%; background:rgba(232,196,90,.1); }
@keyframes player-proto-spin { to { transform:rotate(360deg); } }
@container (max-width: 760px) {
  .player-proto__controls { padding-inline:10px; padding-bottom:8px; }
  .player-proto__row { gap:4px; }
  .player-proto__action,.player-proto__toggle,.player-proto__text-action { width:var(--player-hit-web); min-width:var(--player-hit-web); height:var(--player-hit-web); }
  .player-proto__time,.player-proto__compact-time { font-size:10.5px; }
  .player-proto__layout--a .player-proto__row { gap:2px; }
  .player-proto__layout--a .player-proto__action,.player-proto__layout--a .player-proto__toggle,.player-proto__layout--a .player-proto__text-action { width:var(--player-hit-web); min-width:var(--player-hit-web); }
  .player-proto__layout--a .player-proto__compact-time { font-size:9.5px; }
  .player-proto__layout--a .player-proto__seek { min-width:52px; }
}
@container (max-width: 610px) {
  .player-proto__layout--a .player-proto__compact-time { display:none; }
  .player-proto__layout--a .player-proto__seek { min-width:44px; }
}
@media (max-width: 900px) {
  .player-review-toolbar { align-items:flex-start; flex-direction:column; }
  .player-review-toolbar__actions { width:100%; overflow-x:auto; padding-bottom:2px; }
  .player-review-toolbar__actions button { flex:none; }
}
@media (prefers-reduced-motion: reduce) {
  .player--prototype * { scroll-behavior:auto !important; animation-duration:.01ms !important; transition-duration:.01ms !important; }
}

/* ============================================================
   AV 解说 · Web 沉浸式结构
   主阅读版 03/04：容器全幅、清晰主体独立、互动与底栏服从容器。
   ============================================================ */
body.is-short-detail.is-immersive-web {
  display:flex;
  flex-direction:column;
  height:100svh;
  min-height:100svh;
}
body.is-short-detail.is-immersive-web #nav { flex:none; }
body.is-short-detail.is-immersive-web .short-detail__crumb {
  min-height:40px;
  display:flex;
  align-items:center;
  padding-block:8px;
  border-bottom:1px solid rgba(255,255,255,.06);
  background:#0d0f12;
}
body.is-short-detail.is-immersive-web .short-detail-page { flex:1; height:auto; min-height:0; }
body.is-short-detail.is-immersive-web .short-detail-page #shortRoot,
body.is-short-detail.is-immersive-web .short-watch,
body.is-short-detail.is-immersive-web .short-stage { width:100%; height:100%; min-width:0; min-height:0; }
body.is-short-detail.is-immersive-web .short-detail-page #shortRoot { flex:1; height:auto; }
body.is-short-detail.is-immersive-web .short-watch { max-width:none; display:block; padding:0; }
body.is-short-detail.is-immersive-web .short-stage { display:block; }
body.is-short-detail.is-immersive-web .short-watch:fullscreen,
body.is-short-detail.is-immersive-web .short-watch:-webkit-full-screen {
  width:100vw;
  height:100vh;
  max-width:none;
  padding:0;
  background:#07090c;
}
body.is-short-detail.is-immersive-web .short-watch:fullscreen .short-stage,
body.is-short-detail.is-immersive-web .short-watch:-webkit-full-screen .short-stage { width:100%; height:100%; }
body.is-short-detail.is-immersive-web .short-phone {
  width:100%;
  height:100%;
  min-height:0;
  aspect-ratio:auto;
  border:0;
  border-radius:0;
  background:#07090c;
  box-shadow:none;
}
body.is-short-detail.is-immersive-web .short-phone::before { display:none; }
body.is-short-detail.is-immersive-web .short-phone::after {
  z-index:2;
  display:block;
  background:linear-gradient(to bottom,rgba(4,6,8,.12),transparent 48%,rgba(4,6,8,.76));
}
.is-immersive-web .short-immersive-bg {
  position:absolute;
  z-index:0;
  inset:0;
  overflow:hidden;
  background:#000;
  pointer-events:none;
  user-select:none;
}
.is-immersive-web .short-immersive-bg__image,
.is-immersive-web .short-immersive-bg__shade { position:absolute; inset:0; pointer-events:none; }
.is-immersive-web .short-immersive-bg__image {
  inset:-44px;
  background-position:center;
  background-size:cover;
  background-repeat:no-repeat;
  filter:blur(var(--av-commentary-bg-blur,40px)) brightness(var(--av-commentary-bg-brightness,.8)) saturate(var(--av-commentary-bg-saturation,.9));
  opacity:0;
  transform:scale(var(--av-commentary-bg-scale,1.12));
  transition:opacity var(--av-commentary-bg-fade,180ms) ease;
}
.is-immersive-web .short-immersive-bg.is-ready .short-immersive-bg__image { opacity:1; }
.is-immersive-web .short-immersive-bg__shade { background:rgba(0,0,0,var(--av-commentary-bg-overlay,.5)); }
.is-immersive-web .short-video-subject {
  position:absolute;
  z-index:1;
  top:calc((100% - 64px) / 2);
  left:50%;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.1);
  background:
    radial-gradient(circle at 52% 30%,hsla(calc(203 + var(--sv,0) * 9),48%,54%,.48),transparent 29%),
    linear-gradient(150deg,hsl(calc(210 + var(--sv,0) * 7) 24% 23%),#11161b 64%,#080a0d);
  background-color:#05070a;
  background-position:center;
  background-size:contain;
  background-repeat:no-repeat;
  box-shadow:0 22px 64px rgba(0,0,0,.42);
  transform:translate(-50%,-50%);
}
.is-immersive-web .short-video-subject::after {
  position:absolute;
  inset:0;
  content:"";
  background:repeating-linear-gradient(135deg,rgba(255,255,255,.045) 0 11px,transparent 11px 22px);
  opacity:.55;
}
.is-immersive-web .short-video-subject > span {
  position:absolute;
  z-index:1;
  inset:0;
  display:grid;
  place-items:center;
  color:rgba(255,255,255,.34);
  font-size:13px;
  font-weight:700;
}
.is-immersive-web .short-video-subject--wide {
  height:calc(100% - 96px);
  max-width:calc(100% - 160px);
  aspect-ratio:16/9;
}
@media (max-width:900px) {
  .is-immersive-web .short-video-subject--wide {
    width:calc(100% - 48px);
    height:auto;
    max-height:calc(100% - 96px);
  }
}
.is-immersive-web .short-video-subject--portrait,
.is-immersive-web .short-video-subject--contained {
  height:calc(100% - 96px);
  max-width:calc(100% - 180px);
  aspect-ratio:9/16;
}
.is-immersive-web .short-play {
  top:calc((100% - 64px) / 2);
  width:var(--player-center-play-web);
  height:var(--player-center-play-web);
}
.is-immersive-web .short-play .player-icon { width:var(--player-center-icon-web); height:var(--player-center-icon-web); }
.is-immersive-web .short-mute-prominent,
.is-immersive-web .short-fullscreen-close,
.is-immersive-web .short-slice-guide button {
  display:grid;
  place-items:center;
  padding:0;
  border:1px solid rgba(255,255,255,.14);
  border-radius:50%;
  color:#fff;
  background:rgba(9,12,16,.76);
  box-shadow:0 8px 24px rgba(0,0,0,.28);
  backdrop-filter:blur(12px);
  transition:background .15s ease,border-color .15s ease,transform .15s ease,opacity .15s ease;
}
.is-immersive-web .short-mute-prominent {
  position:absolute;
  z-index:10;
  top:16px;
  right:20px;
  width:44px;
  height:44px;
  background:rgba(9,12,16,.88);
}
.is-immersive-web .short-mute-prominent .player-icon,
.is-immersive-web .short-fullscreen-close .player-icon { width:22px; height:22px; }
.is-immersive-web .short-fullscreen-close {
  position:absolute;
  z-index:10;
  top:16px;
  left:20px;
  width:44px;
  height:44px;
  display:none;
}
body.is-immersive-web.is-immersive-fullscreen-demo .short-fullscreen-close,
body.is-immersive-web.is-immersive-native-fullscreen .short-fullscreen-close,
.is-immersive-web .short-watch:fullscreen .short-fullscreen-close { display:grid; }
.is-immersive-web .short-slice-guide {
  position:absolute;
  z-index:9;
  top:50%;
  right:86px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
  transform:translateY(-50%);
}
.is-immersive-web .short-slice-guide > span {
  padding:4px 7px;
  border-radius:999px;
  color:rgba(255,255,255,.72);
  background:rgba(9,12,16,.68);
  font-size:10px;
  line-height:1;
  white-space:nowrap;
}
.is-immersive-web .short-slice-guide button { width:42px; height:42px; }
.is-immersive-web .short-slice-guide button:not(:disabled):hover,
.is-immersive-web .short-mute-prominent:hover,
.is-immersive-web .short-fullscreen-close:hover { border-color:rgba(143,188,232,.68); background:rgba(28,43,58,.92); }
.is-immersive-web .short-slice-guide button:not(:disabled):active,
.is-immersive-web .short-mute-prominent:active,
.is-immersive-web .short-fullscreen-close:active { transform:scale(.94); }
.is-immersive-web .short-slice-guide button:disabled { opacity:.28; cursor:not-allowed; }
.is-immersive-web .short-slice-icon { width:22px; height:22px; }
.is-immersive-web .short-slice-guide button:focus-visible,
.is-immersive-web .short-mute-prominent:focus-visible,
.is-immersive-web .short-fullscreen-close:focus-visible { outline:2px solid var(--accent-2); outline-offset:2px; }
.is-immersive-web .short-caption {
  right:auto;
  bottom:86px;
  left:24px;
  z-index:4;
  width:min(48%,560px);
  max-width:calc(100% - 174px);
  text-shadow:0 2px 12px rgba(0,0,0,.78);
}
.is-immersive-web .short-caption h1 { font-size:clamp(18px,1.45vw,24px); }
.is-immersive-web .short-caption__intro { max-width:520px; }
.is-immersive-web .short-caption__tags { margin-top:8px; }
.is-immersive-web .short-phone.is-controls-hidden .short-caption { opacity:1; visibility:visible; pointer-events:auto; }
.is-immersive-web .short-actions {
  position:absolute;
  z-index:7;
  right:24px;
  bottom:86px;
  display:flex;
  flex-direction:column;
  width:50px;
  gap:10px;
}
.is-immersive-web .short-action { min-width:0; gap:4px; color:#fff; text-shadow:0 1px 5px rgba(0,0,0,.8); }
.is-immersive-web .short-action span { background:rgba(9,12,16,.68); transition:background-color 180ms ease,border-color 180ms ease,color 180ms ease,transform 180ms ease; }
.is-immersive-web #shortLike { width:45px; height:68px; }
.is-immersive-web #shortLike span { width:45px; height:45px; }
.is-immersive-web #shortLike svg { width:28px; height:28px; }
.is-immersive-web #shortComment { width:48px; height:74px; }
.is-immersive-web #shortComment span { width:48px; height:48px; }
.is-immersive-web #shortComment svg { width:30px; height:30px; }
.is-immersive-web #shortFav,
.is-immersive-web #shortShare { width:50px; height:74px; }
.is-immersive-web #shortFav span,
.is-immersive-web #shortShare span { width:50px; height:50px; }
.is-immersive-web #shortFav svg,
.is-immersive-web #shortShare svg { width:32px; height:32px; }
.is-immersive-web .short-action svg path,
.is-immersive-web .short-action svg g { transition:fill 180ms ease,stroke 180ms ease; }
.is-immersive-web .short-action .action-icon--like path,
.is-immersive-web .short-action .action-icon--comment path,
.is-immersive-web .short-action .action-icon--favorite path { fill:transparent; }
.is-immersive-web .short-action b { color:#fff; font-size:12px; line-height:16px; }
.is-immersive-web .short-action.is-on .action-icon--like path,
.is-immersive-web .short-action.is-on .action-icon--comment path,
.is-immersive-web .short-action.is-on .action-icon--favorite path { fill:currentColor; stroke:currentColor; }
.is-immersive-web .short-action.is-on span { animation:immersive-action-confirm 180ms ease-out; }
.is-immersive-web .short-action:active span { transform:scale(.94); }
.is-immersive-web #shortShare span { transition-duration:120ms; }
.is-immersive-web #shortShare:active span { transform:none; }
.is-immersive-web #shortShare.is-pressing span { transform:scale(.94); }
@keyframes immersive-action-confirm { 0% { transform:scale(.9); } 70% { transform:scale(1.05); } 100% { transform:scale(1); } }
.is-immersive-web .short-player-controls {
  z-index:6;
  padding:0;
  background:linear-gradient(to top,rgba(5,7,9,.98) 0,rgba(5,7,9,.76) 72%,transparent 100%);
}
.is-immersive-web .short-progress { height:20px; margin-inline:12px; }
.is-immersive-web .short-progress::before,
.is-immersive-web .short-progress i { height:var(--player-progress-web); }
.is-immersive-web .short-player-row {
  min-height:44px;
  height:44px;
  gap:4px;
  padding-inline:12px;
  background:rgba(7,9,12,.96);
}
.is-immersive-web .short-player-row > i { flex:1; }
.is-immersive-web .short-player-time { display:inline-flex; align-items:center; gap:3px; margin-left:8px; color:rgba(255,255,255,.74); font-size:12px; font-variant-numeric:tabular-nums; }
.is-immersive-web .short-player-time em { color:rgba(255,255,255,.34); font-style:normal; }
.is-immersive-web .short-player-btn { width:var(--player-hit-web); min-width:var(--player-hit-web); height:var(--player-hit-web); }
.is-immersive-web .short-player-btn .player-icon { width:var(--player-icon-size); height:var(--player-icon-size); }
.is-immersive-web .short-player-btn:focus-visible,
.is-immersive-web .short-action:focus-visible { outline:2px solid var(--accent-2); outline-offset:2px; }
.is-immersive-web .short-progress-line { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:10px; padding:0 12px; color:rgba(255,255,255,.8); font-size:12px; font-variant-numeric:tabular-nums; }
.is-immersive-web .short-progress-line .short-progress { margin:0; }
.is-immersive-web .short-phone.is-playing .short-play,
.is-immersive-web .short-phone.is-dragging .short-play,
.is-immersive-web .short-phone.is-buffering .short-play,
.is-immersive-web .short-phone.is-error .short-play { opacity:0; pointer-events:none; }
.short-player-status { position:absolute; z-index:11; top:50%; left:50%; display:none; flex-direction:column; align-items:center; gap:8px; color:#fff; text-align:center; transform:translate(-50%,-50%); }
.short-player-status--buffering i { width:32px; height:32px; border:3px solid rgba(255,255,255,.24); border-top-color:#fff; border-radius:50%; animation:player-proto-spin .8s linear infinite; }
.short-player-status span { color:#b8c0c8; font-size:12px; }
.short-player-status strong { font-size:16px; }
.short-player-status button { min-height:40px; display:inline-flex; align-items:center; gap:7px; padding:0 14px; border:1px solid rgba(143,188,232,.62); border-radius:7px; color:#fff; background:rgba(79,143,207,.78); }
.short-player-status button .player-icon { width:19px; height:19px; }
.short-player-status button em { font-style:normal; }
.short-phone.is-buffering .short-player-status--buffering,.short-phone.is-error .short-player-status--error { display:flex; }
.short-edge-feedback { position:absolute; z-index:12; top:18px; left:50%; min-height:30px; display:grid; place-items:center; padding:0 12px; border-radius:999px; color:#fff; background:rgba(8,11,15,.84); font-size:11px; opacity:0; pointer-events:none; transform:translate(-50%,-8px); transition:opacity .16s ease,transform .16s ease; }
.short-edge-feedback.is-show { opacity:1; transform:translate(-50%,0); }
body.is-immersive-web.is-immersive-fullscreen-demo .short-phone.is-controls-hidden .short-actions,
body.is-immersive-web.is-immersive-native-fullscreen .short-phone.is-controls-hidden .short-actions { opacity:1; visibility:visible; pointer-events:auto; }

/* Web 评论为右侧占位重排，不覆盖沉浸容器。 */
body.is-short-detail.is-immersive-web .short-watch {
  display:grid;
  grid-template-columns:minmax(0,1fr) 0;
  transition:grid-template-columns 220ms ease;
}
body.is-short-detail.is-immersive-web .short-watch > .short-stage { grid-column:1; min-width:0; }
body.is-short-detail.is-immersive-web .short-watch.is-comment-open {
  grid-template-columns:minmax(0,1fr) clamp(320px,30vw,420px);
  height:100%;
  min-height:0;
  align-items:stretch;
  overflow:hidden;
}
.is-immersive-web .short-watch.is-comment-open .short-stage { grid-column:1; min-width:0; min-height:0; overflow:hidden; }
.is-immersive-web .short-comment-drawer {
  position:relative;
  inset:auto;
  z-index:8;
  grid-column:2;
  width:auto;
  height:100%;
  min-height:0;
  overflow:hidden;
  transform:none;
  box-shadow:-12px 0 30px rgba(0,0,0,.28);
}
.is-immersive-web .short-comment-drawer.is-open { transform:none; }
.is-immersive-web .short-comment-mask { display:none; }
.is-immersive-web .short-watch.is-comment-open .short-actions { right:18px; }
.is-immersive-web .short-watch.is-comment-open .short-slice-guide button { opacity:.28; cursor:not-allowed; }
.is-immersive-web .short-watch.is-comment-open .short-caption { right:auto; width:min(48%,440px); max-width:calc(100% - 124px); }
@media (max-width:767px) {
  body.is-short-detail.is-immersive-web .short-watch.is-comment-open { position:relative; grid-template-columns:minmax(0,1fr); }
  .is-immersive-web .short-watch.is-comment-open .short-stage { grid-column:1; width:100%; min-width:448px; }
  .is-immersive-web .short-watch.is-comment-open .short-comment-drawer { position:absolute; z-index:24; top:0; right:0; bottom:0; left:auto; grid-column:1; grid-row:1; width:min(100%,420px); height:100%; min-width:0; border-top:0; border-left:1px solid rgba(255,255,255,.08); border-radius:0; background:#11151a; transform:none; }
}

/* 静态全屏评审态与真实 Fullscreen 共用同一容器结构。 */
body.is-immersive-web.is-immersive-fullscreen-demo #nav,
body.is-immersive-web.is-immersive-fullscreen-demo .short-detail__crumb,
body.is-immersive-web.is-immersive-fullscreen-demo #vnav-trigger { display:none !important; }
body.is-immersive-web.is-immersive-fullscreen-demo .short-detail-page { height:auto; }
body.is-immersive-web.is-immersive-fullscreen-demo .short-phone,
.is-immersive-web .short-phone:fullscreen { width:100vw; height:100vh; }
#shortRoot:fullscreen,
#shortRoot:-webkit-full-screen { width:100vw; height:100vh; background:#07090c; }
#shortRoot:fullscreen .short-watch,
#shortRoot:fullscreen .short-stage,
#shortRoot:fullscreen .short-phone,
#shortRoot:-webkit-full-screen .short-watch,
#shortRoot:-webkit-full-screen .short-stage,
#shortRoot:-webkit-full-screen .short-phone { width:100%; height:100%; }
@media (prefers-reduced-motion:reduce) {
  body.is-short-detail.is-immersive-web .short-watch,
  .short-caption__intro,
  .short-watch.is-exit-up .short-stage,
  .short-watch.is-exit-down .short-stage,
  .short-watch.is-enter-from-down .short-stage,
  .short-watch.is-enter-from-up .short-stage { animation-duration:.01ms !important; transition-duration:.01ms !important; }
  .is-immersive-web .short-immersive-bg__image { transition-duration:.01ms; }
}
@media (max-width:860px) {
  body.is-short-detail.is-immersive-web .short-detail-page,
  body.is-immersive-web.is-immersive-fullscreen-demo .short-detail-page { height:auto; }
}
