/* Shared abstract coastal signature. Decorative only; never intercepts input. */
.gcv-waves{position:relative;display:block;width:100%;height:140px;overflow:hidden;pointer-events:none;isolation:isolate;background:linear-gradient(180deg,#071a35,#102e55 60%,#071a35);border-top:1px solid #8dcfff20;border-bottom:1px solid #8dcfff20;margin:0;}
.gcv-waves span{position:absolute;left:-240px;right:-240px;top:5px;height:120px;background:url('assets/wave-line.svg') repeat-x center / 1200px 120px;opacity:.65;animation:gcv-tide-arrive 4s ease-out both;}
.gcv-waves span:nth-child(2){top:22px;opacity:.35;background-position:220px center;animation-direction:reverse;}
.gcv-waves span:nth-child(3){top:40px;opacity:.2;background-position:440px center;}
.portfolio-page>.gcv-waves{border-radius:16px;margin-top:40px;}
.access-page>.gcv-waves{margin-top:60px;border-radius:12px;}
@keyframes gcv-tide-arrive{from{transform:translateX(-100px)}to{transform:translateX(0)}}
@media(max-width:600px){.gcv-waves{height:100px}.gcv-waves span{height:80px;background-size:700px 80px;top:0}.gcv-waves span:nth-child(2){top:14px}.gcv-waves span:nth-child(3){top:28px}}
@media(prefers-reduced-motion:reduce){.gcv-waves span{animation:none}}
@media print{.gcv-waves{display:none}}
