/* Two layers: swimming canvas at 0, existing page content above it. */
body.zt-ocean-active { position: relative; isolation: isolate; }
.zt-sharks-canvas {
  position: fixed; inset: 0; width: 100%; height: 100%; z-index: 0;
  display: block; pointer-events: none; user-select: none;
  opacity: .38; font-family: Menlo, Consolas, monospace;
}
body.zt-ocean-active > main,
body.zt-ocean-active > footer { position: relative; z-index: 1; }
body.zt-ocean-active > header { position: relative; z-index: 30; }
/* Keep the nav text clear of shark glyphs; the header itself stays transparent. */
body.zt-ocean-active .cab-nav { background: rgba(10,14,21,.96); }
/* Content cards occlude passing sharks; whitespace remains the swimming area. */
.zt-ocean-active .exit {
  background-color: rgba(7,10,16,.94);
  padding-inline: 14px; padding-bottom: 16px;
}
.zt-ocean-active .brand-cn,
.zt-ocean-active .brand-en,
.zt-ocean-active .marquee-note,
.zt-ocean-active .controls,
.zt-ocean-active .section-title,
.zt-ocean-active .section-note,
.zt-ocean-active .foot-contact,
.zt-ocean-active .foot-legal { text-shadow: 0 2px 5px #070a10, 0 0 12px #070a10, 0 0 22px #070a10; }
.zt-ocean-active .controls { color: var(--fg-secondary); }
.zt-ocean-active .foot { padding-bottom: 80px; }
.zt-ocean-dock {
  position: fixed; right: max(18px, env(safe-area-inset-right));
  bottom: max(18px, env(safe-area-inset-bottom)); z-index: 500;
  font: 12px/1.5 ui-monospace, Menlo, 'PingFang SC', monospace;
  color: #cdd6e1; max-width: calc(100vw - 24px);
}
.zt-ocean-bar { display: flex; align-items: center; gap: 12px; padding: 9px 12px;
  background: rgba(10,14,21,.96); border: 1px solid #2a3444; box-shadow: 4px 4px 0 #0008; }
.zt-ocean-name { letter-spacing: .1em; }
.zt-ocean-indicator { width: 5px; height: 5px; background: #66758a; }
.zt-ocean-dock[data-running='true'] .zt-ocean-indicator { background: #7cc4ff; box-shadow: 0 0 8px #7cc4ff66; }
.zt-ocean-dock button, .zt-ocean-dock summary { color: #7cc4ff; cursor: pointer; font: inherit;
  background: none; border: 0; padding: 4px; }
.zt-ocean-dock button:hover, .zt-ocean-dock summary:hover { color: #fff; }
.zt-ocean-dock button:disabled { color: #8494a9; cursor: default; }
.zt-ocean-dock :focus-visible { outline: 2px solid #7cc4ff; outline-offset: 3px; }
.zt-ocean-settings summary { list-style: none; font-size: 17px; line-height: 1; }
.zt-ocean-settings summary::-webkit-details-marker { display: none; }
.zt-ocean-panel { position: absolute; right: 0; bottom: calc(100% + 10px); width: 246px;
  max-width: calc(100vw - 28px); padding: 18px; border: 1px solid #2a3444;
  background: #0a0e15; box-shadow: 4px 4px 0 #0008; }
.zt-ocean-panel p { color: #e4e9f0; margin: 0 0 18px; }
.zt-ocean-panel label { display: block; margin: 12px 0; }
.zt-ocean-panel output { float: right; color: #7cc4ff; }
.zt-ocean-panel input { width: 100%; display: block; margin: 10px 0; accent-color: #7cc4ff; cursor: pointer; }
.zt-ocean-panel small { display: block; padding-top: 8px; color: #8494a9; font-size: 11px; line-height: 1.8; }
@media (max-width: 640px) {
  .zt-sharks-canvas { opacity: .3; }
  .zt-ocean-dock { right: 12px; bottom: max(12px, env(safe-area-inset-bottom)); }
  .zt-ocean-bar { gap: 8px; padding: 6px 10px; }
  .zt-ocean-dock button, .zt-ocean-settings summary { min-height: 32px; display: flex; align-items: center; }
}
