/* A shared, slow heartbeat. Text and photographs remain still. */
.energy-positioned{position:relative}
.energy-surface{--energy-color:var(--connection-accent,var(--link-accent,var(--action-color,var(--menu-accent,var(--accent,var(--mint))))))}
.name-frame,.ignite,.agent-button{--energy-color:var(--lime)}
.screen-play,.photo-frame,.reel-step{--energy-color:var(--purple)}
.energy-surface>.energy-halo{position:absolute!important;display:block!important;inset:0!important;width:auto!important;height:auto!important;margin:0!important;padding:0!important;border:1px solid var(--energy-color)!important;border-radius:inherit;pointer-events:none!important;background:transparent!important;color:var(--energy-color);box-shadow:0 0 2px #eaffff,0 0 12px color-mix(in srgb,var(--energy-color),transparent 20%),0 0 34px color-mix(in srgb,var(--energy-color),transparent 58%),inset 0 0 18px color-mix(in srgb,var(--energy-color),transparent 72%);opacity:.45;z-index:1;transform:none!important;translate:none!important;animation:energy-breathe 3.8s ease-in-out infinite;animation-delay:var(--energy-phase,0s);animation-play-state:paused}
.energy-visible>.energy-halo,.menu-in-view>.energy-halo{animation-play-state:running}
.name-frame>.energy-halo{box-shadow:0 0 3px #f8ffd4,0 0 15px #d9ff4380,0 0 48px #d9ff4355,inset 0 0 42px #d9ff4326}
.content-cartridge>.energy-halo,.resource-row>.energy-halo,.show-listing>.energy-halo,.social-link>.energy-halo,.dgtv-channel>.energy-halo{border-width:0 0 1px!important;border-radius:0;box-shadow:0 10px 18px -13px var(--energy-color),inset 0 -13px 22px -22px var(--energy-color)}
.menu-emblem>.energy-halo,.screen-play>.energy-halo{border-radius:50%}
.energy-visible .terminal{animation:terminal-current 5.4s ease-in-out infinite;animation-delay:var(--energy-phase,0s)}
.energy-visible .switch-light{animation:terminal-current 5.4s ease-in-out infinite;animation-delay:var(--energy-phase,0s)}

/* Current rides the existing circuit, so no extra rails or controls are needed. */
.cable-current{fill:none;stroke:var(--mint);stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1 19;opacity:.85;pointer-events:none;animation:current-travel 9s linear infinite,current-breathe 3.8s ease-in-out infinite}
[data-route=work] .cable-current,[data-route=photos] .cable-current{stroke:var(--purple)}
[data-route=name] .cable-current,[data-route=shows] .cable-current{stroke:var(--lime)}
[data-route=human] .cable-current{animation-delay:-1.2s,-.65s}
[data-route=work] .cable-current{animation-delay:-2.4s,-1.3s}
[data-route=shows] .cable-current{animation-delay:-3.6s,-1.95s}
[data-route=photos] .cable-current{animation-delay:-4.8s,-2.6s}
[data-route=library] .cable-current{animation-delay:-6s,-3.25s}
[data-route=contact] .cable-current{animation-delay:-7.2s,-3.9s}
[data-route=return] .cable-current{animation-delay:-8.4s,-4.55s}
.site-machine.running .cable-current{animation-play-state:paused;opacity:.3!important}
.content-drawer .menu-rail:before{animation:rail-breathe 5.4s ease-in-out infinite}
.content-drawer:not([open]):not(.menu-standalone) .energy-halo{animation-play-state:paused}
.content-drawer.menu-paused .energy-halo{animation:none!important;opacity:.1}
.less-motion .energy-halo,.less-motion .cable-current{display:none!important}
.page-idle .energy-halo,.page-idle .cable-current,body:has(dialog[open]) .site-machine .energy-halo{animation-play-state:paused!important}
@keyframes energy-breathe{0%,100%{opacity:.45}48%{opacity:1}68%{opacity:.75}}
@keyframes terminal-current{0%,100%{background:#17231b;box-shadow:0 0 0 3px #23322a}48%{background:var(--accent,var(--mint));box-shadow:0 0 0 3px #23322a,0 0 16px var(--accent,var(--mint))}}
@keyframes current-travel{to{stroke-dashoffset:-100}}
@keyframes current-breathe{0%,100%{opacity:.25}48%{opacity:.95}}
@keyframes rail-breathe{0%,100%{opacity:.25}48%{opacity:.8;box-shadow:0 0 12px var(--menu-accent)}}

/* Electric edges, bright cores and thin arcs rather than a wash over the photos. */
.name-frame{background:#0a100d66}
.site-machine .circuit [data-route]{opacity:.82!important}
.site-machine.running .circuit [data-route],.overcharged .site-machine .circuit [data-route]{opacity:1!important}
.cable-line{stroke-width:2;filter:drop-shadow(0 0 4px var(--mint))}
[data-route=name] .cable-line,[data-route=shows] .cable-line{stroke:var(--lime);filter:drop-shadow(0 0 5px var(--lime))}
[data-route=work] .cable-line,[data-route=photos] .cable-line{filter:drop-shadow(0 0 5px var(--purple))}
.cable-line.energized{stroke-width:2.5;filter:drop-shadow(0 0 3px #eaffff) drop-shadow(0 0 8px var(--mint))}
.energy-halo:before,.energy-halo:after{content:'';position:absolute;width:72px;height:15px;background:currentColor;filter:drop-shadow(0 0 3px currentColor);clip-path:polygon(0 50%,20% 43%,27% 6%,42% 57%,53% 26%,63% 59%,74% 37%,82% 48%,100% 45%,100% 58%,79% 61%,74% 50%,63% 77%,53% 43%,41% 76%,29% 31%,25% 58%,0 63%);pointer-events:none}
.energy-halo:before{left:10%;bottom:-8px;rotate:180deg}
.energy-halo:after{right:9%;top:-8px}
:is(.content-cartridge,.resource-row,.social-link,.dgtv-channel,.drawer-monogram,.screen-play,.reel-step)>.energy-halo:before,:is(.content-cartridge,.resource-row,.social-link,.dgtv-channel,.drawer-monogram,.screen-play,.reel-step)>.energy-halo:after{display:none}
.name-frame>.energy-halo:before,.name-frame>.energy-halo:after{width:110px;height:19px}
.letter{transition:color .15s,text-shadow .25s}
.letter.letter-charged{color:var(--letter-charge);text-shadow:0 0 3px #ffffffa3,0 0 15px var(--letter-charge),0 0 38px color-mix(in srgb,var(--letter-charge),transparent 25%),0 0 70px color-mix(in srgb,var(--letter-charge),transparent 60%)}
.letter.letter-charged:before,.letter.letter-charged:after{border-color:#eaffff;background:var(--letter-charge);box-shadow:0 0 6px #fff,0 0 15px var(--letter-charge)}
.station-switch,.photo-heading h2,.library-head h2,.contact-top h2{ text-shadow:0 0 18px color-mix(in srgb,var(--accent,var(--mint)),transparent 58%)}
.quick-connections a{text-shadow:0 0 17px #58ffd360}
.content-drawer .drawer-title,.content-drawer #drawer-title{filter:drop-shadow(0 0 13px color-mix(in srgb,var(--menu-accent),transparent 58%))}
.content-drawer .menu-glyph{filter:drop-shadow(0 0 8px var(--menu-accent))}
.overcharged .energy-surface>.energy-halo{box-shadow:0 0 3px #f2fffc,0 0 16px var(--energy-color),0 0 42px color-mix(in srgb,var(--energy-color),transparent 40%),inset 0 0 24px color-mix(in srgb,var(--energy-color),transparent 65%)}
.overcharged :is(.content-cartridge,.resource-row,.social-link,.dgtv-channel)>.energy-halo{box-shadow:0 9px 22px -10px var(--energy-color),inset 0 -15px 22px -20px var(--energy-color)}
.overcharged .letter:not(.letter-charged){text-shadow:0 0 27px #d9ff4366}
.overcharged .station.is-open .terminal{background:#edfffa;box-shadow:0 0 5px #fff,0 0 20px var(--accent,var(--mint))}
.overcharged .masthead{position:sticky;top:0;z-index:9;background:#090c0cf2;box-shadow:0 9px 24px #090c0c80}
#skip-song[hidden]{display:none}
#skip-song{color:var(--mint);min-width:44px;justify-content:center}
#skip-song svg{width:20px;height:20px}
#skip-song:hover{color:#edfffa;filter:drop-shadow(0 0 6px var(--mint))}
@media(max-width:600px){.utilities{gap:8px}#skip-song .skip-label{display:none}#skip-song{padding:0}#reset{padding-left:10px}}
@media(max-width:360px){.overcharged .brand>span:last-child{display:none}}
.less-motion .letter{transition:none}
@media(prefers-reduced-motion:reduce){.energy-surface>.energy-halo,.cable-current{display:none!important}}

/* One bright invitation every 2.8 seconds, only while the button is in view. */
.production-button{animation:production-flash 2.8s ease-in-out infinite;animation-play-state:paused}
.production-button.energy-visible{animation-play-state:running}
@keyframes production-flash{
 0%,10%,38%,100%{background-color:#58ffd30a;color:var(--mint);border-color:var(--mint);box-shadow:inset 0 0 15px #58ffd30a,0 0 16px #58ffd330}
 18%,26%{background-color:#adffe9;color:#071b15;border-color:#effffb;box-shadow:inset 0 0 15px #ffffff80,0 0 8px #d6fff4,0 0 30px #58ffd3b3,0 0 58px #58ffd366}
}
.production-button:is(:hover,:focus-visible){animation:none;background-color:var(--mint);color:#09120f;box-shadow:0 0 30px #58ffd380}
.page-idle .production-button,body:has(dialog[open]) .production-button{animation-play-state:paused}
.less-motion .production-button{animation:none!important}
@media(prefers-reduced-motion:reduce){.production-button{animation:none!important}}

/* A dedicated signal between the opening panels and the photo reel. */
.services-spotlight{--energy-color:var(--mint);position:relative;z-index:2;isolation:isolate;margin:0 32px 76px;border:1px solid #58ffd39c;border-radius:8px;background:radial-gradient(ellipse at 4% 50%,#58ffd31b,transparent 48%),linear-gradient(110deg,#0d221d,#0c1719 62%,#1c142c);box-shadow:0 0 0 4px #58ffd307,inset 0 0 0 5px #090c0c,0 0 30px #58ffd30d;transition:border-color .25s,box-shadow .25s,background-color .25s}
.services-spotlight:before{content:'';position:absolute;inset:8px;border:1px solid #58ffd329;border-radius:3px;pointer-events:none;z-index:-1}
.services-spotlight:after{content:'';position:absolute;left:144px;right:36px;bottom:22px;height:1px;background:linear-gradient(90deg,var(--mint),#58ffd31a 55%,var(--purple));pointer-events:none;opacity:.6}
.services-link{display:flex;align-items:center;min-height:138px;padding:28px 36px 38px 144px;color:var(--mint);font:700 clamp(32px,3.4vw,49px)/1.12 var(--display);letter-spacing:.01em;text-shadow:0 0 24px #58ffd330;transition:color .25s,text-shadow .25s}
.services-link:focus-visible{outline:2px solid var(--lime);outline-offset:7px;border-radius:6px}
.services-signal{position:absolute;left:30px;top:50%;translate:0 -50%;width:88px;height:88px;pointer-events:none;overflow:visible;color:var(--mint);filter:drop-shadow(0 0 8px #58ffd35c)}
.signal-orbit{stroke:var(--purple);stroke-width:1;stroke-dasharray:34 7 2 7;transform-origin:50px 50px}
.signal-ring{stroke:currentColor;stroke-width:.7;opacity:.35}
.signal-envelope{stroke:currentColor;stroke-width:1.6;stroke-linejoin:round}
.signal-spark{fill:var(--mint)}
.signal-bolt{fill:var(--lime);stroke:#0d221d;stroke-width:3;paint-order:stroke}
.services-spotlight.energy-visible .signal-orbit{animation:services-orbit 24s linear infinite}
.services-spotlight.energy-visible .signal-spark{animation:services-signal 3.8s ease-in-out infinite}
.services-spotlight:is(:hover,:focus-within){border-color:var(--mint);box-shadow:0 0 0 4px #58ffd314,0 0 34px #58ffd32b,inset 0 0 36px #58ffd30e}
.services-link:hover,.services-link:focus-visible{color:#edfff8;text-shadow:0 0 7px #58ffd3c4,0 0 27px #58ffd3a0}
.services-spotlight:is(:hover,:focus-within) .signal-envelope{stroke:#edfff8}
@keyframes services-orbit{to{transform:rotate(360deg)}}
@keyframes services-signal{0%,100%{opacity:.45}48%{opacity:1;filter:drop-shadow(0 0 5px var(--mint))}}
.page-idle .services-signal *,.services-spotlight:not(.energy-visible) .services-signal *,body:has(dialog[open]) .services-signal *{animation-play-state:paused!important}
.less-motion .services-signal *{animation:none!important}
@media(max-width:1000px){.services-spotlight{margin-inline:14px}.services-link{font-size:36px}}
@media(max-width:700px){
 .services-spotlight{margin:0 2px 60px}
 .services-link{min-height:130px;padding:26px 22px 30px 101px;font-size:clamp(27px,7.3vw,35px);line-height:1.15}
 .services-signal{width:62px;height:62px;left:22px}
 .services-spotlight:after{left:101px;right:23px;bottom:19px}
}
@media(prefers-reduced-motion:reduce){.services-signal *{animation:none!important}.services-link,.services-spotlight{transition:none}}

/* Owner-supplied arcade artwork stays intact inside a native button. */
.ignition-row{align-items:center;gap:32px}
.ignition-row>p{line-height:1.55}
.ignition{display:flex;flex-direction:column;align-items:stretch;flex-shrink:0;width:clamp(165px,17vw,225px);margin-top:0}
#ignite{--energy-color:#ff3327;position:relative;isolation:isolate;display:block;width:100%;height:auto;min-width:0;padding:0;gap:0;border:0;border-radius:13px;outline:none;background:transparent;box-shadow:none;transform:none;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
#ignite .ignite-face{position:relative;display:block;width:100%;padding:0;border:0;background:none;box-shadow:none;transform:translateY(0);transition:transform .12s ease-out,filter .15s ease-out}
#ignite .ignite-art{display:block;width:100%;height:auto;margin:0;pointer-events:none;user-select:none}
#ignite .ignite-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
#ignite:hover:not(:disabled) .ignite-face{filter:brightness(1.08) drop-shadow(0 0 7px #ff332780);transform:translateY(-2px)}
#ignite:active:not(:disabled) .ignite-face,#ignite:disabled .ignite-face{transform:translateY(3px) scale(.985);filter:brightness(.94)}
#ignite:disabled{cursor:progress}
#ignite:focus-visible{outline:3px solid #ff675e;outline-offset:5px}
#ignite>.energy-halo{display:none!important}
.ignition-note{margin-top:7px;text-align:center}
@media(max-width:900px){.ignition{width:160px}.ignition-row>p{max-width:440px}}
@media(max-width:600px){.ignition{display:flex;align-items:stretch;width:50%;margin:0 auto}.ignition-row>p{max-width:none}.ignition-note{text-align:center;margin-top:9px}}
.less-motion #ignite .ignite-face{transition:none}
@media(prefers-reduced-motion:reduce){#ignite .ignite-face{transition:none}}

/* A small broadcast break between the photo reel and the collections. */
.dgtv-promo{position:relative;z-index:2;isolation:isolate;display:grid;grid-template-columns:240px minmax(0,1fr);align-items:center;gap:42px;margin:60px 32px 48px;padding:30px 42px;border:1px solid #b285ffb3;border-radius:12px;background:radial-gradient(ellipse at 8% 50%,#b285ff20,transparent 62%),linear-gradient(110deg,#181327,#0b1517);box-shadow:inset 0 0 0 5px #090c0c,0 0 28px #b285ff18;overflow:hidden}
.dgtv-promo:before{content:'';position:absolute;inset:10px;border:1px solid #b285ff2e;border-radius:5px;z-index:-1;pointer-events:none}
.dgtv-promo-screen{position:relative;padding:12px 15px 24px;border:1px solid var(--purple);border-radius:22px;background:repeating-linear-gradient(0deg,#b285ff0d 0 1px,transparent 1px 4px),#080c10;box-shadow:0 0 0 5px #b285ff0a,inset 0 0 30px #b285ff1a;transform:rotate(-3deg)}
.dgtv-promo-screen h2{margin:0;color:#effffb;font:900 96px/.95 var(--display);letter-spacing:-.025em;text-align:center;text-shadow:3px 0 #b285ffb3,-3px 0 #58ffd373,0 0 28px #b285ff50}
.dgtv-colour-bars{position:absolute;bottom:10px;left:18px;right:18px;height:5px;background:linear-gradient(90deg,var(--lime) 0 20%,var(--mint) 20% 40%,#6cc9ff 40% 60%,var(--purple) 60% 80%,#ff88d8 80%)}
.dgtv-promo-copy{min-width:0}
.dgtv-promo-kicker{margin:0 0 9px;font:12px/1.4 var(--mono);letter-spacing:.13em;color:var(--purple)}
.dgtv-promo-description{margin:0 0 20px;color:#c0d1cb;font:15px/1.5 var(--mono)}
.dgtv-promo-link{display:inline-flex;align-items:center;justify-content:space-between;gap:34px;min-height:58px;padding:12px 24px;border:1px solid var(--lime);border-radius:5px;background:var(--lime);color:#0b1308;font:700 31px/1.1 var(--display);box-shadow:0 0 22px #d9ff4326;transition:transform .2s,box-shadow .2s,background-color .2s}
.dgtv-promo-link svg{width:25px;height:25px;flex:none}
.dgtv-promo-link:hover{transform:translateY(-2px);background:#edff98;box-shadow:0 0 30px #d9ff4359}
.dgtv-promo-link:focus-visible{outline:3px solid var(--mint);outline-offset:5px}
.dgtv-promo-link:active{transform:translateY(1px)}
@media(max-width:900px){.dgtv-promo{margin-inline:14px;grid-template-columns:180px minmax(0,1fr);gap:28px;padding:28px}.dgtv-promo-screen h2{font-size:75px}.dgtv-promo-link{font-size:28px}}
@media(max-width:600px){.dgtv-promo{grid-template-columns:minmax(0,1fr);gap:26px;margin:48px 2px 42px;padding:30px 22px;text-align:center}.dgtv-promo-screen{width:190px;justify-self:center}.dgtv-promo-screen h2{font-size:80px}.dgtv-promo-kicker{font-size:10px}.dgtv-promo-description{font-size:12px}.dgtv-promo-link{width:100%;font-size:29px;gap:12px;padding:13px 18px}}
.less-motion .dgtv-promo-link{transition:none}
@media(prefers-reduced-motion:reduce){.dgtv-promo-link{transition:none}}

/* The supplied green control becomes a red, overcharged alarm on activation. */
#ignite{--energy-color:#baff00}
#ignite .ignite-face{filter:drop-shadow(0 0 9px #baff0080)}
#ignite .ignite-art-idle{transition:opacity .65s ease-out}
#ignite .ignite-art-active{transition:opacity .65s ease-out;position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0}
#ignite:hover:not(:disabled) .ignite-face{filter:brightness(1.12) drop-shadow(0 0 16px #baff00aa)}
.alarm-active #ignite{--energy-color:#ff2415}
.alarm-active #ignite .ignite-art-idle{opacity:0}
.alarm-active #ignite .ignite-art-active{opacity:1}
.alarm-active #ignite .ignite-face{animation:alarm-button 1.6s ease-in-out infinite}
.studio-home.alarm-active::after{content:"";position:fixed;inset:0;z-index:100;pointer-events:none;background:radial-gradient(ellipse at center,transparent 32%,#ff10004d 100%);box-shadow:inset 0 0 100px #ff170080;animation:alarm-room 1.6s ease-in-out infinite}
.alarm-active .energy-surface{--energy-color:#ff3020!important}
.alarm-active .energy-surface>.energy-halo{animation:alarm-circuit 1.6s ease-in-out infinite}
@keyframes alarm-button{0%,100%{filter:brightness(1.1) drop-shadow(0 0 12px #ff2415) drop-shadow(0 0 24px #ff241580)}50%{filter:brightness(1.45) drop-shadow(0 0 24px #ff2415) drop-shadow(0 0 45px #ff2415cc)}}
@keyframes alarm-room{0%,100%{opacity:.18}50%{opacity:1}}
@keyframes alarm-circuit{0%,100%{opacity:.45}50%{opacity:1}}
.less-motion.alarm-active::after,.less-motion.alarm-active #ignite .ignite-face,.less-motion.alarm-active .energy-surface>.energy-halo{animation:none}
.less-motion.alarm-active::after{opacity:.25}
@media(prefers-reduced-motion:reduce){.studio-home.alarm-active::after,.alarm-active #ignite .ignite-face,.alarm-active .energy-surface>.energy-halo{animation:none}.studio-home.alarm-active::after{opacity:.25}}
