/* Nyamon镜像站 · 公共样式
   设计基线沿用 cn.skam.cc：浅蓝底、玻璃面板、22px 圆角、斜纹质感叠加 */

:root{
  --bg:#f4fbff;
  --panel:rgba(255,255,255,.88);
  --panel-strong:rgba(255,255,255,.94);
  --border:#d9eaf8;
  --border-strong:#c8def2;
  --primary:#68baff;
  --primary-deep:#2f7fcf;
  --text:#4f6675;
  --text-soft:#7f98aa;
  --ok:#3ec98a;
  --warn:#f2b544;
  --danger:#ff5f73;
  --pink:#f69bbb;
  --shadow:0 14px 40px rgba(74,135,188,.08);
  --shadow-soft:0 8px 20px rgba(74,135,188,.05);
  --texture:linear-gradient(135deg,rgba(255,255,255,.18) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.18) 50%,rgba(255,255,255,.18) 75%,transparent 75%,transparent);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  min-height:100vh;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"PingFang SC","Microsoft YaHei",sans-serif;
  color:var(--text);
  background:var(--bg);
  position:relative;
  -webkit-font-smoothing:antialiased;
}
body::before{
  content:'';position:fixed;inset:0;
  background:
    radial-gradient(circle at top left,rgba(208,232,249,.38),transparent 34%),
    radial-gradient(circle at bottom right,rgba(220,239,248,.45),transparent 28%),
    linear-gradient(180deg,rgba(255,255,255,.68),rgba(244,251,255,.92));
  z-index:-2;
}
body::after{
  content:'';position:fixed;inset:0;
  background-image:var(--texture);background-size:14px 14px;opacity:.06;
  z-index:-1;pointer-events:none;
}
a{color:var(--primary-deep);text-decoration:none}
h1,h2,h3,p,ul{margin:0}

/* ---------- 导航 ---------- */
.navbar{
  position:fixed;top:18px;left:50%;transform:translateX(-50%);
  width:min(1180px,calc(100% - 28px));
  min-height:70px;display:flex;align-items:center;justify-content:space-between;
  gap:16px;padding:12px 18px;
  border:1px solid var(--border);border-radius:22px;
  background:var(--panel);
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  box-shadow:var(--shadow);z-index:100;overflow:hidden;
}
.navbar::after{
  content:'';position:absolute;inset:0;
  background-image:linear-gradient(135deg,rgba(255,255,255,.22) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.22) 50%,rgba(255,255,255,.22) 75%,transparent 75%,transparent);
  background-size:16px 16px;opacity:.12;pointer-events:none;
}
.navbar-left,.navbar-right{display:flex;align-items:center;gap:12px;position:relative;z-index:1;min-width:0}
.brand{display:flex;align-items:center;gap:11px;min-width:0}
.brand-mark{width:36px;height:36px;flex:0 0 36px;display:block}
.brand-text{display:flex;flex-direction:column;line-height:1.25;min-width:0}
.brand-name{font-size:15px;font-weight:800;color:var(--primary-deep);letter-spacing:.01em;white-space:nowrap}
.brand-sub{font-size:11px;color:var(--text-soft);white-space:nowrap;letter-spacing:.02em}
.nav-links{display:flex;align-items:center;gap:4px;margin-right:4px}
.nav-link{
  font-size:13px;font-weight:700;color:var(--text-soft);padding:9px 12px;border-radius:12px;
  transition:color .18s ease,background .18s ease;
}
.nav-link:hover{color:var(--primary-deep);background:#eef7ff}
.nav-link.active{color:var(--primary-deep);background:#eaf6ff}
.nav-btn{
  appearance:none;min-height:42px;padding:0 16px;border-radius:14px;
  display:inline-flex;align-items:center;justify-content:center;
  border:1px solid #61b4fb;background:linear-gradient(180deg,#7bc4ff,#61b4fb);color:#fff;
  font-size:14px;font-weight:800;cursor:pointer;position:relative;overflow:hidden;
  box-shadow:var(--shadow-soft);transition:transform .18s ease,box-shadow .18s ease;
}
.nav-btn::after{
  content:'';position:absolute;inset:0;
  background-image:linear-gradient(135deg,rgba(255,255,255,.24) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.24) 50%,rgba(255,255,255,.24) 75%,transparent 75%,transparent);
  background-size:12px 12px;opacity:.18;pointer-events:none;
}
.nav-btn:hover{transform:translateY(-1px);box-shadow:0 12px 24px rgba(80,150,210,.22)}
.nav-btn:active{transform:translateY(1px)}
.nav-pill{
  display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 12px;
  border:1px solid var(--border-strong);border-radius:999px;background:var(--panel-strong);
  font-size:12px;font-weight:800;color:var(--primary-deep);box-shadow:var(--shadow-soft);
  white-space:nowrap;
}
.dot{width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 0 rgba(62,201,138,.5);animation:pulse 2.2s infinite}
.dot.is-bad{background:var(--danger);animation:none}
.dot.is-wait{background:var(--warn);animation:none}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(62,201,138,.45)}70%{box-shadow:0 0 0 7px rgba(62,201,138,0)}100%{box-shadow:0 0 0 0 rgba(62,201,138,0)}}

/* ---------- 布局 ---------- */
.main-container{max-width:1000px;margin:0 auto;padding:112px 20px 40px}
.hero{
  text-align:center;margin-bottom:26px;
  opacity:0;transform:translateY(8px);animation:fadeUp .46s ease forwards;
}
.hero h1{margin:0 0 12px;font-size:clamp(30px,6vw,42px);font-weight:800;color:var(--primary-deep);letter-spacing:.02em}
.hero p{margin:0 auto;max-width:660px;line-height:1.95;color:var(--text-soft);font-size:13.5px}
.section{margin-top:26px}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:0 4px 14px}
.section-title{display:flex;align-items:center;gap:10px;font-size:17px;font-weight:800;color:var(--primary-deep)}
.section-title .bar-mark{width:5px;height:17px;border-radius:3px;background:linear-gradient(180deg,#8fd2ff,#4aa8f8)}
.section-desc{font-size:12px;color:var(--text-soft);margin:0}
.panel{
  background:var(--panel-strong);border:1px solid var(--border);border-radius:22px;
  box-shadow:var(--shadow);position:relative;overflow:hidden;
}
.panel::after{
  content:'';position:absolute;inset:0;background-image:var(--texture);
  background-size:14px 14px;opacity:.12;pointer-events:none;
}
.panel > *{position:relative;z-index:1}
.panel-head{
  display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
  padding:18px 20px 0;
}
.panel-title{font-size:14px;font-weight:800;color:var(--primary-deep)}
.panel-meta{display:flex;align-items:center;gap:10px;font-size:11.5px;color:var(--text-soft);flex-wrap:wrap}

/* ---------- 快捷入口 ---------- */
.portal-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}
.portal-card{
  background:var(--panel-strong);border:1px solid var(--border);border-radius:22px;padding:22px 20px 20px;
  text-decoration:none;color:var(--text);position:relative;overflow:hidden;
  box-shadow:var(--shadow);transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;
  display:block;
}
.portal-card::after{
  content:'';position:absolute;inset:0;
  background-image:linear-gradient(135deg,rgba(255,255,255,.26) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.26) 50%,rgba(255,255,255,.26) 75%,transparent 75%,transparent);
  background-size:14px 14px;opacity:.12;pointer-events:none;
}
.portal-card:hover{transform:translateY(-2px);border-color:#bfdbf1;box-shadow:0 18px 36px rgba(74,135,188,.12)}
.portal-card > *{position:relative;z-index:1}
.portal-mark{
  width:42px;height:42px;margin-bottom:13px;border-radius:14px;
  display:inline-flex;align-items:center;justify-content:center;
  background:#eef7ff;border:1px solid #d9eaf8;color:var(--primary-deep);
}
.portal-mark svg{width:22px;height:22px}
.portal-title{font-size:16.5px;font-weight:800;color:var(--primary-deep)}
.portal-desc{margin-top:7px;font-size:12.5px;color:var(--text-soft);line-height:1.85}

/* ---------- 页脚 ---------- */
.site-footer{
  margin-top:44px;position:relative;
  background:linear-gradient(180deg,rgba(255,255,255,.92),rgba(240,249,255,.96));
  border-top:1px solid var(--border);
  box-shadow:0 -10px 30px rgba(74,135,188,.05);
}
.footer-inner{
  max-width:1000px;margin:0 auto;padding:38px 20px 26px;
  display:grid;grid-template-columns:.95fr 1.18fr .95fr;gap:30px;
}
.footer-brand .fb-top{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.footer-brand .fb-top img{width:32px;height:32px;display:block}
.footer-brand .fb-name{font-size:15px;font-weight:800;color:var(--primary-deep)}
.footer-desc{font-size:12.5px;line-height:1.95;color:var(--text-soft);margin:0 0 12px;max-width:320px}
.footer-col h3{
  font-size:13px;font-weight:800;color:var(--primary-deep);margin:2px 0 13px;
  display:flex;align-items:center;gap:7px;
}
.footer-col h3::before{content:'';width:4px;height:13px;border-radius:2px;background:linear-gradient(180deg,#9ad6ff,#5fb4fa)}
.footer-col ul{list-style:none;margin:0;padding:0}
.footer-col li{
  font-size:12px;line-height:1.8;color:var(--text-soft);margin-bottom:9px;
  padding-left:13px;position:relative;
}
.footer-col li::before{content:'';position:absolute;left:0;top:8px;width:5px;height:5px;border-radius:50%;background:#bddcf3}
.footer-col.links li{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding-left:0;min-width:0}
.footer-col.links li::before{display:none}
.footer-col.links li span{font-size:11.5px;color:#93a9b8;flex:0 0 auto}
.footer-col.links a{
  font-size:12px;font-weight:700;color:var(--primary-deep);border-bottom:1px dashed #cfe6f7;
  padding-bottom:1px;transition:border-color .18s ease,color .18s ease;text-align:right;
  min-width:0;overflow-wrap:anywhere;
}
.footer-col.links a:hover{border-color:var(--primary);color:#1f6cbb}
.footer-bottom{
  border-top:1px solid #e4f1fa;max-width:1000px;margin:0 auto;
  padding:16px 20px 26px;display:flex;align-items:center;justify-content:space-between;
  gap:12px;flex-wrap:wrap;font-size:11.5px;color:#93a9b8;
}
.footer-bottom .fb-note{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}
.footer-bottom a{color:var(--primary-deep);font-weight:700;border-bottom:1px dashed #cfe6f7;padding-bottom:1px}
.footer-bottom a:hover{border-color:var(--primary)}

/* ---------- 动效 ---------- */
@keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.reveal{opacity:0;transform:translateY(10px);animation:fadeUp .45s ease forwards}
.d1{animation-delay:.04s}.d2{animation-delay:.1s}.d3{animation-delay:.16s}

@media (max-width:900px){
  .footer-inner{grid-template-columns:1fr 1fr;gap:26px}
  .footer-brand{grid-column:1 / -1}
}
@media (max-width:720px){
  .navbar{top:12px;width:calc(100% - 20px);border-radius:18px;padding:10px 12px}
  .main-container{padding:96px 12px 28px}
  .nav-links{display:none}
  .brand-sub{font-size:10px}
  .footer-inner{grid-template-columns:1fr;padding:30px 16px 20px}
  .footer-bottom{padding:14px 16px 22px;justify-content:center;text-align:center}
}
@media (max-width:430px){
  .nav-btn{padding:0 12px;font-size:13px;min-height:38px;border-radius:12px}
  .brand-sub{display:none}
  .brand-name{font-size:14px}
  .brand-mark{width:32px;height:32px;flex:0 0 32px}
  .navbar{padding:9px 11px;gap:8px}
}
@media (prefers-reduced-motion:reduce){
  *{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}
}
