/* ===== SPOTLIGHT BEGIN (homepage hero: two Hollywood-premiere searchlights sweeping over the latest-release cover).
   v4: beam lives INSIDE the rotating head, so lens, drum and beam share one pivot/transform at every width.
   To revert: remove the spotlight.css <link> and spotlight.js <script> from index.html; gothic v3 is in /workspace/revert/spotlight-gothic-v3/. ===== */
.hero-inner{position:relative}
.spot-rig{position:absolute;inset:0;pointer-events:none;z-index:0}
.hero-inner>.hero-copy{position:relative;z-index:2}.hero-inner>.hero-cover{z-index:1}
.spot{position:absolute;width:0;height:0;left:var(--sx);top:var(--sy)}
/* static carriage: pedestal + yoke arms meeting the drum trunnions at the pivot (0,0) */
.spot-base{position:absolute;left:-26px;top:-6px;width:52px;height:34px;overflow:visible;filter:drop-shadow(0 2px 2px rgba(0,0,0,.9))}
/* rotating head: pivot = trunnion = .spot origin. Drum + beam both inside, so they can never drift apart */
.spot-head{position:absolute;left:0;top:0;width:0;height:0;transform:rotate(var(--a0))}
.spot-drum{position:absolute;left:-17px;top:-21px;width:34px;height:31px;overflow:visible;filter:drop-shadow(0 2px 2px rgba(0,0,0,.85))}
/* beam: starts exactly at the lens rim (y=-19 in head space), lens-wide at the bottom, gently widening column */
.spot-beam{position:absolute;left:calc(var(--bw) / -2);bottom:19px;width:var(--bw);height:var(--len);opacity:.85;mix-blend-mode:screen;
 background:linear-gradient(0deg,rgba(255,244,215,.42) 0%,rgba(255,240,208,.2) 14%,rgba(255,238,205,.08) 42%,rgba(255,238,205,.1) 75%,rgba(255,238,205,0) 100%);
 clip-path:polygon(0 0,100% 0,calc(50% + 13px) 100%,calc(50% - 13px) 100%);filter:blur(2.5px)}
.spot-beam::after{content:"";position:absolute;left:calc(50% - 9px);bottom:0;width:18px;height:40%;
 background:linear-gradient(0deg,rgba(255,250,232,.35),rgba(255,250,232,0));filter:blur(3px)}
@media (prefers-reduced-motion:no-preference){
 .spot.l .spot-head{animation:spotSweep 4.6s ease-in-out infinite alternate}
 .spot.r .spot-head{animation:spotSweep 5.4s ease-in-out -2s infinite alternate}}
@keyframes spotSweep{0%{transform:rotate(var(--a0))}100%{transform:rotate(var(--a1))}}
/* v6 OFF-SCREEN SOURCES: no visible lamps; light enters from just past the left/right screen edges.
   The rig is stretched to the viewport width by JS and clips overflow, so no horizontal scroll. */
.spot-rig{overflow:hidden;bottom:-70px}
.spot-base,.spot-drum{display:none}
.spot-beam{bottom:0}
.spot-flare{position:absolute;left:-40px;top:-40px;width:80px;height:80px;border-radius:50%;mix-blend-mode:screen;
 background:radial-gradient(closest-side,rgba(255,250,232,.75),rgba(255,236,196,.3) 40%,rgba(255,226,170,.08) 70%,transparent)}
/* v9 VOLUMETRIC: no clip-path strip. The beam element is masked by a conic cone from the source (feathered sides,
   brightest core) intersected with a lengthwise fade; fill is very faint + screen blend; soft haze bands and drifting dust
   motes sit inside the same mask so they only show within the light. */
.spot-beam{clip-path:none!important;filter:none!important;opacity:1;mix-blend-mode:screen;
 background:linear-gradient(0deg,rgba(255,242,212,.36) 0%,rgba(255,240,208,.24) 18%,rgba(255,238,205,.15) 50%,rgba(255,238,205,.08) 80%,transparent 100%);
 -webkit-mask-image:conic-gradient(from calc(var(--ha) * -1.5) at 50% calc(100% + 150px),transparent 0deg,rgba(0,0,0,.25) calc(var(--ha) * .55),rgba(0,0,0,.8) calc(var(--ha) * 1.1),#000 calc(var(--ha) * 1.5),rgba(0,0,0,.8) calc(var(--ha) * 1.9),rgba(0,0,0,.25) calc(var(--ha) * 2.45),transparent calc(var(--ha) * 3),transparent 360deg),
  linear-gradient(0deg,#000 0%,#000 78%,transparent 100%);
 -webkit-mask-composite:source-in;
 mask-image:conic-gradient(from calc(var(--ha) * -1.5) at 50% calc(100% + 150px),transparent 0deg,rgba(0,0,0,.25) calc(var(--ha) * .55),rgba(0,0,0,.8) calc(var(--ha) * 1.1),#000 calc(var(--ha) * 1.5),rgba(0,0,0,.8) calc(var(--ha) * 1.9),rgba(0,0,0,.25) calc(var(--ha) * 2.45),transparent calc(var(--ha) * 3),transparent 360deg),
  linear-gradient(0deg,#000 0%,#000 78%,transparent 100%);
 mask-composite:intersect}
.spot-beam::after{display:none}
.spot-haze{position:absolute;left:0;right:0;top:-120px;bottom:0;display:block;opacity:.5;
 background:radial-gradient(40% 9% at 30% 20%,rgba(255,240,215,.10),transparent 70%),radial-gradient(35% 7% at 70% 45%,rgba(255,240,215,.08),transparent 70%),
  radial-gradient(45% 8% at 45% 70%,rgba(255,240,215,.09),transparent 70%),radial-gradient(30% 6% at 60% 88%,rgba(255,240,215,.08),transparent 70%)}
.spot-dust{position:absolute;left:0;right:0;top:-260px;bottom:0;display:block;
 background-image:radial-gradient(circle,rgba(255,248,228,.8) 0 .7px,transparent 1.2px),radial-gradient(circle,rgba(255,244,220,.6) 0 .5px,transparent 1px),radial-gradient(circle,rgba(255,250,235,.9) 0 .9px,transparent 1.5px);
 background-size:37px 53px,23px 31px,71px 89px;background-position:0 0,11px 17px,29px 41px;opacity:.5}
.spot-dust.d2{background-size:29px 43px,47px 61px,83px 97px;background-position:13px 5px,3px 27px,51px 13px;opacity:.35}
@media (prefers-reduced-motion:no-preference){
 .spot-dust{animation:dustDrift 26s linear infinite}
 .spot-dust.d2{animation:dustDrift2 38s linear infinite}
 .spot-haze{animation:hazeDrift 18s ease-in-out infinite alternate}
 .spot-paused .spot-dust,.spot-paused .spot-haze,.spot-paused .spot-head{animation-play-state:paused}}
@media (prefers-reduced-motion:reduce){.spot-dust{display:none}}
@keyframes dustDrift{0%{transform:translate3d(0,0,0)}50%{transform:translate3d(6px,130px,0)}100%{transform:translate3d(0,260px,0)}}
@keyframes dustDrift2{0%{transform:translate3d(0,0,0)}50%{transform:translate3d(-7px,130px,0)}100%{transform:translate3d(0,260px,0)}}
@keyframes hazeDrift{to{transform:translate3d(0,120px,0)}}
.spot-flare{opacity:.8;left:-75px;top:-75px;width:150px;height:150px}
/* light on the art: dimmer overall, brighter pools where the beams land */
#heroCover{position:relative}
.spot-art{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:2}
.spot-dim{position:absolute;inset:0;background:rgba(0,0,0,.28)}
.spot-pool{position:absolute;left:50%;top:50%;width:70%;aspect-ratio:1;margin:-35% 0 0 -35%;border-radius:50%;mix-blend-mode:screen;
 background:radial-gradient(closest-side,rgba(255,240,210,.55),rgba(255,232,195,.22) 55%,transparent);transform:translate(var(--p0),var(--py,0))}
.spot-pool.l{--p0:-38%;--py:-8%}.spot-pool.r{--p0:38%;--py:12%}
@keyframes spotPL{0%{transform:translate(-38%,-8%)}100%{transform:translate(32%,6%)}}
@keyframes spotPR{0%{transform:translate(38%,12%)}100%{transform:translate(-32%,-6%)}}
@media (prefers-reduced-motion:no-preference){.spot-pool.l{animation:spotPL 4.6s ease-in-out infinite alternate}.spot-pool.r{animation:spotPR 5.4s ease-in-out -2s infinite alternate}}
/* v12: beam light ON the art. The page beams pass under the cover (cover z-index 1), so the art only showed the old
   fixed pools, which weren't tied to the beams. Each beam now has an exact mirror inside the cover overlay (same pivot,
   vars and animation, clipped to the cover), screen-blended so the art brightens wherever its beam actually lands. */
.spot-pool{display:none}
.spot-art-rig{position:absolute;inset:0}
.spot-art-rig .spot-beam{mix-blend-mode:screen;background:rgba(255,240,212,.2);
 -webkit-mask-image:conic-gradient(from calc(var(--ha) * -1.5) at 50% calc(100% + 150px),transparent 0deg,rgba(0,0,0,.25) calc(var(--ha) * .55),rgba(0,0,0,.8) calc(var(--ha) * 1.1),#000 calc(var(--ha) * 1.5),rgba(0,0,0,.8) calc(var(--ha) * 1.9),rgba(0,0,0,.25) calc(var(--ha) * 2.45),transparent calc(var(--ha) * 3),transparent 360deg);
 mask-image:conic-gradient(from calc(var(--ha) * -1.5) at 50% calc(100% + 150px),transparent 0deg,rgba(0,0,0,.25) calc(var(--ha) * .55),rgba(0,0,0,.8) calc(var(--ha) * 1.1),#000 calc(var(--ha) * 1.5),rgba(0,0,0,.8) calc(var(--ha) * 1.9),rgba(0,0,0,.25) calc(var(--ha) * 2.45),transparent calc(var(--ha) * 3),transparent 360deg)}
.spot-art-rig .spot-dust,.spot-art-rig .spot-haze{display:none}
/* v14 corner fix: the cover copies were clipped by their own rotated box (bw wide) while the cone kept widening, so the
   box edge cut a hard diagonal and left the corners un-lit (and still under the dim layer) = dark wedges. Copies are now
   4x wider than the cone ever gets, the dim layer is gone (art is never darkened), and the copy lift is gentler. */
.spot-art-rig .spot-beam{left:calc(var(--bw) * -2);width:calc(var(--bw) * 4);background:rgba(255,240,212,.15)}
.spot-dim{display:none}
/* ===== SPOTLIGHT END ===== */
