.tfsv { position: relative; background: #fff; width: 100%; }
.tfsv.tfsv-running { height: calc(var(--tfsv-distance) + 100svh); margin-bottom: calc(-100svh - var(--tfsv-handoff, 0px)); z-index: 2; pointer-events: none; background: transparent; }
.tfsv-stage { height: 100svh; width: 100%; position: relative; overflow: hidden; background: #fff; isolation: isolate; }
.tfsv-running .tfsv-stage { position: sticky; top: 0; }
.tfsv-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.tfsv-shade, .tfsv-white { position: absolute; inset: 0; pointer-events: none; }
.tfsv-shade { background: #101913; }
.tfsv-white { background: #fff; opacity: 0; }
.tfsv-overlay { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: center; padding: clamp(24px, 5vw, 80px); padding-bottom: 110px; color: #fff; font-family: 'Open Sans', sans-serif; overflow: auto; pointer-events: auto; }
.tfsv-overlay > .elementor { width: 100%; }
.tfsv-overlay h1, .tfsv-overlay h2, .tfsv-overlay h3, .tfsv-overlay p { color: inherit; }
.tfsv-overlay h1, .tfsv-overlay h2 { font-size: clamp(32px, 5vw, 80px); line-height: 1.12; }
.tfsv-controls { position: absolute; bottom: max(24px, env(safe-area-inset-bottom)); left: 24px; right: 24px; display: flex; justify-content: flex-end; align-items: center; gap: 20px; color: #fff; text-shadow: 0 1px 8px #000; font: 14px/1.5 sans-serif; pointer-events: auto; }
.tfsv-skip { color: #fff; background: #18201ce6; border: 1px solid #ffffff80; padding: 10px 18px; border-radius: 4px; cursor: pointer; flex-shrink: 0; }
.tfsv-skip:hover { background: #18201c; }
.tfsv-skip:focus-visible { outline: 3px solid #fff; outline-offset: 4px; }
.tfsv-hidden-chrome { visibility: hidden !important; pointer-events: none !important; }
.tfsv-target { visibility: visible !important; animation: none !important; transition: none !important; }
.tfsv-empty { padding: 32px; border: 1px dashed #bbb; }
.tfsv.tfsv-failed .tfsv-stage { height: auto; min-height: 180px; }
.tfsv-failed .tfsv-video, .tfsv-failed .tfsv-white, .tfsv-failed .tfsv-shade { display: none; }
.tfsv-failed .tfsv-overlay { position: relative; color: #252a26; padding-bottom: 80px; }
.tfsv-failed .tfsv-controls { color: #252a26; text-shadow: none; }
@media (max-width: 767px) { .tfsv-controls { font-size: 11px; left: 20px; right: 20px; } .tfsv-overlay { padding: 24px 20px 100px; } }
@media (prefers-reduced-motion: reduce) { .tfsv-stage { height: min(65svh, 600px); } .tfsv-white { display: none; } }
