:root{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:#283f40;background:#eef0e7;--ink:#283f40;--muted:#6f8078;--green:#2f6b5a;--orange:#e2a75d;--paper:#fffdf5;--line:#d3dacf;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 65% 40%,#faf9ef 0,#eef0e7 62%);min-height:100dvh}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer;border:0;background:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:disabled{cursor:default;opacity:.5}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:3px solid #d68a36;outline-offset:4px}a{color:var(--green);text-underline-offset:3px}h1,h2,h3,p{margin:0}svg{display:block}button svg{pointer-events:none}[hidden]{display:none!important}.topbar{height:67px;padding:0 34px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #d5dace;background:#f3f4eca8;gap:18px}.wordmark{display:flex;align-items:center;gap:9px;text-decoration:none;color:var(--ink);white-space:nowrap}.wordmark>span{font-size:32px;color:var(--green)}.wordmark strong{font-size:17px;letter-spacing:-.6px}.wordmark small{font-size:10px;border-left:1px solid #c6cebf;padding-left:15px;margin-left:6px;color:var(--muted);letter-spacing:1px}.topbar nav{display:flex;align-items:center;gap:22px}.topbar nav button{font-size:11px;color:#63756b;white-space:nowrap}.topbar nav button span{font-size:13px;margin-left:5px}.round-button{width:32px;height:32px;border:1px solid #cdd6c9!important;border-radius:50%;font-size:21px!important}.project-name{font-size:11px;color:#758879;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-name:before{content:'●';color:#7fa278;font-size:8px;margin-right:8px}
#factory{max-width:1440px;margin:auto}.mission-bar{display:flex;align-items:center;gap:15px;padding:22px 42px 2px;min-height:95px}.mission-mark{width:45px;height:49px;flex-shrink:0;display:grid;place-items:center;font-size:19px;font-family:Georgia,serif;font-style:italic;background:#fbf8e8;box-shadow:0 3px 0 #d1c7a6;border:1px solid #e0d6b9;border-radius:4px 4px 14px 4px;transform:rotate(-5deg)}.mission-copy small{font-size:9px;letter-spacing:2px;color:#7e8d7e}.mission-copy h1{font-size:22px;letter-spacing:-.6px;margin-top:6px;font-weight:650;line-height:1.35}.hint-button{height:22px;width:22px;display:grid;place-items:center;border-radius:50%;border:1px solid #b9c5b5;font-size:11px;color:#7d907e;margin-top:14px}.hint-button:hover{background:#fffdf5}.progress-stamps{display:flex;gap:9px;margin-left:auto}.progress-stamps span{height:27px;width:27px;border-radius:50%;border:1px dashed #bfcab7;display:grid;place-items:center;color:#9aa68f;font-size:10px}.progress-stamps span.current{background:#385f52;color:#f4f4de;border-color:#385f52;box-shadow:0 0 0 4px #e3e9dc}.progress-stamps span.done{color:#48735b;border:1px solid #b8c8ad;background:#e3ebd8}
.stage-viewport{height:calc(100dvh - 295px);min-height:355px;max-height:690px;position:relative;margin:0 16px;overflow:auto;isolation:isolate}.world{position:absolute;width:1200px;height:570px;left:50%;top:50%;transform:translate(calc(-50% + var(--world-pan-x,0px)),calc(-50% - var(--world-pan-y,0px))) scale(var(--world-scale,1));transform-origin:center;user-select:none;transition:transform .35s ease}.world-floor,.wire-layer,.flow-layer{position:absolute;inset:0;width:1200px;height:570px}.world-floor{pointer-events:none}.wire-layer{overflow:visible;z-index:1}.flow-layer{overflow:visible;z-index:7;pointer-events:none}.floor-lettering{font-size:12px;fill:#94a28e;letter-spacing:6px;font-family:inherit}.machine{position:absolute;width:180px;height:160px;z-index:3;transition:filter .2s,opacity .2s;transform-origin:center 88%;touch-action:none}.machine-main{padding:0;width:180px;height:160px;display:block;position:relative;border-radius:30px;filter:drop-shadow(0 8px 5px #384b3917);transition:transform .18s,filter .18s}.machine-main:hover{transform:translateY(-4px);filter:drop-shadow(0 12px 7px #384b3925)}.machine-main svg{width:180px;height:160px;overflow:visible}.machine.selected .machine-main{filter:drop-shadow(0 0 8px #e5b24890)}.machine.working .machine-main{animation:machinePulse .65s ease-in-out infinite}.machine.powered-off .art-led,.machine.powered-off .art-core{opacity:.18}.machine.powered-off .machine-main{filter:saturate(.35)}.machine.broken .machine-main{filter:drop-shadow(0 0 6px #cf765044)}.machine-label{position:absolute;top:148px;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:11px;font-weight:600;color:#4e665d;background:#edf1e7ec;padding:4px 10px;border:1px solid #c5d0bc;border-radius:5px;box-shadow:0 2px 0 #c0cbb6}.machine-label small{font-size:8px;font-weight:400;margin-left:5px;color:#7f907d}.machine-state{position:absolute;left:50%;top:176px;transform:translateX(-50%);font-size:9px;color:#738871;white-space:nowrap}.machine .port{position:absolute;width:24px;height:24px;border-radius:50%;background:#f9f6e7;border:5px solid #54736a;box-shadow:0 2px 0 #304c43,0 0 0 3px #dbe4d3;top:122px;z-index:5;padding:0;transition:transform .15s,background .15s}.machine .port:after{content:'';position:absolute;width:6px;height:6px;background:#819887;border-radius:50%;top:4px;left:4px}.machine .port.in{left:12px}.machine .port.out{right:12px}.machine .port:hover,.machine .port.chosen{transform:scale(1.2);background:#f3bd6d}.machine .port.chosen{box-shadow:0 0 0 7px #e9b76750,0 2px 0 #304c43}.connecting .machine .port.in.valid-target{animation:portPulse 1.1s infinite}.machine.fresh{animation:machineIn .55s cubic-bezier(.2,.8,.3,1.3)}
.empty-bay{position:absolute;width:164px;height:135px;padding:0;z-index:2;border-radius:24px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:7px;background:repeating-linear-gradient(125deg,#90a49106,#90a49106 8px,#90a49112 8px,#90a49112 9px);border:1.5px dashed #9bab947a;color:#7e947e;transform:skewY(-4deg);transition:background .2s,border .2s,transform .2s}.empty-bay .bay-plus{font-size:25px;font-weight:200}.empty-bay strong{font-size:11px;font-weight:500}.empty-bay small{font-size:9px;color:#93a58d}.empty-bay.drop-ready,.machine.drop-ready{filter:drop-shadow(0 0 12px #c3a65360)}.empty-bay.drop-ready{border-color:#be9944;background:#fff4c766;transform:skewY(-4deg) translateY(-3px)}.empty-bay:hover{border-color:#748d71;background:#ebf0e0}.future-bay{opacity:.24;pointer-events:none}.future-bay strong{font-size:9px}.future-bay .bay-plus{font-size:17px}
.wire-shadow{stroke:#82977b55;stroke-width:9;fill:none;transform:translateY(5px)}.wire-base{stroke:#668b78;stroke-width:5;stroke-linecap:round;fill:none}.wire-base.network{stroke:#b39269}.wire-base.data{stroke:#7d90aa}.wire-base.model{stroke:#b39b61}.wire-hit{stroke:transparent;stroke-width:20;fill:none;cursor:pointer;pointer-events:stroke}.wire-hit:hover+.wire-cut{opacity:1}.wire-group:hover .wire-base{stroke:#d18a64;stroke-dasharray:6 5}.wire-cut{font-size:15px;fill:#c17e55;opacity:0;pointer-events:none}.wire-arrow{fill:none;stroke:#f4f3de;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.wire-in-progress{stroke:#c3964f;stroke-width:3;stroke-dasharray:6 6;fill:none;pointer-events:none}.travel-trail{stroke:#f5c367;stroke-width:7;stroke-linecap:round;fill:none;opacity:.8}.flow-packet{filter:drop-shadow(0 0 7px #e7b750);fill:#ffed9d;stroke:#b98535;stroke-width:2}.flow-halo{fill:#fff2a477}.flow-cross{fill:#c26c51;font-size:30px;font-weight:700}.device-bubble{position:absolute;z-index:4;max-width:175px;padding:10px 14px;background:#fffdf1;border:1px solid #d4d8c4;box-shadow:0 3px 0 #b9c7ad45;border-radius:12px 12px 12px 2px;font-size:11px;line-height:1.5;color:#60735f;transform:rotate(-2deg);pointer-events:none}.device-bubble:after{content:'';position:absolute;left:15px;bottom:-7px;border-left:7px solid #d4d8c4;border-top:7px solid transparent;transform:rotate(-45deg)}.browser-chips{position:absolute;left:26px;top:67px;width:130px;display:flex;justify-content:center;gap:7px;z-index:5}.cart-slot{height:36px;width:33px;border:1px dashed #8ea18e;border-radius:4px;background:#eef3e2c9;display:grid;place-items:center;padding:2px;font-size:13px;color:#92a184}.cart-slot svg{width:28px;height:28px}.cart-slot.loaded{border:1px solid #c1b77f;background:#f8efd1;box-shadow:0 3px 0 #a6976b}.cart-slot:hover{transform:translateY(-3px)}.key-token{position:absolute;width:49px;height:49px;padding:5px;border-radius:50%;background:#fff3ca;box-shadow:0 3px 0 #c5a86a,0 5px 16px #ad925430;border:1px solid #d2b775;cursor:grab;z-index:6;transition:transform .2s}.key-token:hover{transform:rotate(-12deg) translateY(-4px)}.key-token svg{width:38px;height:38px}.key-socket{position:absolute;width:41px;height:41px;border:1.5px dashed #b4a473;border-radius:50%;top:8px;left:99px;background:#f8efd180;z-index:4;font-size:14px;color:#a18b52}.key-socket:hover{background:#fff0ba}.avatar-name{position:absolute;font-size:9px;padding:3px 9px;border-radius:10px;color:#886e48;background:#f1e1bd;z-index:3}.binary-tape{position:absolute;left:70px;top:305px;transform:rotate(-4deg);font-size:8px;letter-spacing:3px;color:#aaaf92;pointer-events:none}.world-stamp{position:absolute;left:240px;top:398px;font-size:10px;letter-spacing:2px;transform:rotate(-8deg);border:2px solid #87a07a;color:#77956a;padding:9px 14px;border-radius:3px;opacity:.65}
.workbench{min-height:104px;margin:0 34px;padding:14px 17px;display:flex;align-items:center;justify-content:space-between;gap:18px;border:1px solid #ccd4c3;border-radius:13px;background:#f8f8ef;box-shadow:0 4px 0 #cad1c0,0 14px 25px #586a4310;position:relative;z-index:8}.toolkit{display:flex;align-items:center;gap:20px;min-width:0}.toolkit-caption{min-width:98px;border-right:1px solid #dbe0d0;padding-right:20px}.toolkit-caption>span{font-size:12px;font-weight:600;letter-spacing:1px}.toolkit-caption small{font-size:9px;line-height:1.7;display:block;max-width:105px;color:#86927a;margin-top:7px}.tool-tray{display:flex;align-items:center;gap:9px}.tool-card{position:relative;display:flex;align-items:center;padding:8px 12px 8px 6px;border:1px solid #d4d7c5;border-radius:8px;background:#f4f1e1;box-shadow:0 3px 0 #c6c6b0;gap:5px;min-height:58px;cursor:grab;transition:transform .18s,border .18s;touch-action:none}.tool-card:hover{transform:translateY(-5px);border-color:#a1b194}.tool-card.selected{transform:translateY(-5px);background:#f8e8b8;border-color:#cda04c;box-shadow:0 4px 0 #b7a06d}.tool-card svg{width:45px;height:43px}.tool-card strong{display:block;font-size:11px;font-weight:600}.tool-card small{display:block;font-size:8px;color:#809075;margin-top:5px}.tool-card.tool-machine svg{width:48px;height:43px}.tool-empty{font-size:11px;color:#7c9177;line-height:1.8;max-width:350px}.tool-empty span{display:block;font-size:9px;color:#98a58c}.run-button{display:flex;align-items:center;gap:17px;background:#396e5c;border:1px solid #2c594a;border-radius:10px;color:#fff7db;box-shadow:0 5px 0 #254b3c;min-width:163px;min-height:64px;padding:11px 20px;text-align:left;transition:transform .15s,box-shadow .15s}.run-button:hover:not(:disabled){transform:translateY(-3px);box-shadow:0 8px 0 #254b3c}.run-button:active:not(:disabled){transform:translateY(3px);box-shadow:0 2px 0 #254b3c}.run-button .play-icon{font-size:22px;text-shadow:0 2px #234c35}.run-button strong{font-size:13px;font-weight:600}.run-button small{display:block;font-size:9px;color:#b9ceb4;margin-top:5px}.run-button:disabled{opacity:.8}.run-button.ready{background:#b47b39;border-color:#8a5d27;box-shadow:0 5px 0 #7e5529}.run-button.ready small{color:#f2d7ad}.run-button.ready:hover{box-shadow:0 8px 0 #7e5529}.bottom-bar{display:flex;align-items:center;justify-content:space-between;padding:16px 42px 10px;font-size:9px;color:#89937f;max-width:1440px;margin:auto}.bottom-bar #save-status:before{content:'•';margin-right:7px;color:#699763}
.inspector{position:absolute;right:20px;bottom:25px;width:250px;z-index:9;background:#fffcf0;border:1px solid #cbd2bd;box-shadow:0 5px 0 #a8b59b44,0 18px 40px #3f53321a;border-radius:12px;padding:18px;animation:panelIn .2s ease-out}.inspector-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.inspector-head strong{font-size:13px}.inspector-head button{font-size:19px;color:#8a977f}.inspector p{font-size:11px;line-height:1.8;color:#73846b}.inspector-controls{display:flex;gap:8px;margin:14px 0 5px;flex-wrap:wrap}.small-control{font-size:10px;border:1px solid #c6d1bb;border-radius:6px;background:#eff3e5;padding:9px 10px;line-height:1.5}.small-control.on{color:#416b46;background:#e2edda;border-color:#acbf9a}.small-control.off{color:#99634b;background:#f5e8d8;border-color:#d7ba9c}.inspector .knowledge-link{font-size:10px;color:#78906b;padding:0;margin-top:10px}.inspector .remove-machine{font-size:9px;color:#a48c76;display:block;padding:8px 0 0}.hint-card{position:absolute;top:7px;left:45px;max-width:370px;padding:17px 20px;background:#fff5d6;border:1px solid #dacc9d;box-shadow:0 4px 0 #c9bc8740;border-radius:4px 4px 15px 4px;z-index:9;font-size:12px;line-height:1.8;color:#796b42;animation:panelIn .2s}.hint-card button{position:absolute;right:6px;top:3px;color:#a3966a}.live-result{position:absolute;bottom:7px;left:50%;transform:translateX(-50%);z-index:8;max-width:75%;font-size:12px;line-height:1.6;border-radius:9px;background:#fffdf4e8;border:1px solid #d7ddc9;box-shadow:0 3px 0 #bec9ae45;padding:11px 20px;text-align:center;pointer-events:none;opacity:0;transition:opacity .2s}.live-result.visible{opacity:1}.live-result.error{color:#a3684b;border-color:#d4bca3;background:#fff3e4}.live-result.success{color:#4d754e;border-color:#bdcfaf}.delivery-card{position:absolute;top:14px;right:26px;background:#fff9e8;border:1px solid #d4caa8;border-radius:7px 7px 18px 7px;box-shadow:0 5px 0 #b6ae8855,0 12px 25px #394a3420;padding:17px 20px;z-index:8;max-width:275px;animation:deliveryIn .55s cubic-bezier(.2,.8,.3,1.2)}.delivery-card .stamp{color:#688a5a;font-size:11px;margin-bottom:7px;letter-spacing:1px}.delivery-card h3{font-size:16px;line-height:1.5;color:#3f604d}.delivery-card p{font-size:11px;line-height:1.7;color:#869176;margin-top:8px}.delivery-card button{font-size:11px;font-weight:600;color:#86652d;padding:10px 0 0}.is-running .tool-tray,.is-running .machine,.is-running .empty-bay,.is-running .inspector,.is-running .wire-layer{pointer-events:none}.drag-ghost{position:fixed;pointer-events:none;width:75px;height:75px;z-index:100;filter:drop-shadow(0 8px 8px #334e3e44);transform:translate(-50%,-50%)}.drag-ghost svg{height:75px;width:75px}.dragging{cursor:grabbing!important}.dragging *{cursor:grabbing!important}
dialog{border:1px solid #d6ddcd;border-radius:18px;background:#fcfcf3;color:var(--ink);padding:26px 30px;max-width:min(940px,calc(100vw - 32px));width:650px;max-height:88dvh;box-shadow:0 25px 90px #1e392637;overflow:auto}dialog::backdrop{background:#233c3a55;backdrop-filter:blur(5px)}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.dialog-heading h2{font-size:20px;font-weight:650;letter-spacing:-.5px}.close-button{width:29px;height:29px;border:1px solid #d4dccb;border-radius:50%;font-size:20px;color:#748567}.dialog-intro{font-size:12px;line-height:1.8;color:#7b8b70;margin-bottom:20px}.welcome-dialog{width:470px;text-align:left;padding:32px 38px;overflow:visible}.welcome-dialog .dialog-heading{margin-bottom:17px}.welcome-dialog .dialog-heading h2{font-size:11px;letter-spacing:2px;color:#849175;font-weight:500}.welcome-dialog .close-button{display:none}.welcome-star{font-size:41px;color:#5c8766;line-height:1}.welcome-dialog h3{font-size:30px;line-height:1.4;letter-spacing:-1px;margin:13px 0 12px}.welcome-dialog p{font-size:12px;line-height:1.9;color:#7c8b70}.welcome-dialog label{font-size:10px;color:#7f8c73;display:block;margin:22px 0 8px}.welcome-dialog input,.welcome-dialog textarea{width:100%;border:1px solid #ced7c3;border-radius:8px;background:#f4f5e9;padding:13px 14px;font-size:14px;line-height:1.6;resize:vertical}.welcome-templates{display:flex;gap:7px;margin-top:10px}.welcome-templates button{font-size:9px;border:1px solid #dbe0d0;border-radius:20px;padding:6px 10px;color:#899479}.welcome-dialog details{margin-top:18px;font-size:11px;color:#91a080}.welcome-dialog summary{cursor:pointer}.welcome-dialog textarea{margin-top:10px;font-size:11px;min-height:65px}.primary-button{display:inline-flex;align-items:center;justify-content:center;gap:25px;background:#386f58;color:#fcf5df;border:1px solid #2d5747;border-radius:8px;box-shadow:0 4px 0 #284b3c;font-size:12px;font-weight:600;padding:13px 20px;min-height:46px}.welcome-dialog .primary-button{width:100%;margin-top:24px}.welcome-foot{font-size:9px!important;text-align:center;margin-top:17px;color:#9aa38e!important}.preview-dialog{width:520px}.preview-bar{display:flex;align-items:center;padding:10px 14px;background:#e7eddf;border-bottom:1px solid #cbd6c0;border-radius:12px 12px 0 0;font-size:9px;color:#7c8d70;gap:20px}.web-preview{border:1px solid #d3dac7;background:white;padding:30px;min-height:230px;color:black;font-family:serif}.web-preview h3{font-size:23px;margin:15px 0}.web-preview p{font-size:13px;margin:12px 0}.web-preview button{font-family:inherit;border:1px solid #999;border-radius:3px;background:#eee;color:#111;font-size:14px;padding:4px 10px}.web-preview.styled{font-family:inherit;background:#f2f4dd;text-align:center;border-radius:0 0 13px 13px;color:#45634c;padding:30px}.web-preview.styled .preview-star{font-size:37px;color:#d8a858}.web-preview.styled h3{font-size:23px;overflow-wrap:anywhere}.web-preview.styled p{font-size:12px;color:#83916f;line-height:1.7}.web-preview.styled button{background:#507858;border:1px solid #3b6547;color:#fff7df;padding:12px 24px;border-radius:8px;font-family:inherit;font-size:12px;box-shadow:0 3px 0 #35543a}.preview-status{font-size:11px;color:#8e987e;margin-top:15px;line-height:1.8}.preview-status.success{color:#497455}.preview-status.error{color:#ac7657}.preview-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:18px}.text-button{font-size:11px;color:#71856a;padding:5px 0}.preview-empty{font-size:13px;color:#97a389;text-align:center;padding:65px 20px;border:1px dashed #c9d5bb;border-radius:9px}.fact-search{width:100%;padding:12px 14px;border:1px solid #ced7c3;border-radius:8px;background:#f4f6eb;font-size:12px;margin-bottom:18px}.fact-list{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;max-height:50vh;overflow:auto}.fact-list button{font-size:11px;border:1px solid #d7dfcb;border-radius:8px;padding:12px 10px;background:#f4f7ec;text-align:left;line-height:1.6}.fact-list button:hover{background:#e9efdf}.fact-list button span{color:#83a06e;margin-right:6px;font-size:9px}.concept-one{font-size:17px;line-height:1.6;color:#3c6250;margin-bottom:20px}.concept-body{font-size:13px;line-height:1.9;color:#7b8972;margin:14px 0}.concept-analogy{background:#ecf1e2;border-radius:9px;padding:17px 19px;font-size:12px;line-height:1.8;color:#798968;margin:20px 0}.concept-related{display:flex;flex-wrap:wrap;gap:7px;margin-top:22px}.concept-related button{padding:8px 11px;border:1px solid #cdd9c1;border-radius:20px;font-size:10px;color:#6e8662}.concept-boundary{background:#f4eedc;border-radius:7px;padding:12px 15px;font-size:11px;line-height:1.8;color:#9b8c65}.source-links{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0 0}.source-links a{font-size:10px;color:#8a9878}.history-list{display:grid;gap:6px;max-height:60vh;overflow:auto}.history-list button{display:grid;grid-template-columns:105px 1fr;gap:15px;text-align:left;padding:14px 12px;border-bottom:1px solid #dce3d1}.history-list small{font-size:10px;color:#9aa58b}.history-list strong{font-size:12px;font-weight:500}.history-people{font-size:11px;color:#a79770;margin-bottom:15px}.settings-row{display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-bottom:1px solid #e1e5d8;font-size:12px}.settings-row p{font-size:10px;color:#87967b;margin-top:6px;line-height:1.8;max-width:320px}.settings-links{display:flex;gap:17px;margin-top:24px;flex-wrap:wrap}.settings-links a,.settings-links button{font-size:10px}.finish-emblem{font-size:54px;color:#789665;text-align:center;margin:0 0 15px}.finish-copy{text-align:center}.finish-copy h3{font-size:25px;line-height:1.5;overflow-wrap:anywhere}.finish-copy p{font-size:12px;line-height:1.9;color:#829376;margin:14px 0 20px}.finish-copy .primary-button{margin:5px}.finish-copy small{display:block;font-size:9px;color:#9ba68e;line-height:1.9;margin-top:15px}.toast{position:fixed;bottom:28px;left:50%;transform:translate(-50%,15px);background:#365b4e;color:#fff6de;box-shadow:0 5px 20px #24452c25;font-size:12px;padding:12px 21px;border-radius:25px;z-index:30;opacity:0;pointer-events:none;max-width:85vw;text-align:center;line-height:1.6;transition:opacity .2s,transform .2s}.toast.visible{opacity:1;transform:translate(-50%,0)}
.saved-memo,.ai-reply{position:absolute;z-index:5;pointer-events:none;width:165px;padding:9px 12px;background:#fff1c8;border:1px solid #d4bd7a;border-radius:3px 3px 12px 3px;box-shadow:0 4px 0 #b4a97830;transform:rotate(-4deg);animation:panelIn .25s}.saved-memo small,.ai-reply small{display:block;font-size:8px;color:#a38c55;margin-bottom:5px}.saved-memo span,.ai-reply span{display:block;font-size:10px;color:#776745;line-height:1.7;overflow-wrap:anywhere}.ai-reply{background:#f6f4df;border-color:#d3d3ae;transform:rotate(2deg);width:190px}.ai-reply b{font-size:9px;display:block;color:#b2714e;margin-top:6px}
@keyframes machineIn{from{opacity:0;transform:translateY(-45px) scale(.7)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes machinePulse{50%{transform:translateY(-3px)}}@keyframes portPulse{50%{box-shadow:0 0 0 6px #dcb36c55}}@keyframes panelIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes deliveryIn{from{opacity:0;transform:translateY(-25px) rotate(5deg)}to{opacity:1;transform:translateY(0) rotate(0)}}@keyframes ledBlink{50%{opacity:.3}}@keyframes gearSpin{to{transform:rotate(360deg)}}@keyframes paperFeed{to{transform:translateY(5px)}}@keyframes wavePulse{50%{opacity:.2;transform:translateY(-2px)}}.working .art-led{animation:ledBlink .55s infinite}.working .art-fan{animation:gearSpin 1.2s linear infinite;transform-box:fill-box;transform-origin:center}.working .art-paper{animation:paperFeed .35s linear infinite alternate}.working .art-wave{animation:wavePulse .7s infinite}.working .art-core{animation:ledBlink .4s infinite}.machine:not(.powered-off) .art-led{filter:drop-shadow(0 0 1px #c8dfab)}
@media(min-height:950px){.mission-bar{padding-top:32px;min-height:110px}.stage-viewport{height:calc(100dvh - 315px)}}
@media(max-width:850px){.topbar{padding:0 20px;height:58px}.wordmark small{display:none}.topbar nav{gap:13px}.project-name{display:none}.mission-bar{padding:20px 23px 5px;gap:11px}.mission-copy h1{font-size:18px}.mission-mark{width:38px;height:42px}.progress-stamps{gap:5px}.progress-stamps span{width:21px;height:21px;font-size:8px}.stage-viewport{margin:0;min-height:350px}.workbench{margin:0 15px;padding:12px;gap:10px}.toolkit{gap:9px}.toolkit-caption{display:none}.tool-card{padding:7px 9px 7px 5px;gap:2px}.tool-card svg{width:37px;height:36px}.tool-card strong{font-size:10px}.tool-card small{font-size:8px}.tool-tray{gap:7px}.run-button{min-width:135px;padding:11px 14px;gap:12px}.run-button strong{font-size:11px}.bottom-bar{padding:16px 24px;font-size:8px}.inspector{right:15px;width:225px;padding:15px}.delivery-card{right:14px;top:8px;padding:13px 16px;max-width:220px}.delivery-card h3{font-size:14px}.delivery-card p{font-size:10px}.live-result{font-size:10px;max-width:85%;padding:8px 15px}.hint-card{left:20px;font-size:11px;max-width:310px}}
@media(max-width:560px){.topbar{padding:0 13px;height:55px}.wordmark strong{font-size:15px}.wordmark>span{font-size:27px}.topbar nav{gap:12px}.topbar nav button{font-size:9px}.round-button{width:26px;height:26px;font-size:18px!important}.mission-bar{padding:17px 15px 0;min-height:90px;gap:10px;flex-wrap:wrap}.mission-mark{width:33px;height:37px;font-size:15px}.mission-copy{max-width:calc(100% - 82px)}.mission-copy h1{font-size:16px;margin-top:4px}.mission-copy small{font-size:8px;letter-spacing:1px}.hint-button{margin-left:auto;margin-top:8px}.progress-stamps{position:absolute;top:149px;right:15px;z-index:10;gap:4px}.progress-stamps span{width:15px;height:15px;font-size:7px}.stage-viewport{height:calc(100dvh - 328px);min-height:335px;overflow:auto}.world{left:0;transform:translate(var(--world-pan-x,0px),calc(-50% - var(--world-pan-y,0px))) scale(var(--world-scale));transform-origin:0 center}.workbench{flex-wrap:wrap;gap:13px;min-height:146px}.toolkit{width:100%;min-height:53px;justify-content:center}.tool-tray{justify-content:center;width:100%;gap:8px}.tool-card{flex:1;max-width:145px;justify-content:center}.tool-card svg{width:34px;height:33px}.tool-empty{font-size:10px;text-align:center}.tool-empty span{font-size:8px}.run-controls{width:100%}.run-button{width:100%;min-height:45px;justify-content:center;gap:15px;padding:8px 20px}.run-button span:not(.play-icon){display:flex;align-items:center;gap:13px}.run-button small{margin:0;font-size:8px}.run-button .play-icon{font-size:17px}.bottom-bar{padding:14px 16px;font-size:7px;gap:10px}#gesture-help{display:none}.inspector{position:fixed;bottom:181px;right:13px;width:230px;z-index:15}.delivery-card{position:fixed;right:13px;top:174px;max-width:195px;z-index:12}.delivery-card p{display:none}.delivery-card h3{font-size:12px}.delivery-card .stamp{font-size:9px}.delivery-card button{font-size:10px}.live-result{position:sticky;bottom:8px;left:0;transform:none;width:90%;margin:0 auto;max-width:none;font-size:10px;min-height:30px}.hint-card{position:fixed;top:174px;left:15px;max-width:calc(100vw - 30px);z-index:15}.welcome-dialog{padding:24px 27px;width:calc(100vw - 34px)}.welcome-dialog h3{font-size:26px}.welcome-dialog p{font-size:11px}dialog{padding:20px}.dialog-heading h2{font-size:17px}.fact-list{grid-template-columns:1fr 1fr}.fact-list button{font-size:10px}.history-list button{grid-template-columns:90px 1fr;gap:8px}.history-list strong{font-size:11px}.concept-one{font-size:15px}.concept-body{font-size:12px}.web-preview.styled{padding:25px 19px}.web-preview.styled h3{font-size:20px}.finish-copy h3{font-size:21px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}html[data-motion=off] *,html[data-motion=off] *:before,html[data-motion=off] *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}

.remote-mini{pointer-events:auto;display:block;text-align:left;border:1px solid #d5d8bd;background:#edf1de;margin-top:8px;border-radius:5px;padding:8px 10px;min-width:130px;color:#486653}.remote-mini span{display:block;font-size:12px;font-weight:600}.remote-mini small{display:block;font-size:8px;color:#7c8b70;margin-top:4px}.remote-mini:hover{background:#e4ecd1;transform:translateY(-2px)}
/* A short opening and one action at a time; the stage stays quiet. */
.mission-copy h1{margin-top:0}.hint-button{margin-top:0}.workbench{margin-bottom:22px}.stage-viewport{height:calc(100dvh - 290px)}
.first-move{position:absolute;top:12px;left:34px;z-index:8;background:#fcf8e9eF;border:1px solid #d8cba4;border-radius:5px 5px 14px 5px;padding:13px 17px;max-width:340px;box-shadow:0 4px 0 #b8ac8230;pointer-events:none}.first-move>span{font-size:9px;color:#a18c62;margin-right:10px;letter-spacing:1px}.first-move strong{font-size:12px;font-weight:600;color:#5d6e54}.first-move small{display:block;font-size:10px;color:#859076;margin:7px 0 0 36px}.tutorial-target{outline:2px solid #d6a04e;outline-offset:5px;animation:tutorialGlow 1.6s ease-in-out infinite}.intro-dialog{width:580px;padding:27px 42px 32px;overflow:auto;background:radial-gradient(ellipse at 75% 12%,#e8eddc,#fcfcf3 62%)}.intro-dialog .dialog-heading{margin-bottom:18px}.intro-dialog .dialog-heading h2{font-size:15px;letter-spacing:5px;color:#3b6655;font-weight:650}.intro-dialog h3{font-size:35px;line-height:1.3;margin:0 0 15px;letter-spacing:0}.intro-purpose{font-size:12px!important;line-height:1.9!important;color:#78886d!important}.intro-route{display:flex;align-items:center;justify-content:space-between;gap:7px;margin:17px 0 10px;padding:13px 7px 16px;border-bottom:1px solid #d9dfcc}.intro-route>div{flex:1;min-width:0;text-align:center;animation:panelIn .6s both}.intro-route>div:nth-of-type(2){animation-delay:.12s}.intro-route>div:nth-of-type(3){animation-delay:.24s}.intro-route svg{width:100%;height:96px;filter:drop-shadow(0 4px 3px #38503c15)}.intro-route span{font-size:11px;color:#677e62;display:block;margin-top:6px}.intro-route b{font-size:20px;font-weight:400;color:#c3a16b}.intro-dialog label{margin-top:16px}.intro-dialog .primary-button{margin-top:20px}.intro-dialog details{margin-top:12px}.intro-dialog input{padding:10px 13px}.intro-dialog:modal::backdrop{background:#e3e8dcdd;backdrop-filter:blur(9px)}
@keyframes tutorialGlow{50%{outline-color:#efce7e;outline-offset:8px;box-shadow:0 0 0 5px #e9c56d20}}
@media(max-width:560px){.intro-dialog{width:calc(100vw - 28px);padding:24px}.intro-dialog h3{font-size:29px}.intro-route svg{height:74px}.intro-purpose{font-size:11px!important}.intro-route span{font-size:10px}.first-move{left:14px;top:30px;max-width:calc(100vw - 28px);padding:10px 12px}.first-move strong{font-size:11px}.first-move small{font-size:9px}.stage-viewport{height:calc(100dvh - 320px)}}
@media(prefers-reduced-motion:reduce){.tutorial-target,.intro-route>div{animation:none!important}}
/* Completion and continuation share one place; instructions follow the next action. */
.toolkit{flex:1}.tool-tray{flex-wrap:wrap}.run-controls{display:flex;flex-direction:column;align-items:center;gap:8px;flex-shrink:0}#retry-button{font-size:10px;color:#829078;padding:0 6px}.delivery-card{top:auto;right:auto;left:50%;bottom:12px;transform:translateX(-50%);width:max-content;max-width:min(560px,85%);padding:15px 21px;text-align:center;animation:none}.delivery-card .stamp{font-size:14px;color:#46694d;letter-spacing:0;margin:0}.delivery-card p{font-size:11px;margin-top:7px;color:#7b896c}.preview-success{margin-top:21px;border-top:1px solid #d6dfc7;padding-top:18px}.preview-success strong{display:block;font-size:14px;color:#45664d}.preview-success p{font-size:12px;line-height:1.8;color:#7c8b71;margin:7px 0 15px}.preview-success .primary-button{width:100%;font-size:13px}.preview-stay{display:block;margin:13px auto 0;font-size:10px}.preview-dialog .preview-status:empty{display:none}
@media(max-width:560px){.delivery-card{position:absolute;top:auto;right:auto;bottom:10px;max-width:92%;padding:12px 15px;z-index:8}.delivery-card p{display:block;font-size:10px}.delivery-card .stamp{font-size:12px}.run-controls{gap:10px}.preview-success p{font-size:11px}.preview-success strong{font-size:13px}}
.action-dock{display:flex;align-items:center;gap:24px;flex-shrink:0}.action-dock .delivery-card{position:static;transform:none;max-width:290px;width:auto;background:none;border:0;box-shadow:none;padding:0;text-align:left;animation:none}.action-dock .delivery-card p{max-width:265px;line-height:1.7}.action-dock .run-controls{flex-direction:column-reverse}.action-dock .delivery-card:not([hidden])+.run-controls .play-icon{display:none}
@media(max-width:850px){.workbench{flex-wrap:wrap}.action-dock{margin-left:auto;gap:18px}.action-dock .delivery-card{max-width:240px}.action-dock .delivery-card .stamp{font-size:12px}}
@media(max-width:560px){.action-dock{width:100%;flex-direction:column;align-items:stretch;gap:13px}.action-dock .delivery-card{max-width:none;text-align:center}.action-dock .delivery-card p{max-width:none}.action-dock .run-controls{width:100%}}

.drop-miss{position:fixed;z-index:31;max-width:220px;padding:8px 12px;border-radius:10px;background:#6b3f35;color:#fff6de;font-size:11px;line-height:1.45;box-shadow:0 6px 18px #3a221888;pointer-events:none;animation:drop-miss-pop .85s ease both}
@keyframes drop-miss-pop{0%{opacity:0;transform:translateY(6px) scale(.96)}18%{opacity:1;transform:translateY(0) scale(1)}75%{opacity:1}100%{opacity:0;transform:translateY(-8px)}}
.settings-danger{margin-top:22px;padding-top:16px;border-top:1px dashed #d7b2a4}
.settings-danger p{font-size:10px;color:#a67b67;margin:0 0 10px;letter-spacing:.2px}
.danger-button{font-size:11px;color:#9a4f3d;border:1px solid #e0b5a6;background:#f8ebe4;border-radius:8px;padding:10px 14px;box-shadow:0 2px 0 #e5c4b6}
.danger-button:hover{background:#f3ddd3}
html[data-motion="off"] .world{transition:none}
@media(prefers-reduced-motion:reduce){.drop-miss{animation:none;opacity:1}}html[data-motion="off"] .drop-miss{animation:none;opacity:1}
