/* ============================================================================
   fishing.css —— 钓鱼拼词（学习模式 · 小游戏）的像素皮肤 + 水域层
   ----------------------------------------------------------------------------
   口径（Chief 2026-10-15 拍）：
     · 平台外壳一律走平台既有类与 token（.ln-gbar / .ln-gstat / .ln-board /
       .ln-link-foot / .btn / .modal）—— 本文件**不重定义**它们；
     · **只有"字母条带 + 提示框"这两个新组件保留像素皮肤**（含金边）；
     · 像素皮肤**自成作用域**：全部挂在 `.fish-stage` 下、颜色变量 `--ft-*`
       只定义在 `.fish-stage` 内 —— **不往 :root 的 --c-* / --t-* 加东西，
       也不改平台既有样式表**。
   配套：`web/assets/js/views/practice_fish.js`（视图）。

   ① 第 1 节起的那段 `.fish-stage` / `.fish-bar*` / `.fish-tip*` / `.fish-sprite*`
      是**视觉官 2026-10-15 给的 scoped CSS**（`fish_v2/钓鱼_像素皮肤作用域.css`），
      逐字照搬（含注释），只在他之后追加本屏自己的层。
   ② 第 2 节起是**水域 / 视频 / 提鱼层 / 气泡 / 落字框 / 提示框尺寸开关**，
      同样全部收在 `.fish-stage` 作用域内。
   ========================================================================== */

/* ==========================================================================
   ① 视觉官给的像素皮肤（scoped）
   ========================================================================== */

/* ---------- 作用域与调色板（只在这个子树里生效） ---------- */
.fish-stage {
  --ft-gold:      #C9A24A;   /* 金边（像素皮肤，不扩散到平台 token） */
  --ft-gold-lt:   #E8C46A;
  --ft-gold-br:   #F2D477;   /* 得分亮金 */
  --ft-panel:     #1A1218E6; /* 面板底 90% */
  --ft-ink:       #241A20;   /* 内描边深墨 */
  --ft-paper:     #F6EAD0;
  --ft-tier-w:    #E9EEF2;   /* 白级框边 */
  --ft-tier-b:    #3E7FB8;   /* 蓝级 */
  --ft-tier-r:    #B4402F;   /* 红级 */
  --ft-tier-g:    #D9A62E;   /* 金级 */
  --ft-shadow:    0 5px 0 #00000059;   /* 硬阴影，禁止模糊 */
}

/* ---------- ① 字母条带（居中、放大、半透明深色底） ---------- */
.fish-bar {
  position: absolute; left: 50%; top: 38%; transform: translateX(-50%);
  /* ★★ 房间局（联机抢鱼）例外：`.fish-stage.is-room` 把条带提到 8%（见下面那条）。
     为什么要提：实测（真 Chrome 1280×800、舞台 320px 高）条带 94px 正好压在鱼的
     活动带上，而"鱼身 + 木牌 + 摆尾包络"约 122px ⇒ 上方只剩 92px、下方只剩 60px，
     **怎么避让都塞不下**，鱼与木牌一直压在条带里（视觉官放大实拍）。
     单机保持 38% 一字不动（那批图视觉官已签过）。 */
  width: min(68%, 860px); z-index: 4;
  display: flex; flex-direction: column; align-items: center; gap: 2px;
  padding: 8px 16px 10px;
  background: var(--ft-panel);
  border: 2px solid var(--ft-gold);
  border-radius: 3px;
  box-shadow: var(--ft-shadow), inset 0 0 0 1px var(--ft-ink);
  transition: border-color .12s, background .12s, opacity .15s linear;
}
.fish-bar__cap { color: #CBBE9E; font-size: 13px; letter-spacing: 2px; white-space: nowrap; }
.fish-bar__lock { color: var(--ft-gold-lt); font-size: 13px; white-space: nowrap; display: none; }
/* ★★ 2026-10-15 视觉复核（必修一条）：起钩 / 提鱼序列期间**整条条带淡出**。
   原因：条带 `top:38%`、提示框 `top:43%`，两块在同一横带 —— 桌面轻微压住
   「收线中」那行、手机（390×844）把字母切掉一大半（截图为证）。
   而这一刻输入已经锁了、条带内容不会变，"钓到了 + 得分"由提示框讲清楚，
   ⇒ 淡出**没有信息损失**（视觉官给的做法）。 */
.fish-bar.is-locked {
  opacity: 0; pointer-events: none;
}
.fish-bar.is-locked .fish-bar__cap { display: none; }
.fish-bar.is-locked .fish-bar__lock { display: none; }
.fish-bar.is-deny { border-color: #A32D2D; background: #3A1414E6; }
.fish-bar__stream {
  width: 100%; height: 50px; display: flex; align-items: center;
  justify-content: flex-end; overflow: hidden; direction: ltr;
}
.fish-bar__ch {
  flex: 0 0 34px; width: 34px; text-align: center;
  font: 600 30px/1 Consolas, Menlo, monospace; color: #FFF6E0;
}
.fish-bar__ch.is-used { color: var(--ft-gold); }        /* 已消耗（喂过鱼）的字母 */
.fish-bar__ch.is-used::after {
  content: ""; display: block; margin: -4px auto 0; width: 18px; height: 3px;
  background: var(--ft-gold); border-radius: 1px;
}
.fish-bar__empty { color: #8E9AA6; font-size: 20px; }

/* ---------- ② 中央文字（**新口径**：`<单词> × <倍数>`，文字颜色 = 鱼色） ----------
   ★★ 口径变更留痕（老师 2026-10-15 当面，视觉官交底）：这里原来是 B 版**得分提示框**
      「等级中文 · 倍率 · 得分」，还带 `--verA/--verB` 两套尺寸（A 200×96 / B 240×104）。
      新口径**整块替换**：只有一行「单词 × 倍数」，等级只靠**鱼色**读，
      默认**不再出 `+得分`**（只留一行开关 CATCH_SHOW_SCORE）。
   ★ 硬角 `border-radius: 0` + 内 1px 深墨：视觉官 2026-10-15 **更正**——原来写的
      "3px 圆角"是笔误；GIF 是硬像素，圆角会产生抗锯齿、边缘发脏。
   ★ 位置 `top: 20%`：新 GIF 的鱼在画面 40–60%，放 35% 会直接压在鱼身上
      （与上一轮"静态主图被弹框压住"同一类问题，视觉官更正）。
   ★ 层级仍用 **6**（不新增层级）：视频 1/2 → 鱼 3 → 条带 4 → **中央文字 6** → 结算 50。 */
.fish-tip {
  /* ★★ 2026-10-15 视觉复核第二条（截图为证）：原来 `top:43%` 在**手机**上正好
     压住"提在手里的鱼"的上半身（390×844 的提鱼主图里，鱼在手心、位置偏下，
     43% 落在它头上）。视觉官给的改法之一就是抬到 35% —— 抬上去后桌面/手机
     都落在鱼的上方，不再遮住渔获展示。
     ★ 43% 那条口径的初衷（"正中会压住竿与钓线"）仍然满足：35% 还在水线上方。
     ★★ 2026-10-15 "20%"的**基准口径留痕**（同一天两次改判，按时间序记）：
        ① 我最初落：`top:20%` + `translate(-50%,-50%)` ⇒ **板中心 = 20%**（占 14.3–25.9%）；
        ② Chief 上一条要求按"**板顶边** = 20%"落（即只 `translateX(-50%)`，板占 20–32%）
           —— 我照落了一份；
        ③ Chief 随即**改判**：老师那句"位置改到 20%"是视觉位置，按**中心口径**就是它，
           顶边口径作废（几何依据：顶边口径把文字整块下移 5.7%，即使 `p=0.85` 仍压鱼 1.6%，
           ≥2% 间隙硬指标反而不达标；要达标得 `p≤0.63`，而抽帧确认手指/前臂一直到画面最底边，
           那样会切手）⇒ **回滚到 ①，`translate(-50%,-50%)` 保持不动**。
        ⇒ 当前唯一口径：**板中心 = 舞台高度的 13.8%**（板占 7.8–19.8%），见下一段。
        基准盒 = `.fish-sea`（舞台/水域，就是被验收的那个 2.07:1 的盒子），
        不是 `.fish-stage`（后者含顶部 HUD 与底部工具行，宽高比不同，量出来的 % 会偏）。

     ★★ 2026-10-15 五改（最终）：**回到中心 20%**（老师原话那个数），改 `p` 换间隙 —— 见下。
        Chief 先要我按"硬指标 ≥4%"上移文字到 13.8%（提交 f491c9b1），随后视觉官眼判我的
        渲染图后**撤回**"p<0.85 会切手"那条（f6/f13 上手指、鱼、竿都完整，只少 deck 前沿
        那条边）⇒ Chief 改判：**优先保住老师的 20%，用裁底换间隙**，13.8% 作废。
        基准盒 = `.fish-sea`（舞台/水域，就是被验收的那个 2.07:1 的盒子）。
     ★★ 这一版的数（真机实测，`_work/fishing/geo/report.txt`）：
        文字中心 20% ⇒ 板占 14.0–26.0%（板高 72.3px = 舞台高的 12.05%）；
        `p=0.50` ⇒ 最不利帧（GIF 第 6 帧，鱼跃出水面，源片第 88 行）鱼顶 29.73%，
        **间隙 +3.70%**；底裁 19.1px 源片（≈49–57px 显示，只少 deck 前沿）。 */
  position: absolute; left: 50%; top: 20%; transform: translate(-50%, -50%);
  display: flex; align-items: baseline; justify-content: center; gap: 8px;
  max-width: 92%; padding: 6px 16px 8px; text-align: center;
  background: var(--ft-panel);
  border: 2px solid var(--ft-gold);      /* 描边颜色由下面 --w/--b/--r/--g 按鱼色覆盖 */
  border-radius: 0;                      /* ★ 硬角（视觉官更正：不是 3px 圆角） */
  box-shadow: var(--ft-shadow), inset 0 0 0 1px var(--ft-ink);
  pointer-events: none; z-index: 6;      /* 鱼之上、结算弹窗之下 */
  opacity: 0; visibility: hidden;
}
.fish-tip.is-on { opacity: 1; visibility: visible; animation: fish-tip-in 120ms steps(3) both; }
.fish-tip.is-out { opacity: 0; visibility: hidden; transition: opacity 180ms linear, visibility 0s linear .18s; }
/* 框边 + 单词文字都用**鱼色**（等级只靠颜色读；不再有等级中文） */
.fish-tip--w { border-color: var(--ft-tier-w); color: var(--ft-tier-w); }
.fish-tip--b { border-color: var(--ft-tier-b); color: var(--ft-tier-b); }
.fish-tip--r { border-color: var(--ft-tier-r); color: var(--ft-tier-r); }
.fish-tip--g { border-color: var(--ft-tier-g); color: var(--ft-tier-g); }
/* ★ 单词 34–36px / 700，颜色继承上面的鱼色；倍率 18px 金色（真乘号 × 由 JS 拼） */
.fish-tip__word  { font-size: 35px; font-weight: 700; letter-spacing: 1px; color: inherit; }
.fish-tip__mult  { font-size: 18px; color: #FFD98A; }
/* `+得分` 只在开关 CATCH_SHOW_SCORE 打开时才挂进 DOM（默认不挂） */
.fish-tip__score { font-size: 18px; color: #FFD98A; font-variant-numeric: tabular-nums; }

@keyframes fish-tip-in {
  0%   { opacity: 0; transform: translate(-50%, -50%) scale(.90); }
  60%  { opacity: 1; transform: translate(-50%, -50%) scale(.96); }
  100% { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}

/* ---------- 窄屏：两个组件等比收，字号不低于可读下限 ---------- */
@media (max-width: 560px) {
  .fish-bar { top: 34%; width: 78%; padding: 6px 10px 8px; }
  .fish-bar__cap, .fish-bar__lock { font-size: 11.5px; letter-spacing: 1px; }
  .fish-bar__stream { height: 36px; }
  .fish-bar__ch { flex: 0 0 22px; width: 22px; font-size: 19px; }
  .fish-tip { padding: 5px 12px 7px; }
  .fish-tip__word { font-size: 26px; }
  .fish-tip__mult { font-size: 15px; }
  .fish-tip__score { font-size: 15px; }
}

/* ---------- 精灵鱼（像素层，叠在视频之上） ---------- */
.fish-sprite { position: absolute; z-index: 3; will-change: left, top; }
.fish-sprite__img { display: block; width: 100%; height: 100%; image-rendering: pixelated; }
.fish-sprite__plate {                    /* 中文木牌：只写中文词，不写级别文字 */
  position: absolute; left: 50%; transform: translateX(-50%);
  padding: 0 8px; border-radius: 3px; white-space: nowrap;
  background: var(--ft-panel); color: #fff;
  border: 2px solid var(--ft-gold); font-size: 13px; line-height: 1.25;
  text-shadow: 0 1px 0 #0008; pointer-events: none;
}
.fish-sprite__cd {                       /* 倒计时牌 */
  position: absolute; right: -8px; padding: 0 6px; border-radius: 9px;
  background: #185FA5; color: #fff; font-size: 10.5px; line-height: 1.5;
  border: 1px solid #ffffff55; font-variant-numeric: tabular-nums; pointer-events: none;
}
.fish-sprite__cd.is-danger { background: #A32D2D; }

/* 说明：字母条带/提示框/鱼牌三者的颜色全部来自 .fish-stage 内的 --ft-*，
   平台主题换肤（:root 的 --c-* / --t-*）不会影响它们，它们也不会影响平台。 */

/* ==========================================================================
   ② 本屏自己的一层（水域 / 视频 / 提鱼 / 气泡 / 落字框 / 尺寸开关）
   ★ 同样全部收在 .fish-stage 作用域内；不新增 :root 变量。
   ========================================================================== */

/* ---------- 舞台：吃掉 .ln-board 剩下的高度，自己分给"水域 + 工具行" ---------- */
.fish-stage {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  position: relative;
  box-sizing: border-box;
}

/* ---------- 水域（视频打底 + 精灵叠加） ---------- */
.fish-sea {
  position: relative;
  flex: 1 1 auto;
  min-height: 320px;
  margin-top: 10px;
  border-radius: 12px;
  overflow: hidden;
  background: #0C1A22;                 /* 视频未就绪时的底色 */
  border: 1px solid var(--c-line, #2A2F3A);
  box-sizing: border-box;
}
/* 渔获展示期间：水里其它鱼隐掉，画面留给"起钩 / 提鱼展示" */
.fish-sea.is-catch .fish-sprite { opacity: 0; }

/* ---------- 视频层（idle 循环 / 起钩一次性） ----------
   ★ idle 从头到尾不停播 ⇒ 起钩的淡入淡出天然是"交叉淡入淡出"，不会硬切跳帧。 */
.fish-vid {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; object-position: center bottom;
  image-rendering: pixelated; pointer-events: none;
}
.fish-vid--idle { z-index: 1; }
.fish-vid--hook {
  z-index: 2; visibility: hidden; opacity: 0;
  transition: opacity .2s linear, visibility 0s linear .2s;
}
.fish-vid--hook.is-on {
  visibility: visible; opacity: 1;
  transition: opacity .15s linear, visibility 0s linear 0s;
}
.fish-vid--fallback { z-index: 1; display: none; }
/* 播放失败（浏览器不支持 / file:// 被拦）→ 静态首帧兜底，画面不会空 */
.fish-sea.no-video .fish-vid--idle,
.fish-sea.no-video .fish-vid--hook { display: none; }
.fish-sea.no-video .fish-vid--fallback { display: block; }

/* ---------- 提鱼展示层（一张四色主图；★ 不叠任何得分文字） ---------- */
.fish-catch {
  position: absolute; inset: 0; z-index: 5; pointer-events: none;
  opacity: 0; visibility: hidden;
  transition: opacity .2s linear, visibility 0s linear .2s;
}
.fish-catch.is-on {
  opacity: 1; visibility: visible;
  transition: opacity .15s linear, visibility 0s linear 0s;
}
/* ---------- 上钩 GIF 层（**新口径**：按鱼色的 `hookup_<color>_2s.gif`） ----------
   ★ 每次钓到由 JS **新建一个 `<img>`** 放进来（同 src 复用不会重播，见视觉官 §4）；
     URL 不带破缓存参数 ⇒ 走浏览器缓存，不重复下载。
   ★ 旧口径的静态提鱼主图 `catch/hold_<color>.png` 已淘汰。 */
.fish-catch__gif {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; object-position: center 50%; image-rendering: pixelated;
}
/* ★★ contain 档的**暗底填充层**（Chief 拍 ② 主 + ① 兜底）——
   同一张 GIF 的 `cover` 放大暗副本，垫在主图之下（JS 先插 fill 再插 gif，同 `src` 同 `?v=`）：
   contain 的带子里就不再是"另一条 idle 视频"，而是**同一帧的放大暗版** ⇒ 缝没了。
   ★ 压暗量：cover 副本比主图更放大、缝上纹理必然对不齐，所以要压到看不出"两个场景"。
   视觉官 2026-10-15 授权这里是**像素风禁令的唯一例外**（可以模糊）：只作用于带子里的
   背景填充，主图与所有精灵的像素锐度一个字不动 —— 别把这条例外抄到别处。
   ★ 下面 `.fish-catch` 的暗底（①）保留，作**图未加载/解码失败**时的兜底。 */
.fish-catch__fill {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; object-position: center; image-rendering: pixelated;
  filter: brightness(.42) saturate(.55) blur(2px);
}
/* ★★ 竖屏**不再**走 contain（视觉官 2026-10-15 打回）：手机档 contain 会把主画面
   压成中间一条 16:9、上下露 idle 的放大碎片 ⇒ 三段画面 + 两条硬缝。
   竖屏改 **cover**：a < 16/9 时按高度铺满、**垂直零裁切**，只从两侧裁
   （鱼完整、竿大半在、左手被裁），间隙比桌面还宽。
   ★ 这里**故意不放 `@media` 兜底**：`@media` 看的是**视口**不是舞台盒子（见下），
     留着它会和 JS 挂的类打架（首帧把手机按回 contain）。 */
/* ★★ 2026-10-15 实测更正：fit 档位**不能**用 `@media (aspect-ratio:)` 定 ——
   `@media` 看的是**视口**宽高比，不是 `.fish-sea`（舞台）这个盒子的比例。
   实测证据（`_measure_fish_geo.mjs`）：视口 1280×800（=1.6:1）下把舞台钉成 2.5:1，
   `@media (min-aspect-ratio:43/20)` **根本没命中**，`.fish-catch__gif` 仍是 `object-fit: cover`。
   ⇒ 权威判据改由 JS 按**舞台实测比例**挂类名（`practice_fish.js` 的 `fitMode()`）：
        a = 舞台宽高比；**只有 a > 2.2（超宽）⇒ contain**；
        其余（桌面 2.07–2.20、以及**竖屏**）⇒ cover + `object-position: center 50%`。
   ★ 阈值 **2.2** 是按**当前几何**（文字中心 20% + `p=0.50`）算的：
     间隙% = 23.88 − 9.79·a ⇒ a = 2.07 ⇒ +3.6%（≈22px，达标）；a = 2.2 ⇒ 2.3%（临界）；
     a = 2.3 ⇒ 1.4%。**旧几何（文字 13.8% + `p=0.85`）的阈值是 2.14**，别混用。
   ★ 早前那条"`p=0.6`/`p=0.5` 会切手"**已撤回**（视觉官眼判 `_work/fishing/geo/sim_*` 渲染图后
     确认：f6/f13 上手指、鱼、竿都完整，p=0.50 只少 deck 前沿那条边）⇒ 才敢用 `p=0.50`。
   ★ `is-narrowfit` 这个类名 JS 仍会挂（`fitMode()`），但**这里不再有任何规则**：
     竖屏与桌面同档（cover），留着类只为自测能读出"当前档位"，不是样式钩子。 */
.fish-sea.is-widefit .fish-catch__gif { object-fit: contain; object-position: center; }
/* ★★ contain 档必须**加暗底**（视觉官 2026-10-15）：contain 只有 GIF 是"整片装进去"，
   两侧露出来的是下面的 **idle 视频**（cover 缩放、比例与 GIF 不同）⇒ 地平线会错位、
   画面像"两层水"。用与结算 `.modal-mask` 同档的暗度把两侧读成**有意压边的暗框**。
   ★ **只在 `is-widefit`（a > 2.2）生效**：竖屏已改 cover（满铺），不需要它。 */
.fish-sea.is-widefit .fish-catch { background: rgba(6, 12, 19, .72); }

/* ---------- 沉底：鱼往下沉、淡出 ---------- */
.fish-sprite.is-sinking {
  transition: transform 1.1s ease-in, opacity 1.1s ease-in;
  transform: translateY(70px) rotate(18deg);
  opacity: 0;
}

/* ---------- 盲打时的气泡（看不见字母时的敲击反馈） ---------- */
.fish-bubble {
  position: absolute; z-index: 2; width: 9px; height: 9px;
  border: 1.5px solid #9FD8F5; border-radius: 50%; opacity: .75;
  pointer-events: none; animation: fish-rise 1.1s ease-out forwards;
}
@keyframes fish-rise {
  0%   { opacity: .75; transform: translate(0, 0); }
  50%  { opacity: .65; transform: translate(4px, -45px); }
  100% { opacity: 0;   transform: translate(-3px, -90px); }
}

/* ---------- 刚敲下的那个字母弹一下（v2 的 #stream span.pop） ---------- */
.fish-bar__ch.is-pop { animation: fish-bar-pop .18s ease-out; }
@keyframes fish-bar-pop {
  from { transform: translateX(14px); opacity: 0; }
  to   { transform: none; opacity: 1; }
}

/* ---------- 中央文字：**新口径下没有固定尺寸口径**（旧 `--verA/--verB` 已作废） ----------
   ★★ 旧口径（到 2026-10-15 上午为止）：A 200×96 / B 240×104 两套固定盒子，
      类名 `--verA/--verB`，窄屏再各收一档。
   ★ 老师 2026-10-15 当面改成「单词 × 倍数」之后，**尺寸由内容决定**（一行字）
      ⇒ 那两套尺寸连同它那条窄屏 `@media` 一起删掉，避免"两个口径都挂着"。
      现在的口径只有：`top:20%` 居中 + 硬角 + 内 1px 深墨（见上面 `.fish-tip`）。 */
.fish-tip { box-sizing: border-box; }

/* ---------- 底部工具行里那一句提示（复用 .ln-link-foot 的排布） ---------- */
.fish-msg {
  flex: 1 1 220px;
  min-height: 22px;
  color: var(--c-green-a, #7FD6A9);
  font-size: var(--fs-md, 14px);
}
.fish-msg.is-bad { color: #FF8B7D; }

/* ---------- 平台按键通道的落字框 ----------
   1×1、透明：只为了让 ELP.kbdTouch 认它是"当前该收字的输入框"
   （它的 visible() 判据是 rect ≥1 且非 display:none/visibility:hidden，
     opacity 不在判据里）。页面级**没有可见输入框**，不弹系统输入法。 */
.fish-sink {
  position: absolute; left: 0; bottom: 0;
  width: 1px; height: 1px; overflow: hidden;
}
.fish-sink__input {
  width: 1px; height: 1px; padding: 0; border: 0; outline: 0;
  opacity: 0; background: transparent;
}

/* ---------- 矮屏：水域保底别压成一条 ---------- */
@media (max-height: 620px) {
  .fish-sea { min-height: 240px; }
}

/* ---------- 房间局（联机抢鱼）：字母条带提到顶部 ----------
   ★ 实测数字写在 `.fish-bar` 上面那段注释里（条带 94px + 鱼木牌包络 122px 在 320px
     高的舞台里塞不下）。只在房间局生效，单机保持 38%（那批图视觉官已签过）。 */
.fish-stage.is-room .fish-bar { top: 8%; }
@media (max-width: 560px) {
  .fish-stage.is-room .fish-bar { top: 8%; }
}

/* ---------- 动效敏感（`prefers-reduced-motion: reduce`）----------
   ★ 2026-10-15（视觉官 §9）：被抢的"拖走 + 水花"对动效敏感的人是负担 ⇒
     只留 120ms 淡出。**主改法在 JS**（`playSteal` 里判 `matchMedia` 并跳过
     拖走/水花，因为动效是内联样式 + 定时器驱动，CSS 拦不住）；这里再兜一道
     transition，防止别处漏过来的过渡。 */
@media (prefers-reduced-motion: reduce) {
  .fish-stolen,
  .fish-steal-line,
  .fish-steal-splash,
  .fish-stolen__tag { transition: none !important; }
}
