/* Havasu light and water: shared progressive decoration, with native scrolling. */
:root { --tbb-havasu-motion: 1; }
.tbb-water-host { position: relative; isolation: isolate; }
.tbb-water-art {
    position: absolute;
    inset: 0;
    overflow: hidden;
    border-radius: inherit;
    pointer-events: none;
    z-index: -1;
    color: #2a7d9b;
    opacity: .25;
    contain: strict;
}
.tbb-water-art svg {
    position: absolute;
    width: 116%;
    height: clamp(160px, 42%, 350px);
    left: -8%;
    bottom: -20px;
    stroke-width: 1;
    transform: translate3d(var(--water-x, 0px), var(--water-y, 0px), 0);
    transition: transform 600ms cubic-bezier(.2,.7,.3,1);
}
.tbb-water-art svg g {
    transform-origin: center;
    animation: tbb-lake-drift 18s ease-in-out infinite alternate;
    animation-play-state: paused;
}
.tbb-water-glint {
    position: absolute;
    width: 38%;
    aspect-ratio: 1;
    bottom: -60%;
    left: 12%;
    border-radius: 50%;
    background: radial-gradient(ellipse, #82d5e0 0, transparent 68%);
    opacity: .35;
    animation: tbb-lake-light 14s ease-in-out infinite alternate;
    animation-play-state: paused;
}
.tbb-water-glint--second { left: 65%; animation-delay: -7s; opacity: .18; }
.tbb-water-visible .tbb-water-art :is(g, .tbb-water-glint) { animation-play-state: running; }
.tbb-motion-paused .tbb-water-art :is(g, .tbb-water-glint) { animation-play-state: paused; }
:is(.csn-hero, .syb-hero, .tbb-footer__lead-band) > .tbb-water-art { color: #b2e3eb; opacity: .28; }
.tbb-motion-ready .tbb-motion-reveal {
    opacity: 0;
    transform: translate3d(0, 18px, 0);
    transition: opacity 650ms ease var(--reveal-delay, 0ms), transform 650ms cubic-bezier(.2,.7,.3,1) var(--reveal-delay, 0ms);
}
.tbb-motion-ready .tbb-motion-reveal.is-visible { opacity: 1; transform: none; }
@keyframes tbb-lake-drift { from { transform: translateX(-1.5%) scaleY(.94); } to { transform: translateX(1.5%) scaleY(1.06); } }
@keyframes tbb-lake-light { from { transform: translate3d(-8%,0,0) scale(.92); } to { transform: translate3d(8%,-10%,0) scale(1.08); } }
@media (hover: hover) and (pointer: fine) {
    .tbb-footer :is(.tbb-footer__social a, .tbb-footer__lead-btn) { transition: transform 180ms ease, box-shadow 180ms ease; }
    .tbb-footer :is(.tbb-footer__social a, .tbb-footer__lead-btn):hover { transform: translateY(-2px); }
}
@media (max-width: 767px) {
    .tbb-water-art { opacity: .15; }
    .tbb-water-glint { display: none; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto !important; }
    .tbb-water-art { display: none; }
    .tbb-motion-ready .tbb-motion-reveal,
    [data-reveal], [data-reveal-stagger] > * { opacity: 1 !important; transform: none !important; transition: none !important; animation: none !important; }
    .tbb-footer :is(.tbb-footer__social a, .tbb-footer__lead-btn) { transition: none; transform: none !important; }
}

/* Legacy reveal content also remains readable if scripting is unavailable. */
html:not(.tbb-motion-ready) [data-reveal],
html:not(.tbb-motion-ready) [data-reveal-stagger] > * { opacity: 1; transform: none; }
.hpv5 .hero > .tbb-water-art { z-index: 1; color: #d5eff3; opacity: .22; }
@media print {
    .tbb-water-art { display: none; }
    .tbb-motion-ready .tbb-motion-reveal, [data-reveal], [data-reveal-stagger] > * { opacity: 1 !important; transform: none !important; }
}
