/* ============================================================
 * nexcaptcha.css · NexCaptcha 品牌层：框架
 * （页头 / 抽屉 / 搜索浮层 / 脚本浮层 / 加载更多与分页 / 返回顶部 / 友链条 / 默认页脚 / 404）
 *
 * 由 site.php 的 extra_css 加载，顺序：
 *   bootstrap → style.css → skin.css → nexcaptcha.css（本文件）→ nexcaptcha-content.css → nexcaptcha-parts.css
 * 颜色、字体、圆角全部来自 skin.css 里的 --nx-* 令牌，与官网 app/globals.css（设计系统 Signal）同一组值：
 * 冷调近黑底、1px 半透明细线、层级靠明度阶梯（bg → bg-soft → surface → surface-2 → surface-3）而不是阴影，
 * 大阴影只给真正浮起来的层（下拉、抽屉、搜索浮层、弹窗、灯箱）。
 *
 * 约定
 * - 每条规则都以 body.site-nexcaptcha 开头：比 style.css / skin.css 的 `.dark …` 多一个元素，
 *   也压得住在 <body> 里才加载的 comments.css；其他站点没有这个类，本文件对它们不起作用。
 *   根元素上的规则（页面滚动条、scroll-padding）无法以 body 开头，用 html:has(> body.site-nexcaptcha) 限定。
 * - 全局元素规则（标题、焦点环、链接过渡）用 :where() 压到最低特异性，给正文层和组件层留出覆盖空间。
 * - 含 :has() 的选择器一律单独成条：不支持 :has() 的浏览器只丢掉那一条，不会连累同组的其他选择器。
 * - 翡翠绿（--nx-accent）只表示“通过 / 已验证”。本文件里只有三处：字标里的 Captcha（它就是 logo）、
 *   抽屉里 CTA 按钮的光晕（按钮底色来自 skin.css）、表示成功的 toast 圆点。悬停、当前页、分页、焦点环
 *   一律不用绿色：当前页是白底胶囊，焦点环和选区是天蓝色。
 * - 动效只有颜色 / 边框过渡（.16s）与出场时的透明度 + 最多 12px 位移；prefers-reduced-motion 下全部关闭。
 * - 不写正文、卡片、侧栏、评论、轮播（在 nexcaptcha-content.css），也不写 .nx-* 组件（在 nexcaptcha-parts.css）。
 *
 * 保持可用的主题约定（main.js / 模板依赖，不能改坏）
 * - img.site-logo 默认 opacity:0，内联 onload 加 .loaded 后才显示；
 * - 抽屉与搜索浮层只靠 .show 切换（没有 Bootstrap JS），点 <main> 关闭；遮罩画在 main::before 上；
 * - 桌面下拉的 .sub-menu 带行内 display，由 main.js 在悬停时改写；
 * - 抽屉分类由 main.js 插入的 span.czxjcdbs 展开（切换 .kai），按钮本身没有事件；
 * - .scrollToTopBtn 用 .showBtn 显示；.post-read-more a 的文字会被 main.js 整个替换，图标只能用伪元素画；
 * - .once-lightbox / .is-open、.once-lang-prompt、.toast.show 的显隐规则在 style.css / bootstrap 里，这里不碰 display。
 * ============================================================ */


/* ---------- 0. 字体 ---------- */
/* Geist / Geist Mono：官网 next/font 加载的同一批文件，可变字体（100–900），只取 latin 与 latin-ext 两个子集，
   unicode-range 与 Google Fonts 的切分一致，页面用到对应字符时才下载。中文走系统字体，不加载中文网页字体。 */
@font-face{
  font-family:"Geist";
  font-style:normal;
  font-weight:100 900;
  font-display:swap;
  src:url("../fonts/nexcaptcha/geist-latin.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:"Geist";
  font-style:normal;
  font-weight:100 900;
  font-display:swap;
  src:url("../fonts/nexcaptcha/geist-latin-ext.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family:"Geist Mono";
  font-style:normal;
  font-weight:100 900;
  font-display:swap;
  src:url("../fonts/nexcaptcha/geist-mono-latin.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:"Geist Mono";
  font-style:normal;
  font-weight:100 900;
  font-display:swap;
  src:url("../fonts/nexcaptcha/geist-mono-latin-ext.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* 与官网 next/font 生成的度量回退相同：网页字体换入前后行高与字宽基本不跳 */
@font-face{
  font-family:"Geist Fallback";
  src:local("Arial");
  ascent-override:95.94%;
  descent-override:28.16%;
  line-gap-override:0%;
  size-adjust:104.76%;
}
@font-face{
  font-family:"Geist Mono Fallback";
  src:local("Arial");
  ascent-override:74.67%;
  descent-override:21.92%;
  line-gap-override:0%;
  size-adjust:134.59%;
}
/* 中文标点：Geist 的 latin 子集包含 U+2014 / U+2026 / U+201C-201D，中文里的破折号、省略号和弯引号
   会被画成半角拉丁字形。中文页把这几个码位交给系统中文字体（只用 local()，不下载任何东西；
   本机没有这些字体时这一面失效，照常落到后面的字体）。 */
@font-face{
  font-family:"NX CJK Punct";
  src:local("PingFang SC"),local("PingFangSC-Regular"),local("Hiragino Sans GB"),local("Microsoft YaHei"),local("Noto Sans CJK SC"),local("NotoSansCJKsc-Regular"),local("Noto Sans SC"),local("Source Han Sans SC");
  unicode-range:U+2014,U+2026,U+201C-201D;
}


/* ---------- 1. 基础 ---------- */
html:has(> body.site-nexcaptcha){
  scroll-behavior:smooth;
  scroll-padding-top:5.5rem;            /* 吸顶胶囊页头的高度 + 间距：锚点跳转不被挡住 */
  scrollbar-color:var(--nx-surface-3) var(--nx-bg);
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
  -webkit-tap-highlight-color:transparent;
}
/* 滚动条与官网一致：surface-3 滑块、底色描边、全圆角 */
html:has(> body.site-nexcaptcha)::-webkit-scrollbar{width:10px;height:10px;background:var(--nx-bg);}
html:has(> body.site-nexcaptcha)::-webkit-scrollbar-track{background:var(--nx-bg);}
html:has(> body.site-nexcaptcha)::-webkit-scrollbar-thumb{background:var(--nx-surface-3);border:2px solid var(--nx-bg);border-radius:var(--nx-radius-pill);}
html:has(> body.site-nexcaptcha)::-webkit-scrollbar-thumb:hover{background:#262c3a;}
body.site-nexcaptcha ::-webkit-scrollbar{width:8px;height:8px;background:transparent;}
body.site-nexcaptcha ::-webkit-scrollbar-thumb{background:var(--nx-surface-3);border-radius:var(--nx-radius-pill);}
body.site-nexcaptcha ::-webkit-scrollbar-corner{background:transparent;}

body.site-nexcaptcha{
  background-color:var(--nx-bg);
  background-image:none;
  color:var(--nx-ink);
  font-family:var(--nx-font-sans);
  font-size:.9375rem;
  line-height:1.65;
  font-feature-settings:"cv02","cv03","cv04","cv11","ss01";
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
/* 中文页：字体栈最前面插入中文标点字体（在 body 上重定义变量，所有后代都继承）；
   正文行高放宽到 1.8，字距与官网 :lang(zh) body 相同。 */
body.site-nexcaptcha:lang(zh){
  --nx-font-sans:"NX CJK Punct","Geist","Geist Fallback","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans SC",system-ui,-apple-system,sans-serif;
  --nx-font-mono:"NX CJK Punct","Geist Mono","Geist Mono Fallback",ui-monospace,SFMono-Regular,Menlo,Consolas,"PingFang SC","Microsoft YaHei","Noto Sans SC",monospace;
  line-height:1.8;
  letter-spacing:.005em;
}

/* 标题：600、收紧字距只给拉丁文；中文字距归零、行高放宽（负字距会挤坏汉字的字怀）。 */
:where(body.site-nexcaptcha) :is(h1,h2,h3,h4,h5,h6){
  color:var(--nx-ink);
  font-family:inherit;
  font-weight:600;
  line-height:1.2;
  text-wrap:balance;
}
:where(body.site-nexcaptcha:not(:lang(zh))) :is(h1,h2,h3,h4,h5,h6){letter-spacing:-.02em;}
:where(body.site-nexcaptcha:lang(zh)) :is(h1,h2,h3,h4,h5,h6){letter-spacing:0;line-height:1.4;}
:where(body.site-nexcaptcha) p{text-wrap:pretty;}
:where(body.site-nexcaptcha) :is(code,kbd,samp,pre){font-family:var(--nx-font-mono);}
:where(body.site-nexcaptcha) :is(time,data){font-variant-numeric:tabular-nums;}
:where(body.site-nexcaptcha) a{
  transition:color .16s var(--nx-ease),border-color .16s var(--nx-ease),background-color .16s var(--nx-ease);
}

/* 选区与焦点环：天蓝色（官网这两处用翡翠绿；博客按“绿色只表示通过”收紧，天蓝与 skin.css 的链接下划线同一色系）。
   style.css 用 *:focus{outline:0} 关掉了全部焦点环，这里给键盘焦点恢复 2px 环。 */
body.site-nexcaptcha::selection,
body.site-nexcaptcha ::selection{background-color:rgb(var(--nx-azure-rgb) / .36);color:var(--nx-ink);}
:where(body.site-nexcaptcha) :is(a,button,input,textarea,select,summary,[tabindex]):focus-visible{
  outline:2px solid var(--nx-azure-soft);
  outline-offset:2px;
}

/* 页面顶部的细网格（官网 .bg-grid + .mask-radial-fade）：64px 网格，从顶部中央向下、向两侧渐隐。
   z-index:-1，且 html 没有背景（body 的底色传给画布），所以它画在底色之上、所有内容之下。 */
body.site-nexcaptcha::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:42rem;
  z-index:-1;
  pointer-events:none;
  background-image:
    linear-gradient(to right,var(--nx-line) 1px,transparent 1px),
    linear-gradient(to bottom,var(--nx-line) 1px,transparent 1px);
  background-size:64px 64px;
  background-position:center top;
  opacity:.7;
  -webkit-mask-image:radial-gradient(ellipse 70% 100% at 50% 0,#000 18%,transparent 78%);
  mask-image:radial-gradient(ellipse 70% 100% at 50% 0,#000 18%,transparent 78%);
}
/* 胶片颗粒（官网 <Grain/>，同一张噪点、同样 3.5% + overlay）：消除大面积深色的色带。
   固定在视口、不接收指针。z-index 1030：高于吸顶页头（1020），低于遮罩（1044）、抽屉 / 搜索浮层（1045）
   和脚本弹窗（9999 起），这些浮层上不会盖一层颗粒。 */
body.site-nexcaptcha::after{
  content:"";
  position:fixed;
  inset:0;
  z-index:1030;
  pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:160px 160px;
  opacity:.035;
  mix-blend-mode:overlay;
}

/* 容器与官网 .container-page 对齐：最宽 1280px，两侧 1.25rem / 2rem（≥768）。从官网点进博客时 logo 不横跳。 */
body.site-nexcaptcha .container{
  max-width:1280px;
  padding-left:1.25rem;
  padding-right:1.25rem;
}
@media (min-width:768px){
  body.site-nexcaptcha .container{padding-left:2rem;padding-right:2rem;}
}
body.site-nexcaptcha .index_area{padding:2rem 0 3.5rem;}
@media (max-width:991.98px){
  body.site-nexcaptcha .index_area{padding:1.25rem 0 2.5rem;}
}

/* 明暗切换按钮：本站锁定深色（site.php color_mode），模板已不输出；这里再兜一层。
   抽屉里的语言切换也带 .theme-switch，必须排除。 */
body.site-nexcaptcha .top .top_r .theme-switch,
body.site-nexcaptcha #mobile_right_nav .mobile_head .theme-switch:not(.mobile-language-switch){display:none !important;}


/* ---------- 2. 页头：吸顶的毛玻璃胶囊 ---------- */
/* 官网页头滚动后收成的胶囊（site-header.tsx）：全圆角、1px line-strong 边、surface/70 + 模糊 + 顶部内高光。
   博客没有滚动脚本，一直用胶囊形态。毛玻璃画在 .top::before 上而不是 .header / .top 自身：
   带 backdrop-filter 的祖先会成为“背景根”，下拉面板自己的模糊就只能看到页头内部。 */
body.site-nexcaptcha .header{
  display:block;                        /* 404.php 用内联样式藏了页头；与官网一样，404 页照样能导航 */
  position:-webkit-sticky;
  position:sticky;
  top:0;
  z-index:1020;
  margin:0;
  padding:.75rem 0 0;
  background:transparent;
  border:0;
  box-shadow:none;
  -webkit-backdrop-filter:none;
  backdrop-filter:none;
  pointer-events:none;                  /* 胶囊上方那条透明带不挡住下面滚过的内容 */
}
body.site-nexcaptcha .top{
  position:relative;
  isolation:isolate;
  display:flex;
  align-items:center;
  gap:.75rem;
  height:3.5rem;
  padding:0 .5rem 0 1.25rem;
  pointer-events:auto;
}
body.site-nexcaptcha .top::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  border:1px solid var(--nx-line-strong);
  border-radius:var(--nx-radius-pill);
  background:rgb(var(--nx-surface-rgb) / .7);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 18px 48px -24px rgba(0,0,0,.95);
  -webkit-backdrop-filter:saturate(150%) blur(24px);
  backdrop-filter:saturate(150%) blur(24px);
}
/* .top_l 只是 logo + 导航的包装：拆掉它，logo / 导航 / 右侧按钮 / 汉堡直接排在胶囊里 */
body.site-nexcaptcha .top .top_l{display:contents;}

/* Logo：图标 + 字标，与官网 <Logo/> 相同的 28px 图标、10px 间距 */
body.site-nexcaptcha .top .logo{
  flex:none;
  margin:0;
  min-height:0;
  font-size:1rem;
  font-weight:inherit;
  line-height:1;
}
body.site-nexcaptcha .top .logo a,
body.site-nexcaptcha #mobile_right_nav .mobile_head_logo a{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:.625rem;
  border-radius:var(--nx-radius-input);
  color:var(--nx-ink);
  text-decoration:none;
}
/* 28px 的图标把点击区域补到 44px */
body.site-nexcaptcha .top .logo a::after{content:"";position:absolute;left:0;right:0;top:-8px;bottom:-8px;}
/* 淡入约定：默认透明，内联 onload 加上 .loaded 才显示（与 style.css 同一对规则，这里只是明确写出） */
body.site-nexcaptcha .top .logo a img.site-logo,
body.site-nexcaptcha #mobile_right_nav .mobile_head .mobile_head_logo img.site-logo{
  flex:none;
  width:28px;
  height:28px;
  margin:0;
  border-radius:0;
  background-color:transparent;
  object-fit:contain;
  opacity:0;
  transition:opacity .3s var(--nx-ease);
}
body.site-nexcaptcha .top .logo a img.site-logo.loaded,
body.site-nexcaptcha #mobile_right_nav .mobile_head .mobile_head_logo img.site-logo.loaded{opacity:1;}

/* 字标（site.php 的 logo_html）："Nex" 白 + "Captcha" 翡翠绿，与官网 <Logo/> 一样 17px / 600 / -0.02em。
   字标本身就是 logo，这一处绿色不是状态色。字标是拉丁字母，中文页也保留负字距。 */
body.site-nexcaptcha .top .logo a b.nx-wordmark,
body.site-nexcaptcha #mobile_right_nav .mobile_head_logo b.nx-wordmark{
  display:inline-flex;
  align-items:center;
  color:var(--nx-ink);
  font-family:var(--nx-font-sans);
  font-size:1.0625rem;
  font-weight:600;
  letter-spacing:-.02em;
  line-height:1;
  white-space:nowrap;
}
body.site-nexcaptcha .nx-wordmark .nx-wm-nex{color:var(--nx-ink);}
body.site-nexcaptcha .nx-wordmark .nx-wm-captcha{color:var(--nx-accent);}
/* “博客 / Blog”：等宽小胶囊，中性色 */
body.site-nexcaptcha .nx-wordmark .nx-wm-tag{
  display:inline-flex;
  align-items:center;
  margin-left:.625rem;
  padding:.25rem .5rem;
  border:1px solid var(--nx-line-strong);
  border-radius:var(--nx-radius-pill);
  background:rgba(255,255,255,.03);
  color:var(--nx-muted);
  font-family:var(--nx-font-mono);
  font-size:.625rem;
  font-style:normal;
  font-weight:500;
  letter-spacing:.16em;
  line-height:1;
  text-transform:uppercase;
}
body.site-nexcaptcha:lang(zh) .nx-wordmark .nx-wm-tag{font-size:.6875rem;letter-spacing:.12em;}
/* 没配 logo_html 时模板输出 <b>站点标题</b> */
body.site-nexcaptcha .top .logo a b:not(.nx-wordmark),
body.site-nexcaptcha #mobile_right_nav .mobile_head .mobile_head_logo b:not(.nx-wordmark){
  color:var(--nx-ink);
  font-size:1.0625rem;
  font-weight:600;
  letter-spacing:-.02em;
  white-space:nowrap;
}
/* 站点标题可能是中文：中文页不收紧字距 */
body.site-nexcaptcha:lang(zh) .top .logo a b:not(.nx-wordmark),
body.site-nexcaptcha:lang(zh) #mobile_right_nav .mobile_head .mobile_head_logo b:not(.nx-wordmark){letter-spacing:0;}

/* 桌面导航：与官网导航一样纯文字、14px、muted → ink，只变颜色 */
body.site-nexcaptcha .header-menu{
  flex:1 1 auto;
  display:flex;
  justify-content:center;
  min-width:0;
}
body.site-nexcaptcha .header-menu .header-menu-ul{
  display:flex;
  align-items:center;
  gap:.125rem;
  margin:0;
  padding:0;
  font-size:0;
}
body.site-nexcaptcha .header-menu .header-menu-ul > li{
  position:relative;
  display:flex;
  align-items:center;
}
/* “博客首页”：logo + “博客”字标本身就链到博客首页（官网导航也没有 Home 项），桌面端去掉，
   也免得和 nav_links 里指向官网的“首页”并排。抽屉里保留。 */
body.site-nexcaptcha .header-menu .header-menu-ul > li.menu-item-home{display:none;}
body.site-nexcaptcha .header-menu .header-menu-ul > li > a,
body.site-nexcaptcha .header-menu .header-menu-ul > li > button{
  display:inline-flex;
  align-items:center;
  gap:.25rem;
  height:2.25rem;
  margin:0;
  padding:0 .625rem;
  border:0;
  border-radius:var(--nx-radius-pill);
  background:none;
  color:var(--nx-muted);
  font-family:inherit;
  font-size:.875rem;
  font-weight:400;
  line-height:1;
  white-space:nowrap;
  text-decoration:none;
  cursor:pointer;
  transition:color .16s var(--nx-ease),background-color .16s var(--nx-ease);
}
/* 图标（分类 / 独立页 / nav_links 的 bi-*）只留在下拉里，导航条与官网一样是纯文字 */
body.site-nexcaptcha .header-menu .header-menu-ul > li > a > i,
body.site-nexcaptcha .header-menu .header-menu-ul > li > button > i{display:none;}
body.site-nexcaptcha .header-menu .header-menu-ul > li > a:hover,
body.site-nexcaptcha .header-menu .header-menu-ul > li > button:hover,
body.site-nexcaptcha .header-menu .header-menu-ul > li.menu-item-has-children:hover > button,
body.site-nexcaptcha .header-menu .header-menu-ul > li > a:focus-visible,
body.site-nexcaptcha .header-menu .header-menu-ul > li > button:focus-visible{color:var(--nx-ink);}
/* 当前页：白字 + 极淡的胶囊底（中性，不用绿色） */
body.site-nexcaptcha .header-menu .header-menu-ul > li > a.current,
body.site-nexcaptcha .header-menu .header-menu-ul > li > a[aria-current="page"]{
  background:rgba(255,255,255,.05);
  color:var(--nx-ink);
}
/* nav_links（li.menu-item-site-link，指向官网）与博客自己的菜单之间一根竖向细线 */
body.site-nexcaptcha .header-menu .header-menu-ul > li:not(.menu-item-site-link) + li.menu-item-site-link{
  margin-left:.5rem;
  padding-left:.5rem;
}
body.site-nexcaptcha .header-menu .header-menu-ul > li:not(.menu-item-site-link) + li.menu-item-site-link::before{
  content:"";
  position:absolute;
  left:0;
  top:50%;
  width:1px;
  height:1rem;
  margin-top:-.5rem;
  background:var(--nx-line-strong);
}

/* 下拉箭头：style.css 里是绝对定位的 ::after，改成跟在文字后面的小箭头；展开时翻转（不做过渡） */
body.site-nexcaptcha .header-menu .header-menu-ul > li.menu-item-has-children > button::after{
  position:static;
  display:inline-block;
  margin:0 0 0 .125rem;
  transform:none;
  font-size:.625rem;
  line-height:1;
  opacity:.7;
}
body.site-nexcaptcha .header-menu .header-menu-ul > li.menu-item-has-children:hover > button::after{transform:rotate(180deg);opacity:1;}
body.site-nexcaptcha .header-menu .header-menu-ul > li.menu-item-has-children:has(:focus-visible) > button::after{transform:rotate(180deg);opacity:1;}

/* 下拉面板：官网 mega menu 的面板配方（surface-2/95 + 模糊 + 1px 渐变描边 + 20px 圆角），它是浮层，可以有大阴影。
   开合改由 CSS 控制，键盘也能用：面板默认带行内 display:none，main.js 只在鼠标悬停时改写，Tab 到“分类”时
   列表不出现，里面的链接永远 Tab 不到。这里让面板一直参与布局、用 visibility/opacity 隐藏；
   鼠标悬停，或键盘焦点（:focus-visible，鼠标点按钮不算）落在这一项里时显示。 */
body.site-nexcaptcha .header-menu .header-menu-ul li.menu-item-has-children > .sub-menu{
  display:block !important;
  position:absolute;
  top:calc(100% + .75rem);
  left:50%;
  z-index:10;
  width:max-content;
  min-width:13rem;
  max-width:20rem;
  margin:0;
  padding:.375rem;
  transform:translateX(-50%);
  border:0;
  border-radius:var(--nx-radius-panel);
  background:var(--nx-surface-2);
  background:color-mix(in srgb,var(--nx-surface-2) 95%,transparent);
  box-shadow:0 30px 80px -30px rgba(0,0,0,.95);
  -webkit-backdrop-filter:saturate(140%) blur(24px);
  backdrop-filter:saturate(140%) blur(24px);
  visibility:hidden;
  opacity:0;
  transition:opacity .16s var(--nx-ease),visibility 0s linear .16s;
}
body.site-nexcaptcha .header-menu .header-menu-ul li.menu-item-has-children:hover > .sub-menu{visibility:visible;opacity:1;transition-delay:0s;}
body.site-nexcaptcha .header-menu .header-menu-ul li.menu-item-has-children:has(:focus-visible) > .sub-menu{visibility:visible;opacity:1;transition-delay:0s;}
@supports not selector(:has(*)){
  body.site-nexcaptcha .header-menu .header-menu-ul li.menu-item-has-children:focus-within > .sub-menu{visibility:visible;opacity:1;transition-delay:0s;}
}
/* 透明“桥”：鼠标从按钮移到面板途中经过的 12px 空隙仍属于这一项，:hover 不会断 */
body.site-nexcaptcha .header-menu .header-menu-ul > li.menu-item-has-children:hover::after{
  content:"";
  position:absolute;
  left:-.5rem;
  right:-.5rem;
  top:100%;
  height:1rem;
}
/* 1px 渐变描边（官网 .ring-gradient）：遮罩挖空内容区，只留边框那一圈 */
body.site-nexcaptcha .header-menu .header-menu-ul li .sub-menu::before{
  content:"";
  position:absolute;
  inset:0;
  padding:1px;
  border-radius:inherit;
  background:var(--nx-ring-gradient);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
  mask-composite:exclude;
  pointer-events:none;
}
body.site-nexcaptcha .header-menu .header-menu-ul li .sub-menu li{display:block;width:100%;}
body.site-nexcaptcha .header-menu .header-menu-ul li .sub-menu li a{
  display:flex;
  align-items:center;
  gap:.375rem;
  width:100%;
  margin:0;
  padding:.5625rem .75rem;
  border-radius:var(--nx-radius-input);
  color:var(--nx-ink-soft);
  font-size:.8125rem;
  font-weight:500;
  line-height:1.3;
  white-space:normal;                   /* 面板最宽 20rem，超长的分类名换行而不是撑出面板 */
  text-decoration:none;
  transition:color .16s var(--nx-ease),background-color .16s var(--nx-ease);
}
body.site-nexcaptcha .header-menu .header-menu-ul li .sub-menu li a i{
  color:var(--nx-muted);
  font-size:.875rem;
  line-height:1;
  transition:color .16s var(--nx-ease);
}
body.site-nexcaptcha .header-menu .header-menu-ul li .sub-menu li a:hover,
body.site-nexcaptcha .header-menu .header-menu-ul li .sub-menu li a:focus-visible{
  background:rgba(255,255,255,.05);
  color:var(--nx-ink);
}
body.site-nexcaptcha .header-menu .header-menu-ul li .sub-menu li a:hover i,
body.site-nexcaptcha .header-menu .header-menu-ul li .sub-menu li a:focus-visible i{color:var(--nx-ink);}

/* 右侧：语言 → 搜索 → CTA（header.php 按这个顺序输出，主按钮在最右，Tab 顺序与视觉顺序一致） */
body.site-nexcaptcha .top .top_r{
  flex:none;
  display:flex;
  align-items:center;
  gap:.375rem;
  margin-left:auto;
}
body.site-nexcaptcha .top .top_r > *{flex:none;}
/* 图标按钮：36px 描边圆钮（官网 outline 按钮的颜色：line → line-strong，muted → ink） */
body.site-nexcaptcha .top .top_r .top_r_an{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:2.25rem;
  height:2.25rem;
  margin:0;
  padding:0;
  border:1px solid var(--nx-line);
  border-radius:var(--nx-radius-pill);
  background:transparent;
  color:var(--nx-muted);
  font-size:.9375rem;
  line-height:1;
  text-decoration:none;
  cursor:pointer;
  transition:color .16s var(--nx-ease),border-color .16s var(--nx-ease),background-color .16s var(--nx-ease);
}
body.site-nexcaptcha .top .top_r .top_r_an:hover,
body.site-nexcaptcha .top .top_r .top_r_an:focus-visible{
  border-color:var(--nx-line-strong);
  background:rgba(255,255,255,.04);
  color:var(--nx-ink);
}
/* 语言切换：官网 LocaleSwitcher 的描边胶囊（地球图标 + 语言），语言代码是等宽小字 */
body.site-nexcaptcha .top .top_r .top_r_an.language-switch,
body.site-nexcaptcha #mobile_right_nav .mobile_head .mobile-language-switch{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.375rem;
  width:auto;
  height:2.25rem;
  margin:0;
  padding:0 .75rem 0 .625rem;
  border:1px solid var(--nx-line);
  border-radius:var(--nx-radius-pill);
  background:transparent;
  color:var(--nx-muted);
  font-size:.8125rem;
  line-height:1;
  text-decoration:none;
  transition:color .16s var(--nx-ease),border-color .16s var(--nx-ease),background-color .16s var(--nx-ease);
}
body.site-nexcaptcha .top .top_r .top_r_an.language-switch > i,
body.site-nexcaptcha #mobile_right_nav .mobile_head .mobile-language-switch > i{font-size:.8125rem;line-height:1;}
/* bi-translate 换成 bi-globe2：与官网的语言切换和 NexCaptcha 页脚一致 */
body.site-nexcaptcha .top .top_r .top_r_an.language-switch > i::before,
body.site-nexcaptcha #mobile_right_nav .mobile_head .mobile-language-switch > i::before{content:"\F3EF";}
body.site-nexcaptcha .top .top_r .top_r_an.language-switch > span,
body.site-nexcaptcha #mobile_right_nav .mobile_head .mobile-language-switch > span{
  font-family:var(--nx-font-mono);
  font-size:.6875rem;
  font-weight:500;
  letter-spacing:.14em;
  line-height:1;
  text-transform:uppercase;
}
body.site-nexcaptcha .top .top_r .top_r_an.language-switch:hover,
body.site-nexcaptcha .top .top_r .top_r_an.language-switch:focus-visible,
body.site-nexcaptcha #mobile_right_nav .mobile_head .mobile-language-switch:hover,
body.site-nexcaptcha #mobile_right_nav .mobile_head .mobile-language-switch:focus-visible{
  border-color:var(--nx-line-strong);
  background:rgba(255,255,255,.04);
  color:var(--nx-ink);
}

/* 主按钮：官网 <ButtonLink size="sm">（h-9 · px-4 · 13px · 600 · 全圆角 · 8px 间距）。
   底色与光晕在 skin.css（全站唯一的翡翠绿实心按钮）；这里只调尺寸、间距和交互：
   悬停只变色、不上浮，按下时下沉 1px（官网 active:translate-y-px）。 */
body.site-nexcaptcha .top .top_r .back-to-site{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  height:2.25rem;
  min-height:0;
  margin:0;
  padding:0 1rem;
  border:0;
  border-radius:var(--nx-radius-pill);
  font-family:inherit;
  font-size:.8125rem;
  font-weight:600;
  letter-spacing:-.005em;
  line-height:1;
  white-space:nowrap;
  text-decoration:none;
  transform:none;
  transition:background-color .16s var(--nx-ease),box-shadow .16s var(--nx-ease),color .16s var(--nx-ease);
}
body.site-nexcaptcha:lang(zh) .top .top_r .back-to-site{letter-spacing:0;}
body.site-nexcaptcha .top .top_r .back-to-site span{display:inline;}   /* skin.css 在 992 以下把文字藏了 */
body.site-nexcaptcha .top .top_r .back-to-site i{font-size:.875rem;line-height:1;}
body.site-nexcaptcha .top .top_r .back-to-site:hover{transform:none;}
body.site-nexcaptcha .top .top_r .back-to-site:active{transform:translateY(1px);}
/* 没配 cta 时（本站不会出现）这里是“返回官网”：描边胶囊 */
body.site-nexcaptcha .top .top_r .back-to-site:not(.once-cta){
  border:1px solid var(--nx-line-strong);
  background:transparent;
  color:var(--nx-ink-soft) !important;
  box-shadow:none;
}
body.site-nexcaptcha .top .top_r .back-to-site:not(.once-cta):hover{
  border-color:rgba(255,255,255,.25);
  background:rgba(255,255,255,.04);
  color:var(--nx-ink) !important;
}

/* 汉堡按钮：模板里它是 .top 的第一个子元素，与官网一样挪到最右（order） */
body.site-nexcaptcha .mobile_an{
  order:10;
  flex:none;
  display:none;
  align-items:center;
  justify-content:center;
  width:2.25rem;
  height:2.25rem;
  margin:0;
  padding:0;
  border:1px solid var(--nx-line);
  border-radius:var(--nx-radius-pill);
  background:transparent;
  color:var(--nx-ink-soft);
  font-size:1.25rem;
  line-height:1;
  cursor:pointer;
  transition:color .16s var(--nx-ease),border-color .16s var(--nx-ease),background-color .16s var(--nx-ease);
}
body.site-nexcaptcha .mobile_an:hover,
body.site-nexcaptcha .mobile_an:focus-visible{
  border-color:var(--nx-line-strong);
  background:rgba(255,255,255,.04);
  color:var(--nx-ink);
}

/* 博客导航比官网多（分类 + 独立页 + 4 个官网链接），1200 以下改用抽屉 */
@media (max-width:1199.98px){
  body.site-nexcaptcha .header-menu{display:none;}
  body.site-nexcaptcha .mobile_an{display:inline-flex;}
}
/* 1200–1399：英文导航最长，收紧每项的左右留白 */
@media (min-width:1200px) and (max-width:1399.98px){
  body.site-nexcaptcha .header-menu .header-menu-ul{gap:0;}
  body.site-nexcaptcha .header-menu .header-menu-ul > li > a,
  body.site-nexcaptcha .header-menu .header-menu-ul > li > button{padding:0 .5rem;}
}
/* 手机：胶囊要放下 logo + 字标 + 搜索 + CTA + 汉堡。语言切换挪进抽屉标题行（那里已经有一个），
   CTA 去掉图标只留文字，再窄就只留图标（文字仍给读屏）。 */
@media (max-width:575.98px){
  body.site-nexcaptcha .header .container{padding-left:.75rem;padding-right:.75rem;}
  body.site-nexcaptcha .top{gap:.5rem;padding:0 .375rem 0 1rem;}
  body.site-nexcaptcha .top .top_r .top_r_an.language-switch{display:none;}
  body.site-nexcaptcha .top .logo a{gap:.5rem;}
  body.site-nexcaptcha .top .logo a b.nx-wordmark{font-size:1rem;}
  body.site-nexcaptcha .top .top_r .back-to-site{padding:0 .875rem;}
  body.site-nexcaptcha .top .top_r .back-to-site i{display:none;}
}
@media (max-width:479.98px){
  body.site-nexcaptcha .top .logo .nx-wordmark .nx-wm-tag{display:none;}
}
@media (max-width:399.98px){
  body.site-nexcaptcha .top .top_r .back-to-site{width:2.25rem;padding:0;}
  body.site-nexcaptcha .top .top_r .back-to-site i{display:inline-block;}
  body.site-nexcaptcha .top .top_r .back-to-site span{
    position:absolute;
    width:1px;
    height:1px;
    margin:-1px;
    padding:0;
    overflow:hidden;
    clip:rect(0 0 0 0);
    clip-path:inset(50%);
    white-space:nowrap;
    border:0;
  }
}


/* ---------- 3. 移动端抽屉 #mobile_right_nav ---------- */
/* 主题没加载 Bootstrap 的 JS，main.js 只切换 .show，显隐靠 bootstrap.min.css 的 .offcanvas 规则。
   与官网菜单一样从右侧出现（模板是 .offcanvas-start，位置在这里改）。出场按 Signal 的规矩只做
   透明度 + 12px 位移；visibility 延后 .2s 才变 hidden，关闭时也能淡出。它是浮层，可以有大阴影。 */
body.site-nexcaptcha #mobile_right_nav{
  width:min(22rem,calc(100vw - 3rem));
  border:0;
  border-left:1px solid var(--nx-line-strong);
  background:rgb(var(--nx-bg-rgb) / .96);
  color:var(--nx-ink);
  box-shadow:-30px 0 80px -30px rgba(0,0,0,.95);
  -webkit-backdrop-filter:saturate(140%) blur(24px);
  backdrop-filter:saturate(140%) blur(24px);
  overflow-y:auto;
  overscroll-behavior:contain;
}
body.site-nexcaptcha #mobile_right_nav.offcanvas-start{
  top:0;
  right:0;
  bottom:0;
  left:auto;
  opacity:0;
  transform:translateX(12px);
  transition:opacity .2s var(--nx-ease),transform .2s var(--nx-ease),visibility 0s linear .2s;
}
body.site-nexcaptcha #mobile_right_nav.offcanvas-start.show{opacity:1;transform:none;transition-delay:0s;}

/* 标题行：与官网菜单同高（4.5rem），底部一根两端渐隐的细线（官网 .rule-fade） */
body.site-nexcaptcha #mobile_right_nav .mobile_head{
  position:relative;
  flex:none;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:.5rem;
  min-height:4.5rem;
  padding:0 .75rem 0 1.25rem;
  background:transparent;
  color:var(--nx-ink);
}
body.site-nexcaptcha #mobile_right_nav .mobile_head::after{
  content:"";
  position:absolute;
  left:1.25rem;
  right:1.25rem;
  bottom:0;
  height:1px;
  pointer-events:none;
  background:linear-gradient(to right,transparent,var(--nx-line-strong) 18%,var(--nx-line-strong) 82%,transparent);
}
body.site-nexcaptcha #mobile_right_nav .mobile_head .mobile_head_logo{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  min-width:0;
  margin-right:auto;
  color:var(--nx-ink);
}
body.site-nexcaptcha #mobile_right_nav .mobile_head .mobile_head_logo a{gap:.5rem;}
body.site-nexcaptcha #mobile_right_nav .mobile_head_logo b.nx-wordmark{font-size:1rem;}
body.site-nexcaptcha #mobile_right_nav .mobile_head_logo .nx-wordmark .nx-wm-tag{margin-left:.5rem;}
body.site-nexcaptcha #mobile_right_nav .mobile_head .mobile-language-switch{flex:none;}

/* 关闭按钮（抽屉与搜索浮层共用 Bootstrap 的 .btn-close）：36px 圆钮。
   Bootstrap 的叉号是黑色背景图，原来靠 filter 反相；这里改用它自己的 --bs-btn-close-bg 做遮罩、
   填充 currentColor，颜色走令牌，悬停时的圆形底色也不会被反相。 */
body.site-nexcaptcha .btn-close{
  position:relative;
  box-sizing:border-box;
  flex:none;
  width:2.25rem;
  height:2.25rem;
  margin:0;
  padding:0;
  border:0;
  border-radius:var(--nx-radius-pill);
  background:transparent;
  color:var(--nx-ink-soft);
  opacity:1;
  filter:none;
  transition:color .16s var(--nx-ease),background-color .16s var(--nx-ease);
}
body.site-nexcaptcha .btn-close::before{
  content:"";
  position:absolute;
  inset:0;
  background-color:currentColor;
  -webkit-mask:var(--bs-btn-close-bg) center / .75rem auto no-repeat;
  mask:var(--bs-btn-close-bg) center / .75rem auto no-repeat;
}
body.site-nexcaptcha .btn-close:hover{background-color:rgba(255,255,255,.06);color:var(--nx-ink);opacity:1;}
body.site-nexcaptcha .btn-close:focus{box-shadow:none;opacity:1;}

/* 菜单：官网抽屉的配方，整行文字、行间细线；不再是浅色圆角框 */
body.site-nexcaptcha #mobile_right_nav .menu-zk{
  margin:.75rem 1.25rem 2rem;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  overflow:visible;
}
body.site-nexcaptcha #mobile_right_nav .menu-zk ul{margin:0;padding:0;list-style:none;}
body.site-nexcaptcha #mobile_right_nav .menu-zk li{position:relative;line-height:1.4;}
body.site-nexcaptcha #mobile_right_nav .menu-zk > ul > li > a,
body.site-nexcaptcha #mobile_right_nav .menu-zk > ul > li > button{
  display:flex;
  align-items:center;
  gap:.75rem;
  width:100%;
  min-height:3rem;
  margin:0;
  padding:.625rem 0;
  border:0;
  border-bottom:1px solid var(--nx-line);
  border-radius:0;
  background:none;
  color:var(--nx-ink-soft);
  font-family:inherit;
  font-size:1rem;
  font-weight:400;
  line-height:1.4;
  text-align:left;
  text-decoration:none;
  cursor:pointer;
  transition:color .16s var(--nx-ease);
}
body.site-nexcaptcha #mobile_right_nav .menu-zk > ul > li > a > i{display:none;}
body.site-nexcaptcha #mobile_right_nav .menu-zk > ul > li > a:hover,
body.site-nexcaptcha #mobile_right_nav .menu-zk > ul > li > button:hover,
body.site-nexcaptcha #mobile_right_nav .menu-zk > ul > li.menu-item-has-children:hover > button{color:var(--nx-ink);}
/* 当前页：白字 + 右端一个中性小圆点 */
body.site-nexcaptcha #mobile_right_nav .menu-zk > ul > li.current-menu-item > a{color:var(--nx-ink);font-weight:500;}
body.site-nexcaptcha #mobile_right_nav .menu-zk > ul > li.current-menu-item > a::after{
  content:"";
  flex:none;
  width:.375rem;
  height:.375rem;
  margin-left:auto;
  border-radius:var(--nx-radius-pill);
  background:var(--nx-ink-soft);
}
/* 官网链接：右端一个淡色的 ↗（官网抽屉里站外链接同样带它），和博客自己的页面区分开 */
body.site-nexcaptcha #mobile_right_nav .menu-zk > ul > li.menu-item-site-link > a::after{
  content:"\F144";
  flex:none;
  margin-left:auto;
  color:var(--nx-faint);
  font-family:"bootstrap-icons";
  font-size:.75rem;
  font-weight:400;
  line-height:1;
  transition:color .16s var(--nx-ease);
}
body.site-nexcaptcha #mobile_right_nav .menu-zk > ul > li.menu-item-site-link > a:hover::after{color:var(--nx-muted);}
/* 两组之间留空；每组第一项补上顶线，两组都像官网抽屉那样上下封口 */
body.site-nexcaptcha #mobile_right_nav .menu-zk > ul > li.menu-item-site-link + li:not(.menu-item-site-link){margin-top:1.25rem;}
body.site-nexcaptcha #mobile_right_nav .menu-zk > ul > li.menu-item-site-link + li:not(.menu-item-site-link) > a{border-top:1px solid var(--nx-line);}

/* 抽屉里的 CTA（li.menu-item-cta.once-cta，第一项）：官网 <ButtonLink size="lg"> 的整宽主按钮。
   底色 / 文字色来自 skin.css，这里补尺寸与官网主按钮的光晕。 */
body.site-nexcaptcha #mobile_right_nav .menu-zk > ul > li.menu-item-cta.once-cta{margin:.25rem 0 .75rem;}
body.site-nexcaptcha #mobile_right_nav .menu-zk > ul > li.menu-item-cta.once-cta > a{
  justify-content:center;
  gap:.25rem;                           /* 图标自带 .me-1（.25rem !important），合起来 .5rem */
  min-height:3rem;
  padding:0 1.5rem;
  border:0;
  border-radius:var(--nx-radius-pill);
  font-size:.9375rem;
  font-weight:600;
  box-shadow:0 0 0 1px rgb(var(--nx-accent-rgb) / .5),0 8px 30px -8px rgb(var(--nx-accent-rgb) / .55);
  transition:background-color .16s var(--nx-ease),box-shadow .16s var(--nx-ease);
}
body.site-nexcaptcha #mobile_right_nav .menu-zk > ul > li.menu-item-cta.once-cta > a:hover{
  box-shadow:0 0 0 1px color-mix(in srgb,var(--nx-accent-bright) 60%,transparent),0 10px 38px -8px rgb(var(--nx-accent-rgb) / .75);
}
body.site-nexcaptcha #mobile_right_nav .menu-zk > ul > li.menu-item-cta.once-cta > a > i{display:inline-block;font-size:.9375rem;line-height:1;}
body.site-nexcaptcha #mobile_right_nav .menu-zk > ul > li.menu-item-cta.once-cta + li > a{border-top:1px solid var(--nx-line);}

/* 分类子菜单：左侧一条细线串起来（不能碰 display，main.js 用 slideToggle 开合） */
body.site-nexcaptcha #mobile_right_nav .menu-zk > ul > li.menu-item-has-children > button{padding-right:2rem;}
body.site-nexcaptcha #mobile_right_nav .menu-zk .sub-menu{
  margin:.25rem 0 .75rem .125rem;
  padding:0 0 0 1rem;
  background:transparent;
  border-left:1px solid var(--nx-line-strong);
}
body.site-nexcaptcha #mobile_right_nav .menu-zk .sub-menu li a{
  display:flex;
  align-items:center;
  min-height:2.5rem;
  margin:0;
  padding:.375rem 0;
  border:0;
  color:var(--nx-muted);
  font-size:.875rem;
  font-weight:400;
  line-height:1.4;
  text-decoration:none;
  transition:color .16s var(--nx-ease);
}
body.site-nexcaptcha #mobile_right_nav .menu-zk .sub-menu li a:hover{color:var(--nx-ink);}
/* 展开开关：main.js 在 li 里插入 span.czxjcdbs，点它切换 .kai 并展开子菜单（“分类”按钮本身没有事件）。
   它的 ::before 铺满整行（与按钮同高 3rem）：整行都能点，箭头画在右端。 */
body.site-nexcaptcha #mobile_right_nav .menu-zk .menu-item-has-children > .czxjcdbs::before{
  content:"\F282";
  position:absolute;
  top:0;
  right:0;
  left:0;
  z-index:1;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  width:auto;
  height:3rem;
  margin:0;
  padding:0 .125rem 0 0;
  border:0;
  border-radius:0;
  background:transparent;
  color:var(--nx-faint);
  font-family:"bootstrap-icons";
  font-size:.75rem;
  line-height:1;
  text-align:right;
  cursor:pointer;
}
body.site-nexcaptcha #mobile_right_nav .menu-zk .menu-item-has-children > .czxjcdbs.kai::before{content:"\F286";color:var(--nx-ink-soft);}

/* 420 以下（常见的 360–414 手机宽度）抽屉标题行放不下“博客 / Blog”小标 */
@media (max-width:419.98px){
  body.site-nexcaptcha #mobile_right_nav .mobile_head_logo .nx-wordmark .nx-wm-tag{display:none;}
}


/* ---------- 4. 遮罩 ---------- */
/* 抽屉 / 搜索浮层打开时压暗并模糊页面。遮罩挂在 <main> 的伪元素上：点它时事件目标就是 <main>，
   main.js 的“点外面关闭”照常生效，也点不到下面的链接。依赖 header.php 里
   #c_sousuo → #mobile_right_nav → <main> 的兄弟顺序。 */
body.site-nexcaptcha #mobile_right_nav.show ~ main::before,
body.site-nexcaptcha #c_sousuo.show ~ main::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:1044;
  background:rgb(var(--nx-bg-rgb) / .66);
  -webkit-backdrop-filter:blur(6px);
  backdrop-filter:blur(6px);
  animation:nxf-fade .2s var(--nx-ease) both;
}
/* 抽屉打开时锁住页面滚动（与官网菜单相同）；搜索浮层不锁，免得桌面端滚动条消失引起横跳 */
body.site-nexcaptcha:has(> #mobile_right_nav.show){overflow:hidden;}


/* ---------- 5. 搜索浮层 #c_sousuo ---------- */
/* .offcanvas-top：从顶部出现的一整条浮层。出场同样只做透明度 + 12px 位移。
   Bootstrap 给 .offcanvas 的是 top:0 + bottom:0 + 固定高度，改成自适应高度时要把 bottom 放开。 */
body.site-nexcaptcha #c_sousuo{
  top:0;
  bottom:auto;
  height:auto;
  max-height:100%;
  padding:1rem 0;
  border:0;
  border-bottom:1px solid var(--nx-line-strong);
  background:rgb(var(--nx-bg-rgb) / .94);
  color:var(--nx-ink);
  box-shadow:0 30px 80px -30px rgba(0,0,0,.95);
  -webkit-backdrop-filter:saturate(140%) blur(24px);
  backdrop-filter:saturate(140%) blur(24px);
  opacity:0;
  transform:translateY(-12px);
  transition:opacity .2s var(--nx-ease),transform .2s var(--nx-ease),visibility 0s linear .2s;
}
body.site-nexcaptcha #c_sousuo.show{opacity:1;transform:none;transition-delay:0s;}
@media (min-width:768px){
  body.site-nexcaptcha #c_sousuo{padding:1.5rem 0;}
}
/* 关闭按钮原本压在搜索框上方：改成与搜索框同一行、排在右端 */
body.site-nexcaptcha #c_sousuo .container{display:flex;align-items:center;gap:.75rem;}
body.site-nexcaptcha #c_sousuo .row{flex:1 1 auto;min-width:0;margin:0;--bs-gutter-x:0;--bs-gutter-y:0;}
body.site-nexcaptcha #c_sousuo .btn-close{order:2;}
body.site-nexcaptcha #c_sousuo .search_box{margin:0;text-align:left;}
@media (max-width:991.98px){
  body.site-nexcaptcha #c_sousuo .search_box{flex:1 1 auto;width:100%;}
}
/* 搜索框：10px 圆角的输入框（Signal 的输入 / 代码圆角），聚焦时描边提亮 + 天蓝色外环 */
body.site-nexcaptcha #c_sousuo .search_box .ss_a{
  position:relative;
  display:flex;
  align-items:center;
  gap:.5rem;
  width:100%;
  height:3rem;
  margin:0;
  padding:0 .375rem 0 1rem;
  border:1px solid var(--nx-line-strong);
  border-radius:var(--nx-radius-input);
  background:var(--nx-surface);
  line-height:normal;
  overflow:visible;
  transition:border-color .16s var(--nx-ease),box-shadow .16s var(--nx-ease);
}
body.site-nexcaptcha #c_sousuo .search_box .ss_a:focus-within{
  border-color:rgba(255,255,255,.28);
  box-shadow:0 0 0 3px rgb(var(--nx-azure-rgb) / .22);
}
body.site-nexcaptcha #c_sousuo .search_box .ss_a input{
  order:0;
  flex:1 1 auto;
  min-width:0;
  width:auto;
  height:100%;
  margin:0;
  padding:0;
  border:0;
  background:none;
  box-shadow:none;
  outline:0;
  color:var(--nx-ink);
  font-family:inherit;
  font-size:1rem;                       /* ≥16px：iOS 聚焦时不自动放大 */
}
body.site-nexcaptcha #c_sousuo .search_box .ss_a input::placeholder{color:var(--nx-faint);opacity:1;}
body.site-nexcaptcha #c_sousuo .search_box .ss_a input:focus-visible{outline:0;}
body.site-nexcaptcha #c_sousuo .search_box .ss_a button{
  position:static;
  order:2;
  flex:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:2.25rem;
  height:2.25rem;
  margin:0;
  padding:0;
  border:0;
  border-radius:var(--nx-radius-pill);
  background:transparent;
  color:var(--nx-muted);
  font-size:1rem;
  line-height:1;
  cursor:pointer;
  transition:color .16s var(--nx-ease),background-color .16s var(--nx-ease);
}
body.site-nexcaptcha #c_sousuo .search_box .ss_a button:hover{background:rgba(255,255,255,.06);color:var(--nx-ink);}
/* 表单带 .clearfix，它的 ::after 会变成一个空的 flex 项：默认去掉；有鼠标键盘的设备上改成一个
   等宽的 Esc 键帽提示（main.js 支持 Esc 关闭）。“/ ""” 让读屏跳过它。 */
body.site-nexcaptcha #c_sousuo .search_box .ss_a::after{display:none;}
@media (hover:hover) and (pointer:fine){
  body.site-nexcaptcha #c_sousuo .search_box .ss_a::after{
    content:"Esc";
    content:"Esc" / "";
    order:1;
    flex:none;
    display:inline-flex;
    align-items:center;
    height:1.375rem;
    padding:0 .4375rem;
    border:1px solid var(--nx-line-strong);
    border-radius:var(--nx-radius-pill);
    color:var(--nx-faint);
    font-family:var(--nx-font-mono);
    font-size:.625rem;
    font-weight:500;
    letter-spacing:.08em;
    line-height:1;
    text-transform:uppercase;
  }
}


/* ---------- 6. 加载更多 / 数字分页 ---------- */
/* 加载更多（.post-read-more a，main.js 点击时整个替换文字）：官网 outline 按钮，居中的描边胶囊；
   箭头用伪元素画，才不会被替换掉。加载中换成一个小转圈（减少动态效果时静止）。 */
body.site-nexcaptcha .post-read-more{margin:.5rem 0 1.5rem;text-align:center;}
body.site-nexcaptcha .post-read-more a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  min-width:12rem;
  height:2.75rem;
  margin:0;
  padding:0 1.5rem;
  border:1px solid var(--nx-line-strong);
  border-radius:var(--nx-radius-pill);
  background:transparent;
  color:var(--nx-ink-soft);
  font-size:.875rem;
  font-weight:500;
  line-height:1;
  text-decoration:none;
  transition:color .16s var(--nx-ease),border-color .16s var(--nx-ease),background-color .16s var(--nx-ease);
}
body.site-nexcaptcha .post-read-more a::after{
  content:"\F282";
  font-family:"bootstrap-icons";
  font-size:.75rem;
  font-weight:400;
  line-height:1;
}
body.site-nexcaptcha .post-read-more a:hover{
  border-color:rgba(255,255,255,.25);
  background:rgba(255,255,255,.03);
  color:var(--nx-ink);
}
body.site-nexcaptcha .post-read-more a.loading{
  border-color:var(--nx-line);
  background:transparent;
  color:var(--nx-muted);
  cursor:progress;
}
body.site-nexcaptcha .post-read-more a.loading::after{
  content:"";
  width:.75rem;
  height:.75rem;
  border:1.5px solid currentColor;
  border-right-color:transparent;
  border-radius:var(--nx-radius-pill);
  animation:nxf-spin .8s linear infinite;
}
@media (max-width:575.98px){
  body.site-nexcaptcha .post-read-more a{display:flex;width:100%;}
}
/* 数字分页：等宽数字胶囊；当前页是白底胶囊（中性，不用绿色） */
body.site-nexcaptcha .posts-nav{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:.375rem;
  margin:2rem 0;
}
body.site-nexcaptcha .posts-nav .page-numbers{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:2.25rem;
  height:2.25rem;
  margin:0;
  padding:0 .75rem;
  border:1px solid var(--nx-line);
  border-radius:var(--nx-radius-pill);
  background:transparent;
  color:var(--nx-muted);
  font-family:var(--nx-font-mono);
  font-size:.8125rem;
  font-variant-numeric:tabular-nums;
  font-weight:500;
  line-height:1;
  text-decoration:none;
  transition:color .16s var(--nx-ease),border-color .16s var(--nx-ease),background-color .16s var(--nx-ease);
}
body.site-nexcaptcha .posts-nav .page-numbers:hover{
  border-color:var(--nx-line-strong);
  background:rgba(255,255,255,.04);
  color:var(--nx-ink);
}
body.site-nexcaptcha .posts-nav .page-numbers.current,
body.site-nexcaptcha .posts-nav .page-numbers.current:hover{
  border-color:var(--nx-ink);
  background:var(--nx-ink);
  color:var(--nx-bg);
}
body.site-nexcaptcha .posts-nav .page-numbers.dots{
  min-width:1.5rem;
  padding:0;
  border-color:transparent;
  background:none;
  color:var(--nx-faint);
}


/* ---------- 7. 返回顶部 .scrollToTopBtn ---------- */
/* main.js 滚过 80% 时加 .showBtn。原来隐藏时只是透明（仍能被点到、被 Tab 到），这里同时 visibility:hidden；
   出场只做透明度 + 12px 位移。它是悬浮按钮，带一层小阴影。 */
body.site-nexcaptcha .scrollToTopBtn{
  right:1.25rem;
  bottom:1.25rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:2.75rem;
  height:2.75rem;
  padding:0;
  border:1px solid var(--nx-line-strong);
  border-radius:var(--nx-radius-pill);
  background:rgb(var(--nx-surface-rgb) / .82);
  color:var(--nx-ink-soft);
  font-size:1rem;
  line-height:1;
  box-shadow:0 16px 40px -18px rgba(0,0,0,.9);
  -webkit-backdrop-filter:blur(12px);
  backdrop-filter:blur(12px);
  opacity:0;
  visibility:hidden;
  transform:translateY(12px);
  transition:opacity .2s var(--nx-ease),transform .2s var(--nx-ease),visibility 0s linear .2s,color .16s var(--nx-ease),border-color .16s var(--nx-ease),background-color .16s var(--nx-ease);
}
body.site-nexcaptcha .scrollToTopBtn.showBtn{opacity:1;visibility:visible;transform:none;transition-delay:0s;}
body.site-nexcaptcha .scrollToTopBtn:hover{
  border-color:rgba(255,255,255,.25);
  background:var(--nx-surface-3);
  color:var(--nx-ink);
}
@media (max-width:767.98px){
  body.site-nexcaptcha .scrollToTopBtn{right:1rem;bottom:1rem;}
}


/* ---------- 8. 友情链接条 / 默认页脚 ---------- */
/* 友链条（后台开了 showlinks 时在页脚上方）：bg-soft 底、顶部一根两端渐隐的细线，标签是等宽微标 */
body.site-nexcaptcha .links{
  position:relative;
  padding:1.25rem 0;
  border:0;
  background:var(--nx-bg-soft);
  font-size:.8125rem;
}
body.site-nexcaptcha .links::before,
body.site-nexcaptcha .footbox::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:1px;
  pointer-events:none;
  background:linear-gradient(to right,transparent,var(--nx-line-strong) 18%,var(--nx-line-strong) 82%,transparent);
}
body.site-nexcaptcha .links .container{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.25rem;}
body.site-nexcaptcha .links .container > span{
  color:var(--nx-faint);
  font-family:var(--nx-font-mono);
  font-size:.6875rem;
  font-weight:500;
  letter-spacing:.2em;
  line-height:1.4;
  text-transform:uppercase;
}
body.site-nexcaptcha:lang(zh) .links .container > span{letter-spacing:.12em;}
body.site-nexcaptcha .links a{
  display:inline-block;
  margin:0;
  color:var(--nx-muted);
  font-weight:400;
  text-decoration:none;
}
body.site-nexcaptcha .links a:hover{color:var(--nx-ink);}

/* 默认页脚：NexCaptcha 页脚 partial 正常会替换它；partial 没输出时（兜底）和 404 页（那里被内联样式隐藏）
   才是它。朴素处理：bg-soft、顶线、小号 faint 文字，备案号用等宽数字。 */
body.site-nexcaptcha .footer{position:relative;}
body.site-nexcaptcha .footbox{
  position:relative;
  padding:1.75rem 0 2rem;
  border:0;
  background:var(--nx-bg-soft);
  color:var(--nx-faint);
  font-size:.75rem;
}
body.site-nexcaptcha .foot{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:.75rem 1.5rem;
}
body.site-nexcaptcha .foot .copyright p{margin:0;color:var(--nx-faint);font-weight:400;line-height:1.6;}
body.site-nexcaptcha .foot a,
body.site-nexcaptcha .foot .copyright p a{color:var(--nx-muted);text-decoration:none;}
body.site-nexcaptcha .foot a:hover,
body.site-nexcaptcha .foot .copyright p a:hover{color:var(--nx-ink);}
body.site-nexcaptcha .foot .foot_nav{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.5rem;}
body.site-nexcaptcha .foot .foot_nav .dbdh ul{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.25rem;margin:0;padding:0;}
body.site-nexcaptcha .foot .foot_nav .dbdh ul li{display:block;margin:0;}
/* 模板在“Footer代码”前面放了一个只含空格的 <li>，在 flex 里会多占一格间距 */
body.site-nexcaptcha .foot .foot_nav .dbdh ul > li:first-child:not(:has(*)){display:none;}
body.site-nexcaptcha .foot .foot_nav .dbdh ul li a{color:var(--nx-muted);font-weight:400;}
body.site-nexcaptcha .foot .foot_nav .dbdh ul li a:hover{color:var(--nx-ink);font-weight:400;}   /* style.css 悬停加粗会挤动布局 */
body.site-nexcaptcha .foot .foot_nav .beian{
  display:inline-flex;
  align-items:center;
  gap:.25rem;
  color:var(--nx-faint);
  font-family:var(--nx-font-mono);
  font-size:.6875rem;
  font-variant-numeric:tabular-nums;
  letter-spacing:.02em;
}
body.site-nexcaptcha .foot .foot_nav .beian:hover{color:var(--nx-muted);}
@media (max-width:767.98px){
  body.site-nexcaptcha .foot{flex-direction:column;justify-content:center;text-align:center;}
  body.site-nexcaptcha .foot .foot_nav{justify-content:center;}
}


/* ---------- 9. 404 ---------- */
/* 404.php：内联 <style> 隐藏 .header / .footer，正文是一个带行内样式（flex 居中、height:100vh）的嵌套 <main>，
   里面是 h1.h1、p.h5（含“返回首页” a.border-bottom）和 Once 自带的蓝色插画 svg.icon。
   页头在第 2 节重新显示了，默认页脚仍隐藏。这里：去掉 100vh 带来的多余滚动；插画换成浮雕式的大号“404”
   （与官网页脚大字标同一个做法）；“返回首页”做成次要按钮，页头的 CTA 已经是这一屏唯一的绿色按钮。 */
body.site-nexcaptcha .index_area main[style]{
  position:relative;
  height:auto !important;
  min-height:calc(100vh - 14rem);
  min-height:calc(100svh - 14rem);
  padding:2.5rem 0 3.5rem;
  text-align:center;
}
body.site-nexcaptcha .index_area main[style]::before{
  content:"404";
  content:"404" / "";
  display:block;
  margin:0 0 .25rem;
  background-image:linear-gradient(to bottom,var(--nx-line-strong),transparent 88%);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  font-family:var(--nx-font-sans);
  font-size:clamp(6.5rem,4rem + 12vw,12rem);
  font-variant-numeric:tabular-nums;
  font-weight:700;
  letter-spacing:-.05em;
  line-height:.8;
  pointer-events:none;
  -webkit-user-select:none;
  user-select:none;
}
body.site-nexcaptcha .index_area main[style] h1{
  max-width:36rem;
  margin:1rem 0 .75rem !important;      /* 压过 .mt-5 / .mb-3（Bootstrap 工具类带 !important） */
  color:var(--nx-ink);
  font-size:clamp(1.75rem,1.3rem + 1.8vw,2.5rem);
  font-weight:600;
  line-height:1.15;
}
body.site-nexcaptcha:not(:lang(zh)) .index_area main[style] h1{letter-spacing:-.028em;}
body.site-nexcaptcha:lang(zh) .index_area main[style] h1{letter-spacing:0;line-height:1.35;}
body.site-nexcaptcha .index_area main[style] p{
  max-width:34rem;
  margin:0 !important;
  color:var(--nx-muted);
  font-size:1rem;
  font-weight:400;
  line-height:1.7;
}
/* “返回首页”：官网 secondary 按钮（surface-2 底 + line-strong 边），另起一行居中 */
body.site-nexcaptcha .index_area main[style] p a{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  width:max-content;
  height:2.75rem;
  margin:1.75rem auto 0;
  padding:0 1.25rem;
  border:1px solid var(--nx-line-strong) !important;   /* 压过 .border-bottom 的 !important */
  border-radius:var(--nx-radius-pill);
  background:var(--nx-surface-2);
  color:var(--nx-ink);
  font-size:.875rem;
  font-weight:500;
  line-height:1;
  text-decoration:none;
  transition:background-color .16s var(--nx-ease),border-color .16s var(--nx-ease);
}
body.site-nexcaptcha .index_area main[style] p a::after{
  content:"\F138";
  font-family:"bootstrap-icons";
  font-size:.9375rem;
  font-weight:400;
  line-height:1;
}
body.site-nexcaptcha .index_area main[style] p a:hover{
  border-color:rgba(255,255,255,.22) !important;
  background:var(--nx-surface-3);
  color:var(--nx-ink);
}
body.site-nexcaptcha .index_area main[style] > svg.icon{display:none;}


/* ---------- 10. 主题脚本生成的浮层 ---------- */
/* “切换到英文版？”提示（main.js 生成，文案是英文）：浮层面板 = surface-2 + 20px 圆角 + 1px 渐变描边 + 大阴影。
   主操作是白底胶囊（中性主按钮）：它不表示“通过”，不用绿色。 */
body.site-nexcaptcha .once-lang-prompt{
  padding:1.25rem;
  background:rgb(var(--nx-bg-rgb) / .72);
  -webkit-backdrop-filter:blur(6px);
  backdrop-filter:blur(6px);
  animation:nxf-fade .2s var(--nx-ease) both;
}
body.site-nexcaptcha .once-lang-prompt-box{
  position:relative;
  isolation:isolate;
  width:min(26rem,100%);
  padding:1.5rem;
  border:0;
  border-radius:var(--nx-radius-panel);
  background:var(--nx-surface-2);
  color:var(--nx-ink);
  box-shadow:0 40px 90px -30px rgba(0,0,0,.95);
  animation:nxf-rise .24s var(--nx-ease) both;
}
body.site-nexcaptcha .once-lang-prompt-box::before{
  content:"";
  position:absolute;
  inset:0;
  padding:1px;
  border-radius:inherit;
  background:var(--nx-ring-gradient);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
  mask-composite:exclude;
  pointer-events:none;
}
body.site-nexcaptcha .once-lang-prompt-box h2{
  margin:0 2.5rem .5rem 0;
  color:var(--nx-ink);
  font-size:1.125rem;
  font-weight:600;
  letter-spacing:-.015em;
  line-height:1.3;
}
body.site-nexcaptcha .once-lang-prompt-box p{margin:0;color:var(--nx-muted);font-size:.875rem;line-height:1.65;}
body.site-nexcaptcha .once-lang-prompt-close{
  top:.875rem;
  right:.875rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:2rem;
  height:2rem;
  padding:0 0 .125rem;
  border:0;
  border-radius:var(--nx-radius-pill);
  background:transparent;
  color:var(--nx-muted);
  font-size:1.375rem;
  line-height:1;
  transition:color .16s var(--nx-ease),background-color .16s var(--nx-ease);
}
body.site-nexcaptcha .once-lang-prompt-close:hover{background:rgba(255,255,255,.06);color:var(--nx-ink);}
body.site-nexcaptcha .once-lang-prompt-actions{gap:.5rem;margin-top:1.25rem;}
body.site-nexcaptcha .once-lang-prompt-actions button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:2.25rem;
  padding:0 1rem;
  border:1px solid transparent;
  border-radius:var(--nx-radius-pill);
  font-family:inherit;
  font-size:.8125rem;
  font-weight:600;
  line-height:1.2;
  transition:color .16s var(--nx-ease),border-color .16s var(--nx-ease),background-color .16s var(--nx-ease);
}
body.site-nexcaptcha .once-lang-prompt-primary{background:var(--nx-ink);color:var(--nx-bg);}
body.site-nexcaptcha .once-lang-prompt-primary:hover{background:var(--nx-link-hover);color:var(--nx-bg);}
body.site-nexcaptcha .once-lang-prompt-secondary{
  border-color:var(--nx-line-strong) !important;
  background:transparent;
  color:var(--nx-ink-soft);
}
body.site-nexcaptcha .once-lang-prompt-secondary:hover{
  border-color:rgba(255,255,255,.25) !important;
  background:rgba(255,255,255,.04);
  color:var(--nx-ink);
}

/* 图片灯箱（#once-lightbox.once-lightbox，.is-open 时显示）：深色毛玻璃底，图片是 14px 圆角卡片 */
body.site-nexcaptcha .once-lightbox{
  padding:2rem;
  background:rgb(var(--nx-bg-rgb) / .9);
  -webkit-backdrop-filter:blur(10px);
  backdrop-filter:blur(10px);
}
body.site-nexcaptcha .once-lightbox.is-open{animation:nxf-fade .2s var(--nx-ease) both;}
body.site-nexcaptcha .once-lightbox-image{
  max-width:min(94vw,1200px);
  max-height:84vh;
  border:1px solid var(--nx-line-strong);
  border-radius:var(--nx-radius-card);
  background:var(--nx-surface);
  box-shadow:0 40px 100px -30px rgba(0,0,0,.95);
}
body.site-nexcaptcha .once-lightbox-close{
  top:1rem;
  right:1rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:2.5rem;
  height:2.5rem;
  padding:0 0 .125rem;
  border:1px solid var(--nx-line-strong);
  border-radius:var(--nx-radius-pill);
  background:rgb(var(--nx-surface-rgb) / .85);
  color:var(--nx-ink-soft);
  font-size:1.5rem;
  line-height:1;
  transition:color .16s var(--nx-ease),border-color .16s var(--nx-ease),background-color .16s var(--nx-ease);
}
body.site-nexcaptcha .once-lightbox-close:hover{
  border-color:rgba(255,255,255,.25);
  background:var(--nx-surface-3);
  color:var(--nx-ink);
}
body.site-nexcaptcha .once-lightbox-caption{
  left:1.5rem;
  right:1.5rem;
  bottom:1rem;
  color:var(--nx-muted);
  font-size:.8125rem;
  line-height:1.6;
  text-shadow:none;
}
@media (max-width:768px){
  body.site-nexcaptcha .once-lightbox{padding:1rem;}
  body.site-nexcaptcha .once-lightbox-image{max-height:80vh;}
}

/* 点赞提示（.toast-container > .toast.{info|warning|error}，加 .show 显示）：浮层卡片 + 左侧一个状态圆点。
   只有表示成功的 .success 用翡翠绿，那正是“通过”。放在胶囊页头下方，不盖住 CTA。 */
body.site-nexcaptcha .toast-container{top:5rem;right:1rem;left:auto;}
body.site-nexcaptcha .toast,
body.site-nexcaptcha .toast.info,
body.site-nexcaptcha .toast.warning,
body.site-nexcaptcha .toast.error,
body.site-nexcaptcha .toast.success{
  position:relative;
  width:auto;
  min-width:15rem;
  max-width:min(22rem,calc(100vw - 2rem));
  margin:0 0 .5rem;
  padding:.75rem 1rem .75rem 2.125rem;
  border:1px solid var(--nx-line-strong);
  border-radius:var(--nx-radius-card);
  background-color:var(--nx-surface-2);
  color:var(--nx-ink);
  font-size:.8125rem;
  line-height:1.5;
  box-shadow:0 24px 60px -24px rgba(0,0,0,.95);
}
body.site-nexcaptcha .toast.show{transform:none;animation:nxf-fade .2s var(--nx-ease) both;}
body.site-nexcaptcha .toast::before{
  content:"";
  position:absolute;
  left:1rem;
  top:50%;
  width:.4375rem;
  height:.4375rem;
  margin-top:-.21875rem;
  border-radius:var(--nx-radius-pill);
  background:var(--nx-muted);
}
body.site-nexcaptcha .toast.info::before{background:var(--nx-azure-soft);}
body.site-nexcaptcha .toast.warning::before{background:var(--nx-warn);}
body.site-nexcaptcha .toast.error::before{background:var(--nx-danger);}
body.site-nexcaptcha .toast.success::before{background:var(--nx-accent);}


/* ---------- 11. 动效 ---------- */
/* 名字带 nxf-（framework）前缀，避免与正文层 / 组件层的 @keyframes 重名互相覆盖 */
@keyframes nxf-fade{from{opacity:0;}to{opacity:1;}}
@keyframes nxf-rise{from{opacity:0;transform:translateY(12px);}to{opacity:1;transform:none;}}
@keyframes nxf-spin{to{transform:rotate(360deg);}}

@media (prefers-reduced-motion:reduce){
  html:has(> body.site-nexcaptcha){scroll-behavior:auto;}
  body.site-nexcaptcha *,
  body.site-nexcaptcha *::before,
  body.site-nexcaptcha *::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
    transition-delay:0s !important;
    scroll-behavior:auto !important;
  }
  body.site-nexcaptcha .top .top_r .back-to-site:active{transform:none;}
}


/* ---------- 12. 强制色彩模式 ---------- */
@media (forced-colors:active){
  body.site-nexcaptcha::before,
  body.site-nexcaptcha::after{display:none;}
  body.site-nexcaptcha .top::before{
    border-color:CanvasText;
    background:Canvas;
    -webkit-backdrop-filter:none;
    backdrop-filter:none;
  }
  body.site-nexcaptcha .top .top_r .back-to-site,
  body.site-nexcaptcha #mobile_right_nav .menu-zk > ul > li.menu-item-cta.once-cta > a{border:1px solid ButtonText;}
  body.site-nexcaptcha .header-menu .header-menu-ul li .sub-menu{border:1px solid CanvasText;}
  /* 叉号是用背景色 + 遮罩画的，强制色彩会把背景色换掉：固定成按钮文字色 */
  body.site-nexcaptcha .btn-close::before{forced-color-adjust:none;background-color:ButtonText;}
  body.site-nexcaptcha .posts-nav .page-numbers.current{
    forced-color-adjust:none;
    border-color:Highlight;
    background:Highlight;
    color:HighlightText;
  }
  body.site-nexcaptcha .index_area main[style]::before{background:none;color:CanvasText;}
}


/* ---------- 13. 打印 ---------- */
/* 深色令牌换成白纸黑字（正文层读的也是这些变量），页头、抽屉、浮层、颗粒和网格都不打印 */
@media print{
  body.site-nexcaptcha{
    --nx-bg:#fff;
    --nx-bg-soft:#fff;
    --nx-surface:#fff;
    --nx-surface-2:#f5f6f8;
    --nx-surface-3:#eceef2;
    --nx-line:rgba(0,0,0,.12);
    --nx-line-strong:rgba(0,0,0,.2);
    --nx-ink:#111;
    --nx-ink-soft:#333;
    --nx-muted:#555;
    --nx-faint:#777;
    --once-bg:#fff;
    --once-surface:#fff;
    --once-subtle:#f5f6f8;
    --once-border:rgba(0,0,0,.12);
    --once-text:#111;
    --once-heading:#111;
    --once-muted:#555;
    background:#fff;
    color:#111;
  }
  body.site-nexcaptcha::before,
  body.site-nexcaptcha::after,
  body.site-nexcaptcha .header,
  body.site-nexcaptcha #c_sousuo,
  body.site-nexcaptcha #mobile_right_nav,
  body.site-nexcaptcha .links,
  body.site-nexcaptcha .scrollToTopBtn,
  body.site-nexcaptcha .toast-container,
  body.site-nexcaptcha .once-lang-prompt,
  body.site-nexcaptcha .once-lightbox{display:none !important;}
}
