.factory-hero{background:#081322;color:#edf3fa;position:relative;isolation:isolate;width:100%;height:calc(100svh - var(--factory-header-height,94px));min-height:0;overflow:hidden}
.factory-scene{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;isolation:isolate;direction:ltr}
.factory-off,.factory-room,.factory-wires,.factory-complete,.factory-switch-light{position:absolute;inset:0;width:100%;height:100%}
.factory-off{display:block;object-fit:fill;user-select:none}
.factory-room,.factory-complete,.factory-switch-light{opacity:0;background-size:100% 100%;background-repeat:no-repeat;transition:opacity .65s ease;pointer-events:none}
.factory-room.is-on{opacity:1}
.factory-switch-light{clip-path:inset(38.8% 82.6% 42.5% 7.2%)}
.is-powered .factory-switch-light,.is-fully-lit .factory-complete{opacity:1}
.factory-hero.is-switch-off .factory-switch-light{background-image:var(--factory-switch-off)!important;opacity:1;transition:none}
.factory-wire.is-on{stroke:#ffdb75;stroke-opacity:.65}
.factory-wires{pointer-events:none;overflow:visible}
.factory-wire{fill:none;stroke:#9ab5ca;stroke-opacity:.15;stroke-width:1.5;vector-effect:non-scaling-stroke}
.factory-spark{fill:none;stroke:#ffe180;stroke-width:3;stroke-linecap:round;filter:drop-shadow(0 0 5px #ffd34d);opacity:0;vector-effect:non-scaling-stroke}
.factory-controls{display:flex;align-items:center;justify-content:center;gap:24px;padding:20px 4% 0;max-width:1250px;margin:auto}
.factory-switch{position:absolute;left:13.05%;top:43.9%;transform:translate(-50%,-50%);width:2.5%;height:10%;min-width:44px;min-height:44px;padding:0;border:1px solid #ffdf8a99;border-radius:6px;background:transparent;box-shadow:0 0 0 5px #ffd34d12,0 0 22px #ffd34d30;z-index:3;cursor:pointer;transition:box-shadow .2s}
.factory-switch:hover{box-shadow:0 0 0 7px #ffd34d22,0 0 30px #ffd34d70}
.factory-switch[aria-pressed=true]{border-color:#ffe180;box-shadow:0 0 20px #ffd34d70}
.factory-switch-arrow{position:absolute;width:86px;height:66px;bottom:calc(100% + 9px);left:45%;overflow:visible;pointer-events:none;fill:none;stroke:#ffe29a;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 2px 4px #000);animation:factory-point 1.5s ease-in-out infinite}
.is-powered .factory-switch-arrow,.factory-hero[aria-busy=true] .factory-switch-arrow{opacity:0;animation:none}
.factory-switch.is-floating{width:72px!important;height:72px!important;background-color:#111;background-image:var(--factory-switch-off);background-size:972% auto;background-position:8% 47.5%;border-radius:7px}
.is-powered .factory-switch.is-floating{background-image:var(--factory-switch-on,var(--factory-switch-off))}
@keyframes factory-point{50%{transform:translateY(6px)}}
.factory-switch:disabled{cursor:progress}.factory-switch:focus-visible{outline:3px solid #ffe180;outline-offset:5px}
.factory-status{font-size:12px;line-height:2;color:#c2d0df;max-width:450px;min-height:24px}
.factory-progress{font-size:12px;white-space:nowrap;color:#ffe180;direction:ltr}
.factory-hint{font-size:12px;color:#ffe180;font-weight:700}
.factory-noscript{text-align:center;padding:16px;font-size:12px}
@media(max-width:760px){.factory-controls{gap:10px 18px;flex-wrap:wrap;padding-top:16px}.factory-status{order:3;flex-basis:100%;text-align:center;font-size:11px}.factory-spark{stroke-width:2}.factory-wire{stroke-width:1}.factory-hint{font-size:11px}}
@media(prefers-reduced-motion:reduce){.factory-room,.factory-complete,.factory-switch-light,.factory-switch{transition:none}.factory-switch-arrow{animation:none}}
