/* PE-3b128d6d-eb71-4a67-ac72-4a099e50f9b4 | Core(root): CORE-EXECUTION-STANDARD.md | Manifest(root): docs/MD-FILE-MANIFEST.md */
/* DA-9accaca8-574e-4393-8bd5-a996000b2368 / MA-1c670ae7-6aaa-48fb-854a-e69b317b6bae */
/* E7 and R2: complete source media, origin continuity, one quiet control family. Pending moving review. */
.tf-source-dialog::backdrop { background: rgb(0 0 0 / .3); backdrop-filter: blur(20px); }
.tf-source-dialog { overflow: auto; }
.tf-source-dialog.tf-source-travelling { overflow: visible; }
.tf-source-dialog > figure > img { transform-origin: center; }
.tf-film-action { flex-direction: column; align-items: start !important; justify-content: center; gap: 2px; }
.tf-film-action small { font-weight: 400; }
.tf-source-actions:has(.tf-film-action) { align-items: baseline; }
.tf-source-actions .tf-film-action { text-decoration: none; }
.tf-film-action > span { text-decoration: underline; text-underline-offset: 3px; }
.tf-application .tf-source-dialog.tf-film-dialog { width: min(1100px,calc(100vw - 48px)); padding: 20px; background: var(--bo-black,#000); color: var(--bo-white,#fff); }
.tf-film-dialog > header { display: flex; justify-content: end; margin-bottom: 16px; }
.tf-film-dialog > header button { background: none; color: inherit; border: 0; min-height: 44px; font: inherit; cursor: pointer; }
.tf-film-frame { position: relative; aspect-ratio: 16 / 9; background: #000; }
.tf-film-frame video { display: block; width: 100%; height: 100%; object-fit: contain; }
.tf-film-controls { position: absolute; left: 16px; right: 16px; bottom: 16px; display: flex; align-items: center; gap: 12px; opacity: 1; transition: opacity 200ms cubic-bezier(.25,.46,.45,.94); }
.tf-film-controls[hidden] { display: none; }
.tf-film-controls button { flex: none; display: grid; place-items: center; border: 0; border-radius: 50%; width: 44px; height: 44px; padding: 0; background: #fff; color: #000; cursor: pointer; }
.tf-film-controls [data-film-control=play] { width: 56px; height: 56px; }
.tf-film-controls [data-film-control=fullscreen] { margin-left: auto; }
.tf-film-controls button:focus-visible { outline: 2px solid #fff; outline-offset: 5px; }
.tf-film-frame[data-film-input=pointer] .tf-film-controls button:focus-visible { outline: none; }
.tf-film-controls .is-muted { background: var(--bo-grid,#aaa); }
.tf-controls-idle .tf-film-controls { opacity: 0; }
.tf-film-credit { margin-top: 16px; font: 400 14px/22px var(--sans); color: inherit; }
.tf-film-frame:fullscreen { width: 100vw; height: 100vh; }
.tf-application [data-tf-video] .media-toggle { left: 16px; right: auto; top: auto; bottom: 16px; transform: none; width: 56px; height: 56px; border-radius: 50%; background: #fff; color: #000; }
.tf-application [data-tf-video].has-ended .frame-crop > img { opacity: 0; }
.tf-application [data-tf-video] > .tf-frame-backing { bottom: auto; aspect-ratio: 640 / 1138; }
@media (max-width: 600px) { .tf-application .tf-source-dialog.tf-film-dialog { width: calc(100vw - 16px); padding: 8px; } .tf-film-controls { left: 8px; right: 8px; bottom: 8px; } }
@media (prefers-reduced-motion: reduce) { .tf-film-controls { transition: none; } }
