:root{font-family:Inter,Arial,sans-serif;color:#e8e9df;background:#141817;font-synthesis:none;color-scheme:dark}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,select{cursor:pointer}button,a,input,select,textarea{outline-offset:5px}button{background:#222a27;border:1px solid #46514a;color:#e8e9df;border-radius:5px;padding:10px 13px;transition:background .15s}button:hover{background:#354039}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[role=slider]:focus-visible{outline:2px solid #e2f1a7}button.primary{background:#d7e7a0;color:#24311d;border-color:#d7e7a0}main{max-width:1700px;margin:auto;padding:0 34px}header{display:flex;align-items:center;gap:18px;border-bottom:1px solid #39423b;padding:22px 0}.brand{display:flex;align-items:center;justify-content:center;text-decoration:none;background:#d7e7a0;color:#202820;border-radius:50%;width:52px;height:52px;font:italic 24px Georgia}.brand span{font-size:19px}h1{font-size:18px;font-weight:500;margin:5px 0}.eyebrow{font:10px/1.5 monospace;letter-spacing:2px;color:#a2ae9f;margin:0}.actions{margin-left:auto;display:flex;gap:8px}.intro{display:flex;justify-content:space-between;align-items:center;margin:43px 0 35px}.intro h2{font-size:clamp(30px,4.4vw,64px);line-height:1.06;font-weight:400;letter-spacing:-2px;margin:12px 0}.intro em{font-family:Georgia,serif;font-weight:400;color:#d7e7a0}.intro p{line-height:1.8;color:#d6d8cf;font-size:14px;margin-right:3vw}.intro p span{font:11px monospace;color:#9aa796}.studybar{display:flex;align-items:center;gap:22px;border-top:1px solid #39423b;padding:17px 0;font:12px monospace}.studybar label{display:flex;gap:12px;align-items:center}.studybar span{color:#b5bcb0}select,input,textarea{background:#19201c;color:#e8e9df;border:1px solid #485249;padding:9px;border-radius:4px;max-width:100%}label{font-size:12px;color:#b9c4b3}label input,label textarea{display:block;width:100%;margin-top:7px}.palette{display:flex;gap:4px;padding-bottom:28px}.swatch{flex:1;min-width:0;padding:0 0 12px;background:transparent;text-align:left;border-color:transparent;border-radius:0}.swatch div{height:140px;margin-bottom:13px}.swatch b,.swatch small{display:block;padding:0 12px}.swatch b{font-size:13px;font-weight:400}.swatch small{font:10px monospace;margin-top:6px;color:#a9b3a4}.swatch.active{border-bottom:2px solid #d7e7a0}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 280px;border:1px solid #3d483e}.graphpanel{padding:24px 26px;background:radial-gradient(ellipse at 70% 50%,#232d26,transparent 75%)}.panelhead{display:flex;align-items:center;justify-content:space-between;gap:15px}h3{font:24px Georgia,serif;font-weight:400;margin:10px 0 20px}.segmented{display:flex;gap:3px}.segmented button{padding:8px 12px;font-size:12px}.segmented [aria-pressed=true]{background:#d7e7a0;color:#202820}.axislabels{display:flex;justify-content:space-between;font:10px monospace;color:#95a38f;margin:18px 0 0}.graph{width:100%;display:block;touch-action:none;overflow:visible}.gridline{stroke:#354335;stroke-dasharray:2 6}.edge{stroke:#a9bc81;stroke-width:2}.edge.bad{stroke:#eaa57d;stroke-dasharray:5 4}.edgeLabel{fill:#d7e7a0;font:11px monospace;paint-order:stroke;stroke:#202820;stroke-width:4px}.nodeLabel{fill:#e8e9df;font:12px monospace;pointer-events:none;paint-order:stroke;stroke:#202820;stroke-width:4px}[role=slider]{cursor:ew-resize}.readout{border-top:1px solid #41513d;padding-top:16px;display:flex;gap:20px;align-items:center;font-size:12px;color:#c9dba4}.readout.warning{color:#f1b48d}.readout b{white-space:nowrap}.fine{font-size:11px;line-height:1.6;color:#acb6a5}aside{border-left:1px solid #3d483e;padding:25px 20px}aside h3{margin-top:19px}aside form>label{display:block;margin-bottom:16px}.coordinate{display:flex;gap:15px;align-items:center;margin:12px 0}.coordinate>label:first-child{flex:1}.coordinate input[type=number]{width:145px}.coordinate .pin{display:flex;align-items:center;gap:5px}.pin input{width:auto;margin:0}aside button{width:100%;margin:7px 0;font-size:12px}.mapping{margin-top:22px;padding:18px 14px;background:#242f26;font-size:12px}.mapping b{font:18px monospace}.mapping small{font-size:11px;line-height:1.5}.constraints{border:1px solid #3d483e;border-top:0;padding:26px}.constraints .panelhead p{font:11px monospace;color:#a8b69c}.edgeform{display:flex;align-items:end;gap:12px;padding:14px 0;border-top:1px solid #344033}.edgeform>span:first-child{font:11px monospace;margin-bottom:12px;color:#a0ae97}.edgeform label{display:block}.edgeform select{display:block;margin-top:7px}.edgeform input{width:105px}.edgeform button{font-size:11px;margin-bottom:0}.residual{font:10px monospace;align-self:center;flex:1;color:#adb9a3}.constraints>button{margin-top:20px}.notebook{display:grid;grid-template-columns:1fr 2fr;gap:30px;margin:28px 0}.notebook textarea{height:80px;resize:vertical}.status{position:sticky;bottom:0;background:#d7e7a0;color:#233020;font-size:12px;padding:14px 20px;border-radius:5px;box-shadow:0 0 20px #141817b0}footer{padding:30px 0;color:#98a692;font-size:11px;line-height:1.7;display:flex;gap:30px;justify-content:space-between}footer details{max-width:620px}footer button{font-size:11px;margin-right:10px}summary{cursor:pointer}@media(max-width:1000px){main{padding:0 18px}header{flex-wrap:wrap}.actions{width:100%;margin-left:0;flex-wrap:wrap}.workspace{grid-template-columns:minmax(0,1fr) 240px}.edgeform{flex-wrap:wrap}.studybar{gap:12px;flex-wrap:wrap}.swatch div{height:110px}.graphpanel{padding:20px 15px}.axislabels span:nth-child(2){display:none}.segmented button{padding:7px}}@media(max-width:700px){.intro{display:block}.intro h2{font-size:44px}.intro p{font-size:12px}.workspace{display:block}aside{border-left:0;border-top:1px solid #3d483e}.panelhead{align-items:start;flex-direction:column}.palette{overflow-x:auto}.swatch{min-width:115px}.notebook{grid-template-columns:1fr}.readout{align-items:start;flex-direction:column;gap:7px}.constraints{padding:20px 14px}footer{display:block}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}.swatch b,.swatch small{overflow-wrap:anywhere}h3,.swatch b,.nodeLabel{white-space:pre-wrap;overflow-wrap:anywhere}
