:root{color-scheme:light;--ink:#27382e;--muted:#7a8277;--green:#41684c;--line:#e1e5db;--paper:#fffef9;--sage:#edf0e8;font-family:Inter,"Segoe UI",Arial,sans-serif;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:#f6f6f0;color:var(--ink);min-height:100svh;padding:0 5vw}button,a,summary{-webkit-tap-highlight-color:transparent}button{font:inherit}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #95b688;outline-offset:4px}.top{max-width:1200px;margin:auto;height:108px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;font-size:32px;font-weight:760;letter-spacing:-2px}.brand svg{width:28px;height:28px;fill:none;stroke:var(--ink);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.brand-dot{color:#88a371}.header-note{font-size:10px;font-weight:600;letter-spacing:2.3px;color:#949b8f}.connection-badge{font-size:11px;display:flex;align-items:center;gap:8px;border:1px solid #dce1d4;padding:9px 13px;border-radius:30px;color:#6e796b;white-space:nowrap}i{display:inline-block;width:6px;height:6px;background:#adb7a5;border-radius:50%;flex-shrink:0}.connection-badge.connected i{background:#608557;box-shadow:0 0 0 3px #e1eadb}main{max-width:1120px;margin:20px auto 0;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(330px,.9fr);background:var(--paper);border:1px solid #e2e6da;border-radius:24px;overflow:hidden;box-shadow:0 18px 60px #374c3010}.workspace{background:var(--sage);padding:32px 36px 36px;display:flex;flex-direction:column;position:relative;min-width:0}.art-label{display:flex;justify-content:space-between;gap:20px;align-items:center}.eyebrow{font-size:9px;font-weight:700;letter-spacing:2px;color:#71826e}.edition{font:9px "Segoe UI",sans-serif;letter-spacing:1px;color:#97a28e}.scene{flex:1;display:grid;align-items:center;min-height:350px;margin:0 -20px}.desk-art{width:100%;height:auto;max-height:430px;overflow:visible}.art-caption{display:flex;justify-content:space-between;align-items:end;margin-top:6px}h1{font-family:Georgia,"Times New Roman",serif;font-size:45px;letter-spacing:-1.8px;font-weight:400;line-height:1.1;margin:0 0 9px}.art-caption p{font-size:12px;color:#83907b;margin:0;line-height:1.5}.leaf{background:#e0e6d6;border-radius:50%;height:42px;width:42px;display:grid;place-items:center;color:#8a9b7d;font-size:24px}.controls{padding:36px 36px 24px}h2{font-family:Georgia,"Times New Roman",serif;font-size:35px;font-weight:400;letter-spacing:-1px;margin:12px 0 10px}.control-heading p{font-size:12px;line-height:1.8;color:#8a9185;margin:0 0 24px}.device-card{display:flex;align-items:center;border:1px solid var(--line);border-radius:13px;padding:13px 14px;gap:12px;background:#fbfcf6;margin-bottom:12px}.bluetooth-icon{background:#e9efdf;border-radius:9px;width:34px;height:38px;display:grid;place-items:center}.bluetooth-icon svg,.connect svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.device-copy{display:flex;flex-direction:column;gap:5px;min-width:0}.device-copy strong{font-size:12px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.device-copy span{font-size:10px;color:#92998b}.radio-waves{margin-left:auto;font-size:27px;color:#a8b59b}.connect{border:0;border-radius:10px;display:flex;align-items:center;gap:10px;width:100%;background:var(--green);color:#fffef8;min-height:47px;padding:11px 16px;cursor:pointer;font-size:12px;transition:background .2s}.connect:hover{background:#345b40}.connect-arrow{margin-left:auto;font-size:18px;color:#b9cdb0}.connect.disconnect{background:#e9efdf;color:var(--green)}.movement{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}.move{user-select:none;-webkit-user-select:none;touch-action:none;cursor:pointer;border:1px solid #dce3d3;border-radius:13px;min-height:123px;display:flex;align-items:center;justify-content:center;flex-direction:column;color:var(--green);background:#f4f7ed;gap:6px;transition:background .13s,box-shadow .13s}.move svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.move strong{font-size:16px;font-weight:600}.move span{font-size:7px;font-weight:600;letter-spacing:1.5px;margin-top:2px;opacity:.6}.move:not(:disabled):hover{background:#e5efda}.move.active{background:#d4e5c5;box-shadow:inset 0 0 0 1px #97b183}.move:disabled{opacity:.4;cursor:not-allowed}.stop{user-select:none;display:flex;width:100%;align-items:center;justify-content:center;gap:8px;border:1px solid #eee5dc;background:#fcf8f3;color:#9e7764;border-radius:10px;margin-top:12px;padding:12px;font-size:11px;cursor:pointer;position:relative;min-height:42px}.stop:disabled{opacity:.45;cursor:not-allowed}.stop:not(:disabled):hover{background:#f3e5d9}.stop-square{height:7px;width:7px;background:currentColor;border-radius:1px}.esc{position:absolute;right:12px;border:1px solid #eadfd5;border-radius:3px;padding:2px 3px;font-size:7px;opacity:.6}.status{display:flex;gap:7px;align-items:center;justify-content:center;min-height:42px;font-size:10px;color:#8b9483;text-align:center;line-height:1.6}.status.running{color:#41684c}.status.running i{background:#698d57;animation:pulse 1.2s infinite}.status.error{color:#a0604b}.status.error i{background:#b77c60}.help{border-top:1px solid var(--line);padding-top:15px;font-size:10px;line-height:1.8;color:#818d77}.help summary{display:flex;justify-content:space-between;cursor:pointer;list-style:none;color:#6e7d65;font-size:10px}.help summary::-webkit-details-marker{display:none}.help summary span{font-size:15px}.help[open] summary span{transform:rotate(45deg)}.help ol{padding-left:17px;margin:14px 0 9px}.help p{margin:9px 0}.browser-note:empty{display:none}footer{max-width:1120px;display:flex;justify-content:space-between;align-items:center;margin:25px auto 30px;font-size:9px;color:#9aa18f}footer>span:first-child{display:flex;align-items:center;gap:7px;font-size:8px;letter-spacing:1.1px}footer i{height:4px;width:4px;background:#91a380}.motion-arrow{opacity:0}.moving-up .arrow-up,.moving-down .arrow-down{opacity:1;animation:pulse 1s infinite}.moving-up .desk-assembly,.moving-down .desk-assembly{filter:drop-shadow(0 0 6px #789c6c25)}@keyframes pulse{50%{opacity:.4}}@media(min-width:1500px){main{margin-top:6vh}}@media(max-width:850px){body{padding:0 20px}.header-note,.edition{display:none}.top{height:85px}main{grid-template-columns:1fr;max-width:490px;margin-top:0}.workspace{padding:24px}.scene{min-height:0;margin:-10px -20px -5px}.desk-art{max-height:280px}.art-caption{margin-top:-10px}h1{font-size:34px}.art-caption p{font-size:11px}.controls{padding:25px}.control-heading{display:none}.device-card{padding:11px 13px}.movement{margin-top:16px}.move{min-height:105px}.connection-badge{font-size:10px}footer{max-width:490px;gap:15px;font-size:8px}footer>span:first-child{font-size:7px;letter-spacing:.5px}.top{max-width:490px}.help{padding-top:12px}.status{min-height:36px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
.skill-link{color:#607755;text-decoration:none;font-size:10px;white-space:nowrap}.skill-link:hover{text-decoration:underline}.skill-note{max-width:1120px;margin:-10px auto 24px;color:#8b9582;font-size:10px;line-height:1.8}.skill-note a{color:#607755;text-underline-offset:3px}.skill-note code{font-size:10px}@media(max-width:850px){.skill-note{max-width:490px}}
