/* video facade: YouTube Error 153 appears whenever the embed carries no referrer (always from file://),
   so the page shows a poster and only builds the player when it can actually play (http/https).
   Adapted 13 Sep 2026 from _TOOLS/components-v8/video-and-contact: the CONTACT rules are left out on
   purpose (the site's own .fyp-contact, used in the enquire section, is a different class already). */
.fyp-vid{margin:14px 0 6px}
.fyp-vid-facade{position:relative;display:block;width:100%;padding:0;border:0;cursor:pointer;background:#0A1A3F;aspect-ratio:16/9;overflow:hidden;border-radius:8px;box-shadow:0 10px 40px rgba(10,26,63,.18)}
.fyp-vid-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.02);transition:transform 1.2s cubic-bezier(.4,0,.2,1)}
.fyp-vid-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,26,63,.05) 30%,rgba(10,26,63,.65))}
.fyp-vid-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(1);transition:transform .35s cubic-bezier(.4,0,.2,1)}
.fyp-vid-play svg{display:block;filter:drop-shadow(0 6px 18px rgba(0,0,0,.35))}
.fyp-vid-label{position:absolute;left:22px;bottom:18px;font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:#F7F3EB}
.fyp-vid-facade:hover .fyp-vid-poster,.fyp-vid-facade:focus-visible .fyp-vid-poster{transform:scale(1.07)}
.fyp-vid-facade:hover .fyp-vid-play,.fyp-vid-facade:focus-visible .fyp-vid-play{transform:translate(-50%,-50%) scale(1.1)}
.fyp-vid-facade:focus-visible{outline:3px solid #D4AF37;outline-offset:3px}
.fyp-vid-frame{display:block;width:100%;aspect-ratio:16/9;border:0;border-radius:8px;background:#000;box-shadow:0 10px 40px rgba(10,26,63,.18)}
.fyp-vid-link{display:inline-block;margin-top:8px;font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.08em;color:#0A1A3F;border-bottom:1px solid #D4AF37;text-decoration:none}

@media (prefers-reduced-motion: reduce) {
  .fyp-vid-poster,.fyp-vid-play{transition-duration:.001ms}
}

@media print{
  .fyp-vid-facade,.fyp-vid-frame{display:none}
  .fyp-vid-link{border:0}
  .fyp-vid-link::after{content:" (youtube.com/watch?v=dzsjyWdi6Jk)"}
}
