:root{--paper:#f8f9f6;--surface:#fff;--ink:#172e30;--muted:#5b6a69;--grid:#e2e7e1;--teal:#087e7c;--orange:#c95b28;--purple:#8652b4;--line1:#527888;--line2:#81886b;--line3:#a68275;--blue:#3562ad;--soft:#eef3ed;--border:#d6ded5;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper);font-size:16px;line-height:1.55;font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:28px}body{margin:0}button,input,select{font:inherit}a{color:inherit;text-underline-offset:4px}button,a,input,select{touch-action:manipulation}button,select,input[type=range]{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #9b7dbb;outline-offset:4px}button{border:1px solid var(--border);border-radius:6px;padding:9px 13px;background:var(--surface);color:var(--ink);font-size:.84rem;font-weight:600;line-height:1.4}button:hover{background:var(--soft)}button:disabled{opacity:.45;cursor:not-allowed}.primary{background:var(--teal);color:white;border-color:var(--teal)}.primary:hover{background:#066a68}.quiet{background:transparent}.button-row{display:flex;gap:8px;flex-wrap:wrap}.topbar{max-width:1320px;margin:auto;padding:27px 40px;display:flex;align-items:center;border-bottom:1px solid var(--border);gap:30px;font-size:.77rem}.wordmark{text-decoration:none;font-weight:800;letter-spacing:.1em}.topbar nav{display:flex;gap:28px;margin-left:auto}.topbar nav a,.source-link{text-decoration:none;color:var(--muted)}.source-link{margin-left:12px}main{max-width:1240px;margin:auto;padding:0 34px}.intro{padding:66px 0 54px;max-width:800px}.eyebrow{font-size:.68rem;letter-spacing:.17em;font-weight:700;color:var(--teal);margin:0 0 15px}h1{font-family:Georgia,"Times New Roman",serif;font-weight:400;font-size:clamp(3.5rem,6.3vw,5.5rem);line-height:1.02;letter-spacing:-.045em;margin:0 0 26px}h1 span{color:var(--teal)}.lede{font-size:1.17rem;color:#435d5c;max-width:680px;line-height:1.65}.intro-note{font-size:.86rem;color:var(--muted);max-width:690px;margin-top:25px}.section{padding:46px 0 52px;border-top:1px solid var(--border)}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:26px;margin-bottom:27px}.section-heading .eyebrow{margin-bottom:8px}h2{font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.9rem,3vw,2.5rem);font-weight:400;letter-spacing:-.025em;line-height:1.15;margin:0}h3{font-size:1.08rem;line-height:1.3;margin:0 0 12px;font-weight:650}h4{font-size:.85rem;margin:0 0 5px}p{margin:0 0 15px}select{display:block;max-width:100%;min-height:38px;background:var(--surface);border:1px solid var(--border);border-radius:5px;color:var(--ink);padding:7px 30px 7px 10px;font-size:.85rem;margin-top:7px}.preset-label,.residual-heading label{font-size:.73rem;color:var(--muted);white-space:nowrap}.explorer-grid{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(280px,1fr);gap:30px}.plot-column{min-width:0}.plot-topline{display:flex;justify-content:space-between;font-size:.72rem;letter-spacing:.015em;margin-bottom:10px;color:var(--muted)}.plot-topline span:first-child{font-weight:700;color:var(--ink)}.plot-wrap{background:var(--surface);border:1px solid var(--border);border-radius:8px;overflow:hidden;position:relative}.plot-wrap.drawing{cursor:crosshair;box-shadow:0 0 0 2px var(--orange)}#main-plot{width:100%;height:470px;display:block;touch-action:none}.legend{display:flex;gap:19px;flex-wrap:wrap;color:var(--muted);font-size:.72rem;align-items:center;margin:14px 0 8px}.legend span{display:flex;align-items:center;gap:6px}.dot{width:10px;height:10px;border-radius:50%;background:var(--ink);display:inline-block}.dot.exact{background:var(--teal)}.dot.iterate{background:var(--blue)}.diamond{height:9px;width:9px;border:2px solid var(--purple);transform:rotate(45deg);display:inline-block}.line-swatch{width:20px;height:0;border-top:2px solid var(--orange);display:inline-block}.line-swatch.exact{border-color:var(--teal)}.line-swatch.approx{border-color:var(--purple);border-top-style:dashed}.plot-hint{font-size:.73rem;color:var(--muted);margin:12px 0 0}.controls{background:var(--soft);border:1px solid var(--border);padding:22px;border-radius:8px;align-self:start}.control-heading{display:flex;justify-content:space-between;gap:8px;align-items:center}.tag{font-size:.64rem;font-weight:700;letter-spacing:.13em;color:var(--orange)}.control-heading button{font-size:.75rem;padding:6px 10px}.equation-panel{font-size:1.05rem;margin:17px 0 5px;min-height:34px;overflow:auto}.small{font-size:.76rem;line-height:1.6;color:var(--muted)}.range-label{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:.81rem;font-weight:600;margin-top:18px}.range-label output{font-weight:500;font-variant-numeric:tabular-nums;color:var(--teal)}input[type=range]{display:block;width:100%;accent-color:var(--teal);margin:9px 0;min-height:24px}.weight-control{border-top:1px solid var(--border);margin-top:22px}.weight-control input{accent-color:var(--orange)}.range-ends{display:flex;justify-content:space-between;font-size:.6rem;color:var(--muted);margin-top:-4px;margin-bottom:12px}.readout{border-top:1px solid var(--border);padding:16px 0;display:grid;grid-template-columns:1fr auto;gap:8px;font-size:.76rem}.readout span{color:var(--muted)}.readout strong{font-variant-numeric:tabular-nums;font-weight:600}.controls .button-row{margin-top:2px}.controls .button-row button{font-size:.73rem;padding:9px 10px}#action-status:empty{display:none}#action-status{margin:12px 0 0}.try-this{padding:18px 0;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:19px 0 34px}.try-this>strong{font-size:.8rem;margin-right:3px}.try-this button{border-radius:20px;font-size:.74rem;font-weight:500;padding:7px 12px}.try-this p{flex-basis:100%;font-size:.8rem;color:var(--muted);margin:0}.residual-heading{display:flex;gap:25px;justify-content:space-between;align-items:center;margin-bottom:18px}.residual-heading p{max-width:670px;font-size:.88rem;color:var(--muted);margin:0}.residual-heading h3{margin-bottom:8px}.residual-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:28px;align-items:start}.residual-table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.77rem;font-variant-numeric:tabular-nums;text-align:right}caption{caption-side:bottom;text-align:left;font-size:.72rem;color:var(--muted);padding-top:13px}th{text-align:right;color:var(--muted);font-size:.65rem;font-weight:600;padding:12px 8px;border-bottom:1px solid var(--border)}td{padding:13px 8px;border-bottom:1px solid var(--grid);white-space:nowrap}td:first-child,th:first-child{text-align:left}td:first-child{font-weight:650}tr.selected{background:var(--soft)}tr.new-row td:first-child{color:var(--orange)}td small{color:var(--muted);font-weight:400;margin-left:6px}td .row-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px}#residual-curve{width:100%;height:230px;display:block}.curve-panel{min-width:0}.curve-panel .legend{margin-top:0}.curve-panel .small{margin:10px 0 0}.section-intro{max-width:780px;font-size:1rem;color:var(--muted);margin-bottom:30px}.live-label{font-size:.75rem;color:var(--teal)}.recipe-steps{max-width:880px}.recipe-step{display:grid;grid-template-columns:36px minmax(0,1fr);gap:23px;padding:30px 0;border-top:1px solid var(--grid)}.recipe-step:first-child{border-top:0;padding-top:5px}.step-number{height:30px;width:30px;border:1px solid var(--border);border-radius:50%;display:grid;place-items:center;font-size:.8rem;color:var(--teal)}.recipe-step h3{font-size:1.18rem}.recipe-step p{font-size:.9rem;color:#405958;line-height:1.75}.math.display,.live-math{overflow-x:auto;overflow-y:hidden;padding:2px 0;max-width:100%}.katex-display{margin:13px 0;text-align:left}.katex-display>.katex{white-space:nowrap;text-align:left}.live-math{background:var(--soft);border-left:2px solid var(--teal);padding:8px 18px;margin:17px 0;font-size:.95rem;border-radius:0 5px 5px 0}.live-math .katex-display{margin:8px 0}details{margin-top:18px;font-size:.86rem;color:var(--muted)}summary{cursor:pointer;color:var(--teal);font-weight:600;margin-bottom:12px}details p{margin-top:12px}.solver-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:42px}.solver-controls{border-top:1px solid var(--border);padding-top:18px}.solver-controls label{font-size:.78rem}.solver-controls select{width:100%;max-width:370px}.solver-controls .range-label{margin-top:12px}.solver-controls .button-row{margin:12px 0 20px}#solver-plot{width:100%;height:340px;background:var(--surface);border:1px solid var(--border);border-radius:8px;display:block}.solver-status{font-size:.8rem;color:var(--muted);margin:13px 0;min-height:45px}.solver-explanation p{font-size:.88rem;color:#405958;line-height:1.75}.solver-explanation h3:not(:first-child){margin-top:30px}.solver-explanation .math.display{font-size:.96rem}.callout{padding:14px 16px;background:var(--soft);border-left:2px solid var(--orange);border-radius:0 5px 5px 0}.closing{border-top:1px solid var(--border);padding:60px 0;max-width:900px}.closing h2{font-size:clamp(2rem,4vw,3rem);line-height:1.2;margin-bottom:22px}.closing>p:not(.eyebrow){max-width:650px;color:var(--muted)}.references{display:flex;flex-wrap:wrap;gap:12px 24px;font-size:.74rem;margin-top:40px}.references span{font-weight:700}footer{max-width:1240px;margin:auto;padding:25px 34px 35px;border-top:1px solid var(--border);font-size:.7rem;color:var(--muted)}svg text{font-family:Inter,ui-sans-serif,sans-serif;font-size:11px;fill:var(--muted)}svg .axis-title{font-size:12px;fill:var(--ink)}svg .point-label{font-size:11px;font-weight:650;paint-order:stroke;stroke:var(--surface);stroke-width:4px;stroke-linejoin:round;fill:var(--ink)}svg .line-label{font-size:11px;font-weight:600;paint-order:stroke;stroke:var(--surface);stroke-width:4px}svg .plot-frame{fill:none;stroke:var(--border)}
@media(min-width:1350px){#main-plot{height:500px}}
@media(max-width:900px){.explorer-grid{grid-template-columns:minmax(0,1.45fr) minmax(250px,1fr);gap:19px}.controls{padding:18px}.range-ends{font-size:.57rem}.residual-grid{grid-template-columns:1fr}.curve-panel{max-width:650px;width:100%}.solver-grid{gap:25px}.solver-explanation .math.display{font-size:.83rem}.topbar{padding:22px 30px}main{padding:0 28px}.intro{padding-top:48px}.readout{font-size:.7rem}}
@media(max-width:700px){.topbar{padding:20px;gap:20px}.source-link{display:none}.topbar nav{gap:20px}.wordmark{font-size:.65rem}main{padding:0 20px}.intro{padding:42px 0 35px}.lede{font-size:1.04rem}.intro-note{font-size:.8rem}.section{padding:35px 0}.section-heading{align-items:flex-start;flex-direction:column;gap:18px}.section-heading h2{font-size:1.85rem}.preset-label{display:flex;gap:14px;align-items:center}.preset-label select{margin:0}.explorer-grid{grid-template-columns:1fr}.controls{padding:20px}.range-ends{font-size:.66rem}.controls .button-row button{font-size:.82rem}.readout{font-size:.8rem}#main-plot{height:390px}.legend{gap:13px;font-size:.68rem}.residual-heading{flex-direction:column;align-items:flex-start;gap:16px}.residual-heading label{display:flex;align-items:center;gap:12px}.residual-heading select{margin:0}.residual-grid{gap:24px}.try-this{gap:9px}.try-this>strong{flex-basis:100%}.try-this button{font-size:.7rem}.recipe-step{gap:12px;grid-template-columns:28px minmax(0,1fr)}.step-number{height:26px;width:26px}.recipe-step p{font-size:.86rem}.recipe-step .math.display,.live-math{font-size:.81rem}.live-math{padding:8px 10px}.solver-grid{grid-template-columns:1fr}.solver-explanation .math.display{font-size:.93rem}.solver-explanation{margin-top:0}.closing{padding:40px 0}.references{flex-direction:column;gap:15px}.range-label{font-size:.87rem}footer{padding:23px 20px}.small{font-size:.8rem}button{min-height:38px}.controls input[type=range]{min-height:30px}}
@media(max-width:390px){main{padding:0 15px}.topbar{padding:19px 15px}.topbar nav{gap:13px}.wordmark{font-size:.61rem}h1{font-size:3.5rem}#main-plot{height:350px}th,td{padding-left:5px;padding-right:5px}table{font-size:.7rem}th{font-size:.61rem}.preset-label{font-size:.7rem;gap:7px}.preset-label select{font-size:.76rem}.recipe-step .math.display,.live-math{font-size:.71rem}.legend{font-size:.66rem;gap:11px}.residual-heading p{font-size:.83rem}}
.solver-grid>div{min-width:0}
@media(max-width:700px){.solver-grid,.explorer-grid,.residual-grid{grid-template-columns:minmax(0,1fr)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
