/* BORTCADE 3.4.1 — full-frame CRT photograph: photo and mask share
   exactly the same traced 1680x1050 aperture. This sheet loads AFTER the
   legacy TV Guide stylesheet. No historical Caddy/bot settings are changed. */
body.ztv-body .ztvtg-tv{position:relative!important;isolation:isolate!important;overflow:hidden!important;aspect-ratio:1680/1050!important}
body.ztv-body .ztvtg-tv .ztvtg-glass{
 position:absolute!important;
 left:7.61904762%!important;top:13.23809524%!important;
 width:65.71428571%!important;height:74%!important;
 z-index:2!important;background:#020204!important;overflow:hidden!important;
 border:0!important;border-radius:0!important;
 isolation:isolate!important;
 box-shadow:none!important;
 mask-image:url('/ztv/bortcade-tv-mask.png')!important;
 -webkit-mask-image:url('/ztv/bortcade-tv-mask.png')!important;
 mask-mode:alpha!important;
 mask-repeat:no-repeat!important;-webkit-mask-repeat:no-repeat!important;
 mask-size:100% 100%!important;-webkit-mask-size:100% 100%!important;
 --bcrt-bevel:38px;--bcrt-curve:.6;--bcrt-glare:.32;
 --bcrt-crop:100%;--bcrt-stretch-x:1;--bcrt-stretch-y:1;--bcrt-tilt:0deg;
}
/* An inactive CRT remains OPAQUE BLACK, with live footage underneath the
   physical bezel cutout. The actual provider iframe—including its UI—is
   stretched/perspective-transformed as one element, not only the video. */
body.ztv-body .ztvtg-tv .ztvtg-glass iframe,
body.ztv-body .ztvtg-tv .ztvtg-glass[data-provider="youtube"] iframe,
body.ztv-body .ztvtg-tv .ztvtg-glass[data-provider="kick"] iframe{
 position:absolute!important;z-index:0!important;box-sizing:border-box!important;
 left:50%!important;top:50%!important;
 width:var(--bcrt-crop,100%)!important;height:var(--bcrt-crop,100%)!important;
 min-width:0!important;max-width:none!important;min-height:0!important;max-height:none!important;
 background:#020204!important;border:0!important;border-radius:0!important;
 transform-origin:50% 50%!important;
 transform:translate(-50%,-50%) perspective(900px) rotateX(var(--bcrt-tilt,0deg)) scaleX(var(--bcrt-stretch-x,1)) scaleY(var(--bcrt-stretch-y,1))!important;
}
/* Convex-glass sheen, vignette and internal bevel sit above the entire player,
   including embedded buttons, but cannot steal pointer/click events. */
body.ztv-body .ztvtg-tv .ztvtg-glass::before{
 content:''!important;position:absolute!important;inset:0!important;width:100%!important;height:100%!important;
 z-index:23!important;pointer-events:none!important;
 background:radial-gradient(ellipse 76% 83% at 48% 42%,transparent 38%,rgba(0,0,0,.08) 67%,rgba(0,0,0,.58) 99%),
    radial-gradient(ellipse 70% 58% at 51% 18%,rgba(255,255,255,.13),transparent 64%)!important;
 opacity:var(--bcrt-curve,.6)!important;
 box-shadow:none!important;border:0!important;
}
body.ztv-body .ztvtg-tv .ztvtg-glass::after{
 content:''!important;position:absolute!important;inset:0!important;width:100%!important;height:100%!important;
 z-index:24!important;pointer-events:none!important;
 background:radial-gradient(ellipse 85% 95% at 48% 47%,transparent 58%,rgba(0,0,0,.28) 90%,rgba(0,0,0,.72) 100%),
   linear-gradient(148deg,rgba(245,248,255,.26) 0%,rgba(228,240,255,.065) 22%,transparent 43%,transparent 86%,rgba(0,0,0,.2) 100%)!important;
 opacity:var(--bcrt-glare,.32)!important;
 box-shadow:inset 0 0 var(--bcrt-bevel,38px) rgba(0,0,0,.52),inset 0 0 4px rgba(255,255,255,.22)!important;
 border:0!important;
}
body.ztv-body .ztvtg-tv .ztvtg-tv-art{z-index:40!important;position:absolute!important;inset:0!important;width:100%!important;height:100%!important;pointer-events:none!important}
body.ztv-body .ztvtg-tv .ztvtg-knob{z-index:50!important}
/* Existing editable TV screen region stays behind controls and photographic frame. */
body.bv-active .ztvtg-tv .bv-target-glass{z-index:65!important}
@media(prefers-reduced-motion:reduce){.ztvtg-glass::after{transition:none!important}}
