/* ================= 基础重置 ================= */
*{margin:0;padding:0;box-sizing:border-box}
:root{
  --cyan:#00e5ff;
  --blue:#4d8dff;
  --purple:#8b5cff;
  --green:#22ffa7;
  --ink:#e8f2ff;
  --muted:#7d92ad;
}
html,body{width:100%}
body{
  font-family:"Inter","PingFang SC","Microsoft YaHei",system-ui,-apple-system,sans-serif;
  background:radial-gradient(ellipse 120% 80% at 50% -10%, #0a1a30 0%, #050a14 42%, #02040a 100%);
  color:var(--ink);
  min-height:100vh;
  display:flex;
  flex-direction:column;
  overflow-x:hidden;
  position:relative;
  -webkit-font-smoothing:antialiased;
}

/* ================= 背景层 ================= */
#bg{position:fixed;inset:0;z-index:0;pointer-events:none}

.grid-overlay{
  position:fixed;inset:0;z-index:1;pointer-events:none;
  background-image:
    linear-gradient(rgba(0,229,255,.055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0,229,255,.055) 1px, transparent 1px);
  background-size:56px 56px;
  -webkit-mask-image:radial-gradient(ellipse 65% 55% at 50% 42%, #000 0%, transparent 72%);
  mask-image:radial-gradient(ellipse 65% 55% at 50% 42%, #000 0%, transparent 72%);
  animation:gridDrift 22s linear infinite;
}
@keyframes gridDrift{
  from{background-position:0 0, 0 0}
  to{background-position:0 56px, 56px 0}
}

.aurora{
  position:fixed;border-radius:50%;filter:blur(110px);
  pointer-events:none;z-index:1;opacity:.5;mix-blend-mode:screen;
}
.aurora-1{
  width:560px;height:560px;top:-200px;left:-140px;
  background:radial-gradient(circle,rgba(0,229,255,.6),transparent 66%);
  animation:drift1 16s ease-in-out infinite alternate;
}
.aurora-2{
  width:640px;height:640px;bottom:-260px;right:-180px;
  background:radial-gradient(circle,rgba(139,92,255,.55),transparent 66%);
  animation:drift2 21s ease-in-out infinite alternate;
}
.aurora-3{
  width:420px;height:420px;top:38%;left:56%;
  background:radial-gradient(circle,rgba(34,255,167,.28),transparent 66%);
  animation:drift1 26s ease-in-out infinite alternate-reverse;
}
@keyframes drift1{
  from{transform:translate3d(0,0,0) scale(1)}
  to{transform:translate3d(70px,50px,0) scale(1.15)}
}
@keyframes drift2{
  from{transform:translate3d(0,0,0) scale(1.1)}
  to{transform:translate3d(-80px,-60px,0) scale(.95)}
}

/* 全屏扫描线 */
.scanline{
  position:fixed;left:0;right:0;height:2px;z-index:3;pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(0,229,255,.75),transparent);
  box-shadow:0 0 22px rgba(0,229,255,.85);
  animation:scan 7s linear infinite;
}
@keyframes scan{
  0%{top:-2%;opacity:0}
  8%{opacity:1}
  92%{opacity:1}
  100%{top:102%;opacity:0}
}

/* ================= 顶部导航 ================= */
.nav{
  position:relative;z-index:5;
  display:flex;align-items:center;justify-content:space-between;
  padding:22px clamp(20px,4vw,56px);
  animation:fadeDown .9s .1s both;
}

/* ===== Logo 超链接 A 标签 ===== */
.logo{
  display:flex;align-items:center;gap:14px;
  flex:none;
  text-decoration:none;
  color:inherit;
  border-radius:12px;
  padding:6px 10px;
  margin:-6px -10px;
  transition:background .35s ease, transform .35s cubic-bezier(.34,1.56,.64,1);
  outline:none;
}
.logo:hover{
  background:rgba(0,229,255,.06);
  transform:translateY(-1px);
}
.logo:focus-visible{
  box-shadow:0 0 0 2px rgba(0,229,255,.6);
}
.logo:active{transform:translateY(0) scale(.99)}

.logo-mark{width:34px;height:34px;position:relative;flex:none}
.logo-mark::before{
  content:'';position:absolute;inset:0;border:2px solid var(--cyan);border-radius:9px;
  box-shadow:0 0 16px rgba(0,229,255,.65), inset 0 0 14px rgba(0,229,255,.35);
  animation:spin 9s linear infinite;
}
.logo-mark::after{
  content:'';position:absolute;inset:10px;border-radius:50%;background:var(--cyan);
  box-shadow:0 0 18px var(--cyan);
  animation:blink 2s ease-in-out infinite;
}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes blink{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.75)}}

/* ===== Logo 文字（林夕设计家园 · 网站监测） ===== */
.logo-text{
  display:flex;align-items:baseline;gap:3px;
  font-size:15px;font-weight:700;letter-spacing:.06em;color:#dff3ff;
  white-space:nowrap;
  transition:color .3s ease;
}
.logo:hover .logo-text{color:#ffffff}
.logo-text span{
  color:var(--cyan);
  font-size:13.5px;font-weight:600;letter-spacing:.08em;
  text-shadow:0 0 16px rgba(0,229,255,.7);
  transition:text-shadow .3s ease;
}
.logo:hover .logo-text span{
  text-shadow:0 0 24px rgba(0,229,255,1);
}

/* ===== 主导航菜单 ===== */
.nav-menu{
  display:flex;align-items:center;justify-content:center;
  flex:1 1 auto;
  min-width:0;
  gap:4px;
  margin:0 clamp(12px,2.4vw,30px);
}
.nav-menu a{
  position:relative;
  display:inline-block;
  padding:9px 14px;
  font-size:13.5px;
  font-weight:600;
  letter-spacing:.06em;
  color:#9fb6cc;
  text-decoration:none;
  border-radius:10px;
  white-space:nowrap;
  -webkit-tap-highlight-color:transparent;
  transition:color .3s ease, background .3s ease, box-shadow .3s ease, transform .3s ease;
}
.nav-menu a:hover{
  color:#e6f7ff;
  background:rgba(0,229,255,.07);
}
.nav-menu a:focus-visible{
  outline:none;
  box-shadow:0 0 0 2px rgba(0,229,255,.6);
}
/* 当前栏目高亮：网站监测 */
.nav-menu a.active{
  color:#02131b;
  font-weight:800;
  background:linear-gradient(110deg,#00e5ff,#4d8dff 52%,#8b5cff);
  box-shadow:
    0 0 22px rgba(0,229,255,.45),
    inset 0 0 0 1px rgba(255,255,255,.2);
}
.nav-menu a.active:hover{
  transform:translateY(-1px);
  box-shadow:
    0 0 30px rgba(0,229,255,.65),
    inset 0 0 0 1px rgba(255,255,255,.3);
}

.nav-right{
  display:flex;align-items:center;gap:22px;
  flex:none;
}
.nav-clock{
  font-variant-numeric:tabular-nums;font-size:13px;letter-spacing:.18em;
  color:#7fb6cf;opacity:.85;
}
.nav-status{
  display:inline-flex;align-items:center;gap:8px;
  padding:7px 16px;border-radius:100px;font-size:12.5px;letter-spacing:.12em;
  color:#a9f5da;
  background:rgba(34,255,167,.08);
  border:1px solid rgba(34,255,167,.3);
  box-shadow:0 0 22px rgba(34,255,167,.12);
}
.dot{
  width:7px;height:7px;border-radius:50%;background:var(--green);
  box-shadow:0 0 10px var(--green);animation:blink 1.6s ease-in-out infinite;
}

/* ================= 主视觉 ================= */
.hero{
  position:relative;z-index:5;flex:1;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;
  padding:32px clamp(20px,5vw,64px) 72px;
}

.badge{
  display:inline-flex;align-items:center;gap:10px;
  padding:8px 20px;border-radius:100px;
  font-size:12.5px;letter-spacing:.16em;color:#9fdcf0;
  background:linear-gradient(90deg,rgba(0,229,255,.10),rgba(139,92,255,.10));
  border:1px solid rgba(0,229,255,.26);
  box-shadow:0 0 26px rgba(0,229,255,.14), inset 0 0 22px rgba(0,229,255,.06);
  backdrop-filter:blur(10px);
  animation:fadeUp .8s .25s both;
}

h1{
  margin-top:28px;
  font-size:clamp(38px,7vw,86px);
  font-weight:800;
  line-height:1.1;
  letter-spacing:-.02em;
}
h1 .line{display:block;animation:fadeUp .9s both}
h1 .line:nth-child(1){animation-delay:.36s}
h1 .line:nth-child(2){animation-delay:.48s}

.gradient{
  background:linear-gradient(100deg,#00e5ff 0%,#5c9bff 32%,#a06bff 64%,#22ffa7 100%);
  background-size:220% 100%;
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
  filter:drop-shadow(0 0 28px rgba(0,229,255,.35));
  animation:fadeUp .9s .48s both, hueShift 8s linear infinite;
}
@keyframes hueShift{
  0%{background-position:0% 50%}
  100%{background-position:200% 50%}
}

.sub{
  margin-top:28px;max-width:660px;
  font-size:clamp(14px,1.5vw,17px);
  line-height:1.95;color:var(--muted);
  animation:fadeUp .9s .62s both;
}
.sub b{color:#a8e6ff;font-weight:600}

/* ================= 按钮（A 标签） ================= */
.actions{
  margin-top:46px;
  display:flex;justify-content:center;
  animation:fadeUp .9s .78s both;
}

.btn-wrap{position:relative;display:inline-flex;border-radius:999px}
.btn-wrap::before{
  content:'';position:absolute;inset:-8px;border-radius:999px;z-index:0;
  background:linear-gradient(110deg,#00e5ff,#8b5cff);
  filter:blur(20px);opacity:.5;
  animation:pulseGlow 3s ease-in-out infinite;
}
@keyframes pulseGlow{
  0%,100%{opacity:.35;transform:scale(.98)}
  50%{opacity:.75;transform:scale(1.06)}
}

.btn-primary{
  position:relative;z-index:1;
  display:inline-flex;align-items:center;gap:12px;
  padding:19px 48px;
  border:none;border-radius:999px;
  font-family:inherit;
  font-size:17px;font-weight:800;letter-spacing:.16em;
  color:#02131b;
  text-decoration:none;
  -webkit-tap-highlight-color:transparent;
  background:linear-gradient(110deg,#00e5ff,#4d8dff 48%,#9b6bff);
  background-size:200% 100%;
  cursor:pointer;
  overflow:hidden;
  isolation:isolate;
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.22),
    0 12px 34px -8px rgba(0,229,255,.7),
    0 0 70px rgba(0,229,255,.3);
  transition:transform .35s cubic-bezier(.34,1.56,.64,1),
             box-shadow .35s ease,
             background-position .6s ease;
  outline:none;
}
.btn-primary:hover{
  transform:translateY(-4px) scale(1.04);
  background-position:100% 0;
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.4),
    0 18px 44px -8px rgba(0,229,255,.85),
    0 0 120px rgba(139,92,255,.55);
}
.btn-primary:active{transform:translateY(-1px) scale(.99)}
.btn-primary:focus-visible{
  box-shadow:
    inset 0 0 0 2px rgba(255,255,255,.75),
    0 0 0 4px rgba(0,229,255,.45),
    0 18px 44px -8px rgba(0,229,255,.85);
}

/* 按钮扫光 */
.btn-primary::after{
  content:'';position:absolute;top:-10%;left:-130%;width:55%;height:120%;z-index:1;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.8),transparent);
  transform:skewX(-22deg);
  transition:left .75s cubic-bezier(.2,.8,.3,1);
}
.btn-primary:hover::after{left:150%}

.btn-text,.btn-arrow{position:relative;z-index:3}
.btn-arrow{transition:transform .35s cubic-bezier(.34,1.56,.64,1)}
.btn-primary:hover .btn-arrow{transform:translateX(6px)}

/* 点击水波纹 */
.ripple{
  position:absolute;z-index:2;border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,255,.85),rgba(255,255,255,.15) 70%);
  transform:scale(0);pointer-events:none;
  animation:rippleAnim .75s ease-out forwards;
}
@keyframes rippleAnim{
  to{transform:scale(1);opacity:0}
}

/* ================= 指标 ================= */
.metrics{
  margin-top:68px;
  display:flex;align-items:center;justify-content:center;flex-wrap:wrap;
  animation:fadeUp 1s .96s both;
}
.metric{position:relative;padding:0 clamp(14px,2.4vw,30px);text-align:center}
.metric:not(:first-child)::before{
  content:'';position:absolute;left:0;top:50%;transform:translateY(-50%);
  width:1px;height:42px;
  background:linear-gradient(180deg,transparent,rgba(0,229,255,.45),transparent);
}
.metric .num{
  display:inline-block;
  font-size:clamp(24px,3vw,34px);font-weight:800;
  font-variant-numeric:tabular-nums;letter-spacing:.02em;
  background:linear-gradient(180deg,#f0fdff,#48d3ff);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
  filter:drop-shadow(0 0 16px rgba(0,229,255,.35));
}
.metric .unit{
  font-size:13.5px;font-weight:700;color:var(--cyan);margin-left:3px;
  text-shadow:0 0 12px rgba(0,229,255,.7);
}
.metric .label{
  margin-top:7px;font-size:12px;letter-spacing:.16em;color:var(--muted);
}

/* ================= 提示 Toast ================= */
.toast{
  position:fixed;left:50%;bottom:52px;z-index:100;
  padding:14px 30px;border-radius:14px;
  font-size:14px;letter-spacing:.08em;color:#cdefff;white-space:nowrap;
  background:rgba(7,19,33,.88);
  border:1px solid rgba(0,229,255,.38);
  box-shadow:0 0 44px rgba(0,229,255,.28), inset 0 0 26px rgba(0,229,255,.06);
  backdrop-filter:blur(14px);
  opacity:0;pointer-events:none;
  transform:translate(-50%,26px);
  transition:opacity .45s cubic-bezier(.2,.8,.3,1), transform .45s cubic-bezier(.2,.8,.3,1);
}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* 进入监测时的全屏光爆 */
body.enter::after{
  content:'';position:fixed;inset:0;z-index:90;pointer-events:none;
  background:radial-gradient(circle at 50% 52%, rgba(0,229,255,.42), transparent 62%);
  animation:flashIn .95s ease-out forwards;
}
@keyframes flashIn{
  0%{opacity:0;transform:scale(.55)}
  35%{opacity:1}
  100%{opacity:0;transform:scale(1.5)}
}

/* ================= 动画关键帧 ================= */
@keyframes fadeUp{
  from{opacity:0;transform:translateY(34px)}
  to{opacity:1;transform:translateY(0)}
}
@keyframes fadeDown{
  from{opacity:0;transform:translateY(-24px)}
  to{opacity:1;transform:translateY(0)}
}

/* ================= 响应式 ================= */
@media (max-width:1180px){
  .nav-menu{gap:0;margin:0 8px}
  .nav-menu a{padding:8px 10px;font-size:12.5px;letter-spacing:.02em}
  .nav-clock{display:none}
}

@media (max-width:920px){
  .nav{
    flex-wrap:wrap;
    row-gap:14px;
    padding:18px 20px;
  }
  .nav-menu{
    order:3;
    flex:1 1 100%;
    width:100%;
    margin:0;
    justify-content:flex-start;
    overflow-x:auto;
    overscroll-behavior-x:contain;
    scrollbar-width:none;
    -ms-overflow-style:none;
    padding:2px 0;
  }
  .nav-menu::-webkit-scrollbar{display:none}
  .nav-menu a{flex:none}
}

@media (max-width:680px){
  .nav{padding:16px 18px;row-gap:12px}
  .nav-status{padding:6px 12px;font-size:11.5px}
  .logo{gap:10px}
  .logo-mark{width:28px;height:28px}
  .logo-text{font-size:12.5px;letter-spacing:.02em;gap:1px}
  .logo-text span{font-size:11px;letter-spacing:.03em}
  .nav-menu a{padding:7px 10px;font-size:12px}
  .btn-primary{padding:17px 38px;font-size:15.5px;letter-spacing:.12em}
  .metrics{margin-top:52px}
  .metric{padding:0 14px}
  .metric .label{font-size:10.5px;letter-spacing:.08em}
  .metric:not(:first-child)::before{height:32px}
}

@media (max-width:380px){
  .logo-text{font-size:11.5px}
  .logo-text span{font-size:10px}
  .nav-status{display:none}
}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:.001ms !important;animation-iteration-count:1 !important}
}