/* SHADOWNET // Overview Dual Trace. Content is NEVER hidden. */
[data-module-container="overview"] .sn-dual-positioned{position:relative}
[data-module-container="overview"] .sn-dual-frame{
 position:absolute;inset:0;z-index:9;pointer-events:none;overflow:hidden;
 border-radius:inherit;isolation:isolate;
}
[data-module-container="overview"] .sn-dual-frame svg{
 position:absolute;inset:0;width:100%;height:100%;overflow:visible;
 fill:none;stroke:#42e8ff;stroke-width:.42;vector-effect:non-scaling-stroke;
 filter:drop-shadow(0 0 3px rgba(45,226,255,.9));
}
[data-module-container="overview"] .sn-dual-frame path{
 stroke-dasharray:100;stroke-dashoffset:100;
}
[data-module-container="overview"] .sn-dual-frame.sn-dual-active path{
 animation:sn-dual-draw 800ms linear both;
}
@keyframes sn-dual-draw{0%{stroke-dashoffset:100;opacity:1}95%{opacity:1}100%{stroke-dashoffset:0;opacity:.15}}
[data-module-container="overview"] .sn-dual-sweep{
 position:absolute;inset:0;
 background:linear-gradient(90deg,transparent 0%,rgba(22,205,235,.025) 40%,rgba(79,239,255,.14) 95%,rgba(186,252,255,.32) 100%);
 transform:translateX(-103%);opacity:0;
}
[data-module-container="overview"] .sn-dual-frame.sn-dual-active .sn-dual-sweep{
 animation:sn-dual-scan 800ms ease-in-out both,sn-dual-cleanup 100ms linear 800ms forwards;
}
@keyframes sn-dual-scan{0%{transform:translateX(-103%);opacity:0}8%{opacity:1}80%{opacity:1}100%{transform:translateX(103%);opacity:0}}
@keyframes sn-dual-cleanup{to{opacity:0}}
@media(prefers-reduced-motion:reduce){
 [data-module-container="overview"] .sn-dual-frame{display:none!important}
}

/* Content is progressively unmasked from left to right, synchronized with frame draw.
   The animation always ends fully visible, even if JS cleanup fails. */
[data-module-container="overview"] .sn-dual-revealing > :not(.sn-dual-frame){
 animation:sn-dual-content-reveal 800ms linear both;
}
@keyframes sn-dual-content-reveal{
 from{clip-path:inset(0 100% 0 0)}
 to{clip-path:inset(0 0 0 0)}
}
@media(prefers-reduced-motion:reduce){
 [data-module-container="overview"] .sn-dual-revealing > :not(.sn-dual-frame){animation:none!important}
}

/* Make content visible only once its specific panel starts materializing. */
html.sn-overview-prepaint [data-module-container="overview"] .sn-dual-revealing > :not(.sn-dual-frame){visibility:visible}
