:root{--af-ink:#333c37;--af-cream:#f6efe1;--af-paper:#fff4db;--af-mustard:#d7a449;--af-mustard-lit:#e9b54c;--af-teal:#abc0b5;--af-rust:#ba694c;--af-glass:#e6eee8;--af-rework-glass:#e2c4b3;--af-green:#4d8069;--af-white:#fff;--af-trace:#efe3c2;--af-fit-width:min(1200px,100%,calc((100svh - 20px) * 1440 / 1370))}
*{box-sizing:border-box}
html{background:#fff;color:var(--af-ink)}
body{margin:0;background:#fff}
main{min-height:100svh;display:grid;place-items:center;padding:10px}
@media (max-width:600px){main{padding:6px}}
.af-vh{position:absolute !important;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
#af-factory{position:relative;margin:0;width:var(--af-fit-width)}
#af-viewport{position:relative;display:block;width:var(--af-fit-width);aspect-ratio:1440 / 1370;overflow:hidden;container-type:inline-size;touch-action:pan-y;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}
#af-viewport:focus{outline:none}
#af-viewport:focus-visible{outline:2px solid var(--af-mustard);outline-offset:2px}
#af-viewport[data-mode="explore"]{touch-action:none;cursor:grab}
#af-stage{position:absolute;left:0;top:0;width:1440px;height:1370px;transform-origin:0 0;transform:scale(.8333333);transform:scale(tan(atan2(100cqw,1440px)))}
#af-stage.is-tweening{will-change:transform}
.af-layer{position:absolute;left:0;top:0;width:1440px;height:1370px;transform:translate(21.6px,22.8px) scale(.97);transform-origin:0 0;pointer-events:none}
.af-cmp{position:absolute;margin:0;transition:opacity 200ms,filter 150ms}
.af-cmp > svg{position:absolute;left:0;top:0;width:100%;height:100%;display:block;overflow:visible}
.af-cmp svg *{pointer-events:visiblePainted}
#st-dbarm,#st-dbarm svg *,#condenser-back svg *,#condenser-shade svg *{pointer-events:none}
.af-cmp:focus{outline:none}
.af-cmp:focus-visible,.af-cmp.is-focused:focus{outline:2px solid var(--af-mustard);outline-offset:3px;border-radius:8px}
.ink{stroke:var(--af-ink);stroke-width:4;stroke-linecap:round;stroke-linejoin:round}
.tube,.glass{fill:none;stroke-linecap:round;stroke-linejoin:round}
.tube{stroke:var(--af-ink);stroke-width:26}
.glass{stroke:var(--af-glass);stroke-width:19}
.route{fill:none;stroke:none}
.af-roller{transform:rotate(var(--roll,0deg))}
#press-hinge,#press-knuckles .bed-leaves{transform:translateY(var(--rc,0px))}
#press-lamp[data-lamp=lit] circle{fill:var(--af-mustard)}
.rework-tube{stroke-width:21}
.rework-glass{stroke:var(--af-rework-glass);stroke-width:14}
.bulge{fill:var(--af-glass);stroke:var(--af-ink);stroke-width:3.5}
.rework-tube ~ .bulge{fill:var(--af-rework-glass)}
.af-glass{position:absolute;left:0;top:0;width:1440px;height:1370px;overflow:visible}
.shell{fill:var(--af-cream)}
#st-intake .shell,#st-sort .shell{fill:var(--af-mustard)}
#st-assemble .shell,#st-validate .shell{fill:var(--af-teal)}
.lamp,#merge-lamp{transition:fill 120ms}
.lamp,.lamp[data-lamp="off"]{fill:var(--af-teal)}
#merge-lamp,#merge-lamp[data-lamp="off"]{fill:var(--af-mustard)}
.lamp[data-lamp="lit"],#merge-lamp[data-lamp="lit"]{fill:var(--af-mustard-lit)}
.lamp[data-lamp="rust"],#merge-lamp[data-lamp="rust"]{fill:var(--af-rust)}
.lamp[data-lamp="green"],#merge-lamp[data-lamp="green"]{fill:var(--af-green)}
#st-bench [id^=bench-puff] *{pointer-events:none}#st-bench .lamp{fill:var(--af-paper)}#st-bench .lamp[data-lamp="teal"]{fill:var(--af-teal)}#st-bench .lamp[data-lamp="rust"]{fill:var(--af-rust)}
#mag-arm-a{transform:translate(822px,1142px) rotate(var(--mag-a,-6.09deg))}#mag-tie{transform:translate(822px,1130px) rotate(var(--mag-a,-6.09deg))}
#af-wordmark{position:absolute;left:137.03px;top:388.49px;width:1230px;height:677.05px;margin:0;padding:0;font-size:0;line-height:0;pointer-events:none}
#af-wordmark > svg{position:absolute;left:0;top:0;width:100%;height:100%;display:block}
#af-wordmark svg path{pointer-events:visiblePainted}
#af-jobs .af-job{position:absolute;left:0;top:0;width:0;height:0;will-change:transform;stroke:var(--af-ink);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.af-job-art{position:absolute;left:-60px;top:-60px;width:120px;height:120px;overflow:visible;transform-origin:50% 50%}
.af-job .hit{fill:none;stroke:none;pointer-events:all}
.af-job .bd{fill:#cfdcd5;visibility:hidden}.af-job[data-z]{z-index:1}.af-job[data-z=""]{z-index:auto}.af-job[data-z="2"] .bd,.af-job[data-z="3"] .bd{visibility:visible}.af-job[data-z="2"]{z-index:2}.af-job[data-z="3"]{z-index:3}.af-job[data-z="3"] .bd{fill:#eef3ef}.af-job[data-z=s] .af-job-art{clip-path:inset(0 41px)}
.af-job.is-followed .af-job-art{filter:drop-shadow(0 0 3px var(--af-mustard-lit))}
#af-fx,#af-fx *{pointer-events:none}
#af-halo{position:absolute;left:0;top:0;width:1440px;height:1370px;overflow:visible;opacity:0;transition:opacity 150ms}
#af-halo.is-on,#af-stage:has(.af-cmp.is-focused) #af-halo{opacity:1}
#af-veil{position:absolute;left:0;top:0;width:1440px;height:1370px;background:var(--af-white);opacity:0;transition:opacity 200ms}
#af-veil.is-on{opacity:.55}
#af-reticle{position:absolute;left:-30px;top:-30px;width:60px;height:60px;overflow:visible;opacity:0;transition:opacity 150ms}
#af-reticle.is-on,#af-stage:has(.af-job.is-followed) #af-reticle{opacity:1}
.af-cmp.is-dimmed{opacity:.35}
.af-cmp.is-related{filter:drop-shadow(0 0 2px var(--af-mustard-lit))}
.af-pipe.is-traced .glass{stroke:var(--af-trace)}
.af-pipe.is-traced .bulge{fill:var(--af-trace)}
#st-belt-drive.is-scrubbing,#st-belt-drive.is-scrubbing *{cursor:grabbing}
@media (hover:hover){
  .af-cmp:hover{filter:drop-shadow(0 0 3px var(--af-mustard))}
  .af-cmp{cursor:zoom-in}
  .af-job .hit{cursor:pointer}
  #driven-wheel,#driven-wheel *{cursor:grab}
  #st-belt-drive.is-scrubbing #driven-wheel,#st-belt-drive.is-scrubbing #driven-wheel *{cursor:grabbing}
}
#af-inspector{position:absolute;left:12px;bottom:12px;width:280px;max-width:calc(100% - 24px);background:var(--af-cream);border:2px solid var(--af-ink);border-radius:12px;padding:14px;font:14px/1.4 system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--af-ink)}
#af-inspector[hidden]{display:none}
.af-insp-close{position:absolute;top:2px;right:2px;width:44px;height:44px;padding:0;border:0;border-radius:10px;background:transparent;color:inherit;font:22px/1 system-ui,sans-serif;cursor:pointer}
.af-insp-title{margin:0 40px 4px 0;font-size:16px;line-height:1.3;font-weight:700}
.af-insp-role{margin:0 0 10px}
.af-insp-data{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;margin:0 0 10px}
.af-insp-data:empty{display:none}
.af-insp-data dt{font-weight:600}
.af-insp-data dd{margin:0;font-variant-numeric:tabular-nums}
.af-insp-ghost{display:block;width:56px;height:24px;margin:0 0 10px;overflow:visible}
#af-inspector [hidden]{display:none}
.af-insp-journey{display:flex;gap:6px;margin:0 0 10px;padding:0;list-style:none}
.af-insp-journey li{width:14px;height:14px;border:2px solid var(--af-ink);border-radius:50%;background:var(--af-paper)}
.af-insp-journey li.is-done{background:var(--af-teal)}
.af-insp-journey li.is-current{background:var(--af-mustard-lit)}
.af-insp-nav{display:flex;gap:8px}
.af-insp-nav button{min-width:44px;height:36px;padding:0 10px;border:2px solid var(--af-ink);border-radius:10px;background:var(--af-paper);color:var(--af-ink);font:14px/1 system-ui,sans-serif;cursor:pointer}
#af-controls{position:absolute;right:12px;bottom:12px;display:flex;gap:8px;align-items:flex-end}
#af-controls button{border:2px solid var(--af-ink);border-radius:10px;background:var(--af-cream);color:var(--af-ink);font:14px/1 system-ui,-apple-system,"Segoe UI",sans-serif;cursor:pointer}
#af-pause{position:relative;width:36px;height:36px;padding:0;overflow:hidden;white-space:nowrap;text-indent:200%}
#af-pause::before,#af-pause::after{content:"";position:absolute;top:10px;width:4px;height:12px;border-radius:1px;background:var(--af-ink)}
#af-pause::before{left:10px}
#af-pause::after{left:18px}
#af-pause[aria-pressed="true"]::before{left:11px;top:9px;width:12px;height:14px;border-radius:0;clip-path:polygon(0 0,100% 50%,0 100%)}
#af-pause[aria-pressed="true"]::after{display:none}
#af-reset{order:-1;min-height:44px;padding:0 16px}
#af-reset[hidden]{display:none}
#af-factory:has(#af-viewport[data-mode="explore"]) #af-reset{display:inline-block}
#af-controls button:focus-visible,#af-inspector button:focus-visible{outline:3px solid var(--af-ink);outline-offset:2px}
@media (max-width:699px){
  #af-controls{position:static;justify-content:flex-end;margin-top:8px}
  #af-inspector{position:static;width:auto;max-width:none;margin-top:8px}
}
@media (prefers-reduced-motion:reduce){.lamp,#merge-lamp,.af-cmp,#af-halo,#af-veil,#af-reticle{transition:none}}
