/* The scene owns only its canvas and the graceful, code-native fallback. */
.signal-stage{isolation:isolate;position:relative;min-width:0;overflow:hidden;}
.signal-stage canvas#signal-canvas{display:block;position:absolute;inset:0;width:100%;height:100%;outline:none;opacity:0;transition:opacity 1.1s ease;z-index:2;}
.signal-stage.signal-ready canvas#signal-canvas{opacity:1;}
.signal-fallback{position:absolute;inset:8% 10%;z-index:1;display:grid;place-items:center;pointer-events:none;opacity:1;transition:opacity .8s ease;}
.signal-stage.signal-ready .signal-fallback{opacity:0;}
.signal-fallback::before,.signal-fallback::after{content:"";position:absolute;width:58%;height:72%;border:1px solid #c1a36b;border-radius:15%;transform:perspective(700px) rotateY(-30deg) rotateZ(-12deg);box-shadow:9px 5px 0 -1px #10110f,10px 5px 0 #8f7950,19px 10px 0 -1px #10110f,20px 10px 0 #6d624a,29px 15px 0 -1px #10110f,30px 15px 0 #484936,39px 20px 0 -1px #10110f,40px 20px 0 #343b2f;}
.signal-fallback::after{transform:perspective(700px) rotateY(-30deg) rotateZ(-7deg) translateZ(-40px) scale(.86);opacity:.5;}
@media(prefers-reduced-motion:reduce){.signal-stage canvas#signal-canvas,.signal-fallback{transition:none;}}
