/* ============================================
   Coverflow Theme
   ============================================ */

:root {
  --text: #f4f6f8;
  --text-dim: rgba(244, 246, 248, 0.72);
  --text-faint: rgba(244, 246, 248, 0.5);
  --accent: #6aa9ff;
  --card-bg: rgba(15, 22, 32, 0.72);
  --card-border: rgba(255, 255, 255, 0.08);
  --overlay: 0.55;
  /* iOS Safari 底部工具栏的高度（大视口 - 动态视口），桌面端为 0。
     fixed 层多铺这么多，工具栏后面就不会是纯色块 */
  --toolbar-bleed: 0px;
}

@supports (height: 100dvh) {
  :root { --toolbar-bleed: calc(100vh - 100dvh); }
}

* { box-sizing: border-box; }

html, body {
  margin: 0;
  padding: 0;
  background: #0f1620;
  -webkit-text-size-adjust: 100%;
  background-color: #0f1620;
  /* 安卓默认给点击元素盖一层灰色高亮，看着也像"闪一下"，这里关掉改用 :active 自绘 */
  -webkit-tap-highlight-color: transparent;
}

body {
  font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB",
    "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;
  color: var(--text);
  background: #0f1620;
  line-height: 1.75;
  -webkit-font-smoothing: antialiased;
  min-height: 100vh;    /* 老内核兜底 */
  min-height: 100dvh;   /* 手机上 100vh 是"工具栏收起时的大视口"，比可见区域高，
                           会让页面多出一小段能上下滑的距离；dvh 等于当前可见高度 */
}

/* 首页 / 文章页：让根元素（canvas）的背景透出来，iOS 工具栏后面才不是纯色块 */
body.index,
body.post { background-color: transparent; background-image: none; }

/* 首页：禁止 iOS Safari 双击缩放（双指缩放仍然可用） */
body.index,
body.index * { touch-action: manipulation; }

a { color: var(--accent); text-decoration: none; }
a:hover { text-decoration: underline; }

img { max-width: 100%; }

/* ---------- Header（左上角 logo + 站名） ---------- */
.site-header {
  position: fixed;
  top: 0; left: 0;
  z-index: 100;
  padding: 20px 28px;
}

.brand {
  display: inline-flex;
  align-items: center;
  color: #fff;
  text-shadow: 0 1px 8px rgba(0,0,0,0.45);
}
.brand > * { margin: 0 5px; }   /* 代替 flex gap，兼容老内核 */
.brand:hover { text-decoration: none; }

.brand-logo {
  width: 30px;
  height: 30px;
  border-radius: 6px;
  object-fit: cover;
}

.brand-name {
  font-size: 18px;
  font-weight: 600;
  letter-spacing: 0.5px;
}

/* ---------- Footer（备案） ---------- */
.site-footer {
  position: fixed;
  bottom: 0; left: 0; right: 0;
  z-index: 100;
  padding: 14px 20px calc(14px + env(safe-area-inset-bottom, 0px));
  text-align: center;
  font-size: 12px;
  color: var(--text-faint);
  text-shadow: 0 1px 6px rgba(0,0,0,0.5);
  pointer-events: none;
}
/* 版权 / 备案 / 自定义字段统一用同一个颜色（就是版权那行的 --text-faint） */
.site-footer a {
  color: inherit;
  pointer-events: auto;
}
.site-footer a:hover { color: var(--text-dim); }
/* left + translateX 都是可过渡属性：
   桌面端 left:100% + translateX(-100%) = 贴右边；
   手机端 left:50% + translateX(-50%) = 居中。
   窗口跨过 768px 断点时这两个值一起变，于是有缓动动画 */
.footer-inner {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  width: fit-content;
  transition: left 0.55s cubic-bezier(0.33, 1, 0.68, 1),
              transform 0.55s cubic-bezier(0.33, 1, 0.68, 1);
}
/* flex gap 在老内核无效，版权/备案会连在一起 → 用 margin 兜底 */
.footer-inner > * { margin: 1px 7px; }
.footer-inner > .footer-extra,
.footer-inner > .footer-powered { margin-left: 0; margin-right: 0; }
.footer-gongan {
  display: inline-flex;
  align-items: center;
}
.footer-gongan .gongan-icon { margin-right: 4px; }   /* 代替 flex gap */
.gongan-icon {
  width: 14px;
  height: 14px;
}
.footer-powered {
  width: 100%;
}
.footer-upyun {
  transition: color 0.2s;
}
.footer-extra {
  width: 100%;
}
.footer-extra a {
  color: inherit;
  text-decoration: none;
  border-bottom: 1px solid rgba(255,255,255,0.2);
  transition: color 0.2s, border-bottom-color 0.2s;
}
.footer-extra a:hover { color: var(--text-dim); border-bottom-color: rgba(255,255,255,0.5); }
.footer-extra p { margin: 0; }

/* 电脑端：页脚挪到屏幕右下角、文字右对齐（手机端保持居中，见下方 media query） */
@media (min-width: 769px) {
  .site-footer {
    text-align: right;
    padding-left: 28px;
    padding-right: 28px;
  }
  .footer-inner {
    justify-content: flex-end;
    left: 100%;
    transform: translateX(-100%);
  }
}

/* ============================================
   首页 Hero 全屏轮播
   ============================================ */
.hero {
  position: fixed;
  top: 0; left: 0; right: 0; bottom: 0;
  top: calc(-1 * env(safe-area-inset-top, 0px));
  bottom: calc(-1 * env(safe-area-inset-bottom, 0px) - var(--toolbar-bleed, 0px));
  overflow: hidden;
  cursor: pointer;
  background: #0f1620;
}

.hero-slides {
  position: absolute;
  top: 0; right: 0; bottom: 0; left: 0;   /* 老内核（Chrome < 87）不认 inset，兜底 */
  inset: 0;
  z-index: 0;
}

.hero-slide {
  position: absolute;
  top: 0; right: 0; bottom: 0; left: 0;   /* 同上 */
  inset: 0;
  background-size: cover;
  background-position: center;
  opacity: 0;
  transform: scale(1.05);
  transition: opacity 1.2s ease, transform 6s ease;
}
.hero-slide.active {
  opacity: 1;
  transform: scale(1);
}

/* ---------- 轮播切换效果：theme.hero.transition ---------- */
/* fade（默认）在上面：交叉淡入 + 缓慢放大 */

/* slide：左右滑动。待机中的幻灯片透明并停在两侧，只有当前张和正在退场的那张可见 */
.hero[data-transition="slide"] .hero-slide {
  opacity: 0;
  transform: translateX(100%);
  transition: opacity 0.5s ease, transform 0.7s cubic-bezier(0.4, 0, 0.2, 1);
}
.hero[data-transition="slide"] .hero-slide.slide-left { transform: translateX(-100%); }
.hero[data-transition="slide"] .hero-slide.active {
  opacity: 1;
  transform: translateX(0);
  z-index: 1;
}

/* 轮播视频：静音自动播放、隐藏控件、铺满整个视口 */
.hero-slide video.hero-video {
  position: absolute;
  top: 0; left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border: 0;
  outline: none;
  background: #0f1620;
}
.hero-slide video.hero-video::-webkit-media-controls,
.hero-slide video.hero-video::-webkit-media-controls-panel {
  display: none !important;
}

/* 底部渐变遮罩，保证标题可读 */
.hero-scrim {
  position: absolute;
  top: 0; right: 0; bottom: 0; left: 0;   /* 老内核兜底 */
  inset: 0;
  z-index: 1;
  background: linear-gradient(
    to top,
    rgba(0,0,0,0.78) 0%,
    rgba(0,0,0,0.35) 35%,
    rgba(0,0,0,0.05) 60%
  );
  pointer-events: none;
}

.hero-caption {
  position: absolute;
  left: 0; right: 0;
  bottom: calc(70px + env(safe-area-inset-bottom, 0px) + var(--toolbar-bleed, 0px));
  z-index: 2;
  padding: 0 40px;
}
.hero-caption-inner {
  max-width: 720px;
}

.hero-title-link { color: #fff; }
.hero-title-link:hover { text-decoration: none; }

.hero-title {
  margin: 0 0 8px;
  font-size: 34px;
  font-weight: 700;
  line-height: 1.3;
  color: #fff;
  text-shadow: 0 2px 16px rgba(0,0,0,0.6);
}

.hero-meta {
  margin: 0 0 18px;
  color: var(--text-dim);
  font-size: 14px;
}

/* 轮播按钮 */
.hero-nav {
  display: flex;
  align-items: center;
}
/* 老内核（Chrome < 84）flex 的 gap 无效，按钮/圆点会挤在一起 → 用 margin 兜底
   （所以这里不再写 gap，避免新内核里间距翻倍） */
.hero-nav > * { margin: 0 8px; }

.hero-btn {
  appearance: none;
  border: 1px solid rgba(255,255,255,0.4);
  background: rgba(0,0,0,0.25);
  color: #fff;
  padding: 8px 18px;
  font-size: 14px;
  border-radius: 999px;
  cursor: pointer;
  /* 毛玻璃：高版本浏览器照常显示；安卓 / ?lite=1 会由 html.lite 统一关掉，
     不支持 backdrop-filter 的老内核由文件末尾的 @supports not 兜底成实底色 */
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  transition: background 0.2s, border-color 0.2s;
}
.hero-btn:hover {
  background: rgba(255,255,255,0.18);
  border-color: rgba(255,255,255,0.7);
}

.hero-dots {
  display: inline-flex;
}
.hero-dots > * { margin: 0 4px; }

/* 轮播控件右侧的图标按钮组（theme.hero.buttons 配置，见 hero.ejs） */
.hero-icon-links {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
}
.hero-icon-links > * { margin: 0 5px; }
.hero-about-link,
.hero-icon-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,0.4);
  background: rgba(0,0,0,0.25);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  transition: background 0.2s, border-color 0.2s;
  flex-shrink: 0;
}
.hero-about-link:hover,
.hero-icon-link:hover {
  background: rgba(255,255,255,0.18);
  border-color: rgba(255,255,255,0.7);
  text-decoration: none;
}
.hero-about-link img,
.hero-icon-link img {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  object-fit: cover;
}
/* 只配了文字没配图标的按钮：撑成胶囊形 */
.hero-icon-link.hero-icon-link--text {
  width: auto;
  min-width: 36px;
  padding: 0 12px;
  border-radius: 999px;
  color: #fff;
  white-space: nowrap;
}
.hero-icon-text {
  font-size: 13px;
  line-height: 1;
  color: inherit;
}
.hero-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  border: none;
  padding: 0;
  background: rgba(255,255,255,0.4);
  cursor: pointer;
  transition: all 0.25s;
}
.hero-dot.active {
  background: #fff;
  transform: scale(1.25);
}

.hero-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #1a2a3a, #0f1620);
}
.hero-site-title { font-size: 42px; margin: 0; }
.hero-subtitle { color: var(--text-dim); }

/* ============================================
   文章页（暗色封面背景）
   ============================================ */
body.post {
  min-height: 100vh;
  min-height: 100dvh;
}

body.post::before {
  content: "";
  position: fixed;
  top: calc(-1 * env(safe-area-inset-top, 0px));
  left: 0; right: 0;
  bottom: calc(-1 * env(safe-area-inset-bottom, 0px) - var(--toolbar-bleed, 0px));
  background-image: var(--post-bg, none);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  z-index: 0;
  pointer-events: none;
}
body.post::after {
  content: "";
  position: fixed;
  top: calc(-1 * env(safe-area-inset-top, 0px));
  left: 0; right: 0;
  bottom: calc(-1 * env(safe-area-inset-bottom, 0px) - var(--toolbar-bleed, 0px));
  background: rgba(8, 12, 18, var(--overlay, 0.55));
  z-index: 0;
  pointer-events: none;
}

.post-wrap {
  position: relative;
  z-index: 1;
  padding: calc(100px + env(safe-area-inset-top, 0px)) 20px calc(90px + env(safe-area-inset-bottom, 0px));
  display: flex;
  justify-content: center;
}

.post-card {
  width: 100%;
  max-width: 820px;
  background: var(--card-bg);
  border: 1px solid var(--card-border);
  border-radius: 16px;
  padding: 48px 52px;
  backdrop-filter: blur(14px);
  box-shadow: 0 20px 60px rgba(0,0,0,0.4);
  overflow: hidden;
}

.post-header { margin-bottom: 28px; }

.post-title {
  margin: 0 0 12px;
  font-size: 32px;
  line-height: 1.35;
  color: #fff;
}

.post-meta {
  font-size: 14px;
  color: var(--text-dim);
}
.post-meta .dot { margin: 0 6px; opacity: 0.5; }
.post-meta a { color: var(--text-dim); }
.post-meta a:hover { color: #fff; }

.post-content {
  font-size: 16.5px;
  color: var(--text);
  overflow-wrap: break-word;
}
.post-content h1, .post-content h2, .post-content h3,
.post-content h4, .post-content h5 {
  color: #fff;
  margin-top: 1.8em;
  line-height: 1.4;
  /* 点目录跳转时别被左上角 logo 压住 */
  scroll-margin-top: 92px;
}
.post-content h2 {
  border-left: 4px solid var(--accent);
  padding-left: 12px;
}
.post-content p { margin: 1.1em 0; }
.post-content blockquote {
  margin: 1.4em 0;
  padding: 10px 18px;
  border-left: 3px solid var(--accent);
  background: rgba(255,255,255,0.05);
  border-radius: 0 8px 8px 0;
  color: var(--text-dim);
}
.post-content code {
  background: rgba(255,255,255,0.1);
  padding: 2px 6px;
  border-radius: 4px;
  font-size: 0.9em;
}
.post-content pre {
  background: rgba(0,0,0,0.45);
  padding: 16px;
  border-radius: 10px;
  overflow-x: auto;
}
.post-content pre code { background: none; padding: 0; }
.post-content img { border-radius: 10px; }
.post-content table {
  width: 100%;
  border-collapse: collapse;
  margin: 1.2em 0;
}
.post-content th, .post-content td {
  border: 1px solid rgba(255,255,255,0.15);
  padding: 8px 12px;
}

/* ---------- 文章目录（theme.post.toc）：右下角悬浮面板 ---------- */
/* 桌面端右下角常驻、默认展开；手机端收成一颗「目录」按钮，点开只占页面下半部分。
   --footer-h 由 toc.js 写入页脚实际高度，面板据此避开页脚 */
.post-toc {
  position: fixed;
  right: 26px;
  bottom: calc(var(--footer-h, 88px) + 18px);
  z-index: 120;
  width: 262px;
  max-height: calc(100vh - var(--footer-h, 88px) - 46px);
  display: flex;
  flex-direction: column;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 14px;
  background: rgba(20, 29, 41, 0.86);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.55);
  font-size: 14px;
  overflow: hidden;
}
.post-toc-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  width: 100%;
  padding: 11px 14px;
  border: 0;
  background: none;
  color: #fff;
  font: inherit;
  font-size: 13.5px;
  font-weight: 600;
  letter-spacing: 0.4px;
  text-align: left;
  white-space: nowrap;
  cursor: pointer;
}
.post-toc-head:hover { background: rgba(255, 255, 255, 0.06); }
.post-toc-chevron {
  font-size: 12px;
  line-height: 1;
  color: var(--accent);
  opacity: 0.9;
  transition: transform 0.2s;
}
.post-toc[data-open="false"] .post-toc-chevron { transform: rotate(-90deg); }
.post-toc[data-open="false"] .post-toc-body { display: none; }
.post-toc-body {
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  padding: 2px 14px 12px;
}
.post-toc-body > ol {
  margin: 0;
  padding-left: 6px;
  list-style: none;
  counter-reset: toc;
}
.post-toc-body ol ol {
  margin-top: 2px;
  padding-left: 15px;
}
.post-toc-body li { margin: 3px 0; line-height: 1.6; }
.post-toc-body li::before {
  counter-increment: toc;
  content: counters(toc, ".") " ";
  color: var(--text-faint);
  font-size: 12px;
  font-variant-numeric: tabular-nums;
}
.post-toc-body a { color: var(--text-dim); }
.post-toc-body a:hover { color: #fff; text-decoration: none; }

/* 点目录平滑滚动（跟随系统「减少动态效果」设置） */
@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
}

.comments-section {
  margin-top: 48px;
  padding-top: 28px;
  border-top: 1px solid var(--card-border);
}

/* ============================================
   列表页 / 独立页
   ============================================ */
body.page, body.archive {
  background: #0f1620;
  background-image: linear-gradient(135deg, #1a2a3a, #0f1620);
  /* 不用 background-attachment: fixed —— 安卓 Chrome / 老内核上它会明显掉帧、闪烁 */
}

.list-wrap {
  position: relative;
  z-index: 1;
  padding: 100px 20px 90px;
  display: flex;
  justify-content: center;
  min-height: 100vh;
  min-height: 100dvh;
}

.list-card {
  width: 100%;
  max-width: 760px;
}

.list-title {
  font-size: 32px;
  color: #fff;
  margin: 0 0 28px;
}

.post-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.post-list-item {
  display: flex;
  align-items: baseline;
  padding: 14px 0;
  border-bottom: 1px solid rgba(255,255,255,0.08);
}
.post-list-date {
  flex-shrink: 0;
  margin-right: 18px;   /* 代替 flex gap */
  font-size: 13px;
  color: var(--text-faint);
  font-variant-numeric: tabular-nums;
}
.post-list-link {
  color: var(--text);
  font-size: 16px;
}
.post-list-link:hover { color: var(--accent); text-decoration: none; }

/* ============================================
   响应式
   ============================================ */
@media (max-width: 768px) {
  .site-header { padding: 16px 18px; }
  .brand-name { font-size: 16px; }

  /* 移动端：标题在下方，轮播按钮在标题下方 */
  /* bottom 由 hero.js 按「页脚高度 + 最小间距」计算，
     保证页脚顶部与轮播控件之间至少留出 theme.hero.footer_gap 的距离 */
  .hero-caption {
    bottom: calc(var(--hero-caption-bottom, 64px) + var(--toolbar-bleed, 0px));
    padding: 0 20px;
  }
  .hero-title {
    font-size: 24px;
  }
  .hero-nav {
    flex-wrap: wrap;
  }
  .hero-nav > * { margin: 2px 5px; }
  .hero-btn {
    padding: 6px 14px;
    font-size: 13px;
  }

  .post-wrap { padding: 80px 14px 80px; }
  .post-card { padding: 28px 22px; border-radius: 12px; }
  .post-title { font-size: 24px; }

  .list-wrap { padding: 80px 16px 80px; }
  .post-list-item { flex-direction: column; }
  .post-list-item .post-list-date { margin-right: 0; margin-bottom: 4px; }

  /* 极端情况：视口放不下「页脚 + 间距 + 轮播控件」时，
     隐藏页脚内容，保留轮播控件（hero.js 会给 body 加这个类） */
  body.footer-collapsed .footer-inner { display: none; }

  /* 手机端目录：收起时只有一颗「目录」按钮，展开只占页面下半部分，且躲开页脚 */
  .post-toc {
    right: 14px;
    width: auto;
    max-width: calc(100vw - 28px);
    bottom: calc(var(--footer-h, 96px) + 12px);
    max-height: max(35vh, calc(50vh - var(--footer-h, 96px) - 12px));
  }
  .post-toc[data-open="true"] { width: calc(100vw - 28px); }
  .post-toc-head { padding: 10px 14px; }
  /* JS 执行前也保持收起，避免闪一下；只有用户点开过（data-user="open"）才展开 */
  .post-toc[data-open="true"]:not([data-user="open"]) .post-toc-body { display: none; }
  .post-toc[data-open="true"]:not([data-user="open"]) .post-toc-chevron { transform: rotate(-90deg); }
}

/* ============================================
   老内核兼容兜底（Chrome < 88 一类：安卓 WebView / 国产内核浏览器）
   aspect-ratio 是 Chrome 88 才有的，这里拿它当"老内核"的探针。
   ============================================ */
@supports not (aspect-ratio: 1) {
  /* 1) 首页轮播：6 秒缓慢放大（Ken Burns）在安卓/老内核上要反复重绘整屏大图层，
        点按钮时就会闪 → 降级成纯淡入淡出 */
  .hero-slide {
    transform: none;
    transition: opacity 0.6s ease;
  }
  .hero-slide.active { transform: none; }

  /* 2) 没有 backdrop-filter（Chrome < 76）时"毛玻璃"只会是半透明，
        把关键面做成接近纯色，保证文字可读 */
  .post-card { background: rgba(15, 22, 32, 0.94); }
  .post-toc { background: rgba(20, 29, 41, 0.96); }
}

/* ============================================
   渲染降级：html.lite
   由 head.ejs 里的内联脚本按 UA 加（安卓默认开），也可用 ?lite=1 / ?lite=0 手动控制。
   目的：去掉那些"点一下就整屏闪"的合成/重绘大户。
   ============================================ */
/* 1) 首页轮播去掉 6 秒缓慢放大，只留淡入淡出（全屏大图层的缩放动画是重绘大户） */
html.lite .hero-slide,
html.lite .hero-slide.active {
  transform: none;
}
html.lite .hero-slide {
  transition: opacity 0.6s ease;
}

/* 2) 关掉所有毛玻璃（安卓上 blur 会先算一遍再合成，容易闪） */
html.lite *,
html.lite *::before,
html.lite *::after {
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}
/* 关掉模糊后，用更实的底色保证文字可读 */
html.lite .post-card { background: rgba(15, 22, 32, 0.94); }
html.lite .post-toc { background: rgba(20, 29, 41, 0.96); }
html.lite .hero-btn,
html.lite .hero-icon-link,
html.lite .hero-about-link { background: rgba(0, 0, 0, 0.32); }

/* 3) 触摸设备上的 :hover 会"粘住"（点完一直保持 hover 态，触发多余重绘） */
@media (hover: none) {
  .hero-btn:hover { background: rgba(0, 0, 0, 0.32); border-color: rgba(255, 255, 255, 0.4); }
  .hero-icon-link:hover,
  .hero-about-link:hover { background: rgba(0, 0, 0, 0.32); border-color: rgba(255, 255, 255, 0.4); }
}

/* lite2：连首页轮播的淡入淡出也去掉，切换变成瞬间完成（用来定位闪烁到底是不是全屏动画引起的） */
html.lite2 .hero-slide,
html.lite2 .hero-slide.active {
  transition: none !important;
}

/* 触摸端点击反馈（代替被关掉的系统灰色高亮） */
.hero-btn:active,
.hero-icon-link:active,
.hero-about-link:active {
  background: rgba(255, 255, 255, 0.22);
  border-color: rgba(255, 255, 255, 0.7);
}

/* 完全不支持 backdrop-filter 的老内核（Chrome < 76 等）：毛玻璃根本渲染不出来，
   把关键面换成实一点的底色，保证可读性 */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .hero-btn,
  .hero-icon-link,
  .hero-about-link { background: rgba(0, 0, 0, 0.42); }
  .post-card { background: rgba(15, 22, 32, 0.94); }
  .post-toc { background: rgba(20, 29, 41, 0.96); }
}
