/* Official Binghamton web palette: primary #005A43; accents #CEDC00, #6CC24A; gray #5A5C5B. Source: https://www.binghamton.edu/communications-and-marketing/branding/colors.html */
:root{color-scheme:light dark;--bg:#FFFFFF;--fg:#000000;--panel:#FFFFFF;--muted:#5A5C5B;--line:#DEDEDE;--accent:#005A43;--accent-soft:#E2F3DB;--plot:#005A43;--orange:#CEDC00;--green:#6CC24A;--fault:#F5F8CC;--grid:#DEDEDE;--danger:#a63626;--shadow:0 3px 20px #00000008;font-family:Inter,Segoe UI,Arial,sans-serif}
@media(prefers-color-scheme:dark){:root{--bg:#000000;--fg:#FFFFFF;--panel:#005A43;--muted:#DEDEDE;--line:#5A5C5B;--accent:#FFFFFF;--accent-soft:#005A43;--plot:#CEDC00;--orange:#CEDC00;--green:#6CC24A;--fault:#5A5C5B;--grid:#5A5C5B;--danger:#ffac99;--shadow:none}}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);line-height:1.6}main{max-width:1120px;margin:auto;padding:40px 32px 28px}header{margin-bottom:22px}.eyebrow{text-transform:uppercase;letter-spacing:.13em;color:var(--accent);font-size:.76rem;font-weight:700}.title-row{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}h1{font-size:clamp(1.8rem,4vw,2.75rem);line-height:1.15;font-weight:650;margin:14px 0}h2{font-size:1.12rem;line-height:1.4;margin:0}p{margin:10px 0}.intro{font-size:1.04rem;max-width:810px;color:var(--muted)}.tag{font-size:.75rem;padding:4px 12px;border:1px solid var(--line);border-radius:20px;white-space:nowrap}.circuit{display:flex;gap:12px;align-items:center;padding:20px 0 28px;max-width:760px;font-size:.9rem}.machine{display:grid;place-items:center;flex-shrink:0;width:42px;height:42px;border:2px solid var(--accent);border-radius:50%;font-weight:700;color:var(--accent)}.wire{height:1px;background:var(--muted);flex:1;min-width:15px}.bus{height:42px;width:4px;background:var(--muted);flex-shrink:0}.fault{color:var(--muted);white-space:nowrap}small{font-size:.78rem;color:var(--muted)}section{margin-bottom:28px}.section-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}.presets{display:flex;gap:6px;flex-wrap:wrap}button{font:inherit;font-size:.82rem;padding:7px 12px;background:var(--panel);color:var(--fg);border:1px solid var(--line);border-radius:6px;cursor:pointer}button:hover{background:var(--accent-soft);border-color:var(--accent)}button[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.controls{display:grid;grid-template-columns:1fr 1fr;gap:22px 34px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:22px;box-shadow:var(--shadow)}label{display:grid;gap:7px;min-width:0}label>span{display:flex;justify-content:space-between;gap:16px;font-size:.86rem;font-weight:600}output{font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--accent)}input[type=range]{accent-color:var(--accent);width:100%;margin:3px 0;min-height:24px;cursor:ew-resize}.result{display:flex;justify-content:space-between;gap:28px;align-items:center;padding:20px 24px;background:var(--accent-soft);border-radius:10px;border-left:4px solid var(--accent)}.result.loss{border-left-color:var(--danger)}.result-label{text-transform:uppercase;letter-spacing:.1em;font-size:.68rem;color:var(--muted)}.result h2{margin-top:4px;font-size:1.23rem}.result p{font-size:.87rem;margin:6px 0 0;max-width:680px}.limit{display:grid;min-width:165px;flex-shrink:0;font-size:.77rem;color:var(--muted)}.limit strong{font-size:1.8rem;line-height:1.3;font-weight:650;color:var(--fg);font-variant-numeric:tabular-nums}.subtle{font-size:.78rem;color:var(--muted)}.chart{width:100%;overflow:hidden}.chart svg{display:block;width:100%;font-family:inherit;color:var(--muted)}.chart text{font-size:12px;fill:currentColor}.chart .grid{stroke:var(--grid);stroke-width:1}.chart .axis{stroke:var(--muted);stroke-width:1}.chart .trace{stroke:var(--plot);stroke-width:2.7;fill:none}.chart .boundary{stroke:var(--muted);stroke-width:1.2;stroke-dasharray:6 5;fill:none}.chart .clear-line{stroke:var(--muted);stroke-width:1.4;stroke-dasharray:3 4}.chart .prefault{stroke:var(--muted);stroke-width:1.5;stroke-dasharray:3 4;fill:none}.legend{display:flex;flex-wrap:wrap;gap:8px 23px;color:var(--muted);font-size:.77rem;align-items:center;margin:8px 0}.legend span{display:inline-flex;align-items:center;gap:8px}.key{width:24px;height:0;border-top:3px solid var(--plot);display:inline-block}.key.boundary{border-top:1.5px dashed var(--muted)}.shade{display:inline-block;width:18px;height:11px;background:var(--fault);opacity:.65}.shade.accel{background:var(--orange);opacity:.35}.shade.decel{background:var(--green);opacity:.3}.chart-note{font-size:.82rem;color:var(--muted)}.learning{border-top:1px solid var(--line);padding-top:22px}.learning ol{padding-left:22px;font-size:.9rem}.learning li{padding:3px 0}details{border-top:1px solid var(--line);padding:18px 0;font-size:.88rem}summary{cursor:pointer;font-weight:600}.details-body{max-width:900px;color:var(--muted)}.formula{font-family:Cambria,Georgia,serif;font-size:1.05rem;padding:10px 0}a{color:var(--accent);text-underline-offset:3px}footer{border-top:1px solid var(--line);padding-top:20px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:.76rem;color:var(--muted)}
@media(max-width:640px){main{padding:24px 16px}.controls{grid-template-columns:1fr;padding:16px;gap:18px}.result{align-items:flex-start;flex-direction:column;gap:12px;padding:18px}.limit{grid-template-columns:auto auto;align-items:baseline;gap:0 16px}.limit strong{font-size:1.5rem}.limit span:last-child{grid-column:1/-1}.circuit{font-size:.77rem;gap:7px}.machine{width:32px;height:32px}.circuit .fault{font-size:.72rem}.bus{height:32px}.chart text{font-size:11px}.subtle{font-size:.72rem}.presets button{min-height:42px}.title-row{gap:0}}
