/* vs-player — Visual Suspect liquid-glass video player (sitewide module).
   Look is 1:1 with the prototype card on /projects/airside-intelligence/.
   Served as /vs-player/vs-player.css by inject_player.py. */

.vsq-wrap{position:relative;width:100%;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;}
.vsq-glow{position:absolute;border-radius:50%;filter:blur(70px);pointer-events:none;z-index:0;}
.vsq-glow--red{width:360px;height:360px;top:-70px;right:6%;background:radial-gradient(circle, rgba(210,0,0,0.15), rgba(210,0,0,0) 68%);}
.vsq-glow--blue{width:460px;height:460px;bottom:30px;right:0;background:radial-gradient(circle, rgba(37,78,128,0.17), rgba(37,78,128,0) 68%);}
.vsq-card{position:relative;z-index:1;display:flex;flex-direction:column;border-radius:18px;overflow:hidden;background:rgba(255,255,255,0.55);-webkit-backdrop-filter:blur(20px) saturate(1.5);backdrop-filter:blur(20px) saturate(1.5);border:1px solid rgba(255,255,255,0.65);box-shadow:0 24px 50px -12px rgba(15,23,42,0.14), 0 8px 20px -8px rgba(15,23,42,0.07), inset 0 1px 0 rgba(255,255,255,0.8);animation:vsqFloat 7s ease-in-out infinite;transition:box-shadow .35s ease;}
.vsq-card:hover{box-shadow:0 30px 65px -14px rgba(15,23,42,0.18), 0 10px 24px -10px rgba(15,23,42,0.09), inset 0 1px 0 rgba(255,255,255,0.8);}
@keyframes vsqFloat{0%,100%{transform:translateY(0);}50%{transform:translateY(-8px);}}
@media (prefers-reduced-motion: reduce){.vsq-card{animation:none;}}
.vsq-media{position:relative;width:100%;background:rgba(0,0,0,0.5);aspect-ratio:16/9;}
.vsq-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;cursor:pointer;}
.vsq-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,0.55);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);opacity:0;pointer-events:none;transition:opacity .3s ease;z-index:3;}
.vsq-loading.vsq-on{opacity:1;}
.vsq-spinner{width:40px;height:40px;border-radius:50%;border:4px solid rgba(255,255,255,0.2);border-top-color:#d20000;animation:vsqSpin 1s linear infinite;box-shadow:0 4px 14px rgba(0,0,0,0.35);}
@keyframes vsqSpin{to{transform:rotate(360deg);}}
.vsq-panel{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;text-align:center;padding:36px 24px 88px;border-top:1px solid rgba(226,232,240,0.6);background:linear-gradient(180deg, rgba(255,255,255,0.72), rgba(255,255,255,0.34));}
.vsq-accent{width:48px;height:4px;border-radius:9999px;background:linear-gradient(90deg,#d20000,#ff4d4d);margin:0 0 24px;flex:0 0 auto;}
.vsq-title{margin:0 0 24px;max-width:100%;font-size:22px;line-height:1.18;font-weight:800;letter-spacing:.03em;text-transform:uppercase;color:#1e293b;}
.vsq-label{display:block;margin:0 0 12px;white-space:nowrap;font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:#d20000;}
.vsq-ref{display:flex;align-items:flex-start;justify-content:center;gap:8px;font-size:14px;font-weight:300;letter-spacing:.03em;line-height:1.6;color:#334155;}
.vsq-dot{width:4px;height:4px;border-radius:50%;background:#64748b;flex:0 0 auto;margin-top:9px;}
.vsq-btn{position:absolute;right:26px;bottom:24px;display:inline-flex;align-items:center;padding:7px 16px;border-radius:3px;font-size:12px;font-weight:600;font-family:inherit;line-height:1;text-transform:none;color:#334155;background:rgba(226,232,240,0.75);border:1px solid rgba(148,163,184,0.45);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer;transition:background .2s ease, transform .2s ease, box-shadow .2s ease;box-shadow:0 2px 8px rgba(15,23,42,0.08);}
.vsq-btn:hover{background:rgba(203,213,225,0.9);transform:translateY(-1px);box-shadow:0 6px 16px rgba(15,23,42,0.14);}
.vsq-btn-face{display:inline-flex;align-items:center;gap:7px;}
.vsq-btn svg{display:block;}
.vsq-hidden{display:none !important;}

/* ── iframe (embed) variant ─────────────────────────────────────────── */
.vsq-card.vsq-embed .vsq-media{aspect-ratio:16/9;height:auto;}
.vsq-card.vsq-embed .vsq-loading{display:none;}
.vsq-media iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block;}
/* Defensive: the theme's fitVids may wrap our iframe in a
   .fluid-width-video-wrapper — neutralize it so the iframe keeps
   absolutely filling .vsq-media regardless. */
.vsq-media .fluid-width-video-wrapper{position:static !important;padding:0 !important;}

@media (min-width:768px){
.vsq-card{flex-direction:row;height:400px;}
.vsq-media{width:66.666%;aspect-ratio:auto;height:100%;}
.vsq-panel{width:33.334%;border-top:none;border-left:1px solid rgba(226,232,240,0.6);padding:48px clamp(20px,2.6vw,44px) 92px;}
.vsq-title{font-size:clamp(20px,1.9vw + 2px,30px);}
.vsq-label{font-size:clamp(10px,0.5vw + 5px,12px);}
.vsq-ref{font-size:clamp(12.5px,0.4vw + 10px,14px);}
.vsq-btn{right:32px;bottom:28px;}
/* embed variant: media keeps 16/9 and drives the card height,
   the panel column stretches to match. */
.vsq-card.vsq-embed{height:auto;}
.vsq-card.vsq-embed .vsq-media{width:66.666%;aspect-ratio:16/9;height:auto;}
}
