/* ═══════════════════════════════════════
   SLIDE 07 — Market opportunity (TAM rings)
═══════════════════════════════════════ */
.slide[data-index="6"]{
  --tam-bg:#000d2c;
  --tam-color-tam:#0052f5;
  --tam-color-sam:#00b8a8;
  --tam-color-som:#00dff4;
  --tam-speed-outer:3.4s;
  --tam-speed-mid:2.4s;
  --tam-speed-inner:4.2s;
  background:var(--tam-bg);
  color:#f4f7fc;
}

.slide[data-index="6"] .slide-header{
  z-index:20;
}
.slide[data-index="6"] .slide-counter{
  color:rgba(255,255,255,0.42);
}


.s7-tam{
  display:flex;
  flex-direction:column;
  height:calc(100% - 48px);
  padding:0 32px 24px 40px;
  gap:12px;
  min-height:0;
  position:relative;
  z-index:2;
}

.s7-tam::before{
  content:"";
  position:absolute;
  inset:8% 10% 12%;
  background:
    radial-gradient(ellipse 50% 45% at 50% 52%,rgba(0,82,245,0.22),transparent 70%),
    radial-gradient(ellipse 40% 35% at 50% 28%,rgba(0,223,244,0.12),transparent 65%);
  pointer-events:none;
  z-index:0;
}

.s7-tam__head{
  position:relative;
  z-index:1;
  flex:0 0 auto;
  text-align:center;
  width:100%;
  margin-bottom:clamp(14px,2.2vh,24px);
}
.s7-tam__head .pill{
  align-self:center;
}
.s7-tam__head .deck-slide-title{
  color:#fff;
}
.s7-tam__subtitle{
  margin:0 auto;
  max-width:52ch;
  font-size:clamp(13px,1.45vw,15px);
  line-height:1.55;
  color:rgba(244,247,252,0.62);
}

.s7-tam__stage{
  position:relative;
  z-index:1;
  flex:1 1 auto;
  min-height:0;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0 12px 8px;
}

.s7-tam__viz{
  position:relative;
  width:min(94vw,920px);
  height:min(66vh,580px);
  margin:0 auto;
}

.tam-leaders{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  z-index:2;
  pointer-events:none;
  color:rgba(244,247,252,0.55);
}
.tam-leader{
  fill:none;
  stroke-width:0.35;
  vector-effect:non-scaling-stroke;
}
.tam-leader--tam{stroke:rgba(0,82,245,0.7);}
.tam-leader--sam{stroke:rgba(0,184,168,0.75);}
.tam-leader--som{stroke:rgba(0,223,244,0.8);}
.tam-leaders{color:rgba(244,247,252,0.7);}

/* Animated concentric rings — centered */
.tam-rings-wrap{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:3;
  padding:0;
}

.tam-rings{
  position:relative;
  width:min(56vmin,540px);
  height:min(56vmin,540px);
  display:grid;
  place-items:center;
  filter:drop-shadow(0 0 28px rgba(0,82,245,0.25));
}

.tam-ring{
  position:absolute;
  border-radius:50%;
  border-style:solid;
  border-color:transparent;
  will-change:transform;
}

.tam-ring--outer{
  inset:0;
  border-width:3px;
  border-top-color:var(--tam-color-tam);
  border-right-color:rgba(0,82,245,0.22);
  box-shadow:
    inset 0 0 24px rgba(0,82,245,0.12),
    0 0 32px rgba(0,82,245,0.18);
  animation:tamSpinOuter var(--tam-speed-outer) linear infinite;
}

.tam-ring--middle{
  width:72%;
  height:72%;
  border-width:3px;
  border-top-color:var(--tam-color-sam);
  border-left-color:rgba(0,184,168,0.28);
  box-shadow:
    inset 0 0 20px rgba(0,184,168,0.1),
    0 0 24px rgba(0,184,168,0.14);
  animation:tamSpinMid var(--tam-speed-mid) linear infinite reverse;
}

.tam-ring--inner{
  width:44%;
  height:44%;
  border-width:3px;
  border-bottom-color:var(--tam-color-som);
  border-right-color:rgba(0,223,244,0.35);
  box-shadow:
    inset 0 0 16px rgba(0,223,244,0.12),
    0 0 20px rgba(0,223,244,0.2);
  animation:tamSpinInner var(--tam-speed-inner) linear infinite;
}

.tam-rings__core{
  position:relative;
  z-index:2;
  width:30%;
  height:30%;
  border-radius:50%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  gap:2px;
  background:radial-gradient(circle at 50% 35%,rgba(0,223,244,0.2),rgba(6,11,20,0.92) 68%);
  border:1px solid rgba(0,223,244,0.35);
  box-shadow:0 0 40px rgba(0,223,244,0.25);
}
.tam-rings__value{
  font-size:clamp(1.25rem,3.2vmin,1.9rem);
  font-weight:800;
  letter-spacing:-0.03em;
  color:#fff;
  line-height:1;
}
.tam-rings__label{
  font-size:9px;
  font-weight:700;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:rgba(0,223,244,0.85);
}
.tam-rings__horizon{
  font-size:8px;
  font-weight:800;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:rgba(0,223,244,0.72);
  line-height:1.1;
  margin-top:1px;
}

/* Fixed labels on each ring (do not spin with borders) */
.tam-rings__band{
  position:absolute;
  left:50%;
  z-index:3;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:2px;
  text-align:center;
  pointer-events:none;
  transform:translateX(-50%);
}
.tam-rings__band-tag{
  font-size:9px;
  font-weight:800;
  letter-spacing:0.16em;
  text-transform:uppercase;
  line-height:1;
}
.tam-rings__band-value{
  font-size:clamp(1.1rem,3vmin,1.75rem);
  font-weight:800;
  letter-spacing:-0.03em;
  color:#fff;
  line-height:1;
  white-space:nowrap;
}

.tam-rings__band--tam{
  top:5%;
  width:46%;
}
.tam-rings__band--tam .tam-rings__band-tag{color:rgba(0,82,245,0.9);}
.tam-rings__band--tam .tam-rings__band-value{
  font-size:clamp(1.5rem,4.2vmin,2.35rem);
  text-shadow:0 0 24px rgba(0,82,245,0.45);
}

.tam-rings__band--sam{
  top:21%;
  width:38%;
}
.tam-rings__band--sam .tam-rings__band-tag{color:rgba(0,184,168,0.95);}
.tam-rings__band--sam .tam-rings__band-value{
  font-size:clamp(1.2rem,3.4vmin,1.95rem);
  text-shadow:0 0 20px rgba(0,184,168,0.4);
}

.tam-rings__core .tam-rings__band-tag{
  color:rgba(0,223,244,0.9);
  margin-bottom:1px;
}

@keyframes tamSpinOuter{to{transform:rotate(360deg);}}
@keyframes tamSpinMid{to{transform:rotate(360deg);}}
@keyframes tamSpinInner{to{transform:rotate(360deg);}}

.slide[data-index="6"].active .tam-ring--outer{animation-play-state:running;}
.slide[data-index="6"]:not(.active) .tam-ring{animation-play-state:paused;}

/* Arrow callouts (no repeated $ values) */
.tam-callout{
  position:absolute;
  z-index:4;
  max-width:min(280px,32vw);
  padding:14px 16px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,0.1);
  background:rgba(6,14,36,0.72);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  box-shadow:0 8px 28px rgba(0,0,0,0.28);
}
.tam-callout__tag{
  display:block;
  font-size:11px;
  font-weight:800;
  letter-spacing:0.14em;
  text-transform:uppercase;
  margin-bottom:8px;
}
.tam-callout__desc{
  margin:0;
  font-size:13px;
  line-height:1.45;
  color:rgba(244,247,252,0.72);
}
.tam-callout--tam{
  left:0;
  top:4%;
  --tam-callout-color:var(--tam-color-tam);
}
.tam-callout--tam .tam-callout__tag{color:rgba(0,82,245,0.95);}
.tam-callout--sam{
  right:0;
  top:36%;
  text-align:right;
  --tam-callout-color:var(--tam-color-sam);
}
.tam-callout--sam .tam-callout__tag{color:rgba(0,184,168,0.95);}
.tam-callout--som{
  left:50%;
  bottom:0;
  transform:translateX(-50%);
  text-align:center;
  max-width:min(300px,42vw);
}
.tam-callout--som .tam-callout__tag{color:rgba(0,223,244,0.95);}

.slide[data-index="6"] .pill{
  padding:8px 20px;
  font-size:11px;
  background:rgba(0,82,245,0.34);
  border:1px solid rgba(0,223,244,0.45);
  color:#eef8ff;
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,0.14),
    inset 0 1px 0 rgba(187,187,255,0.24),
    0 0 28px rgba(0,82,245,0.7),
    0 0 52px rgba(0,223,244,0.32),
    0 4px 20px rgba(0,0,0,0.35);
}

@media (max-width:960px){
  .s7-tam__viz{
    height:min(68vh,560px);
  }
  .tam-rings{
    width:min(66vmin,400px);
    height:min(66vmin,400px);
  }
  .tam-callout{
    max-width:min(240px,42vw);
    padding:12px 14px;
  }
  .tam-callout__tag{font-size:10px;}
  .tam-callout__desc{font-size:12px;}
  .tam-callout--tam{top:2%;left:0;}
  .tam-callout--sam{top:34%;right:0;}
  .tam-rings__band--tam{top:4%;}
  .tam-rings__band--sam{top:19%;}
}

@media (prefers-reduced-motion:reduce){
  .tam-ring{animation:none !important;}
}
