/* ============================================================
   DemanPlay · bw-street.css v1 — 陪玩广场「夜市橱窗街」
   结构:顶部搜索+chips → 今日封面海报 → 主题橱窗带(横滑)→ 全部陪玩拼贴
   放在 profile-card.css 之后加载;颜色自带,仅依赖全局字体变量。
   名片本体一律 dp-card(play-card.js 渲染),本文件只做"相框"与街景。
   ============================================================ */

@keyframes bwUp{ from{ opacity:0; transform:translateY(14px); } }
@keyframes bwSheen{ 0%,55%{ transform:skewX(-18deg) translateX(-220%); } 88%,100%{ transform:skewX(-18deg) translateX(460%); } }
@keyframes bwDot{ 0%,100%{ box-shadow:0 0 0 0 rgba(99,230,184,.55); } 60%{ box-shadow:0 0 0 6px rgba(99,230,184,0); } }
@keyframes bwSign{ 0%,100%{ box-shadow:0 0 10px rgba(99,230,184,.25), inset 0 0 10px rgba(99,230,184,.08); } 50%{ box-shadow:0 0 22px rgba(99,230,184,.5), inset 0 0 16px rgba(99,230,184,.16); } }
@keyframes bwBreath{
  0%,100%{ box-shadow:0 0 0 1px rgba(99,230,184,.35), 0 0 16px -4px rgba(99,230,184,.35), 0 22px 50px -24px rgba(0,0,0,.8); }
  50%{ box-shadow:0 0 0 1.5px rgba(99,230,184,.65), 0 0 30px -4px rgba(99,230,184,.6), 0 22px 50px -24px rgba(0,0,0,.8); }
}
@keyframes bwLamp{
  0%,100%{ box-shadow:0 0 0 1px color-mix(in srgb,var(--pc-accent,#a678ff) 30%,transparent), 0 0 18px -6px color-mix(in srgb,var(--pc-accent,#a678ff) 45%,transparent), 0 22px 50px -24px rgba(0,0,0,.8); }
  50%{ box-shadow:0 0 0 1.5px color-mix(in srgb,var(--pc-accent,#a678ff) 60%,transparent), 0 0 34px -6px color-mix(in srgb,var(--pc-accent,#a678ff) 75%,transparent), 0 22px 50px -24px rgba(0,0,0,.8); }
}
@keyframes bwEq{ from{ transform:scaleY(.35); } to{ transform:scaleY(1); } }
@keyframes bwFade{ from{ opacity:0; } }
@keyframes bwFlicker{ 0%,89%,92.5%,100%{ opacity:1; } 90%,91.5%{ opacity:.5; } }

.bw-street{
  --bw-v:#9d6bff; --bw-v2:#c4a8ff; --bw-mint:#63e6b8; --bw-cyan:#58d5f2;
  --bw-gold:#f6d77b; --bw-pink:#ff6bd3;
  --bw-text:#ece9f4; --bw-dim:#a9a3c2; --bw-mute:#736b96;
  --bw-line:rgba(255,255,255,.09);
  font-family:var(--cn,"Noto Sans SC",system-ui,sans-serif);
  color:var(--bw-text);
}
.bw-street [hidden]{ display:none !important; }

/* ---------- 信任状(页头,默认藏;BW_CFG.trustLine 打开) ---------- */
.bw-trust[hidden]{ display:none !important; }
.bw-trust{
  display:inline-flex; align-items:center; gap:7px; margin-top:10px;
  padding:6px 13px; border-radius:999px;
  border:1px solid rgba(246,215,123,.4); background:rgba(246,215,123,.06);
  color:var(--bw-gold,#f6d77b); font-weight:700; font-size:12px;
  font-family:var(--cn,"Noto Sans SC",sans-serif);
}

/* ---------- 顶部:大搜索 + chips ---------- */
.bw-topbar{
  position:sticky; top:10px; z-index:40;
  display:flex; flex-direction:column; gap:11px;
  padding:13px 14px; margin:2px 0 26px; border-radius:20px;
  background:rgba(13,12,20,.86); border:1px solid var(--bw-line);
  -webkit-backdrop-filter:blur(16px); backdrop-filter:blur(16px);
}
.bw-search{
  display:flex; align-items:center; gap:11px; height:52px; padding:0 18px;
  border-radius:15px; border:1.5px solid var(--bw-line);
  background:rgba(255,255,255,.03); transition:border-color .18s, box-shadow .18s;
}
.bw-search svg{ width:18px; height:18px; color:var(--bw-mute); flex:none; }
.bw-search input{
  flex:1; min-width:0; background:none; border:0; outline:0;
  color:var(--bw-text); font-size:15px; font-family:inherit;
}
.bw-search input::placeholder{ color:var(--bw-mute); }
/* Chrome autofill 会给输入框强刷白底(暗色框里字看不清)。主修是 HTML 上 autocomplete=off
   不让它出现;这里留一层兜底:inset shadow 盖回暗色 + 慢速 transition 拖住背景切换。 */
.bw-search input:-webkit-autofill,
.bw-search input:-webkit-autofill:hover,
.bw-search input:-webkit-autofill:focus{
  -webkit-box-shadow:0 0 0 1000px #16131f inset !important;
  box-shadow:0 0 0 1000px #16131f inset !important;
  -webkit-text-fill-color:#eceaf4 !important;
  caret-color:#eceaf4;
  transition:background-color 99999s ease-out;
}
.bw-search:focus-within{
  border-color:rgba(157,107,255,.65);
  box-shadow:0 0 0 3px rgba(157,107,255,.14), 0 0 28px -6px rgba(157,107,255,.5);
}
.bw-qx{
  flex:none; width:24px; height:24px; border-radius:50%; border:0; cursor:pointer;
  background:rgba(255,255,255,.08); color:var(--bw-dim); font-size:13px; line-height:1;
  display:grid; place-items:center; padding:0;
}
.bw-qx:hover{ background:rgba(255,255,255,.16); color:#fff; }

.bw-chips{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.bw-chip{
  height:36px; padding:0 15px; border-radius:999px;
  border:1.5px solid var(--bw-line); background:rgba(255,255,255,.03);
  color:var(--bw-dim); font-weight:600; font-size:13px; font-family:inherit;
  cursor:pointer; display:inline-flex; align-items:center; gap:7px;
  white-space:nowrap; transition:border-color .15s, color .15s, background .15s;
}
.bw-chip:hover{ border-color:rgba(157,107,255,.5); color:var(--bw-text); }
.bw-chip:active{ transform:scale(.95); }
.bw-chip.on{ border-color:var(--bw-v); color:#fff; background:rgba(157,107,255,.16); }
.bw-chip--open .d{ width:8px; height:8px; border-radius:50%; background:#3f5a4e; flex:none; transition:background .15s; }
.bw-chip--open.on{ border-color:rgba(99,230,184,.6); background:rgba(99,230,184,.1); color:#8df0c9; }
.bw-chip--open.on .d{ background:var(--bw-mint); animation:bwDot 1.6s ease-out infinite; }
/* 排序 = 自定义下拉(替换原生 select:弹层白底系统样式压不住) */
.bw-chip--sort{ cursor:pointer; color:var(--bw-mute); position:relative; user-select:none; }
.bw-chip--sort b{ color:var(--bw-dim); font-weight:600; }
.bw-sortcaret{ font-size:10px; color:var(--bw-mute); transition:transform .15s; }
.bw-chip--sort.on{ border-color:var(--bw-v); }
.bw-chip--sort.on b{ color:#fff; }
.bw-sortmenu{
  position:absolute; top:calc(100% + 8px); right:0; z-index:60; min-width:136px;
  display:flex; flex-direction:column; gap:2px; padding:6px; border-radius:14px;
  background:rgba(19,16,28,.97); border:1.5px solid rgba(255,255,255,.1);
  box-shadow:0 18px 44px -18px rgba(0,0,0,.85); backdrop-filter:blur(12px);
}
.bw-sortmenu[hidden]{ display:none!important; }
.bw-sortmenu button{
  background:none; border:0; text-align:left; cursor:pointer;
  color:var(--bw-dim); font:600 13px var(--cn,"Noto Sans SC",sans-serif);
  padding:8px 12px; border-radius:9px; transition:.12s;
}
.bw-sortmenu button:hover{ background:rgba(157,107,255,.12); color:#fff; }
.bw-sortmenu button.on{ background:rgba(157,107,255,.16); color:#c4a8ff; }
.bw-chip--clear{ border-style:dashed; color:var(--bw-mute); }
.bw-chip--clear:hover{ border-color:rgba(255,138,122,.6); color:#ff9d90; }

/* ---------- 今日封面 ---------- */
.bw-cover{ display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }
.bw-cover--solo{ grid-template-columns:1fr; }
.bw-poster{
  position:relative; min-height:330px; border-radius:22px; overflow:hidden;
  border:1.5px solid rgba(255,255,255,.1); isolation:isolate; cursor:pointer;
  display:flex; align-items:flex-end;
  background:var(--bwp-bg,linear-gradient(168deg,#181226,#0e0a18));
  --pc-accent:var(--bwp-a,#a678ff);
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.bw-poster:hover{
  transform:translateY(-4px);
  border-color:color-mix(in srgb,var(--bwp-a,#a678ff) 55%,transparent);
  box-shadow:0 0 36px -8px color-mix(in srgb,var(--bwp-a,#a678ff) 45%,transparent), 0 30px 60px -30px rgba(0,0,0,.9);
}
.bw-pbg{
  position:absolute; inset:0; z-index:0; background-size:cover; background-position:center;
  filter:blur(18px) brightness(.58) saturate(1.15); transform:scale(1.25);
}
.bw-pbg-m{
  position:absolute; inset:0; z-index:1;
  background-size:contain; background-position:center; background-repeat:no-repeat;
  transition:transform .6s ease;
}
.bw-poster:hover .bw-pbg-m{ transform:scale(1.035); }
.bw-pdeco{ position:absolute; inset:0; z-index:0; background:var(--bwp-deco); }
.bw-pshade{
  position:absolute; inset:0; z-index:2;
  background:linear-gradient(180deg,rgba(10,8,18,.05) 0%,transparent 34%,rgba(9,7,16,.9) 100%);
}
.bw-psheen{
  position:absolute; top:0; left:0; width:30%; height:100%; z-index:2; pointer-events:none;
  background:linear-gradient(105deg,transparent,rgba(255,255,255,.07),transparent);
  animation:bwSheen 6s ease-in-out infinite;
}
.bw-ptag{
  position:absolute; top:14px; left:14px; z-index:3;
  font-family:var(--mono,ui-monospace,monospace); font-weight:700; font-size:10.5px; letter-spacing:.14em;
  color:#241a04; background:linear-gradient(135deg,#f7e0a0,#d9ad4e);
  padding:6px 11px; border-radius:8px; box-shadow:0 4px 14px -4px rgba(246,215,123,.55);
}
.bw-pbody{ position:relative; z-index:3; width:100%; padding:22px 24px; display:flex; flex-direction:column; gap:12px; }
.bw-phead{ display:flex; align-items:center; gap:13px; }
.bw-pav{
  width:64px; height:64px; border-radius:50%; flex:none; overflow:hidden;
  display:grid; place-items:center; background-size:cover; background-position:center;
  border:2.5px solid rgba(12,10,20,.85);
  box-shadow:0 0 0 1.5px color-mix(in srgb,var(--bwp-a,#a678ff) 60%,transparent), 0 6px 18px -6px rgba(0,0,0,.7);
  font-family:var(--display,"Saira","Noto Sans SC",sans-serif); font-style:italic; font-weight:800; font-size:24px; color:#fff;
}
.bw-pwho{ min-width:0; }
.bw-pname{
  font-weight:900; font-size:23px; line-height:1.25; letter-spacing:-.01em;
  text-shadow:0 2px 14px rgba(0,0,0,.6);
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.bw-pmeta{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-top:6px; }
.bw-pbadge{
  font-family:var(--hud,"Chakra Petch","Noto Sans SC",sans-serif); font-weight:700; font-size:9.5px; letter-spacing:.05em;
  padding:3.5px 8px; border-radius:6px;
  background:color-mix(in srgb,var(--bwp-a,#a678ff) 22%,rgba(10,8,16,.5));
  color:#fff; border:1px solid color-mix(in srgb,var(--bwp-a,#a678ff) 45%,transparent);
}
.bw-pbadge.on{ display:inline-flex; align-items:center; gap:5px; background:rgba(8,20,15,.6); border-color:rgba(99,230,184,.55); color:#8df0c9; }
.bw-pbadge.on i{ width:7px; height:7px; border-radius:50%; background:var(--bw-mint); animation:bwDot 1.6s ease-out infinite; }
.bw-pbadge.zz{ background:rgba(10,8,16,.5); border-color:rgba(255,255,255,.2); color:var(--bw-dim); }
.bw-pstats{ font-family:var(--mono,ui-monospace,monospace); font-size:11px; color:rgba(236,233,244,.68); text-shadow:0 1px 6px rgba(0,0,0,.6); }
.bw-pslogan{
  margin:0; font-size:17px; line-height:1.55; font-weight:500; color:#e6dff5;
  text-shadow:0 2px 10px rgba(0,0,0,.55); text-wrap:pretty;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.bw-pslogan::before{ content:"「"; color:color-mix(in srgb,var(--bwp-a,#a678ff) 80%,#fff); }
.bw-pslogan::after{ content:"」"; color:color-mix(in srgb,var(--bwp-a,#a678ff) 80%,#fff); }
.bw-pvoice{ max-width:340px; background:rgba(10,8,16,.55); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); }
.bw-pcta{
  font-family:var(--mono,ui-monospace,monospace); font-weight:600; font-size:11.5px; letter-spacing:.06em;
  color:rgba(236,233,244,.5); transition:color .2s;
}
.bw-poster:hover .bw-pcta{ color:var(--bw-v2); }

/* 封面海报 · 名片模板同款氛围底(用户自选款式,展示要尊重) */
.bw-poster.t-neon{ --bwp-a:#a678ff; --bwp-bg:linear-gradient(168deg,#181226,#0e0a18);
  --bwp-deco:radial-gradient(120% 95% at 85% -30%,rgba(166,120,255,.5),transparent 60%),radial-gradient(90% 80% at 0% -20%,rgba(94,234,255,.24),transparent 55%); }
.bw-poster.t-sakura{ --bwp-a:#ff8fc1; --bwp-bg:linear-gradient(165deg,#26101b,#150a11);
  --bwp-deco:radial-gradient(rgba(255,255,255,.22) 1px,transparent 1.5px) 0 0/12px 12px,radial-gradient(120% 100% at 85% -30%,rgba(255,143,193,.5),transparent 62%),radial-gradient(80% 70% at 5% -10%,rgba(255,184,138,.28),transparent 55%); }
.bw-poster.t-gilded{ --bwp-a:#e8c87e; --bwp-bg:linear-gradient(172deg,#1d170b,#100c06 60%,#151007);
  --bwp-deco:radial-gradient(130% 100% at 80% -35%,rgba(244,217,146,.38),transparent 60%),linear-gradient(120deg,transparent 30%,rgba(244,217,146,.12) 45%,transparent 60%); }
.bw-poster.t-minimal{ --bwp-a:#a78bfa; --bwp-bg:linear-gradient(#17151e,#141219);
  --bwp-deco:radial-gradient(100% 80% at 80% -20%,rgba(167,139,250,.18),transparent 60%); }
.bw-poster.t-mecha{ --bwp-a:#5eeaff; --bwp-bg:linear-gradient(180deg,#131820,#0b0e14);
  --bwp-deco:repeating-linear-gradient(90deg,rgba(94,234,255,.1) 0 1px,transparent 1px 13px),repeating-linear-gradient(0deg,rgba(94,234,255,.07) 0 1px,transparent 1px 13px),linear-gradient(120deg,rgba(94,234,255,.26),transparent 65%); }
.bw-poster.t-cyber{ --bwp-a:#8fa2ff; --bwp-bg:linear-gradient(160deg,#161231,#0d1024 55%,#1a0f2b);
  --bwp-deco:radial-gradient(100% 90% at 20% -20%,rgba(94,234,255,.36),transparent 55%),radial-gradient(110% 90% at 90% -25%,rgba(255,122,217,.4),transparent 60%),radial-gradient(80% 100% at 50% 120%,rgba(157,107,255,.36),transparent 60%); }

/* ---------- 橱窗带(横滑) ---------- */
.bw-rail{ margin-top:36px; }
.bw-rhead{ display:flex; align-items:center; gap:12px; }
.bw-sign{
  display:inline-flex; align-items:center; gap:8px;
  font-weight:800; font-size:14px; padding:9px 16px; border-radius:12px;
  border:1.5px solid var(--bw-line); color:var(--bw-text); position:relative;
}
.bw-rnote{ font-family:var(--mono,ui-monospace,monospace); font-size:10.5px; color:var(--bw-mute); }
.bw-rsp{ flex:1; }
.bw-arr{
  width:34px; height:34px; border-radius:50%; flex:none;
  border:1.5px solid var(--bw-line); background:rgba(255,255,255,.03);
  color:var(--bw-dim); font-size:18px; line-height:1; cursor:pointer; padding:0;
  transition:border-color .15s, color .15s, background .15s;
}
.bw-arr:hover{ border-color:var(--bw-v); color:#fff; background:rgba(157,107,255,.14); }
.bw-scroller{
  display:flex; align-items:flex-start; gap:16px; overflow-x:auto; scroll-snap-type:x mandatory;
  padding:18px 6px 24px; scrollbar-width:none; -webkit-overflow-scrolling:touch;
  -webkit-mask:linear-gradient(90deg,transparent,#000 34px,#000 calc(100% - 34px),transparent);
  mask:linear-gradient(90deg,transparent,#000 34px,#000 calc(100% - 34px),transparent);
}
.bw-scroller::-webkit-scrollbar{ display:none; }
/* min-width:0(2026-08-01 用户:卡带名片宽度不一)——flex 项默认 min-width:auto,
   超长不换行的昵称把最小内容宽度顶过 flex-basis,壳被各自撑开;去掉这个下限后
   壳恒等于 basis,里面的名字走 dpc-nm 的 ellipsis 截断。所有卡带断点通用。 */
.bw-shell{ flex:0 0 300px; min-width:0; overflow:hidden; scroll-snap-align:start; display:flex; position:relative; }
.bw-shell .dpcc{ width:100%; }

/* 🟢 现在接单中 = 霓虹灯牌,绿灯呼吸 */
.bw-rail--open .bw-sign{
  color:#8df0c9; border-color:rgba(99,230,184,.55); background:rgba(99,230,184,.06);
  text-shadow:0 0 12px rgba(99,230,184,.6);
  animation:bwSign 2.6s ease-in-out infinite, bwFlicker 9s linear infinite; /* 霓虹灯偶尔闪一下 */
}
.bw-rail--open .bw-shell .dp-card{ animation:bwBreath 2.8s ease-in-out infinite; }

/* ✨ 新面孔 = 夜市手写价签(拍立得骨架保留,材质换夜市 —— 2026-07-23 用户:原奶白框与暗色霓虹四不像) */
.bw-rail--new .bw-sign{
  color:#ffb8dd; border-color:rgba(255,143,193,.5); border-style:dashed;
  background:rgba(255,143,193,.05); transform:rotate(-1deg);
}
.bw-rail--new .bw-scroller{ align-items:stretch; }   /* 同带等高:框拉齐,内容差在"纸下巴"里消化 */
.bw-rail--new .bw-shell{
  padding:9px 9px 16px; border-radius:15px;
  background:linear-gradient(175deg,#242031,#1a1725);
  border:1px solid rgba(255,255,255,.09);
  box-shadow:0 16px 34px -16px rgba(0,0,0,.75), inset 0 1px 0 rgba(255,255,255,.05);
  transform:rotate(-1.3deg); transition:transform .22s ease;
}
.bw-rail--new .bw-shell:nth-child(2n){ transform:rotate(1.2deg); }
.bw-rail--new .bw-shell:hover{ transform:rotate(0deg) translateY(-4px); }
.bw-rail--new .bw-shell .dp-card{ --pc-r:9px; }
.bw-rail--new .bw-shell::before{
  content:""; position:absolute; top:-9px; left:50%; width:76px; height:20px; z-index:6;
  transform:translateX(-50%) rotate(-2deg);
  background:rgba(157,107,255,.26); border:1px solid rgba(196,168,255,.4); border-radius:2px;
  box-shadow:0 0 12px -2px rgba(157,107,255,.5); backdrop-filter:blur(2px);
}
.bw-rail--new .bw-shell::after{
  content:"NEW ✦"; position:absolute; top:-10px; right:-8px; z-index:6; transition:transform .2s ease;
  background:rgba(26,17,32,.92); color:#ff9fd9;
  border:1.5px solid rgba(255,107,211,.65); text-shadow:0 0 8px rgba(255,107,211,.75);
  font-family:var(--hud,"Chakra Petch",sans-serif); font-weight:800; font-size:10px; letter-spacing:.06em;
  padding:5px 10px; border-radius:999px; transform:rotate(6deg);
  box-shadow:0 0 16px -4px rgba(255,107,211,.55);
}
.bw-rail--new .bw-shell:hover::after{ transform:rotate(-4deg) scale(1.08); }

/* 🔥 本周人气 = 金色打榜 */
.bw-rail--hot .bw-sign{
  color:var(--bw-gold); border-color:rgba(246,215,123,.5); background:rgba(246,215,123,.05);
  text-shadow:0 0 12px rgba(246,215,123,.5);
}
.bw-rail--hot .bw-shell .dp-card{
  box-shadow:0 0 0 1px rgba(246,215,123,.28), 0 0 26px -8px rgba(246,215,123,.35), 0 26px 60px -26px rgba(0,0,0,.85);
}
.bw-rank{
  position:absolute; top:-9px; left:-7px; z-index:6;
  width:30px; height:30px; border-radius:50%; display:grid; place-items:center;
  background:linear-gradient(135deg,#f7e0a0,#c8963c); color:#241a04;
  font-family:var(--hud,"Chakra Petch",sans-serif); font-weight:800; font-size:14px;
  box-shadow:0 5px 14px -4px rgba(246,215,123,.65);
}

/* 🎧 听听他们的声音 = 波形风,大一号规格 */
.bw-rail--voice .bw-sign{ color:var(--bw-v2); border-color:rgba(157,107,255,.5); background:rgba(157,107,255,.06); }
.bw-eq{ display:inline-flex; align-items:flex-end; gap:2.5px; height:13px; }
.bw-eq b{ width:3px; border-radius:2px; background:currentColor; transform-origin:bottom; animation:bwEq .8s ease-in-out infinite alternate; }
.bw-eq b:nth-child(1){ height:60%; } .bw-eq b:nth-child(2){ height:100%; animation-delay:.15s; }
.bw-eq b:nth-child(3){ height:45%; animation-delay:.3s; } .bw-eq b:nth-child(4){ height:80%; animation-delay:.45s; }
.bw-rail--voice .bw-shell{ flex-basis:352px; }
.bw-rail--voice .dpcc .dp-card .dpc-cover{ height:150px; }
.bw-rail--voice .dpcc .dp-card .dpc-voice{
  border-color:color-mix(in srgb,var(--pc-accent,#a678ff) 55%,transparent);
  background:color-mix(in srgb,var(--pc-accent,#a678ff) 16%,transparent);
}

/* ---------- 段落题头(与大厅广场 hs-tier 同族) ---------- */
.bw-tier{ display:flex; align-items:center; gap:12px; margin:44px 0 4px; }
.bw-tier .lb{ font-family:var(--mono,ui-monospace,monospace); font-weight:800; font-size:12px; letter-spacing:3px; white-space:nowrap; color:rgba(196,168,255,.85); }
.bw-tier .rule{ flex:1; height:1.5px; background:linear-gradient(90deg,rgba(157,107,255,.4),transparent); }
.bw-tier .nt{ font-size:10.5px; color:rgba(232,230,240,.32); }

/* ---------- 全部陪玩:混合尺寸拼贴 ---------- */
.bw-masonry{ display:flex; gap:16px; align-items:flex-start; padding-top:18px; }
.bw-mcol{ flex:1; min-width:0; display:flex; flex-direction:column; gap:16px; }
.bw-tile{ position:relative; }
.bw-tile .dpcc{ width:100%; }
.bw-tile--s{ display:flex; flex-direction:column; gap:10px; }
.bw-slb{
  display:flex; align-items:center; gap:8px; padding:2px 2px 0;
  font-family:var(--mono,ui-monospace,monospace); font-size:9.5px; letter-spacing:.14em; color:var(--bw-mute);
}
.bw-slb::after{ content:""; flex:1; height:1px; background:linear-gradient(90deg,rgba(255,255,255,.12),transparent); }
.bw-tile--l .dpcc .dp-card .dpc-cover{ height:176px; }
/* ---------- 等高对齐(2026-07-31 用户:全部陪玩卡片不要大小不一) ----------
   grid 行内 stretch:dp-card 撑满瓦片高度,动作按钮+完整名片锚到底部;
   简介限 2 行 —— 配合 JS 侧标签收口(资质5+个人3),同行卡片高度一致、内容顶/底对齐。 */
.bw-masonry .bw-tile{ display:flex; }
.bw-masonry .bw-tile .dpcc{ display:flex; width:100%; }
.bw-masonry .bw-tile .dpcc .dp-card{ display:flex; flex-direction:column; width:100%; flex:1; }
.bw-masonry .bw-tile .dpcc .dp-card .dpc-body{ flex:1; }
.bw-masonry .bw-tile .dpcc .dp-card .dpc-actions{ margin-top:auto; }
.bw-masonry .bw-tile .dpc-bio{ display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
/* 2026-07-23 拍板:休息中卡片不再压灰(overlay 取消),在线状态只靠「接单中」灯牌区分 */
.bw-tile.is-off{ }
.bw-tile.is-on .dp-card{ animation:bwLamp 3s ease-in-out infinite; }
.bw-lamp{
  position:absolute; top:10px; right:10px; z-index:6;
  display:inline-flex; align-items:center; gap:6px; height:24px; padding:0 10px; border-radius:999px;
  background:rgba(8,20,15,.72); border:1px solid rgba(99,230,184,.55); color:#8df0c9;
  font-family:var(--mono,ui-monospace,monospace); font-weight:700; font-size:10.5px;
  -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); pointer-events:none;
}
.bw-lamp::before{ content:""; width:7px; height:7px; border-radius:50%; background:var(--bw-mint); box-shadow:0 0 8px var(--bw-mint); animation:bwDot 1.6s ease-out infinite; }

/* 紧凑条(信息少的收一档:头像+昵称+2 tag+私信) */
.bw-strip{
  display:flex; align-items:center; gap:11px; padding:13px 14px; border-radius:15px;
  background:linear-gradient(165deg,#17141f,#100e17); border:1px solid var(--bw-line);
  cursor:pointer; transition:border-color .18s, transform .18s;
}
.bw-strip:hover{ border-color:rgba(157,107,255,.5); transform:translateY(-2px); }
.bw-strip.is-off{ }
.bw-strip.is-on{ border-color:rgba(99,230,184,.4); animation:bwBreath 2.8s ease-in-out infinite; }
.bw-sav{
  width:42px; height:42px; border-radius:50%; flex:none; position:relative;
  display:grid; place-items:center; overflow:visible;
  background-size:cover; background-position:center;
  border:2px solid #221c33;
  font-family:var(--display,"Saira","Noto Sans SC",sans-serif); font-style:italic; font-weight:800; font-size:16px; color:#fff;
}
.bw-sav .d{ position:absolute; right:-1px; bottom:-1px; width:10px; height:10px; border-radius:50%; background:var(--bw-mint); border:2px solid #14121c; animation:bwDot 2s ease-out infinite; }
.bw-sinfo{ flex:1; min-width:0; }
.bw-snm{ font-weight:700; font-size:13.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.bw-stags{ display:flex; gap:5px; margin-top:5px; overflow:hidden; }
.bw-stag{
  font-weight:600; font-size:10.5px; padding:3px 8px; border-radius:6px; white-space:nowrap;
  background:rgba(157,107,255,.1); color:var(--bw-v2); border:1px solid rgba(157,107,255,.3);
}
.bw-sdm{
  flex:none; height:30px; padding:0 14px; border-radius:9px; cursor:pointer;
  border:1px solid rgba(157,107,255,.4); background:rgba(157,107,255,.13);
  color:var(--bw-text); font-weight:700; font-size:12px; font-family:inherit; transition:.15s;
}
.bw-sdm:hover{ background:rgba(157,107,255,.28); border-color:rgba(157,107,255,.7); color:#fff; }

.bw-endnote{
  text-align:center; font-family:var(--mono,ui-monospace,monospace); font-size:12px; letter-spacing:.08em;
  color:var(--bw-mute); padding:28px 0 8px; margin:0;
}
.bw-sentinel{ height:1px; }

/* ---------- 找人模式(结果流) ---------- */
.bw-rgrid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:16px; padding-top:6px; }
.bw-rcell{ display:flex; }
.bw-rcell .dpcc{ width:100%; }
.bw-empty{ display:flex; flex-direction:column; align-items:center; gap:16px; padding:72px 0; color:var(--bw-dim); }
.bw-empty b{ font-size:16px; font-weight:700; }
.bw-empty .bw-chip{ border-style:dashed; }

.bw-in{ animation:bwUp .45s cubic-bezier(.2,.8,.2,1) both; }
.bw-fin{ animation:bwFade .5s ease-out both; }

/* ---------- 名片标签降噪(仅本页作用域,不动 profile-card.css 本体) ----------
   资质 rtag:底色/描边压淡,彩色只留在文字与小圆点;个人 ptag 同步降饱和。 */
.bw-street .dpc-rtag{
  font-size:11px; font-weight:600; padding:3.5px 9px; gap:5px;
  background:color-mix(in srgb,var(--rc,#9d6bff) 9%,rgba(255,255,255,.02));
  border-color:color-mix(in srgb,var(--rc,#9d6bff) 24%,transparent);
  color:color-mix(in srgb,var(--rc,#9d6bff) 72%,#d9d4ec);
}
.bw-street .dpc-rtag::before{ width:4px; height:4px; opacity:.75; }
.bw-street .dpc-ptag{
  font-size:11px; padding:3.5px 9px;
  background:color-mix(in srgb,var(--pk,#c084fc) 8%,rgba(255,255,255,.02));
  border-color:color-mix(in srgb,var(--pk,#c084fc) 26%,transparent);
  color:color-mix(in srgb,var(--pk,#c084fc) 62%,#d9d4ec);
}
.bw-street .dpc-tags{ gap:5px 6px; }

/* ---------- 手机端 ---------- */
@media (max-width:768px){
  .bw-topbar{ top:6px; padding:10px; border-radius:16px; }
  .bw-search{ height:46px; padding:0 14px; }
  .bw-chips{ flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; padding-bottom:2px; }
  .bw-chips::-webkit-scrollbar{ display:none; }
  .bw-cover{ grid-template-columns:1fr; gap:14px; }
  .bw-poster{ min-height:280px; }
  .bw-pname{ font-size:19px; }
  .bw-pslogan{ font-size:14.5px; }
  .bw-shell{ flex-basis:min(80vw,300px); }
  .bw-rail--voice .bw-shell{ flex-basis:min(85vw,340px); }
  .bw-masonry{ gap:10px; padding-top:14px; }
  .bw-mcol{ gap:10px; }
  .bw-rgrid{ grid-template-columns:repeat(2,1fr); gap:10px; }
}
@media (max-width:520px){
  .bw-rgrid{ grid-template-columns:1fr; }
}
/* 2026-07-24 用户:手机端要 compact——标题/搜索/胶囊/卡带全档缩一号,首屏就能见到卡片 */
@media (max-width:560px){
  .page-head{ padding:14px 0 2px; }
  .page-head h1{ font-size:23px; }
  .page-head p{ font-size:12.5px; margin-top:5px; line-height:1.55; }
  .bw-topbar{ padding:8px 9px; gap:8px; margin:2px 0 16px; border-radius:14px; top:4px; }
  .bw-search{ height:40px; padding:0 12px; border-radius:11px; gap:8px; }
  .bw-search svg{ width:15px; height:15px; }
  .bw-search input{ font-size:16px; }   /* 别低于16px:iOS 聚焦会自动放大页面 */
  .bw-chip{ height:30px; padding:0 12px; font-size:12px; gap:5px; }
  .bw-rail{ margin-top:22px; }
  .bw-sign{ font-size:12.5px; padding:6px 11px; border-radius:10px; gap:6px; }
  .bw-rnote{ font-size:10px; }
  .bw-shell{ flex-basis:min(74vw,280px); }              /* 露出下一张卡的边:暗示可横滑 */
  .bw-rail--voice .bw-shell{ flex-basis:min(80vw,300px); }
  .bw-street .dpcc.rail .dp-card .dpc-cover{ height:112px; }
  .bw-street .dpcc .dp-card .dpc-cover{ height:104px; }
  .bw-tier{ margin:26px 0 2px; gap:9px; }
  .bw-tier .lb{ font-size:10.5px; letter-spacing:2px; }
  .bw-endnote{ font-size:11px; }
  /* 名字行换行:认证陪玩+休息中两枚徽章在窄卡上溢出卡边被裁 */
  .bw-street .dpc-name{ flex-wrap:wrap; row-gap:3px; }
  .bw-street .dpc-idbadge{ font-size:10px; padding:2px 8px; }
  .bw-street .dpc-rtag{ font-size:10.5px; padding:3px 9px 3px 7px; }
}

@media (prefers-reduced-motion: reduce){
  .bw-psheen, .bw-rail--open .bw-sign, .bw-rail--open .bw-shell .dp-card,
  .bw-tile.is-on .dp-card, .bw-strip.is-on, .bw-eq b, .bw-fin,
  .bw-chip--open.on .d, .bw-lamp::before, .bw-sav .d, .bw-pbadge.on i, .bw-in{
    animation-duration:.01ms !important; animation-iteration-count:1 !important;
  }
}
body[data-motion="off"] .bw-street *{ animation-play-state:paused !important; }
