/* ===================================================================
   FLOWTRIG — founder-video.css   (snippet: portrait popup ⇄ mini FAB)
   States on #fv: data-state="open" (portrait) | "min" (floating button)
   =================================================================== */
/* container is click-through; only the visible card / FAB capture clicks (they set pointer-events:auto) */
.fv{ position:fixed; left:20px; bottom:20px; z-index:295; pointer-events:none; }
@media(max-width:720px){ .fv{ left:14px; bottom:calc(80px + env(safe-area-inset-bottom)); } }

/* ---------- portrait card (9:16) ---------- */
.fv-card{
  position:relative; width:248px; border-radius:20px; overflow:hidden;
  border:1px solid var(--line); background:#07140E;
  box-shadow:0 26px 60px -22px rgba(0,0,0,.7);
  transform:translateY(18px) scale(.96); opacity:0; pointer-events:none;
  transition:transform .5s cubic-bezier(.2,.9,.3,1.1), opacity .4s;
}
.fv[data-state="open"] .fv-card{ transform:none; opacity:1; pointer-events:auto; }
@media(max-width:720px){ .fv-card{ width:208px; } }

.fv-media{ position:relative; aspect-ratio:9/16; background:radial-gradient(120% 80% at 50% 0%, #0F3E29, #07140E 75%), #07140E; display:flex; align-items:flex-end; padding:14px; color:#EAFBF1; }
.fv-media video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; background:#000; z-index:0; }
.fv-media::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, transparent 42%, rgba(0,0,0,.6)); z-index:1; }
.fv-avatar{ position:absolute; top:12px; left:12px; z-index:2; width:30px; height:30px; border-radius:50%; background:var(--g-a135); display:flex; align-items:center; justify-content:center; color:#04140B; font-weight:700; font-size:12px; }
.fv-badge{ position:absolute; top:15px; left:50px; z-index:2; font-size:8.5px; font-weight:700; letter-spacing:.06em; color:#fff; background:rgba(0,0,0,.4); padding:3px 8px; border-radius:999px; display:inline-flex; align-items:center; gap:5px; }
.fv-badge::before{ content:""; width:5px; height:5px; border-radius:50%; background:#ff5a5a; animation:fv-blink 1.4s infinite; }
@keyframes fv-blink{ 50%{ opacity:.3; } }
.fv-play{ position:absolute; top:46%; left:50%; transform:translate(-50%,-50%); z-index:2; width:46px; height:46px; border-radius:50%; background:rgba(255,255,255,.94); display:flex; align-items:center; justify-content:center; box-shadow:0 8px 22px -5px rgba(0,0,0,.55); cursor:pointer; transition:transform .2s; }
.fv-play:hover{ transform:translate(-50%,-50%) scale(1.08); }
.fv-play svg{ width:17px; height:17px; color:#07140E; margin-left:2px; }
/* hide the big play button while the video is playing; click the video to pause */
.fv-play{ transition:opacity .2s, visibility .2s, transform .2s; }
.fv-media{ cursor:pointer; }
.fv.fv-playing .fv-play{ opacity:0; visibility:hidden; pointer-events:none; }
.fv-cap{ position:relative; z-index:2; font-size:12.5px; font-weight:600; line-height:1.35; }
.fv-cap small{ display:block; font-weight:400; font-size:10.5px; color:#9FD9B8; margin-top:3px; }
.fv-close{ position:absolute; top:9px; right:9px; z-index:4; width:26px; height:26px; border-radius:50%; background:rgba(0,0,0,.5); border:1px solid rgba(255,255,255,.2); color:#fff; display:flex; align-items:center; justify-content:center; cursor:pointer; }
.fv-close svg{ width:12px; height:12px; }
/* CTA strip under the video */
.fv-actions{ display:flex; gap:7px; padding:11px; background:var(--surface); }
.fv-actions a{ flex:1; display:inline-flex; align-items:center; justify-content:center; gap:6px; padding:9px; border-radius:10px; font-size:12px; font-weight:700; }
.fv-actions .demo{ background:linear-gradient(135deg,#3DF294,var(--green)); color:#fff; }
.fv-actions .wa{ flex:0 0 42px; background:#25D366; color:#fff; }
.fv-actions a svg{ width:15px; height:15px; }

/* ---------- minimized floating button ---------- */
.fv-fab{
  position:absolute; left:0; bottom:0; width:62px; height:62px; border-radius:18px; overflow:hidden;
  border:1px solid var(--line); cursor:pointer;
  background:radial-gradient(120% 90% at 50% 0%, #0F3E29, #07140E 80%), #07140E;
  box-shadow:0 16px 36px -14px rgba(0,0,0,.6);
  transform:scale(.4); opacity:0; pointer-events:none;
  transition:transform .45s cubic-bezier(.2,1.3,.4,1), opacity .35s;
}
.fv[data-state="min"] .fv-fab{ transform:none; opacity:1; pointer-events:auto; animation:fv-pulse 2.6s ease-in-out infinite .6s; }
.fv-fab:hover{ transform:translateY(-3px) !important; }
.fv-fab .pp{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; }
.fv-fab .pp svg{ width:16px; height:16px; color:#fff; margin-left:2px; }
.fv-fab .ring{ position:absolute; inset:0; border-radius:18px; box-shadow:0 0 0 0 rgba(43,232,129,.5); }
.fv-fab .av{ position:absolute; bottom:-1px; right:-1px; width:20px; height:20px; border-radius:50%; background:var(--g-a135); border:2px solid var(--surface); display:flex; align-items:center; justify-content:center; }
.fv-fab .av svg{ width:9px; height:9px; color:#04140B; }
@keyframes fv-pulse{ 0%,100%{ box-shadow:0 16px 36px -14px rgba(0,0,0,.6), 0 0 0 0 rgba(43,232,129,.5);} 50%{ box-shadow:0 16px 36px -14px rgba(0,0,0,.6), 0 0 0 8px rgba(43,232,129,0);} }

@media(prefers-reduced-motion: reduce){ .fv-card, .fv-fab{ transition:none; animation:none !important; } }

/* sound mute/unmute toggle on the portrait video */
.fv-mute{ position:absolute; bottom:10px; right:10px; z-index:6; width:34px; height:34px; border-radius:50%;
  border:1px solid rgba(255,255,255,.25); background:rgba(8,16,12,.55); color:#fff; backdrop-filter:blur(6px);
  display:flex; align-items:center; justify-content:center; cursor:pointer; transition:background .2s, transform .2s; }
.fv-mute:hover{ background:rgba(8,16,12,.8); transform:scale(1.06); }
.fv-mute.on{ background:var(--g-btn, linear-gradient(135deg,#3DF294,#1FA855)); border-color:transparent; color:#04140B; }
.fv-mute svg{ width:17px; height:17px; }

/* expand-to-16:9 button on the portrait */
.fv-expand{ position:absolute; bottom:10px; right:50px; z-index:6; width:34px; height:34px; border-radius:50%;
  border:1px solid rgba(255,255,255,.25); background:rgba(8,16,12,.55); color:#fff; backdrop-filter:blur(6px);
  display:flex; align-items:center; justify-content:center; cursor:pointer; transition:background .2s, transform .2s; }
.fv-expand:hover{ background:rgba(8,16,12,.8); transform:scale(1.06); }
.fv-expand svg{ width:16px; height:16px; }

/* ---------- 16:9 expand lightbox (centered, dimmed + blurred backdrop) ---------- */
.fv-lightbox{ position:fixed; inset:0; z-index:1200; display:flex; align-items:center; justify-content:center; padding:24px;
  opacity:0; pointer-events:none; transition:opacity .3s ease; }
.fv-lightbox.open{ opacity:1; pointer-events:auto; }
.fv-lb-scrim{ position:absolute; inset:0; background:rgba(3,8,6,.72); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); }
[data-theme="light"] .fv-lb-scrim{ background:rgba(10,26,18,.55); }
.fv-lb-stage{ position:relative; z-index:2; width:min(1120px, 94vw); transform:scale(.96); transition:transform .35s cubic-bezier(.2,.8,.2,1); }
.fv-lightbox.open .fv-lb-stage{ transform:none; }
.fv-lb-frame{ position:relative; aspect-ratio:16/9; border-radius:16px; overflow:hidden; background:#000;
  border:1px solid rgba(255,255,255,.12); box-shadow:0 50px 110px -30px rgba(0,0,0,.8); }
.fv-lb-video{ position:absolute; inset:0; width:100%; height:100%; object-fit:contain; background:#000; }
.fv-lb-close{ position:absolute; top:-14px; right:-14px; z-index:3; width:40px; height:40px; border-radius:50%;
  border:1px solid rgba(255,255,255,.25); background:#0a1510; color:#fff; display:flex; align-items:center; justify-content:center;
  cursor:pointer; box-shadow:0 10px 26px -10px rgba(0,0,0,.7); transition:transform .2s, background .2s; }
.fv-lb-close:hover{ transform:scale(1.08); background:#11221a; }
.fv-lb-close svg{ width:18px; height:18px; }
@media(max-width:640px){ .fv-lb-close{ top:-46px; right:0; } }
@media(prefers-reduced-motion: reduce){ .fv-lightbox, .fv-lb-stage{ transition:none; } }
