/* TVA ORIGINAL — physical stage surface r4
   Load after original-table.css.

   Required five-fixture markup inside .ot__rig (replace the current four spans):
   <span class="ot__lamp" data-frame-light="-2"><i></i><b></b></span>
   <span class="ot__lamp" data-frame-light="-1"><i></i><b></b></span>
   <span class="ot__lamp" data-frame-light="0"><i></i><b></b></span>
   <span class="ot__lamp" data-frame-light="1"><i></i><b></b></span>
   <span class="ot__lamp" data-frame-light="2"><i></i><b></b></span>

   originals.js supplies one camera, equal physical A3 width, projected X/Y and
   contact-shadow tokens. This file owns only the visible stage/frame realization. */

.ot__stage{
  animation:none;
  transition:none;
  filter:brightness(.96) saturate(.92) drop-shadow(0 18px 20px rgba(5,0,0,.56)) drop-shadow(0 5px 12px rgba(174,91,39,.18));
}

/* The foreground is the same warm room as the timber deck. Avoid the old
   four-pixel scanlines, which read as a separate digital overlay beneath the
   mascot rather than a surface receiving the theater's light. */
.original-table .ot__floor{
  background:
    radial-gradient(ellipse 42% 18% at 50% 8%,rgba(221,161,89,.17),transparent 82%),
    radial-gradient(ellipse 29% 46% at 13% 82%,rgba(197,140,76,.12),transparent 82%),
    radial-gradient(ellipse 30% 38% at 84% 57%,rgba(178,111,57,.08),transparent 80%),
    linear-gradient(180deg,#35231c 0%,#251810 48%,#170e0a 100%);
  box-shadow:inset 0 20px 32px rgba(8,1,0,.45);
}

.ot__world{
  bottom:0!important;
  /* Camera projection is baked into each frame's matrix below. Avoid a second
     ancestor perspective/compositor pass. */
  perspective:none;
}

.ot__works{
  transform-style:flat;
  pointer-events:none;
}
.ot__world{pointer-events:none}
.original-table__work{pointer-events:auto}
.original-table__work[data-rel="hidden"]{pointer-events:none}

/* Contact shadows are on the common stage plane, never attached to the frames. */
.ot__works::before{
  content:'';
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background:
    radial-gradient(ellipse var(--ot-shadow-far-w,80px) 3px at calc(50% - var(--ot-shadow-far-x,34vw)) calc(var(--ot-shadow-far-y,66%) + 1px),rgba(5,0,0,.88) 0%,rgba(5,0,0,.58) 42%,transparent 76%),
    radial-gradient(ellipse var(--ot-shadow-near-w,104px) 4px at calc(50% - var(--ot-shadow-near-x,22vw)) calc(var(--ot-shadow-near-y,68%) + 1px),rgba(5,0,0,.94) 0%,rgba(5,0,0,.66) 42%,transparent 77%),
    radial-gradient(ellipse var(--ot-shadow-center-w,128px) 5px at 50% calc(var(--ot-shadow-center-y,70%) + 1px),rgba(4,0,0,.96) 0%,rgba(4,0,0,.71) 44%,transparent 78%),
    radial-gradient(ellipse var(--ot-shadow-near-w,104px) 4px at calc(50% + var(--ot-shadow-near-x,22vw)) calc(var(--ot-shadow-near-y,68%) + 1px),rgba(5,0,0,.94) 0%,rgba(5,0,0,.66) 42%,transparent 77%),
    radial-gradient(ellipse var(--ot-shadow-far-w,80px) 3px at calc(50% + var(--ot-shadow-far-x,34vw)) calc(var(--ot-shadow-far-y,66%) + 1px),rgba(5,0,0,.88) 0%,rgba(5,0,0,.58) 42%,transparent 76%),
    radial-gradient(ellipse var(--ot-shadow-far-w,80px) 10px at calc(50% - var(--ot-shadow-far-x,34vw)) calc(var(--ot-shadow-far-y,66%) + 4px),rgba(7,1,0,.42) 0%,rgba(7,1,0,.20) 53%,transparent 82%),
    radial-gradient(ellipse var(--ot-shadow-near-w,104px) 12px at calc(50% - var(--ot-shadow-near-x,22vw)) calc(var(--ot-shadow-near-y,68%) + 4px),rgba(7,1,0,.50) 0%,rgba(7,1,0,.23) 54%,transparent 83%),
    radial-gradient(ellipse var(--ot-shadow-center-w,128px) 14px at 50% calc(var(--ot-shadow-center-y,70%) + 5px),rgba(7,1,0,.56) 0%,rgba(7,1,0,.27) 55%,transparent 84%),
    radial-gradient(ellipse var(--ot-shadow-near-w,104px) 12px at calc(50% + var(--ot-shadow-near-x,22vw)) calc(var(--ot-shadow-near-y,68%) + 4px),rgba(7,1,0,.50) 0%,rgba(7,1,0,.23) 54%,transparent 83%),
    radial-gradient(ellipse var(--ot-shadow-far-w,80px) 10px at calc(50% + var(--ot-shadow-far-x,34vw)) calc(var(--ot-shadow-far-y,66%) + 4px),rgba(7,1,0,.42) 0%,rgba(7,1,0,.20) 53%,transparent 82%);
  filter:blur(.7px);
}

/* Warm wood reflections remain on the tabletop and share every contact point. */
.ot__works::after{
  content:'';
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:
    radial-gradient(ellipse var(--ot-shadow-far-w,80px) 5px at calc(50% - var(--ot-shadow-far-x,34vw)) calc(var(--ot-shadow-far-y,66%) + 3px),rgba(255,202,119,.29),transparent 77%),
    radial-gradient(ellipse var(--ot-shadow-near-w,104px) 6px at calc(50% - var(--ot-shadow-near-x,22vw)) calc(var(--ot-shadow-near-y,68%) + 3px),rgba(255,211,132,.38),transparent 78%),
    radial-gradient(ellipse var(--ot-shadow-center-w,128px) 7px at 50% calc(var(--ot-shadow-center-y,70%) + 4px),rgba(255,225,157,.46),transparent 79%),
    radial-gradient(ellipse var(--ot-shadow-near-w,104px) 6px at calc(50% + var(--ot-shadow-near-x,22vw)) calc(var(--ot-shadow-near-y,68%) + 3px),rgba(255,211,132,.38),transparent 78%),
    radial-gradient(ellipse var(--ot-shadow-far-w,80px) 5px at calc(50% + var(--ot-shadow-far-x,34vw)) calc(var(--ot-shadow-far-y,66%) + 3px),rgba(255,202,119,.29),transparent 77%),
    radial-gradient(ellipse var(--ot-frame-screen-w-far,100px) 25px at calc(50% - var(--ot-shadow-far-x,34vw)) calc(var(--ot-shadow-far-y,66%) + 16px),rgba(175,75,33,.21),transparent 75%),
    radial-gradient(ellipse var(--ot-frame-screen-w-near,190px) 31px at calc(50% - var(--ot-shadow-near-x,22vw)) calc(var(--ot-shadow-near-y,68%) + 18px),rgba(205,98,43,.27),transparent 77%),
    radial-gradient(ellipse var(--ot-frame-screen-w-center,280px) 38px at 50% calc(var(--ot-shadow-center-y,70%) + 20px),rgba(239,148,69,.34),transparent 79%),
    radial-gradient(ellipse var(--ot-frame-screen-w-near,190px) 31px at calc(50% + var(--ot-shadow-near-x,22vw)) calc(var(--ot-shadow-near-y,68%) + 18px),rgba(205,98,43,.27),transparent 77%),
    radial-gradient(ellipse var(--ot-frame-screen-w-far,100px) 25px at calc(50% + var(--ot-shadow-far-x,34vw)) calc(var(--ot-shadow-far-y,66%) + 16px),rgba(175,75,33,.21),transparent 75%);
  filter:blur(1.4px);
  mix-blend-mode:screen;
  opacity:.96;
}

.original-table__work{
  top:0;
  bottom:auto;
  left:0;
  display:block;
  appearance:none;
  -webkit-appearance:none;
  transform-origin:0 0;
  /* One flattened painted object per frame plane. The five planes still share the
     world 3D context, but no native-button descendant becomes an independent
     compositor plane with a stale transform. */
  transform-style:flat;
  transition:none;
  animation:none;
  will-change:auto;
  --ot-depth-light:1;
  --ot-support-alpha:.40;
  --ot-thickness-shift:0%;
  --ot-edge-shadow-x:0px;
}

.original-table__work[data-rel="0"]{
  --ot-support-alpha:.40;
  transform:var(--ot-frame-matrix-center);
  filter:none;
}
.original-table__work[data-rel="-1"]{
  --ot-depth-light:.94;
  --ot-support-alpha:.78;
  --ot-thickness-shift:3.4%;
  --ot-edge-shadow-x:2.8px;
  transform:var(--ot-frame-matrix-near-left);
  filter:none;
}
.original-table__work[data-rel="1"]{
  --ot-depth-light:.94;
  --ot-support-alpha:.78;
  --ot-thickness-shift:-3.4%;
  --ot-edge-shadow-x:-2.8px;
  transform:var(--ot-frame-matrix-near-right);
  filter:none;
}
.original-table__work[data-rel="-2"]{
  --ot-depth-light:.87;
  --ot-support-alpha:.92;
  --ot-thickness-shift:6.2%;
  --ot-edge-shadow-x:3.8px;
  transform:var(--ot-frame-matrix-far-left);
  filter:none;
}
.original-table__work[data-rel="2"]{
  --ot-depth-light:.87;
  --ot-support-alpha:.92;
  --ot-thickness-shift:-6.2%;
  --ot-edge-shadow-x:-3.8px;
  transform:var(--ot-frame-matrix-far-right);
  filter:none;
}

/* Rear easel: only the two foot tips may show through the transparent grounding
   margin. The complete support stays behind the shell; it never paints over the
   lower front rail or artwork. No central monitor-style post. */
.original-table__work::after{
  content:'';
  position:absolute;
  left:50%;
  bottom:6.25%;
  width:68%;
  height:3.6%;
  z-index:0;
  transform:translateX(-50%);
  opacity:var(--ot-support-alpha,.16);
  clip-path:none;
  background:
    radial-gradient(ellipse 13% 16% at 22% 91%,#140101 0 48%,transparent 58%),
    radial-gradient(ellipse 13% 16% at 78% 91%,#140101 0 48%,transparent 58%),
    linear-gradient(68deg,transparent 0 39%,#210202 40% 44%,#a13a25 45% 50%,#4d0907 51% 55%,transparent 56%) left bottom/49% 100% no-repeat,
    linear-gradient(-68deg,transparent 0 39%,#210202 40% 44%,#a13a25 45% 50%,#4d0907 51% 55%,transparent 56%) right bottom/49% 100% no-repeat,
    linear-gradient(180deg,transparent 0 38%,#8f2f20 39% 58%,#3a0605 59% 100%) center bottom/66% 24% no-repeat;
  filter:drop-shadow(0 2px 1px rgba(4,0,0,.96));
  pointer-events:none;
}

.ot__frame{
  z-index:1;
  transform:none;
  transform-style:flat;
}

/* A separate recessed wood slab supplies a directional side reveal on yawed panels. */
.ot__frame::before{
  content:'';
  position:absolute;
  inset:4.9% 5.0% 5.5%;
  z-index:0;
  transform:translateX(var(--ot-thickness-shift,0%));
  background:linear-gradient(90deg,#170101 0%,#4d0806 18%,#a8442c 47%,#5c0c08 74%,#180101 100%);
  border:2px solid #210202;
  box-shadow:inset 0 0 0 2px rgba(188,73,43,.42),0 0 0 clamp(5px,.62vw,9px) #3e0605,0 5px 7px rgba(5,0,0,.86);
  pointer-events:none;
}

.ot__art{
  z-index:1;
  filter:brightness(var(--ot-depth-light,1)) saturate(.96);
}
.ot__frame-shell{
  z-index:2;
  filter:brightness(var(--ot-depth-light,1)) saturate(.94) drop-shadow(var(--ot-edge-shadow-x,0px) 2px 0 rgba(36,3,2,.88)) drop-shadow(var(--ot-edge-shadow-x,0px) 4px 3px rgba(5,0,0,.46));
}

/* The small picture light remains physically attached to each top rail. */
.original-table__work::before{
  top:9.2%;
  left:35%;
  right:35%;
  height:3%;
  z-index:4;
  transform:translateY(-50%);
  border:0;
  border-top:1px solid rgba(18,7,3,.98);
  border-bottom:1px solid rgba(255,242,196,.98);
  border-radius:2px 2px 4px 4px;
  clip-path:polygon(3% 0,97% 0,100% 72%,94% 100%,6% 100%,0 72%);
  background:
    linear-gradient(90deg,rgba(12,5,2,.96),transparent 13% 87%,rgba(12,5,2,.96)),
    linear-gradient(180deg,#080302 0 30%,#8a4c1d 31% 46%,#ffe7aa 47% 78%,#a85a20 79% 100%);
  box-shadow:inset 0 2px 3px rgba(0,0,0,.94),inset 0 -1px 1px rgba(255,250,224,.96),0 1px 2px rgba(0,0,0,.88),0 0 4px rgba(255,219,145,.92),0 6px 11px rgba(255,177,70,.68),0 12px 18px rgba(218,115,31,.26);
  opacity:1;
}
.ot__frame::after{
  content:'';
  position:absolute;
  left:17%;
  right:17%;
  top:11.2%;
  height:18%;
  z-index:3;
  pointer-events:none;
  background:
    radial-gradient(ellipse 44% 108% at 50% 0%,rgba(255,204,117,.46) 0 7%,rgba(247,164,66,.25) 33%,rgba(211,105,27,.10) 58%,transparent 76%),
    linear-gradient(180deg,rgba(255,196,99,.16),transparent 72%);
  filter:blur(2.5px);
  mix-blend-mode:normal;
}

/* Five overhead fixtures: one per projected frame. nth-child is the integration
   fallback; data-frame-light is the stable contract. */
.ot__rig .ot__lamp:nth-child(1),.ot__lamp[data-frame-light="-2"]{
  left:calc(50% - var(--ot-shadow-far-x,34vw));
  --ot-beam-w:var(--ot-frame-screen-w-far,110px);
  --ot-beam-y:var(--ot-shadow-far-y,66%);
  --ot-beam-alpha:.46;
}
.ot__rig .ot__lamp:nth-child(2),.ot__lamp[data-frame-light="-1"]{
  left:calc(50% - var(--ot-shadow-near-x,22vw));
  --ot-beam-w:var(--ot-frame-screen-w-near,190px);
  --ot-beam-y:var(--ot-shadow-near-y,68%);
  --ot-beam-alpha:.56;
}
.ot__rig .ot__lamp:nth-child(3),.ot__lamp[data-frame-light="0"]{
  left:50%;
  /* The sign image has transparent headroom; the visible plaque starts ~32px
     below its image box, so the housing must sit inside that painted area. */
  top:calc(var(--ot-sign-top,0px) + 36px);
  --ot-beam-w:var(--ot-frame-screen-w-center,280px);
  --ot-beam-y:var(--ot-shadow-center-y,70%);
  --ot-beam-alpha:.68;
  --ot-beam-tilt:0deg;
}
/* The central fixture sits behind the hanging sign, not beside it. The sign's
   higher layer hides the housing while its beam falls straight onto the work.
   The sign's painted plaque height changes at short landscape breakpoints, so
   the hidden housing is not allowed to peek above or below it. */
.ot__rig .ot__lamp[data-frame-light="0"]::before,
.ot__rig .ot__lamp[data-frame-light="0"] i{visibility:hidden}
.ot__rig .ot__lamp:nth-child(4),.ot__lamp[data-frame-light="1"]{
  left:calc(50% + var(--ot-shadow-near-x,22vw));
  --ot-beam-w:var(--ot-frame-screen-w-near,190px);
  --ot-beam-y:var(--ot-shadow-near-y,68%);
  --ot-beam-alpha:.56;
}
.ot__rig .ot__lamp:nth-child(5),.ot__lamp[data-frame-light="2"]{
  left:calc(50% + var(--ot-shadow-far-x,34vw));
  --ot-beam-w:var(--ot-frame-screen-w-far,110px);
  --ot-beam-y:var(--ot-shadow-far-y,66%);
  --ot-beam-alpha:.46;
}

.ot__lamp{
  width:22px;
  height:38px;
  transform:translateX(-50%);
}
.ot__lamp::before{left:calc(50% - 2px)}
.ot__lamp i{width:100%}
.ot__lamp b{
  top:35px;
  left:50%;
  width:var(--ot-beam-w,180px);
  height:max(120px,calc(var(--ot-beam-y,68%) - 45px));
  transform:translateX(-50%) rotate(var(--ot-beam-tilt,0deg)) scaleX(.66);
  transform-origin:50% 0;
  filter:blur(3.2px);
  opacity:var(--ot-beam-alpha,.52);
}
.ot__lamp b::before{
  clip-path:none;
  border-radius:38% 38% 46% 46%;
  background:
    radial-gradient(ellipse 27% 100% at 50% 0%,rgba(255,249,226,.43) 0%,rgba(255,218,154,.22) 42%,rgba(229,145,64,.07) 69%,transparent 86%),
    radial-gradient(ellipse 51% 100% at 50% 0%,rgba(255,235,191,.28) 0%,rgba(244,191,105,.13) 46%,rgba(214,119,45,.04) 70%,transparent 89%);
  -webkit-mask-image:linear-gradient(#000 0%,rgba(0,0,0,.84) 52%,rgba(0,0,0,.38) 78%,transparent 100%);
  mask-image:linear-gradient(#000 0%,rgba(0,0,0,.84) 52%,rgba(0,0,0,.38) 78%,transparent 100%);
}

@media(max-width:900px) and (orientation:portrait),(max-width:700px){
  .ot__lamp{width:16px;height:30px}
  .ot__lamp::before{left:calc(50% - 2px)}
  .ot__lamp i{width:100%;height:20px;top:8px}
  .ot__lamp b{top:30px}
  .ot__works::before{
    background:
      radial-gradient(ellipse var(--ot-shadow-center-w,108px) 4px at 50% calc(var(--ot-shadow-center-y,66%) + 1px),rgba(4,0,0,.94),rgba(4,0,0,.62) 44%,transparent 78%),
      radial-gradient(ellipse var(--ot-shadow-center-w,108px) 12px at 50% calc(var(--ot-shadow-center-y,66%) + 4px),rgba(7,1,0,.50),rgba(7,1,0,.22) 55%,transparent 84%);
  }
  .ot__works::after{
    background:
      radial-gradient(ellipse var(--ot-shadow-center-w,108px) 7px at 50% calc(var(--ot-shadow-center-y,66%) + 3px),rgba(255,220,150,.34),transparent 78%),
      radial-gradient(ellipse var(--ot-frame-screen-w-center,240px) 34px at 50% calc(var(--ot-shadow-center-y,66%) + 19px),rgba(232,139,60,.22),transparent 78%);
  }
  /* The hanging TVA ORIGINAL sign is the mobile ceiling focal point. The frame
     housings remain on their individual works; no separate ceiling fixture
     competes with the sign in compact layouts. */
  .ot__rig .ot__lamp,.ot__lamp[data-frame-light]{display:none}

  /* Preserve a real red-velvet wing after the procedural curtain opens. The
     runtime's 8vw source box leaves only a hairline of the transparent asset
     at 320–430px; a 48px box exposes its woven inner edge while remaining far
     outside the central frame. */
  .original-table .ot__curtain-img--open{width:48px!important}
  .original-table__work[data-rel="0"]{--ot-support-alpha:.24}
}

@media(prefers-reduced-motion:reduce){
  .ot__stage,.original-table__work{transition:none!important;animation:none!important}
}
.reduced-motion .ot__stage,.reduced-motion .original-table__work{transition:none!important;animation:none!important}
