/* A narrow conductor marks the transition out of the portfolio.
   The filament has a static fallback; travelling charges run only in view. */
.energy-divider{position:absolute;inset:0 0 auto;height:96px;transform:translateY(-50%);z-index:2;pointer-events:none;overflow:hidden;contain:paint}
.energy-divider svg{display:block;width:100%;height:100%;overflow:visible}
.energy-rail{stroke:url(#energy-spectrum);stroke-width:1;opacity:.48}
.energy-haze{stroke:url(#energy-spectrum);stroke-width:2.5;opacity:.28;filter:blur(4px)}
.energy-charge{stroke-width:2;stroke-dasharray:.12 .88;opacity:0;filter:blur(1.5px)}
.energy-electron{stroke-width:2.4;stroke-dasharray:.0015 .9985;opacity:0}
.energy-charge-forward{stroke:#55d9fb}
.energy-electron-forward{stroke:#ddfcff}
.energy-charge-return{stroke:#9e87ff;stroke-dasharray:.08 .92}
.energy-electron-return{stroke:#e9ddff}
@media(prefers-reduced-motion:no-preference){
 .energy-divider-ready .energy-charge-forward,.energy-divider-ready .energy-electron-forward{animation:energy-flow 8s linear infinite;animation-play-state:paused}
 .energy-divider-ready .energy-charge-return,.energy-divider-ready .energy-electron-return{animation:energy-counterflow 11s linear infinite;animation-delay:-4s;animation-play-state:paused}
 .energy-divider-active .energy-charge,.energy-divider-active .energy-electron{animation-play-state:running}
 .energy-divider-ready .energy-charge{opacity:.65}
 .energy-divider-ready .energy-electron{opacity:.95}
}
@keyframes energy-flow{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes energy-counterflow{from{stroke-dashoffset:-1}to{stroke-dashoffset:0}}
@media(max-width:767px){.energy-divider{height:72px}.energy-rail{stroke-width:1.2}.energy-electron{stroke-width:2.6;stroke-dasharray:.004 .996}.energy-haze{filter:blur(3px)}}
@media(forced-colors:active){.energy-divider{display:none}}

/* The signature keeps its yellow conductor beneath the same travelling light. */
.closing-trace .energy-charge{stroke-width:3;filter:blur(1.5px)}
.closing-trace .energy-electron{stroke-width:3.5;stroke-dasharray:.004 .996}

/* One continuous current joins the upper separator and the signature trace. */
.closing-circuit{position:absolute;inset:0;width:100%;height:100%;z-index:3;pointer-events:none;overflow:visible;fill:none;stroke-linecap:round;stroke-linejoin:round}
.circuit-connection{stroke:url(#closing-circuit-spectrum);stroke-width:1;opacity:.2}
.circuit-trail{stroke:url(#closing-circuit-spectrum);stroke-width:2;stroke-dasharray:.07 .93;opacity:0;filter:blur(1px)}
.circuit-electron{stroke:#e3faff;stroke-width:2.5;stroke-dasharray:.0015 .9985;opacity:0}
.has-energy-loop .energy-charge,.has-energy-loop .energy-electron{display:none}
@media(prefers-reduced-motion:no-preference){
 .closing-circuit-ready .circuit-trail{animation:circuit-current 10s linear infinite;animation-play-state:paused;opacity:.75}
 .closing-circuit-ready .circuit-electron{animation:circuit-electron 10s linear infinite;animation-play-state:paused;opacity:.95}
 .closing-circuit-active .circuit-trail,.closing-circuit-active .circuit-electron{animation-play-state:running}
}
@keyframes circuit-current{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes circuit-electron{from{stroke-dashoffset:.93}to{stroke-dashoffset:-.07}}
@media(max-width:767px){.circuit-electron{stroke-dasharray:.003 .997}.circuit-connection{opacity:.17}}
@media(forced-colors:active){.closing-circuit{display:none}}

/* Balance the statement between both rails, at every viewport size. */
.has-energy-loop #closing-title{transform:translateY(var(--closing-copy-offset,0px))}
