/* HaveFun v4 — Explore, Groups, Safety, chat upgrades, tour, install */
.bottomnav a.xnav svg{background:var(--grad);color:#fff;border-radius:14px;padding:5px;width:34px;height:34px;box-shadow:0 4px 16px rgba(255,79,121,.45)}
.bottomnav a.xnav span{font-weight:800}
.xwhere,.xq{display:flex;align-items:center;gap:6px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:6px 6px 6px 12px;margin-bottom:10px}
.xwhere .input,.xq .input{border:0;background:transparent;padding:8px 2px;min-width:0}
.xwhere .input:focus,.xq .input:focus{outline:none;box-shadow:none}
.xwhere:focus-within,.xq:focus-within{border-color:var(--accent2);box-shadow:0 0 0 3px rgba(139,108,255,.25)}
.xq{margin-top:14px}
.xtabs{margin-bottom:12px}
.xtilegrid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.xsec{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:96px;padding:12px 6px;border-radius:18px;text-align:center;
  background:linear-gradient(160deg,color-mix(in srgb,var(--c) 38%,#15161e) 0%,#15161e 100%);border:1px solid color-mix(in srgb,var(--c) 55%,transparent);box-shadow:0 6px 18px color-mix(in srgb,var(--c) 18%,transparent);transition:transform .12s}
.xsec:active{transform:scale(.96)}
.xsec .xse{font-size:32px;line-height:1;filter:drop-shadow(0 2px 6px rgba(0,0,0,.4))}
.xsec b{font-size:13.5px;line-height:1.2}
.xtiles{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}
.xtile{display:flex;flex-direction:column;gap:2px;padding:14px;border-radius:16px;background:var(--surface);border:1px solid var(--line);font-size:24px}
.xtile b{font-size:15px}.xtile span{font-size:12px;color:var(--muted)}
.xcats{margin:2px 0 8px}
.xtools{margin:4px 0 10px;flex-wrap:wrap;gap:6px}
.xcount{margin:2px 2px 10px}
.xcard{display:flex;gap:12px;padding:14px;border-radius:18px;background:var(--surface);border:1px solid var(--line);margin-bottom:10px;cursor:pointer}
.xcard:focus-visible{outline:3px solid var(--accent2)}
.xcard h3{font-size:16.5px;line-height:1.25}
.xic{flex:none;width:46px;height:46px;border-radius:14px;display:grid;place-items:center;font-size:24px;background:var(--surface2)}
.xic.big{width:58px;height:58px;font-size:30px}
.xmeta{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px}
.xpill{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;padding:3px 9px;border-radius:999px;background:var(--surface2);color:var(--muted);white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.xpill.ok{background:rgba(47,214,143,.14);color:var(--ok)}.xpill.bad{background:rgba(255,93,93,.12);color:#ff8a8a}.xpill.on{background:rgba(139,108,255,.2);color:#c4b5fd}
.xbadge{flex:none;font-size:11px;font-weight:800;padding:3px 7px;border-radius:8px;background:rgba(255,79,121,.18);color:#ff8fab;border:1px solid rgba(255,79,121,.45)}
.xbtns{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.xbtns .btn.on{border-color:var(--accent)}
.xmap{height:52vh;min-height:300px;border-radius:18px;overflow:hidden;border:1px solid var(--line);margin-bottom:10px;background:#111}
.xpin{display:grid;place-items:center}
.xpin span{display:grid;place-items:center;width:34px;height:34px;border-radius:50% 50% 50% 4px;transform:rotate(-45deg);background:#1d1f2a;border:2px solid var(--accent2);box-shadow:0 3px 10px rgba(0,0,0,.5);font-size:16px}
.xpin.open span{border-color:var(--ok)}
.xpin span em{font-style:normal;transform:rotate(45deg);display:block}
.xmap .leaflet-tile-pane{filter:invert(1) hue-rotate(180deg) brightness(.9) contrast(.92) saturate(.6)}
#xview button{white-space:nowrap}
.xme i{display:block;width:18px;height:18px;border-radius:50%;background:#3b82f6;border:3px solid #fff;box-shadow:0 0 0 6px rgba(59,130,246,.3)}
.leaflet-container{background:#0b0c10;font:inherit}
.leaflet-control-attribution{font-size:10px!important;background:rgba(15,16,22,.8)!important;color:#aaa!important}
.leaflet-control-attribution a{color:#c4b5fd!important}
.xgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.xwo{display:flex;flex-direction:column;gap:2px;padding:14px;border-radius:16px;background:var(--surface);border:1px solid var(--line)}
.xwo span{font-size:26px}.xwo b{font-size:14.5px}.xwo small{color:var(--muted);font-size:12px}
.xline{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:12px;border-radius:16px;background:var(--surface);border:1px solid var(--line);color:inherit;margin-bottom:8px;cursor:pointer}
.xline .grow{display:flex;flex-direction:column;gap:1px}
.xwhen{flex:none;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--accent);width:66px;padding-top:2px}
.xstart{text-align:center;padding:8px 4px}.xhero{font-size:54px}
.skel{pointer-events:none}.sk{background:linear-gradient(90deg,#1e2029 25%,#2a2d3a 50%,#1e2029 75%);background-size:200% 100%;animation:sk 1.2s infinite;border-radius:8px}
.sk-ic{width:46px;height:46px;border-radius:14px;flex:none}.sk-l{height:16px;width:70%;margin:4px 0 8px}.sk-s{height:11px;width:55%;margin-bottom:6px}
@keyframes sk{to{background-position:-200% 0}}
@media (prefers-reduced-motion:reduce){.sk{animation:none}.xsec{transition:none}}
/* tonight */
.tonight{margin:4px 0 14px}
.trow{display:flex;gap:10px;overflow-x:auto;padding:2px 2px 6px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}
.trow::-webkit-scrollbar{display:none}
.tcard{flex:none;width:158px;scroll-snap-align:start;display:flex;flex-direction:column;gap:4px;align-items:flex-start;text-align:left;padding:12px;border-radius:16px;background:linear-gradient(160deg,#241a3d,#15161e);border:1px solid #3a2d63;color:inherit;cursor:pointer}
.tcard b{font-size:14px;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.tcard .xpill{font-size:11px}
.tcard.skel{height:120px}
.tci{font-size:24px}
.tcta{display:flex;align-items:center;gap:12px;padding:14px;border-radius:18px;background:linear-gradient(135deg,rgba(139,108,255,.25),rgba(255,79,121,.18));border:1px solid rgba(139,108,255,.45)}
.tcta .grow{display:flex;flex-direction:column}
/* safety */
.ckbar{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:14px;background:rgba(47,214,143,.12);border:1px solid rgba(47,214,143,.45);margin-bottom:10px;font-size:14px}
.tips{margin:0;padding-left:18px}.tips li+li{margin-top:6px}
.btn.danger{background:#b91c1c;color:#fff;border-color:#b91c1c}
/* chat */
.icebar{display:flex;gap:6px;overflow-x:auto;padding:6px 10px;border-top:1px solid var(--line);background:var(--bg)}
.icebar::-webkit-scrollbar{display:none}.icebar .chip{flex:none;font-size:13px}
.wave1{text-align:center}.wave1 .wv{font-size:44px;display:inline-block;animation:wv 1.2s ease-in-out 2;transform-origin:70% 70%}
@keyframes wv{0%,100%{transform:rotate(0)}25%{transform:rotate(18deg)}75%{transform:rotate(-12deg)}}
.vnote{background:none!important;padding:0!important;display:flex;flex-direction:column;align-items:center;gap:4px}
.vnote video{width:180px;height:180px;border-radius:50%;object-fit:cover;border:3px solid var(--accent2)}
.locc{display:flex;gap:10px;align-items:center}.locc>span{font-size:26px}
.blurb{position:relative;display:block;padding:0;border:0;background:none;cursor:pointer;border-radius:16px;overflow:hidden;color:#fff;width:100%}
.blurb img,.blurb video{filter:blur(26px) saturate(.8);transform:scale(1.15);max-height:260px;width:100%;object-fit:cover}
.blurov{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:rgba(0,0,0,.25);font-size:22px;text-align:center;padding:10px}
.blurov b{font-size:15px}.blurov small{font-size:11px;opacity:.85}
.ppvb{position:relative;border-radius:16px;overflow:hidden}
.ppvb img{max-height:260px;width:100%;object-fit:cover}
.ppvb.locked img{filter:blur(24px);transform:scale(1.15)}
.ppvov{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:rgba(10,8,20,.35);color:#fff}
#mic.holding{background:var(--bad)!important;color:#fff;transform:scale(1.15)}
.vnrec{position:fixed;inset:0;z-index:200;background:rgba(5,5,10,.92);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;color:#fff}
.vncirc{position:relative;width:240px;height:240px;cursor:pointer}
.vncirc video{width:240px;height:240px;border-radius:50%;object-fit:cover}
.vncirc svg{position:absolute;inset:-8px;width:256px;height:256px;transform:rotate(-90deg)}
.vncirc circle{fill:none;stroke:var(--accent);stroke-width:3;stroke-dasharray:100;stroke-dashoffset:100;animation:vn 30s linear forwards}
@keyframes vn{to{stroke-dashoffset:0}}
.tipb{font-size:20px}.tipm{color:#fcd34d;font-weight:700}
.monet{border:1px solid rgba(245,158,11,.4);background:linear-gradient(135deg,rgba(245,158,11,.14),transparent)}
/* groups */
.gcard{display:flex;align-items:center;gap:12px;padding:12px;border-radius:18px;background:var(--surface);border:1px solid var(--line);margin-bottom:10px}
.gcov{flex:none;width:64px;height:64px;border-radius:16px;background-size:cover;background-position:center;display:grid;place-items:center;font-size:30px}
.gcov.big{width:100%;height:140px;border-radius:20px;font-size:56px}
.pill.gold{background:rgba(245,158,11,.2);color:#fcd34d}
.ghead{margin-bottom:12px}.ghinfo{padding:12px 4px 0}
.gmsgs{display:flex;flex-direction:column;gap:6px;max-height:52vh;overflow-y:auto;padding:4px 0 10px}
.gcomp{position:sticky;bottom:calc(var(--nav-h) + var(--safe-b));border-radius:16px;margin-top:6px}
.gev .xic{width:42px;height:42px}
/* tour + install */
.tour{position:fixed;inset:0;z-index:300;background:rgba(5,5,12,.82);backdrop-filter:blur(8px);display:flex;align-items:flex-end;justify-content:center;padding:16px 16px calc(24px + var(--safe-b))}
.tcardx{width:100%;max-width:440px;background:var(--surface);border:1px solid var(--line);border-radius:24px;padding:24px;text-align:center;animation:tin .3s ease-out}
.tem{font-size:56px;margin-bottom:6px}.tcardx h2{margin-bottom:8px}
.tdots{display:flex;justify-content:center;gap:6px;margin-top:16px}.tdots i{width:7px;height:7px;border-radius:50%;background:var(--line)}.tdots i.on{background:var(--accent);width:20px;border-radius:4px}
@keyframes tin{from{transform:translateY(30px);opacity:0}}
.instbar{position:fixed;left:10px;right:10px;bottom:calc(var(--nav-h) + var(--safe-b) + 10px);z-index:40;display:flex;align-items:center;gap:10px;padding:10px 10px 10px 12px;border-radius:18px;background:#1d1f2b;border:1px solid rgba(139,108,255,.55);box-shadow:0 10px 30px rgba(0,0,0,.5)}
.instbar img{border-radius:10px}.instbar .grow{display:flex;flex-direction:column;line-height:1.25}
.isteps{padding-left:20px;margin:0 0 16px}.isteps li+li{margin-top:8px}
.navopt{width:100%;background:none;border:0;color:inherit;text-align:left;cursor:pointer}
button.li{width:100%;background:none;border:0;color:inherit;text-align:left;cursor:pointer;font:inherit}
@media (max-width:360px){.xtilegrid{grid-template-columns:repeat(2,1fr)}}

.meetbtn{display:flex;align-items:center;gap:8px;width:calc(100% - 20px);margin:8px 10px 0;padding:10px 14px;border-radius:14px;border:1px solid rgba(139,108,255,.55);background:linear-gradient(135deg,rgba(139,108,255,.28),rgba(255,79,121,.2));color:#fff;font:inherit;cursor:pointer;text-align:left}
.meetbtn span{margin-left:auto;font-size:12px;opacity:.8}
.meeth{margin:4px 6px 8px;font-size:14px}.mst{font-size:11px;font-weight:700;padding:2px 7px;border-radius:999px;background:rgba(255,255,255,.12);margin-left:4px}.mst.accepted{background:rgba(47,214,143,.25);color:#7ff0bd}.mst.declined{opacity:.6}
.xline.on{border-color:var(--accent2);background:rgba(139,108,255,.14)}.mpick{font-size:18px;color:var(--accent2)}
.btn[disabled]{opacity:.45;pointer-events:none}

.slogan{font-weight:800;font-size:19px;line-height:1.3;margin:6px 0 8px;background:linear-gradient(90deg,#ff4f79,#f59e0b,#22c1a3,#3b82f6,#8b6cff);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero4{display:flex;flex-direction:column;gap:2px;padding:12px 14px;margin-bottom:12px;border-radius:16px;background:linear-gradient(135deg,rgba(255,79,121,.16),rgba(139,108,255,.16));border:1px solid rgba(255,79,121,.3)}
.hero4 b{font-size:15.5px}.hero4 span{font-size:12.5px;color:var(--muted)}
.byb{margin:0 0 10px;text-align:left;border-color:rgba(236,72,153,.45)}
.byhero{background:linear-gradient(135deg,rgba(255,79,121,.18),rgba(245,158,11,.12),rgba(34,193,163,.12),rgba(59,130,246,.14),rgba(139,108,255,.18))}
.chip.sm{font-size:12.5px;padding:5px 10px}.xref{margin:-2px 0 8px}

/* ---------- Group photos & videos (Oct 8, 2026) ---------- */
#gtabs button{font-size:13px;padding-left:4px;padding-right:4px;white-space:nowrap}
.bub.gmb{padding:4px;max-width:84%}.bub.gmb>div:not(.gmg):not(.tiny){padding:4px 8px 0}.bub.gmb>.tiny{padding:0 8px 4px}
.gmg{display:grid;gap:3px;border-radius:16px;overflow:hidden;width:min(280px,64vw)}
.gfpost .gmg{width:100%}
.gmg.n1{grid-template-columns:1fr}.gmg.n2{grid-template-columns:1fr 1fr}.gmg.n3{grid-template-columns:1fr 1fr}.gmg.n3 .gmt:first-child{grid-column:1/3}.gmg.n4{grid-template-columns:1fr 1fr}
.gmt{position:relative;display:block;padding:0;border:0;background:#1b1d26;aspect-ratio:1/1;overflow:hidden;cursor:pointer;color:#fff}
.gmg.n1 .gmt{aspect-ratio:4/3}.gmg.n3 .gmt:first-child{aspect-ratio:2/1}
.gmt img{width:100%;height:100%;object-fit:cover;display:block;-webkit-user-drag:none}
.gmt-ph{display:grid;place-items:center;height:100%;font-size:34px}
.gmt-play{position:absolute;left:50%;top:50%;width:46px;height:46px;margin:-23px 0 0 -23px;border-radius:50%;background:rgba(0,0,0,.55);display:grid;place-items:center;font-size:18px;border:2px solid rgba(255,255,255,.85);padding-left:3px}
.gmt-dur{position:absolute;right:6px;bottom:6px;background:rgba(0,0,0,.72);color:#fff;font:700 12px/1 -apple-system,system-ui,sans-serif;padding:4px 6px;border-radius:6px}
.gmt-more{position:absolute;inset:0;background:rgba(0,0,0,.55);display:grid;place-items:center;font-size:24px;font-weight:800}
.gup{min-width:78%;background:var(--surface2)!important;color:var(--text,#fff)!important}
.gup-h{font-weight:700;font-size:14px;margin-bottom:6px}
.gup-row{display:flex;gap:10px;align-items:center;padding:6px 0;border-top:1px solid var(--line)}
.gup-th{position:relative;width:64px;height:64px;flex:none;border-radius:10px;overflow:hidden;background:#111;display:grid;place-items:center;font-size:26px}
.gup-th img{width:100%;height:100%;object-fit:cover}.gup-th .gmt-dur{font-size:10px;right:3px;bottom:3px;padding:2px 4px}
.gup-n{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:190px}
.gup-m{opacity:.75}
.gup-bar{height:7px;border-radius:4px;background:rgba(255,255,255,.12);margin:5px 0 3px;overflow:hidden}
.gup-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,#ff4f79,#8b6cff);border-radius:4px;transition:width .15s linear}
.gup-row.done .gup-bar i{background:#22c1a3}.gup-row.done .gup-s{color:#4ade80}
.gpost textarea{min-height:56px}
.gmv{position:fixed;inset:0;z-index:9000;background:#000;display:flex;flex-direction:column;color:#fff}
.gmv-top{display:flex;align-items:center;gap:10px;padding:calc(10px + env(safe-area-inset-top)) 12px 10px}
.gmv-x,.gmv-rep{background:rgba(255,255,255,.12);color:#fff;border:0;border-radius:20px;padding:9px 14px;font-size:15px}
.gmv-rep{color:#fca5a5}
.gmv-stage{flex:1;display:flex;align-items:center;justify-content:center;min-height:0}
.gmv-stage img,.gmv-stage video{max-width:100%;max-height:100%;width:100%;object-fit:contain;background:#000}
.gmv-cap{padding:12px 16px calc(16px + env(safe-area-inset-bottom));font-size:15px;line-height:1.4}
.gmv-nav{position:absolute;top:50%;margin-top:-24px;width:40px;height:48px;border:0;background:rgba(255,255,255,.14);color:#fff;font-size:28px;border-radius:12px}
.gmv-nav.l{left:8px}.gmv-nav.r{right:8px}
.gmv-ctl{display:flex;align-items:center;gap:10px;padding:10px 14px 4px;font:600 13px/1 -apple-system,system-ui,sans-serif;font-variant-numeric:tabular-nums}
.gmv-pp{width:40px;height:40px;border-radius:50%;border:0;background:#fff;color:#000;font-size:14px;flex:none}
.gmv-seek{flex:1;-webkit-appearance:none;appearance:none;height:6px;border-radius:3px;background:linear-gradient(90deg,#ff4f79 0,#8b6cff var(--p,0%),rgba(255,255,255,.25) var(--p,0%));outline:none;margin:0}
.gmv-seek::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;border-radius:50%;background:#fff;border:0;box-shadow:0 1px 6px rgba(0,0,0,.5)}
.gmv-seek::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:#fff;border:0}
.gmv-t0,.gmv-t1{min-width:52px;text-align:center}
#gtabs button{font-size:12px;padding-left:2px;padding-right:2px}

/* ---------- v5: verification, rules, privacy, safety, sellers, group live & calls (Oct 8, 2026) ---------- */
.v5steps{display:flex;gap:6px;margin:4px 0 10px}.v5steps i{flex:1;height:5px;border-radius:3px;background:var(--line)}.v5steps i.on{background:linear-gradient(90deg,#ff4f79,#8b6cff)}
.v5rules{display:flex;flex-direction:column;gap:8px;margin:6px 0 12px}.v5rule{display:flex;gap:12px;align-items:flex-start;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:11px 12px}.v5rule>span{font-size:24px;line-height:1.1}
.v5idrow{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.v5id{position:relative;display:grid;place-items:center;aspect-ratio:1.59;border:2px dashed var(--line);border-radius:14px;background:var(--surface);overflow:hidden;cursor:pointer;text-align:center;color:var(--muted);font-size:14px}
.v5id.done{border-style:solid;border-color:#22c1a3}.v5id img{width:100%;height:100%;object-fit:cover}.v5id .ok{position:absolute;right:6px;top:6px;background:#22c1a3;color:#fff;border-radius:50%;width:24px;height:24px;display:grid;place-items:center;font-weight:800;font-size:14px}
.v5cam{position:relative;width:240px;height:240px;margin:10px auto 6px}.v5cam.sm{width:190px;height:190px}
.v5camin{position:absolute;inset:14px;border-radius:50%;overflow:hidden;background:#111}.v5camin svg,.v5camin img{width:100%;height:100%;object-fit:cover;display:block}
.v5sel{transition:transform .6s ease}
.v5ring{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}.v5ring circle{fill:none;stroke-width:9}.v5ring .bg{stroke:rgba(255,255,255,.14)}.v5ring .fg{stroke:#22c1a3;stroke-linecap:round}
.v5pose{text-align:center;font-weight:800;font-size:19px;margin:6px 0 10px;min-height:26px}
.v5poses{display:flex;justify-content:center;gap:8px}.v5poses span{padding:7px 11px;border-radius:20px;background:var(--surface2);font-size:13px;font-weight:700;color:var(--muted)}.v5poses span.ok{background:rgba(34,193,163,.2);color:#4ade80}
.v5badge{display:inline-flex;align-items:center;gap:10px;margin-top:12px;background:var(--surface);border:1px solid var(--line);border-radius:40px;padding:6px 14px 6px 6px}
.v5av{width:44px;height:44px;border-radius:50%;overflow:hidden;display:block}.v5av svg,.v5av img{width:100%;height:100%;object-fit:cover}
.vbadge{background:#1d4ed8;color:#fff;border-radius:12px;padding:3px 9px;font-size:13px;font-weight:800}
.v5at{display:flex;align-items:center;gap:6px}.v5at span{font-size:22px;font-weight:800;color:var(--muted)}
.vitem.bad{color:#f87171}.vitem.bad .st{background:#dc2626;color:#fff}.vitem b{margin-left:4px;color:#4ade80;font-weight:700}.vitem.bad b{color:#f87171}
.v5ban{position:fixed;left:10px;right:10px;top:-90px;z-index:9500;background:#1b1d26;border:1px solid #8b6cff;color:#fff;border-radius:16px;padding:12px 14px;font-size:15px;box-shadow:0 10px 30px rgba(0,0,0,.5);transition:top .35s ease;text-decoration:none}.v5ban.in{top:calc(10px + env(safe-area-inset-top))}
.v5block{position:fixed;inset:0;z-index:9600;background:radial-gradient(circle at 50% 20%,#4a0f1c,#0d0e12 70%);color:#fff;display:flex;flex-direction:column;gap:12px;padding:calc(40px + env(safe-area-inset-top)) 22px 24px;overflow:auto}
.v5block h1{margin:0;font-size:30px}.v5bi{font-size:64px}.v5bc{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);border-radius:14px;padding:12px 14px;margin:6px 0}
.v5ph{width:82px;height:82px;flex:none;border-radius:12px;background:repeating-linear-gradient(45deg,#2b2f3d,#2b2f3d 8px,#353a4b 8px,#353a4b 16px);display:grid;place-items:center;text-align:center;font-size:22px}.v5ph span{display:block;font-size:10px;color:#a3a9b6;line-height:1.2}
.revb{position:absolute;left:6px;top:6px;z-index:2;background:rgba(0,0,0,.75);color:#fcd34d;border-radius:8px;padding:3px 7px;font-size:11px;font-weight:800}.revb.ok{color:#4ade80}
.grid3 .media{position:relative}
.v5sell h2{margin:4px 0 8px}
.v5live{display:flex;align-items:center;gap:10px;background:linear-gradient(90deg,rgba(239,68,68,.25),rgba(139,108,255,.2));border:1px solid rgba(239,68,68,.6);border-radius:14px;padding:10px 12px;margin:0 0 10px}
.v5live .lbadge{background:#ef4444;color:#fff;font-weight:800;font-size:12px;border-radius:6px;padding:3px 7px;animation:v5pulse 1.4s infinite}@keyframes v5pulse{50%{opacity:.55}}
.v5gbar{display:flex;align-items:center;gap:8px;margin:0 0 6px}.v5gb{border:0;background:var(--surface2);color:var(--text);border-radius:20px;height:38px;min-width:42px;padding:0 12px;font-size:17px}.v5gb.live{background:#ef4444;color:#fff;font-size:14px;font-weight:800}
.v5call{position:fixed;inset:0;z-index:9400;background:#0b0c10;color:#fff;display:flex;flex-direction:column}
.v5ctop{display:flex;align-items:center;gap:8px;padding:calc(12px + env(safe-area-inset-top)) 12px 10px}
.v5grid{flex:1;display:grid;gap:6px;padding:0 8px;grid-template-columns:1fr 1fr;grid-auto-rows:1fr;min-height:0}.v5grid.n1{grid-template-columns:1fr}.v5grid.n3 .v5tile:first-child{grid-column:1/3}
.v5tile{position:relative;border-radius:16px;overflow:hidden;background:#20232f;border:3px solid transparent;transition:border-color .2s}.v5tile.spk{border-color:#22c1a3}
.v5tile svg{width:100%;height:100%;object-fit:cover;display:block}.v5tile .nm{position:absolute;left:8px;bottom:8px;background:rgba(0,0,0,.6);border-radius:8px;padding:3px 8px;font-size:13px;font-weight:700}
.v5aud{position:absolute;inset:0;display:grid;place-items:center}.v5aud svg{width:46%;height:auto;border-radius:50%}
.v5ctl{display:flex;justify-content:center;gap:12px;padding:12px 10px calc(16px + env(safe-area-inset-bottom))}
.v5cb{border:0;background:rgba(255,255,255,.14);color:#fff;border-radius:22px;min-width:44px;height:44px;padding:0 12px;font-size:18px;display:inline-flex;flex-direction:column;align-items:center;justify-content:center}.v5cb span{font-size:10px;opacity:.85}
.v5ctl .v5cb{width:62px;height:62px;border-radius:50%}.v5cb.off{background:#fff;color:#000}.v5cb.end{background:#ef4444}
.v5mini{width:34px;height:34px;border-radius:50%;overflow:hidden;display:block;flex:none}.v5mini svg{width:100%;height:100%}

.cartfab{position:fixed;right:16px;bottom:86px;z-index:40;display:flex;gap:8px;align-items:center;padding:12px 18px;border-radius:999px;border:0;background:linear-gradient(135deg,#ff4f79,#8b6cff);color:#fff;font-weight:800;font-size:15px;box-shadow:0 8px 24px rgba(0,0,0,.45)}.cartfab b{background:#fff;color:#ff4f79;border-radius:999px;padding:1px 8px}

/* ---------- status ---------- */
.strow{display:flex;gap:12px;overflow-x:auto;padding:4px 2px 12px;margin:0 -4px 6px;scrollbar-width:none}
.strow::-webkit-scrollbar{display:none}
.stc{flex:0 0 auto;width:72px;border:0;background:none;padding:0;display:flex;flex-direction:column;align-items:center;gap:5px;cursor:pointer;position:relative;color:var(--text)}
.stc .ring{width:72px;height:72px;border-radius:50%;padding:3px;display:grid;place-items:center}
.stc .ring.new{background:conic-gradient(from 200deg,#ff4f79,#f59e0b,#8b6cff,#ff4f79)}
.stc .ring.mine{background:linear-gradient(135deg,#22c1a3,#3b82f6)}
.stc .ring.seen{background:#4a4f5e}
.stc .ring.none{background:transparent;border:2px dashed #4a4f5e}
.stc .ring>.stav{border:3px solid var(--bg)}
.stav{border-radius:50%;object-fit:cover;display:inline-grid;place-items:center;color:#fff;font-weight:800;flex:0 0 auto}
.stplus{position:absolute;top:48px;left:48px;width:24px;height:24px;border-radius:50%;background:var(--accent);color:#fff;font-weight:900;font-size:18px;line-height:22px;text-align:center;border:2px solid var(--bg)}
.stn{font-size:12px;font-weight:600;max-width:72px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.stv{position:fixed;inset:0;z-index:150;background:#000;color:#fff;overflow:hidden;animation:fade .2s}
.stmedia{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.stmedia img,.stmedia video{width:100%;height:100%;object-fit:cover}
.stbars{position:absolute;top:calc(var(--safe-t) + 10px);left:10px;right:10px;display:flex;gap:4px;z-index:3}
.stbars i{flex:1;height:3px;border-radius:2px;background:rgba(255,255,255,.35);overflow:hidden}
.stbars b{display:block;height:100%;background:#fff}
.sttop{position:absolute;top:calc(var(--safe-t) + 22px);left:12px;right:8px;display:flex;align-items:center;gap:10px;z-index:3;text-shadow:0 1px 4px rgba(0,0,0,.6)}
.sttop .stav{border:2px solid #fff}
.stago{opacity:.8;font-size:13px}
.stexp{font-size:12px;opacity:.9}
.stv::before{content:"";position:absolute;left:0;right:0;top:0;height:130px;background:linear-gradient(rgba(0,0,0,.55),transparent);z-index:2}
.stv::after{content:"";position:absolute;left:0;right:0;bottom:0;height:220px;background:linear-gradient(transparent,rgba(0,0,0,.65));z-index:2;pointer-events:none}
.stx{border:0;background:rgba(0,0,0,.25);color:#fff;width:36px;height:36px;border-radius:50%;font-size:18px;font-weight:800;cursor:pointer}
.sttap{position:absolute;top:90px;bottom:150px;z-index:2}.sttap.l{left:0;width:33%}.sttap.r{right:0;width:67%}
.stcap{position:absolute;left:16px;right:16px;bottom:128px;z-index:3;text-align:center;font-size:18px;font-weight:700;text-shadow:0 1px 6px rgba(0,0,0,.8)}
.streply{position:absolute;left:12px;right:12px;bottom:calc(var(--safe-b) + 66px);display:flex;gap:8px;z-index:3}
.streply .input{flex:1;background:rgba(0,0,0,.35);border:1.5px solid rgba(255,255,255,.6);color:#fff;border-radius:24px}
.stsend{border:0;width:46px;border-radius:50%;background:var(--accent);color:#fff;font-size:18px}
.streacts{position:absolute;left:12px;right:12px;bottom:calc(var(--safe-b) + 14px);display:flex;justify-content:space-around;z-index:3}
.streacts button{border:0;background:rgba(0,0,0,.3);width:46px;height:46px;border-radius:50%;font-size:24px;cursor:pointer}
.stfloat{position:absolute;bottom:80px;font-size:44px;z-index:5;animation:stup 1.4s ease-out forwards}
@keyframes stup{to{transform:translateY(-260px) scale(1.4);opacity:0}}
.stown{position:absolute;left:0;right:0;bottom:calc(var(--safe-b) + 20px);display:flex;justify-content:center;gap:10px;z-index:3}
.steye{border:0;background:rgba(255,255,255,.95);color:#111;border-radius:30px;padding:10px 20px;font-size:20px;display:flex;align-items:center;gap:8px;cursor:pointer;box-shadow:0 6px 24px rgba(0,0,0,.4)}
.steye b{font-size:22px}.steye span{font-size:14px;font-weight:700;color:#555}
.stseenby{border:1.5px solid rgba(255,255,255,.8);background:rgba(0,0,0,.3);color:#fff;border-radius:30px;padding:10px 18px;font-weight:700;cursor:pointer}
.stadd{position:fixed;inset:0;z-index:140;background:var(--bg);overflow-y:auto;animation:fade .2s}
.sthead{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;padding:calc(var(--safe-t) + 10px) 14px 10px;background:var(--bg);z-index:2}
.sthead .stx{background:var(--surface2)}
.stbody{padding:0 16px 30px}
.stpick{position:relative;height:300px;border-radius:20px;border:2px dashed var(--line);display:grid;place-items:center;overflow:hidden;background:var(--surface)}
.stpick img,.stpick video{width:100%;height:100%;object-fit:cover}
.stdur{position:absolute;right:10px;bottom:10px;background:rgba(0,0,0,.65);color:#fff;font-weight:800;padding:3px 9px;border-radius:10px;font-size:14px}
.stdur.bad{background:var(--bad)}
.stbtn{position:relative;font-weight:800}
.stsamp{border:0;padding:0;width:64px;height:84px;border-radius:12px;overflow:hidden;position:relative;background:var(--surface2);cursor:pointer}
.stsamp img{width:100%;height:100%;object-fit:cover}
.stsamp span{position:absolute;left:0;right:0;bottom:0;background:rgba(0,0,0,.6);color:#fff;font-size:11px;font-weight:800;padding:2px 0}
.sterr{background:rgba(255,93,93,.14);border:1.5px solid var(--bad);color:#ffd4d4;border-radius:14px;padding:12px 14px;margin:4px 0 12px;font-size:15px}
.stli{width:100%;border:0;background:none;color:inherit;text-align:left;font-size:16px;cursor:pointer}
.st-sheet{z-index:160}
.stviewers .li{padding:9px 2px}
.sthd{display:flex;align-items:baseline;justify-content:space-between;margin:2px 2px 8px}.sthd b{font-size:16px}.sthd span{font-size:12px;color:var(--muted)}

/* ---------- friends location ---------- */
.lcav{width:52px;height:52px;border-radius:50%;object-fit:cover;flex:0 0 auto}.lcav.sm{width:40px;height:40px}
.lcm{width:100%;border:0;background:none;color:inherit;text-align:left;cursor:pointer}
.lcr{width:22px;height:22px;border-radius:50%;border:2px solid var(--dim);flex:0 0 auto}
.lcm.on .lcr{border:7px solid var(--accent)}
.lcnote{background:rgba(139,108,255,.12);border:1px solid rgba(139,108,255,.4);border-radius:14px;padding:10px 12px;font-size:13px;color:#d9d3ff;margin-top:12px}
.lcmap{position:relative;height:420px;border-radius:20px;overflow:hidden;border:1px solid var(--line)}
.lcbg{width:100%;height:100%;object-fit:cover}
.lcpin{position:absolute;transform:translate(-50%,-100%);display:flex;flex-direction:column;align-items:center;gap:3px;animation:lcdrop .5s ease}
.lcpin img,.lcpin i{width:48px;height:48px;border-radius:50%;object-fit:cover;border:3px solid #fff;box-shadow:0 4px 14px rgba(0,0,0,.5);background:var(--accent2);display:grid;place-items:center;font-style:normal;font-weight:800;font-size:13px}
.lcpin span{background:#fff;color:#111;font-size:12px;font-weight:800;padding:2px 8px;border-radius:10px}
.lcpin.me img,.lcpin.me i{border-color:#22c1a3;box-shadow:0 0 0 8px rgba(34,193,163,.25),0 4px 14px rgba(0,0,0,.5)}
.lcpin.me span{background:#22c1a3;color:#fff}
@keyframes lcdrop{from{transform:translate(-50%,-160%);opacity:0}}
.lcmaptag{position:absolute;left:10px;top:10px;background:rgba(0,0,0,.65);font-size:13px;font-weight:700;padding:6px 10px;border-radius:12px}
.lcreq{margin-bottom:14px;border-color:var(--accent)}
.lcstop{color:var(--bad)}
.lcban{position:fixed;left:12px;right:12px;top:calc(var(--safe-t) + 66px);z-index:180;background:#fff;color:#111;border-radius:16px;padding:12px 14px;box-shadow:0 10px 30px rgba(0,0,0,.45);display:flex;gap:8px;align-items:center;font-size:15px;animation:pop .25s ease}
.lcban .lcgo{margin-left:auto;color:var(--accent);font-weight:800;white-space:nowrap}
