/* ============ 深海 · 原创中文长页样式 ============ */
:root{
  --ink:#e8f6ff;
  --ink-dim:rgba(232,246,255,.66);
  --ink-faint:rgba(232,246,255,.4);
  --accent:#7fe3ff;
  --amber:#ffcf8a;
  --steel:#cfe0ea;
  --card-bg:rgba(6,26,44,.55);
  --card-br:rgba(150,220,255,.22);
  --serif:"Noto Serif SC","Songti SC",serif;
  --sans:"PingFang SC","Microsoft YaHei","Noto Sans SC",system-ui,-apple-system,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:auto}
body{
  margin:0;font-family:var(--sans);color:var(--ink);
  background:#01060c;overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
#bg-hint{/* depth colour is painted on body by JS */}

/* ---------- 视差层 ---------- */
#fx,#light-overlay{position:fixed;inset:0;width:100%;height:100%;pointer-events:none}
#fx{z-index:2}
#light-overlay{z-index:3;background:
  radial-gradient(120% 60% at 50% -10%,rgba(255,255,255,.32),rgba(255,255,255,0) 60%),
  linear-gradient(180deg,rgba(180,240,255,.10),rgba(0,0,0,0) 45%);
  transition:none}
#world{position:fixed;top:0;left:0;width:100%;z-index:4;will-change:transform}
#spacer{pointer-events:none}

/* ---------- 海面 ---------- */
#surface{position:absolute;top:0;left:0;width:100%;height:120px;overflow:hidden;color:#bfeeff}
#surface svg{display:block}
#wave1{fill:rgba(198,242,255,.55);animation:sway 11s ease-in-out infinite}
#wave2{fill:rgba(150,215,240,.32);animation:sway 17s ease-in-out infinite reverse}
@keyframes sway{0%,100%{transform:translateX(0)}50%{transform:translateX(-90px)}}

/* ---------- 中轴与深度刻度 ---------- */
#axis{position:absolute;top:0;left:50%;width:1px;height:100%;
  background:linear-gradient(180deg,rgba(160,225,255,.35),rgba(160,225,255,.08) 30%,rgba(160,225,255,.05));
  transform:translateX(-.5px)}
.marks .tick{position:absolute;left:50%;transform:translate(-50%,-50%);
  display:flex;align-items:center;gap:10px;pointer-events:none}
.marks .tick i{display:block;width:46px;height:1px;background:rgba(160,225,255,.3)}
.marks .tick span{font:600 11px/1 var(--sans);letter-spacing:.14em;color:var(--ink-faint);
  font-variant-numeric:tabular-nums;white-space:nowrap}
.marks .tick.big span{color:rgba(160,225,255,.75);font-size:12px}
.marks .zone-band{position:absolute;left:50%;transform:translateX(-50%);
  writing-mode:vertical-rl;font:700 12px/1 var(--sans);letter-spacing:.5em;
  color:rgba(160,225,255,.35);pointer-events:none;white-space:nowrap}

/* ---------- 条目：大图 + 说明卡 ---------- */
.entry{position:absolute;width:min(400px,42vw);display:flex;flex-direction:column;gap:10px;
  opacity:0;transform:translateY(20px);
  transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1);will-change:transform,opacity}
.entry.in{opacity:1;transform:none}
.entry.side-left{right:calc(50% + 62px);align-items:flex-end;text-align:right}
.entry.side-right{left:calc(50% + 62px);align-items:flex-start;text-align:left}
.entry .art{flex:none;display:grid;place-items:center;max-width:100%;
  filter:drop-shadow(0 8px 22px rgba(0,0,0,.5))}
.entry .art svg{width:100%;height:100%;display:block;overflow:visible}
.entry .art .bob{animation:bob 6.5s ease-in-out infinite}
@keyframes bob{0%,100%{transform:translateY(-4px)}50%{transform:translateY(5px)}}
.entry .body{max-width:100%}
.entry .card{display:inline-block;max-width:100%;text-align:inherit;
  background:linear-gradient(180deg,rgba(7,28,48,.62),rgba(3,14,26,.55));
  border:1px solid rgba(150,220,255,.16);border-radius:16px;padding:14px 18px 15px;
  backdrop-filter:blur(7px)}
.entry h3{margin:0;font:700 22px/1.35 var(--serif);letter-spacing:.03em}
.entry .lat{margin:3px 0 9px;font:400 12.5px/1 var(--sans);letter-spacing:.05em;
  color:var(--ink-faint);font-style:italic}
.entry p{margin:0;font-size:15px;line-height:1.85;color:rgba(232,246,255,.84)}
.entry .range{margin-top:11px;display:inline-flex;align-items:center;gap:7px;
  font:600 12px/1 var(--sans);letter-spacing:.08em;color:var(--accent);
  padding:6px 11px;border:1px solid rgba(127,227,255,.28);border-radius:999px;
  background:rgba(127,227,255,.07);font-variant-numeric:tabular-nums}
.entry .range .dot{width:5px;height:5px;border-radius:50%;background:currentColor;
  box-shadow:0 0 8px currentColor}
.entry.kind-note{width:min(380px,40vw)}
.entry.kind-note .card{border-left:3px solid var(--accent);border-radius:6px 16px 16px 6px;
  background:linear-gradient(180deg,rgba(10,36,60,.8),rgba(5,20,38,.68))}
.entry.side-left.kind-note .card{border-left:0;border-right:3px solid var(--accent);border-radius:16px 6px 6px 16px}
.entry.kind-note h3{font-size:19px;color:#cfefff}
/* 深度里程碑类注释：插画退为背景图形，避免与正文争视觉 */
.entry.kind-note:not(.env) .art{opacity:.42;max-width:170px;
  filter:drop-shadow(0 0 22px rgba(140,200,240,.28))}
.entry.env .art{filter:drop-shadow(0 0 16px rgba(255,150,180,.45))}
.entry.kind-wreck{--accent2:var(--steel)}
.entry.kind-wreck .art{color:#8fa7b6}
.entry.kind-wreck .range{color:var(--steel);border-color:rgba(207,224,234,.3);background:rgba(207,224,234,.07)}
.entry.kind-vehicle .art{color:#e8c98a}
.entry.kind-vehicle .range{color:var(--amber);border-color:rgba(255,207,138,.3);background:rgba(255,207,138,.08)}
.entry.kind-place .art{color:#a9d7c9}
.entry.kind-place .range{color:#8fd8c0;border-color:rgba(143,216,192,.28);background:rgba(143,216,192,.07)}
.entry.env .art{color:#ffb3c7}
.entry.env .range{color:#ff9fb8;border-color:rgba(255,159,184,.3);background:rgba(255,159,184,.08)}

/* 生物发光 */
.entry .glow{filter:drop-shadow(0 8px 22px rgba(0,0,0,.5)) drop-shadow(0 0 14px rgba(120,255,240,.45))}
.entry.in .glow-dot{animation:blink 3.4s ease-in-out infinite}
@keyframes blink{0%,100%{opacity:.35}50%{opacity:1}}

/* ---------- 首屏 / 终点 ---------- */
.hero{position:absolute;left:0;top:0;width:100%;padding:92px 6vw 0;text-align:center;z-index:5}
.hero h1{margin:0;font:800 clamp(44px,9vw,110px)/1 var(--serif);letter-spacing:.14em;
  color:#083049;text-shadow:0 2px 0 rgba(255,255,255,.35)}
.hero .sub{margin:18px auto 0;max-width:620px;font-size:15px;line-height:1.9;color:#0a3a56}
.hero .cta{margin-top:26px;display:inline-flex;flex-direction:column;align-items:center;gap:8px;
  background:none;border:0;cursor:pointer;color:#0a3a56;font:600 13px/1 var(--sans);letter-spacing:.2em}
.hero .cta i{display:block;width:1px;height:44px;background:linear-gradient(#0a3a56,rgba(10,58,86,0));
  animation:dive 2.2s ease-in-out infinite}
@keyframes dive{0%{transform:translateY(-6px);opacity:.2}50%{opacity:1}100%{transform:translateY(10px);opacity:.2}}
.hero.hide{opacity:0;pointer-events:none;transition:opacity .5s}

.terminus{position:absolute;left:0;width:100%;text-align:center;padding-bottom:12vh}
.terminus .floor{width:100%;height:110px;background:
  radial-gradient(60% 100% at 50% 100%,rgba(90,120,140,.35),rgba(0,0,0,0) 70%)}
.terminus h2{margin:0;font:800 clamp(26px,4vw,44px)/1.2 var(--serif);letter-spacing:.1em;color:#dff3ff}
.terminus .kicker{font:600 12px/1 var(--sans);letter-spacing:.34em;color:var(--amber);margin-bottom:14px}
.terminus .stats{margin:28px auto 0;display:grid;gap:1px;grid-template-columns:repeat(4,minmax(0,1fr));
  max-width:820px;background:rgba(150,220,255,.16);border:1px solid rgba(150,220,255,.16)}
.terminus .stats div{background:rgba(2,10,18,.75);padding:16px 8px}
.terminus .stats b{display:block;font:700 22px/1.2 var(--serif);color:#dff3ff;font-variant-numeric:tabular-nums}
.terminus .stats span{font-size:11px;letter-spacing:.14em;color:var(--ink-faint)}
.terminus p.lead{max-width:640px;margin:26px auto 0;font-size:14px;line-height:1.95;color:var(--ink-dim)}
.terminus .again{margin-top:30px;padding:13px 30px;border-radius:999px;cursor:pointer;
  background:transparent;border:1px solid rgba(223,243,255,.4);color:#dff3ff;
  font:600 13px/1 var(--sans);letter-spacing:.2em;transition:.25s}
.terminus .again:hover{background:#dff3ff;color:#04121c;border-color:#dff3ff}
.terminus .credit{margin-top:46px;font-size:11.5px;line-height:1.9;color:rgba(232,246,255,.34)}

/* ---------- 深度计 ---------- */
#gauge{position:fixed;right:26px;top:50%;transform:translateY(-50%);z-index:6;
  width:132px;display:flex;flex-direction:column;align-items:center;gap:12px;
  padding:16px 12px;border-radius:16px;
  background:linear-gradient(180deg,rgba(4,20,36,.5),rgba(2,10,20,.62));
  border:1px solid rgba(150,220,255,.14);backdrop-filter:blur(10px);
  transition:background .6s,border-color .6s}
#gauge .depth-num{display:flex;align-items:baseline;gap:4px;justify-content:center}
#gauge .depth-num #depth{font:800 30px/1 var(--serif);font-variant-numeric:tabular-nums;letter-spacing:.02em}
#gauge .depth-num i{font-style:normal;font-size:12px;color:var(--ink-faint)}
#gauge .zone{margin-top:6px;font-size:11px;letter-spacing:.24em;color:var(--accent);text-align:center}
.g-ruler{position:relative;width:100%;height:38vh;min-height:180px}
.g-line{position:absolute;left:50%;top:0;bottom:0;width:1px;background:rgba(150,220,255,.25)}
.g-ticks .t{position:absolute;left:0;right:0;transform:translateY(-50%);
  display:flex;align-items:center;justify-content:space-between;cursor:pointer;color:var(--ink-faint)}
.g-ticks .t:hover{color:var(--accent)}
.g-ticks .t s{display:block;width:9px;height:1px;background:currentColor;text-decoration:none}
.g-ticks .t em{font-style:normal;font-size:9.5px;letter-spacing:.06em;font-variant-numeric:tabular-nums;
  order:-1;padding-right:10px}
.g-ticks .t span{width:9px}
#g-sub{position:absolute;left:50%;transform:translate(-50%,-50%);color:var(--amber);
  transition:top .12s linear}
.g-readouts{display:grid;gap:7px;width:100%;border-top:1px solid rgba(150,220,255,.12);padding-top:11px}
.g-readouts div{display:flex;justify-content:space-between;align-items:baseline;gap:6px}
.g-readouts b{font:700 14px/1 var(--sans);font-variant-numeric:tabular-nums;color:#dff3ff}
.g-readouts span{font-size:10px;letter-spacing:.08em;color:var(--ink-faint)}
.g-zones{display:grid;gap:5px;width:100%}
.g-zones button{display:flex;justify-content:space-between;gap:6px;width:100%;cursor:pointer;
  background:none;border:0;border-left:2px solid rgba(150,220,255,.18);padding:3px 0 3px 8px;
  color:var(--ink-faint);font:500 10.5px/1.3 var(--sans);letter-spacing:.06em;text-align:left;transition:.2s}
.g-zones button:hover{color:var(--ink)}
.g-zones button.on{color:#dff3ff;border-left-color:var(--accent)}
.g-zones button em{font-style:normal;opacity:.55;font-variant-numeric:tabular-nums}

/* ---------- 工具条 ---------- */
#toolbar{position:fixed;top:0;left:0;right:0;z-index:7;display:flex;
  justify-content:space-between;align-items:center;padding:16px 26px;pointer-events:none;
  transition:color .5s}
#toolbar .brand{font:800 17px/1 var(--serif);letter-spacing:.3em;pointer-events:auto}
#toolbar .brand span{display:block;margin-top:5px;font:500 9.5px/1 var(--sans);letter-spacing:.18em;opacity:.6}
#toolbar .tools{display:flex;gap:8px;pointer-events:auto}
#toolbar button{cursor:pointer;background:rgba(4,20,36,.45);border:1px solid rgba(150,220,255,.22);
  color:var(--ink);border-radius:999px;padding:8px 14px;font:600 11px/1 var(--sans);letter-spacing:.14em;
  backdrop-filter:blur(8px);transition:.2s}
#toolbar button:hover{background:rgba(150,220,255,.16)}
#toolbar button[aria-pressed="true"]{background:#dff3ff;color:#04121c;border-color:#dff3ff}
/* 浅水时文字转深，保证对比度 */
body.shallow #toolbar{color:#083049}
body.shallow #toolbar button{color:#083049;border-color:rgba(8,48,73,.3);background:rgba(255,255,255,.35)}
body.shallow #toolbar button:hover{background:#fff}
body.shallow #toolbar button[aria-pressed="true"]{background:#083049;color:#eaf7ff;border-color:#083049}
/* 浅水时条目转深 */
body.shallow .entry h3{color:#083049}
body.shallow .entry p{color:#0b3e5c}
body.shallow .entry .lat{color:rgba(8,48,73,.58)}
body.shallow .entry .range{color:#0a5680;border-color:rgba(8,86,128,.32);background:rgba(255,255,255,.42)}
body.shallow .entry .art{filter:brightness(.98) saturate(1.18) drop-shadow(0 8px 18px rgba(20,90,130,.28))}
body.shallow .entry .card{background:rgba(255,255,255,.6);border-color:rgba(8,60,95,.14)}
body.shallow .entry.kind-note .card{background:rgba(255,255,255,.7)}
body.shallow .entry .range{color:#0a5680}
body.shallow .marks .tick span,body.shallow .marks .zone-band{color:rgba(8,60,95,.5)}
body.shallow .marks .tick i{background:rgba(8,60,95,.28)}
body.shallow .axis{background:linear-gradient(180deg,rgba(8,60,95,.35),rgba(8,60,95,.12))}
body.shallow #gauge{background:linear-gradient(180deg,rgba(255,255,255,.55),rgba(206,238,250,.6));
  border-color:rgba(8,60,90,.18)}
body.shallow #gauge #depth,body.shallow #gauge .g-readouts b{color:#083049}
body.shallow #gauge .g-readouts span,body.shallow #gauge .zone{color:#0a5680}
body.shallow #gauge .g-line{background:rgba(8,60,90,.3)}
body.shallow #gauge .g-ticks .t{color:rgba(8,48,73,.6)}
body.shallow #gauge .g-zones button{color:rgba(8,48,73,.6);border-left-color:rgba(8,60,90,.22)}
body.shallow #gauge .g-zones button.on{color:#083049}
body.shallow #g-sub{color:#8a5a12}

#toast{position:fixed;left:50%;bottom:30px;transform:translate(-50%,20px);z-index:9;
  background:rgba(4,20,36,.9);border:1px solid rgba(150,220,255,.25);color:var(--ink);
  padding:11px 18px;border-radius:12px;font-size:12.5px;letter-spacing:.06em;
  opacity:0;pointer-events:none;transition:.35s}
#toast.show{opacity:1;transform:translate(-50%,0)}

/* ---------- 响应式 ---------- */
@media (max-width:900px){
  #gauge{right:12px;width:104px;padding:12px 8px;transform:translateY(-50%) scale(.94);transform-origin:right center}
  .entry{width:min(330px,52vw)}
  .entry.side-left{right:calc(50% + 40px)}
  .entry.side-right{left:calc(50% + 40px)}
}
@media (max-width:680px){
  #gauge{right:auto;left:50%;top:auto;bottom:10px;transform:translateX(-50%);
    width:min(94vw,420px);flex-direction:row;align-items:center;gap:12px;border-radius:14px}
  #gauge .g-top{flex:0 0 84px;text-align:left}
  #gauge .depth-num #depth{font-size:22px}
  #gauge .zone{font-size:9.5px;letter-spacing:.14em;text-align:left}
  .g-ruler{flex:1;height:2px;min-height:0;align-self:center;background:rgba(150,220,255,.22);width:auto}
  .g-line{display:none}
  .g-ticks .t{display:none}
  #g-sub{top:50%;transform:translate(-50%,-50%)}
  .g-readouts{grid-template-columns:1fr;flex:0 0 auto;border:0;padding:0;gap:2px}
  .g-readouts div{justify-content:flex-end;gap:4px}
  .g-readouts b{font-size:11px}
  .g-readouts span{font-size:9px}
  .g-zones{display:none}
  #toolbar{padding:12px 14px}
  #toolbar .brand{letter-spacing:.2em;font-size:15px}
  #toolbar .brand span{display:none}
  .entry{width:min(86vw,420px)!important;left:7vw!important;right:auto!important;
    transform:translateY(14px)}
  .entry.in{transform:none}
  .entry.side-left{align-items:flex-start;text-align:left}
  #axis,.marks{display:none}
  .hero{padding-top:76px}
  .terminus .stats{grid-template-columns:repeat(2,1fr)}
  body{padding-bottom:78px}
}
@media (prefers-reduced-motion:reduce){
  *{animation-duration:.001s!important;animation-iteration-count:1!important}
  .entry{transition-duration:.001s}
}
