/* 20260930-mt-glint-soft — soften bubble glass/sheen/glint only (sheen 0.45→0.22, sweep peak 1→0.45) · KEEP thunder glow pulse/amplitude · KEEP soft chip · KEEP FAB · KEEP look.js · base 20260930-mt-motion-hybrid */
#meet-thunder {
  position: relative;
  margin: 48px 0 calc(var(--dock, 56px) + 80px);
  min-height: 220px;
  padding: 8px 0 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: visible;
  -webkit-tap-highlight-color: transparent;
}
#meet-thunder[hidden] { display: none !important; }

.mt-stage {
  position: relative;
  width: 100%;
  max-width: 390px;
  height: 220px;
  margin: 0 auto;
}

.mt-glow {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 170px;
  height: 170px;
  margin: -85px 0 0 -85px;
  border-radius: 50%;
  background: radial-gradient(
    circle,
    rgba(242, 201, 76, 0.55) 0%,
    rgba(242, 201, 76, 0.22) 42%,
    rgba(242, 201, 76, 0) 72%
  );
  pointer-events: none;
  z-index: 0;
  animation: mt-glow-breathe var(--pulse) ease-in-out infinite;
  animation-delay: 0s;
  transform-origin: center center;
}
.mt-ring {
  position: absolute;
  left: 50%;
  top: 50%;
  border: 1px solid rgba(242, 201, 76, 0.28);
  border-radius: 50%;
  pointer-events: none;
  z-index: 0;
  transform: translate(-50%, -50%);
  animation: mt-ring-breathe var(--pulse) ease-in-out infinite;
  animation-delay: 0s;
}
.mt-ring--a { width: 150px; height: 150px; opacity: 0.7; }
.mt-ring--b { width: 190px; height: 190px; opacity: 0.4; animation-delay: 0s; }

.mt-bolt {
  position: absolute;
  left: 50%;
  top: 50%;
  width: auto;
  height: 168px;
  max-width: 110px;
  transform: translate(-50%, -50%);
  object-fit: contain;
  z-index: 2;
  pointer-events: none;
  filter: drop-shadow(0 8px 18px rgba(0, 0, 0, 0.55));
  user-select: none;
}
/* 20261005-bolt-sync — both bolts + FAB float on ONE shared --pulse clock; restartBoltPulseClock hard-resyncs */
html.mt-f2.mt-pulse-on .mt-bolt {
  animation: mt-bolt-sync var(--pulse) ease-in-out infinite;
  animation-delay: 0s;
  animation-direction: normal;
  animation-fill-mode: none;
  transform-origin: center center;
  will-change: transform, filter;
}
/* 20261012-seat-trim — FAB img no longer rides the Meet Thunder pulse (mt-bolt-sync-fab). */
/* 20261012-seat-trim — the pulse no longer re-times the FAB bob (his per-pose bob lives in app.css). */
/* Class toggle restart — kills element + pseudo animations so they restart together */
html.mt-pulse-restart .mt-glow,
html.mt-pulse-restart .mt-bolt,
html.mt-pulse-restart #fab::before,
html.mt-pulse-restart #fab::after {
  animation: none !important;
}
@keyframes mt-bolt-sync {
  0%, 100% {
    transform: translate(-50%, -50%) scale(1);
    filter: drop-shadow(0 8px 18px rgba(0, 0, 0, 0.55));
  }
  50% {
    transform: translate(-50%, -50%) scale(1.08);
    filter: drop-shadow(0 8px 22px rgba(242, 201, 76, 0.45));
  }
}
@keyframes mt-bolt-sync-fab {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.08); }
}


.mt-bubble {
  position: absolute;
  z-index: 3;
  max-width: 132px;
  padding: 8px 11px;
  border-radius: 16px;
  border: 1px solid rgba(255, 255, 255, 0.22);
  background:
    linear-gradient(160deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.03) 42%, rgba(12, 12, 12, 0.55)),
    rgba(18, 16, 12, 0.32);
  -webkit-backdrop-filter: blur(16px) saturate(1.4);
  backdrop-filter: blur(16px) saturate(1.4);
  color: #fff;
  font-family: Inter, system-ui, -apple-system, sans-serif;
  font-weight: 500;
  font-size: 12px;
  line-height: 1.25;
  letter-spacing: 0.01em;
  text-align: left;
  cursor: pointer;
  opacity: 0.88;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.28),
    0 8px 18px rgba(0, 0, 0, 0.28);
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
  -webkit-touch-callout: none;
  user-select: none;
  -webkit-user-select: none;
}
.mt-bubble::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(115deg, transparent 20%, rgba(255, 255, 255, 0.22) 48%, transparent 70%);
  transform: translateX(-80%);
  animation: mt-glass-sweep calc(var(--pulse) * 4) ease-in-out infinite;
  animation-delay: 0s;
  pointer-events: none;
}
.mt-bubble:nth-child(3)::before { animation-delay: 0s; }
.mt-bubble:nth-child(4)::before { animation-delay: 0s; }
.mt-bubble:nth-child(5)::before { animation-delay: 0s; }
@keyframes mt-glass-sweep {
  0%, 55% { transform: translateX(-80%); opacity: 0; }
  70% { opacity: 0.45; }
  100% { transform: translateX(80%); opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .mt-bubble::before { animation: none !important; }
}
.mt-bubble:active {
  opacity: 1;
  border-color: #F2C94C;
  background: rgba(24, 24, 24, 0.98);
}
.mt-bubble::after {
  content: "";
  position: absolute;
  width: 0;
  height: 0;
  border-style: solid;
}
/* 20261003-ask-slide — four corners, a full set, not a broken six-slot */
.mt-bubble--ul { left: 0; top: 0; max-width: 46%; }
.mt-bubble--ul::after {
  right: 18%; top: auto; bottom: -6px;
  border-width: 6px 5px 0 5px;
  border-color: rgba(242, 201, 76, 0.42) transparent transparent transparent;
  transform: none;
}
.mt-bubble--ur { right: 0; left: auto; top: 0; max-width: 46%; }
.mt-bubble--ur::after {
  left: 18%; top: auto; bottom: -6px;
  border-width: 6px 5px 0 5px;
  border-color: rgba(242, 201, 76, 0.42) transparent transparent transparent;
  transform: none;
}
.mt-bubble--ml { left: 0%; top: 42%; }
.mt-bubble--ml::after {
  right: -5px; top: 50%;
  border-width: 5px 0 5px 6px;
  border-color: transparent transparent transparent rgba(242, 201, 76, 0.42);
  transform: translateY(-50%);
}
.mt-bubble--mr { right: 0; left: auto; top: 0; max-width: 46%; }
.mt-bubble--mr::after {
  left: 18%; top: auto; bottom: -6px;
  border-width: 6px 5px 0 5px;
  border-color: rgba(242, 201, 76, 0.42) transparent transparent transparent;
  transform: none;
}
.mt-bubble--ll { left: 0; right: auto; bottom: 0; top: auto; max-width: 46%; transform: none; text-align: left; }
.mt-bubble--ll::after {
  right: 18%; left: auto; top: -6px;
  border-width: 0 5px 6px 5px;
  border-color: transparent transparent rgba(242, 201, 76, 0.42) transparent;
  transform: none;
}
.mt-bubble--lr { right: 0; left: auto; bottom: 0; top: auto; max-width: 46%; }
.mt-bubble--lr::after {
  left: 18%; top: -6px;
  border-width: 0 5px 6px 5px;
  border-color: transparent transparent rgba(242, 201, 76, 0.42) transparent;
  transform: none;
}

@keyframes mt-glow-breathe {
  0%, 100% { opacity: 0.55; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.14); }
}
@keyframes mt-ring-breathe {
  0%, 100% { opacity: 0.35; }
  50% { opacity: 0.85; }
}



/* ── Bubble in-app edit (seat/founder) ── */
.mt-bubble--editable {
  display: flex;
  align-items: flex-start;
  gap: 4px;
  padding-right: 6px;
}
.mt-bubble-text {
  flex: 1 1 auto;
  min-width: 0;
}
.mt-bubble-edit {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  margin: -2px -2px 0 0;
  border-radius: 6px;
  border: 1px solid rgba(242, 201, 76, 0.35);
  background: rgba(242, 201, 76, 0.12);
  color: rgba(242, 201, 76, 0.95);
  font-size: 11px;
  line-height: 1;
  cursor: pointer;
  user-select: none;
  -webkit-user-select: none;
}
.mt-bubble-edit:active {
  background: rgba(242, 201, 76, 0.28);
}

#mt-bubble-edit {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding: 16px 16px calc(16px + env(safe-area-inset-bottom, 0px));
}
#mt-bubble-edit[hidden] { display: none !important; }
.mt-edit-scrim {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.55);
}
.mt-edit-card {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 390px;
  padding: 16px 16px 14px;
  border-radius: 16px 16px 14px 14px;
  border: 1px solid rgba(242, 201, 76, 0.55);
  background: rgba(14, 14, 14, 0.98);
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.55);
}
.mt-edit-ok {
  margin: 8px 0 0;
  font-family: Inter, system-ui, -apple-system, sans-serif;
  font-size: 12px;
  line-height: 1.35;
  color: #F2C94C;
}
.mt-edit-title {
  font-family: Inter, system-ui, -apple-system, sans-serif;
  font-size: 15px;
  font-weight: 600;
  color: #F2C94C;
  margin: 0 0 12px;
}
.mt-edit-label {
  display: block;
  font-size: 11px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.55);
  margin: 0 0 6px;
}
.mt-edit-input {
  width: 100%;
  box-sizing: border-box;
  min-height: 72px;
  padding: 10px 12px;
  border-radius: 10px;
  border: 1px solid rgba(242, 201, 76, 0.4);
  background: rgba(0, 0, 0, 0.55);
  color: #fff;
  font-family: Inter, system-ui, -apple-system, sans-serif;
  font-size: 15px;
  line-height: 1.35;
  resize: vertical;
}
.mt-edit-input:focus {
  outline: none;
  border-color: #F2C94C;
}
.mt-edit-actions {
  display: flex;
  gap: 10px;
  justify-content: flex-end;
  margin-top: 14px;
}
.mt-edit-btn {
  min-width: 88px;
  padding: 10px 14px;
  border-radius: 10px;
  font-family: Inter, system-ui, -apple-system, sans-serif;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.mt-edit-btn--ghost {
  border: 1px solid rgba(255, 255, 255, 0.22);
  background: transparent;
  color: rgba(255, 255, 255, 0.85);
}
.mt-edit-btn--gold {
  border: 1px solid #F2C94C;
  background: #F2C94C;
  color: #111;
}

/* ── FAB HARD RED PULSE: quieter yellow FAB + ambient RGB(220,48,48) face glow (CSS · scroll-gated) ── */
/* Quieter size KEEP (~42). Yellow bolt @0.80. OUT: orbit rings/beads · soft-mask · gold presence rings · gold leader · twin bolt · soft gold pulse. */
/* Pulse: HARDER red drop-shadow + scale(1.28) peak / outer 280px · 1.9s ease-in-out · locked to mt-glow via setPulseOn restart · show only html.mt-f2.mt-pulse-on · CSS only · no setInterval. */
html.mt-f2 #fab.mt-fab-quiet,
html.mt-f2 #fab {
  /* 20261002-fab-same — do not size, place, fade, or re-animate #fab. tbBoltFloat stays. */
  filter: drop-shadow(0 4px 10px rgba(0, 0, 0, 0.4));
  transform-origin: 50% 50%;
  will-change: transform, filter;
  border-radius: 50%;
  box-shadow: none; /* OUT: gold concentric presence rings */
  overflow: visible;
  background: transparent;
}
html.mt-f2 #fab img {
  position: relative;
  z-index: 2;
  filter: drop-shadow(0 3px 6px rgba(0, 0, 0, 0.3));
  opacity: 1;
}

/* Kill leftover ::before/::after gold ring-ping · no orbit host */
html.mt-f2 #fab::before,
html.mt-f2 #fab::after {
  content: none;
  display: none;
}

/* Orbit DOM OUT — hide any leftover host/rings/beads from prior builds */
#mt-fab-orbit,
.mt-fab-orbit-ring,
.mt-fab-orbit-bead {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
  animation: none !important;
  opacity: 0 !important;
}

/* HARD RED pulse — bolt never fades. Rings travel out. No filter animation (that blink was the glitch). */
@keyframes mt-fab-ring {
  0% { transform: scale(0.72); opacity: 0.95; }
  100% { transform: scale(2.55); opacity: 0; }
}

html.mt-f2.mt-pulse-on #fab.mt-fab-quiet,
html.mt-f2.mt-pulse-on #fab {
  filter: drop-shadow(0 0 12px rgba(227, 6, 0, 0.95)) drop-shadow(0 0 28px rgba(227, 6, 0, 0.55));
}
html.mt-f2.mt-pulse-on #fab::before,
html.mt-f2.mt-pulse-on #fab::after {
  content: "";
  display: block;
  position: absolute;
  inset: -4px;
  border-radius: 50%;
  border: 2px solid rgba(227, 6, 0, 0.95);
  box-shadow: 0 0 14px rgba(227, 6, 0, 0.8);
  pointer-events: none;
  z-index: 1;
  animation: mt-fab-ring var(--pulse) ease-out infinite;
  animation-delay: 0s;
}
html.mt-f2.mt-pulse-on #fab::after {
  animation-delay: 0s;
  border-color: rgba(227, 6, 0, 0.72);
}

/* 20261002-fab-same — face-motion classes no longer replace tbBoltFloat on #fab. */
/* 20261006-fab-motion-safe — CSS still dead for mt-fab-m-pulse|bob|wiggle|hop; JS picker stripped so they cannot wake. Do NOT revive. */


/* Gold leader REMOVED — kill any leftover DOM chrome */
#mt-fab-leader {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
  opacity: 0 !important;
}

@media (prefers-reduced-motion: reduce) {
  .mt-glow,
  .mt-ring {
    animation: none;
    opacity: 0.7;
    transform: translate(-50%, -50%) scale(1);
  }
  .mt-glow { transform: none; margin: -85px 0 0 -85px; }
  html.mt-f2.mt-pulse-on .mt-bolt,
  html.mt-f2.mt-pulse-on #fab img {
    animation: none;
  }
  html.mt-f2.mt-pulse-on .mt-bolt {
    transform: translate(-50%, -50%) scale(1);
    filter: drop-shadow(0 8px 18px rgba(0, 0, 0, 0.55));
  }
  html.mt-f2.mt-pulse-on #fab.mt-fab-quiet,
  html.mt-f2.mt-pulse-on #fab {
    animation: none;
    filter: drop-shadow(0 0 16px rgba(227, 6, 0, 0.85));
  }
  html.mt-f2.mt-pulse-on #fab::before,
  html.mt-f2.mt-pulse-on #fab::after {
    animation: none;
    opacity: 0;
  }
}

/* 20261008-push-path fold (c) — NO red glow ring on the FAB (it showed after a cold load when Meet Thunder sat in
   the star band). The FAB keeps its plain dark drop shadow; Meet Thunder's own center glow is untouched. */
html.mt-f2.mt-pulse-on #fab.mt-fab-quiet,
html.mt-f2.mt-pulse-on #fab,
html.mt-pulse-on #fab {
  filter: drop-shadow(0 4px 10px rgba(0, 0, 0, 0.4)) !important;
}
html.mt-pulse-on #fab::before,
html.mt-pulse-on #fab::after,
html.mt-f2.mt-pulse-on #fab::before,
html.mt-f2.mt-pulse-on #fab::after {
  content: none !important;
  display: none !important;
  animation: none !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* 20261014-r3v-cartoonthunder — registered 7-pose cartoon rig over the educational Thunder. Transform/opacity only.
   The rig takes the bolt's exact box (no layout); pointer-events none (bubbles + Ask stay tappable). */
.mt-rig {
  position: absolute; left: 50%; top: 50%; width: 119px; height: 168px; margin: -84px 0 0 -59.5px;
  z-index: 2; pointer-events: none; opacity: 0; transition: opacity 280ms cubic-bezier(.4,0,.2,1);
  filter: drop-shadow(0 8px 18px rgba(0, 0, 0, 0.55));
}
.mt-rig-pose { position: absolute; inset: 0; transform-origin: 50% 88%; }
.mt-rig-body { position: absolute; inset: 0; transform-origin: 50% 100%; }
.mt-rig img { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; user-select: none; }
.mt-rig img.on { opacity: 1; }
#meet-thunder.mt-rigged .mt-rig { opacity: 1; }
#meet-thunder .mt-bolt { transition: opacity 280ms cubic-bezier(.4,0,.2,1); }
#meet-thunder.mt-rigged .mt-bolt { opacity: 0 !important; animation: none !important; }
@media (prefers-reduced-motion: reduce) { .mt-rig, #meet-thunder .mt-bolt { transition: none; } }
/* 20261014-r3z-livethunder — continuous idle while on screen: slow breathing + gentle weight shift (separate layers,
   transform only). Off-screen / reduced motion: none. */
.mt-rig-sway, .mt-rig-breathe { position: absolute; inset: 0; }
.mt-rig-sway { transform-origin: 50% 100%; }
.mt-rig-breathe { transform-origin: 50% 100%; }
.mt-rig.mt-rig-live .mt-rig-sway { animation: mt-rig-sway 7.2s cubic-bezier(.45,0,.55,1) infinite; }
.mt-rig.mt-rig-live .mt-rig-breathe { animation: mt-rig-breathe 3.6s cubic-bezier(.45,0,.55,1) infinite; }
@keyframes mt-rig-sway { 0%, 100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(1.6deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(-1.6deg); } }
@keyframes mt-rig-breathe { 0%, 100% { transform: scale(1, 1); } 50% { transform: scale(0.994, 1.018); } }
@media (prefers-reduced-motion: reduce) { .mt-rig .mt-rig-sway, .mt-rig .mt-rig-breathe { animation: none !important; } }
