/* TackleSonar R71 adjustment on top of the isolated R70 homepage sonar system.
   Goals:
   - keep the approved size/placement
   - reduce ring count
   - make only the nearest ring pulse
   - start the wave timeline when the wave is actually visible in Safari
   - show soft shadow silhouettes before the wave fully clears
*/

.home-hero-r70{position:relative!important;overflow:hidden!important;isolation:isolate!important;--r70-sweep-angle:0deg;background:radial-gradient(circle at 76% 48%,rgba(16,181,235,.12),transparent 28%),linear-gradient(112deg,#052958 0%,#073f78 62%,#075b91 100%)!important}
.home-hero-r70 .hero-inner{position:relative!important;min-height:590px!important;overflow:visible!important;display:grid!important;grid-template-columns:minmax(0,1.08fr) minmax(470px,.92fr)!important;gap:38px!important;align-items:center!important}
.home-hero-r70 .hero-copy{position:relative!important;z-index:8!important}
@media (min-width:821px){.home-hero-r70 .hero-actions{justify-content:flex-start!important;text-align:left!important;margin-left:0!important}}

/* Wave reveal */
.ts-wave-layer-r70{
  position:absolute!important;
  inset:0!important;
  z-index:30!important;
  overflow:hidden!important;
  pointer-events:none!important;
  background:transparent!important;
  opacity:1!important;
  visibility:visible!important;
}
.ts-wave-media-r70{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center bottom!important;
  display:block!important;
  background:transparent!important;
  opacity:1!important;
  transform:none!important;
  filter:none!important;
}
.home-hero-r70.r70-wave-done .ts-wave-layer-r70{display:none!important}

/* One approved sonar coordinate system */
.ts-sonar-zone-r70{
  position:absolute!important;
  z-index:6!important;
  left:76.5%!important;
  top:47.5%!important;
  width:640px!important;
  height:640px!important;
  transform:translate(-50%,-50%)!important;
  pointer-events:none!important;
  isolation:isolate!important;
}
/* Under-wave shadow hint so the visitor feels something is being washed clean. */
.ts-sonar-zone-r70::after{
  content:"";
  position:absolute;
  left:50%;top:50%;
  width:330px;height:330px;
  transform:translate(-50%,-50%);
  border-radius:50%;
  background:radial-gradient(circle,rgba(0,9,24,.76) 0 30%,rgba(0,9,24,.56) 31% 47%,rgba(0,9,24,.30) 48% 61%,transparent 74%);
  filter:blur(9px);
  opacity:.86;
  transition:opacity .42s ease;
}
.home-hero-r70.r70-wash-reveal .ts-sonar-zone-r70::after{opacity:.24}
.home-hero-r70.r70-sonar-live .ts-sonar-zone-r70::after{opacity:0}
.ts-sonar-zone-r70::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:50%;
  background:radial-gradient(circle,rgba(45,216,250,.15) 0 16%,rgba(33,184,231,.065) 34%,rgba(8,110,163,.022) 58%,transparent 73%);
  filter:drop-shadow(0 0 42px rgba(49,219,255,.17));
  opacity:0;
  transition:opacity .4s ease .32s;
}
.ts-sonar-dial-r70{
  position:absolute!important;
  inset:15px!important;
  border-radius:50%!important;
  border:1px solid rgba(95,222,255,.28)!important;
  background:radial-gradient(circle,rgba(31,208,244,.07),transparent 69%)!important;
  box-shadow:0 0 0 38px rgba(64,214,249,.022),0 0 0 82px rgba(64,214,249,.012),inset 0 0 55px rgba(50,204,244,.055)!important;
  opacity:0;
  transition:opacity .42s ease .32s;
}
/* Three calm rings only. No repeating dozens of rings. */
.ts-sonar-rings-r70{
  position:absolute!important;
  inset:28px!important;
  border-radius:50%!important;
  border:0!important;
  background:radial-gradient(circle at 50% 50%,
    transparent 0 60%,
    rgba(113,226,251,.15) 60.2% 60.55%,
    transparent 60.8% 73.2%,
    rgba(113,226,251,.11) 73.4% 73.75%,
    transparent 74% 86.2%,
    rgba(113,226,251,.075) 86.4% 86.72%,
    transparent 87% 100%)!important;
  filter:drop-shadow(0 0 14px rgba(44,216,252,.065))!important;
  opacity:0;
}
/* single pulsing ring closest to the logo */
.ts-sonar-pulse-r70{
  position:absolute!important;
  left:50%!important;
  top:50%!important;
  width:390px!important;
  height:390px!important;
  transform:translate(-50%,-50%) scale(.82)!important;
  border-radius:50%!important;
  border:2px solid rgba(98,235,255,.58)!important;
  background:transparent!important;
  box-shadow:0 0 24px rgba(64,224,252,.12)!important;
  opacity:0;
}
.ts-sonar-sweep-r70{
  position:absolute!important;
  inset:54px!important;
  border-radius:50%!important;
  clip-path:circle(50% at 50% 50%)!important;
  overflow:hidden!important;
  opacity:0;
  transition:opacity .34s ease .46s;
}
.ts-sonar-sweep-r70::before{
  content:"";
  position:absolute;
  inset:-8%;
  border-radius:50%;
  transform-origin:50% 50%;
  transform:rotate(var(--r70-sweep-angle,0deg));
  background:conic-gradient(from -90deg at 50% 50%,rgba(247,255,255,.98) 0deg,rgba(171,247,255,.88) 4deg,rgba(108,232,255,.47) 18deg,rgba(60,204,245,.16) 38deg,rgba(37,178,233,.045) 56deg,transparent 72deg 360deg);
  filter:drop-shadow(0 0 18px rgba(109,238,255,.24));
  will-change:transform;
}
.ts-sonar-sweep-r70::after{
  content:"";
  position:absolute;
  left:50%;top:50%;
  width:68px;height:68px;
  transform:translate(-50%,-50%);
  border-radius:50%;
  background:radial-gradient(circle,rgba(229,254,255,.72),rgba(76,223,250,.15) 45%,transparent 72%);
  box-shadow:0 0 26px rgba(82,229,255,.20);
}
.ts-sonar-logo-r70{
  position:absolute!important;
  left:50%!important;
  top:50%!important;
  width:310px!important;
  height:310px!important;
  transform:translate(-50%,-50%) scale(.90)!important;
  display:grid!important;
  place-items:center!important;
  opacity:0;
  z-index:7!important;
  will-change:opacity,transform,filter;
}
.ts-sonar-logo-r70::before{
  content:"";
  position:absolute;
  inset:11%;
  border-radius:50%;
  background:radial-gradient(circle,rgba(2,16,33,.56) 0 34%,rgba(2,16,33,.28) 35% 54%,transparent 70%);
  filter:blur(7px);
  opacity:.5;
  transition:opacity .4s ease;
}
.home-hero-r70.r70-wash-reveal .ts-sonar-logo-r70::before{opacity:.18}
.home-hero-r70.r70-sonar-live .ts-sonar-logo-r70::before{opacity:0}
.ts-sonar-logo-r70::after{
  content:"";
  position:absolute;
  inset:-8%;
  z-index:-1;
  border-radius:50%;
  border:1px solid rgba(84,225,255,.30);
  background:radial-gradient(circle,rgba(76,224,253,.055),transparent 70%);
  box-shadow:0 0 0 13px rgba(69,220,250,.022);
  opacity:.68;
}
.ts-sonar-logo-r70 img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  filter:drop-shadow(0 19px 32px rgba(0,17,40,.34)) drop-shadow(0 0 22px rgba(34,211,248,.14))!important;
}

/* Sequence */
.home-hero-r70.r70-wash-reveal .ts-sonar-dial-r70{opacity:.18}
.home-hero-r70.r70-wash-reveal .ts-sonar-rings-r70{opacity:.16}
.home-hero-r70.r70-logo-reveal .ts-sonar-logo-r70{animation:r70LogoReveal 1.35s cubic-bezier(.18,.84,.22,1) both}
.home-hero-r70.r70-sonar-live .ts-sonar-zone-r70::before,
.home-hero-r70.r70-sonar-live .ts-sonar-dial-r70{opacity:.66}
.home-hero-r70.r70-sonar-live .ts-sonar-rings-r70{animation:r70RingsIn .42s ease-out both}
.home-hero-r70.r70-sonar-live .ts-sonar-pulse-r70{animation:r70PulseIn .42s ease-out both,r70CorePulse 2.65s .28s ease-in-out infinite}
.home-hero-r70.r70-sonar-live .ts-sonar-sweep-r70{opacity:.98}

@keyframes r70LogoReveal{
  0%{opacity:0;transform:translate(-50%,-50%) scale(.80);filter:blur(7px)}
  60%{opacity:1;transform:translate(-50%,-50%) scale(1.035);filter:blur(0)}
  100%{opacity:1;transform:translate(-50%,-50%) scale(1);filter:blur(0)}
}
@keyframes r70RingsIn{from{opacity:0}to{opacity:.84}}
@keyframes r70PulseIn{from{opacity:0}to{opacity:.52}}
@keyframes r70CorePulse{0%,100%{opacity:.18;transform:translate(-50%,-50%) scale(.82)}50%{opacity:.78;transform:translate(-50%,-50%) scale(1.08)}}

.ts-market-live-card-r70{
  position:absolute!important;
  z-index:9!important;
  left:69.5%!important;
  bottom:24px!important;
  transform:translateX(-50%) translateY(8px)!important;
  display:flex!important;
  align-items:center!important;
  gap:11px!important;
  border:1px solid rgba(85,217,255,.22)!important;
  background:rgba(2,22,47,.92)!important;
  color:#fff!important;
  border-radius:17px!important;
  padding:13px 16px!important;
  box-shadow:0 18px 44px rgba(0,15,35,.28)!important;
  backdrop-filter:blur(10px)!important;
  opacity:0;
  transition:opacity .38s ease .62s,transform .38s ease .62s;
  white-space:nowrap!important;
}
.ts-market-live-card-r70>div{display:grid!important}
.ts-market-live-card-r70 strong{color:#fff!important}
.ts-market-live-card-r70 small{color:#9bb9d4!important}
.home-hero-r70.r70-sonar-live .ts-market-live-card-r70{opacity:1;transform:translateX(-50%) translateY(0)!important}

@media (min-width:821px) and (max-width:1120px){
  .ts-sonar-zone-r70{left:75%!important;top:49%!important;width:545px!important;height:545px!important}
  .ts-sonar-dial-r70{inset:12px!important}
  .ts-sonar-rings-r70,.ts-sonar-sweep-r70{inset:46px!important}
  .ts-sonar-pulse-r70{width:340px!important;height:340px!important}
  .ts-sonar-logo-r70{width:262px!important;height:262px!important}
  .ts-market-live-card-r70{left:70%!important;bottom:18px!important}
}

@media (max-width:820px){
  .home-hero-r70 .hero-inner{min-height:auto!important;grid-template-columns:1fr!important;gap:10px!important}
  .ts-sonar-zone-r70{
    position:relative!important;
    left:auto!important;top:auto!important;
    width:min(410px,100%)!important;
    height:auto!important;
    aspect-ratio:1!important;
    transform:none!important;
    margin:0 auto 42px!important;
    justify-self:center!important;
  }
  .ts-sonar-zone-r70::after{width:52%!important;height:52%!important}
  .ts-sonar-dial-r70{inset:10px!important}
  .ts-sonar-rings-r70,.ts-sonar-sweep-r70{inset:36px!important}
  .ts-sonar-pulse-r70{width:62%!important;height:62%!important}
  .ts-sonar-logo-r70{width:49%!important;height:49%!important}
  .ts-market-live-card-r70{
    position:absolute!important;
    left:50%!important;
    bottom:12px!important;
    width:min(310px,calc(100% - 28px))!important;
    white-space:normal!important;
  }
  .ts-wave-media-r70{object-position:center bottom!important}
}
@media (max-width:520px){
  .ts-sonar-zone-r70{width:min(340px,100%)!important;height:auto!important;aspect-ratio:1!important;margin-bottom:50px!important}
  .ts-sonar-dial-r70{inset:8px!important}
  .ts-sonar-rings-r70,.ts-sonar-sweep-r70{inset:28px!important}
}

@media (prefers-reduced-motion:reduce){
  .ts-wave-layer-r70{display:none!important}
  .ts-sonar-zone-r70::after,.ts-sonar-logo-r70::before{opacity:0!important}
  .ts-sonar-logo-r70{opacity:1!important;transform:translate(-50%,-50%) scale(1)!important;animation:none!important;filter:none!important}
  .ts-sonar-zone-r70::before,.ts-sonar-dial-r70{opacity:.66!important}
  .ts-sonar-rings-r70{opacity:.84!important;animation:none!important}
  .ts-sonar-pulse-r70{opacity:.52!important;animation:none!important}
  .ts-sonar-sweep-r70{opacity:.55!important;animation:none!important}
  .ts-market-live-card-r70{opacity:1!important;transform:translateX(-50%)!important;transition:none!important}
}

/* R77: restore the clean pre-R75 wave placement.
   Keep the R75 fast/deep asset and immediate-start JS, but do NOT stretch or
   shift the wave left. The natural centered asset composition is the approved
   position and avoids the exposed right-edge gap. */
.ts-wave-media-r70{
  left:0!important;
  right:0!important;
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center bottom!important;
  transform:none!important;
  filter:saturate(1.08) contrast(1.08) brightness(.93)!important;
}
@media(max-width:820px){
  .ts-wave-media-r70{
    left:0!important;
    right:0!important;
    width:100%!important;
    object-position:center bottom!important;
  }
}
