/* 导航与页面切换的唯一覆盖层。 */
#site-about,
#site-notice{
  scroll-margin-top:96px;
}

/* 当前页面名称是地图入口；空间坐标继续来自 page-navigation-data.html。 */
.songline-site-map{
  position:fixed;top:8px;left:calc(clamp(20px,3vw,52px) + 52px);
  z-index:10060;width:auto;isolation:isolate;pointer-events:auto;
  --map-accent:#9de4ef;
  --map-entry-start:#566272;--map-entry-end:#404d5f;--map-entry-text:#f0f4fa;
}
body:not(.dark) .songline-site-map{
  --map-accent:#ffe0ac;
  --map-entry-start:#dfd8d2;--map-entry-end:#c8c0ba;--map-entry-text:#49424a;
}
.songline-site-map__toggle{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-width:76px;min-height:44px!important;box-sizing:border-box;padding:0 12px;
  border:0;border-radius:4px;background:linear-gradient(135deg,var(--map-entry-start),var(--map-entry-end));
  color:var(--map-entry-text);font:650 15px/1.2 var(--font-sans,sans-serif);
  letter-spacing:.04em;cursor:pointer;touch-action:manipulation;
  transition:filter .18s ease;
}
.songline-site-map__toggle:hover,
.songline-site-map__toggle:focus-visible,
.songline-site-map.is-map-open .songline-site-map__toggle{
  filter:brightness(1.08);
}
.songline-site-map__toggle:focus-visible{outline:2px solid var(--map-accent);outline-offset:3px}
.songline-site-map__chevron{flex:none;transition:transform .2s ease}
.songline-site-map.is-map-open .songline-site-map__chevron{transform:rotate(180deg)}
.songline-site-map__regions{
  position:absolute;top:calc(100% + 10px);left:-52px;box-sizing:border-box;
  display:grid;grid-template-columns:repeat(8,minmax(0,1fr));grid-template-rows:repeat(8,minmax(0,1fr));
  width:min(312px,calc(100vw - 32px),calc(100dvh - 88px));aspect-ratio:1;
  margin:0;padding:14px;border:1px solid rgba(179,210,232,.25);border-radius:16px;
  background:rgba(12,25,43,.94);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  box-shadow:0 16px 42px rgba(4,13,27,.28);animation:songlineSiteMapOpen .2s ease both;
}
.songline-site-map__regions[hidden]{display:none!important}
.songline-site-map__region{
  position:relative;display:flex;align-items:center;justify-content:center;
  grid-column:var(--map-column)/span var(--map-column-span);grid-row:var(--map-row)/span var(--map-row-span);
  min-width:0;border:1px solid rgba(133,158,185,.55);background:rgba(74,94,119,.2);
  color:#dce7f4;text-decoration:none;
  transition:background-color .18s ease,border-color .18s ease;
}
.songline-site-map__region+.songline-site-map__region{margin-left:-1px;margin-top:-1px}
.songline-site-map__label{font:650 13px/1.2 var(--font-sans,sans-serif);letter-spacing:.08em}
.songline-site-map__region.active{
  z-index:1;border-color:var(--map-accent);background:color-mix(in srgb,var(--map-accent) 19%,transparent);color:var(--map-accent);
}
.songline-site-map__region.active::after{
  content:"";position:absolute;right:8px;bottom:8px;width:5px;height:5px;border-radius:50%;background:currentColor;
}
.songline-site-map__region:hover,.songline-site-map__region:focus-visible{
  z-index:2;border-color:#edf6ff;background:rgba(100,132,169,.4);color:#fff;
}
.songline-site-map__region:focus-visible{outline:2px solid #edf6ff;outline-offset:-4px}
@keyframes songlineSiteMapOpen{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@media(max-width:980px){.songline-site-map{left:68px}.songline-site-map__regions{left:-52px}}
@media(prefers-reduced-motion:reduce){
  .songline-site-map__toggle,.songline-site-map__chevron,.songline-site-map__region{transition:none}
  .songline-site-map__regions{animation:none}
}

/* 页脚备案信息：提高深色背景下的可见性，并以一条细线收束页面。 */
.footer.site-footer-clean{
  color:rgba(225,234,244,.76)!important;
}
.footer.site-footer-clean .footer-icp{
  color:inherit!important;
  font-weight:inherit;
}
.footer.site-footer-clean .footer-inner{
  flex-direction:row;
  gap:10px;
  text-align:center;
}
.footer.site-footer-clean .footer-meta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  flex-wrap:wrap;
}
.footer.site-footer-clean .footer-inner::after{
  content:"";
  /* 独占下一行，不能参与上方版权与备案文字的横向分配。 */
  flex:0 0 100%;
  width:100%;
  height:1px;
  margin-top:6px;
  background:linear-gradient(90deg, transparent calc(50% - 260px), rgba(191,204,219,.25) calc(50% - 260px), rgba(191,204,219,.25) calc(50% + 260px), transparent calc(50% + 260px));
}
@media(max-width:560px){
  .footer.site-footer-clean .footer-inner::after{
    background:rgba(191,204,219,.25);
  }
}

/* 桌面与手机共享同一条透明玻璃顶栏。 */
.modern-site-header{
  pointer-events:none!important;
}
html body .site-header.modern-site-header{
  position:fixed!important;
  top:0!important;
  left:0!important;
  right:0!important;
  width:100%!important;
  height:60px!important;
  min-height:60px!important;
  padding:0!important;
  border:0!important;
  box-shadow:none!important;
  background:rgba(10,22,38,.62)!important;
  backdrop-filter:blur(14px) saturate(104%)!important;
  -webkit-backdrop-filter:blur(14px) saturate(104%)!important;
  z-index:12000!important;
}
html body:not(.dark) .site-header.modern-site-header{
  background:rgba(75,66,75,.48)!important;
}
html body:not(.dark) .modern-site-header :is(.logo,.logo-text),
html:root body:not(.dark):not([data-page-kind="home"]) .modern-site-header .header-icons .icon-btn{
  color:rgba(250,244,240,.94)!important;
  text-shadow:0 1px 10px rgba(31,30,39,.22)!important;
}
.modern-site-header .modern-navbar{
  pointer-events:auto;
  width:auto!important;
  height:60px!important;
  min-height:60px!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
.modern-site-header .logo{
  width:36px!important;
  position:fixed;
  z-index:10060;
  top:30px;
  left:clamp(20px, 3vw, 52px);
  transform:translateY(-50%);
  pointer-events:auto;
}
.modern-site-header .header-icons{
  position:fixed;
  z-index:10060;
  top:9px;
  right:clamp(22px, 3vw, 58px);
  pointer-events:auto;
}
.modern-site-header .header-icons .icon-btn,
.modern-site-header .header-icons .icon-btn:hover,
.modern-site-header .header-icons .icon-btn:focus-visible{
  background:transparent!important;
  border-color:transparent!important;
  box-shadow:none!important;
}
.modern-site-header .header-icons .icon-btn{
  color:color-mix(in srgb, var(--text) 78%, transparent)!important;
  transition:color .18s ease, transform .18s cubic-bezier(.2,.75,.25,1)!important;
}
.modern-site-header .header-icons .icon-btn:hover,
.modern-site-header .header-icons .icon-btn:focus-visible{
  color:var(--text)!important;
  transform:translateY(-1px)!important;
}
/* 紧凑视口的页头定位。 */
@media (max-width:760px), (max-width:980px) and (hover:none){
  html.has-fixed-mobile-nav body{ padding-top:0!important; }
  .modern-site-header .logo{ top:30px; left:16px; transform:translateY(-50%); }
  .modern-site-header .header-icons{ top:13px; right:14px; }
}
[id*="friend"][class*="map"],
[class*="friend"][class*="map"]{
  border-radius:28px!important;
  overflow:hidden!important;
}


/* v20.18.5：星际入口内部锚点滚动修正，避免错位跳转 */
#site-intro,
#site-notice,
#site-about{
  scroll-margin-top:clamp(104px, 11vh, 132px);
}
@keyframes songlineOrbitTargetPulse{
  0%{
    box-shadow:var(--shadow), 0 0 0 0 rgba(56,189,248,.00);
    border-color:color-mix(in srgb, var(--accent) 12%, var(--border));
  }
  34%{
    box-shadow:var(--shadow), 0 0 0 5px rgba(56,189,248,.16), 0 18px 44px rgba(14,165,233,.10);
    border-color:rgba(56,189,248,.42);
  }
  100%{
    box-shadow:var(--shadow), 0 0 0 0 rgba(56,189,248,.00);
    border-color:color-mix(in srgb, var(--accent) 12%, var(--border));
  }
}
