/* storytellers. ABOUT — fixed 3D background only. Page typography/layout untouched.
   The black stage is opaque from the first paint (same black as the preloader), so no other background ever flashes;
   the 3D canvas glides in from black only after the site preloader has finished and the scene is warmed up. */
.sf-stage { position: fixed; inset: 0; z-index: 0; pointer-events: none; background: #000; }
html.sf-no3d .sf-stage { display: none; }
body.page-studio .galaxy--inner { visibility: hidden; }            /* the 3D stage replaces the 2D galaxy from the very first paint */
html.sf-no3d body.page-studio .galaxy--inner { visibility: visible; } /* fallback when WebGL2 is unavailable */
.sf-canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; opacity: 0; transition: opacity 2.4s cubic-bezier(.33,0,.2,1); }
html.sf-on .sf-canvas { opacity: 1; }
.sf-stage::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, rgba(0,0,0,.18) 0%, rgba(0,0,0,0) 30%, rgba(0,0,0,0) 62%, rgba(0,0,0,.34) 100%); }
