/* José only: full-viewport low-alpha atmosphere behind transparent moving objects. */
#restructure300-fx[data-effect^="jose-"]{position:fixed!important;inset:0!important;pointer-events:none!important;isolation:isolate;background:transparent!important;backdrop-filter:none!important}
#restructure300-fx[data-effect^="jose-"]:has(>*)::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:-1;background:rgba(248,237,212,.14)}
html[data-theme="dark"] #restructure300-fx[data-effect^="jose-"]:has(>*)::before{background:rgba(12,24,38,.16)}
#restructure300-fx[data-effect^="jose-"] .j314-stage{position:relative;width:min(92vw,720px);aspect-ratio:3/2;max-height:78vh;overflow:visible;border:0;border-radius:0;box-shadow:none;background:transparent;animation:j314-appear .28s ease-out both}
#restructure300-fx[data-effect^="jose-"] .j314-stage canvas{display:block;width:100%;height:100%;object-fit:contain;background:transparent}
#restructure300-fx[data-effect^="jose-"] .j314-stage::after{content:none!important}
#restructure300-fx[data-effect="jose-01"]:has(>*)::before,#restructure300-fx[data-effect="jose-10"]:has(>*)::before{background:radial-gradient(ellipse at 50% 30%,rgba(255,222,142,.18),rgba(248,237,212,.08));animation:shake315-glow 2.6s ease-in-out infinite alternate}
@keyframes shake315-glow{from{opacity:.45}to{opacity:1}}
@media(prefers-reduced-motion:reduce){#restructure300-fx[data-effect^="jose-"]::before{animation:none!important}}
