@charset "UTF-8";
/* ================================================================
   depth.css — 水深メーター（記事ページ・プロフィールなどの固定ページ）
   読み進めた割合を「水深 0〜3,000m」に置き換えて見せ、背景も深くしていく。
   割合は js/depth.js が --dive（0〜1）として <html> に書き込む。
   Cocoon には依存しない（body.single / body.page だけ見る）。
   ================================================================ */

/* ── 背景：読むほど紺から深海の黒へ ─────────────── */
body.single,
body.page {
  background: var(--abyss);
}
body.single::before,
body.single::after,
body.page::before,
body.page::after {
  content: '';
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
}
/* 浅いところの紺。潜るほど消える */
body.single::before,
body.page::before {
  background:
    radial-gradient(ellipse 80% 55% at 50% 0%, var(--glow-blue-a12) 0%, transparent 70%),
    linear-gradient(170deg, var(--ocean-2) 0%, var(--ocean-1) 45%, var(--deep) 100%);
  opacity: calc(1 - var(--dive, 0) * 0.95);
}
/* 深いところの生物発光。終盤で現れる */
body.single::after,
body.page::after {
  background:
    radial-gradient(circle 1.5px at 12% 22%, rgba(79, 195, 247, 0.55) 0%, transparent 100%),
    radial-gradient(circle 2px   at 84% 18%, rgba(38, 208, 206, 0.45) 0%, transparent 100%),
    radial-gradient(circle 1px   at 68% 64%, rgba(179, 229, 252, 0.60) 0%, transparent 100%),
    radial-gradient(circle 2.5px at 26% 78%, rgba(79, 195, 247, 0.35) 0%, transparent 100%),
    radial-gradient(circle 1.5px at 92% 86%, rgba(38, 208, 206, 0.40) 0%, transparent 100%),
    radial-gradient(circle 1px   at 44% 38%, rgba(179, 229, 252, 0.45) 0%, transparent 100%),
    radial-gradient(circle 2px   at 6%  58%, rgba(79, 195, 247, 0.30) 0%, transparent 100%);
  opacity: clamp(0, (var(--dive, 0) - 0.55) * 2.2, 1);
  animation: wa-depth-glow 5s ease-in-out infinite alternate;
}
@keyframes wa-depth-glow {
  0%   { filter: brightness(0.7); }
  100% { filter: brightness(1.3); }
}

/* ── 見出しの目盛り（js/depth.js が data-depth に水深を入れる） ── */
body.single .wa-article h2[data-depth],
body.page .wa-article h2[data-depth] {
  position: relative;
}
body.single .wa-article h2[data-depth]::after,
body.page .wa-article h2[data-depth]::after {
  content: attr(data-depth) / ""; /* 読み上げには含めない */
  position: absolute;
  right: 0;
  bottom: calc(100% + 10px);
  font-family: var(--font-serif), var(--font-round);
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0.08em;
  line-height: 1;
  color: var(--text-dim);
  font-variant-numeric: tabular-nums;
  font-feature-settings: normal;
  text-shadow: none;
}

/* ── 画面最上部の細い線（読んだ割合） ─────────────── */
.wa-depth-line {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9999;
  width: 100%;
  height: 2px;
  transform: scaleX(var(--dive, 0));
  transform-origin: left;
  background: linear-gradient(90deg, var(--glow-teal), var(--glow-blue));
  box-shadow: 0 0 8px var(--glow-blue-a30);
  pointer-events: none;
}

/* ── 左下のメーター ───────────────────────────── */
.wa-depth {
  position: fixed;
  left: 20px;
  bottom: 20px;
  z-index: 9998;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 16px 10px 12px;
  background: rgba(5, 13, 26, 0.72);
  border: 1px solid var(--card-border);
  border-radius: var(--radius-md);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: var(--shadow-card);
  font-family: var(--font-round);
  pointer-events: none;
  transition: border-color var(--dur-mid) var(--ease-float), box-shadow var(--dur-mid) var(--ease-float);
  /* ページの一番下でフッターに重ならないよう、js/depth.js が --lift に持ち上げる量を入れる */
  transform: translateY(calc(-1 * var(--lift, 0px)));
}
/* 縦のゲージ */
.wa-depth-gauge {
  position: relative;
  width: 4px;
  height: 40px;
  border-radius: var(--radius-pill);
  background: var(--glow-blue-a12);
  overflow: hidden;
}
.wa-depth-gauge::after {
  content: '';
  position: absolute;
  inset: 0;
  transform: scaleY(var(--dive, 0));
  transform-origin: top;
  background: linear-gradient(180deg, var(--glow-teal), var(--glow-blue));
  border-radius: inherit;
}
.wa-depth-text {
  display: flex;
  flex-direction: column;
  line-height: 1.2;
}
.wa-depth-kicker {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.18em;
  color: var(--text-dim);
}
.wa-depth-value {
  font-family: var(--font-serif), var(--font-round);
  font-size: 22px;
  color: var(--text-strong);
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.02em;
}
.wa-depth-value small {
  margin-left: 2px;
  font-family: var(--font-round);
  font-size: 12px;
  color: var(--text-muted);
}
.wa-depth-zone {
  font-size: 11px;
  font-weight: 700;
  color: var(--glow-blue);
  letter-spacing: 0.06em;
}
/* 3,000m に着いたら光る */
.wa-depth.is-arrived {
  border-color: var(--glow-blue-a30);
  box-shadow: var(--shadow-card), 0 0 24px var(--glow-blue-a20);
}
.wa-depth.is-arrived .wa-depth-zone {
  color: var(--glow-teal);
}

/* スマホは下部のメニューバーの上に小さく出す */
@media screen and (max-width: 834px) {
  .wa-depth {
    left: 12px;
    bottom: 68px;
    gap: 10px;
    padding: 8px 12px 8px 10px;
  }
  .wa-depth-gauge { height: 30px; }
  .wa-depth-value { font-size: 18px; }
  .wa-depth-kicker { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  body.single::after,
  body.page::after { animation: none; }
}
