:root{--bg:#f0f3ee;--ink:#183b38;--accent:#d9fb8a}*{box-sizing:border-box}body{margin:0;font:15px/1.6 system-ui,sans-serif;color:var(--ink);background:var(--bg)}header{padding:20px 5vw;background:#102f32;color:white;display:flex;justify-content:space-between;gap:20px}a{color:inherit}header a{text-decoration:none}nav{display:flex;gap:18px;flex-wrap:wrap}main{max-width:1500px;padding:40px 28px;margin:auto}h1{font-size:clamp(36px,5vw,65px);line-height:1.1;letter-spacing:-2px;margin:20px 0}h1 em{font-style:normal;color:#628556}.eyebrow{font:11px monospace;letter-spacing:3px}.lead{max-width:720px;font-size:18px;color:#59726a}button,input,select{font:inherit}button,.file{border:1px solid #bacdc2;border-radius:9px;padding:10px 14px;background:white;color:var(--ink);cursor:pointer;min-height:44px}button:hover{background:#e5f5d5}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #679b32;outline-offset:2px}input,select{max-width:100%;accent-color:#608c34}input[type=number],select,input[type=search]{padding:7px;border:1px solid #becfc6;border-radius:6px;width:100%;background:white}input[type=range]{width:100%;min-height:32px}.tabs{margin:32px 0;gap:8px}.tabs button[aria-selected=true]{background:#143d3b;color:#d9fb8a}.page{background:white;padding:24px;border-radius:18px;border:1px solid #d9e3d9}[hidden]{display:none!important}.toolbar{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.file input{display:none}.note{font-size:13px;color:#5c736d}.bench-layout{display:grid;grid-template-columns:190px 1fr;gap:16px}#parts-palette{display:flex;flex-direction:column;gap:7px}#parts-palette button{text-align:left;font-size:13px}.board-scroll{overflow:auto;border-radius:12px;border:1px solid #bacdc2}#board{height:700px;min-width:850px;position:relative;background-color:#e9efea;background-image:radial-gradient(#a5bbb0 1px,transparent 1px);background-size:20px 20px;overflow:hidden}#wires{position:absolute;width:100%;height:100%;inset:0;pointer-events:none}.arduino-board{position:absolute;left:37%;top:34%;width:26%;height:27%;padding:22px 10px;background:#157b7b;border:6px solid #165653;border-radius:16px;color:white;text-align:center;display:flex;flex-direction:column;justify-content:center;box-shadow:0 8px 20px #1235}.arduino-board strong{font-size:32px}.arduino-board small{font-size:9px}.mounted-part{position:absolute;width:205px;background:white;border:2px solid #baccc0;border-radius:12px;padding:10px;box-shadow:0 6px 16px #153b3222;font-size:12px}.mounted-part.on{border-color:#699b2c;box-shadow:0 0 18px #c3e887}.handle{display:flex;justify-content:space-between;background:#173d3b;color:white;border-radius:7px;padding:6px;cursor:grab;touch-action:none;user-select:none}.handle button{min-height:24px;padding:0 6px;font-size:12px}.mounted-part label{display:block;margin-top:5px}.mounted-part select{font-size:11px;padding:3px}.mounted-part output{font:600 18px monospace;display:block;padding:4px}.signal-line{display:block;font:11px monospace;color:#52733c}.seq-layout{display:grid;grid-template-columns:1fr 300px;gap:25px}.step{border:2px solid #c9d5cb;border-radius:10px;padding:15px;margin:12px 0;position:relative}.step.active{border-color:#547f20;background:#edfad6}.step h3{margin:0}.step-controls{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.step label{font-size:12px}.science{display:grid;grid-template-columns:1fr 1fr;gap:35px}.control{display:block;margin:14px 0}.control output{float:right;font-family:monospace}.readout{background:#102f32;color:#e4f8cb;border-radius:15px;padding:30px;display:flex;flex-direction:column;gap:20px;justify-content:center;align-items:center}.readout>output{font:18px/1.8 monospace;white-space:pre-line}#beaker{width:100px;height:140px;border:3px solid #b9dfed;border-top:0;border-radius:0 0 20px 20px;position:relative;overflow:hidden}#liquid{position:absolute;bottom:0;width:100%;background:#75afda}#spring-track{height:80px;width:100%;border-bottom:4px solid #86ada6;position:relative}#mass{position:absolute;width:45px;height:45px;background:#d9fb8a;color:#173d3b;text-align:center;padding:10px;bottom:0;transform:translateX(-50%)}.formula{font-family:monospace;background:#eff5eb;padding:14px;border-radius:8px}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:15px;margin:20px 0}.card{border:1px solid #d3ded3;border-radius:12px;padding:20px}.card h3{margin:0}.card small{color:#69805c}.lesson{border:1px solid #d0ddcf;padding:18px;margin:14px 0;border-radius:12px}.lesson summary{font-size:19px;font-weight:600;cursor:pointer}.lesson p{max-width:950px}footer{padding:35px 0;font-size:12px;color:#64806d}@media(max-width:800px){main{padding:25px 12px}.page{padding:15px}.bench-layout,.seq-layout,.science{grid-template-columns:1fr}#parts-palette{display:grid;grid-template-columns:repeat(2,1fr)}.step-controls{grid-template-columns:1fr 1fr}.tabs button{flex:1}header{flex-wrap:wrap}}
.program-panel{margin:25px 0;padding:25px;background:#f3f7ef;border:1px solid #cfddc7;border-radius:15px}.program-top{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}.program-top h2{margin:8px 0}.program-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:22px}.program-grid pre{max-height:430px;overflow:auto;background:#102a31;color:#dcf0c8;padding:20px;border-radius:12px;font:12px/1.7 monospace;white-space:pre;tab-size:2}.program-grid>div{min-width:0}.program-warning{color:#815614}.program-ready{color:#326727}.ai-workflow{border-top:1px solid #cbdac4;padding-top:18px;margin-top:20px}.ai-workflow summary{font-weight:600;cursor:pointer}.ai-workflow label{display:block;margin:14px 0}.ai-workflow textarea{display:block;width:100%;padding:12px;margin:8px 0;border:1px solid #b2c7b9;border-radius:8px;font:13px/1.5 monospace}button:disabled{opacity:.5;cursor:not-allowed}@media(max-width:800px){.program-grid{grid-template-columns:1fr}.program-panel{padding:15px}}

#parts-palette{display:grid;gap:8px}#parts-palette button[hidden]{display:none}#parts-search{box-sizing:border-box;width:100%;margin:8px 0 16px;padding:10px;border:1px solid #9daead;border-radius:8px}
.quick-start{display:flex;gap:18px;flex-wrap:wrap;padding:18px;background:#eaf6d9;border-radius:12px}.live-workspace{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:18px;align-items:start}.live-workspace>.bench-layout{min-width:0}.code-live{position:sticky;top:16px;border-radius:14px;background:#112f32;color:#e4f4d5;padding:18px}.code-live .note{color:#b4ccc0}.code-live pre{max-height:440px;overflow:auto;font:12px/1.6 monospace}.code-live label{display:block;font-size:14px}.experiment{margin:28px 0;padding:22px;border:1px solid #c2d4c8;border-radius:16px;background:#f7faf5}.experiment h3{font-size:24px;margin-top:0}.experiment-view{background:#112f32;color:#e8f3dc;border-radius:14px;padding:14px;min-width:0}.experiment-view svg{display:block;width:100%;height:auto}.experiment-view output{display:block;white-space:pre-line;font:15px/1.8 monospace;padding:10px}.range-number{display:grid;grid-template-columns:1fr 95px;gap:12px;align-items:center}.control input[type=number]{max-width:110px}.mounted-part .control input[type=number]{max-width:100%;font-size:12px;padding:3px}.mounted-part{font-size:11px}.mounted-part .control{margin:5px 0}.mounted-part input[type=range]{min-height:24px}@media(max-width:1250px){.live-workspace{grid-template-columns:1fr}.code-live{position:static}.code-live pre{max-height:240px}}@media(max-width:800px){.experiment{padding:14px}.range-number{grid-template-columns:1fr 80px}.quick-start{display:grid;gap:5px}}
