/* ==========================================================================
   光屿 · 液态玻璃 UI（iOS 18 语感）
   ========================================================================== */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
a,button,[role="button"],.tab,.tab b,.icon-btn,.dock{
  -webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent;
}
:root{
  --glass: linear-gradient(155deg, rgba(255,255,255,.19), rgba(255,255,255,.07));
  --glass-deep: linear-gradient(160deg, rgba(48,44,72,.94), rgba(22,20,38,.96));
  --stroke: rgba(255,255,255,.22);
  --stroke-soft: rgba(255,255,255,.14);
  --ink:#fff;
  --ink2: rgba(255,255,255,.64);
  --ink3: rgba(255,255,255,.42);
  --accent:#7B5CFF; --accent2:#FF4FD8; --ok:#34EC7A;
  --r-card: 26px;
  --sf: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif;
  --safe-t: env(safe-area-inset-top, 0px);
  --safe-b: env(safe-area-inset-bottom, 0px);
}
html{-webkit-text-size-adjust:100%}
/* 全站禁止长按选中 / 点击高亮（iOS 会画半透明蓝灰方块）；只有输入框可编辑 */
body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
input,textarea,select,.input,.textarea,.ta{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}
body{
  font-family:var(--sf); background:#05060a; color:var(--ink);
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
  display:flex; align-items:center; justify-content:center;
  min-height:100dvh; overflow:hidden; overscroll-behavior:none;
}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font-family:inherit;font-size:inherit;color:inherit}
button{cursor:pointer;border:none;background:none}
img{max-width:100%;display:block}

/* ---------- 舞台 ---------- */
.stage{
  position:relative;width:100%;max-width:520px;height:100dvh;overflow:hidden;isolation:isolate;
}
@media (min-width:700px){
  body{background:radial-gradient(120% 120% at 50% 0%,#15112a,#05060a 70%);padding:22px}
  .stage{height:calc(100dvh - 44px);border-radius:40px;box-shadow:0 40px 120px rgba(0,0,0,.7), 0 0 0 1px rgba(255,255,255,.09), 0 0 0 9px rgba(255,255,255,.03)}
}

/* ---------- 背景光斑 ----------
   性能要点：不用 filter:blur()（全屏模糊每帧重算，手机上直接卡死），
   改用「多段柔和色标」的 radial-gradient —— 本身边缘就是柔的，零滤镜成本 */
.bg{position:absolute;inset:-14%;z-index:0;pointer-events:none;contain:strict}
.bg i{position:absolute;display:block;border-radius:50%;will-change:transform}
.bg .b1{width:74%;height:58%;left:-16%;top:-6%;
  background:radial-gradient(closest-side circle at 45% 45%,
    rgba(112,80,255,.95) 0%, rgba(102,70,245,.66) 24%, rgba(78,50,200,.34) 46%,
    rgba(52,32,150,.14) 64%, rgba(42,26,122,0) 80%);
  animation:float1 18s ease-in-out infinite alternate}
.bg .b2{width:70%;height:54%;right:-18%;top:8%;
  background:radial-gradient(closest-side circle at 50% 50%,
    rgba(255,72,180,.92) 0%, rgba(240,60,165,.6) 24%, rgba(190,40,125,.3) 46%,
    rgba(122,19,80,.12) 66%, rgba(122,19,80,0) 82%);
  animation:float2 22s ease-in-out infinite alternate}
.bg .b3{width:82%;height:56%;left:-2%;bottom:-4%;
  background:radial-gradient(closest-side circle at 50% 55%,
    rgba(40,170,255,.9) 0%, rgba(30,140,235,.58) 24%, rgba(16,90,190,.3) 46%,
    rgba(11,47,102,.12) 66%, rgba(11,47,102,0) 82%);
  animation:float3 26s ease-in-out infinite alternate}
.bg .b4{width:52%;height:34%;right:-4%;bottom:20%;
  background:radial-gradient(closest-side circle at 50% 50%,
    rgba(255,180,110,.55) 0%, rgba(240,150,80,.34) 28%, rgba(160,90,30,.14) 55%,
    rgba(122,66,16,0) 78%);
  animation:float1 21s ease-in-out infinite alternate-reverse}
@keyframes float1{to{transform:translate3d(9%,12%,0) scale(1.14)}}
@keyframes float2{to{transform:translate3d(-12%,9%,0) scale(1.1)}}
@keyframes float3{to{transform:translate3d(6%,-10%,0) scale(1.16)}}
/* 主题：日落 */
body.t-sunset .bg .b1{background:radial-gradient(closest-side circle at 45% 45%,rgba(255,122,69,.92) 0%,rgba(240,100,50,.6) 24%,rgba(190,70,26,.3) 46%,rgba(122,43,16,0) 80%)}
body.t-sunset .bg .b2{background:radial-gradient(closest-side circle at 50% 50%,rgba(255,45,120,.9) 0%,rgba(230,35,100,.58) 24%,rgba(160,20,60,.28) 46%,rgba(107,15,48,0) 80%)}
body.t-sunset .bg .b3{background:radial-gradient(closest-side circle at 50% 55%,rgba(255,181,69,.9) 0%,rgba(235,150,50,.56) 24%,rgba(170,100,25,.26) 46%,rgba(122,74,16,0) 80%)}
body.t-sunset .bg .b4{background:radial-gradient(closest-side circle at 50% 50%,rgba(192,75,255,.6) 0%,rgba(160,55,220,.36) 28%,rgba(90,30,150,.14) 55%,rgba(59,16,96,0) 78%)}
/* 主题：深海 */
body.t-ocean .bg .b1{background:radial-gradient(closest-side circle at 45% 45%,rgba(0,198,255,.9) 0%,rgba(0,160,220,.56) 24%,rgba(0,90,150,.26) 46%,rgba(10,58,107,0) 80%)}
body.t-ocean .bg .b2{background:radial-gradient(closest-side circle at 50% 50%,rgba(34,211,166,.85) 0%,rgba(25,180,140,.52) 24%,rgba(10,110,85,.22) 46%,rgba(11,74,58,0) 80%)}
body.t-ocean .bg .b3{background:radial-gradient(closest-side circle at 50% 55%,rgba(43,92,255,.9) 0%,rgba(35,75,220,.55) 24%,rgba(20,40,140,.24) 46%,rgba(16,26,92,0) 80%)}
body.t-ocean .bg .b4{background:radial-gradient(closest-side circle at 50% 50%,rgba(124,92,255,.55) 0%,rgba(100,70,220,.32) 28%,rgba(50,30,140,.12) 55%,rgba(36,16,96,0) 78%)}

.grain{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.05;display:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

/* ---------- 玻璃 ---------- */
.glass{
  background:var(--glass);
  /* 不做 backdrop-filter：背景是柔和渐变，模糊前后肉眼几乎无差，但省掉整屏重绘 */
  border:1px solid var(--stroke);border-radius:var(--r-card);
  box-shadow:0 12px 40px rgba(0,0,0,.34), inset 0 1px 0 rgba(255,255,255,.42), inset 0 -1px 0 rgba(255,255,255,.07);
  position:relative;
}
.glass::after{
  content:'';position:absolute;inset:0;pointer-events:none;border-radius:inherit;z-index:0;
  background:linear-gradient(120deg,rgba(255,255,255,.30) 0%,rgba(255,255,255,0) 26%,rgba(255,255,255,0) 74%,rgba(255,255,255,.11) 100%);
  opacity:.8;
}
.glass>*{position:relative;z-index:1}

/* ---------- 滚动区 ---------- */
.screen{
  position:absolute;inset:0;z-index:10;overflow-y:auto;overflow-x:hidden;
  -webkit-overflow-scrolling:touch;scrollbar-width:none;
  padding-block-start:calc(var(--safe-t) + 22px);
  padding-inline:18px;
  padding-block-end:calc(196px + var(--safe-b));
}
.screen::-webkit-scrollbar{display:none}
.fade-bottom{position:absolute;left:0;right:0;bottom:0;height:172px;z-index:20;pointer-events:none;
  background:linear-gradient(180deg,
    rgba(5,6,10,0) 0%,
    rgba(5,6,10,.18) 32%,
    rgba(5,6,10,.46) 58%,
    rgba(5,6,10,.72) 78%,
    rgba(5,6,10,.86) 100%)}

/* ---------- 顶部 ---------- */
.hello{display:flex;align-items:center;gap:12px;margin-bottom:18px}
.avt{width:46px;height:46px;border-radius:50%;flex:0 0 auto;position:relative;isolation:isolate;
  background:linear-gradient(160deg,#e8effb,#b9c8e3);
  box-shadow:0 6px 18px rgba(0,0,0,.26), inset 0 0 0 2px rgba(255,255,255,.55)}
.avt .avt-in{position:absolute;inset:0;border-radius:50%;overflow:hidden;z-index:1;display:grid;place-items:center}
.avt .avt-in img{width:100%;height:100%;object-fit:cover;object-position:50% 42%}
.avt .avt-in span{font-size:17px;font-weight:700;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.35)}
.hello h1{font-size:21px;font-weight:700;letter-spacing:-.2px;line-height:1.2}
.hello p{font-size:12px;color:var(--ink3);margin-top:4px;letter-spacing:.2px}
.icon-btn{margin-inline-start:auto;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;flex:0 0 auto;
  background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.20);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:.2s}
.icon-btn:active{transform:scale(.93)}
.icon-btn svg{width:19px;height:19px;stroke:#fff;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}

/* ---------- Hero ---------- */
.hero{padding:20px;margin-bottom:14px}
.hero .tag{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;letter-spacing:.4px;
  padding:5px 11px;border-radius:100px;color:#fff;
  background:linear-gradient(100deg,rgba(123,92,255,.85),rgba(255,79,216,.7));
  box-shadow:0 4px 14px rgba(160,80,255,.4)}
.hero h2{font-size:26px;font-weight:750;line-height:1.28;letter-spacing:-.6px;margin:13px 0 9px}
.hero h2 em{font-style:normal;background:linear-gradient(96deg,#fff,#c8b6ff 60%,#ff9ce8);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.hero .sub{font-size:12.5px;color:var(--ink2);line-height:1.65}
.stats{display:flex;margin-top:18px;padding-top:16px;border-top:1px solid var(--stroke-soft)}
.stats div{flex:1;text-align:center;position:relative}
.stats div+div::before{content:'';position:absolute;inset-inline-start:0;top:2px;bottom:2px;width:1px;background:var(--stroke-soft)}
.stats b{display:block;font-size:19px;font-weight:700;letter-spacing:-.3px}
.stats span{font-size:10.5px;color:var(--ink3);letter-spacing:.5px}

/* ---------- 分区标题 ---------- */
.sec{display:flex;align-items:center;justify-content:space-between;margin:22px 4px 11px}
.sec h3{font-size:15px;font-weight:650;letter-spacing:.2px}
.sec a,.sec span.more{font-size:12px;color:var(--ink3)}

/* ---------- 文章卡 ---------- */
.post{display:flex;gap:13px;padding:12px;border-radius:22px;margin-bottom:10px;align-items:center;transition:transform .18s, filter .18s;contain:layout paint}
.post:active{transform:scale(.985)}
.thumb{width:66px;height:66px;border-radius:17px;flex:0 0 auto;position:relative;overflow:hidden;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.28);background-size:cover;background-position:center}
.thumb::after{content:'';position:absolute;inset:0;background:linear-gradient(150deg,rgba(255,255,255,.32),transparent 55%)}
.g1{background:linear-gradient(140deg,#8f6bff,#3f2a9e)}
.g2{background:linear-gradient(140deg,#ff8a5b,#c4306b)}
.g3{background:linear-gradient(140deg,#4ad2ff,#1d4ed8)}
.g4{background:linear-gradient(140deg,#ffd36e,#ff5f6d)}
.g5{background:linear-gradient(140deg,#c4b5fd,#7c3aed 60%,#2e1065)}
.g6{background:linear-gradient(135deg,#fbcfe8,#db2777 60%,#4c0519)}
.p-main{flex:1;min-width:0}
.p-main h4{font-size:14.5px;font-weight:600;line-height:1.42;letter-spacing:-.1px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.meta{display:flex;align-items:center;gap:8px;margin-top:7px;font-size:11px;color:var(--ink3);flex-wrap:wrap}
.pill{font-size:10px;padding:2.5px 8px;border-radius:100px;background:rgba(255,255,255,.14);color:rgba(255,255,255,.8)}
.dot{width:2.5px;height:2.5px;border-radius:50%;background:var(--ink3);flex:0 0 auto}

/* ---------- 朋友圈 ---------- */
.mhead{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:16px;padding:0 4px}
.mhead h1{font-size:30px;font-weight:800;letter-spacing:-1px}
.mhead p{font-size:11.5px;color:var(--ink3);margin-top:5px;letter-spacing:.3px}
.cover{display:block;height:132px;border-radius:26px;margin-bottom:14px;position:relative;overflow:hidden;
  background:
    radial-gradient(120% 100% at 12% 0%,rgba(255,180,80,.85),transparent 55%),
    radial-gradient(100% 110% at 90% 20%,rgba(255,79,216,.8),transparent 58%),
    radial-gradient(120% 120% at 45% 100%,rgba(64,120,255,.9),transparent 62%),
    linear-gradient(160deg,#2b1b52,#131033);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.2),0 12px 36px rgba(0,0,0,.35);background-size:cover;background-position:center}
.cover::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(0,0,0,.45))}
.cover .who{position:absolute;inset-inline-end:14px;bottom:11px;display:flex;align-items:center;gap:8px;z-index:2;font-size:12px;font-weight:600;text-shadow:0 1px 4px rgba(0,0,0,.5)}

.composer{display:flex;align-items:center;gap:11px;padding:11px 13px;border-radius:20px;margin-bottom:14px;cursor:pointer}
.composer .ph{flex:1;font-size:13px;color:var(--ink3)}
.cam{width:32px;height:32px;border-radius:11px;display:grid;place-items:center;flex:0 0 auto;
  background:linear-gradient(140deg,rgba(123,92,255,.9),rgba(255,79,216,.8))}
.cam svg{width:16px;height:16px;stroke:#fff;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

.mom{padding:14px;border-radius:24px;margin-bottom:12px;contain:layout paint}
.m-top{display:flex;gap:10px;align-items:center;margin-bottom:10px}
.m-av{width:38px;height:38px;border-radius:50%;flex:0 0 auto;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.45);background-size:cover}
.a1{background:linear-gradient(140deg,#ffd36e,#ff5f6d)}
.a2{background:linear-gradient(140deg,#6ee7ff,#3b5bff)}
.a3{background:linear-gradient(140deg,#c4a5ff,#7b5cff)}
.a4{background:linear-gradient(140deg,#a7f3d0,#059669)}
.m-name{font-size:13.5px;font-weight:650;letter-spacing:.1px}
.m-time{font-size:10.5px;color:var(--ink3);margin-top:2px}
.more{margin-left:auto;color:var(--ink3);font-size:16px;letter-spacing:1px;line-height:1}
.m-text{font-size:13.5px;line-height:1.66;letter-spacing:-.05px;color:rgba(255,255,255,.92);white-space:pre-wrap;word-break:break-word}
.m-text .hl{color:#b9a4ff;font-weight:600}
.grid{display:grid;gap:5px;margin-top:10px}
.g3{grid-template-columns:repeat(3,1fr)}
.g2c{grid-template-columns:repeat(2,1fr)}
.g1c{grid-template-columns:1fr}
.cell{aspect-ratio:1;border-radius:12px;position:relative;overflow:hidden;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.14);background-size:cover;background-position:center}
.cell::after{content:'';position:absolute;inset:0;background:linear-gradient(150deg,rgba(255,255,255,.28),transparent 60%)}
.g1c .cell{aspect-ratio:16/10}
.cell.has-img::after{background:linear-gradient(150deg,rgba(255,255,255,.12),transparent 55%)}
.song{display:flex;align-items:center;gap:11px;margin-top:10px;padding:9px 11px;border-radius:15px;
  background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.13)}
.disc{width:36px;height:36px;border-radius:50%;flex:0 0 auto;
  background:conic-gradient(#ededed,#8e8e93,#ededed,#5a5a5f,#ededed);
  display:grid;place-items:center;box-shadow:0 3px 10px rgba(0,0,0,.35);animation:spin 8s linear infinite}
.disc::after{content:'';width:11px;height:11px;border-radius:50%;background:#1c1c1e;box-shadow:inset 0 0 0 2px rgba(255,255,255,.35)}
@keyframes spin{to{transform:rotate(360deg)}}
.song b{display:block;font-size:12.5px;font-weight:600}
.song span{font-size:10.5px;color:var(--ink3)}
.m-acts{display:flex;align-items:center;gap:16px;margin-top:12px;padding-top:11px;border-top:1px solid rgba(255,255,255,.1)}
.act{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;color:var(--ink2);transition:.15s}
.act:active{transform:scale(.92)}
.act svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.act.liked{color:#ff7ab8}
.act.liked svg{fill:#ff4f96;stroke:#ff4f96}
.m-acts .sp{margin-inline-start:auto}
.cmts{margin-top:10px;padding:9px 11px;border-radius:14px;background:rgba(0,0,0,.22);font-size:11.5px;line-height:1.8}
.cmts div{word-break:break-word}
.cmts b{color:#a9b8ff;font-weight:600}
.cmts .lk{color:#ffa8cf}
.cmt-form{display:flex;gap:7px;margin-top:9px}
.cmt-form input{flex:1;height:34px;border-radius:12px;padding:0 11px;font-size:16px;
  background:rgba(0,0,0,.24);border:1px solid rgba(255,255,255,.12);color:#fff;outline:none}
.cmt-form input::placeholder{color:rgba(255,255,255,.32)}
.cmt-form input:focus{border-color:rgba(160,130,255,.6)}
.cmt-form button{width:52px;height:34px;border-radius:12px;font-size:11.5px;font-weight:600;color:#fff;
  background:linear-gradient(120deg,#6f5bff,#c04bff)}

/* ---------- Dock ---------- */
.dock{position:absolute;left:50%;transform:translateX(-50%);bottom:calc(28px + var(--safe-b));z-index:30;
  display:flex;align-items:center;gap:4px;padding:7px;border-radius:100px;
  background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.30);
  -webkit-backdrop-filter:blur(22px) saturate(170%);backdrop-filter:blur(22px) saturate(170%);
  box-shadow:0 18px 52px rgba(0,0,0,.55), 0 0 0 1px rgba(0,0,0,.10), inset 0 1px 0 rgba(255,255,255,.55)}
.tab{width:56px;height:52px;border-radius:100px;display:grid;place-items:center;gap:2px;
  position:relative;z-index:1;transition:transform .28s cubic-bezier(.3,1.3,.5,1);isolation:isolate}
.tab:active{transform:scale(.94)}
/* 选中态药丸：独立图层，方便做「伸缩—滑移」的液态动画 */
.tab .pill{
  position:absolute;inset:0;z-index:0;border-radius:100px;pointer-events:none;
  background:linear-gradient(160deg,rgba(255,255,255,.30),rgba(255,255,255,.14));
  border:1px solid rgba(255,255,255,.34);
  box-shadow:0 4px 16px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.65), inset 0 -1px 0 rgba(255,255,255,.10);
  transform-origin:50% 50%;
}
.tab .pill::after{
  content:'';position:absolute;inset:0;border-radius:inherit;
  background:linear-gradient(120deg,rgba(255,255,255,.42),transparent 42%,transparent 66%,rgba(255,255,255,.14));
}
.tab svg,.tab b{position:relative;z-index:1}
.tab svg{width:21px;height:21px;stroke:rgba(255,255,255,.62);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.tab b{font-size:9px;font-weight:600;color:rgba(255,255,255,.5);letter-spacing:.3px;
  max-width:52px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tab.on{background:none}
.tab.on svg{stroke:#fff}
.tab.on b{color:#fff}
.fab{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;margin-left:2px;flex:0 0 auto;
  background:linear-gradient(140deg,#7B5CFF,#FF4FD8);
  box-shadow:0 8px 22px rgba(160,70,255,.6), inset 0 1px 0 rgba(255,255,255,.6);transition:.2s}
.fab:active{transform:scale(.93)}
.fab svg{width:23px;height:23px;stroke:#fff;stroke-width:2.2;fill:none;stroke-linecap:round}

/* ---------- 抽屉 ---------- */
.veil{position:absolute;inset:0;z-index:40;background:rgba(4,4,10,.45);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;pointer-events:none;transition:.3s}
.veil.on{opacity:1;pointer-events:auto}
.sheet{position:absolute;left:10px;right:10px;bottom:calc(10px + var(--safe-b));z-index:41;padding:16px 16px 20px;
  border-radius:34px;transform:translateY(115%);transition:transform .46s cubic-bezier(.22,1.15,.4,1);
  background:var(--glass-deep);
  -webkit-backdrop-filter:blur(24px) saturate(160%);backdrop-filter:blur(24px) saturate(160%);
  border:1px solid rgba(255,255,255,.2);max-height:88%;overflow-y:auto;
  box-shadow:0 -10px 60px rgba(0,0,0,.6), inset 0 1px 0 rgba(255,255,255,.34)}
.sheet.on{transform:translateY(0)}
.grab{width:38px;height:4.5px;border-radius:100px;background:rgba(255,255,255,.28);margin:0 auto 14px}
.sheet h3{font-size:16px;font-weight:700;letter-spacing:-.2px;margin-bottom:12px}
.ta{min-height:86px;font-size:14px;line-height:1.6;color:rgba(255,255,255,.9);outline:none;
  white-space:pre-wrap;word-break:break-word}
.ta:empty::before{content:attr(data-ph);color:rgba(255,255,255,.32)}
.pics{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:12px 0 14px}
.pk{aspect-ratio:1;border-radius:13px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px rgba(255,255,255,.16);background-size:cover;background-position:center}
.pk .del{position:absolute;top:3px;inset-inline-end:3px;width:19px;height:19px;border-radius:50%;background:rgba(0,0,0,.6);
  display:grid;place-items:center;font-size:12px;line-height:1;color:#fff}
.pk.add{display:grid;place-items:center;background:rgba(255,255,255,.07);border:1px dashed rgba(255,255,255,.3)}
.pk.add svg{width:20px;height:20px;stroke:rgba(255,255,255,.55);stroke-width:1.8;fill:none;stroke-linecap:round}
.row{display:flex;align-items:center;gap:9px;padding:11px 0;border-top:1px solid rgba(255,255,255,.09);font-size:13px;color:rgba(255,255,255,.82)}
.row svg{width:17px;height:17px;stroke:rgba(255,255,255,.7);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}
.row input{flex:1;background:none;border:none;outline:none;text-align:right;font-size:12.5px;color:rgba(255,255,255,.5)}
.row .v{margin-inline-start:auto;font-size:12px;color:rgba(255,255,255,.45)}
.btn{width:100%;height:50px;margin-top:14px;border-radius:17px;font-size:15px;font-weight:700;letter-spacing:.4px;color:#fff;
  background:linear-gradient(100deg,#6f5bff,#c04bff 55%,#ff4fd8);
  box-shadow:0 10px 26px rgba(150,60,255,.5), inset 0 1px 0 rgba(255,255,255,.45);transition:.18s}
.btn:active{transform:scale(.985);filter:brightness(1.08)}
.btn.ghost{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);box-shadow:none}
.btn.sm{height:42px;font-size:13.5px;border-radius:14px;margin-top:0}

/* ---------- 文章详情 ---------- */
.reader{padding:20px 18px;margin-bottom:12px}
.reader .tags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.reader h1{font-size:25px;line-height:1.32;letter-spacing:-.7px;font-weight:750;margin-bottom:12px}
.reader .rmeta{display:flex;align-items:center;gap:9px;font-size:11.5px;color:var(--ink3);margin-bottom:18px}
.reader .body{font-size:14.5px;line-height:1.92;color:rgba(255,255,255,.86);white-space:pre-wrap;word-break:break-word}
.reader .body img{border-radius:16px;margin:14px 0}
.reader .coverimg{height:170px;border-radius:20px;margin-bottom:16px;background-size:cover;background-position:center;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.2)}
.back{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--ink2);margin-bottom:14px}
.back svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* ---------- 表单 / 登录 ---------- */
.field{margin-bottom:12px}
.field label{display:block;font-size:11.5px;color:var(--ink3);margin:0 0 7px;margin-inline-start:4px;letter-spacing:.3px}
.input,.textarea{width:100%;padding:13px 15px;border-radius:16px;font-size:16px;color:#fff;
  background:rgba(0,0,0,.26);border:1px solid rgba(255,255,255,.14);outline:none;transition:.2s}
.input:focus,.textarea:focus{border-color:rgba(160,130,255,.65);background:rgba(0,0,0,.34)}
.textarea{min-height:92px;resize:vertical;line-height:1.7}
.hint{font-size:11.5px;color:var(--ink3);line-height:1.7;margin-top:10px}
.err{font-size:12px;color:#ff8fa3;margin-bottom:10px}

/* ---------- Toast ---------- */
.toast{position:absolute;left:50%;top:calc(var(--safe-t) + 18px);transform:translate(-50%,-16px);z-index:60;
  padding:11px 20px;border-radius:100px;font-size:13px;font-weight:600;white-space:nowrap;
  background:rgba(28,26,44,.92);border:1px solid rgba(255,255,255,.2);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  box-shadow:0 12px 34px rgba(0,0,0,.5);opacity:0;pointer-events:none;transition:.32s cubic-bezier(.2,1.2,.4,1)}
.toast.on{opacity:1;transform:translate(-50%,0)}

/* ---------- 空状态 ---------- */
.empty{text-align:center;padding:44px 20px;color:var(--ink3);font-size:13px;line-height:1.9}

/* ---------- 后台 ---------- */
.admin .screen{padding-bottom:calc(40px + var(--safe-b))}
.abar{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.abar h1{font-size:20px;font-weight:750;letter-spacing:-.3px}
.abar .sm{font-size:11.5px;color:var(--ink3);margin-top:3px}
.tabs{display:flex;gap:7px;overflow-x:auto;padding:2px 2px 12px;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tabs a{flex:0 0 auto;padding:8px 14px;border-radius:100px;font-size:12.5px;color:var(--ink2);
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.13);transition:.2s;white-space:nowrap}
.tabs a.on{background:rgba(255,255,255,.18);color:#fff;border-color:rgba(255,255,255,.34);box-shadow:inset 0 1px 0 rgba(255,255,255,.4)}
.acard{padding:16px;border-radius:22px;margin-bottom:12px}
.acard h3{font-size:14px;font-weight:650;margin-bottom:12px;display:flex;align-items:center;gap:8px}
.kpi{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:12px}
.kpi .glass{padding:15px}
.kpi b{font-size:24px;font-weight:750;letter-spacing:-.5px;display:block}
.kpi span{font-size:11px;color:var(--ink3)}
.lrow{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.08);font-size:13px}
.lrow:last-child{border-bottom:none}
.lrow .t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lrow .d{font-size:11px;color:var(--ink3);flex:0 0 auto}
.mini{padding:5px 11px;border-radius:100px;font-size:11.5px;font-weight:600;background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.16);color:#fff;flex:0 0 auto}
.mini.danger{background:rgba(255,80,120,.18);border-color:rgba(255,80,120,.35);color:#ffb3c6}
.mini.ok{background:rgba(52,236,122,.16);border-color:rgba(52,236,122,.3);color:#a9ffcc}
.cmt-item{padding:10px 0;border-bottom:1px solid rgba(255,255,255,.08);font-size:12.5px;line-height:1.7}
.cmt-item b{color:#a9b8ff}
.coverpick{display:grid;grid-template-columns:repeat(6,1fr);gap:7px}
.coverpick .cell{aspect-ratio:1;border-radius:11px;cursor:pointer;position:relative}
.coverpick .cell.sel{box-shadow:0 0 0 2.5px #fff, inset 0 0 0 1px rgba(255,255,255,.4)}
.switch{width:44px;height:26px;border-radius:100px;background:rgba(255,255,255,.16);position:relative;transition:.25s;flex:0 0 auto}
.switch.on{background:linear-gradient(120deg,#6f5bff,#c04bff)}
.switch::after{content:'';position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:.25s;box-shadow:0 2px 6px rgba(0,0,0,.3)}
.switch.on::after{left:21px}


/* ==========================================================================
   双语：ئۇيغۇرچە / RTL
   ========================================================================== */
:root{--ug-font: "UKIJ Tuz Tom","UKIJ Ekran","Noto Naskh Arabic","Noto Sans Arabic","Geeza Pro","Al Bayan","Segoe UI",Tahoma,sans-serif}

/* 语言切换按钮 */
.langbtn{font-size:14px;font-weight:700;line-height:1;letter-spacing:0;flex:0 0 auto}
.langbtn:hover{background:rgba(255,255,255,.18)}

[dir="rtl"] body{font-family:var(--ug-font)}
[dir="rtl"] .langbtn{font-family:var(--ug-font)}
[dir="rtl"] .hello h1,[dir="rtl"] .mhead h1,[dir="rtl"] .hero h2,
[dir="rtl"] .reader h1,[dir="rtl"] .abar h1{letter-spacing:0}
[dir="rtl"] .m-text,[dir="rtl"] .reader .body,[dir="rtl"] .hero .sub{line-height:2.05}
[dir="rtl"] .reader h1{line-height:1.65;font-weight:700}
[dir="rtl"] .m-text,[dir="rtl"] .cmts div{word-break:normal}
[dir="rtl"] .back svg{transform:scaleX(-1)}
[dir="rtl"] .dock .fab svg,[dir="rtl"] .cam svg{transform:none}
[dir="rtl"] .tab b{font-size:9.5px;font-family:var(--ug-font)}
[dir="rtl"] .pill{font-size:10.5px}
[dir="rtl"] .hint{line-height:1.95}
[dir="rtl"] .stats span,[dir="rtl"] .kpi span{font-size:11px}


/* ==========================================================================
   站点字体：Iqbal qolay（维语 + 拉丁；中文自动回落系统字体）
   ========================================================================== */
@font-face{
  font-family:"Iqbal qolay";
  src:url("fonts/iqbal-qolay.ttf") format("truetype");
  font-weight:400;font-style:normal;font-display:block;
}
body.f-iqbal{
  --sf:"Iqbal qolay",-apple-system,BlinkMacSystemFont,"SF Pro Display","PingFang SC",
        "Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC",sans-serif;
  --ug-font:"Iqbal qolay","UKIJ Tuz Tom","Noto Naskh Arabic","Geeza Pro","Al Bayan",Tahoma,sans-serif;
}
body.f-iqbal[dir="rtl"]{font-family:var(--ug-font)}
body.f-iqbal .langbtn{font-family:"Iqbal qolay",var(--sf)}
body.f-iqbal .m-text,body.f-iqbal .reader .body{line-height:1.95}

/* 备案信息 */
.icp{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;color:rgba(255,255,255,.3);
  margin-top:6px;letter-spacing:.2px;transition:.2s}
.icp:hover{color:rgba(255,255,255,.5)}
.icp svg{width:11px;height:11px;stroke:currentColor;fill:none;stroke-width:1.8}


/* ==========================================================================
   头像挂件（frame）
   ========================================================================== */
.avt::before{content:'';position:absolute;inset:0;border-radius:50%;z-index:0;pointer-events:none}
.avt::after{content:'';position:absolute;inset:0;border-radius:50%;z-index:2;pointer-events:none}

/* 光晕环：极光渐变，缓慢旋转 */
.avt.frame-aurora{box-shadow:0 8px 24px rgba(123,92,255,.42)}
.avt.frame-aurora::before{
  inset:-4px;
  background:conic-gradient(from 0deg,#7B5CFF,#FF4FD8,#4AD2FF,#7B5CFF);
  animation:avtSpin 5.5s linear infinite;
  box-shadow:0 0 18px rgba(160,100,255,.55), 0 0 34px rgba(255,79,216,.22);
}
.avt.frame-aurora::after{
  inset:0;
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.82), inset 0 -10px 16px rgba(120,80,255,.20);
}

/* 星环：金粉渐变 + 角标宝石 + 呼吸光 */
.avt.frame-gem{box-shadow:0 8px 24px rgba(255,170,90,.35)}
.avt.frame-gem::before{
  inset:-4px;
  background:conic-gradient(from 45deg,#FFD36E,#FF7AB8,#C9A7FF,#FFE9A8,#FFD36E);
  animation:avtSpin 9s linear infinite;
  box-shadow:0 0 16px rgba(255,200,120,.5);
}
.avt.frame-gem::after{
  inset:0;
  box-shadow:inset 0 0 0 2px rgba(255,240,210,.85);
}
.avt.frame-gem .gem{
  position:absolute;z-index:3;inset-inline-end:-3px;bottom:-3px;width:15px;height:15px;
  background:linear-gradient(140deg,#fff,#ffd36e 55%,#ff9ec4);
  clip-path:polygon(50% 0,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0 50%,39% 39%);
  filter:drop-shadow(0 0 6px rgba(255,210,120,.95));
  animation:gemPulse 2.8s ease-in-out infinite;
}
@keyframes gemPulse{0%,100%{transform:scale(1) rotate(0deg);opacity:.95}50%{transform:scale(1.22) rotate(18deg);opacity:1}}

/* 无挂件 */
.avt.frame-none{box-shadow:0 5px 14px rgba(0,0,0,.3), inset 0 0 0 2px rgba(255,255,255,.6)}

@keyframes avtSpin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){
  .avt.frame-aurora::before,.avt.frame-gem::before,.avt.frame-gem .gem{animation:none}
}

/* ==========================================================================
   页面转场：点击 → 旧页左移淡出 → 新页右侧滑入
   ========================================================================== */




/* ==========================================================================
   灯箱 / 动作面板（所有「能按的地方」）
   ========================================================================== */
.cell{cursor:pointer}
.cell:active{filter:brightness(1.12)}

.lightbox{position:absolute;inset:0;z-index:70;display:flex;align-items:center;justify-content:center;
  background:rgba(4,5,12,.82);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);
  opacity:0;pointer-events:none;transition:opacity .26s ease}
.lightbox.on{opacity:1;pointer-events:auto}
.lightbox .lb-stage{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:56px 18px}
.lightbox .lb-img,.lightbox .lb-grad{
  max-width:100%;max-height:100%;border-radius:22px;object-fit:contain;
  box-shadow:0 30px 80px rgba(0,0,0,.6), 0 0 0 1px rgba(255,255,255,.16);
  animation:lbIn .34s cubic-bezier(.16,1,.3,1) both;
}
.lightbox .lb-grad{width:100%;aspect-ratio:1}
@keyframes lbIn{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}
.lb-close{position:absolute;top:calc(var(--safe-t) + 14px);inset-inline-end:16px;width:40px;height:40px;border-radius:50%;
  display:grid;place-items:center;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.24);
  -webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);z-index:2}
.lb-close svg{width:18px;height:18px;stroke:#fff;stroke-width:2.2;fill:none;stroke-linecap:round}
.lb-nav{position:absolute;top:50%;transform:translateY(-50%);width:42px;height:60px;border-radius:16px;
  display:grid;place-items:center;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.18);z-index:2}
.lb-nav.prev{inset-inline-start:8px}
.lb-nav.next{inset-inline-end:8px}
.lb-nav svg{width:20px;height:20px;stroke:#fff;stroke-width:2.2;fill:none;stroke-linecap:round;stroke-linejoin:round}
.lb-nav[hidden]{display:none}
.lb-count{position:absolute;bottom:calc(var(--safe-b) + 26px);left:50%;transform:translateX(-50%);
  font-size:12px;color:rgba(255,255,255,.6);letter-spacing:1px}

/* 动作面板 */
.as-list{padding:2px 0 0}
.as-item{display:block;width:100%;height:54px;border-radius:16px;font-size:15px;font-weight:600;color:#fff;
  background:rgba(255,255,255,.07);margin-bottom:8px;transition:.16s}
.as-item:active{background:rgba(255,255,255,.16)}
.as-item.danger{color:#ff9db4}
.as-item.cancel{background:none;color:rgba(255,255,255,.6);margin-top:2px}

/* 可点击的次级链接 */
.sec a{color:rgba(255,255,255,.5);font-size:12px;display:inline-flex;align-items:center;gap:3px}
.sec a:active{opacity:.6}

.cmts .rep{color:#8fa6ff;font-size:11px}
.cmts [data-cname]{cursor:pointer}
.cmts [data-cname]:active{opacity:.7}


/* ==========================================================================
   背景模式：浅色（白底黑字）/ 自定义壁纸
   ========================================================================== */
/* ---- 浅色：token 全翻 ---- */
body.bg-light{
  --glass: linear-gradient(155deg, rgba(255,255,255,.86), rgba(255,255,255,.62));
  --glass-deep: linear-gradient(160deg, rgba(255,255,255,.96), rgba(244,245,250,.98));
  --stroke: rgba(255,255,255,.9);
  --stroke-soft: rgba(20,22,35,.08);
  --ink: #10121a;
  --ink2: rgba(18,20,32,.66);
  --ink3: rgba(18,20,32,.45);
  background: #f7f8fb;
}
body.bg-light .bg{opacity:.22}
body.bg-light .grain{opacity:.035;mix-blend-mode:multiply}
body.bg-light .glass{
  box-shadow:0 10px 30px rgba(24,26,48,.10), 0 1px 0 rgba(255,255,255,.9) inset,
             0 0 0 1px rgba(20,22,40,.045);
}
body.bg-light .glass::after{opacity:.55;
  background:linear-gradient(120deg,rgba(255,255,255,.9) 0%,rgba(255,255,255,0) 30%,rgba(255,255,255,0) 70%,rgba(255,255,255,.5) 100%)}
body.bg-light .icon-btn,
body.bg-light .langbtn{background:rgba(255,255,255,.7);border-color:rgba(20,22,40,.08)}
body.bg-light .icon-btn svg{stroke:#1a1d29}
body.bg-light .thumb{box-shadow:inset 0 0 0 1px rgba(255,255,255,.5)}
body.bg-light .pill{background:rgba(20,22,40,.07);color:rgba(18,20,32,.7)}
body.bg-light .m-text{color:rgba(16,18,26,.9)}
body.bg-light .m-text .hl{color:#5b45d6}
body.bg-light .song{background:rgba(255,255,255,.72);border-color:rgba(20,22,40,.07)}
body.bg-light .m-acts{border-top-color:rgba(20,22,40,.08)}
body.bg-light .cmts{background:rgba(20,22,40,.045)}
body.bg-light .cmts b{color:#4b5bd6}
body.bg-light .cmts .lk{color:#c2185b}
body.bg-light .cmts .rep{color:#5566cc}
body.bg-light .cmt-form input{background:rgba(255,255,255,.8);border-color:rgba(20,22,40,.1);color:#10121a}
body.bg-light .cmt-form input::placeholder{color:rgba(18,20,32,.38)}
body.bg-light .dock{background:rgba(255,255,255,.72);border-color:rgba(255,255,255,.9);
  box-shadow:0 16px 40px rgba(24,26,48,.16), inset 0 1px 0 rgba(255,255,255,.95)}
body.bg-light .tab svg{stroke:rgba(18,20,32,.5)}
body.bg-light .tab b{color:rgba(18,20,32,.5)}
body.bg-light .tab.on svg{stroke:#10121a}
body.bg-light .tab.on b{color:#10121a}
body.bg-light .tab .pill{background:linear-gradient(160deg,rgba(255,255,255,.98),rgba(240,242,250,.9));
  border-color:#fff;box-shadow:0 6px 18px rgba(24,26,48,.14), inset 0 1px 0 #fff}
body.bg-light .tab .pill::after{background:linear-gradient(120deg,rgba(255,255,255,.9),transparent 45%,transparent 68%,rgba(255,255,255,.6))}
body.bg-light .sheet{background:linear-gradient(160deg,rgba(255,255,255,.98),rgba(240,242,249,.99));
  border-color:rgba(255,255,255,.9);box-shadow:0 -12px 50px rgba(24,26,48,.22), inset 0 1px 0 #fff}
body.bg-light .grab{background:rgba(18,20,32,.18)}
body.bg-light .ta,body.bg-light .reader .body{color:rgba(16,18,26,.88)}
body.bg-light .ta:empty::before{color:rgba(18,20,32,.35)}
body.bg-light .row{color:rgba(18,20,32,.8);border-top-color:rgba(20,22,40,.08)}
body.bg-light .row svg{stroke:rgba(18,20,32,.55)}
body.bg-light .row input{color:rgba(18,20,32,.55)}
body.bg-light .input,body.bg-light .textarea{background:rgba(255,255,255,.85);border-color:rgba(20,22,40,.1);color:#10121a}
body.bg-light .input::placeholder,body.bg-light .textarea::placeholder{color:rgba(18,20,32,.35)}
body.bg-light .input:focus,body.bg-light .textarea:focus{background:#fff;border-color:rgba(123,92,255,.55)}
body.bg-light select.input{color:#10121a}
body.bg-light .toast{background:rgba(255,255,255,.96);color:#10121a;border-color:rgba(20,22,40,.08);
  box-shadow:0 14px 36px rgba(24,26,48,.18)}
body.bg-light .fade-bottom{background:linear-gradient(180deg,
  rgba(244,245,250,0) 0%,rgba(244,245,250,.30) 32%,rgba(244,245,250,.64) 58%,
  rgba(244,245,250,.88) 78%,rgba(244,245,250,.95) 100%)}
body.bg-light .icp{color:rgba(18,20,32,.35)}
body.bg-light .icp:hover{color:rgba(18,20,32,.55)}
body.bg-light .sec a{color:rgba(18,20,32,.45)}
body.bg-light .as-item{background:rgba(20,22,40,.05);color:#10121a}
body.bg-light .as-item:active{background:rgba(20,22,40,.1)}
body.bg-light .as-item.danger{color:#c2185b}
body.bg-light .as-item.cancel{color:rgba(18,20,32,.5)}
body.bg-light .tabs a{background:rgba(255,255,255,.7);border-color:rgba(20,22,40,.07);color:rgba(18,20,32,.6)}
body.bg-light .tabs a.on{background:#fff;border-color:rgba(20,22,40,.16);color:#10121a;box-shadow:0 4px 14px rgba(24,26,48,.1)}
body.bg-light .mini{background:rgba(20,22,40,.06);border-color:rgba(20,22,40,.08);color:#10121a}
body.bg-light .mini.danger{background:rgba(255,60,110,.1);border-color:rgba(255,60,110,.22);color:#c2185b}
body.bg-light .mini.ok{background:rgba(16,180,110,.12);border-color:rgba(16,180,110,.25);color:#067a4c}
body.bg-light .lrow{border-bottom-color:rgba(20,22,40,.07)}
body.bg-light .cmt-item{border-bottom-color:rgba(20,22,40,.07)}
body.bg-light .cmt-item b{color:#4b5bd6}
body.bg-light .switch{background:rgba(20,22,40,.12)}
body.bg-light .kpi span,body.bg-light .lrow .d{color:rgba(18,20,32,.42)}
body.bg-light .empty{color:rgba(18,20,32,.4)}
body.bg-light .back{color:rgba(18,20,32,.62)}
body.bg-light .cover .who{text-shadow:0 1px 6px rgba(0,0,0,.55)}
body.bg-light .avt{box-shadow:0 6px 18px rgba(24,26,48,.18), inset 0 0 0 2px rgba(255,255,255,.9)}

/* ---- 自定义壁纸 ---- */
body.bg-image{background:#0a0b12}
body.bg-image .bg{display:none}
body.bg-image .stage{background-image:var(--bg-img);background-size:cover;background-position:center;
  background-repeat:no-repeat}
body.bg-image .glass{
  -webkit-backdrop-filter:blur(16px) saturate(140%);
  backdrop-filter:blur(16px) saturate(140%);
}
body.bg-image .stage::before{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,rgba(6,7,14,.46) 0%,rgba(6,7,14,.30) 38%,rgba(6,7,14,.66) 100%)}
body.bg-image .grain{z-index:2}
body.bg-image .fade-bottom{z-index:20;background:linear-gradient(180deg,transparent,rgba(6,7,14,.72))}

/* 浅色模式下遮罩/灯箱保持深色 */
body.bg-light .lightbox{background:rgba(12,14,24,.86)}
body.bg-light .veil{background:rgba(12,14,24,.32)}


/* ==========================================================================
   低功耗模式：关掉全部实时模糊与动画（老旧机型 / 微信内置浏览器）
   ========================================================================== */
body.perf-lite .bg i{animation:none}
body.perf-lite .grain{display:none}
body.perf-lite .glass,
body.perf-lite .dock,
body.perf-lite .sheet,
body.perf-lite .icon-btn,
body.perf-lite .toast,
body.perf-lite .lightbox{
  -webkit-backdrop-filter:none!important;backdrop-filter:none!important;
}
body.perf-lite .glass{background:linear-gradient(155deg,rgba(40,34,62,.90),rgba(22,20,36,.86))}
body.perf-lite .dock{background:rgba(30,27,48,.90)}
body.perf-lite .sheet{background:linear-gradient(160deg,rgba(46,42,68,.97),rgba(24,22,40,.98))}
body.perf-lite .icon-btn{background:rgba(28,26,44,.82)}
body.perf-lite .toast{background:rgba(28,26,44,.96)}
body.perf-lite.bg-light .glass{background:linear-gradient(155deg,rgba(255,255,255,.95),rgba(247,248,252,.92))}
body.perf-lite.bg-light .dock{background:rgba(255,255,255,.94)}
body.perf-lite.bg-light .sheet{background:rgba(255,255,255,.98)}
body.perf-lite.bg-light .icon-btn{background:rgba(255,255,255,.86)}
body.perf-lite.bg-light .toast{background:rgba(255,255,255,.97)}

@media (min-width:700px){ .grain{display:block} }   /* 桌面才开噪点，手机省一层 */


/* ==========================================================================
   兜底：彻底关掉 iOS 点击高亮 / 长按菜单 / 选中蓝块
   （放在最后 + !important，防止被别处的简写覆盖）
   ========================================================================== */
html,body,*:not(input):not(textarea):not(select):not(.input):not(.textarea):not(.ta){
  -webkit-tap-highlight-color:transparent !important;
  -webkit-tap-highlight-color:rgba(0,0,0,0) !important;
}
a,button,[role="button"],.tab,.icon-btn,.dock,.cell,.m-acts,.as-item,.mini{
  -webkit-tap-highlight-color:transparent !important;
  touch-action:manipulation;
}
a:focus,button:focus,[role="button"]:focus{outline:none}
a:focus-visible,button:focus-visible{outline:none}
