/* Approved abstract contour reference: two edge clusters, open black water.
   SVG paths are unfilled and editable. No extra rendering loop or bitmap. */
.seabed-sketch{position:absolute;inset:0;z-index:3;pointer-events:none;overflow:hidden}
.seabed-edge{position:absolute;bottom:0;width:min(34vw,610px);height:auto;overflow:visible;fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.05;opacity:.83}
.seabed-edge--left{left:0}
.seabed-edge--right{right:0}
.seabed-edge path{fill:none;vector-effect:non-scaling-stroke}
.contour-kelp,.contour-shell,.contour-ground{stroke:url(#contour-blue)}
.contour-kelp--violet,.contour-kelp--short,.contour-coral,.contour-conch{stroke:url(#contour-violet)}
.contour-coral{stroke-width:1.12}
.contour-ground{opacity:.65}
.contour-fine{opacity:.5;stroke-width:.8}
.contour-kelp{transform-box:fill-box;transform-origin:50% 100%;animation:contour-sway 9s ease-in-out infinite alternate}
.contour-kelp--violet{animation-duration:12s;animation-delay:-4s}
.contour-kelp--short{animation-duration:10s;animation-delay:-7s}
.seabed-edge--right .contour-kelp{animation-delay:-5s}
.seabed-edge--right .contour-kelp--violet{animation-delay:-8s}
@keyframes contour-sway{from{transform:rotate(-1deg) skewX(-.5deg)}to{transform:rotate(1.3deg) skewX(.6deg)}}
body.scene-inspect .seabed-sketch{visibility:hidden}
@media(max-width:1100px){.seabed-edge{width:32vw;opacity:.73}}
@media(max-width:800px){.seabed-edge{width:30vw;min-width:150px;opacity:.72}}
@media(max-width:480px){.seabed-edge{width:44vw;min-width:0;opacity:.66}.seabed-edge--left{left:-18px}.seabed-edge--right{right:-18px}}
/* The existing page toggle explicitly opts into motion; otherwise honor the OS. */
@media(prefers-reduced-motion:reduce){body:not(.motion-enabled) .contour-kelp{animation:none}}
