/* Pssmi — charcoal + dusty rose. Single dark look by design. */
:root{
  color-scheme:dark;
  --bg:#131115;--bg2:#1b171d;--ink:#0e0c10;
  --glass:rgba(255,255,255,.045);--glass2:rgba(255,255,255,.075);--line:rgba(255,255,255,.08);--line2:rgba(255,255,255,.15);
  --text:#f5eff2;--muted:#b9acb4;--dim:#8d7f88;
  --rose:#f2b8cc;--rose2:#dd97b2;--rose3:#b87b93;--deep:#94627a;
  --grad:linear-gradient(135deg,#dc9bb4 0%,#a9647f 100%);--glow:0 10px 28px -8px rgba(222,140,172,.62);
  --ok:#82d8a2;--warn:#f1ca8a;--bad:#ec8a90;
  --r-lg:24px;--r-md:18px;--r-sm:14px;
  --display:"Playfair Display",Georgia,"Times New Roman",serif;
  --sans:Manrope,"Segoe UI",system-ui,-apple-system,BlinkMacSystemFont,sans-serif;
  font-family:var(--sans);color:var(--text);background:var(--ink);font-synthesis:none;-webkit-font-smoothing:antialiased;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;color:var(--text);-webkit-text-size-adjust:100%;text-size-adjust:100%}
.app{color:var(--text)}h1,h2{color:var(--text)}
body{background:radial-gradient(900px 520px at 85% -8%,#3b2631 0%,transparent 62%),radial-gradient(800px 520px at -10% 108%,#2a2033 0%,transparent 58%),var(--ink);background-attachment:fixed;color:var(--text);line-height:1.45;font-size:15px}
button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;transition:transform .12s ease,background .18s ease,border-color .18s ease,opacity .18s}button:active:not(:disabled){transform:scale(.97)}button:disabled{opacity:.42;cursor:not-allowed}
:focus-visible{outline:2px solid var(--rose);outline-offset:2px;border-radius:10px}
.app{max-width:430px;min-height:100dvh;margin:auto;overflow-x:clip;background:linear-gradient(180deg,#1a161c 0%,#131115 45%);padding:22px 18px 122px;position:relative}
@media(min-width:700px){body{padding:26px 0}.app{min-height:calc(100dvh - 52px);border-radius:38px;border:1px solid var(--line);box-shadow:0 50px 120px -20px #000c,0 0 0 8px rgba(255,255,255,.02)}}
h1,h2,h3,p{overflow-wrap:anywhere}h2{margin:0 0 12px;font-size:21px;font-weight:700;letter-spacing:-.015em}h3{margin:20px 0 10px;font-size:13px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}p{margin:0 0 10px}
.pg{display:block}.pg.enter{animation:pgin .3s cubic-bezier(.2,.75,.25,1)}@keyframes pgin{from{opacity:0;transform:translateY(10px)}}
.top,.between,.row{display:flex;align-items:center;justify-content:space-between;gap:10px}.row{justify-content:flex-start}.wrap{flex-wrap:wrap}.grow{flex:1;min-width:0}
.logo{font-family:var(--display);font-weight:500;font-size:34px;letter-spacing:-.02em;line-height:1}.logo span,.pink{color:var(--rose)}
.muted{color:var(--muted)}.dim{color:var(--dim)}.small{font-size:12px}.sub{font-size:14px}.ok{color:var(--ok)}.warn{color:var(--warn)}.bad{color:var(--bad)}
.ic{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;flex:none}.ic.lg{width:24px;height:24px}.ic.sm{width:15px;height:15px}
.wallet{display:flex;gap:8px;align-items:center;border:1px solid var(--line2);border-radius:999px;padding:9px 15px;background:var(--glass2);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);font-weight:700;font-variant-numeric:tabular-nums}
.greet{font-size:13px;color:var(--muted);margin:22px 2px 10px}.greet b{color:var(--text);font-weight:700}
.hero{position:relative;overflow:hidden;border-radius:var(--r-lg);padding:20px 20px 22px;margin:0 0 16px;border:1px solid rgba(232,179,196,.2);background:linear-gradient(135deg,rgba(220,150,178,.36),rgba(96,56,76,.45) 58%,rgba(44,31,48,.55));box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}
.hero::after{content:"";position:absolute;right:-50px;top:-60px;width:190px;height:190px;border-radius:50%;background:radial-gradient(circle,rgba(232,179,196,.35),transparent 68%);pointer-events:none}
.hero h2{margin:12px 0 6px;font-size:25px;line-height:1.15;position:relative}.hero p{margin:0;color:#ecdde3;position:relative}.pill{font-size:12px;color:#f6dce5;display:inline-flex;gap:6px;align-items:center;background:rgba(255,255,255,.08);border-radius:999px;padding:5px 10px;position:relative}
.next{display:flex;align-items:center;gap:12px;border-radius:var(--r-md);padding:12px 14px;margin:0 0 16px;background:var(--glass2);border:1px solid var(--line2)}.next .ico{width:38px;height:38px;border-radius:12px;background:var(--grad);display:grid;place-items:center;flex:none}
.seg{display:flex;gap:4px;border:1px solid var(--line);background:var(--glass);border-radius:999px;padding:4px;margin:0 0 22px}.seg button{flex:1;padding:12px;border:0;background:transparent;border-radius:999px;font-weight:700;color:var(--muted)}.seg button.active{background:var(--grad);color:#fff;box-shadow:var(--glow)}
.section-title{font-size:19px;font-weight:700;margin:0;letter-spacing:-.01em}.online{color:var(--ok);font-size:12px;font-weight:600;display:inline-flex;gap:6px;align-items:center}
.dot{width:9px;height:9px;border-radius:50%;background:#6bd88b;display:inline-block;box-shadow:0 0 0 0 rgba(107,216,139,.6);animation:ping 2.4s infinite}@keyframes ping{70%{box-shadow:0 0 0 7px rgba(107,216,139,0)}100%{box-shadow:0 0 0 0 rgba(107,216,139,0)}}
.cards{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}
.person-card{position:relative;aspect-ratio:3/4.1;border-radius:var(--r-lg);overflow:hidden;background:#2a232b;box-shadow:0 14px 30px -16px #000;transition:transform .2s ease}.person-card:hover{transform:translateY(-2px)}
.pc-main{position:absolute;inset:0;width:100%;height:100%;border:0;padding:0;background:none;text-align:left;display:block}.pc-main img{width:100%;height:100%;object-fit:cover;object-position:center 22%;display:block}
.pc-shade{position:absolute;inset:0;background:linear-gradient(180deg,transparent 42%,rgba(10,8,12,.86) 100%);pointer-events:none}
.pc-info{position:absolute;left:12px;right:46px;bottom:11px;display:flex;flex-direction:column;gap:2px;pointer-events:none}.pc-info strong{font-size:17px;font-weight:700}.pc-area{display:flex;gap:4px;align-items:center;font-size:12.5px;color:#e6dce1}.rate{color:var(--rose);font-weight:700;font-variant-numeric:tabular-nums}
.dot-online.busy{background:var(--warn)}.dot-online.off{background:#6d6169}
.dot-s{width:9px;height:9px;border-radius:50%;display:inline-block;background:var(--warn)}.dot-s.off{background:#6d6169}
.dot-online{position:absolute;top:11px;right:11px;width:10px;height:10px;border-radius:50%;background:#6bd88b;box-shadow:0 0 0 3px rgba(0,0,0,.35);pointer-events:none}
.pc-heart,.glass-btn{border:1px solid rgba(255,255,255,.2);background:rgba(20,16,22,.5);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:grid;place-items:center;color:#fff}.pc-heart{position:absolute;right:9px;bottom:9px;width:34px;height:34px;border-radius:50%}.pc-heart.on,.glass-btn.on{color:var(--rose)}.pc-heart.on svg,.glass-btn.on svg{fill:currentColor}.glass-btn{width:42px;height:42px;border-radius:50%}
.nav{position:fixed;bottom:max(12px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:min(398px,calc(100% - 24px));background:rgba(27,22,29,.8);-webkit-backdrop-filter:blur(20px) saturate(1.5);backdrop-filter:blur(20px) saturate(1.5);border:1px solid var(--line2);border-radius:28px;display:flex;justify-content:space-around;padding:7px;z-index:3;box-shadow:0 18px 40px -12px #000}
.nav button{background:none;border:0;color:var(--dim);display:grid;gap:3px;justify-items:center;font-size:11px;font-weight:600;flex:1;padding:8px 4px;border-radius:20px}.nav button.active{color:var(--rose);background:rgba(232,179,196,.12)}
@media(min-width:700px){.nav{bottom:44px}}
.iconbtn{background:none;border:0;color:var(--text);padding:8px;border-radius:14px;display:inline-flex;align-items:center;gap:6px}.iconbtn:hover{background:var(--glass2)}
.phero{position:relative;border-radius:30px;overflow:hidden;aspect-ratio:4/4.6;margin:0 0 16px;background:#2a232b;box-shadow:0 24px 50px -24px #000}.phero img{width:100%;height:100%;object-fit:cover;object-position:center 22%;display:block}.phero .pc-shade{background:linear-gradient(180deg,rgba(8,6,10,.35) 0%,transparent 30%,transparent 48%,rgba(10,8,12,.9) 100%)}
.phero-top{position:absolute;top:14px;left:14px;right:14px;display:flex;justify-content:space-between}.phero-info{position:absolute;left:18px;right:18px;bottom:16px}.profile-name{font-family:var(--display);font-size:32px;font-weight:500;letter-spacing:-.02em;line-height:1.1}.verified{font-size:12px;color:var(--ok);display:inline-flex;gap:5px;align-items:center}
.profile-photo{width:100%;height:240px;object-fit:cover;border-radius:var(--r-lg);background:#2a232b;display:block}.bio{line-height:1.55;margin:4px 2px 14px;font-size:15.5px;color:#eadfe5}
.audio{background:var(--glass);border:1px solid var(--line);border-radius:var(--r-md);padding:12px 14px;display:flex;align-items:center;gap:12px;margin:0 0 14px}.play{border-radius:50%;background:var(--grad);border:0;color:#fff;width:42px;height:42px;display:grid;place-items:center;flex:none;box-shadow:var(--glow)}
.wave{display:flex;gap:3px;align-items:center;height:26px;flex:1}.wave i{display:block;width:3px;border-radius:2px;background:var(--rose2);opacity:.85}.wave.live i{animation:bar .8s ease-in-out infinite}.wave.live i:nth-child(2n){animation-delay:.2s}.wave.live i:nth-child(3n){animation-delay:.4s}@keyframes bar{50%{transform:scaleY(.35)}}
.actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0 0 12px}
.action{border:1px solid var(--line2);background:var(--glass);border-radius:var(--r-md);padding:16px 10px;text-align:center;display:block}.action:hover{background:var(--glass2)}.action b{display:flex;gap:8px;align-items:center;justify-content:center;margin-bottom:6px}
.wide{width:100%;min-height:50px;border:1px solid var(--line2);background:var(--glass);border-radius:16px;padding:13px 16px;font-weight:700;display:flex;gap:8px;align-items:center;justify-content:center;margin-top:10px}.wide:hover:not(:disabled){background:var(--glass2)}
.primary{background:var(--grad);border-color:transparent;color:#fff;box-shadow:var(--glow)}.primary:hover:not(:disabled){background:var(--grad);filter:brightness(1.07)}.danger{background:rgba(140,50,58,.35);border-color:rgba(236,138,144,.4);color:#ffd7da}.ghost{background:transparent}
.chips{display:flex;gap:8px;flex-wrap:wrap}.chip{border:1px solid var(--line2);background:var(--glass);border-radius:999px;padding:8px 14px;font-size:13px;font-weight:600;color:#e9dfe4}.chip.active{background:var(--grad);border-color:transparent;color:#fff;box-shadow:var(--glow)}.chip:disabled{opacity:.35}
.ratechips .chip{font-size:12px;padding:6px 11px;font-weight:600;color:var(--muted);background:transparent}
.chat-head{border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:10px;gap:8px}.avatar-s{width:44px;height:44px;border-radius:50%;object-fit:cover;background:#2a232b;border:2px solid rgba(232,179,196,.35)}
.bubble{max-width:84%;padding:11px 15px;background:var(--glass2);border:1px solid var(--line);border-radius:20px 20px 20px 6px;margin:12px 0 4px;line-height:1.4;animation:pop .22s ease-out}.bubble.mine{background:var(--grad);border-color:transparent;margin-left:auto;border-radius:20px 20px 6px 20px;box-shadow:0 8px 20px -10px rgba(190,130,150,.7)}
@keyframes pop{from{transform:translateY(8px) scale(.98);opacity:0}}
.meta{font-size:11px;color:var(--dim);margin:0 6px 8px}.meta.mine{text-align:right}
.composer{position:sticky;bottom:92px;padding-top:16px;margin-top:10px;background:linear-gradient(transparent,#141116 30%)}
@media(min-width:700px){.composer{bottom:104px}}
.chat-input{display:flex;gap:6px;align-items:center;background:rgba(30,25,33,.92);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--line2);border-radius:28px;padding:6px 6px 6px 16px}.chat-input input{flex:1;min-width:0;border:0;background:transparent;padding:10px 0;outline:0}
.send{border:0;background:var(--grad);color:#fff;border-radius:22px;height:42px;padding:0 15px;display:flex;align-items:center;gap:6px;font-weight:700;white-space:nowrap;box-shadow:var(--glow)}.round{border:0;background:var(--glass2);border-radius:50%;width:42px;height:42px;display:grid;place-items:center;flex:none}.round.rec{background:var(--bad);animation:pulse 1.2s infinite}@keyframes pulse{50%{box-shadow:0 0 0 8px rgba(236,138,144,.25)}}
.ratebar{display:flex;gap:8px;justify-content:space-between;font-size:11px;color:var(--dim);margin:8px 10px 0}
.banner{background:rgba(232,179,196,.07);border:1px solid rgba(232,179,196,.2);border-radius:var(--r-md);padding:12px 14px;margin:12px 0;font-size:13px;color:#ecd9e0;display:flex;gap:10px;align-items:flex-start;line-height:1.4}.banner .ic{margin-top:1px;color:var(--rose)}.banner.warn{background:rgba(241,202,138,.08);border-color:rgba(241,202,138,.3);color:#f4e3bd}.banner.bad{background:rgba(236,138,144,.09);border-color:rgba(236,138,144,.32);color:#ffd9dc}
.call{position:relative;isolation:isolate;min-height:68vh;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;gap:10px}
.call::before{content:"";position:absolute;inset:-70px -18px -130px;z-index:-1;background:linear-gradient(180deg,rgba(14,12,16,.55),rgba(14,12,16,.9)),var(--ph) center/cover;filter:blur(30px) saturate(1.2);transform:scale(1.15)}
.avatar{width:132px;height:132px;object-fit:cover;border-radius:50%;background:#2a232b;border:3px solid rgba(232,179,196,.45);box-shadow:0 0 0 10px rgba(232,179,196,.08),0 0 80px rgba(232,179,196,.25)}
.hangup{background:#c8434b;color:#fff;border:0;border-radius:50%;height:70px;width:70px;display:grid;place-items:center;margin-top:18px;box-shadow:0 14px 30px -10px rgba(200,67,75,.8)}.hangup .ic{transform:rotate(135deg);width:28px;height:28px}
.timer{font-size:42px;font-weight:300;letter-spacing:3px;font-variant-numeric:tabular-nums}
.tabs{display:flex;gap:6px;overflow-x:auto;margin:12px 0 16px;padding-bottom:2px;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tabs button{border:1px solid var(--line);background:var(--glass);border-radius:999px;padding:9px 15px;font-size:13px;font-weight:600;white-space:nowrap;color:var(--muted)}.tabs button.active{background:var(--grad);border-color:transparent;color:#fff;box-shadow:var(--glow)}
.box{background:var(--glass);border:1px solid var(--line);border-radius:var(--r-lg);padding:16px;margin:12px 0}.box h3:first-child{margin-top:0}
.kv{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--line);font-size:14px}.kv:last-child{border:0}.kv b{font-variant-numeric:tabular-nums;font-weight:700}
.big{font-size:38px;font-weight:800;letter-spacing:-.03em;font-variant-numeric:tabular-nums;line-height:1.1}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.grid3{display:grid;grid-template-columns:.85fr 1.25fr 1fr;gap:8px}
.center .banner{text-align:left}.center .box{text-align:left}
label.f{display:block;font-size:12px;font-weight:600;color:var(--muted);margin:12px 0 6px}
input.in,select.in,textarea.in{width:100%;border:1px solid var(--line2);background:rgba(255,255,255,.05);color:var(--text);border-radius:var(--r-sm);padding:12px 14px;outline:0;transition:border-color .15s,box-shadow .15s}input.in:focus,select.in:focus,textarea.in:focus{border-color:var(--rose2);box-shadow:0 0 0 3px rgba(232,179,196,.15)}textarea.in{resize:vertical;line-height:1.4}select.in option{background:#241f27}
input[type=checkbox],input[type=radio]{accent-color:var(--rose3)}
input[type=file]::file-selector-button{border:0;background:var(--grad);color:#fff;font-weight:700;border-radius:10px;padding:8px 14px;margin-right:12px;cursor:pointer}
.sheetbg{position:fixed;inset:0;background:rgba(6,4,8,.66);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:20;display:flex;align-items:flex-end;justify-content:center;animation:fade .18s}@keyframes fade{from{opacity:0}}
.sheet{width:min(430px,100%);background:linear-gradient(180deg,#2a232d,#211c25);border:1px solid var(--line2);border-bottom:0;border-radius:28px 28px 0 0;padding:22px 20px max(24px,env(safe-area-inset-bottom));animation:up .26s cubic-bezier(.2,.8,.25,1);max-height:92dvh;overflow:auto;position:relative}
.sheet::before{content:"";display:block;width:38px;height:4px;border-radius:2px;background:var(--line2);margin:-10px auto 14px}
@keyframes up{from{transform:translateY(50px);opacity:0}}
.toast{position:fixed;left:50%;top:14px;transform:translate(-50%,-24px);background:rgba(38,31,41,.94);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--line2);color:#fff;padding:12px 18px;border-radius:16px;z-index:40;opacity:0;pointer-events:none;transition:.28s cubic-bezier(.2,.8,.25,1);max-width:min(400px,92vw);font-size:14px;font-weight:600;box-shadow:0 14px 40px -10px #000}.toast.show{opacity:1;transform:translate(-50%,0)}.toast.bad{border-color:rgba(236,138,144,.55)}
.status{font-size:11px;font-weight:700;border-radius:999px;padding:4px 10px;background:rgba(255,255,255,.1);color:#e2d6dc;white-space:nowrap}.status.good{background:rgba(130,216,162,.15);color:var(--ok)}.status.wait{background:rgba(241,202,138,.15);color:var(--warn)}.status.stop{background:rgba(236,138,144,.15);color:var(--bad)}
.bk{display:flex;gap:12px}.bk img{width:58px;height:58px;border-radius:16px;object-fit:cover;background:#2a232b}
.hist{display:flex;justify-content:space-between;gap:10px;padding:12px 0;border-bottom:1px solid var(--line);font-size:14px}.hist .amt{font-variant-numeric:tabular-nums;font-weight:700}.hist .amt.neg{color:#f2b6c6}.hist .amt.pos{color:var(--ok)}
.qr{background:#fff;border-radius:22px;padding:14px;width:224px;height:224px;margin:16px auto;display:block;box-shadow:0 20px 50px -18px rgba(232,179,196,.4)}
.lockmedia{background:linear-gradient(135deg,rgba(187,134,151,.22),rgba(60,42,56,.5));border:1px solid rgba(232,179,196,.22);border-radius:22px;padding:14px;margin:12px 0;max-width:86%}.lockmedia .blur{height:96px;border-radius:14px;background:repeating-linear-gradient(45deg,#5d4656,#5d4656 8px,#4b3846 8px,#4b3846 16px);display:grid;place-items:center;margin-bottom:12px;color:#fff}
.slots{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.slots .chip{text-align:center;padding:11px 4px}
.hidden{display:none}.center{text-align:center}.empty{padding:34px 10px;color:var(--dim);text-align:center}.sep{height:1px;background:var(--line);margin:12px 0}
.demo{border:1px dashed rgba(232,179,196,.35);border-radius:var(--r-md);padding:13px 15px;margin:16px 0;background:rgba(232,179,196,.04)}
details.faq{border-bottom:1px solid var(--line);padding:12px 0}details.faq summary{cursor:pointer;font-weight:700;list-style:none;display:flex;justify-content:space-between;gap:10px}details.faq summary::-webkit-details-marker{display:none}details.faq summary::after{content:"+";color:var(--rose);font-size:18px;line-height:1}details.faq[open] summary::after{content:"–"}details.faq p{margin:10px 0 0;color:var(--muted);font-size:14px}
@media(pointer:coarse){input,select,textarea{font-size:16px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}

.search{display:flex;align-items:center;gap:10px;background:var(--glass);border:1px solid var(--line2);border-radius:999px;padding:0 10px 0 16px;margin:0 0 12px;color:var(--muted)}.search input{flex:1;min-width:0;background:transparent;border:0;outline:0;padding:13px 0;color:var(--text)}.search:focus-within{border-color:var(--rose2);box-shadow:0 0 0 3px rgba(242,184,204,.14)}
.tabs button .cnt{margin-left:5px;font-size:12px;font-weight:700;opacity:.65}.tabs button.active .cnt{opacity:.9}
.tabs.tight{gap:4px}.tabs.tight button{padding:9px 11px;font-size:12.5px}
.xfilters{margin:0 0 14px;gap:10px;flex-wrap:nowrap}select.in.sort{width:auto;flex:none;max-width:48%;padding:8px 12px;font-size:13px;border-radius:999px}
.pc-extra{font-size:11.5px;color:var(--ok);font-weight:700}
.dot-online.busy{background:var(--warn)}.dot-online.off{background:#6d6169}
.nav button{min-width:0}
.xfilters .chips{flex-wrap:nowrap}.xfilters .chip{padding:7px 12px;font-size:12.5px}

.pc-voice{position:absolute;left:10px;top:10px;z-index:2;height:34px;padding:0 12px 0 9px;border-radius:999px;display:flex;align-items:center;gap:6px;background:rgba(20,16,22,.58);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.26);color:#fff;font-size:11.5px;font-weight:700;font-variant-numeric:tabular-nums}
.pc-voice.on{background:var(--grad);border-color:transparent;box-shadow:var(--glow)}
.pc-voice .wave{height:14px;flex:none;width:26px;gap:2px}.pc-voice .wave i{width:2px;background:#fff}
.pc-heart,.dot-online{z-index:2}

/* ===================== Desktop (>= 1000px): sidebar app ===================== */
.nav-brand,.nav-foot{display:none}
.prof{display:block}
.dgrid{display:block}
@media(min-width:1000px){
  body{padding:0}
  .app{max-width:none;min-height:100dvh;margin:0;border-radius:0;border:0;box-shadow:none;background:transparent;padding:0 0 0 272px;overflow:visible}
  .pg{max-width:1240px;margin:0 auto;padding:26px 48px 72px}
  .pg.narrow{max-width:800px}.pg-creator,.pg-admin{max-width:980px}
  /* sidebar */
  .nav{position:fixed;left:0;top:0;bottom:0;transform:none;width:272px;border-radius:0;border:0;border-right:1px solid var(--line);background:linear-gradient(180deg,rgba(26,20,29,.97),rgba(17,14,19,.97));-webkit-backdrop-filter:none;backdrop-filter:none;flex-direction:column;justify-content:flex-start;align-items:stretch;gap:4px;padding:26px 16px 20px;box-shadow:none}
  .nav-brand{display:block;padding:4px 14px 24px}.nav-brand .logo{font-size:32px}
  .nav button{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;gap:14px;flex:none;width:100%;font-size:15px;padding:13px 16px;border-radius:14px;color:var(--muted)}
  .nav button:hover:not(.active){background:var(--glass);color:var(--text)}
  .nav button.active{background:rgba(242,184,204,.13);color:var(--rose);box-shadow:inset 3px 0 0 var(--rose)}
  .nav-foot{display:block;margin-top:auto;padding:14px 14px 0;font-size:12px;color:var(--dim);line-height:1.5}
  /* header becomes a slim top bar: wallet on the right (brand lives in the sidebar) */
  .top{justify-content:flex-end;margin-bottom:6px}.top>div:first-child{display:none}
  .greet{margin:4px 2px 14px;font-size:14px}
  .hero{padding:34px 38px}.hero h2{font-size:34px}.hero p{font-size:16px;max-width:520px}
  .seg{max-width:420px}
  .section-title{font-size:22px}
  .cards{grid-template-columns:repeat(auto-fill,minmax(196px,1fr));gap:18px}
  .person-card{aspect-ratio:3/4.15}
  .search{max-width:560px}
  .xfilters{max-width:560px}
  /* profile: photo left, details right */
  .prof{display:grid;grid-template-columns:minmax(340px,460px) 1fr;gap:44px;align-items:start}
  .prof-hero{position:sticky;top:24px}
  .prof-info{padding-top:6px;max-width:560px}.prof-info .bio{font-size:18px;line-height:1.6}
  /* chats: list + conversation */
  .split{display:grid;grid-template-columns:330px 1fr;gap:28px;align-items:stretch;height:calc(100dvh - 128px);min-height:520px}
  .split-list{overflow:auto;padding-right:4px;min-height:0}.split-list h2{margin-top:0}
  .split-list .wide.sel{background:var(--glass2);border-color:rgba(242,184,204,.45)}
  .split-detail{min-width:0;max-width:780px;display:flex;flex-direction:column;min-height:0}
  .split-detail>*{flex:none}.split-detail>.msgs{flex:1;min-height:0;overflow-y:auto;padding:0 6px 8px}
  .split-detail .composer{position:static;margin-top:6px;background:none;padding:10px 0 0}
  .split-detail .chat-head>.iconbtn:first-child{display:none}
  /* dashboards */
  .dgrid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px;align-items:start}.dgrid .dwide{grid-column:1/-1}
  /* dialogs are centred cards, not bottom sheets */
  .sheetbg{align-items:center}
  .sheet{width:min(520px,92vw);border:1px solid var(--line2);border-radius:28px;max-height:86dvh;padding:26px 24px}
  .sheet::before{display:none}
  .toast{left:calc(50% + 136px)}
  /* calls: a calm centred card */
  .call{max-width:560px;margin:0 auto;overflow:hidden;border-radius:36px;padding:44px 24px;min-height:560px}
  .call::before{inset:0;transform:scale(1.4)}
  .qr{width:240px;height:240px}
}
/* desktop app (Electron) chrome */
.electron .nav-brand,.electron .top{-webkit-app-region:drag}
.electron .nav button,.electron .top button,.electron .top .wallet{-webkit-app-region:no-drag}
.plat-darwin .nav-brand{padding-top:30px}

/* ===================== Installed-app feel (phone) ===================== */
html{background:#0e0c10}
/* Only when installed full-screen: stops the rubber-band bounce. Never inside a browser tab or the Claude viewer,
   where blocking scroll chaining can stop swipes from scrolling the page around the app. */
html.standalone{overscroll-behavior-y:none}
.standalone body{touch-action:manipulation}
button,.nav,.chip,.pc-main,.person-card,.tabs{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
input,textarea,.bubble,.msgs{-webkit-user-select:text;user-select:text}
/* content runs under the status bar / notch when installed full-screen, so clear it */
.app{padding-top:max(22px,calc(env(safe-area-inset-top,0px) + 12px))}
.toast{top:calc(env(safe-area-inset-top,0px) + 14px)}
.top{padding-top:0}
@media(max-width:699px){.app{max-width:none}.nav{width:calc(100% - 24px);max-width:none}.sheet{width:100%}}
.install{display:flex;gap:12px;align-items:center;border-radius:var(--r-md);padding:12px 12px 12px 14px;margin:0 0 14px;background:linear-gradient(135deg,rgba(220,150,178,.2),rgba(60,40,56,.5));border:1px solid rgba(242,184,204,.3)}
.install .ico{width:40px;height:40px;border-radius:11px;flex:none;box-shadow:0 6px 16px -6px #000}
.install b{font-size:14px}.install .small{line-height:1.35}
.steps{margin:6px 0 0;padding:0;list-style:none;counter-reset:s}.steps li{counter-increment:s;display:flex;gap:12px;align-items:flex-start;padding:10px 0;border-bottom:1px solid var(--line);font-size:14.5px}.steps li:last-child{border:0}
.steps li::before{content:counter(s);flex:none;width:24px;height:24px;border-radius:50%;background:var(--grad);display:grid;place-items:center;font-size:12px;font-weight:800}
.steps .ic{display:inline;vertical-align:-4px}
.standalone .install-only-browser,.electron .install-only-browser{display:none}
@media(min-width:1000px){.install{max-width:560px}}

/* ===== Embedded in another page on a phone (e.g. the Claude artifact viewer) =====
   The frame may extend under Safari's toolbar or be taller than the screen, so nothing may depend on the
   bottom of the frame: tabs go to the top (sticky), dialogs appear inline at the top, no viewport-height minimums. */
@media(max-width:699px){
  .embedded #root{display:flex;flex-direction:column}
  .embedded #root>*{min-width:0}
  .embedded .app{min-height:0;padding-bottom:36px}
  .embedded .nav{order:-1;position:sticky;top:6px;left:auto;bottom:auto;transform:none;width:100%;margin:0 0 14px;padding:5px;border-radius:22px;z-index:6}
  .embedded .nav button{padding:7px 2px;font-size:10.5px;gap:2px}
  .embedded .nav .ic.lg{width:20px;height:20px}
  .embedded .sheetbg{order:-2;position:static;inset:auto;background:none;-webkit-backdrop-filter:none;backdrop-filter:none;display:block;padding:0 0 14px;animation:none}
  .embedded .sheet{width:100%;max-height:none;border:1px solid rgba(242,184,204,.5);border-radius:22px;padding:20px 18px;animation:none;box-shadow:0 20px 50px -14px #000,0 0 0 4px rgba(242,184,204,.08)}
  .embedded .sheet::before{display:none}
  .embedded .call{min-height:440px}
  .embedded .composer{bottom:8px}
}

/* identity filter + tags */
.tagchips{margin:-8px 0 18px}.xfilters+.tagchips{margin:-4px 0 14px}
.chip.tag{font-size:12px;padding:5px 11px;background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.18);color:#f1e6ec}
.chip.tagpick{display:inline-flex;gap:7px;align-items:center;cursor:pointer}.chip.tagpick input{margin:0}
label.adult{display:flex;gap:10px;align-items:flex-start;margin:16px 0 0;font-size:14.5px;font-weight:600}.label.adult input,label.adult input{margin-top:3px;width:18px;height:18px;flex:none}

.switchrow{display:flex;gap:14px;align-items:center;justify-content:space-between;margin:14px 0 4px;padding:12px 14px;border-radius:var(--r-md);background:var(--glass);border:1px solid var(--line);font-size:14.5px;cursor:pointer}
input.switch{-webkit-appearance:none;appearance:none;flex:none;width:50px;height:30px;border-radius:999px;background:rgba(255,255,255,.16);position:relative;transition:background .2s;cursor:pointer;margin:0}
input.switch::after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(0,0,0,.4);transition:transform .2s}
input.switch:checked{background:var(--grad)}input.switch:checked::after{transform:translateX(20px)}

/* Filters: one button + sheet instead of rows of chips */
.xbar{display:flex;gap:8px;align-items:center;margin:0 0 12px}.xbar .search{flex:1;min-width:0;margin:0}
.fbtn{flex:none;display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line2);background:var(--glass);border-radius:999px;padding:11px 15px;font-size:13.5px;font-weight:700;color:#e9dfe4}
.fbtn.on{border-color:transparent;background:var(--grad);color:#fff}
.fcount{min-width:18px;height:18px;border-radius:9px;background:rgba(0,0,0,.3);font-size:11px;display:inline-grid;place-items:center;padding:0 5px}
.fbar{display:flex;gap:8px;align-items:center;overflow-x:auto;margin:0 0 14px;scrollbar-width:none}.fbar::-webkit-scrollbar{display:none}
.fchips{display:flex;gap:6px;overflow-x:auto;margin:0 0 14px;scrollbar-width:none}.fchips::-webkit-scrollbar{display:none}
.fchip{display:inline-flex;align-items:center;gap:5px;flex:none;padding:6px 9px 6px 12px;font-size:12.5px;white-space:nowrap}.fchip .ic{width:13px;height:13px}
.fsheet h3{margin:18px 0 8px}
.tabs.tight button{flex:none;white-space:nowrap}
.cardprev{grid-template-columns:minmax(0,210px);justify-content:center;margin:0 0 12px}.cardprev .person-card:hover{transform:none}

/* Category pills: horizontal scroller, search icon first */
.catrow{display:flex;gap:8px;align-items:center;overflow-x:auto;margin:0 0 14px;padding:2px 0;scrollbar-width:none;-webkit-overflow-scrolling:touch}.catrow::-webkit-scrollbar{display:none}
.catsearch{flex:none;width:44px;height:44px;border-radius:999px;border:1px solid var(--line);background:var(--glass);display:grid;place-items:center;color:#e9dfe4}.catsearch .ic{width:20px;height:20px}
.catsep{flex:none;width:1px;height:28px;background:var(--line2);margin:0 2px}
.catpill{flex:none;white-space:nowrap;border:1.5px solid transparent;background:#25202a;border-radius:999px;padding:11px 17px;font-size:14px;font-weight:600;color:#f1e7ec}
.catpill.on{border-color:#e07d9e;background:rgba(224,125,158,.12);color:#fff}
.pc-cat{display:block;font-size:11.5px;font-weight:600;color:#eadfe5;opacity:.85;margin-top:2px}
.catchip{background:rgba(224,125,158,.12);border-color:rgba(224,125,158,.4);color:#f6dbe5}
.catrow .fbtn{padding:10px 14px}.xbar .search{margin:0}

/* Highlight carousel on Discover */
.hcar{position:relative;margin:0 0 16px;border-radius:var(--r-lg);overflow:hidden;box-shadow:0 14px 30px -16px #000;background:#1b171d}
.hcar-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}.hcar-track::-webkit-scrollbar{display:none}
.hslide{flex:0 0 100%;scroll-snap-align:start;border:0;padding:0;background:none;display:block;aspect-ratio:16/9;cursor:pointer}
.hslide img{width:100%;height:100%;object-fit:cover;display:block;-webkit-user-drag:none;user-select:none}
.hdots{position:absolute;left:0;right:0;bottom:6px;display:flex;justify-content:center;gap:0;pointer-events:none}
.hdot{pointer-events:auto;width:24px;height:20px;padding:0;border:0;background:none;display:grid;place-items:center}
.hdot::before{content:"";width:14px;height:4px;border-radius:2px;background:rgba(255,255,255,.45);transition:width .2s,background .2s}
.hdot.on::before{background:#fff;width:24px}
@media (min-width:1000px){.hcar{max-width:880px}}

/* Explore rails: sliding rows of profiles */
.railsec{margin:4px 0 20px}.railhead{align-items:flex-end;margin:0 0 10px}.railhead .section-title{margin:0}
.seeall{display:inline-flex;align-items:center;gap:2px;border:0;background:none;color:var(--muted,#b9a9b2);font-size:13px;font-weight:700;padding:6px 2px}.seeall .ic.flip{transform:scaleX(-1);width:16px;height:16px}
.rail{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none;-webkit-overflow-scrolling:touch;margin:0 -18px;padding:2px 18px 6px;overscroll-behavior-x:contain}.rail::-webkit-scrollbar{display:none}
.railitem{flex:0 0 150px;scroll-snap-align:start}.railitem .person-card{width:100%}
.rail.feature .railitem{flex-basis:230px}
.rail .pc-extra{font-weight:700}
@media (min-width:1000px){.rail{margin:0;padding:2px 0 8px}.railitem{flex-basis:196px}.rail.feature .railitem{flex-basis:260px}}
.rail{scroll-padding-left:18px}
.rail .pc-cat{display:none}.rail.feature .pc-cat{display:block}
.rail .pc-area{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.rail .pc-area .ic{flex:none}
.rail .pc-info strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (min-width:1000px){.rail{scroll-padding-left:0}}

/* ===== Plum glow theme: deep violet, luminous ribbons, glass cards with a rose glow ===== */
:root{
  --ink:#0f0a1c;--bg:#150d26;--bg2:#1e1233;
  --glass:rgba(255,255,255,.06);--glass2:rgba(255,255,255,.1);--line:rgba(255,196,232,.14);--line2:rgba(255,196,232,.28);
  --muted:#c9b9d4;--dim:#9c8aab;--rose:#f8c4de;--rose2:#ec9ec6;--rose3:#c07aa6;--deep:#9a5b86;
  --grad:linear-gradient(135deg,#f593c1 0%,#b45aa8 100%);--glow:0 10px 28px -8px rgba(232,122,192,.62);
}
body{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 430 932' preserveAspectRatio='xMidYMid slice'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='1' x2='1' y2='0'%3E%3Cstop offset='0' stop-color='#ff9ad0' stop-opacity='0'/%3E%3Cstop offset='.5' stop-color='#ff8cc6'/%3E%3Cstop offset='1' stop-color='#a77bff' stop-opacity='0'/%3E%3C/linearGradient%3E%3Cfilter id='s'%3E%3CfeGaussianBlur stdDeviation='1.1'/%3E%3C/filter%3E%3Cfilter id='w'%3E%3CfeGaussianBlur stdDeviation='14'/%3E%3C/filter%3E%3C/defs%3E%3Cg fill='none' stroke='url(#g)' stroke-linecap='round'%3E%3Cpath d='M-60 760 C 80 690, 150 860, 300 900 S 430 940 500 900' stroke-width='46' opacity='.28' filter='url(#w)'/%3E%3Cpath d='M520 60 C 400 20, 320 170, 230 130' stroke-width='40' opacity='.22' filter='url(#w)'/%3E%3Cg filter='url(#s)'%3E%3Cpath d='M-60 700 C 60 640.0, 130 820.0, 270 880.0 S 400 930.0 480 880' stroke-width='1.2' opacity='0.55'/%3E%3Cpath d='M-60 709 C 60 645.4, 130 824.5, 270 882.7 S 400 931.8 480 889' stroke-width='1.7' opacity='0.51'/%3E%3Cpath d='M-60 718 C 60 650.8, 130 829.0, 270 885.4 S 400 933.6 480 898' stroke-width='2.2' opacity='0.47'/%3E%3Cpath d='M-60 727 C 60 656.2, 130 833.5, 270 888.1 S 400 935.4 480 907' stroke-width='1.2' opacity='0.43'/%3E%3Cpath d='M-60 736 C 60 661.6, 130 838.0, 270 890.8 S 400 937.2 480 916' stroke-width='1.7' opacity='0.39'/%3E%3Cpath d='M-60 745 C 60 667.0, 130 842.5, 270 893.5 S 400 939.0 480 925' stroke-width='2.2' opacity='0.35'/%3E%3Cpath d='M-60 754 C 60 672.4, 130 847.0, 270 896.2 S 400 940.8 480 934' stroke-width='1.2' opacity='0.31'/%3E%3Cpath d='M-60 763 C 60 677.8, 130 851.5, 270 898.9 S 400 942.6 480 943' stroke-width='1.7' opacity='0.27'/%3E%3Cpath d='M-60 772 C 60 683.2, 130 856.0, 270 901.6 S 400 944.4 480 952' stroke-width='2.2' opacity='0.23'/%3E%3Cpath d='M520 40 C 420 20, 330 150.0, 250 120.0 S 200 -20 120 -40' stroke-width='1.0' opacity='0.45'/%3E%3Cpath d='M520 48 C 420 28, 330 156.4, 250 129.6 S 200 -20 120 -40' stroke-width='1.5' opacity='0.41'/%3E%3Cpath d='M520 56 C 420 36, 330 162.8, 250 139.2 S 200 -20 120 -40' stroke-width='2.0' opacity='0.37'/%3E%3Cpath d='M520 64 C 420 44, 330 169.2, 250 148.8 S 200 -20 120 -40' stroke-width='1.0' opacity='0.33'/%3E%3Cpath d='M520 72 C 420 52, 330 175.6, 250 158.4 S 200 -20 120 -40' stroke-width='1.5' opacity='0.29'/%3E%3Cpath d='M520 80 C 420 60, 330 182.0, 250 168.0 S 200 -20 120 -40' stroke-width='2.0' opacity='0.25'/%3E%3Cpath d='M520 88 C 420 68, 330 188.4, 250 177.6 S 200 -20 120 -40' stroke-width='1.0' opacity='0.21'/%3E%3Cpath d='M520 96 C 420 76, 330 194.8, 250 187.2 S 200 -20 120 -40' stroke-width='1.5' opacity='0.17'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E") center/cover no-repeat fixed,radial-gradient(900px 560px at 88% -6%,#5b2480 0%,transparent 62%),radial-gradient(820px 560px at -12% 106%,#8c2f72 0%,transparent 58%),linear-gradient(180deg,#1b1030 0%,#0f0a1c 100%);background-attachment:fixed}
.app{background:transparent}
@media(min-width:700px){.app{background:rgba(18,10,34,.55);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}}
.nav{background:rgba(30,16,52,.74);border-color:var(--line2);box-shadow:0 10px 40px -10px rgba(10,4,24,.8),0 0 30px -10px rgba(232,122,192,.4)}
@media(min-width:1000px){.nav{background:linear-gradient(180deg,rgba(28,15,48,.96),rgba(16,9,30,.97))}.app{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}}
.box,.search,.chip,.catpill,.catsearch,.fbtn,.tabs button,.seg{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.box{background:linear-gradient(180deg,rgba(255,255,255,.075),rgba(255,255,255,.035));box-shadow:0 18px 40px -26px rgba(0,0,0,.8)}
.catpill{background:rgba(255,255,255,.07);border-color:var(--line)}.catpill.on{background:rgba(236,158,198,.16);border-color:#f08bbd;box-shadow:0 0 18px -6px rgba(240,139,189,.7)}
.person-card{background:linear-gradient(160deg,#3b2159,#241238);box-shadow:0 16px 34px -18px #000,0 0 0 1px rgba(248,168,214,.28),0 0 26px -8px rgba(220,108,180,.35)}
.sheet{background:linear-gradient(180deg,#2e1a4a,#1f1235)}
.hcar{box-shadow:0 18px 40px -18px #000,0 0 0 1px rgba(248,168,214,.3),0 0 34px -10px rgba(220,108,180,.45);background:#1e1233}
.railhead .section-title,.pg>h2{font-family:var(--display);font-weight:600;letter-spacing:-.01em}
.top .logo,.logo{text-shadow:0 0 24px rgba(248,168,214,.35)}

/* Vibe tiles: face-free cards in the style of the "Find your vibe" artwork */
.vibes{margin:6px 0 18px}.vibes .railhead{margin-bottom:10px}
.vibe{position:relative;display:block;width:100%;aspect-ratio:3/4.1;border-radius:26px;overflow:hidden;border:1px solid rgba(248,168,214,.4);background:#241238;padding:0;text-align:center;color:var(--text);box-shadow:0 16px 34px -18px #000,0 0 28px -8px rgba(220,108,180,.4)}
.vibe .vart{position:absolute;left:0;right:0;top:0;height:60%;width:100%;object-fit:cover;display:block}
.vibe .vfade{position:absolute;left:0;right:0;top:34%;height:30%;background:linear-gradient(180deg,transparent,rgba(36,18,56,.96))}
.vibe .vbody{position:absolute;left:0;right:0;bottom:0;top:52%;padding:0 8px 10px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:3px;background:linear-gradient(180deg,rgba(36,18,56,0),rgba(36,18,56,.96) 30%)}
.vibe .vwave{height:18px;margin-bottom:2px;opacity:.9}
.vibe strong{font-family:var(--display);font-weight:600;font-size:16px;line-height:1.1}.vibe small{font-size:11.5px;line-height:1.25;color:#e9dbef;min-height:2.5em;display:block}
.vibe .vprice{display:inline-flex;align-items:center;gap:5px;margin-top:3px;border:1px solid var(--line2);background:rgba(255,255,255,.08);border-radius:999px;padding:5px 10px;font-size:12px;font-weight:700}
.vibe .vprice .ic{width:14px;height:14px}
.vibe .vdot{position:absolute;right:11px;top:11px;width:11px;height:11px;border-radius:50%;background:#62d98a;box-shadow:0 0 0 3px rgba(98,217,138,.25)}
.vibe:active{transform:scale(.98)}
/* tweaks: compact vibe price pill; carousel dots sit below the banner so they never cover its text */
.vibe .vprice{white-space:nowrap;font-size:11px;padding:4px 9px;gap:4px}.vibe .vprice .ic{width:13px;height:13px}
.vibe small{font-size:11px}
.hcar{overflow:visible;background:none;box-shadow:none;border-radius:0}
.hcar-track{border-radius:var(--r-lg);box-shadow:0 18px 40px -18px #000,0 0 0 1px rgba(248,168,214,.3),0 0 34px -10px rgba(220,108,180,.45);background:#1e1233}
.hdots{position:static;padding:8px 0 0}.hdot::before{background:rgba(255,255,255,.35)}.hdot.on::before{background:#f4a6cc}

/* Headlines: a first-person hook over the card art (face or cover) */
.pc-hook{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-family:var(--display);font-weight:600;font-size:15px;line-height:1.22;color:#fff;margin:0 0 5px;text-shadow:0 2px 14px rgba(0,0,0,.7)}
.rail .pc-hook{font-size:13.5px;-webkit-line-clamp:2}.rail.feature .pc-hook{font-size:16px;-webkit-line-clamp:3}
.person-card.cover .pc-shade{background:linear-gradient(180deg,transparent 30%,rgba(15,8,28,.55) 62%,rgba(15,8,28,.9) 100%)}
.person-card.cover .pc-main img{object-position:center}
.phero-hook{font-family:var(--display);font-weight:600;font-size:19px;line-height:1.25;color:#fff;margin:4px 0 6px;text-shadow:0 2px 16px rgba(0,0,0,.7)}
/* photo cards: keep the headline compact so it never sits over the face; cover cards can go big */
.person-card:not(.cover) .pc-hook{font-size:13.5px;-webkit-line-clamp:2;margin-bottom:3px}
.pc-info:has(.pc-hook) .pc-cat{display:none}
.person-card.cover .pc-hook{font-size:17px}

/* ===== Cards: big picture, nothing written over it; caption underneath ===== */
.person-card{aspect-ratio:auto;display:flex;flex-direction:column;border-radius:22px;background:linear-gradient(180deg,#2c1748,#1b0f2e);overflow:hidden}
.person-card:hover{transform:none}
.pc-photo{position:relative;aspect-ratio:3/4;overflow:hidden;background:#241238;flex:none}
.pc-photo .pc-main{position:absolute;inset:0}
.pc-shade{display:none}
.person-card .pc-info{position:static;display:flex;flex-direction:column;gap:2px;pointer-events:auto;padding:9px 11px 11px;border:0;background:none;text-align:left;color:var(--text);width:100%;cursor:pointer;min-width:0}
.person-card .pc-info strong{font-size:15.5px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pc-line{display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:12.5px;min-width:0}
.pc-line .pc-area{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px;color:#d9c9e2}.pc-line .pc-area span{overflow:hidden;text-overflow:ellipsis}.pc-line .pc-area .ic{flex:none}
.pc-line .rate{flex:none;font-size:12.5px}
.person-card .pc-hook,.person-card:not(.cover) .pc-hook,.person-card.cover .pc-hook,.rail .pc-hook,.rail.feature .pc-hook{font-family:var(--display);font-weight:600;font-size:12.5px;line-height:1.25;color:#f4e6f8;text-shadow:none;margin:3px 0 0;-webkit-line-clamp:2;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}
.person-card .pc-cat{display:none}
.person-card .pc-extra{font-size:11.5px;margin-top:1px}
.person-card.cover .pc-main img{object-position:center}
.pc-photo .pc-heart{right:8px;bottom:8px}
.railitem{flex-basis:156px}.rail.feature .railitem{flex-basis:238px}
@media (min-width:1000px){.person-card{aspect-ratio:auto}.railitem{flex-basis:200px}.rail.feature .railitem{flex-basis:270px}}

/* Short chats (e.g. Mimi) fill the screen so the message box stays at the bottom, same as long chats */
.msgs{min-height:calc(100vh - 400px);min-height:calc(100dvh - 400px)}

/* Guided demo: Mimi explains, then a full-page practice chat that looks like the real one */
.tourpage{position:fixed;inset:0;z-index:40;display:flex;flex-direction:column;background:linear-gradient(180deg,#1f1238,#12081f);color:#fff;animation:fade .18s}
.tourpage>*{width:min(520px,100%);margin-left:auto;margin-right:auto;padding-left:16px;padding-right:16px}
.tp-top{flex:none;padding-top:max(14px,env(safe-area-inset-top));padding-bottom:10px;border-bottom:1px solid rgba(255,196,232,.18);align-items:center;gap:10px}
.tp-msgs{flex:1;min-height:0;overflow-y:auto;padding-bottom:12px}
.tp-foot{flex:none;padding-top:10px;padding-bottom:max(14px,env(safe-area-inset-bottom));background:linear-gradient(transparent,#12081f 25%)}
.tour-wallet{font-size:1.05rem;margin-left:auto;white-space:nowrap}
.guide-av{flex:none;width:44px;height:44px;border-radius:50%;object-fit:cover;background:#2a1d3d;border:2px solid rgba(255,196,232,.55)}
.tp-tip{position:sticky;top:0;z-index:2;display:flex;gap:10px;align-items:flex-start;margin:10px 0;padding:10px 12px;border-radius:16px;background:rgba(60,28,98,.96);border:1px solid rgba(255,196,232,.35);line-height:1.4;box-shadow:0 8px 20px -12px #000}
.tp-tip .guide-av{width:34px;height:34px}
.tp-rules ol{margin:0;padding-left:20px}.tp-rules li{margin:5px 0}
.tp-picks{display:flex;gap:10px;margin:12px 0}
.tp-pick{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:14px 8px;border-radius:20px;border:1.5px solid rgba(255,196,232,.3);background:rgba(255,255,255,.07);color:#fff;font:inherit;cursor:pointer}
.tp-pick img{width:84px;height:84px;border-radius:50%;object-fit:cover;border:2px solid #ff9ad0}.tp-pick b{font-size:1.05rem}.tp-pick small{opacity:.75}
.tp-chat .meta{margin-bottom:4px}

/* Changeable AI buddy (Mimi, Luna, Rio): same chat */
.buddies{display:flex;gap:8px;margin:8px 0 4px}
.buddy{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 6px;border-radius:18px;border:1.5px solid rgba(255,196,232,.2);background:rgba(255,255,255,.06);color:#fff;font:inherit;cursor:pointer}
.buddy img{width:52px;height:52px;border-radius:50%;object-fit:cover;border:2px solid transparent}
.buddy b{font-size:.95rem}.buddy small{font-size:.72rem;opacity:.75;text-align:center;line-height:1.2}
.buddy.on{border-color:#ff9ad0;background:rgba(255,154,208,.16)}.buddy.on img{border-color:#ff9ad0}

/* Voice notes tab (Explore) */
.vdrops{display:flex;flex-direction:column;gap:10px;margin-top:4px}
.vdrop{display:flex;gap:12px;align-items:center;background:rgba(255,255,255,.07);border:1px solid rgba(255,196,232,.2);border-radius:20px;padding:10px 12px 10px 10px}
.vd-pic{position:relative;flex:none;width:68px;height:68px;border-radius:16px;overflow:hidden;padding:0;border:0;background:#2a1d3d;cursor:pointer}.vd-pic img{width:100%;height:100%;object-fit:cover;display:block}
.vd-body{flex:1;min-width:0}.vd-who{font-size:.8rem;opacity:.75}.vd-title{font-weight:700;line-height:1.25;margin:1px 0 4px}
.vd-meta{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.vd-meta .catchip{font-size:.7rem;padding:2px 8px}
.vd-wave{margin-top:6px;opacity:.7;max-height:20px;overflow:hidden}
.vd-btn{flex:none;display:inline-flex;align-items:center;gap:6px;border:0;border-radius:999px;padding:10px 14px;font:inherit;font-weight:700;color:#fff;background:linear-gradient(135deg,#d2559a,#8f4cc0);cursor:pointer}
.vd-btn.vplay{background:rgba(255,255,255,.14);border:1px solid rgba(255,196,232,.4)}.vd-btn.vplay.on{background:linear-gradient(135deg,#d2559a,#8f4cc0)}

/* Bulletin board */
.vd-cap{font-size:.85rem;opacity:.85;line-height:1.3;margin:0 0 5px}
.vdrop.onboard{padding-left:14px}.board-h{margin:18px 0 4px}
.bb-badge{position:absolute;left:8px;bottom:8px;z-index:2;font-size:.7rem;font-weight:700;padding:3px 9px;border-radius:999px;background:rgba(20,8,36,.78);border:1px solid rgba(255,196,232,.45);color:#fff}

/* 3-second loops over card pictures */
.pc-main{position:relative}.phero{position:relative}
.pc-clip{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;border-radius:inherit}
.clip-prev{display:flex;gap:10px;align-items:center;margin:8px 0}.clip-prev video,.clip-prev img{width:96px;height:96px;object-fit:cover;border-radius:14px;border:1px solid rgba(255,196,232,.3)}

/* Set your price: live validation + paused services + ringing */
.rate-f{margin:0 0 14px}.rate-f.paused .rate-in{border-color:#f0b35a}.rate-err{min-height:1.1em;margin-top:2px;font-weight:600}.rate-in[aria-invalid="true"]{border-color:#ff7a90}
#rates-save:disabled{opacity:.45;cursor:not-allowed}
.banner.warn{border-color:rgba(240,179,90,.55)}
.timer.ringing{animation:ringpulse 1.2s ease-in-out infinite}@keyframes ringpulse{50%{opacity:.45}}

/* FAQ cards */
.faqsec{margin:22px 0 8px}.faq-swipe .flip{transform:scaleX(-1)}.faq-for{font-style:italic;font-weight:500}.faq-swipe{display:inline-flex;align-items:center;gap:4px}
.faqrail{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;margin:8px -16px 0;padding:2px 16px 10px;scrollbar-width:none;-webkit-overflow-scrolling:touch}.faqrail::-webkit-scrollbar{display:none}
.faqtile{flex:none;width:min(74vw,300px);aspect-ratio:278/232;padding:0;border:1px solid rgba(255,196,232,.25);border-radius:22px;overflow:hidden;scroll-snap-align:start;background:#1b0f31;cursor:pointer;color:#fff;font:inherit;text-align:left;box-shadow:0 14px 28px -18px #000}
.faqtile img{width:100%;height:100%;object-fit:cover;display:block}
.faqtile.text{background:radial-gradient(circle at 88% 0%,rgba(190,120,255,.5),transparent 55%),radial-gradient(circle at 10% 100%,rgba(255,120,200,.28),transparent 50%),linear-gradient(160deg,#2c1560,#150a2c);padding:16px}
.ft-body{display:flex;flex-direction:column;height:100%}.ft-ico{color:#ffc4e8;filter:drop-shadow(0 0 8px rgba(255,150,220,.6))}.ft-ico svg{width:32px;height:32px}
.ft-body b{font-size:1.25rem;line-height:1.15;margin:10px 0 8px}.ft-body small{font-size:.92rem;line-height:1.4;opacity:.92}
.faq-hero{width:100%;border-radius:18px;margin:0 0 10px;display:block}

/* Rate picker (wheels) */
.rd{margin:6px 0 4px}.rdtabs{display:inline-flex;margin:0 auto 14px;width:auto}
.wheels{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.wcol{display:flex;flex-direction:column;align-items:center;text-align:center;min-width:0;transition:opacity .2s}
.wh{display:flex;flex-direction:column;align-items:center;gap:1px;min-height:62px}.wh svg{width:22px;height:22px;opacity:.85}.wh b{font-size:.92rem}.wh small{font-size:.72rem;opacity:.7}
.wwrap{position:relative;width:100%;height:200px;margin:4px 0}
.wheel{height:200px;overflow-y:auto;scroll-snap-type:y mandatory;padding:80px 0;scrollbar-width:none;-webkit-mask-image:linear-gradient(transparent,#000 28%,#000 72%,transparent);mask-image:linear-gradient(transparent,#000 28%,#000 72%,transparent);outline:none;overscroll-behavior:contain}.wheel::-webkit-scrollbar{display:none}
.wi{height:40px;line-height:40px;scroll-snap-align:center;font-size:1.05rem;opacity:.5;font-variant-numeric:tabular-nums}.wi.sel{opacity:1;font-weight:800;font-size:1.2rem}
.wsel{position:absolute;left:3px;right:3px;top:80px;height:40px;border-radius:999px;border:1.5px solid rgba(255,196,232,.7);background:rgba(255,154,208,.12);pointer-events:none}
.wheel:focus-visible+.wsel{box-shadow:0 0 0 3px rgba(255,196,232,.4)}
.wmin{font-size:.7rem}
.wcol.off .wheel{opacity:.25;pointer-events:none}.wcol.off .wsel{opacity:.3}.wcol.off .wh{opacity:.6}
.swt{display:inline-flex;align-items:center;gap:7px;cursor:pointer;margin-top:6px;font-size:.85rem}.swt input{position:absolute;opacity:0;width:1px;height:1px}
.swt .knob{width:38px;height:22px;border-radius:999px;background:rgba(255,255,255,.2);position:relative;transition:background .2s;flex:none}.swt .knob::after{content:"";position:absolute;left:3px;top:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .2s}
.swt input:checked+.knob{background:linear-gradient(135deg,#e0629f,#8f4cc0)}.swt input:checked+.knob::after{transform:translateX(16px)}.swt input:focus-visible+.knob{box-shadow:0 0 0 3px rgba(255,196,232,.5)}
.srow{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-top:1px solid rgba(255,196,232,.15)}.srow small{display:block}
.rdsum{margin-top:12px;padding:12px;border-radius:16px;border:1px solid rgba(255,196,232,.25);background:rgba(20,8,36,.55)}
.rdgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:8px}.rdgrid div{display:flex;flex-direction:column}.rdgrid small{font-size:.72rem;opacity:.7}.rdgrid b{font-size:1.15rem}
.moreprices{margin:12px 0 4px}.moreprices summary{cursor:pointer;font-weight:700;padding:6px 0}

/* ===== Page background: deep navy to magenta glow, with silk light ribbons (see tools/make-background.py) ===== */
body{background:linear-gradient(180deg,rgba(10,4,24,.22),rgba(10,4,24,.58)) fixed,url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 430 932' preserveAspectRatio='xMidYMid slice'%3E%3Cdefs%3E%3ClinearGradient id='base' x1='0' y1='0' x2='0.35' y2='1'%3E%3Cstop offset='0' stop-color='%23120a30'/%3E%3Cstop offset='.45' stop-color='%23240e4a'/%3E%3Cstop offset='1' stop-color='%234d1253'/%3E%3C/linearGradient%3E%3CradialGradient id='gp' cx='.5' cy='.5' r='.5'%3E%3Cstop offset='0' stop-color='%23ff5fa8' stop-opacity='.5'/%3E%3Cstop offset='1' stop-color='%23ff5fa8' stop-opacity='0'/%3E%3C/radialGradient%3E%3CradialGradient id='gv' cx='.5' cy='.5' r='.5'%3E%3Cstop offset='0' stop-color='%238a4dff' stop-opacity='.85'/%3E%3Cstop offset='1' stop-color='%238a4dff' stop-opacity='0'/%3E%3C/radialGradient%3E%3CradialGradient id='gm' cx='.5' cy='.5' r='.5'%3E%3Cstop offset='0' stop-color='%23e044b8' stop-opacity='.6'/%3E%3Cstop offset='1' stop-color='%23d63fb0' stop-opacity='0'/%3E%3C/radialGradient%3E%3CradialGradient id='go' cx='.5' cy='.5' r='.5'%3E%3Cstop offset='0' stop-color='%23ff9a6b' stop-opacity='.3'/%3E%3Cstop offset='1' stop-color='%23ff9a6b' stop-opacity='0'/%3E%3C/radialGradient%3E%3ClinearGradient id='silk' x1='0' y1='1' x2='1' y2='0'%3E%3Cstop offset='0' stop-color='%23ff7cc0' stop-opacity='.05'/%3E%3Cstop offset='.5' stop-color='%23ff8fd0' stop-opacity='.62'/%3E%3Cstop offset='1' stop-color='%239a6bff' stop-opacity='.08'/%3E%3C/linearGradient%3E%3ClinearGradient id='silk2' x1='1' y1='1' x2='0' y2='0'%3E%3Cstop offset='0' stop-color='%23ffb07a' stop-opacity='.28'/%3E%3Cstop offset='.55' stop-color='%23ff6fb0' stop-opacity='.22'/%3E%3Cstop offset='1' stop-color='%239a6bff' stop-opacity='.05'/%3E%3C/linearGradient%3E%3ClinearGradient id='edge' x1='0' y1='1' x2='1' y2='0'%3E%3Cstop offset='0' stop-color='%23ffd0ea' stop-opacity='0'/%3E%3Cstop offset='.5' stop-color='%23ffd9ee' stop-opacity='.95'/%3E%3Cstop offset='1' stop-color='%23d2b8ff' stop-opacity='0'/%3E%3C/linearGradient%3E%3Cfilter id='b6' x='-20%25' y='-20%25' width='140%25' height='140%25'%3E%3CfeGaussianBlur stdDeviation='7'/%3E%3C/filter%3E%3Cfilter id='b1'%3E%3CfeGaussianBlur stdDeviation='.9'/%3E%3C/filter%3E%3Cfilter id='b2'%3E%3CfeGaussianBlur stdDeviation='2'/%3E%3C/filter%3E%3C/defs%3E%3Crect width='430' height='932' fill='url(%23base)'/%3E%3Cellipse cx='410' cy='930' rx='470' ry='400' fill='url(%23gp)'/%3E%3Cellipse cx='430' cy='0' rx='360' ry='330' fill='url(%23gv)'/%3E%3Cellipse cx='-20' cy='900' rx='360' ry='300' fill='url(%23gm)'/%3E%3Cellipse cx='430' cy='560' rx='240' ry='300' fill='url(%23go)'/%3E%3Cellipse cx='0' cy='60' rx='320' ry='260' fill='url(%23gv)' opacity='.7'/%3E%3Cellipse cx='430' cy='330' rx='200' ry='260' fill='url(%23gm)' opacity='.8'/%3E%3Cg filter='url(%23b6)'%3E%3Cpath d='M-40 932 L-40 650 C 40 610 120 700 190 800 C 240 870 330 930 430 932 Z' fill='url(%23silk)'/%3E%3Cpath d='M430 -20 L430 230 C 360 200 300 125 240 62 C 210 30 170 0 150 -20 Z' fill='url(%23silk)'/%3E%3Cpath d='M430 560 C 385 640 362 742 300 834 C 268 882 220 920 170 932 L430 932 Z' fill='url(%23silk2)'/%3E%3C/g%3E%3Cg fill='none' stroke='url(%23edge)' stroke-linecap='round'%3E%3Cg filter='url(%23b2)' opacity='.7'%3E%3Cpath d='M-40 650 C 40 610 120 700 190 800 C 240 870 330 930 430 932' stroke-width='3'/%3E%3Cpath d='M430 230 C 360 200 300 125 240 62 C 210 30 170 0 150 -20' stroke-width='3'/%3E%3Cpath d='M430 560 C 385 640 362 742 300 834 C 268 882 220 920 170 932' stroke-width='3'/%3E%3C/g%3E%3Cg filter='url(%23b1)'%3E%3Cpath d='M-40 640 C 40 600.0 120 690.0 190 792.0 C 240 862.0 330 924.0 430 930.0' stroke-width='1.0' opacity='0.62'/%3E%3Cpath d='M-40 649 C 40 608.1 120 697.2 190 796.5 C 240 864.7 330 924.9 430 930.45' stroke-width='1.5' opacity='0.57'/%3E%3Cpath d='M-40 658 C 40 616.2 120 704.4 190 801.0 C 240 867.4 330 925.8 430 930.9' stroke-width='2.0' opacity='0.52'/%3E%3Cpath d='M-40 667 C 40 624.3 120 711.6 190 805.5 C 240 870.1 330 926.7 430 931.35' stroke-width='1.0' opacity='0.47'/%3E%3Cpath d='M-40 676 C 40 632.4 120 718.8 190 810.0 C 240 872.8 330 927.6 430 931.8' stroke-width='1.5' opacity='0.42'/%3E%3Cpath d='M-40 685 C 40 640.5 120 726.0 190 814.5 C 240 875.5 330 928.5 430 932.25' stroke-width='2.0' opacity='0.37'/%3E%3Cpath d='M-40 694 C 40 648.6 120 733.2 190 819.0 C 240 878.2 330 929.4 430 932.7' stroke-width='1.0' opacity='0.32'/%3E%3Cpath d='M-40 703 C 40 656.7 120 740.4 190 823.5 C 240 880.9 330 930.3 430 933.15' stroke-width='1.5' opacity='0.27'/%3E%3Cpath d='M-40 712 C 40 664.8 120 747.6 190 828.0 C 240 883.6 330 931.2 430 933.6' stroke-width='2.0' opacity='0.22'/%3E%3Cpath d='M430 236.0 C 360 206.0 300 130.0 240 70.0 C 210 36 170 6 150 -14' stroke-width='1.0' opacity='0.62'/%3E%3Cpath d='M430 239.2 C 360 210.8 300 136.4 240 77.2 C 210 44 170 14 150 -6' stroke-width='1.5' opacity='0.57'/%3E%3Cpath d='M430 242.4 C 360 215.6 300 142.8 240 84.4 C 210 52 170 22 150 2' stroke-width='2.0' opacity='0.52'/%3E%3Cpath d='M430 245.6 C 360 220.4 300 149.2 240 91.6 C 210 60 170 30 150 10' stroke-width='1.0' opacity='0.47'/%3E%3Cpath d='M430 248.8 C 360 225.2 300 155.6 240 98.8 C 210 68 170 38 150 18' stroke-width='1.5' opacity='0.42'/%3E%3Cpath d='M430 252.0 C 360 230.0 300 162.0 240 106.0 C 210 76 170 46 150 26' stroke-width='2.0' opacity='0.37'/%3E%3Cpath d='M430 255.2 C 360 234.8 300 168.4 240 113.2 C 210 84 170 54 150 34' stroke-width='1.0' opacity='0.32'/%3E%3Cpath d='M430 258.4 C 360 239.6 300 174.8 240 120.4 C 210 92 170 62 150 42' stroke-width='1.5' opacity='0.27'/%3E%3Cpath d='M430 566.0 C 385 646.0 362 748.0 300 840.0 C 268 888.0 220 924.0 170 932' stroke-width='1.0' opacity='0.62'/%3E%3Cpath d='M430 571.4 C 385 650.5 362 751.6 300 842.7 C 268 889.8 220 924.9 170 932' stroke-width='1.5' opacity='0.57'/%3E%3Cpath d='M430 576.8 C 385 655.0 362 755.2 300 845.4 C 268 891.6 220 925.8 170 932' stroke-width='2.0' opacity='0.52'/%3E%3Cpath d='M430 582.2 C 385 659.5 362 758.8 300 848.1 C 268 893.4 220 926.7 170 932' stroke-width='1.0' opacity='0.47'/%3E%3Cpath d='M430 587.6 C 385 664.0 362 762.4 300 850.8 C 268 895.2 220 927.6 170 932' stroke-width='1.5' opacity='0.42'/%3E%3Cpath d='M430 593.0 C 385 668.5 362 766.0 300 853.5 C 268 897.0 220 928.5 170 932' stroke-width='2.0' opacity='0.37'/%3E%3Cpath d='M430 598.4 C 385 673.0 362 769.6 300 856.2 C 268 898.8 220 929.4 170 932' stroke-width='1.0' opacity='0.32'/%3E%3C/g%3E%3C/g%3E%3Ccircle cx='139' cy='141' r='0.7' fill='%23fff' opacity='0.29'/%3E%3Ccircle cx='230' cy='341' r='0.7' fill='%23fff' opacity='0.70'/%3E%3Ccircle cx='92' cy='80' r='1.6' fill='%23fff' opacity='0.28'/%3E%3Ccircle cx='39' cy='396' r='0.7' fill='%23fff' opacity='0.72'/%3E%3Ccircle cx='271' cy='543' r='0.7' fill='%23fff' opacity='0.54'/%3E%3Ccircle cx='171' cy='910' r='0.7' fill='%23fff' opacity='0.53'/%3E%3Ccircle cx='57' cy='391' r='0.7' fill='%23fff' opacity='0.54'/%3E%3Ccircle cx='241' cy='636' r='0.7' fill='%23fff' opacity='0.54'/%3E%3Ccircle cx='275' cy='347' r='0.7' fill='%23fff' opacity='0.53'/%3E%3Ccircle cx='266' cy='463' r='1.6' fill='%23fff' opacity='0.64'/%3E%3Ccircle cx='200' cy='861' r='1.2' fill='%23fff' opacity='0.40'/%3E%3Ccircle cx='342' cy='651' r='0.9' fill='%23fff' opacity='0.29'/%3E%3Ccircle cx='129' cy='461' r='1.2' fill='%23fff' opacity='0.61'/%3E%3Ccircle cx='124' cy='914' r='0.7' fill='%23fff' opacity='0.51'/%3E%3Ccircle cx='71' cy='319' r='1.6' fill='%23fff' opacity='0.46'/%3E%3Ccircle cx='414' cy='72' r='1.2' fill='%23fff' opacity='0.42'/%3E%3Ccircle cx='151' cy='463' r='1.6' fill='%23fff' opacity='0.28'/%3E%3Ccircle cx='40' cy='252' r='0.7' fill='%23fff' opacity='0.28'/%3E%3Ccircle cx='302' cy='603' r='1.6' fill='%23fff' opacity='0.39'/%3E%3Ccircle cx='166' cy='623' r='0.7' fill='%23fff' opacity='0.72'/%3E%3Ccircle cx='153' cy='569' r='1.6' fill='%23fff' opacity='0.28'/%3E%3Ccircle cx='330' cy='121' r='0.9' fill='%23fff' opacity='0.45'/%3E%3Ccircle cx='394' cy='463' r='0.9' fill='%23fff' opacity='0.47'/%3E%3Ccircle cx='236' cy='823' r='1.6' fill='%23fff' opacity='0.68'/%3E%3Ccircle cx='120' cy='387' r='1.2' fill='%23fff' opacity='0.59'/%3E%3Ccircle cx='164' cy='215' r='0.7' fill='%23fff' opacity='0.34'/%3E%3Ccircle cx='100' cy='217' r='1.6' fill='%23fff' opacity='0.67'/%3E%3Ccircle cx='78' cy='263' r='0.9' fill='%23fff' opacity='0.46'/%3E%3Ccircle cx='159' cy='528' r='0.9' fill='%23fff' opacity='0.60'/%3E%3Ccircle cx='222' cy='576' r='0.7' fill='%23fff' opacity='0.48'/%3E%3Ccircle cx='375' cy='887' r='1.6' fill='%23fff' opacity='0.45'/%3E%3Ccircle cx='169' cy='449' r='1.6' fill='%23fff' opacity='0.28'/%3E%3Ccircle cx='29' cy='195' r='0.9' fill='%23fff' opacity='0.30'/%3E%3Ccircle cx='258' cy='95' r='0.9' fill='%23fff' opacity='0.52'/%3E%3C/svg%3E") center/cover no-repeat fixed,#0d0820;background-attachment:fixed}
@media(min-width:700px){body{background:linear-gradient(180deg,rgba(10,4,24,.22),rgba(10,4,24,.55)) fixed,url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 900' preserveAspectRatio='xMidYMid slice'%3E%3Cdefs%3E%3ClinearGradient id='base' x1='0' y1='0' x2='0.35' y2='1'%3E%3Cstop offset='0' stop-color='%23120a30'/%3E%3Cstop offset='.45' stop-color='%23240e4a'/%3E%3Cstop offset='1' stop-color='%234d1253'/%3E%3C/linearGradient%3E%3CradialGradient id='gp' cx='.5' cy='.5' r='.5'%3E%3Cstop offset='0' stop-color='%23ff5fa8' stop-opacity='.5'/%3E%3Cstop offset='1' stop-color='%23ff5fa8' stop-opacity='0'/%3E%3C/radialGradient%3E%3CradialGradient id='gv' cx='.5' cy='.5' r='.5'%3E%3Cstop offset='0' stop-color='%238a4dff' stop-opacity='.85'/%3E%3Cstop offset='1' stop-color='%238a4dff' stop-opacity='0'/%3E%3C/radialGradient%3E%3CradialGradient id='gm' cx='.5' cy='.5' r='.5'%3E%3Cstop offset='0' stop-color='%23e044b8' stop-opacity='.6'/%3E%3Cstop offset='1' stop-color='%23d63fb0' stop-opacity='0'/%3E%3C/radialGradient%3E%3CradialGradient id='go' cx='.5' cy='.5' r='.5'%3E%3Cstop offset='0' stop-color='%23ff9a6b' stop-opacity='.3'/%3E%3Cstop offset='1' stop-color='%23ff9a6b' stop-opacity='0'/%3E%3C/radialGradient%3E%3ClinearGradient id='silk' x1='0' y1='1' x2='1' y2='0'%3E%3Cstop offset='0' stop-color='%23ff7cc0' stop-opacity='.05'/%3E%3Cstop offset='.5' stop-color='%23ff8fd0' stop-opacity='.62'/%3E%3Cstop offset='1' stop-color='%239a6bff' stop-opacity='.08'/%3E%3C/linearGradient%3E%3ClinearGradient id='silk2' x1='1' y1='1' x2='0' y2='0'%3E%3Cstop offset='0' stop-color='%23ffb07a' stop-opacity='.28'/%3E%3Cstop offset='.55' stop-color='%23ff6fb0' stop-opacity='.22'/%3E%3Cstop offset='1' stop-color='%239a6bff' stop-opacity='.05'/%3E%3C/linearGradient%3E%3ClinearGradient id='edge' x1='0' y1='1' x2='1' y2='0'%3E%3Cstop offset='0' stop-color='%23ffd0ea' stop-opacity='0'/%3E%3Cstop offset='.5' stop-color='%23ffd9ee' stop-opacity='.95'/%3E%3Cstop offset='1' stop-color='%23d2b8ff' stop-opacity='0'/%3E%3C/linearGradient%3E%3Cfilter id='b6' x='-20%25' y='-20%25' width='140%25' height='140%25'%3E%3CfeGaussianBlur stdDeviation='7'/%3E%3C/filter%3E%3Cfilter id='b1'%3E%3CfeGaussianBlur stdDeviation='.9'/%3E%3C/filter%3E%3Cfilter id='b2'%3E%3CfeGaussianBlur stdDeviation='2'/%3E%3C/filter%3E%3C/defs%3E%3Crect width='1600' height='900' fill='url(%23base)'/%3E%3Cellipse cx='1500' cy='900' rx='900' ry='420' fill='url(%23gp)'/%3E%3Cellipse cx='1600' cy='0' rx='700' ry='360' fill='url(%23gv)'/%3E%3Cellipse cx='0' cy='880' rx='700' ry='330' fill='url(%23gm)'/%3E%3Cellipse cx='60' cy='120' rx='520' ry='300' fill='url(%23gv)' opacity='.55'/%3E%3Cg filter='url(%23b6)'%3E%3Cpath d='M-50 900 L-50 560 C 150 520 330 640 520 760 C 640 836 800 890 960 900 Z' fill='url(%23silk)'/%3E%3Cpath d='M1650 -30 L1650 300 C 1500 270 1340 190 1200 90 C 1130 40 1060 0 1000 -30 Z' fill='url(%23silk)'/%3E%3Cpath d='M1650 520 C 1560 640 1480 760 1340 840 C 1250 890 1150 900 1050 900 L1650 900 Z' fill='url(%23silk2)'/%3E%3C/g%3E%3Cg fill='none' stroke='url(%23edge)' stroke-linecap='round'%3E%3Cg filter='url(%23b2)' opacity='.7'%3E%3Cpath d='M-50 560 C 150 520 330 640 520 760 C 640 836 800 890 960 900' stroke-width='3'/%3E%3Cpath d='M1650 300 C 1500 270 1340 190 1200 90 C 1130 40 1060 0 1000 -30' stroke-width='3'/%3E%3C/g%3E%3Cg filter='url(%23b1)'%3E%3Cpath d='M-50 550 C 150 512.0 330 630.0 520 752.0 C 640 830.0 800 886.0 960 896' stroke-width='1.0' opacity='0.62'/%3E%3Cpath d='M-50 560 C 150 521.0 330 638.0 520 757.0 C 640 833.0 800 887.0 960 896' stroke-width='1.5' opacity='0.57'/%3E%3Cpath d='M-50 570 C 150 530.0 330 646.0 520 762.0 C 640 836.0 800 888.0 960 896' stroke-width='2.0' opacity='0.52'/%3E%3Cpath d='M-50 580 C 150 539.0 330 654.0 520 767.0 C 640 839.0 800 889.0 960 896' stroke-width='1.0' opacity='0.47'/%3E%3Cpath d='M-50 590 C 150 548.0 330 662.0 520 772.0 C 640 842.0 800 890.0 960 896' stroke-width='1.5' opacity='0.42'/%3E%3Cpath d='M-50 600 C 150 557.0 330 670.0 520 777.0 C 640 845.0 800 891.0 960 896' stroke-width='2.0' opacity='0.37'/%3E%3Cpath d='M-50 610 C 150 566.0 330 678.0 520 782.0 C 640 848.0 800 892.0 960 896' stroke-width='1.0' opacity='0.32'/%3E%3Cpath d='M-50 620 C 150 575.0 330 686.0 520 787.0 C 640 851.0 800 893.0 960 896' stroke-width='1.5' opacity='0.27'/%3E%3Cpath d='M-50 630 C 150 584.0 330 694.0 520 792.0 C 640 854.0 800 894.0 960 896' stroke-width='2.0' opacity='0.22'/%3E%3Cpath d='M-50 640 C 150 593.0 330 702.0 520 797.0 C 640 857.0 800 895.0 960 896' stroke-width='1.0' opacity='0.17'/%3E%3Cpath d='M1650 310.0 C 1500 280.0 1340 200.0 1200 100.0 C 1130 50 1060 8 1000 -22' stroke-width='1.0' opacity='0.62'/%3E%3Cpath d='M1650 313.6 C 1500 285.4 1340 207.2 1200 108.1 C 1130 59 1060 17 1000 -13' stroke-width='1.5' opacity='0.57'/%3E%3Cpath d='M1650 317.2 C 1500 290.8 1340 214.4 1200 116.2 C 1130 68 1060 26 1000 -4' stroke-width='2.0' opacity='0.52'/%3E%3Cpath d='M1650 320.8 C 1500 296.2 1340 221.6 1200 124.3 C 1130 77 1060 35 1000 5' stroke-width='1.0' opacity='0.47'/%3E%3Cpath d='M1650 324.4 C 1500 301.6 1340 228.8 1200 132.4 C 1130 86 1060 44 1000 14' stroke-width='1.5' opacity='0.42'/%3E%3Cpath d='M1650 328.0 C 1500 307.0 1340 236.0 1200 140.5 C 1130 95 1060 53 1000 23' stroke-width='2.0' opacity='0.37'/%3E%3Cpath d='M1650 331.6 C 1500 312.4 1340 243.2 1200 148.6 C 1130 104 1060 62 1000 32' stroke-width='1.0' opacity='0.32'/%3E%3Cpath d='M1650 335.2 C 1500 317.8 1340 250.4 1200 156.7 C 1130 113 1060 71 1000 41' stroke-width='1.5' opacity='0.27'/%3E%3Cpath d='M1650 338.8 C 1500 323.2 1340 257.6 1200 164.8 C 1130 122 1060 80 1000 50' stroke-width='2.0' opacity='0.22'/%3E%3C/g%3E%3C/g%3E%3Ccircle cx='1518' cy='552' r='0.7' fill='%23fff' opacity='0.69'/%3E%3Ccircle cx='983' cy='134' r='1.2' fill='%23fff' opacity='0.73'/%3E%3Ccircle cx='964' cy='427' r='0.7' fill='%23fff' opacity='0.67'/%3E%3Ccircle cx='1589' cy='419' r='1.6' fill='%23fff' opacity='0.41'/%3E%3Ccircle cx='231' cy='675' r='1.2' fill='%23fff' opacity='0.49'/%3E%3Ccircle cx='1107' cy='465' r='0.9' fill='%23fff' opacity='0.73'/%3E%3Ccircle cx='845' cy='132' r='0.7' fill='%23fff' opacity='0.63'/%3E%3Ccircle cx='477' cy='579' r='0.7' fill='%23fff' opacity='0.60'/%3E%3Ccircle cx='418' cy='330' r='0.9' fill='%23fff' opacity='0.43'/%3E%3Ccircle cx='356' cy='487' r='1.2' fill='%23fff' opacity='0.57'/%3E%3Ccircle cx='981' cy='710' r='0.9' fill='%23fff' opacity='0.65'/%3E%3Ccircle cx='1309' cy='666' r='0.9' fill='%23fff' opacity='0.35'/%3E%3Ccircle cx='788' cy='658' r='0.7' fill='%23fff' opacity='0.65'/%3E%3Ccircle cx='756' cy='174' r='1.2' fill='%23fff' opacity='0.47'/%3E%3Ccircle cx='1499' cy='889' r='1.2' fill='%23fff' opacity='0.29'/%3E%3Ccircle cx='163' cy='423' r='1.2' fill='%23fff' opacity='0.35'/%3E%3Ccircle cx='999' cy='810' r='0.7' fill='%23fff' opacity='0.49'/%3E%3Ccircle cx='1045' cy='720' r='0.7' fill='%23fff' opacity='0.67'/%3E%3Ccircle cx='192' cy='350' r='0.9' fill='%23fff' opacity='0.49'/%3E%3Ccircle cx='286' cy='710' r='1.2' fill='%23fff' opacity='0.29'/%3E%3Ccircle cx='1514' cy='650' r='1.6' fill='%23fff' opacity='0.45'/%3E%3Ccircle cx='1515' cy='652' r='0.9' fill='%23fff' opacity='0.75'/%3E%3Ccircle cx='44' cy='532' r='1.6' fill='%23fff' opacity='0.65'/%3E%3Ccircle cx='234' cy='744' r='1.6' fill='%23fff' opacity='0.58'/%3E%3Ccircle cx='561' cy='494' r='0.9' fill='%23fff' opacity='0.26'/%3E%3Ccircle cx='1279' cy='654' r='0.7' fill='%23fff' opacity='0.51'/%3E%3Ccircle cx='1494' cy='390' r='0.9' fill='%23fff' opacity='0.66'/%3E%3Ccircle cx='338' cy='227' r='1.2' fill='%23fff' opacity='0.50'/%3E%3Ccircle cx='1222' cy='293' r='1.6' fill='%23fff' opacity='0.67'/%3E%3Ccircle cx='97' cy='666' r='1.6' fill='%23fff' opacity='0.58'/%3E%3Ccircle cx='1304' cy='465' r='0.9' fill='%23fff' opacity='0.52'/%3E%3Ccircle cx='838' cy='17' r='1.6' fill='%23fff' opacity='0.64'/%3E%3Ccircle cx='974' cy='698' r='0.9' fill='%23fff' opacity='0.34'/%3E%3Ccircle cx='758' cy='653' r='0.7' fill='%23fff' opacity='0.41'/%3E%3Ccircle cx='829' cy='500' r='0.7' fill='%23fff' opacity='0.69'/%3E%3Ccircle cx='91' cy='172' r='0.7' fill='%23fff' opacity='0.64'/%3E%3Ccircle cx='812' cy='506' r='0.7' fill='%23fff' opacity='0.47'/%3E%3Ccircle cx='980' cy='455' r='0.9' fill='%23fff' opacity='0.60'/%3E%3Ccircle cx='724' cy='480' r='1.6' fill='%23fff' opacity='0.50'/%3E%3Ccircle cx='396' cy='471' r='1.2' fill='%23fff' opacity='0.71'/%3E%3Ccircle cx='1428' cy='182' r='1.6' fill='%23fff' opacity='0.32'/%3E%3Ccircle cx='195' cy='398' r='0.7' fill='%23fff' opacity='0.59'/%3E%3Ccircle cx='685' cy='191' r='1.2' fill='%23fff' opacity='0.64'/%3E%3Ccircle cx='1435' cy='139' r='1.2' fill='%23fff' opacity='0.32'/%3E%3Ccircle cx='1413' cy='871' r='0.9' fill='%23fff' opacity='0.62'/%3E%3Ccircle cx='151' cy='796' r='0.9' fill='%23fff' opacity='0.74'/%3E%3Ccircle cx='1332' cy='145' r='1.6' fill='%23fff' opacity='0.75'/%3E%3Ccircle cx='646' cy='379' r='1.2' fill='%23fff' opacity='0.41'/%3E%3Ccircle cx='1155' cy='18' r='1.6' fill='%23fff' opacity='0.47'/%3E%3Ccircle cx='29' cy='298' r='1.2' fill='%23fff' opacity='0.51'/%3E%3Ccircle cx='103' cy='887' r='0.9' fill='%23fff' opacity='0.74'/%3E%3Ccircle cx='168' cy='239' r='0.7' fill='%23fff' opacity='0.70'/%3E%3Ccircle cx='290' cy='680' r='1.6' fill='%23fff' opacity='0.67'/%3E%3Ccircle cx='1082' cy='851' r='1.6' fill='%23fff' opacity='0.32'/%3E%3Ccircle cx='1471' cy='514' r='1.2' fill='%23fff' opacity='0.29'/%3E%3Ccircle cx='92' cy='619' r='1.6' fill='%23fff' opacity='0.70'/%3E%3Ccircle cx='430' cy='15' r='0.7' fill='%23fff' opacity='0.65'/%3E%3Ccircle cx='134' cy='771' r='0.7' fill='%23fff' opacity='0.38'/%3E%3Ccircle cx='195' cy='10' r='1.6' fill='%23fff' opacity='0.71'/%3E%3Ccircle cx='429' cy='116' r='0.9' fill='%23fff' opacity='0.72'/%3E%3Ccircle cx='1551' cy='236' r='0.9' fill='%23fff' opacity='0.35'/%3E%3Ccircle cx='499' cy='275' r='0.9' fill='%23fff' opacity='0.39'/%3E%3Ccircle cx='800' cy='160' r='1.2' fill='%23fff' opacity='0.65'/%3E%3Ccircle cx='1591' cy='33' r='0.7' fill='%23fff' opacity='0.62'/%3E%3Ccircle cx='882' cy='171' r='1.6' fill='%23fff' opacity='0.37'/%3E%3Ccircle cx='715' cy='592' r='1.6' fill='%23fff' opacity='0.58'/%3E%3Ccircle cx='873' cy='800' r='1.2' fill='%23fff' opacity='0.59'/%3E%3Ccircle cx='1572' cy='308' r='0.9' fill='%23fff' opacity='0.45'/%3E%3Ccircle cx='556' cy='49' r='0.9' fill='%23fff' opacity='0.26'/%3E%3Ccircle cx='1001' cy='792' r='1.6' fill='%23fff' opacity='0.33'/%3E%3C/svg%3E") center/cover no-repeat fixed,#0d0820;background-attachment:fixed}.app{background:rgba(14,8,28,.38);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}}
@media(min-width:1000px){.app{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}}
.bubble{background:rgba(26,12,48,.78);border-color:rgba(255,196,232,.22);color:#fff}.bubble.mine{background:linear-gradient(135deg,#d2559a,#8f4cc0);color:#fff;border-color:transparent}
.vdrop{background:rgba(24,10,44,.6);border-color:rgba(255,196,232,.3);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.box,.banner,.next{background:rgba(24,10,44,.5);border-color:rgba(255,196,232,.22);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.catpill:not(.on),.tabs button:not(.active),.seg{background:rgba(24,10,44,.42)}
.chip:not(.active):not(.ghost){background:rgba(24,10,44,.4)}
.meta,.ratebar,.muted,.small.muted,.dim{text-shadow:0 1px 8px rgba(10,4,24,.8)}
.meta,.meta.mine{color:#f0e2f7}.muted{color:#e2d3ec}.dim{color:#cdbbda}.ratebar{color:#efe0f6}
.railhead .small.muted,.seeall,.greet,.pg>h2,.section-title,.small.muted{text-shadow:0 1px 10px rgba(16,4,36,.7)}
.seeall,.railhead .small.muted{color:#f3e6f8}

/* ===== Darker mode (html[data-theme="dark"]): near-black, calm, no ribbons; pink stays only as the accent ===== */
html[data-theme="dark"]{--ink:#07040d;--bg:#0d0817;--bg2:#140c22;--glass:rgba(255,255,255,.05);--glass2:rgba(255,255,255,.085);--line:rgba(255,255,255,.1);--line2:rgba(255,255,255,.2);--muted:#c3b8cf;--dim:#9a8dab;--rose:#f0b6d2;--rose2:#d98bb4;--rose3:#b0709a;--grad:linear-gradient(135deg,#d98bb4 0%,#8f4f9c 100%);--glow:0 8px 22px -10px rgba(200,110,170,.45)}
html[data-theme="dark"],html[data-theme="dark"] body{background:#06030b}
html[data-theme="dark"] body{background:radial-gradient(900px 520px at 92% -8%,rgba(98,44,132,.30),transparent 62%),radial-gradient(800px 520px at -12% 112%,rgba(128,40,96,.22),transparent 60%),linear-gradient(180deg,#0b0615,#06030b) fixed;background-attachment:fixed}
html[data-theme="dark"] .app,html[data-theme="dark"] .app{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}
html[data-theme="dark"] .nav{background:rgba(14,8,24,.9);box-shadow:0 10px 40px -10px #000}
html[data-theme="dark"] .person-card,html[data-theme="dark"] .vibe{background:#150d24;box-shadow:0 14px 30px -18px #000,0 0 0 1px rgba(255,255,255,.1)}
html[data-theme="dark"] .box{background:rgba(255,255,255,.05);box-shadow:none}
html[data-theme="dark"] .catpill{background:rgba(255,255,255,.06)}html[data-theme="dark"] .catpill.on{background:rgba(217,139,180,.14);border-color:#d98bb4;box-shadow:none}
html[data-theme="dark"] .sheet{background:linear-gradient(180deg,#1a1026,#120a1c)}
html[data-theme="dark"] .hcar-track{background:#150d24;box-shadow:0 14px 30px -16px #000,0 0 0 1px rgba(255,255,255,.1)}
html[data-theme="dark"] .bubble{background:rgba(22,13,36,.95);border-color:rgba(255,255,255,.12)}html[data-theme="dark"] .bubble.mine{background:linear-gradient(135deg,#b94f8c,#7a45a8)}
html[data-theme="dark"] .composer{background:linear-gradient(transparent,rgba(6,3,11,.85) 35%)}html[data-theme="dark"] .chat-input{background:rgba(24,14,38,.95)}
html[data-theme="dark"] .mimi{background:linear-gradient(135deg,rgba(120,80,200,.2),rgba(200,110,170,.14));box-shadow:0 12px 26px -18px #000}
html[data-theme="dark"] .top .logo,html[data-theme="dark"] .logo{text-shadow:none}
html[data-theme="dark"] .railhead .small.muted,html[data-theme="dark"] .seeall,html[data-theme="dark"] .greet,html[data-theme="dark"] .pg>h2,html[data-theme="dark"] .section-title,html[data-theme="dark"] .small.muted,html[data-theme="dark"] .meta,html[data-theme="dark"] .ratebar,html[data-theme="dark"] .muted,html[data-theme="dark"] .dim{text-shadow:none}
html[data-theme="dark"] .person-card.cover .pc-main img{filter:saturate(.95)}
.themeopt{display:flex;gap:10px}.themeopt button{flex:1;display:flex;flex-direction:column;gap:8px;align-items:center;padding:10px;border-radius:16px;border:1.5px solid var(--line2);background:var(--glass);font-weight:700;font-size:13px}
.themeopt button.on{border-color:#f08bbd;box-shadow:0 0 18px -6px rgba(240,139,189,.7)}
.themeopt .sw{width:100%;height:46px;border-radius:10px;border:1px solid rgba(255,255,255,.2)}
.themeopt .sw.pink{background:linear-gradient(135deg,#140a33,#5b2480 45%,#c5459a 80%,#ff7fb0)}.themeopt .sw.dark{background:linear-gradient(135deg,#06030b,#0f0818 55%,#1c1030)}
