/* =====================================================================
   樂慾島　20261105.19　介面改版層（載在 style.css 之後）
   首頁、過場動畫、App 整合的分段、每個 App 自己的樣子、18LIVE、看直播、彈幕
   ===================================================================== */

/* ---------- 基底：畫面層、過場、淺色 App 的狀態列 ---------- */
#screen{z-index:1}
#fxlayer{position:absolute;inset:0;pointer-events:none;overflow:hidden}
#fxlayer.under{z-index:0}#fxlayer.over{z-index:2}
#fxlayer>*{overflow:hidden!important;pointer-events:none!important}
.fxing{overflow:hidden!important;will-change:transform}
.appv{animation:none}
.phone.lt .sbar{color:#15101c;text-shadow:none}
.phone.lt .sbar .bat{border-color:#15101c}.phone.lt .sbar .bat::after{background:#15101c}
.phone.lt .sbsave{color:#15101c;background:rgba(0,0,0,.07)}
.phone.lt .sbsave.sbmute.off{color:#d61f4a;background:rgba(214,31,74,.12)}
.sheet .sb{transition:transform .42s cubic-bezier(.2,.9,.25,1.05)}
.btn.pri:active,.mini:active{filter:brightness(.92)}

/* ---------- 共用：分頁改成底線式，跟整合 App 上方的分段分開 ---------- */
.tabs{gap:2px;padding:6px 10px 0;border-bottom:1px solid var(--line)}
.tabs button{position:relative;height:38px;padding:0 11px;border-radius:0;background:none!important;box-shadow:none!important;color:var(--dim);font-size:13.5px;font-weight:500;border:0}
.tabs button::after{content:'';position:absolute;left:10px;right:10px;bottom:0;height:2.5px;border-radius:2px;background:var(--ac);transform:scaleX(0);transition:transform .25s cubic-bezier(.2,.8,.2,1)}
.tabs button.on{color:var(--txt);font-weight:700}
.tabs button.on::after{transform:scaleX(1)}
.tabs button em{background:var(--ac);color:#fff;font-size:10px;padding:0 5px;border-radius:7px;margin-left:4px}
.abody{padding:14px 16px 34px}

/* ---------- 整合 App：標題列裡的分段 ---------- */
.appv.hubbed .ahd{flex-wrap:wrap;padding-bottom:10px}
.hubseg{flex:1 0 100%;display:flex;gap:4px;margin-top:10px;padding:3px;border-radius:14px;background:rgba(0,0,0,.28);border:1px solid rgba(255,255,255,.07)}
.hubseg button{flex:1;height:32px;padding:0 6px;border-radius:11px;font-size:12.5px;font-weight:700;color:var(--sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background .2s,color .2s,transform .15s}
.hubseg button:active{transform:scale(.96)}
.hubseg button.on{background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 80%,#fff),var(--ac));color:#fff;box-shadow:0 4px 14px color-mix(in srgb,var(--ac) 45%,transparent)}
.hubseg.scroll{display:flex;overflow-x:auto;scrollbar-width:none;justify-content:flex-start}
.hubseg.scroll::-webkit-scrollbar{display:none}
.hubseg.scroll button{flex:0 0 auto;padding:0 12px}
.hubseg button i{font-style:normal;margin-right:4px;opacity:.8}
/* 子 App 自己的分頁跟分段重複的，就藏起來 */
..hub-live.cam .tabs,.hub-live.live .tabs,.hub-career.agency .tabs{display:none}
.appv.hubbed{--ac:#ff3d8b}
.hub-live{--ac:#ff2a4f}.hub-map{--ac:#2fb1cf}.hub-fh{--ac:#ff6fae}.hub-book{--ac:#c86bff}.hub-career{--ac:#ffb347}.hub-abyss{--ac:#ff3355}.hub-assets{--ac:#4fcf9a}

/* =====================================================================
   首頁（左右滑兩頁）
   ===================================================================== */
.home.h2{background-position:50% 30%;transition:background-position .1s linear}
.home.h2 .hshade{background:linear-gradient(180deg,rgba(14,7,22,.6) 0%,rgba(14,7,22,.28) 22%,rgba(14,7,22,.5) 60%,rgba(14,7,22,.94) 100%)}
.home.h2 .hpages{scroll-snap-type:x mandatory;overscroll-behavior-x:contain}
.home.h2 .hpg{padding:60px 16px 112px;gap:12px;overflow-y:auto;display:flex;flex-direction:column}
.home.h2 .hpg>*{flex:0 0 auto}
/* 今天 */
.hero2{position:relative;border-radius:24px;overflow:hidden;background-size:cover;background-position:center 40%;padding:14px 16px 12px;min-height:148px;display:flex;flex-direction:column;justify-content:flex-end;box-shadow:0 16px 40px rgba(0,0,0,.4),0 0 0 1px rgba(255,255,255,.1)}
.hr2sh{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,5,16,.55),rgba(10,5,16,.1) 40%,rgba(10,5,16,.82))}
.hr2top{position:relative;display:flex;align-items:center;gap:8px;margin-bottom:auto}
.hr2day{font-family:var(--latin);font-size:24px;color:var(--gold);line-height:1;text-shadow:0 2px 10px rgba(0,0,0,.6)}
.hr2day small{font-size:13px;color:#e9ddf2;margin-left:2px}
.hr2top .wday{font-style:normal;font-size:11px;padding:1px 8px;border-radius:7px;background:rgba(255,255,255,.14);color:#fff;backdrop-filter:blur(6px)}
.hr2top .wday.wk{background:rgba(255,211,122,.3);color:var(--gold)}
.hr2time{margin-left:auto;font-size:12.5px;color:#f1e8f7;text-shadow:0 1px 4px rgba(0,0,0,.6)}
.hr2loc{position:relative;display:flex;align-items:baseline;gap:8px;width:100%;text-align:left;margin:16px 0 8px}
.hr2loc small{font-size:12px;color:#d9cfe3}.hr2loc b{font-family:var(--serif);font-size:24px;line-height:1.2;text-shadow:0 2px 12px rgba(0,0,0,.7)}
.hr2loc i{margin-left:auto;font-style:normal;font-size:12px;color:#fff;padding:3px 10px;border-radius:10px;background:rgba(255,255,255,.14);backdrop-filter:blur(6px)}
.hr2slots{position:relative;display:flex;gap:5px}
.hr2slots span{flex:1;display:flex;flex-direction:column;gap:4px;font-size:10px;color:rgba(255,255,255,.55);white-space:nowrap}
.hr2slots span i{height:3px;border-radius:2px;background:rgba(255,255,255,.18)}
.hr2slots span.done{color:#d9cfe3}.hr2slots span.done i{background:rgba(255,255,255,.5)}
.hr2slots span.on{color:var(--gold);font-weight:700}.hr2slots span.on i{background:linear-gradient(90deg,var(--gold),var(--pink));box-shadow:0 0 10px rgba(255,211,122,.6)}
.hr2act{display:flex;gap:8px}
.wcta2{flex:1;position:relative;overflow:hidden;display:flex;align-items:center;gap:10px;min-height:56px;padding:8px 16px;border-radius:20px;text-align:left;background:linear-gradient(135deg,#ff6aa8,#ff2d7e 60%,#e0106a);box-shadow:0 12px 30px rgba(255,45,126,.4),inset 0 1px 0 rgba(255,255,255,.35)}
.wcta2 b{display:block;font-size:16px;line-height:1.25}.wcta2 small{display:block;font-size:11.5px;opacity:.85;line-height:1.3}
.wcta2 i{margin-left:auto;font-style:normal;font-size:22px;opacity:.9}
.wcta2::after{content:'';position:absolute;top:0;bottom:0;width:40%;left:-60%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.35),transparent);transform:skewX(-20deg);animation:shine 4.2s ease-in-out infinite}
.wcta2.k-ml{background:linear-gradient(135deg,#ffd37a,#ff7a3d 55%,#ff2d7e);box-shadow:0 12px 30px rgba(255,140,60,.4),inset 0 1px 0 rgba(255,255,255,.4)}
.wcta2.k-ml b::before{content:'主線';display:inline-block;font-size:10px;font-weight:900;padding:0 6px;margin-right:6px;border-radius:6px;background:rgba(0,0,0,.25);vertical-align:2px}
.wcta2.k-night{background:linear-gradient(135deg,#7b6cff,#4b2fd0 60%,#2a1680);box-shadow:0 12px 30px rgba(90,60,220,.4)}
.wcta2.k-sleep{background:linear-gradient(135deg,#3a3350,#1e1830 60%,#120d1e);box-shadow:0 12px 30px rgba(0,0,0,.4)}
.wcta2.k-map{background:linear-gradient(135deg,#5ee7ff,#2fb1cf 60%,#1a4f86);box-shadow:0 12px 30px rgba(47,177,207,.35)}
.wrest2{flex:0 0 58px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;border-radius:20px;background:rgba(14,7,22,.6);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.12);color:#fff}
.wrest2 i{font-style:normal;font-size:20px;line-height:1}.wrest2 small{font-size:10px;color:var(--sub)}
.hr2pill .wev{margin-top:0;padding:8px 12px}
.hr2pill .wev b{font-size:13px}
.hnow2 .hnh{margin-bottom:6px}
.hnow2 .hstrip{padding:2px 2px 2px}
.hnow2 .hlv{flex:0 0 128px;height:86px;border-radius:14px}
.hnow2 .hlm{flex:0 0 176px;height:86px}
.hnow2 .hlvi .pav .av{width:24px;height:24px}
.home.h2 .grid.g2{grid-template-columns:repeat(4,1fr);gap:12px 6px;padding:2px 0 0;margin-top:2px}
.home.h2 .app{gap:5px;transition:transform .15s}
.home.h2 .app:active{transform:scale(.9)}
.home.h2 .aic{width:60px;height:60px;border-radius:19px;box-shadow:0 10px 22px rgba(0,0,0,.42),inset 0 1px 0 rgba(255,255,255,.4),inset 0 -1px 0 rgba(0,0,0,.25)}
.home.h2 .aic::after{background:linear-gradient(180deg,rgba(255,255,255,.3),rgba(255,255,255,.06) 50%,transparent 52%)}
.home.h2 .aic svg{width:54%;height:54%}
.home.h2 .an{font-size:11.5px;letter-spacing:.01em;text-shadow:0 1px 5px rgba(0,0,0,.75)}
.home.h2 .bdg{top:-5px;right:-6px;box-shadow:0 0 0 2px #140a1f}
.home.h2 .hdots{bottom:104px}
.home.h2 .hdots b{width:6px;height:6px;transition:width .25s,background .25s}
.home.h2 .hdots b.on{width:16px;border-radius:3px}
.home.h2 .dock{left:14px;right:14px;bottom:14px;padding:12px 8px 10px;border-radius:30px;background:rgba(14,7,22,.5);backdrop-filter:blur(26px) saturate(1.3);border:1px solid rgba(255,255,255,.12);box-shadow:0 20px 50px rgba(0,0,0,.45)}
.home.h2 .dock .aic{width:56px;height:56px;border-radius:18px}
/* 我 */
.me2{position:relative;padding:14px 14px 12px;border-radius:24px;background:rgba(14,7,22,.6);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.12);box-shadow:0 14px 40px rgba(0,0,0,.35)}
.me2h{display:flex;align-items:center;gap:12px}
.me2h .mav{position:relative;display:inline-block;border-radius:50%;padding:3px;background:var(--holo);background-size:200% 100%;animation:holo 6s linear infinite}
.me2h .mav .av{width:54px;height:54px;font-size:22px;box-shadow:0 0 0 2px #07040b}
.me2h>div{flex:1;min-width:0}
.me2h b{display:block;font-family:var(--serif);font-size:19px;line-height:1.25}.me2h small{display:block;font-size:12px;color:var(--sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.me2h .mpets{display:block;font-style:normal;font-size:14px;letter-spacing:2px;margin-top:2px}
.me2set{flex:0 0 36px;width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center}
.me2set svg{width:18px;height:18px}
.me2s{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin-top:12px;text-align:center}
.me2s span{display:flex;flex-direction:column;font-size:10.5px;color:var(--dim);padding:8px 2px;border-radius:12px;background:rgba(255,255,255,.04)}
.me2s b{font-size:15px;color:var(--txt);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.me2s b.c{color:var(--gold)}
.wal2{position:relative;display:flex;align-items:center;gap:10px;width:100%;padding:14px 16px;border-radius:22px;text-align:left;overflow:hidden;background:linear-gradient(135deg,#2b1a3a,#120a1a);border:1px solid rgba(255,211,122,.3);box-shadow:0 14px 40px rgba(0,0,0,.35)}
.wal2::before{content:'';position:absolute;inset:0;background:var(--holo);opacity:.1;background-size:200% 100%;animation:holo 12s linear infinite;pointer-events:none}
.wal2l{position:relative;flex:1;min-width:0}
.wal2l small{display:block;font-size:9.5px;letter-spacing:.12em;color:var(--gold)}
.wal2l b{display:block;font-family:var(--latin);font-size:30px;line-height:1.15;color:#fff}
.wal2l span{display:block;font-size:11.5px;color:var(--sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wal2b{position:relative;display:flex;align-items:flex-end;gap:3px;height:36px;flex:0 0 auto}
.wal2b i{width:7px;height:var(--h);border-radius:3px;background:rgba(255,255,255,.22);min-height:3px}
.wal2b i.on{background:linear-gradient(180deg,var(--gold),var(--pink))}
.wal2 .gemx{position:relative;width:22px;height:22px;flex:0 0 auto}
.hrt2{display:block;width:100%;text-align:left;padding:12px 14px;border-radius:20px;background:rgba(14,7,22,.55);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.1);box-shadow:0 10px 30px rgba(0,0,0,.3)}
.hrt2h{display:flex;align-items:baseline;gap:8px}
.hrt2h b{font-family:var(--serif);font-size:15px}.hrt2h small{font-size:11px;color:var(--dim)}.hrt2h i{margin-left:auto;font-style:normal;font-size:11.5px;color:var(--pink2)}
.hrt2l{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:10px}
.hrt2p{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:0}
.hrt2p .pav .av{width:46px;height:46px}
.hrt2p.lv .pav .av{box-shadow:0 0 0 2px var(--pink)}
.hrt2p b{font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.hrt2p small{font-size:10px;color:var(--dim)}
.hrt2p.lv small{color:var(--pink2)}
.hrt2e{font-size:12px;color:var(--dim);margin-top:8px;line-height:1.5}
.qbar{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.qbar button{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 4px 10px;border-radius:16px;background:rgba(14,7,22,.5);border:1px solid rgba(255,255,255,.08);font-size:11.5px;color:var(--sub)}
.qbar button i{width:30px;height:30px;border-radius:10px;background:rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center}
.qbar button i svg{width:16px;height:16px}
.log2{padding:12px 14px;border-radius:18px;background:rgba(14,7,22,.5);border:1px solid rgba(255,255,255,.08);font-size:12.5px;color:var(--sub)}
.log2h{font-size:11px;color:var(--dim);letter-spacing:.04em;margin-bottom:6px}
.log2 div{display:flex;gap:8px;padding:3px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.log2 small{flex:0 0 46px;font-family:var(--latin);color:var(--dim)}
.log2 .dim{color:var(--dim)}
@media (max-height:720px){.home.h2 .hpg{padding-top:54px;gap:9px;padding-bottom:100px}.hero2{min-height:118px;padding:12px 14px 10px}.hr2loc{margin:8px 0 6px}.hr2loc b{font-size:20px}.wcta2{min-height:48px}.hnow2 .hlv,.hnow2 .hlm{height:74px}.home.h2 .grid.g2{gap:8px 6px}.home.h2 .aic{width:52px;height:52px;border-radius:16px}.home.h2 .an{font-size:10.5px}.home.h2 .dock{bottom:10px;padding:10px 8px 8px}.home.h2 .dock .aic{width:50px;height:50px}.home.h2 .hdots{bottom:92px}.log2{display:none}.hrt2p .pav .av{width:40px;height:40px}}

/* =====================================================================
   每個 App 自己的樣子
   ===================================================================== */
/* 淺色主題：Instar、LIME、LustEats、星輝商場 */
.appv.instar,.appv.lime,.appv.chat,.appv.le,.appv.shop{--ink:#fff;--ink2:#fff;--ink3:#f1eef4;--txt:#17111f;--sub:#5d5268;--dim:#8f8699;--line:rgba(0,0,0,.08);--line2:rgba(0,0,0,.16);background:#fff;color:var(--txt)}
.appv.instar .ahd,.appv.lime .ahd,.appv.chat .ahd,.appv.le .ahd,.appv.shop .ahd{background:#fff;border-bottom:1px solid rgba(0,0,0,.07)}
.appv.instar .ahd::before,.appv.lime .ahd::before,.appv.chat .ahd::before,.appv.le .ahd::before,.appv.shop .ahd::before{opacity:.35}
.appv.instar .ahd::after,.appv.lime .ahd::after,.appv.chat .ahd::after,.appv.le .ahd::after,.appv.shop .ahd::after{opacity:.5}
.appv.instar .back,.appv.lime .back,.appv.chat .back,.appv.le .back,.appv.shop .back{background:rgba(0,0,0,.06);color:#17111f}
.appv.instar .mini,.appv.lime .mini,.appv.le .mini,.appv.shop .mini{background:rgba(0,0,0,.05);border-color:rgba(0,0,0,.1)}
.appv.instar .inp,.appv.le .inp,.appv.shop .inp{background:#f1eef4;border-color:rgba(0,0,0,.08)}
.appv.instar .btn.ghost,.appv.le .btn.ghost,.appv.shop .btn.ghost,.appv.lime .btn.ghost{background:rgba(0,0,0,.05);border-color:rgba(0,0,0,.12)}
.appv.instar .tabs button.on,.appv.le .tabs button.on,.appv.shop .tabs button.on{color:#17111f}
.appv.instar .ahd .aht b,.appv.le .ahd .aht b,.appv.shop .ahd .aht b,.appv.lime .ahd .aht b,.appv.chat .ahd .aht b{color:#17111f}
.appv.instar .hubseg,.appv.le .hubseg,.appv.shop .hubseg{background:rgba(0,0,0,.05)}
/* Instar */
.appv.instar .ahd .aht b{font-family:'Bodoni Moda','Didot',var(--serif);font-style:italic;font-size:22px;letter-spacing:.02em}
.appv.instar .isr .inp{height:36px;border-radius:12px}
.appv.instar .post{border-bottom-color:rgba(0,0,0,.06);padding-bottom:14px}
.appv.instar .poh b{font-size:13.5px}.appv.instar .poh small{color:var(--dim)}
.appv.instar .pot{font-size:14px}.appv.instar .pocm{color:var(--sub)}
.appv.instar .like{color:#17111f}.appv.instar .like.on{color:#ff2d55}
.appv.instar .post .mini{background:#17111f;color:#fff;border-color:#17111f}
.appv.instar .srch{background:linear-gradient(130deg,color-mix(in srgb,var(--lc,#a495ff) 16%,#fff),#fff);border-color:color-mix(in srgb,var(--lc,#a495ff) 40%,transparent)}
.appv.instar .empty b{color:#17111f}
/* LIME */
.appv.lime .ahd .aht b{color:#06b04e}
.appv.lime .lrow{border-bottom-color:rgba(0,0,0,.06);padding:11px 0}
.appv.lime .lrow .pav .av{box-shadow:none}
.appv.lime .lrow em{background:rgba(6,199,85,.14);color:#05873c}
.appv.chat{background:#86a7d6}
.appv.chat .ahd{background:#fff}
.appv.chat .cbody{background:#86a7d6;padding:14px 12px 18px}
.appv.chat .csep{background:rgba(0,0,0,.2);color:#fff}
.appv.chat .cm span{background:#fff;color:#17111f;box-shadow:0 1px 2px rgba(0,0,0,.08)}
.appv.chat .cm.me span{background:#8de36f;color:#0b2b0f}
.appv.chat .cm .pav .av{box-shadow:0 0 0 2px rgba(255,255,255,.6)}
.appv.chat .cfoot{background:#fff;border-top-color:rgba(0,0,0,.06)}
.appv.chat .qr button{background:#f1f9ef;border-color:#8de36f;color:#17111f}
.appv.chat .cin{background:#f1eef4;color:#9a92a3}
.appv.chat #ch-st{color:var(--dim)}
/* LustEats */
.appv.le{background:#fff8f3;--ink2:#fff8f3;--ink3:#f6ece4}
.appv.le .ahd{background:linear-gradient(180deg,#ffe9d6,#fff8f3)}
.appv.le .ahd .aht b{color:#e8560f;font-family:var(--sans);font-weight:900;letter-spacing:-.01em}
.appv.le .lepr{background:linear-gradient(135deg,#ff7a3d,#ff9e5a);border:0;color:#fff;box-shadow:0 10px 24px rgba(255,122,61,.3)}
.appv.le .lepr span{color:rgba(255,255,255,.88)}
.appv.le .lebk{background:#eafaf0;border-color:#9ee0b4;color:#1c6e52}.appv.le .lebk span{color:#2d8a66}
.appv.le .lei{border-bottom-color:rgba(0,0,0,.06);padding:12px 0}
.appv.le .lei .hth{border-radius:14px;box-shadow:0 6px 16px rgba(0,0,0,.08)}
.appv.le .lem em{color:#e8560f}.appv.le .lem i{color:var(--dim)}
.appv.le .hrow{border-bottom-color:rgba(0,0,0,.06)}
.appv.le .lep{color:#e8560f}
.appv.le .lemap{background:radial-gradient(60% 80% at 30% 40%,rgba(255,122,61,.14),transparent),repeating-linear-gradient(0deg,rgba(0,0,0,.05) 0 1px,transparent 1px 22px),repeating-linear-gradient(90deg,rgba(0,0,0,.05) 0 1px,transparent 1px 22px),#fff1e6}
.appv.le .lest i{background:rgba(0,0,0,.08)}.appv.le .lest div.on{color:#e8560f}
.appv.le .lecr{background:#fff;border-color:rgba(0,0,0,.08);box-shadow:0 6px 18px rgba(0,0,0,.06)}
.appv.le .tabs button.on::after{background:#e8560f}
/* 星輝商場 */
.appv.shop{background:#fbf8f2;--ink2:#fbf8f2;--ink3:#f1ebe0}
.appv.shop .ahd{background:linear-gradient(180deg,#f3e9d8,#fbf8f2)}
.appv.shop .ahd .aht b{font-family:'Bodoni Moda','Didot',var(--serif);font-style:italic;font-size:22px;letter-spacing:.08em;color:#8a6a2f}
.appv.shop .sbal{color:var(--dim)}.appv.shop .sbal b{color:#8a6a2f}
.appv.shop .sgrid{gap:14px 12px}
.appv.shop .si span{border-radius:4px;box-shadow:0 10px 24px rgba(0,0,0,.08)}
.appv.shop .si b{font-family:var(--serif);font-size:13.5px;color:#17111f}.appv.shop .si small{color:#8a6a2f;letter-spacing:.04em}
.appv.shop .tabs button.on::after{background:#c9a35c}
/* 慾Tube */
.appv.tube{background:#0b0b0d;--ink2:#0b0b0d;--ink3:#1c1c21;--line:rgba(255,255,255,.08)}
.appv.tube .ahd{background:#0b0b0d;border-bottom-color:rgba(255,255,255,.06)}
.appv.tube .ahd::before{display:none}
.appv.tube .ahd .aht b{font-family:var(--sans);font-weight:900;letter-spacing:-.02em}
.tb2ch{display:flex;align-items:center;gap:12px;padding:4px 0 12px;border-bottom:1px solid rgba(255,255,255,.08)}
.tb2ch .tb2av .av{width:48px;height:48px}
.tb2ch>div{flex:1;min-width:0}.tb2ch b{display:block;font-size:16px}.tb2ch small{display:block;font-size:11.5px;color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tb2ch .mini{background:#fff;color:#0b0b0d;border:0}
.tb2sec{font-size:14px;font-weight:700;margin:16px 0 8px;display:flex;align-items:center;gap:6px}
.tb2sec::before{content:'';width:3px;height:14px;border-radius:2px;background:#e0102f}
.tb2ft{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding-bottom:4px}
.tb2f{position:relative;flex:0 0 150px;height:84px;border-radius:12px;overflow:hidden;background-size:cover;background-position:center;text-align:left;padding:8px;display:flex;flex-direction:column;justify-content:flex-end;box-shadow:0 0 0 1px rgba(255,255,255,.1)}
.tb2f::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,rgba(0,0,0,.85))}
.tb2f::after{content:'↑ 剪好上傳';position:absolute;top:6px;right:6px;font-size:10px;padding:2px 7px;border-radius:6px;background:#e0102f;color:#fff}
.tb2f b{position:relative;font-size:12.5px;line-height:1.3}.tb2f small{position:relative;font-size:10px;color:var(--sub)}
.tb2sh{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding-bottom:4px}
.tb2sh::-webkit-scrollbar,.tb2ft::-webkit-scrollbar{display:none}
.tb2s{position:relative;flex:0 0 108px;aspect-ratio:9/15;border-radius:12px;overflow:hidden;background-size:cover;background-position:center;padding:8px;display:flex;flex-direction:column;justify-content:flex-end}
.tb2s::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(0,0,0,.9))}
.tb2s span{position:absolute;top:6px;left:6px;font-size:10px;padding:1px 6px;border-radius:6px;background:rgba(0,0,0,.55)}
.tb2s b{position:relative;font-size:11.5px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.tb2v{margin:0 -16px 14px}
.tb2th{position:relative;aspect-ratio:16/9;background-size:cover;background-position:center;background-color:#1c1c21}
.tb2th i{position:absolute;right:8px;bottom:8px;font-style:normal;font-size:11px;padding:1px 6px;border-radius:4px;background:rgba(0,0,0,.8);font-weight:700}
.tb2th::after{content:'';position:absolute;left:50%;top:50%;width:46px;height:46px;transform:translate(-50%,-50%);border-radius:50%;background:rgba(0,0,0,.5);-webkit-mask:radial-gradient(circle,#000 98%,transparent) ;opacity:0;transition:opacity .2s}
.tb2i{display:flex;gap:10px;padding:10px 16px 0}
.tb2i .pav .av{width:34px;height:34px}
.tb2i>div{flex:1;min-width:0}.tb2i b{display:block;font-size:14px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.tb2i small{font-size:12px;color:var(--dim)}
/* 粉絲屋：粉紅儀表板 */
.appv.fh{background:#1a0a16;--ink2:#1a0a16}
.appv.fh .ahd{background:linear-gradient(180deg,#3a0f2e,rgba(26,10,22,.4))}
.appv.fh .fhsum div{background:linear-gradient(160deg,rgba(255,111,174,.22),rgba(255,255,255,.03));border-color:rgba(255,111,174,.25)}
.appv.fh .fhsum b{font-family:var(--latin);font-size:22px}
.fhbars{display:flex;align-items:flex-end;gap:10px;margin:12px 0 4px;padding:12px 14px;border-radius:16px;background:rgba(255,255,255,.04);border:1px solid var(--line)}
.fhbars small{font-size:11px;color:var(--dim);writing-mode:horizontal-tb;align-self:center;flex:0 0 auto}
.fhbars>div{flex:1;display:flex;align-items:flex-end;gap:5px;height:44px}
.fhbars i{flex:1;height:var(--h);border-radius:3px;background:rgba(255,255,255,.18);min-height:3px;transition:height .6s}
.fhbars i.on{background:linear-gradient(180deg,#ff6fae,#ff2d7e)}
.fhbars em{font-style:normal;font-size:13px;color:var(--gold);align-self:center}
.appv.fh .fhpod>div{background:rgba(255,255,255,.04)}
.appv.fh .fhc{background:rgba(255,255,255,.05)}
/* 心動圖鑑 */
.appv.roster,.appv.dex{background:#150c22;--ink2:#150c22}
.appv.roster .ahd,.appv.dex .ahd{background:linear-gradient(180deg,#2a1245,rgba(21,12,34,.4))}
.appv.roster .rgrid{gap:12px 10px}
.appv.roster .rimg{border-radius:16px;box-shadow:0 10px 24px rgba(0,0,0,.4)}
.appv.roster .rcard b{font-family:var(--serif);font-size:14px}
.appv.roster .rcard.lover .rimg{box-shadow:0 0 0 2px var(--pink),0 10px 24px rgba(255,61,139,.3)}
.appv.dex .dximg{border-radius:14px;box-shadow:0 8px 20px rgba(0,0,0,.35)}
/* 星途（經紀公司、選秀、學苑） */
.appv.agency,.appv.show,.appv.academy{background:#160f1e;--ink2:#160f1e}
.appv.agency .ahd,.appv.show .ahd,.appv.academy .ahd{background:linear-gradient(180deg,#3a2446,rgba(22,15,30,.4))}
.appv.agency .agco,.appv.academy .crs{border-radius:18px}
.appv.academy .crs .medal{box-shadow:0 0 0 2px color-mix(in srgb,var(--c,#a495ff) 60%,#fff),0 6px 16px rgba(0,0,0,.4),0 0 18px color-mix(in srgb,var(--c,#a495ff) 35%,transparent)}
/* 慾挑 */
.appv.dare{background:#1c0d0a;--ink2:#1c0d0a}
.appv.dare .ahd{background:linear-gradient(180deg,#4a1a0e,rgba(28,13,10,.4))}
.appv.dare .dcd{background:linear-gradient(135deg,rgba(255,155,47,.08),rgba(255,255,255,.02));border-color:rgba(255,155,47,.2)}
/* 禁慾深淵全家 */
.appv.abyss,.appv.ds,.appv.cell,.appv.cuff,.appv.hunt,.appv.rack,.appv.mf,.appv.hall{background:#0a0507;--ink2:#0a0507;--ink3:#1c0c12;--line:rgba(255,80,110,.12)}
.appv.abyss .ahd,.appv.ds .ahd,.appv.cell .ahd,.appv.cuff .ahd,.appv.hunt .ahd,.appv.rack .ahd,.appv.mf .ahd,.appv.hall .ahd{background:linear-gradient(180deg,#2a0510,rgba(10,5,7,.3));border-bottom-color:rgba(255,80,110,.14)}
.appv.abyss .hubseg,.appv.ds .hubseg,.appv.cell .hubseg,.appv.cuff .hubseg,.appv.hunt .hubseg,.appv.rack .hubseg,.appv.mf .hubseg,.appv.hall .hubseg{background:rgba(0,0,0,.5);border-color:rgba(255,80,110,.18)}
.abhero{position:relative;height:150px;border-radius:22px;overflow:hidden;background-size:cover;background-position:center;margin-bottom:14px;box-shadow:0 0 0 1px rgba(255,51,85,.35),0 16px 40px rgba(0,0,0,.6)}
.absh{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,5,7,.2),rgba(10,5,7,.9)),radial-gradient(70% 60% at 80% 10%,rgba(255,51,85,.35),transparent 60%)}
.abt{position:absolute;left:16px;right:16px;bottom:14px}
.abt small{display:block;font-size:10px;letter-spacing:.3em;color:#ff6b80}
.abt b{display:block;font-family:var(--serif);font-size:30px;font-weight:900;color:#fff;text-shadow:0 0 24px rgba(255,51,85,.6)}
.abt span{display:block;font-size:12px;color:var(--sub);margin-top:2px}
.abdoors{display:flex;flex-direction:column;gap:10px}
.abdoor{position:relative;display:flex;align-items:center;gap:12px;min-height:88px;padding:12px 14px;border-radius:18px;overflow:hidden;text-align:left;background-size:cover;background-position:center;box-shadow:0 0 0 1px rgba(255,51,85,.25),0 10px 26px rgba(0,0,0,.5);transition:transform .15s}
.abdoor:active{transform:scale(.98)}
.abdoor .abdsh{position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,5,7,.92) 35%,rgba(10,5,7,.55))}
.abdoor i{position:relative;font-style:normal;font-family:var(--latin);font-size:22px;color:#ff3355;text-shadow:0 0 14px rgba(255,51,85,.7);flex:0 0 36px}
.abdt{position:relative;flex:1;min-width:0}
.abdt b{display:block;font-family:var(--serif);font-size:17px}.abdt small{display:block;font-size:11px;color:#ff8fa3;letter-spacing:.04em}.abdt p{margin:3px 0 0;font-size:11.5px;color:var(--sub);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.abdoor em{position:relative;font-style:normal;font-size:11.5px;color:#fff;padding:5px 10px;border-radius:10px;background:rgba(255,51,85,.3);border:1px solid rgba(255,51,85,.5);white-space:nowrap}
.abdoor.lock{filter:saturate(.3)}
.abdoor.lock em{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.14);color:var(--dim)}
.abdoor.lock .abdt b{color:var(--sub)}
.appv.ds .chip.hd.on,.appv.cell .chipp.hard{box-shadow:0 0 14px rgba(255,51,85,.35)}
/* 我的資產、錢包 */
.appv.assets,.appv.wallet{background:#0d1512;--ink2:#0d1512;--line:rgba(95,227,154,.1)}
.appv.assets .ahd,.appv.wallet .ahd{background:linear-gradient(180deg,#153126,rgba(13,21,18,.4))}
.appv.wallet .wcard{aspect-ratio:1.7;border-radius:24px;background:linear-gradient(135deg,#1e3a2e,#0b1a14);border-color:rgba(255,211,122,.4)}
.appv.wallet .wcard b{font-size:42px}
.appv.wallet .wst div{background:rgba(255,255,255,.04)}
.appv.assets .hrow{padding:12px 0}
.appv.assets .hth{border-radius:14px;box-shadow:0 8px 20px rgba(0,0,0,.35)}
/* 收藏：相簿 */
.appv.album{background:#0e0a14;--ink2:#0e0a14}
.appv.album .ahd{background:linear-gradient(180deg,#2a1a3a,rgba(14,10,20,.4))}
.appv.album .alb{border-radius:20px;background:linear-gradient(130deg,color-mix(in srgb,var(--lc) 18%,transparent),rgba(255,255,255,.02))}
.appv.album .albi{border-radius:14px}
.appv.album .albi.on{background:color-mix(in srgb,var(--lc) 18%,rgba(255,255,255,.06))}
/* 設定：分組清單 */
.appv.settings{background:#111115;--ink2:#111115}
.appv.settings .ahd{background:#111115;border-bottom-color:rgba(255,255,255,.06)}
.appv.settings .ahd::before{display:none}
.appv.settings .tg{background:#1c1c22;border:0;border-radius:0;margin-bottom:1px;padding:13px 14px}
.appv.settings .tg:first-of-type{border-radius:14px 14px 0 0}
.appv.settings .lbl{margin:20px 2px 8px}
.appv.settings .seg{background:#1c1c22;border:0}
.appv.settings .stl{padding:14px;background:#1c1c22;border-radius:14px;border:0;margin-top:14px}
.appv.settings .btn.ghost.wide{background:#1c1c22;border:0;border-radius:14px;height:48px}
/* 地圖 */
.appv.map,.appv.sky{background:#0b0f24;--ink2:#0b0f24}
.appv.map .ahd,.appv.sky .ahd{background:linear-gradient(180deg,#15306a,rgba(11,15,36,.4))}
.appv.sky .city{border-radius:22px;height:160px;box-shadow:0 12px 30px rgba(0,0,0,.4)}
/* 通告板 */
.appv.notice .ahd{background:linear-gradient(180deg,#3d0f26,rgba(20,10,31,.3))}

/* =====================================================================
   18LIVE（直播大廳）
   ===================================================================== */
.appv.live{background:#0e0609;--ink2:#0e0609}
.appv.live .ahd{background:linear-gradient(180deg,#3a0712,rgba(14,6,9,.4))}
.lv2feat{position:relative;display:block;width:100%;aspect-ratio:16/11;border-radius:22px;overflow:hidden;background-size:cover;background-position:center;text-align:left;box-shadow:0 16px 40px rgba(0,0,0,.55),0 0 0 1px rgba(255,255,255,.1)}
.lv2fsh{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.35),transparent 30%,transparent 55%,rgba(0,0,0,.9))}
.lv2ftop{position:absolute;top:10px;left:10px;right:10px;display:flex;align-items:center;gap:6px}
.lv2ftop .lvbadge{position:static}
.lv2v{display:inline-flex;align-items:center;gap:4px;font-size:11px;padding:1px 8px;border-radius:6px;background:rgba(0,0,0,.5)}
.lv2v i{width:5px;height:5px;border-radius:50%;background:#fff;animation:blink 1.4s steps(2) infinite}
.lv2ftop em{margin-left:auto;font-style:normal;font-size:10px;letter-spacing:.1em;padding:2px 8px;border-radius:6px;background:linear-gradient(135deg,#ffd37a,#ff7a3d);color:#2a0a0a;font-weight:900}
.lv2lanes{position:absolute;left:0;right:0;top:40px;height:80px;overflow:hidden;pointer-events:none;-webkit-mask:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.lvpf{position:absolute;left:100%;white-space:nowrap;font-style:normal;font-size:12px;padding:3px 9px;border-radius:12px;background:rgba(0,0,0,.42);color:#f3eaf8;animation:w2fly 7s linear calc(var(--i)*1.6s) infinite}
.lvpf b{color:var(--cyan);font-weight:500;margin-right:5px}
.lv2fi{position:absolute;left:12px;right:12px;bottom:12px;display:flex;align-items:center;gap:8px}
.lv2fi .pav .av{width:38px;height:38px;box-shadow:0 0 0 2px var(--live)}
.lv2fi>div{flex:1;min-width:0}.lv2fi b{display:block;font-size:15px}.lv2fi small{display:block;font-size:11px;color:var(--sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lv2go{flex:0 0 auto;font-size:12px;font-weight:700;padding:7px 12px;border-radius:12px;background:#fff;color:#0e0609}
.lv2grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.lv2c{position:relative;aspect-ratio:3/4;border-radius:18px;overflow:hidden;background-size:cover;background-position:center;text-align:left;box-shadow:0 10px 24px rgba(0,0,0,.4),0 0 0 1px rgba(255,255,255,.08);transition:transform .15s}
.lv2c:active{transform:scale(.97)}
.lv2c::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.15),transparent 35%,rgba(0,0,0,.88))}
.lv2c .lvbadge{top:8px;left:8px}
.lv2c .lv2v{position:absolute;top:8px;right:8px;z-index:1}
.lv2c .lvi{bottom:24px}
.lv2c .lvi .pav .av{width:28px;height:28px}
.lv2fac{position:absolute;left:10px;right:10px;bottom:8px;z-index:1;font-size:10px;color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lvgo{display:flex;flex-direction:column}
.lvgo-hero{position:relative;height:160px;border-radius:22px;overflow:hidden;background-size:cover;background-position:center;box-shadow:0 14px 36px rgba(0,0,0,.5)}
.lvgo-sh{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.2),rgba(14,6,9,.92))}
.lvgo-t{position:absolute;left:16px;right:16px;bottom:14px}
.lvgo-t .lvbadge{position:static;display:inline-block;margin-bottom:6px}
.lvgo-t b{display:block;font-family:var(--serif);font-size:24px}.lvgo-t small{display:block;font-size:12px;color:var(--sub);line-height:1.5}
.lvwh{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:12px 14px;border-radius:16px;background:rgba(255,255,255,.05);border:1px solid var(--line);margin-bottom:8px}
.lvwh i{font-style:normal;font-size:22px;flex:0 0 auto}
.lvwh>div{flex:1;min-width:0}.lvwh b{display:block;font-size:14.5px}.lvwh small{display:block;font-size:11.5px;color:var(--dim);line-height:1.45}
.lvwh em{font-style:normal;font-size:20px;color:var(--dim)}
.lvwh.dis{opacity:.45}
.lvst{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.lvst div{text-align:center;padding:10px 4px;border-radius:14px;background:rgba(255,255,255,.04);border:1px solid var(--line)}
.lvst small{display:block;font-size:10.5px;color:var(--dim)}.lvst b{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}

/* =====================================================================
   看直播（改版）
   ===================================================================== */
.watch2{position:absolute;inset:0;background:#000;overflow:hidden;user-select:none}
.w2bg{position:absolute;inset:-2%;background-size:cover;background-position:center;animation:slowzoom 28s ease-in-out infinite alternate}
.w2sh{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.62),transparent 26%,transparent 50%,rgba(0,0,0,.86) 86%)}
.watch2.flash::before{content:'';position:absolute;inset:0;z-index:5;background:radial-gradient(circle,rgba(255,230,170,.55),transparent 70%);animation:w2flash .5s ease-out forwards;pointer-events:none}
@keyframes w2flash{from{opacity:1}to{opacity:0}}
.w2top{position:absolute;top:50px;left:12px;right:12px;z-index:6;display:flex;align-items:center;gap:8px}
.w2back{flex:0 0 34px;background:rgba(0,0,0,.4);backdrop-filter:blur(8px)}
.w2host{display:flex;align-items:center;gap:8px;flex:1;min-width:0;padding:4px 6px 4px 4px;border-radius:24px;background:rgba(0,0,0,.42);backdrop-filter:blur(10px)}
.w2host .pav .av{width:34px;height:34px}
.w2host>div{flex:1;min-width:0}
.w2host b{display:block;font-size:13.5px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.w2host small{display:block;font-size:10.5px;color:var(--sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.w2fol{flex:0 0 auto;height:28px;padding:0 12px;border-radius:14px;background:linear-gradient(135deg,#ff5fa2,#ff2d7e);font-size:12px;font-weight:700;transition:background .2s}
.w2fol.on{background:rgba(255,255,255,.14);color:var(--sub)}
.w2stat{display:flex;flex-direction:column;align-items:flex-end;gap:3px;flex:0 0 auto}
.w2stat .lvbadge{position:static;animation:livep 1.6s infinite}
.w2v{font-size:11px;padding:1px 8px;border-radius:6px;background:rgba(0,0,0,.5);font-variant-numeric:tabular-nums}
.w2rank{position:absolute;top:94px;left:14px;z-index:5;display:flex;align-items:center;padding:3px 8px 3px 3px;border-radius:14px;background:rgba(0,0,0,.4);backdrop-filter:blur(8px)}
.w2ra{width:22px;height:22px;border-radius:50%;margin-right:-6px;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:900;color:#2a0a1a;border:1.5px solid #000}
.w2ra.r1{background:linear-gradient(135deg,#fff3c4,#ffd37a);z-index:3}.w2ra.r2{background:linear-gradient(135deg,#f3f3f3,#c9c9d6);z-index:2}.w2ra.r3{background:linear-gradient(135deg,#ffd9b8,#d98a4f);z-index:1}
.w2rank small{margin-left:12px;font-size:10px;color:var(--sub)}
.w2title{position:absolute;top:94px;right:14px;z-index:5;max-width:52%;display:flex;align-items:center;gap:6px;font-size:11px;color:#f3eaf8;padding:4px 10px;border-radius:12px;background:rgba(0,0,0,.4);backdrop-filter:blur(8px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.w2title i{width:6px;height:6px;border-radius:50%;background:var(--live);box-shadow:0 0 8px var(--live);flex:0 0 auto}
.w2say{position:absolute;left:14px;right:14px;top:128px;z-index:6;display:flex;align-items:center;gap:8px;padding:6px 12px 6px 6px;border-radius:20px;background:rgba(255,255,255,.92);color:#17111f;font-size:13px;opacity:0;transform:translateY(-8px) scale(.96);transition:opacity .25s,transform .3s cubic-bezier(.2,.8,.2,1);pointer-events:none;width:max-content;max-width:calc(100% - 28px)}
.w2say.on{opacity:1;transform:none}
.w2say .pav .av{width:26px;height:26px}
.w2say span{font-family:var(--serif)}
.w2lanes{position:absolute;left:0;right:0;top:168px;height:170px;z-index:3;overflow:hidden;pointer-events:none;-webkit-mask:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent);mask:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent)}
.w2f{position:absolute;left:100%;white-space:nowrap;font-size:14px;line-height:1.3;padding:3px 10px;border-radius:14px;background:rgba(0,0,0,.36);color:#f7effb;text-shadow:0 1px 3px rgba(0,0,0,.7);animation:w2fly 7s linear forwards;will-change:transform}
.w2f b{color:var(--cyan);font-weight:500;margin-right:5px}
.w2f.tip{background:linear-gradient(90deg,rgba(255,211,122,.35),rgba(255,61,139,.22));color:var(--gold);border:1px solid rgba(255,211,122,.35)}.w2f.tip b{color:var(--gold)}
.w2f.me{background:rgba(255,61,139,.45);color:#fff;border:1px solid rgba(255,134,184,.6)}.w2f.me b{color:#ffd1e6}
@keyframes w2fly{to{transform:translateX(calc(-100% - 420px))}}
.w2gifts{position:absolute;left:12px;bottom:240px;z-index:5;display:flex;flex-direction:column;gap:6px;pointer-events:none}
.w2gb{display:flex;align-items:center;gap:8px;height:44px;padding:0 12px 0 4px;border-radius:22px;background:linear-gradient(90deg,rgba(255,61,139,.85),rgba(164,149,255,.55) 70%,transparent);animation:w2gbin .35s cubic-bezier(.2,.9,.3,1.2);width:max-content;max-width:300px}
.w2gb.mid{background:linear-gradient(90deg,rgba(255,170,60,.9),rgba(255,61,139,.55) 70%,transparent)}
.w2gb.big{background:linear-gradient(90deg,rgba(255,211,122,.95),rgba(255,61,139,.7) 70%,transparent);box-shadow:0 0 24px rgba(255,211,122,.5)}
.w2gb.me{background:linear-gradient(90deg,rgba(94,231,255,.85),rgba(164,149,255,.55) 70%,transparent)}
.w2gb.out{animation:w2gbout .35s ease forwards}
@keyframes w2gbin{from{opacity:0;transform:translateX(-30px)}}
@keyframes w2gbout{to{opacity:0;transform:translateX(-30px)}}
.w2gav{width:34px;height:34px;border-radius:50%;background:radial-gradient(circle at 30% 25%,#fff,#ff86b8);color:#2a0a1a;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-weight:900;font-size:15px;flex:0 0 auto;box-shadow:0 0 0 2px rgba(255,255,255,.6)}
.w2gt{display:flex;flex-direction:column;line-height:1.2;min-width:0}
.w2gt b{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px}.w2gt small{font-size:10.5px;color:rgba(255,255,255,.85)}
.w2gb .gemo{font-size:26px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.4))}
.w2gb .gimg,.dm2g .gimg{width:34px;height:34px;object-fit:contain;filter:drop-shadow(0 2px 4px rgba(0,0,0,.4))}
.w2gn{font-style:italic;font-family:var(--latin);font-weight:700;font-size:26px;color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.4);min-width:38px}
.w2gn.pop{animation:w2pop .4s cubic-bezier(.2,1.6,.4,1)}
@keyframes w2pop{0%{transform:scale(1.8);color:var(--gold)}100%{transform:scale(1)}}
.w2big{position:absolute;inset:0;z-index:7;pointer-events:none;overflow:hidden}
.w2bx{position:absolute;inset:0}
.w2bxb{position:absolute;top:200px;left:50%;transform:translateX(-50%);white-space:nowrap;padding:8px 18px;border-radius:20px;background:linear-gradient(90deg,#ffd37a,#ff7ac8,#a495ff);color:#1a0a14;font-size:13px;font-weight:700;box-shadow:0 10px 30px rgba(255,211,122,.5);animation:w2bxb 4s ease forwards}
.w2bxb em{font-style:normal;font-weight:900;font-size:15px}.w2bxb span{margin-left:8px;font-size:10px;padding:1px 6px;border-radius:6px;background:rgba(0,0,0,.25);color:#fff;letter-spacing:.1em}
@keyframes w2bxb{0%{opacity:0;transform:translate(-50%,-20px) scale(.8)}12%{opacity:1;transform:translate(-50%,0) scale(1.05)}18%{transform:translate(-50%,0) scale(1)}85%{opacity:1}100%{opacity:0}}
.w2bxi{position:absolute;top:34%;left:110%;font-size:110px;line-height:1;filter:drop-shadow(0 0 30px rgba(255,211,122,.8)) drop-shadow(0 10px 20px rgba(0,0,0,.5));animation:w2bxi 3.6s cubic-bezier(.3,.1,.3,1) .2s forwards}
.w2bxi .gimg{width:150px;height:150px;object-fit:contain}
@keyframes w2bxi{0%{transform:translateX(0) rotate(-6deg) scale(.7);opacity:0}15%{opacity:1;transform:translateX(-60vw) rotate(-3deg) scale(1.15)}45%{transform:translateX(calc(-55vw - 120px)) rotate(0) scale(1)}70%{transform:translateX(calc(-55vw - 120px)) rotate(2deg) scale(1.05);opacity:1}100%{transform:translateX(-180vw) rotate(6deg) scale(.9);opacity:0}}
@media (min-width:521px){@keyframes w2bxi{0%{transform:translateX(0) rotate(-6deg) scale(.7);opacity:0}15%{opacity:1;transform:translateX(-240px) rotate(-3deg) scale(1.15)}45%{transform:translateX(-340px) rotate(0) scale(1)}70%{transform:translateX(-340px) rotate(2deg) scale(1.05);opacity:1}100%{transform:translateX(-720px) rotate(6deg) scale(.9);opacity:0}}}
.w2bx.k4 .w2bxi,.w2bx.k3 .w2bxi{animation-name:w2bxpop}
@keyframes w2bxpop{0%{opacity:0;transform:translateX(-50vw) scale(.2)}20%{opacity:1;transform:translateX(-50vw) scale(1.3)}35%{transform:translateX(-50vw) scale(1)}80%{opacity:1;transform:translateX(-50vw) scale(1.1)}100%{opacity:0;transform:translateX(-50vw) scale(1.6)}}
.w2bxs i{position:absolute;left:var(--x);top:-20px;width:8px;height:8px;border-radius:50%;background:var(--gold);box-shadow:0 0 10px 2px rgba(255,211,122,.8);animation:w2spark 2.6s ease-in var(--d) forwards;transform:scale(var(--s));opacity:0}
.w2bxs i:nth-child(odd){background:var(--pink2);box-shadow:0 0 10px 2px rgba(255,134,184,.8)}
.w2bxs i:nth-child(3n){background:var(--cyan);box-shadow:0 0 10px 2px rgba(94,231,255,.8)}
@keyframes w2spark{0%{opacity:0;transform:translateY(0) scale(var(--s))}10%{opacity:1}100%{opacity:0;transform:translateY(560px) scale(calc(var(--s)*.4))}}
.w2chat{position:absolute;left:12px;right:96px;bottom:92px;z-index:4;display:flex;flex-direction:column;justify-content:flex-end;gap:5px;max-height:190px;overflow:hidden;pointer-events:none;-webkit-mask:linear-gradient(180deg,transparent,#000 22%);mask:linear-gradient(180deg,transparent,#000 22%)}
.w2c{align-self:flex-start;max-width:100%;padding:5px 10px;border-radius:14px;background:rgba(0,0,0,.42);backdrop-filter:blur(6px);font-size:12.5px;line-height:1.4;color:#f3eaf8;animation:w2cin .3s cubic-bezier(.2,.8,.2,1);word-break:break-word}
.w2c b{color:var(--cyan);font-weight:500;margin-right:5px}
.w2c.gift{background:rgba(255,211,122,.2);color:var(--gold)}.w2c.gift b{color:var(--gold)}
.w2c.join{color:var(--dim);background:rgba(0,0,0,.25)}.w2c.join b{color:var(--lilac)}
.w2c.sys{color:#ffd1e6;background:rgba(255,61,139,.22)}.w2c.sys b{color:#fff}
.w2c.me{background:rgba(255,61,139,.42);color:#fff}.w2c.me b{color:#ffd1e6}
@keyframes w2cin{from{opacity:0;transform:translateY(10px)}}
.w2hearts{position:absolute;right:26px;bottom:150px;width:40px;height:300px;z-index:4;pointer-events:none}
.w2h{position:absolute;left:50%;bottom:0;font-style:normal;font-size:24px;transform:translateX(-50%);animation:w2heart 2.3s ease-out var(--d) forwards;opacity:0;filter:drop-shadow(0 2px 4px rgba(0,0,0,.4))}
.w2h.me{font-size:30px}
@keyframes w2heart{0%{opacity:0;transform:translate(-50%,0) scale(.4) rotate(0)}10%{opacity:1;transform:translate(-50%,-20px) scale(1.15) rotate(var(--r))}100%{opacity:0;transform:translate(calc(-50% + var(--x)),-280px) scale(.9) rotate(calc(var(--r)*-1))}}
.w2bar{position:absolute;left:12px;right:12px;bottom:24px;z-index:8;display:flex;align-items:center;gap:8px}
.w2in{flex:1;height:44px;padding:0 16px;border-radius:22px;text-align:left;background:rgba(255,255,255,.14);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.14);color:var(--sub);font-size:13.5px;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.w2ib{flex:0 0 44px;width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.14);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.14);font-size:20px;display:flex;align-items:center;justify-content:center;color:#ff5fa2;transition:transform .15s}
.w2ib:active{transform:scale(.85)}
.w2ib.gift{background:linear-gradient(135deg,rgba(255,211,122,.35),rgba(255,122,61,.3));color:#fff}
.w2join{flex:0 0 auto;height:44px;padding:0 16px;border-radius:22px;font-size:14px}
.w2tray{position:absolute;left:0;right:0;bottom:0;z-index:9;padding:12px 14px 22px;border-radius:24px 24px 0 0;background:rgba(14,7,20,.96);backdrop-filter:blur(20px);border-top:1px solid rgba(255,255,255,.1);animation:w2tray .3s cubic-bezier(.2,.8,.2,1)}
@keyframes w2tray{from{transform:translateY(100%)}}
.w2trh{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.w2trh b{font-size:14px}.w2trh span{font-size:12px;color:var(--dim)}.w2trh em{font-style:normal;color:var(--gold)}
.w2trx{margin-left:auto;width:28px;height:28px;border-radius:50%;background:rgba(255,255,255,.08);font-size:18px;line-height:1}
.w2trl{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.w2g{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 4px 8px;border-radius:14px;background:rgba(255,255,255,.05);border:1px solid var(--line);transition:transform .15s,border-color .2s}
.w2g:active{transform:scale(.92)}
.w2g.sent{animation:w2sent .5s ease}
@keyframes w2sent{30%{transform:scale(1.15);border-color:var(--gold);box-shadow:0 0 18px rgba(255,211,122,.5)}}
.w2g .gemo{font-size:28px;line-height:1.2}
.w2g .gimg{width:40px;height:40px;object-fit:contain}
.w2g b{font-size:11px;font-weight:500;color:var(--sub);white-space:nowrap}.w2g small{font-size:11px;color:var(--gold);font-weight:700}
.w2quick{position:absolute;left:12px;right:12px;bottom:78px;z-index:9;display:flex;flex-wrap:wrap;gap:6px;padding:10px;border-radius:18px;background:rgba(14,7,20,.94);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.1);animation:w2cin .25s ease}
.w2quick button{height:34px;padding:0 14px;border-radius:17px;background:rgba(255,61,139,.2);border:1px solid rgba(255,61,139,.45);font-size:13px}

/* =====================================================================
   小說裡的彈幕（會動的直播視窗）＋ 開播時封面上的彈幕
   ===================================================================== */
.pdm{padding:0;background:none;border:0;overflow:visible}
.dm2{border-radius:18px;overflow:hidden;background:rgba(0,0,0,.42);border:1px solid rgba(255,255,255,.1);box-shadow:0 10px 30px rgba(0,0,0,.35)}
.dm2h{display:flex;align-items:center;gap:8px;padding:8px 12px;font-size:12px;background:linear-gradient(90deg,rgba(255,42,79,.25),rgba(0,0,0,.2))}
.dm2h .lvbadge{position:static;animation:livep 1.6s infinite}
.dm2h b{font-size:12px;letter-spacing:.06em}
.dm2v{display:inline-flex;align-items:center;gap:4px;color:var(--sub);font-size:11px}
.dm2v i{width:5px;height:5px;border-radius:50%;background:#fff;animation:blink 1.4s steps(2) infinite}
.dm2sum{margin-left:auto;font-style:normal;font-family:var(--latin);font-size:16px;color:var(--gold);font-variant-numeric:tabular-nums}
.dm2view{position:relative;height:128px;overflow:hidden;background:radial-gradient(80% 100% at 50% 100%,rgba(255,61,139,.14),transparent 70%)}
.dm2lanes{position:absolute;inset:0;-webkit-mask:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);mask:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.dm2f{position:absolute;left:100%;top:calc(6px + var(--l)*27px);white-space:nowrap;font-size:13px;padding:3px 10px;border-radius:14px;background:rgba(255,255,255,.08);color:#f3eaf8;animation:dm2fly 5.6s linear var(--d) infinite;opacity:0}
.dm2f b{color:var(--cyan);font-weight:500;margin-right:5px}.dm2f em{font-style:normal;margin-left:6px;font-weight:700}
.dm2f.tip{background:linear-gradient(90deg,rgba(255,211,122,.3),rgba(255,61,139,.2));color:var(--gold);border:1px solid rgba(255,211,122,.3)}.dm2f.tip b{color:var(--gold)}
.dm2f.big{box-shadow:0 0 16px rgba(255,211,122,.5)}
@keyframes dm2fly{0%{opacity:0;transform:translateX(0)}3%{opacity:1}100%{opacity:1;transform:translateX(calc(-100% - 400px))}}
.dm2gs{position:absolute;left:8px;bottom:8px;display:flex;flex-direction:column-reverse;gap:4px;pointer-events:none}
.dm2g{display:flex;align-items:center;gap:7px;height:38px;padding:0 10px 0 3px;border-radius:19px;background:linear-gradient(90deg,rgba(255,61,139,.85),rgba(164,149,255,.5) 75%,transparent);width:max-content;max-width:280px;opacity:0;animation:dm2g 5.6s ease calc(var(--d) + .3s) infinite}
.dm2g.mid{background:linear-gradient(90deg,rgba(255,170,60,.9),rgba(255,61,139,.5) 75%,transparent)}
.dm2g.big{background:linear-gradient(90deg,rgba(255,211,122,.95),rgba(255,61,139,.7) 75%,transparent)}
.dm2g .w2gav{width:30px;height:30px;font-size:13px}
.dm2g>div{display:flex;flex-direction:column;line-height:1.2}
.dm2g b{font-size:12px;max-width:110px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dm2g small{font-size:10px;color:rgba(255,255,255,.85)}
.dm2g .gemo{font-size:22px}
.dm2g em{font-style:italic;font-family:var(--latin);font-weight:700;font-size:20px;color:#fff}
@keyframes dm2g{0%{opacity:0;transform:translateX(-24px)}6%{opacity:1;transform:none}60%{opacity:1}68%{opacity:0;transform:translateX(-24px)}100%{opacity:0;transform:translateX(-24px)}}
.dm2big{position:absolute;left:0;right:0;top:0;bottom:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;opacity:0;animation:dm2big 2.6s ease var(--d) forwards;pointer-events:none;background:radial-gradient(circle,rgba(255,211,122,.28),transparent 65%)}
.dm2big .gemo{font-size:64px;filter:drop-shadow(0 0 24px rgba(255,211,122,.8))}
.dm2big .gimg{width:84px;height:84px;object-fit:contain;filter:drop-shadow(0 0 24px rgba(255,211,122,.8))}
.dm2big b{font-size:12px;letter-spacing:.1em;padding:2px 10px;border-radius:8px;background:linear-gradient(90deg,#ffd37a,#ff7ac8);color:#1a0a14}
@keyframes dm2big{0%{opacity:0;transform:scale(.4)}15%{opacity:1;transform:scale(1.15)}30%{transform:scale(1)}80%{opacity:1;transform:scale(1.05)}100%{opacity:0;transform:scale(1.4)}}
.dm2list{padding:8px 12px 10px;font-size:12.5px;line-height:1.5;border-top:1px solid rgba(255,255,255,.08);background:rgba(0,0,0,.25)}
.dm2list .dml{padding:2px 0}
.dm2.skip .dm2view{display:none}
.dm2.skip .dm2list{border-top:0}
/* 開播時封面上的彈幕 */
.rdlanes{position:absolute;left:0;right:0;top:92px;height:110px;z-index:1;overflow:hidden;pointer-events:none;-webkit-mask:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.rdfl{position:absolute;left:100%;white-space:nowrap;font-style:normal;font-family:var(--sans);font-size:12px;line-height:1.3;padding:2px 9px;border-radius:12px;background:rgba(0,0,0,.38);color:#f3eaf8;animation:w2fly 8s linear forwards;text-shadow:0 1px 3px rgba(0,0,0,.6)}
.rdfl b{color:var(--cyan);font-weight:500;margin-right:5px}
.rdfl.tip{background:linear-gradient(90deg,rgba(255,211,122,.3),rgba(255,61,139,.2));color:var(--gold)}.rdfl.tip b{color:var(--gold)}
/* 閱讀器：封面慢慢放大 */
.reader.on .rdimg{animation:slowzoom 26s ease-in-out infinite alternate}
.rdcov{overflow:hidden}
.reader .rdlive{z-index:2}

/* =====================================================================
   禮物圖示（有圖就用圖，沒有就用表情符號）
   ===================================================================== */
.gemo{display:inline-block;line-height:1}
.gimg{display:inline-block;vertical-align:middle}

/* =====================================================================
   20261105.19b　首頁第三版：今天的大卡（項鍊珠串時段）、重口味專區
   ===================================================================== */
.home.h3 .hpg{padding:58px 14px 110px;gap:12px}
.day3{position:relative;padding:16px 16px 14px;border-radius:28px;overflow:hidden;background:linear-gradient(165deg,rgba(72,18,52,.78),rgba(26,10,32,.86) 55%,rgba(14,7,22,.9));backdrop-filter:blur(22px);border:1px solid rgba(255,255,255,.14);box-shadow:0 20px 50px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.14)}
.day3::before{content:'';position:absolute;top:-80px;right:-60px;width:240px;height:240px;border-radius:50%;background:radial-gradient(circle,rgba(255,61,139,.4),transparent 65%);pointer-events:none}
.d3top{position:relative;display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.d3day{font-family:var(--serif);font-size:24px;font-weight:900;letter-spacing:.06em;line-height:1.1}
.d3day b{font-family:var(--latin);font-size:44px;font-weight:700;color:var(--pink2);margin:0 3px;letter-spacing:0;text-shadow:0 0 24px rgba(255,134,184,.5)}
.d3day small{display:block;font-family:var(--sans);font-size:12px;font-weight:500;color:var(--sub);letter-spacing:.02em;margin-top:2px}
.d3coin{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px 0 6px;border-radius:15px;background:rgba(0,0,0,.35);border:1px solid rgba(255,211,122,.35);color:var(--gold);font-size:13px;font-weight:700;white-space:nowrap;flex:0 0 auto}
.d3coin .gem{width:18px;height:18px;position:relative;overflow:hidden}
.d3line{position:relative;margin:8px 0 0;font-family:var(--serif);font-size:14px;color:#efe4f4;line-height:1.6}
.d3beads{position:relative;height:92px;margin:12px -4px 8px}
.d3beads svg{position:absolute;inset:0;width:100%;height:64px;overflow:visible}
.d3str{fill:none;stroke:rgba(255,255,255,.18);stroke-width:2;stroke-dasharray:3 5}
.d3str.on{stroke:url(#holo) ;stroke:#ff86b8;stroke-dasharray:none;stroke-width:2.5;filter:drop-shadow(0 0 6px rgba(255,134,184,.8));transition:stroke-dasharray .6s}
.d3b{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:3px;white-space:nowrap}
.d3b i{width:12px;height:12px;border-radius:50%;background:#2a1838;box-shadow:0 0 0 2px rgba(255,255,255,.22);transition:all .3s}
.d3b.done i{background:#ff86b8;box-shadow:0 0 0 2px rgba(255,134,184,.5)}
.d3b.on i{width:20px;height:20px;background:var(--holo);background-size:200% 100%;animation:holo 4s linear infinite;box-shadow:0 0 0 4px rgba(255,255,255,.18),0 0 18px rgba(255,134,184,.9)}
.d3b small{font-size:10.5px;color:var(--dim);margin-top:2px}.d3b em{font-style:normal;font-size:9.5px;color:var(--dim);font-family:var(--latin)}
.d3b.on small{color:#fff;font-weight:700;font-size:12px}.d3b.on em{color:var(--pink2)}
.d3b.done small,.d3b.done em{text-decoration:line-through;opacity:.6}
.d3ev{position:relative;display:flex;align-items:center;gap:10px;width:100%;min-height:118px;padding:14px 14px 12px;border-radius:20px;overflow:hidden;text-align:left;background-size:cover;background-position:center;box-shadow:0 12px 30px rgba(0,0,0,.45),0 0 0 1px rgba(255,255,255,.14)}
.d3evsh{position:absolute;inset:0;background:linear-gradient(90deg,rgba(14,7,22,.9) 30%,rgba(14,7,22,.45) 75%,rgba(14,7,22,.25))}
.d3evtag{position:relative;flex:0 0 auto;width:54px;height:54px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:900;letter-spacing:.1em;color:#fff;background:rgba(255,61,139,.28);box-shadow:0 0 0 2px #ff5fa2,0 0 18px rgba(255,95,162,.6);animation:breathe 2.4s ease-in-out infinite}
.d3ev.k-ml .d3evtag{box-shadow:0 0 0 2px var(--gold),0 0 18px rgba(255,211,122,.6);background:rgba(255,211,122,.25);color:var(--gold)}
.d3ev.k-night .d3evtag{box-shadow:0 0 0 2px #a495ff,0 0 18px rgba(164,149,255,.6);background:rgba(164,149,255,.25)}
.d3ev.k-sleep .d3evtag{box-shadow:0 0 0 2px #9d93aa;background:rgba(255,255,255,.12);animation:none}
.d3evt{position:relative;flex:1;min-width:0;display:flex;flex-direction:column}
.d3evt small{font-size:11.5px;color:var(--pink2);letter-spacing:.06em}
.d3evt b{font-family:var(--serif);font-size:19px;line-height:1.3;margin:2px 0}
.d3evt i{font-style:normal;font-size:12px;color:#d9cfe3;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.d3ev em{position:relative;flex:0 0 auto;align-self:flex-end;font-style:normal;font-size:13px;font-weight:700;padding:9px 14px;border-radius:16px;background:linear-gradient(135deg,#ff6aa8,#ff2d7e);box-shadow:0 8px 20px rgba(255,45,126,.4),inset 0 1px 0 rgba(255,255,255,.3);white-space:nowrap}
.d3q{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}
.d3q button{display:flex;align-items:center;justify-content:center;gap:6px;height:44px;border-radius:14px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 8px;transition:transform .15s}
.d3q button:active{transform:scale(.96)}
.d3q button i{font-style:normal;font-size:14px}
.day3 .hr2pill{margin-top:10px}
/* 重口味專區 */
.heavy3{padding:12px 14px 14px;border-radius:24px;background:linear-gradient(160deg,rgba(120,16,48,.72),rgba(50,6,20,.86));backdrop-filter:blur(18px);border:1px solid rgba(255,80,120,.3);box-shadow:0 16px 40px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.1)}
.hv3h{display:flex;align-items:center;gap:8px;margin-bottom:12px}
.hv3h i{width:8px;height:8px;border-radius:50%;background:#ff3355;box-shadow:0 0 10px #ff3355;animation:blink 1.6s steps(2) infinite}
.hv3h b{font-size:15px;letter-spacing:.04em}
.hv3h span{margin-left:auto;font-size:11px;color:#ffb3c4;padding:2px 9px;border-radius:9px;background:rgba(0,0,0,.3);border:1px solid rgba(255,80,120,.3)}
.hv3h button{font-size:12px;color:#fff;opacity:.85}
.hv3g{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.hvt{display:flex;flex-direction:column;align-items:center;gap:7px;transition:transform .15s}
.hvt:active{transform:scale(.92)}
.hvi{width:64px;height:64px;border-radius:20px;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,#ff5f7a,#b0122f 55%,#4a0514);box-shadow:0 10px 22px rgba(120,0,30,.55),inset 0 1px 0 rgba(255,255,255,.45),inset 0 -2px 0 rgba(0,0,0,.3);position:relative;overflow:hidden}
.hvi::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.32),rgba(255,255,255,.05) 50%,transparent 52%)}
.hvi svg{width:54%;height:54%;position:relative;z-index:1;filter:drop-shadow(0 1px 2px rgba(0,0,0,.4))}
.hvt b{font-size:12px;font-weight:700;text-shadow:0 1px 4px rgba(0,0,0,.6)}
.home.h3 .grid.g2{padding:4px 2px 0}
.home.h3 .me2s{grid-template-columns:repeat(4,1fr)}
@media (max-height:760px){.home.h3 .hpg{padding-top:50px;gap:8px;padding-bottom:98px}.home.h3 .hnow2 .hlv,.home.h3 .hnow2 .hlm{height:70px}.home.h3 .me2{padding:10px 12px}.day3{padding:12px 14px 12px;border-radius:24px}.d3day{font-size:20px}.d3day b{font-size:36px}.d3line{font-size:13px;margin-top:4px}.d3beads{height:84px;margin:8px -4px 4px}.d3ev{min-height:100px;padding:10px 12px}.d3evt b{font-size:17px}.d3q button{height:40px}.heavy3{padding:10px 12px 12px}.hvi{width:54px;height:54px;border-radius:17px}.hv3h{margin-bottom:8px}}

/* 20261106：樂慾地圖底圖（有 map_island 時） */
.mwrap.hasimg{background-size:cover;background-position:center;border-radius:14px;overflow:hidden}
.mwrap.hasimg .msvg{mix-blend-mode:normal}
