/* ai-girlfriend.cn — "Afterglow": ink-violet night, coral glow, champagne stars */
:root{
  --bg:#140d1c;--bg2:#1b1226;--card:#221832;--card2:#2a1e3d;--line:#3a2b52;
  --ink:#f6eff8;--ink2:#cbbfd6;--mute:#9a8cab;
  --coral:#ff5f7e;--coral2:#ff8a65;--gold:#f4c47c;--mint:#5fe0b5;--rose:#ffb3c4;
  --r:18px;--r2:12px;
  --sans:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans SC","Segoe UI",Roboto,sans-serif;
  --glow:0 10px 40px -12px rgba(255,95,126,.55);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.75 var(--sans);overflow-x:hidden}
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(900px 500px at 85% -10%,rgba(255,95,126,.18),transparent 60%),
             radial-gradient(700px 500px at -10% 20%,rgba(140,90,255,.14),transparent 60%)}
a{color:var(--rose);text-underline-offset:3px}
a:hover{color:#fff}
img{max-width:100%;height:auto}
.wrap{max-width:1120px;margin:0 auto;padding:0 16px}
h1,h2,h3{line-height:1.25;letter-spacing:-.01em}
h2{font-size:clamp(1.35rem,2.6vw,1.75rem);margin:2.4em 0 .7em;padding-top:.2em}
h2::before{content:"";display:block;width:36px;height:4px;border-radius:4px;background:linear-gradient(90deg,var(--coral),var(--coral2));margin-bottom:.55em}
h3{font-size:1.12rem;margin:1.6em 0 .5em}
p,li{color:var(--ink2)}
strong,b{color:var(--ink)}
.fine{font-size:.8rem;color:var(--mute);margin:.5em 0 0}

/* header */
.top{position:sticky;top:0;z-index:30;background:rgba(20,13,28,.86);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.top-in{display:flex;align-items:center;gap:16px;height:60px}
.brand{display:flex;align-items:center;gap:8px;color:var(--ink);text-decoration:none;font-weight:800;font-size:1.05rem;white-space:nowrap}
.brand-mark{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:linear-gradient(135deg,var(--coral),#b45cff);color:#fff;font-size:15px;box-shadow:var(--glow)}
.menu{display:flex;gap:4px;margin-left:auto;align-items:center}
.menu a{color:var(--ink2);text-decoration:none;padding:7px 11px;border-radius:10px;font-size:.93rem}
.menu a:hover,.menu a[aria-current]{color:#fff;background:var(--card)}
.menu .lang{border:1px solid var(--line);margin-left:6px}
.burger{display:none;margin-left:auto;background:none;border:1px solid var(--line);color:var(--ink);border-radius:10px;width:40px;height:38px;font-size:18px}
@media (max-width:860px){
  .burger{display:block}
  .menu{display:none;position:absolute;left:0;right:0;top:60px;flex-direction:column;align-items:stretch;background:var(--bg2);padding:10px 16px 16px;border-bottom:1px solid var(--line)}
  .menu.open{display:flex}
  .menu .lang{margin:6px 0 0}
}

/* hero */
.hero{padding:34px 0 10px}
.hero-in{display:grid;gap:28px}
.hero-review .hero-in{grid-template-columns:1fr 340px;align-items:start}
@media (max-width:900px){.hero-review .hero-in{grid-template-columns:1fr}}
.hero h1{font-size:clamp(1.75rem,4.6vw,2.7rem);margin:.15em 0 .35em;background:linear-gradient(100deg,#fff 30%,var(--rose) 70%,var(--gold));-webkit-background-clip:text;background-clip:text;color:transparent}
.lead{font-size:1.06rem;max-width:68ch;margin:0 0 1em}
.bc{font-size:.84rem;color:var(--mute)}
.bc a{color:var(--mute)}
.hchips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}
.hchip{font-size:.85rem;padding:5px 12px;border-radius:999px;background:var(--card);border:1px solid var(--line);color:var(--ink)}
.hacts{display:flex;flex-wrap:wrap;gap:10px}
.upd{font-size:.8rem;color:var(--mute);margin-top:14px}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;font-weight:700;border-radius:999px;padding:10px 20px;font-size:.95rem;border:0;cursor:pointer;white-space:nowrap;transition:transform .15s,box-shadow .15s}
.btn-go{background:linear-gradient(100deg,var(--coral),var(--coral2));color:#fff;box-shadow:var(--glow)}
.btn-go:hover{color:#fff;transform:translateY(-1px);box-shadow:0 14px 44px -10px rgba(255,95,126,.75)}
.btn-ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}
.btn-ghost:hover{background:var(--card)}
.btn-lg{padding:14px 28px;font-size:1.02rem}
.btn-block{display:flex;width:100%}
.more{font-size:.85rem;color:var(--ink2)}

/* stars */
.stars{--p:80%;display:inline-block;width:86px;height:15px;vertical-align:-2px;
  background:linear-gradient(90deg,var(--gold) var(--p),#4b3b63 var(--p));
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 86 15'%3E%3Cg%3E%3Cpath id='s' d='M7.5 0l2.2 4.8 5.3.6-3.9 3.6 1 5.2-4.6-2.6-4.6 2.6 1-5.2L0 5.4l5.3-.6z'/%3E%3Cuse href='%23s' x='17.6'/%3E%3Cuse href='%23s' x='35.2'/%3E%3Cuse href='%23s' x='52.8'/%3E%3Cuse href='%23s' x='70.4'/%3E%3C/g%3E%3C/svg%3E") no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 86 15'%3E%3Cg%3E%3Cpath id='s' d='M7.5 0l2.2 4.8 5.3.6-3.9 3.6 1 5.2-4.6-2.6-4.6 2.6 1-5.2L0 5.4l5.3-.6z'/%3E%3Cuse href='%23s' x='17.6'/%3E%3Cuse href='%23s' x='35.2'/%3E%3Cuse href='%23s' x='52.8'/%3E%3Cuse href='%23s' x='70.4'/%3E%3C/g%3E%3C/svg%3E") no-repeat}
.score{margin-left:6px;color:var(--gold);font-size:.95rem}

/* logos */
.logo{border-radius:12px;background:#0e0914;border:1px solid var(--line);object-fit:contain;padding:6px 8px;flex:none;box-sizing:border-box}
.logo-txt{display:inline-grid;place-items:center;background:linear-gradient(135deg,var(--coral),#8e5cff);color:#fff;font-weight:800;padding:0}

/* ranking */
.rank{margin:8px 0 30px}
.rank-filter{display:flex;gap:8px;overflow-x:auto;padding:4px 0 12px;scrollbar-width:none}
.chip{flex:none;background:var(--card);color:var(--ink2);border:1px solid var(--line);border-radius:999px;padding:7px 14px;font:inherit;font-size:.88rem;cursor:pointer}
.chip.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.rank-list{list-style:none;margin:0;padding:0;display:grid;gap:12px;counter-reset:r}
.rank-row{display:grid;grid-template-columns:34px 94px 1fr 130px 190px 160px;gap:14px;align-items:center;background:linear-gradient(180deg,var(--card),var(--bg2));border:1px solid var(--line);border-radius:var(--r);padding:14px 18px;transition:border-color .2s}
.rank-row:hover{border-color:#5a4479}
.rank-row:first-child{border-color:var(--coral);box-shadow:var(--glow)}
.rank-row[hidden]{display:none}
.rank-n{font-weight:900;font-size:1.4rem;color:var(--mute);text-align:center}
.rank-row:first-child .rank-n{color:var(--coral)}
.rank-name{margin:0;font-weight:800;color:var(--ink);font-size:1.08rem}
.rank-best{margin:0;font-size:.88rem;line-height:1.45}
.tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}
.tag{font-size:.72rem;padding:2px 8px;border-radius:6px;background:rgba(255,95,126,.12);color:var(--rose)}
.rank-facts{display:flex;flex-direction:column;font-size:.84rem;color:var(--ink2);line-height:1.5}
.rank-act{display:flex;flex-direction:column;align-items:stretch;gap:6px;text-align:center}
@media (max-width:980px){
  .rank-row{grid-template-columns:28px 94px 1fr;grid-template-areas:"n l m" "s s s" "f f f" "a a a";row-gap:10px}
  .rank-n{grid-area:n}.rank-row .logo{grid-area:l}.rank-main{grid-area:m}.rank-score{grid-area:s}.rank-facts{grid-area:f;flex-direction:row;flex-wrap:wrap;gap:4px 14px}.rank-act{grid-area:a}
}

/* cards */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;margin:16px 0}
.bcard{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:18px;display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.bcard h3{margin:4px 0 0}
.bcard p{margin:0;font-size:.9rem;flex:1}
.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;margin:14px 0}
.cat-grid a{display:block;padding:16px;border-radius:var(--r2);background:var(--card);border:1px solid var(--line);color:var(--ink);text-decoration:none;font-weight:700}
.cat-grid a span{display:block;font-weight:400;font-size:.82rem;color:var(--mute)}
.cat-grid a:hover{border-color:var(--coral)}

/* band */
.band{display:grid;grid-template-columns:115px 1fr auto;gap:18px;align-items:center;margin:28px 0;padding:20px 22px;border-radius:var(--r);
  background:linear-gradient(110deg,rgba(255,95,126,.16),rgba(142,92,255,.12));border:1px solid rgba(255,95,126,.35)}
.band-h{margin:0;font-weight:800;color:var(--ink);font-size:1.1rem}
.band-t p{margin:.2em 0 0}
.band-r{text-align:center}
@media (max-width:720px){.band{grid-template-columns:96px 1fr}.band-r{grid-column:1/-1}.band-r .btn{width:100%}}

/* facts box */
.facts{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:18px}
.facts-h{display:flex;gap:12px;align-items:center;margin-bottom:10px}
.facts-name{margin:0;font-weight:800;font-size:1.15rem;color:var(--ink)}
.facts table{width:100%;border-collapse:collapse;margin:6px 0 14px;font-size:.88rem}
.facts th{text-align:left;color:var(--mute);font-weight:500;padding:6px 8px 6px 0;width:42%;vertical-align:top}
.facts td{padding:6px 0;color:var(--ink);border-bottom:1px dashed var(--line)}
.facts-alt{font-size:.85rem;margin:0 0 8px}
.facts .btn+.btn{margin-top:8px}
.yn{font-weight:700}.yn.y{color:var(--mint)}.yn.n{color:#ff8fa3}.yn.u{color:var(--mute)}

/* pros/cons */
.pc{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:18px 0}
@media (max-width:640px){.pc{grid-template-columns:1fr}}
.pc>div{border-radius:var(--r);padding:16px 18px;border:1px solid var(--line);background:var(--card)}
.pc-h{margin:0 0 6px;font-weight:800}
.pc-p .pc-h{color:var(--mint)}.pc-c .pc-h{color:#ff8fa3}
.pc ul{margin:0;padding-left:1.1em}
.pc li{margin:.25em 0}

/* compare */
.cmp-wrap{overflow-x:auto;margin:16px 0;border-radius:var(--r);border:1px solid var(--line)}
.cmp{border-collapse:collapse;width:100%;min-width:560px;font-size:.9rem}
.cmp th,.cmp td{padding:12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}
.cmp thead th{background:var(--card2)}
.cmp thead th span{display:block;margin-top:6px;color:var(--ink)}
.cmp tbody th{color:var(--mute);font-weight:500;width:22%}
.cmp td{color:var(--ink)}

/* content tables */
.content table:not(.cmp){width:100%;border-collapse:collapse;margin:14px 0;font-size:.92rem}
.content table:not(.cmp) th,.content table:not(.cmp) td{border-bottom:1px solid var(--line);padding:9px 8px;text-align:left}
.content table:not(.cmp) th{color:var(--mute);font-weight:600}
.tbl{overflow-x:auto}

/* notes */
.note{border-left:3px solid var(--gold);background:rgba(244,196,124,.07);padding:12px 16px;border-radius:0 var(--r2) var(--r2) 0;margin:18px 0}
.note p{margin:.2em 0}
.steps{counter-reset:s;list-style:none;padding:0}
.steps li{counter-increment:s;position:relative;padding:4px 0 10px 44px}
.steps li::before{content:counter(s);position:absolute;left:0;top:2px;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--card2);color:var(--coral);font-weight:800;border:1px solid var(--line)}

/* promo banners */
.promo{display:block;margin:20px auto;max-width:100%;text-align:center}
.promo img{border-radius:var(--r2);border:1px solid var(--line)}
.promo::after{content:"AD";display:block;font-size:.65rem;color:var(--mute);letter-spacing:.1em;margin-top:2px}

/* quiz */
.quiz{background:linear-gradient(160deg,var(--card2),var(--card));border:1px solid var(--line);border-radius:22px;padding:22px;margin:22px 0}
.quiz-h{margin:0 0 4px;font-weight:800;font-size:1.2rem;color:var(--ink)}
.quiz-q{margin:14px 0 10px;color:var(--ink);font-weight:700}
.quiz-opts{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.quiz-opts button{background:var(--bg2);border:1px solid var(--line);color:var(--ink);border-radius:14px;padding:14px 12px;font:inherit;cursor:pointer;text-align:left}
.quiz-opts button:hover{border-color:var(--coral)}
.quiz-opts button span{display:block;font-size:1.5rem}
.quiz-bar{height:4px;border-radius:4px;background:var(--line);margin-top:12px;overflow:hidden}
.quiz-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--coral),var(--gold));transition:width .3s}
.quiz-res{display:grid;gap:10px;margin-top:12px}
.quiz-res .qr{display:grid;grid-template-columns:86px 1fr auto;gap:12px;align-items:center;background:var(--bg2);border:1px solid var(--line);border-radius:14px;padding:12px}
.qr p{margin:0;font-size:.86rem}
.qr b{display:block}
.quiz-again{background:none;border:0;color:var(--mute);text-decoration:underline;cursor:pointer;font:inherit;font-size:.85rem;margin-top:8px}

/* chat demo */
.chatdemo{max-width:520px;margin:24px auto;background:#0f0a16;border:1px solid var(--line);border-radius:24px;overflow:hidden;box-shadow:0 30px 80px -30px rgba(0,0,0,.7)}
.cd-top{display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--card);border-bottom:1px solid var(--line)}
.cd-ava{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,var(--coral),#8e5cff);display:grid;place-items:center;font-weight:800}
.cd-top p{margin:0;line-height:1.2}
.cd-top small{color:var(--mint);font-size:.75rem}
.cd-demo{margin-left:auto;font-size:.7rem;color:var(--mute);border:1px solid var(--line);border-radius:6px;padding:2px 6px}
.cd-body{height:300px;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:8px}
.cd-msg{max-width:80%;padding:9px 13px;border-radius:16px;font-size:.93rem;line-height:1.5;animation:pop .25s ease}
.cd-msg.her{background:var(--card2);color:var(--ink);border-bottom-left-radius:4px}
.cd-msg.me{background:linear-gradient(100deg,var(--coral),var(--coral2));color:#fff;align-self:flex-end;border-bottom-right-radius:4px}
.cd-typing{display:flex;gap:4px;padding:12px 14px;background:var(--card2);border-radius:16px;width:max-content}
.cd-typing i{width:6px;height:6px;border-radius:50%;background:var(--mute);animation:blink 1s infinite}
.cd-typing i:nth-child(2){animation-delay:.2s}.cd-typing i:nth-child(3){animation-delay:.4s}
.cd-picks{display:flex;flex-wrap:wrap;gap:8px;padding:12px 16px;border-top:1px solid var(--line)}
.cd-picks button{background:var(--bg2);color:var(--ink);border:1px solid var(--line);border-radius:999px;padding:8px 14px;font:inherit;font-size:.88rem;cursor:pointer}
.cd-picks button:hover{border-color:var(--coral)}
.cd-end{padding:14px 16px;border-top:1px solid var(--line);text-align:center}
@keyframes pop{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes blink{50%{opacity:.25}}

/* faq */
.faq details{border:1px solid var(--line);border-radius:var(--r2);margin:10px 0;background:var(--card)}
.faq summary{cursor:pointer;padding:14px 16px;font-weight:700;color:var(--ink);list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";float:right;color:var(--coral)}
.faq details[open] summary::after{content:"–"}
.faq details>div{padding:0 16px 12px}

/* footer */
.foot{margin-top:60px;border-top:1px solid var(--line);background:var(--bg2);padding:36px 0 26px;font-size:.88rem}
.f-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:20px}
.f-cols a{display:block;color:var(--ink2);text-decoration:none;padding:3px 0}
.f-h{font-weight:800;color:var(--ink);margin:0 0 6px}
.f-disc{color:var(--mute);margin-top:24px;font-size:.8rem}
.f-meta{color:var(--mute);font-size:.8rem}

/* age gate */
.agegate{position:fixed;inset:0;z-index:100;display:grid;place-items:center;background:rgba(10,6,16,.88);backdrop-filter:blur(14px);padding:16px}
.agegate[hidden]{display:none}
.ag-box h2::before{display:none}
.ag-box{max-width:420px;background:var(--card);border:1px solid var(--line);border-radius:22px;padding:28px;text-align:center}
.ag-18{display:inline-grid;place-items:center;width:64px;height:64px;border-radius:50%;border:3px solid var(--coral);color:var(--coral);font-weight:900;font-size:1.4rem;margin-bottom:10px}
.ag-box .btn{margin:6px}
.content{min-height:40vh}

/* compact list hero: the ranking sits on the first screen */
.hero-list{padding:18px 0 4px}
.hero-list h1{font-size:clamp(1.45rem,3.6vw,2.2rem);margin:.1em 0 .25em}
.hero-list .lead{font-size:.95rem;margin:0 0 .6em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.hl-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px}
.hl-row .upd{margin:0}
.hq{font-weight:700;color:var(--gold);text-decoration:none;font-size:.92rem}
.avas{display:flex;align-items:center}
.avas a{margin-left:-10px;position:relative}
.avas a:first-child{margin-left:0}
.avas img{width:40px;height:40px;border-radius:50%;object-fit:cover;border:2px solid var(--bg);display:block}
.avas a::after{content:"";position:absolute;right:1px;bottom:1px;width:9px;height:9px;border-radius:50%;background:var(--mint);border:2px solid var(--bg)}
.avas span{margin-left:10px;font-size:.8rem;color:var(--mute)}
.t-home .content>.rank:first-child,.t-best .content>.rank:first-child{margin-top:4px}

/* portraits in ranking rows */
.rank-vis{position:relative;display:flex;justify-content:center}
.rank-vis .pic{width:72px;height:96px;object-fit:cover;border-radius:12px;display:block}
.rank-vis .pic+.logo{position:absolute;bottom:-6px;left:50%;transform:translateX(-50%);width:62px!important;height:24px!important;padding:3px 5px;border-radius:7px}
.rank-row{grid-template-columns:34px 94px 1fr 130px 190px 160px}
@media (max-width:980px){.rank-vis .pic{width:64px;height:84px}}

/* gallery */
.gal{margin:22px 0 30px}
.gal-h{margin:.4em 0 .6em}
.gal-row{display:grid;grid-auto-flow:column;grid-auto-columns:180px;gap:12px;overflow-x:auto;padding-bottom:8px;scroll-snap-type:x mandatory;scrollbar-width:thin}
.gcard{position:relative;display:block;border-radius:16px;overflow:hidden;scroll-snap-align:start;text-decoration:none;border:1px solid var(--line);aspect-ratio:3/4}
.gcard img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s}
.gcard:hover img{transform:scale(1.04)}
.gcard::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(10,6,16,.92))}
.g-top{position:absolute;z-index:1;top:8px;left:8px;font-size:.72rem;color:#fff;background:rgba(10,6,16,.55);padding:2px 8px;border-radius:999px;display:flex;align-items:center;gap:5px}
.g-top i{width:7px;height:7px;border-radius:50%;background:var(--mint)}
.g-bot{position:absolute;z-index:1;left:10px;right:10px;bottom:10px;display:flex;flex-direction:column;gap:2px}
.g-bot b{color:#fff;font-size:.95rem}
.g-bot em{font-style:normal;color:var(--rose);font-weight:700;font-size:.85rem}
@media (max-width:640px){.gal-row{grid-auto-columns:42%}}

/* brand card portrait */
.bcard .bpic{width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;border-radius:12px;margin-bottom:4px}

/* review strip */
.rstrip{display:block;text-decoration:none;margin:6px 0 18px}
.rs-row{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.rs-row img{width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;border-radius:14px;border:1px solid var(--line)}
@media (max-width:640px){.rs-row{grid-template-columns:repeat(2,1fr)}}

/* compact ranking rows on phones */
@media (max-width:640px){
  .rank-row{grid-template-columns:24px 76px 1fr;grid-template-areas:"n l m" "n l s" "a a a";padding:12px;row-gap:6px;column-gap:10px}
  .rank-n{font-size:1.1rem;align-self:start}
  .rank-vis{grid-row:1/3}
  .rank-name{font-size:1rem}
  .rank-best{font-size:.82rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .rank-row .tags{display:none}
  .rank-facts{display:none}
  .rank-score{align-self:end}
  .rank-act{flex-direction:row;align-items:center;justify-content:space-between}
  .rank-act .btn{flex:1;padding:9px 14px}
  .rank-act .more{flex:none;margin-left:12px}
  .rank-row:not(:has(.pic)) .rank-vis .logo{width:76px!important;height:42px!important}
  .hero-list h1{font-size:1.35rem}
  .hero-list .lead{-webkit-line-clamp:1}
}

/* floating chat head (our own scripted demo, links to a partner) */
.chh{position:fixed;right:16px;bottom:16px;z-index:60}
.chh[hidden]{display:none}
.chh-bubble{position:relative;width:62px;height:62px;border-radius:50%;border:3px solid var(--coral);padding:0;background:var(--card);cursor:pointer;box-shadow:var(--glow);animation:pop .3s ease}
.chh-bubble img,.chh-ava{width:100%;height:100%;border-radius:50%;object-fit:cover;display:grid;place-items:center;color:#fff;font-size:24px;background:linear-gradient(135deg,var(--coral),#8e5cff)}
.chh-bubble b{position:absolute;top:-4px;right:-4px;min-width:20px;height:20px;border-radius:10px;background:#ff3b5c;color:#fff;font-size:.72rem;display:grid;place-items:center;border:2px solid var(--bg)}
.chh-peek{position:absolute;right:72px;bottom:10px;width:max-content;max-width:220px;background:#fff;color:#1b1226;border-radius:16px 16px 4px 16px;padding:10px 30px 10px 14px;box-shadow:0 10px 30px rgba(0,0,0,.4);animation:pop .3s ease}
.chh-peek p{margin:0;color:#1b1226;font-size:.9rem;line-height:1.4}
.chh-x{position:absolute;top:4px;right:6px;background:none;border:0;color:#9a8cab;font-size:18px;cursor:pointer;line-height:1}
.chh-panel{display:none;position:absolute;right:0;bottom:76px;width:min(360px,calc(100vw - 32px))}
.chh.open .chh-panel{display:block}
.chh.open .chh-peek,.chh.open .chh-bubble b{display:none}
.chh-panel .chatdemo{margin:0;max-width:none}
.chh-panel .cd-body{height:260px}
.chh-x2{top:-34px;right:0;z-index:2;color:#fff;background:var(--card);border:1px solid var(--line);border-radius:50%;width:28px;height:28px}
@media (max-width:640px){.chh{right:12px;bottom:12px}.chh-peek{max-width:170px}}

/* categories dropdown in the header */
.dd{position:relative}
.dd-menu{display:none;position:absolute;top:100%;left:-12px;z-index:40;min-width:520px;padding:12px;background:var(--bg2);border:1px solid var(--line);border-radius:14px;box-shadow:0 20px 50px rgba(0,0,0,.5);grid-template-columns:repeat(3,1fr);gap:2px}
.dd:hover .dd-menu,.dd:focus-within .dd-menu{display:grid}
.dd-menu a{font-size:.88rem;padding:6px 10px;white-space:nowrap}
@media (max-width:860px){
  .dd-menu{display:grid;position:static;min-width:0;grid-template-columns:repeat(2,1fr);box-shadow:none;border:0;padding:0 0 6px 10px;background:none}
}
/* footer: all categories */
.f-cats{grid-column:span 2}
.f-cat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:16px}
@media (max-width:640px){.f-cats{grid-column:1/-1}}

/* partner video (muted loop, plays only when visible) */
.pvid{position:relative;max-width:640px;margin:22px auto;border-radius:16px;overflow:hidden;border:1px solid var(--line);text-decoration:none}
.pvid video{display:block;width:100%;height:auto;object-fit:cover;background:#000}
.pvid-cta{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);background:linear-gradient(100deg,var(--coral),var(--coral2));color:#fff;font-weight:800;padding:9px 18px;border-radius:999px;white-space:nowrap;box-shadow:var(--glow)}
.pvid::after{position:absolute;top:8px;right:10px;margin:0;color:#fff;opacity:.7}
.promo img[width="768"]{width:100%;max-width:768px;height:auto}

/* animated "she just messaged you" preview */
.live{display:grid;grid-template-columns:minmax(0,270px) minmax(0,1fr);gap:0;max-width:680px;margin:24px auto;border-radius:20px;overflow:hidden;border:1px solid var(--line);background:var(--card);text-decoration:none;box-shadow:0 30px 70px -30px rgba(0,0,0,.7)}
.live-pics{position:relative;min-height:260px;height:100%;overflow:hidden;background:#000}
.live-pics img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.06);transition:opacity .9s,transform 3.5s}
.live-pics img.on{opacity:1;transform:none}
@keyframes livefade{0%{opacity:0;transform:scale(1.06)}6%{opacity:1}25%{opacity:1}31%{opacity:0;transform:scale(1)}100%{opacity:0}}
.live-chat{display:flex;flex-direction:column;padding:16px;gap:8px;min-width:0}
.live-head{display:flex;align-items:center;gap:8px;font-weight:800;color:var(--ink)}
.live-head i{width:9px;height:9px;border-radius:50%;background:var(--mint);box-shadow:0 0 0 4px rgba(95,224,181,.2);animation:blink 1.4s infinite}
.live-msgs{flex:1;display:flex;flex-direction:column;gap:7px}
.live-msgs p{margin:0;align-self:flex-start;max-width:92%;background:var(--card2);color:var(--ink);padding:8px 12px;border-radius:14px 14px 14px 4px;font-size:.9rem;line-height:1.45;display:none;animation:pop .3s ease}
.live-msgs p.on{display:block}
@keyframes livemsg{0%,8%{opacity:0;transform:translateY(6px)}12%,92%{opacity:1;transform:none}100%{opacity:0}}
.live-typing{display:flex;gap:4px;padding:10px 12px;background:var(--card2);border-radius:14px;width:max-content}
.live-typing i{width:6px;height:6px;border-radius:50%;background:var(--mute);animation:blink 1s infinite}
.live-typing i:nth-child(2){animation-delay:.2s}.live-typing i:nth-child(3){animation-delay:.4s}
.live-cta{align-self:stretch;text-align:center;background:linear-gradient(100deg,var(--coral),var(--coral2));color:#fff;font-weight:800;padding:12px;border-radius:999px;box-shadow:var(--glow)}
.live small{color:var(--mute);font-size:.72rem;line-height:1.4}
@media (max-width:640px){.live{grid-template-columns:42% 58%}.live-chat{padding:12px;gap:6px}.live-msgs p{font-size:.8rem;padding:6px 10px}.live-msgs p:nth-child(n+4){display:none}.live-cta{padding:10px}}

