:root{color-scheme:dark;font-family:var(--tc-font-sans)}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{background:#11100e;color:var(--cream)}button{color:inherit;font:inherit}button:focus-visible{outline:3px solid var(--brass-pale);outline-offset:3px}.app-shell{min-height:100vh;background:linear-gradient(90deg,rgb(255 255 255 / 2%) 1px,transparent 1px) 0 0 / 42px 42px,linear-gradient(rgb(255 255 255 / 2%) 1px,transparent 1px) 0 0 / 42px 42px,var(--ink)}.topbar{min-height:66px;padding:0 24px;border-bottom:1px solid #3d3328;background:#1c1915;display:grid;grid-template-columns:1fr auto 1fr;align-items:center}.brand{display:flex;align-items:center;gap:9px;color:inherit;font-family:Georgia,Times New Roman,serif;font-size:23px;font-weight:700;text-decoration:none}.brand img{width:35px;height:35px;object-fit:contain}.level-position{color:var(--muted);font-size:13px;font-weight:700;letter-spacing:0;text-transform:uppercase}.top-actions{justify-self:end;display:flex;align-items:center;gap:9px}.workshop-link{min-height:34px;padding:0 11px;border:1px solid #514536;border-radius:5px;color:#d8cfbf;display:inline-flex;align-items:center;font-size:11px;font-weight:800;text-decoration:none}.workshop-link:hover{border-color:var(--brass);color:var(--brass-pale)}.workshop-link.playtest-return{border-color:#278c87;background:var(--teal-dark);color:#fff}.job-mode .job-link{display:none}.level-position.playtest-position{color:#75ddd7}.game-layout{width:min(1460px,100%);min-height:calc(100vh - 66px);margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr);align-content:start;background:#242019}.mission-panel{margin:22px 24px 0;padding:18px 20px;border:1px solid #4b3e2e;border-radius:7px;background:#1b1814;display:grid;grid-template-columns:minmax(250px,1.1fr) minmax(230px,.9fr) auto minmax(270px,1fr);align-items:center;gap:18px 24px}.parts-panel{padding:4px 24px 36px;background:#242019;display:grid;grid-template-columns:minmax(0,1fr) minmax(210px,250px);align-items:center;gap:26px}.mission-copy{min-width:0}.eyebrow{margin:0 0 8px;color:var(--brass);font-size:11px;font-weight:800;letter-spacing:0;text-transform:uppercase}h1,h2,p{margin-top:0}h1{margin-bottom:8px;font-family:Georgia,Times New Roman,serif;font-size:clamp(30px,3vw,42px);font-weight:700;line-height:1.02}h2{margin-bottom:0;font-family:Georgia,Times New Roman,serif;font-size:24px;line-height:1.05}.level-flavor{min-height:0;margin-bottom:0;color:var(--muted);font-size:14px;line-height:1.55}.goal-status{min-height:50px;padding:13px 14px;border:1px solid var(--line);border-radius:5px;display:flex;align-items:center;gap:10px;color:#d8d0c2;font-size:13px;font-weight:700;line-height:1.35}.goal-light,.state-pip{width:9px;height:9px;flex:0 0 auto;border:2px solid #8a7d68;border-radius:50%;background:#393129}.goal-status.complete .goal-light,.machine-state.running .state-pip{border-color:#64d5cc;background:var(--teal);box-shadow:0 0 0 4px #179b9729}.metrics{margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.metrics>div{min-width:0;padding-right:10px;border-right:1px solid var(--line)}.metrics>div:last-child{padding-right:0;border-right:0}.metric-label{display:block;margin-bottom:4px;color:#8e8475;font-size:10px;font-weight:800;text-transform:uppercase}.metrics strong{display:block;min-height:26px;overflow:hidden;color:var(--cream);font-size:21px;font-variant-numeric:tabular-nums;white-space:nowrap}.level-tabs{display:grid;grid-template-columns:repeat(5,1fr);gap:5px}.level-tabs[hidden]{display:none}.level-tab{height:34px;padding:0 2px;border:1px solid #554837;border-radius:5px;background:#252019;color:#a69b8b;cursor:pointer;font-size:11px;font-weight:800}.level-tab[aria-selected=true]{border-color:#36b3ae;background:var(--teal-dark);color:#fff}.level-tab .tab-star{color:var(--brass-pale)}.board-section{min-width:0;padding:18px 24px 26px;background:#242019}.board-toolbar{width:min(1280px,100%);min-height:42px;margin:0 auto 14px;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:16px}.machine-state{min-width:0;display:flex;align-items:center;gap:9px;color:#b9af9f;font-size:12px;font-weight:750}.machine-state>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.move-meter{height:38px;padding:0 10px;border:1px solid #514536;border-radius:5px;background:#211d18;display:flex;align-items:center;gap:7px;color:#998e7e;font-size:10px;font-weight:850;font-variant-numeric:tabular-nums;text-transform:uppercase;white-space:nowrap}.move-meter>strong,.move-meter-par strong{color:var(--cream);font-size:14px}.move-meter-par,.star-pace{padding-left:8px;border-left:1px solid #4a4033}.star-pace{color:var(--brass-pale)}.move-meter[data-stars="2"] .star-pace{color:#d8cfbf}.move-meter[data-stars="1"] .star-pace{color:#ef9a76}.tool-actions{display:flex;gap:7px}.icon-button{width:38px;height:38px;padding:0;border:1px solid #514536;border-radius:5px;background:#28231d;color:#d8cfbf;cursor:pointer;display:grid;place-items:center;font-size:18px;font-weight:800;line-height:1}.icon-button:hover:not(:disabled){border-color:var(--brass);color:var(--brass-pale)}.icon-button:disabled{cursor:not-allowed;opacity:.35}.hint-button{font-family:Georgia,Times New Roman,serif}.machine-board{position:relative;isolation:isolate;width:min(1280px,100%);margin:0 auto;aspect-ratio:7 / 5;overflow:hidden;border:2px solid #9a7440;border-radius:10px;background:radial-gradient(circle at 18% 22%,rgb(231 190 111 / 10%),transparent 26%),radial-gradient(circle at 76% 72%,rgb(0 0 0 / 18%),transparent 35%),linear-gradient(145deg,#59462d,#3c3022 48%,#493821);box-shadow:0 18px 35px #00000061,inset 0 0 0 9px #17130f,inset 0 0 0 12px #806038,inset 0 0 38px #0000006b;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.machine-board img,.parts-tray img,.drag-ghost img{-webkit-user-drag:none;-webkit-user-select:none;user-select:none}.board-inset{position:absolute;inset:22px;z-index:-1;border:1px solid rgb(231 190 111 / 38%);border-radius:5px;box-shadow:inset 0 0 24px #0000002e;pointer-events:none}.playtest-mode .machine-board{border-color:#a77c43;background:linear-gradient(rgb(73 177 171 / 13%) 1px,transparent 1px) 0 0 / 34px 34px,linear-gradient(90deg,rgb(73 177 171 / 13%) 1px,transparent 1px) 0 0 / 34px 34px,linear-gradient(rgb(111 222 214 / 8%) 1px,transparent 1px) 0 0 / 170px 170px,linear-gradient(90deg,rgb(111 222 214 / 8%) 1px,transparent 1px) 0 0 / 170px 170px,radial-gradient(circle at 50% 42%,#164b49,#0b2d2c 72%);box-shadow:0 18px 35px #0000006b,inset 0 0 0 9px #151a17,inset 0 0 0 12px #956d3c,inset 0 0 45px #00000085}.playtest-mode .board-inset{border-color:#70e0d857;box-shadow:inset 0 0 28px #00000047}.board-content{position:absolute;inset:0}.machine-node,.endpoint-gear-plane,.socket,.pulley-station,.clutch-station,.ratchet-assembly,.ratchet-station,.lever-control{position:absolute;left:calc((var(--x) + .5) * (100% / 7));top:calc((var(--y) + .5) * 20%);transform:translate(-50%,-50%)}.control-links{position:absolute;inset:0;z-index:1;width:100%;height:100%;overflow:visible;pointer-events:none}.control-links path{fill:none;stroke:#9b7137;stroke-dasharray:.06 .08;stroke-linecap:round;stroke-width:.025;opacity:.72}.belt-assembly{position:absolute;inset:0;z-index:1;pointer-events:none}.player-belt{z-index:4}.belt-run{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.belt-run path{fill:none;stroke-linecap:round}.belt-shadow{stroke:#080706;stroke-width:.19;filter:drop-shadow(0 .055px .05px rgb(0 0 0 / 70%))}.belt-surface{stroke:#38271a;stroke-width:.12}.belt-stitch{stroke:#ba8340;stroke-dasharray:.035 .16;stroke-width:.018;opacity:.46}.belt-assembly.powered .belt-surface{stroke:#473220}.belt-assembly.running .belt-stitch{animation-duration:var(--belt-travel-duration, .65s);animation-iteration-count:infinite;animation-timing-function:linear;stroke:#e0ad59;opacity:.94;filter:drop-shadow(0 0 1.5px rgb(121 225 219 / 82%))}.belt-assembly.running .belt-stitch.flow-forward{animation-name:belt-travel-forward}.belt-assembly.running .belt-stitch.flow-reverse{animation-name:belt-travel-reverse}.player-belt-handle{position:absolute;left:calc((var(--x) + .5) * (100% / 7));top:calc((var(--y) + .5) * 20%);z-index:9;width:30px;height:30px;padding:0;transform:translate(-50%,-50%);border:2px solid #362616;border-radius:50%;background:var(--brass);box-shadow:inset 0 0 0 3px #8c6328,0 3px 7px #0000008c;color:#21170c;cursor:pointer;font-size:13px;font-weight:950;line-height:1;pointer-events:auto;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.player-belt-explanation{position:absolute;bottom:calc(100% + 8px);left:50%;z-index:20;width:min(220px,62vw);padding:9px 10px;transform:translate(calc(-50% + var(--tooltip-shift-x, 0px)),4px);border:1px solid #3bc1bb;border-radius:5px;background:#171511f7;box-shadow:0 8px 20px #00000085;color:#eee4d2;font-size:11px;font-weight:700;line-height:1.35;text-align:left;white-space:normal;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .12s ease,transform .12s ease,visibility .12s ease}.player-belt-handle:hover .player-belt-explanation,.player-belt-handle:focus-visible .player-belt-explanation{transform:translate(calc(-50% + var(--tooltip-shift-x, 0px)));opacity:1;visibility:visible}.player-belt-explanation.tooltip-below{top:calc(100% + 8px);bottom:auto}.player-belt-handle:hover:not(:disabled){background:var(--brass-pale);transform:translate(-50%,-50%) scale(1.08)}.player-belt-handle:disabled{cursor:default}.belt-drag-preview{position:absolute;inset:0;z-index:6;width:100%;height:100%;overflow:visible;pointer-events:none}.belt-drag-preview path{fill:none;stroke-linecap:round}.belt-drag-preview .preview-shadow{stroke:#080706;stroke-width:.2}.belt-drag-preview .preview-surface{stroke:#d7a84d;stroke-dasharray:.08 .08;stroke-width:.11}.pulley-station{z-index:2;width:14.7%;aspect-ratio:1;isolation:isolate}.player-anchor{z-index:5;padding:0;border:0;border-radius:50%;background:transparent;cursor:default;overflow:visible;touch-action:none}.player-anchor.belt-ready{cursor:crosshair}.player-anchor:after{position:absolute;inset:4%;z-index:6;border:2px solid transparent;border-radius:50%;content:"";pointer-events:none;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.player-anchor.belt-ready:hover:after,.machine-board.belt-carrying .player-anchor:after,.player-anchor.belt-start:after,.player-anchor.drag-target:after{transform:scale(1.08);border-color:#79e1db;box-shadow:0 0 0 5px #179b9733,0 0 13px #3ecdc56b}.player-anchor.belt-start:after{border-color:var(--brass-pale);box-shadow:0 0 0 5px #d7a84d33,0 0 13px #d7a84d73}.machine-board.belt-carrying .player-anchor.drag-target:after{transform:scale(1.16);border-color:var(--brass-pale);box-shadow:0 0 0 7px #d7a84d40,0 0 18px #79e1db8f}.player-anchor.hint:after{animation:hint-pulse .7s ease-in-out 3;border-color:var(--brass-pale)}.pulley-art{--gear-size-scale: 1.75;--pulley-art-top: 0%;--pulley-art-origin-y: 50%;position:absolute;top:var(--pulley-art-top);left:0;z-index:1;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 5px 4px rgb(0 0 0 / 46%));pointer-events:none;transform:scale(var(--gear-size-scale)) rotate(var(--gear-phase, 0deg));transform-origin:50% var(--pulley-art-origin-y)}.pulley-type-small .pulley-art{--gear-size-scale: 1.35;--pulley-art-top: 3%;--pulley-art-origin-y: 47%}.pulley-type-medium .pulley-art{--gear-size-scale: 1.75;--pulley-art-top: 3%;--pulley-art-origin-y: 47%}.pulley-type-large .pulley-art{--gear-size-scale: 1.55;--pulley-art-top: 1%;--pulley-art-origin-y: 49%}.pulley-station .station-pinion{z-index:3}.pulley-hub{position:absolute;top:50%;left:50%;z-index:4;width:12px;height:12px;transform:translate(-50%,-50%);border:2px solid #3c2915;border-radius:50%;background:var(--brass);box-shadow:inset 0 0 0 2px #8c6328,0 2px 3px #0000008c;pointer-events:none}.pulley-motion-marker{--pulley-marker-scale: 1.75;--pulley-marker-top: 0%;--pulley-marker-origin-y: 50%;position:absolute;top:var(--pulley-marker-top);left:0;z-index:5;width:100%;height:100%;transform:scale(var(--pulley-marker-scale)) rotate(var(--gear-phase, 0deg));transform-origin:50% var(--pulley-marker-origin-y);border-radius:50%;opacity:0;pointer-events:none}.pulley-motion-marker:before{position:absolute;top:5%;left:50%;width:4px;height:7px;transform:translate(-50%);border:1px solid #183c3a;border-radius:4px;background:#79e1db;box-shadow:0 0 5px #43dad0d1,0 1px 2px #000000b8;content:""}.pulley-type-small .pulley-motion-marker{--pulley-marker-scale: 1.35;--pulley-marker-top: 3%;--pulley-marker-origin-y: 47%}.pulley-type-medium .pulley-motion-marker{--pulley-marker-scale: 1.75;--pulley-marker-top: 3%;--pulley-marker-origin-y: 47%}.pulley-type-large .pulley-motion-marker{--pulley-marker-scale: 1.55;--pulley-marker-top: 1%;--pulley-marker-origin-y: 49%}.pulley-station.turning .pulley-motion-marker{animation:pulley-marker-cycle var(--gear-duration, 1.9s) linear forwards;opacity:.96}.pulley-station.powered .pulley-art,.pulley-station.powered .station-pinion{filter:drop-shadow(0 0 7px rgb(56 190 183 / 35%)) drop-shadow(0 5px 4px rgb(0 0 0 / 46%))}.pulley-station.turning .pulley-art,.pulley-station.turning .station-pinion{animation:gear-cycle var(--gear-duration, 1.9s) linear forwards}.machine-node{z-index:2;width:16%;aspect-ratio:1;display:grid;place-items:center;pointer-events:none}.machine-node img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 7px 5px rgb(0 0 0 / 45%))}.machine-node.target{width:15.5%}.machine-node.endpoint{isolation:isolate;z-index:9}.endpoint-gear-plane{z-index:6;width:14.7%;aspect-ratio:1;pointer-events:none}.endpoint-gear-plane.visual-layer-1{z-index:8}.endpoint-gear-plane .endpoint-gear{filter:saturate(.88) brightness(.88) drop-shadow(0 6px 4px rgb(0 0 0 / 42%))}.machine-node.endpoint .module-art{--module-scale-x: 1;position:relative;z-index:2;width:90%;height:90%;transform:translate(var(--module-x, 0),var(--module-y, 0)) scaleX(var(--module-scale-x));filter:drop-shadow(0 7px 5px rgb(0 0 0 / 48%))}.machine-node.source .module-art{--module-x: -31%;--module-y: -12%;width:94%;height:94%}.machine-node.target .module-art{--module-x: 28%;--module-y: 6%;width:82%;height:82%}.machine-node.target-generator .module-art{--module-x: 31%;--module-y: 2%;width:88%;height:88%}.machine-node.source.endpoint-mirrored .module-art{--module-x: 31%;--module-scale-x: -1}.machine-node.target.endpoint-mirrored .module-art{--module-x: -28%;--module-scale-x: -1}.machine-node.target-generator.endpoint-mirrored .module-art{--module-x: -31%}.machine-node.target-generator.online .module-art{filter:saturate(1.08) brightness(1.06) drop-shadow(0 0 9px rgb(56 190 183 / 55%)) drop-shadow(0 7px 5px rgb(0 0 0 / 48%))}.endpoint-hub{position:absolute;top:50%;left:50%;z-index:3;width:clamp(18px,2vw,26px);height:clamp(18px,2vw,26px);transform:translate(-50%,-50%);border:3px solid #3d2a15;border-radius:50%;background:var(--brass);box-shadow:inset 0 0 0 4px #8b6228,0 0 0 2px #594731,0 2px 4px #0000008c}.endpoint-hub:after{position:absolute;top:50%;left:50%;width:5px;height:5px;transform:translate(-50%,-50%);border-radius:50%;background:#493016;box-shadow:0 1px 1px #ffe7a659;content:""}.machine-node.target .endpoint-hub{transform:translate(-50%,-50%)}.endpoint-gear-plane.turning .endpoint-gear{animation:gear-cycle var(--gear-duration, 1.9s) linear forwards}.endpoint-gear-plane.turning .endpoint-gear,.endpoint-gear-plane.receiving .endpoint-gear{filter:drop-shadow(0 0 7px rgb(56 190 183 / 40%)) drop-shadow(0 6px 4px rgb(0 0 0 / 42%))}.requirement-badge{position:absolute;bottom:-15px;left:50%;z-index:4;min-width:48px;min-height:28px;padding:4px 6px;border:1px solid #856a42;border-radius:3px;background:#171511ee;color:var(--brass-pale);font-size:8px;font-weight:900;line-height:1;text-align:center;transform:translate(-50%);white-space:nowrap;align-items:center;justify-content:center}.machine-readout{appearance:none;pointer-events:auto;touch-action:manipulation;-webkit-tap-highlight-color:transparent;cursor:help;display:inline-flex;font-family:inherit}.source-readout{position:absolute;bottom:-4px;left:50%;z-index:4;min-width:68px;min-height:28px;padding:4px 7px;transform:translate(-50%);border:1px solid #725d3f;border-radius:3px;background:#191611;color:#cabd9e;font-size:8px;font-weight:900;line-height:1.1;text-align:center;text-transform:uppercase;white-space:nowrap}.machine-readout:hover,.machine-readout:focus-visible,.machine-readout.is-explaining{border-color:#3bc1bb;color:#7fe3dd}.machine-readout-explanation{position:absolute;bottom:calc(100% + 8px);left:50%;z-index:20;width:min(220px,62vw);padding:9px 10px;transform:translate(calc(-50% + var(--tooltip-shift-x, 0px)),4px);border:1px solid #3bc1bb;border-radius:5px;background:#171511f7;box-shadow:0 8px 20px #00000085;color:#eee4d2;font-size:11px;font-weight:700;line-height:1.35;text-align:left;text-transform:none;white-space:normal;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .12s ease,transform .12s ease,visibility .12s ease}.machine-readout:hover .machine-readout-explanation,.machine-readout:focus-visible .machine-readout-explanation,.machine-readout.is-explaining .machine-readout-explanation{transform:translate(calc(-50% + var(--tooltip-shift-x, 0px)));opacity:1;visibility:visible}.machine-readout-explanation.tooltip-below{top:calc(100% + 8px);bottom:auto}.machine-node.endpoint:has(.machine-readout:hover),.machine-node.endpoint:has(.machine-readout:focus-visible),.machine-node.endpoint:has(.machine-readout.is-explaining){z-index:11}.requirement-badge:before{position:absolute;bottom:100%;left:50%;width:2px;height:6px;transform:translate(-50%);background:#856a42;content:""}.machine-node.target .requirement-badge{left:73%}.machine-node.target .target-readout-left,.machine-node.target .target-readout-right{top:50%;bottom:auto;transform:translateY(-50%)}.machine-node.target .target-readout-left{right:100%;left:auto}.machine-node.target .target-readout-right{right:auto;left:100%}.machine-node.target .target-readout-left:before,.machine-node.target .target-readout-right:before{top:50%;bottom:auto;width:6px;height:2px;transform:translateY(-50%)}.machine-node.target .target-readout-left:before{right:-6px;left:auto}.machine-node.target .target-readout-right:before{right:auto;left:-6px}.machine-node.matched .requirement-badge{border-color:#3bc1bb;color:#7fe3dd}.socket{z-index:1;width:14.7%;aspect-ratio:1;padding:0;border:0;border-radius:50%;background:transparent;cursor:pointer;overflow:visible;touch-action:none}.socket.occupied{z-index:6}.socket.occupied.compound{z-index:7}.socket.occupied.visual-layer-1{z-index:8}.socket:before{position:absolute;inset:20%;border:2px solid #6b5942;border-radius:50%;background:#171411;box-shadow:inset 0 0 0 5px #2a231b,0 3px 6px #0000004d;content:"";transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.socket:after{position:absolute;top:50%;left:50%;width:8px;height:8px;transform:translate(-50%,-50%);border-radius:50%;background:var(--brass);box-shadow:0 0 0 3px #6e5124;content:""}.socket:hover:before,.socket.selected-target:before{border-color:var(--brass-pale);box-shadow:inset 0 0 0 5px #2a231b,0 0 0 4px #d7a84d21}.socket.fixed{cursor:default}.gear-art{--gear-size-scale: 1.18;position:absolute;inset:0;z-index:2;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 6px 4px rgb(0 0 0 / 42%));pointer-events:none;transform:scale(var(--gear-size-scale)) rotate(var(--gear-phase, 0deg));transform-origin:50% 50%}.gear-type-small{--gear-size-scale: .79}.gear-type-medium{--gear-size-scale: 1.18}.gear-type-large{--gear-size-scale: 1.57}.gear-layer-0{z-index:2}.gear-layer-1{z-index:3}.socket:not(.occupied) .gear-art{display:none}.socket.occupied:before,.socket.occupied:after{opacity:0}.socket.fixed .gear-art{filter:saturate(.82) brightness(.86) drop-shadow(0 6px 4px rgb(0 0 0 / 42%))}.socket.powered .gear-art{filter:drop-shadow(0 0 7px rgb(56 190 183 / 40%)) drop-shadow(0 6px 4px rgb(0 0 0 / 42%))}.socket.turning .gear-art{animation:gear-cycle var(--gear-duration, 1.9s) linear forwards}.clutch-station{z-index:5;width:14.7%;aspect-ratio:1;isolation:isolate;pointer-events:none}.clutch-station .clutch-wheel{filter:saturate(.85) brightness(.9) drop-shadow(0 6px 4px rgb(0 0 0 / 42%))}.clutch-station .clutch-wheel.turning{animation:gear-cycle var(--gear-duration, 1.9s) linear forwards;filter:drop-shadow(0 0 7px rgb(56 190 183 / 40%)) drop-shadow(0 6px 4px rgb(0 0 0 / 42%))}.clutch-collar{position:absolute;top:50%;left:50%;z-index:6;width:78%;height:78%;object-fit:contain;transform:translate(-50%,-50%) scale(.9);filter:saturate(.72) brightness(.72) drop-shadow(0 4px 4px rgb(0 0 0 / 55%));transition:filter .17s ease,transform .17s ease}.clutch-station.engaged .clutch-collar{transform:translate(-50%,-50%) scale(1);filter:saturate(1) brightness(1.05) drop-shadow(0 0 7px rgb(51 185 178 / 42%)) drop-shadow(0 4px 4px rgb(0 0 0 / 55%))}.ratchet-assembly{z-index:7;width:14.7%;aspect-ratio:1;overflow:visible}.ratchet-station.workshop-entity{position:absolute;left:calc((var(--x) + .5) * (100% / 7));top:calc((var(--y) + .5) * 20%);z-index:7;width:14.7%;height:auto;aspect-ratio:1;transform:translate(-50%,-50%)}.ratchet-station{position:relative;top:auto;left:auto;width:100%;height:100%;transform:none;padding:0;isolation:isolate;overflow:visible;border:0;border-radius:50%;background:transparent;cursor:pointer}.ratchet-station:disabled{cursor:default}.ratchet-station .ratchet-wheel{filter:saturate(.86) brightness(.9) drop-shadow(0 6px 4px rgb(0 0 0 / 42%))}.ratchet-station .ratchet-wheel.turning{animation:gear-cycle var(--gear-duration, 1.9s) linear forwards;filter:drop-shadow(0 0 7px rgb(56 190 183 / 38%)) drop-shadow(0 6px 4px rgb(0 0 0 / 42%))}.ratchet-collar{position:absolute;top:50%;left:50%;z-index:6;width:96%;height:96%;object-fit:contain;filter:saturate(.82) brightness(.9) drop-shadow(0 4px 4px rgb(0 0 0 / 55%));transition:filter .15s ease,transform .15s ease}.ratchet-station.direction-cw .ratchet-collar{transform:translate(-50%,-50%)}.ratchet-station.direction-ccw .ratchet-collar{transform:translate(-50%,-50%) scaleX(-1)}.ratchet-station:hover:not(:disabled) .ratchet-collar,.ratchet-station:focus-visible .ratchet-collar,.ratchet-station.hint .ratchet-collar{filter:saturate(1) brightness(1.08) drop-shadow(0 0 8px rgb(56 190 183 / 42%)) drop-shadow(0 4px 4px rgb(0 0 0 / 55%))}.ratchet-station.driving .ratchet-collar{filter:saturate(1) brightness(1.02) drop-shadow(0 0 7px rgb(56 190 183 / 32%)) drop-shadow(0 4px 4px rgb(0 0 0 / 55%))}.ratchet-station.freewheeling .ratchet-collar{filter:saturate(.72) brightness(.82) drop-shadow(0 4px 4px rgb(0 0 0 / 55%))}.ratchet-station.clicking .ratchet-collar{animation:ratchet-click .26s steps(2,end) infinite}.ratchet-readout{position:absolute;top:calc(100% + 3px);left:50%;z-index:8;min-width:62px;padding:4px 6px;transform:translate(-50%);border:1px solid #856a42;border-radius:3px;background:#171511f2;color:var(--brass-pale);box-shadow:0 3px 7px #00000073;font-size:8px;font-weight:950;line-height:1;text-align:center;white-space:nowrap}.ratchet-readout-left,.ratchet-readout-right{top:50%;transform:translateY(-50%)}.ratchet-readout-left{right:calc(100% + 3px);left:auto}.ratchet-readout-right{left:calc(100% + 3px)}.ratchet-assembly.driving .ratchet-readout{border-color:#3bc1bb;color:#7fe3dd}.ratchet-assembly:has(.ratchet-readout:hover),.ratchet-assembly:has(.ratchet-readout:focus-visible),.ratchet-assembly:has(.ratchet-readout.is-explaining){z-index:12}.ratchet-station.hint:after{position:absolute;inset:-7%;z-index:9;border:2px solid var(--brass-pale);border-radius:50%;box-shadow:0 0 0 5px #d7a84d2e,0 0 14px #d7a84d70;content:"";pointer-events:none;animation:hint-pulse .7s ease-in-out 3}@keyframes ratchet-click{0%,to{filter:saturate(.72) brightness(.82) drop-shadow(0 4px 4px rgb(0 0 0 / 55%))}50%{filter:saturate(.95) brightness(1.06) drop-shadow(0 0 5px rgb(215 168 77 / 35%)) drop-shadow(0 4px 4px rgb(0 0 0 / 55%))}}.clutch-state,.lever-state{position:absolute;left:50%;z-index:8;min-width:34px;padding:3px 5px;transform:translate(-50%);border:1px solid #765d39;border-radius:3px;background:#171511ed;color:#b7aa94;font-size:7px;font-weight:950;line-height:1;text-align:center;pointer-events:none}.clutch-state{bottom:-8px}.clutch-station.engaged .clutch-state,.lever-control.engaged .lever-state{border-color:#278c87;color:#75ddd7}.lever-control{z-index:8;width:12.5%;aspect-ratio:1;padding:0;border:0;border-radius:0;background:transparent;cursor:pointer;overflow:visible;touch-action:manipulation}.lever-control img{width:100%;height:100%;object-fit:contain;transform:scale(1.28) rotate(-7deg);transform-origin:50% 68%;filter:saturate(.75) brightness(.82) drop-shadow(0 6px 5px rgb(0 0 0 / 52%));transition:filter .17s ease,transform .17s ease;pointer-events:none}.lever-control.engaged img{transform:scale(1.28) rotate(7deg);filter:saturate(1.08) brightness(1.05) drop-shadow(0 0 8px rgb(51 185 178 / 45%)) drop-shadow(0 6px 5px rgb(0 0 0 / 52%))}.lever-control:hover:not(:disabled) img{filter:saturate(1.05) brightness(1.08) drop-shadow(0 0 7px rgb(215 168 77 / 45%)) drop-shadow(0 6px 5px rgb(0 0 0 / 52%))}.lever-control:disabled{cursor:default}.lever-state{bottom:-5px}.lever-control.hint img{animation:lever-pulse .7s ease-in-out 3}.compound-hub{position:absolute;top:50%;left:50%;z-index:5;width:17px;height:17px;transform:translate(-50%,-50%);border:2px solid #392816;border-radius:50%;background:var(--brass);box-shadow:inset 0 0 0 3px #8c6328,0 2px 4px #0000008c;pointer-events:none}.socket.hint:before{animation:hint-pulse .7s ease-in-out 3;border-color:var(--brass-pale);opacity:1}.socket.drop-ready:before{transform:scale(1.12);border-color:#75ddd7;box-shadow:inset 0 0 0 5px #2a231b,0 0 0 5px #179b9733}.socket.swap-ready:before{inset:8%;z-index:1;transform:scale(1.05);border-color:#75ddd7;background:transparent;box-shadow:0 0 0 4px #179b973d;opacity:1}.socket.swap-ready .gear-art{filter:drop-shadow(0 0 9px rgb(70 211 203 / 72%)) drop-shadow(0 6px 4px rgb(0 0 0 / 42%))}.completion-banner{position:absolute;right:20px;bottom:20px;left:20px;z-index:10;min-height:80px;padding:14px 16px;border:1px solid #ddbd70;border-radius:6px;background:#171511f0;box-shadow:0 12px 30px #00000073;display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:18px}.completion-banner[hidden]{display:none}.completion-kicker{margin-bottom:3px;color:var(--teal);font-size:10px;font-weight:900;text-transform:uppercase}.completion-banner strong{font-family:Georgia,Times New Roman,serif;font-size:19px}.completion-score{min-width:78px;color:var(--brass);font-size:21px;letter-spacing:0;text-align:center}.completion-score .empty-star{color:#5c5142}.next-button,.run-button{border:0;border-radius:5px;cursor:pointer;font-weight:850;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.run-button>*,.mobile-run-button>*{pointer-events:none}.next-button{min-height:40px;padding:0 15px;background:var(--brass);color:#251b0d}.parts-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.toolbox-shell{position:relative;min-width:0;padding:22px 26px 20px;border:2px solid #8d6838;border-radius:10px;background:radial-gradient(circle at 12% 20%,rgb(255 255 255 / 4%),transparent 20%),repeating-linear-gradient(92deg,rgb(255 255 255 / 1.5%) 0 1px,transparent 1px 18px),linear-gradient(150deg,#38271d,#251a15 58%,#2e2119);box-shadow:0 15px 30px #00000061,inset 0 0 0 5px #17110e,inset 0 0 0 7px #5e452b,inset 0 0 28px #00000070}.toolbox-shell:before,.toolbox-shell:after{position:absolute;top:14px;bottom:14px;width:13px;border:1px solid #bc8c4c;border-radius:3px;background:linear-gradient(90deg,#4f371f,#a6773e 48%,#4b341f);box-shadow:inset 0 0 0 2px #1e140c73;content:"";pointer-events:none}.toolbox-shell:before{left:8px}.toolbox-shell:after{right:8px}.toolbox-handle{position:absolute;top:-19px;left:50%;width:132px;height:25px;transform:translate(-50%);border:6px solid #76522e;border-bottom:0;border-radius:28px 28px 0 0;background:#17110e;box-shadow:inset 0 0 0 2px #b38146,0 -4px 8px #00000047;pointer-events:none}.part-count{width:34px;height:34px;border:1px solid #5d503f;border-radius:50%;display:grid;place-items:center;color:var(--brass-pale);font-size:13px;font-weight:900;font-variant-numeric:tabular-nums}.toolbox-controls{margin-top:13px;padding-top:11px;border-top:1px solid #5b432c;display:flex;align-items:center;justify-content:space-between;gap:16px;color:#aa9b86;font-size:11px;font-weight:700}.parts-layout-button{min-height:34px;padding:0 13px;border:1px solid #9a7440;border-radius:5px;background:#211913;color:var(--brass-pale);cursor:pointer;font-size:11px;font-weight:850;white-space:nowrap}.parts-layout-button:hover:not(:disabled),.parts-layout-button[aria-pressed=true]{border-color:#4bc2bc;color:#85e2dc}.parts-layout-button:disabled{cursor:default;opacity:.45}.parts-tray{min-height:112px;margin:14px 0 0;padding:12px 14px;border:1px solid #5f472f;border-radius:6px;background:#0e0b097a;display:grid;grid-template-columns:repeat(auto-fill,minmax(74px,92px));align-content:center;gap:12px;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.tray-gear,.tray-cartridge,.tray-belt{position:relative;aspect-ratio:1;min-width:0;padding:5px;border:1px solid #765936;border-radius:7px;background:linear-gradient(145deg,#30251c,#1c1612);cursor:grab;touch-action:none}.tray-gear.grouped,.tray-cartridge.grouped,.tray-belt.grouped{margin:0;box-shadow:none}.tray-gear.grouped.stack-2,.tray-cartridge.grouped.stack-2,.tray-belt.grouped.stack-2{margin:0 4px 4px 0;box-shadow:4px 4px 0 -1px #18120f,4px 4px #634a2d}.tray-gear.grouped.stack-3,.tray-cartridge.grouped.stack-3,.tray-belt.grouped.stack-3{margin:0 8px 8px 0;box-shadow:4px 4px 0 -1px #18120f,4px 4px #634a2d,8px 8px 0 -1px #18120f,8px 8px #4f3a25}.tray-gear.grouped:before,.tray-gear.grouped:after,.tray-cartridge.grouped:before,.tray-cartridge.grouped:after,.tray-belt.grouped:before,.tray-belt.grouped:after{position:absolute;inset:5px -5px -5px 5px;z-index:-1;border:1px solid #634a2d;border-radius:7px;background:#18120f;content:none;pointer-events:none}.tray-gear.grouped:after,.tray-cartridge.grouped:after,.tray-belt.grouped:after{inset:9px -9px -9px 9px;z-index:-2;opacity:.72}.tray-gear:hover,.tray-gear.selected,.tray-cartridge:hover,.tray-cartridge.selected,.tray-belt:hover,.tray-belt.selected{z-index:20;border-color:var(--brass);background:#2d261b}.tray-gear.selected,.tray-cartridge.selected,.tray-belt.selected{outline:3px solid rgb(215 168 77 / 20%);outline-offset:0}.tray-gear:active,.tray-cartridge:active,.tray-belt:active{cursor:grabbing}.tray-gear img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 5px 4px rgb(0 0 0 / 35%));pointer-events:none;transform:scale(var(--tray-scale))}.tray-gear.part-small{--tray-scale: .64}.tray-gear.part-medium{--tray-scale: .8}.tray-gear.part-large{--tray-scale: .98}.tray-cartridge{isolation:isolate}.cartridge-stack{position:absolute;inset:8% 8% 17%;pointer-events:none}.cartridge-wheel{--cartridge-scale: .8;position:absolute;top:50%;left:50%;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 5px 4px rgb(0 0 0 / 42%));transform:translate(-50%,-50%) scale(var(--cartridge-scale))}.cartridge-layer-0{z-index:1;margin:5% 0 0 -7%;filter:saturate(.78) brightness(.78) drop-shadow(0 5px 4px rgb(0 0 0 / 48%))}.cartridge-layer-1{z-index:2;margin:-5% 0 0 7%}.cartridge-small{--cartridge-scale: .62}.cartridge-medium{--cartridge-scale: .8}.cartridge-large{--cartridge-scale: .98}.cartridge-hub{position:absolute;top:45%;left:57%;z-index:3;width:10px;height:10px;transform:translate(-50%,-50%);border:1px solid #3b2815;border-radius:50%;background:var(--brass);box-shadow:inset 0 0 0 2px #8c6328,0 2px 3px #0000008c}.cartridge-kind{right:4px;left:4px;display:flex;justify-content:space-between;gap:2px}.cartridge-kind span:first-child{color:#aa987e}.cartridge-kind span:last-child{color:#7be0d9}.tray-belt{cursor:grab}.belt-spool{position:absolute;inset:12%;display:grid;place-items:center;pointer-events:none}.belt-spool img{position:relative;z-index:2;width:57%;height:57%;object-fit:contain;filter:drop-shadow(0 4px 3px rgb(0 0 0 / 45%))}.belt-loop{position:absolute;inset:12% 4%;z-index:1;transform:rotate(-24deg);border:7px double #573b24;border-radius:50%;box-shadow:0 3px 5px #0006}.part-kind{position:absolute;right:5px;bottom:5px;z-index:6;min-width:24px;padding:3px 4px;border:1px solid #6a5639;border-radius:3px;background:#171511e8;color:var(--brass-pale);font-size:8px;font-weight:900;line-height:1;text-align:center}@media (hover: hover) and (pointer: fine){.part-kind[data-part-help]:hover,.tray-gear:focus-visible .part-kind[data-part-help],.tray-cartridge:focus-visible .part-kind[data-part-help],.tray-belt:focus-visible .part-kind[data-part-help]{z-index:10}.part-kind[data-part-help]:after{position:absolute;right:-5px;bottom:calc(100% + 8px);z-index:30;width:max-content;max-width:min(230px,42vw);padding:8px 10px;transform:translateY(4px);border:1px solid #3bc1bb;border-radius:5px;background:#171511f7;box-shadow:0 8px 20px #00000085;color:#eee4d2;content:attr(data-part-help);font-size:11px;font-weight:700;line-height:1.35;text-align:left;text-transform:none;white-space:normal;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .12s ease,transform .12s ease,visibility .12s ease}.part-kind[data-part-help]:hover:after,.tray-gear:focus-visible .part-kind[data-part-help]:after,.tray-cartridge:focus-visible .part-kind[data-part-help]:after,.tray-belt:focus-visible .part-kind[data-part-help]:after{transform:translateY(0);opacity:1;visibility:visible}}.part-stack-count{position:absolute;top:6px;right:6px;z-index:8;min-width:28px;padding:4px 5px;border:1px solid #d0a154;border-radius:12px;background:#16120fe8;color:#f3cf7c;font-size:10px;font-weight:950;line-height:1;text-align:center;box-shadow:0 3px 7px #00000073;pointer-events:none}.tray-empty{grid-column:1 / -1;align-self:center;color:#847a6c;font-size:12px;font-weight:700;text-align:center}.run-button{width:100%;min-height:52px;padding:0 18px;background:var(--teal);color:#fff;display:flex;align-items:center;justify-content:center;gap:11px;box-shadow:inset 0 -3px #0000002b}.run-station{min-width:0}.run-button:hover:not(:disabled){background:#1dadab}.run-button:disabled{cursor:not-allowed;opacity:.6}.play-icon{width:0;height:0;border-top:7px solid transparent;border-bottom:7px solid transparent;border-left:11px solid currentColor}.selection-status{min-height:18px;margin:11px 0 0;overflow-wrap:anywhere;color:#8e8476;font-size:11px;font-weight:700;text-align:center}.selection-status:empty{min-height:0;margin:0}.drag-ghost{position:fixed;z-index:100;width:var(--drag-size, 88px);height:var(--drag-size, 88px);transform:translate(-50%,-50%);pointer-events:none;opacity:.9;filter:drop-shadow(0 10px 8px rgb(0 0 0 / 45%))}.drag-ghost[hidden]{display:none}.drag-ghost img{width:100%;height:100%;object-fit:contain}.drag-ghost.belt-drag-ghost{border:2px solid #9b7747;border-radius:50%;background:radial-gradient(circle,#2b2219 0 38%,#12100d 39% 100%);box-shadow:inset 0 0 0 5px #18120f,inset 0 0 0 7px #5e462c}.drag-ghost.belt-drag-ghost:before{position:absolute;inset:9%;border:7px solid #2a2017;border-radius:50%;box-shadow:0 0 0 2px #9a7440,inset 0 0 0 1px #0a0807;content:""}.drag-ghost.belt-drag-ghost img{position:absolute;inset:25%;z-index:1;width:50%;height:50%}.drag-ghost.cartridge-drag-ghost{isolation:isolate}.drag-ghost.cartridge-drag-ghost .gear-art{position:absolute;inset:0}@keyframes gear-cycle{0%{transform:scale(var(--gear-size-scale)) rotate(var(--gear-phase, 0deg))}to{transform:scale(var(--gear-size-scale)) rotate(calc(var(--gear-phase, 0deg) + var(--gear-turn, 0deg)))}}@keyframes belt-travel-forward{to{stroke-dashoffset:-.195}}@keyframes belt-travel-reverse{to{stroke-dashoffset:.195}}@keyframes pulley-marker-cycle{to{transform:scale(var(--pulley-marker-scale)) rotate(calc(var(--gear-phase, 0deg) + var(--gear-turn, 0deg)))}}@keyframes hint-pulse{50%{transform:scale(1.17);box-shadow:inset 0 0 0 5px #2a231b,0 0 0 8px #d7a84d2e}}@keyframes lever-pulse{50%{filter:saturate(1.15) brightness(1.18) drop-shadow(0 0 12px rgb(215 168 77 / 78%))}}@keyframes bell-ring{0%{transform:translate(var(--module-x, 0),var(--module-y, 0)) scaleX(var(--module-scale-x, 1)) rotate(-2deg)}to{transform:translate(var(--module-x, 0),var(--module-y, 0)) scaleX(var(--module-scale-x, 1)) rotate(2deg)}}@keyframes source-wake{0%,to{transform:translate(var(--module-x, 0),var(--module-y, 0)) scaleX(var(--module-scale-x, 1))}50%{transform:translate(var(--module-x, 0),calc(var(--module-y, 0) - 2px)) scaleX(var(--module-scale-x, 1))}}.machine-node.source.running .module-art{animation:source-wake .4s ease-in-out infinite}.machine-node.target.ringing .module-art{animation:bell-ring .13s ease-in-out infinite alternate}.machine-state.jammed .state-pip{border-color:#df835c;background:var(--rust);box-shadow:0 0 0 4px #a7472229}@media (max-width: 1080px){.game-layout{grid-template-columns:210px minmax(520px,1fr)}.parts-panel{grid-column:1 / -1;padding:20px 26px;border-top:1px solid #3a3127;border-left:0;display:grid;grid-template-columns:180px 1fr 190px;align-items:center;gap:22px}.parts-tray{min-height:0;margin:0;padding:0;border:0;grid-template-columns:repeat(7,minmax(36px,76px))}.selection-status{grid-column:3}}@media (max-width: 760px){.topbar{min-height:58px;padding:0 14px}.brand{font-size:19px}.brand img{width:30px;height:30px}.level-position{font-size:10px}.sound-button{width:34px;height:34px}.workshop-link{min-height:32px;padding:0 8px;font-size:10px}.job-link{display:none}.job-mode .topbar{min-height:76px;padding:6px 10px 5px;grid-template-areas:"brand actions" "position position";grid-template-columns:minmax(0,1fr) auto;grid-template-rows:40px 19px;row-gap:3px}.job-mode .brand{grid-area:brand;min-width:0}.job-mode .level-position{grid-area:position;justify-self:center}.job-mode .top-actions{grid-area:actions}.game-layout{min-height:calc(100vh - 58px);display:flex;flex-direction:column}.job-mode .game-layout{min-height:calc(100vh - 76px)}.mission-panel{padding:19px 16px 15px;border-right:0;border-bottom:1px solid #3a3127;display:grid;grid-template-columns:1fr;align-items:end;column-gap:18px}.mission-panel .eyebrow,.goal-status,.metrics{display:none}h1{margin:0 0 3px;font-size:27px}.level-flavor{min-height:0;margin:0;font-size:12px}.level-tabs{width:100%;margin-top:14px;grid-column:1 / -1}.level-tab{height:34px}.board-section{padding:10px 10px 14px}.board-toolbar{min-height:36px;margin:0 4px 9px;grid-template-columns:minmax(0,1fr) auto;gap:7px 10px}.move-meter{grid-column:1 / -1;grid-row:2;width:100%;height:32px;justify-content:center}.icon-button{width:34px;height:34px}.machine-board{min-height:0;aspect-ratio:7 / 5}.machine-node:after{display:none}.completion-banner{right:10px;bottom:10px;left:10px;min-height:68px;padding:10px 12px;grid-template-columns:1fr auto;gap:10px}.completion-score{display:none}.completion-banner strong{font-size:15px}.next-button{min-height:38px;padding:0 11px;font-size:12px}.parts-panel{padding:13px 14px 17px;display:grid;grid-template-columns:1fr auto;gap:11px 14px}.parts-heading{grid-column:1 / -1;align-items:center}.parts-heading .eyebrow{display:none}h2{font-size:18px}.part-count{width:30px;height:30px}.parts-tray{min-width:0;grid-template-columns:repeat(7,minmax(38px,1fr));gap:4px}.tray-gear,.tray-cartridge{padding:2px;border-radius:4px}.run-button{width:128px;min-height:46px;padding:0 10px;font-size:12px}.selection-status{display:none}}@media (max-width: 430px){.machine-board{min-height:0}.machine-state{max-width:180px;font-size:10px}.parts-tray{grid-template-columns:repeat(4,minmax(38px,1fr))}}@media (min-width: 431px) and (max-width: 520px){.parts-tray{grid-template-columns:repeat(4,minmax(38px,1fr))}}.playtest-mode .toolbox-shell{border-color:#8b7448;background:linear-gradient(rgb(71 185 178 / 7%) 1px,transparent 1px) 0 0 / 24px 24px,linear-gradient(90deg,rgb(71 185 178 / 7%) 1px,transparent 1px) 0 0 / 24px 24px,linear-gradient(145deg,#173a37,#102a28 62%,#132f2c)}.playtest-mode .toolbox-controls{border-color:#42645c}@media (max-width: 1080px){.game-layout{grid-template-columns:minmax(0,1fr)}.mission-panel{margin:18px 18px 0;grid-template-columns:minmax(0,1fr) auto;gap:14px 20px}.goal-status{grid-column:1}.metrics{grid-column:2;grid-row:1;min-width:235px}.level-tabs{grid-column:2;min-width:235px}.board-section{padding-right:18px;padding-left:18px}.parts-panel{grid-column:auto;padding:4px 18px 32px;border:0;display:grid;grid-template-columns:minmax(0,1fr) 210px;align-items:center;gap:22px}.parts-tray{min-height:102px;margin:14px 0 0;padding:10px 12px;border:1px solid #5f472f;grid-template-columns:repeat(auto-fill,minmax(68px,86px));gap:10px}.selection-status{grid-column:auto}}@media (max-width: 760px){.game-layout,.job-mode .game-layout{min-height:calc(100vh - 58px);display:grid}.mission-panel{margin:10px 10px 0;padding:14px 15px;border:1px solid #4b3e2e;display:grid;grid-template-columns:minmax(0,1fr)}.mission-copy{min-width:0}.mission-panel .eyebrow,.goal-status,.metrics{display:none}.mission-panel h1{margin:0 0 3px;font-size:25px}.level-tabs{grid-column:1;min-width:0;margin-top:10px}.board-section{padding:10px 10px 22px}.board-toolbar{width:100%}.machine-board{width:100%;border-width:1px;border-radius:7px;box-shadow:0 12px 24px #00000061,inset 0 0 0 5px #17130f,inset 0 0 0 7px #806038,inset 0 0 28px #0006}.board-inset{inset:13px}.parts-panel{padding:0 10px 28px;display:grid;grid-template-columns:minmax(0,1fr);gap:16px}.toolbox-shell{padding:19px 20px 17px}.toolbox-handle{top:-15px;width:104px;height:20px;border-width:5px}.parts-heading{grid-column:auto}.parts-heading .eyebrow{display:block}.toolbox-controls{align-items:flex-end}.parts-tray{min-height:91px;grid-template-columns:repeat(auto-fill,minmax(62px,76px));gap:9px}.tray-gear,.tray-cartridge,.tray-belt{padding:3px;border-radius:5px}.run-station{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px}.run-button{width:100%;min-height:50px;font-size:13px}.selection-status{grid-column:auto;display:block;min-width:120px;margin:0;text-align:left}}@media (max-width: 480px){.toolbox-controls>span{display:none}.toolbox-controls{justify-content:flex-end}.parts-tray{grid-template-columns:repeat(4,minmax(48px,1fr))}.run-station{grid-template-columns:minmax(0,1fr)}.selection-status{display:none}}.game-layout{--repair-width: min(1120px, max(560px, calc((100dvh - 430px)*1.4) ), calc(100vw - 32px) );width:100%;min-height:calc(100vh - 66px);padding:0;background:linear-gradient(90deg,rgb(255 255 255 / 1.5%) 1px,transparent 1px) 0 0 / 38px 38px,linear-gradient(rgb(255 255 255 / 1.5%) 1px,transparent 1px) 0 0 / 38px 38px,#151411}.mission-panel{position:relative;width:var(--repair-width);margin:14px auto 0;padding:12px 14px;border:2px solid #5b432a;border-radius:8px;background:linear-gradient(145deg,rgb(255 255 255 / 2.5%),transparent 38%),#1a1916;box-shadow:inset 0 0 0 4px #0e0e0c,inset 0 0 0 6px #3f3020,0 8px 20px #00000057;display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,304px);grid-template-areas:"brief goal" "brief controls";align-items:stretch;gap:8px 18px}.mission-brief{grid-area:brief;min-width:0;min-height:112px;padding:5px;border:2px solid #705230;border-radius:7px;background:#10100e;box-shadow:inset 0 0 0 3px #090908,inset 0 0 0 5px #342719;display:grid;grid-template-columns:minmax(0,1fr);align-items:center}.mission-copy{min-width:0;padding:5px 11px}.mission-copy .eyebrow{margin-bottom:4px;font-size:9px}.mission-panel h1{margin-bottom:3px;font-size:clamp(25px,2.4vw,32px)}.mission-panel .level-flavor{display:-webkit-box;overflow:hidden;max-height:2.7em;font-size:11px;line-height:1.35;text-overflow:ellipsis;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2}.goal-status{grid-area:goal;min-width:0;min-height:52px;padding:6px 10px;border:2px solid #705230;border-radius:7px;background:#10100e;box-shadow:inset 0 0 0 3px #090908,inset 0 0 0 5px #342719;font-size:11px;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto;align-content:center;row-gap:3px}.goal-status .goal-light{display:none}.goal-status.complete{border-color:#4faaa5;box-shadow:inset 0 0 0 3px #090908,inset 0 0 0 5px #25413a,0 0 0 1px #64d5cc29}.goal-label{color:var(--brass);font-size:9px;font-weight:900;line-height:1;text-transform:uppercase}.goal-copy{min-width:0;color:#e0d7c8;font-size:11px;font-weight:750;line-height:1.25}.metrics,.mission-panel .machine-state{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mission-panel .board-toolbar{grid-area:controls;width:100%;min-height:52px;margin:0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px}.mission-panel .move-meter{position:relative;height:52px;padding:4px;border:2px solid #705438;border-radius:7px;background:#0d0d0c;box-shadow:inset 0 0 0 3px #211a13,inset 0 0 10px #0000008c;display:grid;grid-template-columns:repeat(2,54px);gap:0}.mission-panel .score-cell{min-width:0;padding:4px 9px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.mission-panel .score-cell+.score-cell{border-left:1px solid #5a4938}.mission-panel .score-label{color:#b5aa9a;font-size:9px;font-weight:800;line-height:1;text-transform:none}.mission-panel .move-meter .score-cell strong{color:#f4eee2;font-size:20px;line-height:1}.mission-panel .move-meter-par{padding:4px 9px;border-left:1px solid #5a4938}.mission-panel .star-pace{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mission-panel .tool-actions{min-height:52px;padding:2px;border:2px solid #4f3b27;border-radius:7px;background:#12120f;box-shadow:inset 0 0 0 3px #090908,inset 0 0 0 5px #292118;justify-content:center;gap:6px}.mission-panel .icon-button{width:44px;height:44px;border:2px solid #57432d;border-radius:6px;background:linear-gradient(#292722,#171714);box-shadow:inset 0 0 0 2px #0c0c0b,0 2px #070706;color:#bdb4a7;font-size:22px}.mobile-run-button{display:none;min-width:58px;min-height:44px;padding:0 9px;border:2px solid #55cac3;border-radius:6px;background:var(--teal);color:#fff;cursor:pointer;align-items:center;justify-content:center;gap:7px;font-size:12px;font-weight:900;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.mobile-run-button:hover:not(:disabled){background:#1dadab}.mobile-run-button:active:not(:disabled),.run-button:active:not(:disabled){transform:translateY(1px);filter:brightness(1.08)}.mobile-run-button:disabled{cursor:not-allowed;opacity:.6}.mission-panel .level-tabs{grid-column:1 / -1;width:100%;margin-top:1px;grid-template-columns:repeat(10,minmax(32px,1fr))}.board-section{width:var(--repair-width);margin:0 auto;padding:12px 0 14px;background:transparent}.machine-board{width:100%;margin:0;border:3px solid #a67a3e;border-radius:13px;background:linear-gradient(145deg,rgb(255 225 151 / 13%),transparent 30%),radial-gradient(circle at 75% 74%,rgb(47 24 8 / 16%),transparent 34%),linear-gradient(#5733112e,#40261042),url(/assets/tinycogs/art/ui/aged-brass.webp) center / cover;box-shadow:0 0 0 8px #0d0e0d,0 0 0 11px #584027,0 18px 34px #00000075,inset 0 0 0 9px #181713,inset 0 0 0 12px #9c713a,inset 0 0 44px #180c0485}.board-inset{inset:24px;border-color:#facf747a;box-shadow:inset 0 0 28px #22110545}.board-content{inset:2%}.parts-panel{width:var(--repair-width);margin:0 auto;padding:0 0 24px;border:0;background:transparent;display:grid;grid-template-columns:minmax(0,1fr) clamp(150px,13vw,176px);align-items:stretch;gap:12px}.toolbox-shell{min-height:116px;padding:15px 16px 13px;border:3px solid #8d6737;border-radius:9px;background:linear-gradient(145deg,rgb(255 255 255 / 3%),transparent 35%),linear-gradient(#160c0738,#160c0757),url(/assets/tinycogs/art/ui/dark-leather.webp) center / cover;box-shadow:inset 0 0 0 5px #15100d,inset 0 0 0 7px #674829,inset 0 0 26px #00000070,0 12px 24px #00000061;display:grid;grid-template-columns:118px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;column-gap:12px;row-gap:6px}.toolbox-shell:before,.toolbox-shell:after{display:none}.toolbox-handle{top:-17px;width:118px;height:23px}.parts-heading{grid-column:1;grid-row:1;align-self:end;display:block}.parts-heading .eyebrow{margin-bottom:5px;font-size:9px}.parts-heading h2{font-size:24px}.part-count{width:auto;height:auto;margin-top:5px;border:0;border-radius:0;display:block;color:#b6a994;font-size:10px}.part-count:after{content:" parts"}.parts-tray{grid-column:2;grid-row:1 / 3;min-height:86px;margin:0;padding:8px 10px;border-color:#7c5a34;background:#0c0a0894;grid-template-columns:repeat(auto-fill,minmax(66px,78px));align-content:center;gap:10px}.toolbox-controls{grid-column:1;grid-row:2;align-self:start;margin:0;padding:0;border:0;display:block}.toolbox-controls>span{display:none}.parts-layout-button{width:auto;min-height:30px;padding:0 9px;border-width:1px;border-color:#9b7441;background:linear-gradient(#2a241d,#191713);font-size:10px;line-height:1.2;white-space:nowrap}.parts-layout-button:before{display:inline;margin:0 5px 0 0;color:#d7b66f;content:"\2725";font-size:12px;line-height:1}.toolbox-shell.layout-unavailable .toolbox-controls{display:none}.tray-gear,.tray-cartridge,.tray-belt{min-height:66px}.run-station{min-width:0;padding:7px;border:2px solid #4f3c28;border-radius:8px;background:#191815;box-shadow:inset 0 0 0 4px #0d0d0c,inset 0 0 0 6px #3d3021;display:grid;grid-template-rows:minmax(72px,1fr) auto;align-content:center}.run-station .run-button{min-height:72px;padding:9px;border:2px solid #55cac3;box-shadow:inset 0 0 0 3px #0a434157,inset 0 -4px #0000002b;font-size:14px;line-height:1.05}.run-station .run-button>span:last-child{max-width:64px;white-space:normal}.run-station .selection-status{min-height:0;margin:5px 0 0;font-size:9px}.playtest-mode .machine-board{background:linear-gradient(rgb(73 177 171 / 13%) 1px,transparent 1px) 0 0 / 34px 34px,linear-gradient(90deg,rgb(73 177 171 / 13%) 1px,transparent 1px) 0 0 / 34px 34px,linear-gradient(rgb(111 222 214 / 8%) 1px,transparent 1px) 0 0 / 170px 170px,linear-gradient(90deg,rgb(111 222 214 / 8%) 1px,transparent 1px) 0 0 / 170px 170px,radial-gradient(circle at 50% 42%,#164b49,#0b2d2c 72%)}@media (max-width: 820px){.game-layout,.job-mode .game-layout{--repair-width: calc(100vw - 20px) ;min-height:calc(100vh - 58px)}.mission-panel{margin-top:10px;padding:10px 11px;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"brief brief" "goal controls";gap:8px 10px}.mission-brief{min-height:62px;grid-template-columns:minmax(0,1fr)}.mission-copy{padding:3px 7px}.mission-panel .eyebrow{display:none}.goal-status{display:grid;min-height:52px;padding:6px 10px}.mission-panel h1{margin:0 0 2px;font-size:22px}.mission-panel .level-flavor{display:-webkit-box;font-size:10px}.mission-panel .board-toolbar{grid-template-columns:auto auto 58px}.mission-panel .move-meter{height:52px;grid-template-columns:repeat(2,54px)}.mission-panel .move-meter .score-cell strong{font-size:19px}.mission-panel .icon-button{width:44px;height:44px}.mission-panel .tool-actions{min-height:52px}.mobile-run-button{display:flex;width:58px;height:52px}.player-belt-handle{width:44px;height:44px;font-size:15px}.mission-panel .level-tabs{grid-template-columns:repeat(5,minmax(30px,1fr))}.board-section{padding:10px 0 13px}.parts-panel{padding-bottom:18px;grid-template-columns:minmax(0,1fr);gap:12px}.toolbox-shell{min-height:104px;padding:13px 14px 11px;grid-template-columns:104px minmax(0,1fr);column-gap:10px;row-gap:5px}.parts-heading h2{font-size:20px}.parts-tray{min-height:76px;grid-template-columns:repeat(auto-fill,minmax(56px,66px));gap:7px}.parts-layout-button{min-height:28px;padding:0 7px;font-size:9px}.run-station{display:none}}@media (max-width: 560px){.mission-brief{min-height:0;padding:4px;grid-template-columns:minmax(0,1fr)}.mission-copy{padding:1px 5px}.goal-status{min-height:38px;padding:4px 6px;column-gap:7px}.goal-copy{font-size:10px}.mission-panel{margin-top:7px;padding:7px 8px;grid-template-columns:minmax(0,1fr);grid-template-areas:"brief" "goal" "controls";gap:7px}.mission-panel .board-toolbar{width:100%;min-height:44px;grid-template-columns:auto auto minmax(58px,1fr);align-items:center;gap:4px}.mission-panel .move-meter{grid-column:auto;grid-row:auto;width:auto;height:44px;padding:2px;border-width:1px;grid-template-columns:repeat(2,34px);box-shadow:inset 0 0 0 2px #211a13}.mission-panel .score-cell{padding:2px 3px;gap:1px}.mission-panel .score-cell+.score-cell,.mission-panel .move-meter-par{border-left:0}.mission-panel .score-label{font-size:7px}.mission-panel .move-meter .score-cell strong{font-size:17px}.mission-panel .tool-actions{min-height:44px;padding:2px;border-width:1px;gap:3px;box-shadow:inset 0 0 0 2px #292118}.mission-panel .icon-button{width:40px;height:40px;border-width:1px;box-shadow:none;font-size:18px}.mobile-run-button{display:flex;width:100%;height:52px}.mobile-run-button .play-icon{border-top-width:5px;border-bottom-width:5px;border-left-width:8px}.star-pace{display:none}.toolbox-shell{min-height:0;padding:12px 13px 10px;grid-template-columns:72px minmax(0,1fr);column-gap:8px;row-gap:4px}.toolbox-controls{grid-column:1;grid-row:2}.parts-layout-button{width:100%;min-height:28px;padding:3px 4px;font-size:9px;white-space:normal}.parts-layout-button:before{margin-right:3px;font-size:10px}.parts-heading h2{font-size:17px}.part-count{margin-top:4px;font-size:9px}.parts-tray{min-height:66px;padding:5px 6px;grid-template-columns:repeat(auto-fill,minmax(48px,56px));gap:5px}.tray-gear,.tray-cartridge,.tray-belt{min-height:52px}.run-station{display:none}}.embedded-panel .topbar,.job-mode.embedded-job .topbar{display:none}.embedded-panel,.embedded-panel .app-shell{min-height:100dvh}.embedded-panel{overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}.embedded-panel .game-layout,.job-mode.embedded-job .game-layout{min-height:100vh;min-height:100dvh}@media (max-width: 560px){.embedded-panel .mission-panel{padding:6px;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);grid-template-areas:"brief goal" "controls controls";gap:4px 5px}.embedded-panel .mission-brief,.embedded-panel .goal-status{min-height:46px}.embedded-panel .mission-panel h1{font-size:18px}.embedded-panel .mission-panel .level-flavor{display:none}.embedded-panel .goal-copy{font-size:9px;line-height:1.18}.embedded-panel .mission-panel .board-toolbar{grid-column:1 / -1}.embedded-panel .parts-panel{padding-bottom:max(24px,env(safe-area-inset-bottom))}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}}
