/* mingri.xyz 下载站样式 —— 深色玻璃质感 */
:root{
  --bg:#08090d;
  --bg-soft:#0d0f16;
  --panel:rgba(255,255,255,.045);
  --panel-strong:rgba(255,255,255,.07);
  --line:rgba(255,255,255,.09);
  --line-strong:rgba(255,255,255,.16);
  --text:#eef1f7;
  --text-dim:#9aa3b4;
  --text-mute:#6b7385;
  --brand:#6366f1;
  --brand-2:#22d3ee;
  --brand-3:#a855f7;
  --ok:#34d399;
  --radius:18px;
  --shadow:0 18px 50px -22px rgba(0,0,0,.9);
}

*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0}
body{
  min-height:100vh;
  background:var(--bg);
  color:var(--text);
  font:15px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}

/* ---------- 背景光斑 ---------- */
.bg-glow{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.bg-glow .glow{position:absolute;border-radius:50%;filter:blur(110px);opacity:.5;animation:float 18s ease-in-out infinite}
.bg-glow .g1{width:520px;height:520px;left:-140px;top:-160px;background:radial-gradient(circle,#4f46e5,transparent 68%)}
.bg-glow .g2{width:460px;height:460px;right:-120px;top:40px;background:radial-gradient(circle,#0891b2,transparent 68%);animation-delay:-6s}
.bg-glow .g3{width:520px;height:520px;left:38%;top:52%;background:radial-gradient(circle,#7c3aed,transparent 70%);opacity:.28;animation-delay:-11s}
@keyframes float{
  0%,100%{transform:translate3d(0,0,0) scale(1)}
  50%{transform:translate3d(26px,-24px,0) scale(1.08)}
}

/* ---------- Hero ---------- */
.hero{position:relative;z-index:1;padding:76px 22px 30px;text-align:center}
.hero-inner{max-width:760px;margin:0 auto}
.logo{position:relative;width:76px;height:76px;margin:0 auto 22px}
.logo-mark{
  position:absolute;inset:0;display:grid;place-items:center;
  border-radius:22px;
  background:linear-gradient(140deg,#6366f1,#a855f7 55%,#22d3ee);
  font-weight:800;letter-spacing:.5px;font-size:23px;color:#fff;
  box-shadow:0 20px 44px -18px rgba(99,102,241,.95),inset 0 1px 0 rgba(255,255,255,.45);
}
.logo-ring{
  position:absolute;inset:-9px;border-radius:28px;
  border:1px solid rgba(255,255,255,.14);
  animation:pulse 3.6s ease-in-out infinite;
}
@keyframes pulse{0%,100%{transform:scale(1);opacity:.5}50%{transform:scale(1.06);opacity:.15}}

.site-title{
  margin:0;font-size:clamp(28px,5vw,42px);font-weight:800;letter-spacing:-.6px;
  background:linear-gradient(100deg,#fff 12%,#c7d2fe 46%,#67e8f9 88%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.site-sub{margin:12px 0 0;color:var(--text-dim);font-size:15px}

/* ---------- 搜索 ---------- */
.search-wrap{position:relative;margin:30px auto 0;max-width:520px}
.search{
  width:100%;height:52px;padding:0 46px 0 46px;
  border-radius:16px;border:1px solid var(--line);
  background:var(--panel);color:var(--text);font-size:15px;outline:none;
  backdrop-filter:blur(14px);
  transition:border-color .22s,box-shadow .22s,background .22s;
}
.search::placeholder{color:var(--text-mute)}
.search:focus{
  border-color:rgba(99,102,241,.75);
  background:rgba(99,102,241,.08);
  box-shadow:0 0 0 4px rgba(99,102,241,.14),0 16px 40px -26px rgba(99,102,241,.9);
}
.search-icon{position:absolute;left:16px;top:50%;width:18px;height:18px;transform:translateY(-50%);color:var(--text-mute);pointer-events:none}
.search-clear{
  position:absolute;right:12px;top:50%;transform:translateY(-50%);
  width:24px;height:24px;border:0;border-radius:50%;
  background:rgba(255,255,255,.12);color:var(--text-dim);
  font-size:16px;line-height:1;cursor:pointer;display:none;
}
.search-clear.show{display:block}

.stats{margin-top:20px;display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;color:var(--text-mute);font-size:13px}
.stats b{color:var(--text);font-weight:700}
.stats i{width:3px;height:3px;border-radius:50%;background:var(--text-mute);display:inline-block}

/* ---------- 工具栏 ---------- */
.wrap{position:relative;z-index:1;max-width:1120px;margin:0 auto;padding:10px 22px 40px}
.toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:18px 0 20px}
.chips{display:flex;gap:9px;overflow-x:auto;padding:2px;scrollbar-width:none}
.chips::-webkit-scrollbar{display:none}
.chip{
  flex:0 0 auto;height:34px;padding:0 15px;border-radius:11px;
  border:1px solid var(--line);background:var(--panel);
  color:var(--text-dim);font-size:13px;cursor:pointer;white-space:nowrap;
  transition:.2s;
}
.chip:hover{color:var(--text);border-color:var(--line-strong)}
.chip.active{
  color:#fff;border-color:transparent;
  background:linear-gradient(120deg,var(--brand),var(--brand-3));
  box-shadow:0 12px 26px -16px rgba(99,102,241,.95);
}
.sort-note{flex:0 0 auto;color:var(--text-dim);font-size:12.5px;letter-spacing:.2px}

/* ---------- 卡片网格 ---------- */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:16px}
.card{
  position:relative;padding:18px 18px 20px;
  border-radius:var(--radius);
  border:1px solid var(--line);
  background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.02));
  backdrop-filter:blur(16px);
  box-shadow:var(--shadow);
  transition:transform .26s cubic-bezier(.2,.8,.2,1),border-color .26s,box-shadow .26s;
  overflow:hidden;
}
.card::after{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:radial-gradient(520px circle at 12% -10%,rgba(99,102,241,.22),transparent 46%);
  opacity:0;transition:opacity .3s;
}
.card:hover{transform:translateY(-4px);border-color:rgba(99,102,241,.42);box-shadow:0 26px 60px -28px rgba(0,0,0,.95)}
.card:hover::after{opacity:1}

.card-head{display:flex;gap:13px;align-items:flex-start}
.thumb{
  flex:0 0 auto;width:54px;height:54px;border-radius:15px;overflow:hidden;
  display:grid;place-items:center;
  background:linear-gradient(140deg,rgba(99,102,241,.34),rgba(34,211,238,.2));
  border:1px solid rgba(255,255,255,.13);
}
.thumb img{width:100%;height:100%;object-fit:cover;display:block}
.thumb-text{font-size:21px;font-weight:800;color:#dbeafe;text-transform:uppercase}
.card-title-box{min-width:0;padding-right:44px}
.card-title{
  margin:1px 0 5px;font-size:16px;font-weight:700;letter-spacing:-.2px;
  display:flex;align-items:center;gap:7px;flex-wrap:wrap;
  word-break:break-word;
}
.badge{
  flex:0 0 auto;padding:1px 7px;border-radius:6px;font-size:10px;font-weight:700;letter-spacing:.4px;
  background:linear-gradient(120deg,#f43f5e,#f59e0b);color:#fff;
}
.card-sub{
  margin:0;color:var(--text-dim);font-size:12.5px;line-height:1.55;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}

.meta{
  display:flex;align-items:center;gap:7px;flex-wrap:wrap;
  margin-top:16px;padding-right:52px;
  color:var(--text-mute);font-size:12px;
}
.pill{
  padding:2px 8px;border-radius:7px;font-size:11px;font-weight:700;letter-spacing:.3px;
  background:rgba(99,102,241,.2);color:#c7d2fe;border:1px solid rgba(99,102,241,.34);
}
.pill-ghost{background:rgba(255,255,255,.05);color:var(--text-dim);border-color:var(--line);font-weight:600}
.dot{width:3px;height:3px;border-radius:50%;background:var(--text-mute)}
.size,.dl{white-space:nowrap}

.cat-row{margin-top:12px}
.cat{
  display:inline-block;padding:2px 9px;border-radius:20px;font-size:11px;
  color:var(--text-dim);border:1px dashed var(--line-strong);
}

.btn-dl{
  position:absolute;right:16px;bottom:16px;
  width:40px;height:40px;border-radius:13px;
  display:grid;place-items:center;
  background:rgba(255,255,255,.07);border:1px solid var(--line);
  color:var(--text-dim);text-decoration:none;
  transition:.24s;
}
.btn-dl svg{width:18px;height:18px}
.btn-dl:hover{
  color:#fff;border-color:transparent;
  background:linear-gradient(130deg,var(--brand),var(--brand-3));
  box-shadow:0 14px 28px -14px rgba(99,102,241,.95);
  transform:translateY(-1px);
}

/* ---------- 空状态 / 公告 / 页脚 ---------- */
.empty{display:none;text-align:center;padding:70px 20px}
.empty.show{display:block}
.empty-mark{font-size:44px;color:var(--text-mute);opacity:.5;line-height:1}
.empty-title{margin:14px 0 6px;font-size:16px;font-weight:700}
.empty-sub{margin:0;color:var(--text-mute);font-size:13px}

.notice{
  display:flex;gap:12px;align-items:flex-start;
  margin-top:32px;padding:16px 18px;border-radius:14px;
  border:1px solid var(--line);background:var(--panel);
}
.notice-tag{
  flex:0 0 auto;padding:1px 9px;border-radius:7px;font-size:11px;font-weight:700;
  background:rgba(52,211,153,.16);color:#6ee7b7;border:1px solid rgba(52,211,153,.3);
}
.notice p{margin:0;color:var(--text-dim);font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;min-width:0}
.notice>div{min-width:0}

.footer{position:relative;z-index:1;padding:26px 22px 40px;border-top:1px solid rgba(255,255,255,.05)}
.footer-inner{
  max-width:1120px;margin:0 auto;display:flex;justify-content:space-between;gap:12px;
  color:var(--text-mute);font-size:12px;flex-wrap:wrap;
}
.footer-host{opacity:.55;font-family:ui-monospace,Menlo,Consolas,monospace}

/* ---------- 响应式 ---------- */
@media (max-width:640px){
  .hero{padding:52px 18px 22px}
  .logo{width:64px;height:64px;margin-bottom:18px}
  .logo-mark{font-size:20px;border-radius:19px}
  .wrap{padding:6px 15px 30px}
  .grid{grid-template-columns:1fr;gap:13px}
  .toolbar{flex-direction:column;align-items:stretch;gap:10px}
  .sort-note{text-align:left;margin-top:-4px}
  .card{padding:15px 15px 17px}
  .thumb{width:48px;height:48px;border-radius:13px}
  .thumb-text{font-size:18px}
  .card-title{font-size:15px}
  .btn-dl{right:13px;bottom:13px;width:38px;height:38px}
  .search{height:48px}
}
@media (hover:none){
  .card:hover{transform:none}
}

/* ---------- 兜底：极端窄屏不横向溢出 ---------- */
@media (max-width:480px){
  .container{padding-left:16px;padding-right:16px}
  .card-title{font-size:15px}
  .meta{flex-wrap:wrap;row-gap:4px}
}

/* ---------------------------------------------------------------- 底部暗号入口 */
.gate-dot {
  display: block;
  margin: 14px auto 0;
  width: fit-content;
  font-size: 13px;
  line-height: 1;
  letter-spacing: .22em;
  color: rgba(255, 255, 255, .13);
  cursor: pointer;
  user-select: none;
  transition: color .25s ease;
}
.gate-dot:hover,
.gate-dot:focus-visible {
  color: rgba(255, 255, 255, .42);
  outline: none;
}

.gate[hidden] { display: none; }
.gate {
  position: fixed;
  inset: 0;
  z-index: 90;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
}
.gate-mask {
  position: absolute;
  inset: 0;
  background: rgba(4, 7, 16, .72);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}
.gate-card {
  position: relative;
  width: 100%;
  max-width: 340px;
  padding: 24px 22px 18px;
  border-radius: 18px;
  border: 1px solid rgba(255, 255, 255, .1);
  background: linear-gradient(165deg, rgba(27, 35, 56, .97), rgba(13, 18, 31, .98));
  box-shadow: 0 24px 60px rgba(0, 0, 0, .55);
  animation: gateIn .22s ease-out;
}
@keyframes gateIn {
  from { opacity: 0; transform: translateY(10px) scale(.98); }
  to   { opacity: 1; transform: none; }
}
.gate-x {
  position: absolute;
  top: 8px;
  right: 10px;
  width: 28px;
  height: 28px;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: rgba(255, 255, 255, .38);
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
}
.gate-x:hover { color: rgba(255, 255, 255, .8); background: rgba(255, 255, 255, .07); }
.gate-title {
  font-size: 16px;
  font-weight: 600;
  color: #eef3ff;
  letter-spacing: .02em;
}
.gate-sub {
  margin: 6px 0 16px;
  font-size: 12.5px;
  color: rgba(255, 255, 255, .48);
}
.gate-input {
  width: 100%;
  box-sizing: border-box;
  height: 42px;
  padding: 0 14px;
  border-radius: 11px;
  border: 1px solid rgba(255, 255, 255, .12);
  background: rgba(255, 255, 255, .05);
  color: #eef3ff;
  font-size: 15px;
  letter-spacing: .08em;
  outline: none;
  transition: border-color .2s ease, background .2s ease;
}
.gate-input::placeholder { color: rgba(255, 255, 255, .25); letter-spacing: 0; font-size: 13.5px; }
.gate-input:focus { border-color: rgba(120, 170, 255, .55); background: rgba(255, 255, 255, .07); }
.gate-msg {
  min-height: 18px;
  margin: 8px 2px 0;
  font-size: 12.5px;
  line-height: 18px;
}
.gate-msg.err { color: #ff8686; }
.gate-msg.ok  { color: #6fe0a8; }
.gate-btn {
  width: 100%;
  height: 42px;
  margin-top: 6px;
  border: 0;
  border-radius: 11px;
  background: linear-gradient(120deg, #3d6bff, #6f4bff);
  color: #fff;
  font-size: 14.5px;
  font-weight: 600;
  cursor: pointer;
  transition: filter .2s ease, opacity .2s ease;
}
.gate-btn:hover { filter: brightness(1.08); }
.gate-btn:disabled { opacity: .6; cursor: default; }
.gate-tip {
  margin-top: 12px;
  text-align: center;
  font-size: 11.5px;
  color: rgba(255, 255, 255, .26);
}
@media (max-width: 420px) {
  .gate-card { max-width: none; padding: 22px 18px 16px; }
}

/* ================= 顶部固定导航栏 ================= */
.topbar{
  position:sticky; top:0; z-index:60;
  background:linear-gradient(180deg, rgba(8,9,13,.92), rgba(8,9,13,.74));
  backdrop-filter:blur(18px) saturate(160%);
  -webkit-backdrop-filter:blur(18px) saturate(160%);
  border-bottom:1px solid rgba(255,255,255,.07);
  box-shadow:0 14px 34px -28px rgba(0,0,0,1);
}
.topbar-in{
  max-width:1120px; margin:0 auto;
  padding:11px 22px;
  display:flex; align-items:center; gap:18px;
}
.brand{display:flex; align-items:center; gap:11px; flex:0 1 auto; min-width:0; text-decoration:none; color:inherit}
.brand-mark{
  flex:0 0 auto; width:34px; height:34px; border-radius:11px;
  display:grid; place-items:center;
  background:linear-gradient(140deg,#6366f1,#a855f7 55%,#22d3ee);
  font-weight:800; font-size:13px; letter-spacing:.3px; color:#fff;
  box-shadow:0 10px 22px -12px rgba(99,102,241,.95), inset 0 1px 0 rgba(255,255,255,.45);
}
.brand-txt{display:flex; flex-direction:column; min-width:0; line-height:1.2}
.brand-txt b{
  font-size:15px; font-weight:800; letter-spacing:-.2px;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
  background:linear-gradient(100deg,#fff 12%,#c7d2fe 46%,#67e8f9 88%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.brand-txt i{
  font-style:normal; font-size:11px; color:var(--text-mute); margin-top:2px;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.topbar .search-wrap{flex:1 1 auto; margin:0; max-width:none}
.topbar .search{
  height:40px; border-radius:12px; padding:0 40px; font-size:14px;
  background:rgba(255,255,255,.05);
}
.topbar .search-icon{left:14px; width:17px; height:17px}
.topbar .search-clear{right:10px; width:22px; height:22px; font-size:15px}
.nav-count{flex:0 0 auto; color:var(--text-mute); font-size:12.5px; white-space:nowrap}
.nav-count b{color:var(--text); font-weight:700}

/* hero 精简：不再承载大标题与搜索 */
.hero{padding:30px 22px 0; text-align:center}
.hero .stats{margin-top:4px}
.stats .dot-sep{width:3px;height:3px;border-radius:50%;background:var(--text-mute)}

@media (max-width:720px){
  .topbar-in{flex-wrap:wrap; gap:9px; padding:9px 15px 11px}
  .brand{flex:1 1 auto}
  .brand-txt b{font-size:14.5px}
  .nav-count{display:none}
  .topbar .search-wrap{order:3; flex:1 0 100%}
  .topbar .search{height:38px; border-radius:11px; font-size:13.5px}
  .hero{padding:22px 15px 0}
}

/* 禁用文本拖拽与图片长按菜单后的视觉兜底 */
img, .thumb img{-webkit-user-drag:none; user-select:none}

/* ---- 导航栏间距微调 ---- */
.topbar .search-wrap{max-width:620px}
.nav-count{margin-left:auto}
@media (max-width:720px){
  .topbar .search-wrap{max-width:none; margin-left:0}
  .nav-count{display:none}
}
