*{box-sizing:border-box}html{color-scheme:light}body{margin:0;background:#f5f4ec;color:#193d38;font:17px/1.65 system-ui,-apple-system,Segoe UI,sans-serif}a{color:#165b51;text-underline-offset:.2em}a:hover{color:#073c34}button,input,textarea{font:inherit}button,a,input,textarea{touch-action:manipulation}:focus-visible{outline:3px solid #ca722b;outline-offset:3px}.skip{position:absolute;left:1rem;top:-100px;z-index:8;padding:.5rem;background:white}.skip:focus{top:.5rem}header,main,footer{max-width:1160px;margin:auto;padding:1.5rem}header{display:flex;justify-content:space-between;align-items:center;gap:1rem;border-bottom:1px solid #c8d3c8}.brand{font-size:1.45rem;font-weight:800;text-decoration:none;display:flex;gap:.6rem;align-items:center}nav,.footer-links{display:flex;gap:1.2rem;flex-wrap:wrap}nav a{text-decoration:none;font-size:.95rem}h1{font-size:clamp(2rem,5vw,3.6rem);line-height:1.1;letter-spacing:-.04em;margin:.5rem 0 1.2rem;max-width:18ch}h2{line-height:1.25;font-size:1.55rem;margin:1.6rem 0 .6rem}h3{line-height:1.3;font-size:1.15rem}.eyebrow{text-transform:uppercase;letter-spacing:.15em;font-size:.8rem;font-weight:800;color:#546e57}.lead{max-width:65ch;font-size:1.1rem}.hero{padding:1.8rem 0 1.2rem}.workbench{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;align-items:start;margin:1.5rem 0 2.5rem}.card{background:#fffef9;border:1px solid #b6c8bb;border-radius:16px;padding:1.5rem;min-width:0;box-shadow:0 8px 28px #163a2810}.card h2:first-child{margin-top:0}fieldset{border:0;margin:0 0 1.5rem;padding:0;min-width:0}legend{font-weight:800;padding:0;margin-bottom:.5rem}.pair{display:grid;grid-template-columns:1fr 1fr;gap:1rem}label{display:block;font-size:.9rem;font-weight:700}input{width:100%;min-width:0;border:1px solid #728f80;border-radius:7px;padding:.65rem;margin-top:.35rem;color:#18392e;background:white}input[aria-invalid=true]{border:2px solid #a52920}.hint,.fine{font-size:.86rem;color:#4a6055}.actions{display:flex;flex-wrap:wrap;gap:.65rem;margin:1.25rem 0}button{border:1px solid #164f43;border-radius:8px;padding:.65rem 1rem;background:#165a4b;color:#fff;cursor:pointer;font-weight:700}button.secondary{background:#fffef9;color:#214d41}button:disabled{opacity:.45;cursor:default}.error{color:#9b2118;font-weight:700}.pending{color:#715319}.result{background:#173f36;color:#fff8e9;border-color:#173f36}.result a{color:#e7f6dc}.result .hint,.result .fine{color:#d2e1d4}.result h2{margin-top:0}.measure{margin:1.1rem 0}.measure .value{display:block;font-size:clamp(1.9rem,4vw,2.9rem);line-height:1.2;font-weight:750;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.measure small{color:#d9e8d9}.result-details{display:grid;gap:.8rem;padding-top:1rem;border-top:1px solid #9fb9a6}.result-details p{margin:0;overflow-wrap:anywhere}.export-panel{grid-column:1/-1}.export-panel textarea{width:100%;min-height:14rem;padding:.8rem;resize:vertical;background:#fff;color:#18392e;border:1px solid #728f80;border-radius:8px}.explain-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}.note{padding:1rem 1.2rem;background:#e7edde;border-left:4px solid #5e7c59;border-radius:4px}.prose{max-width:790px}.prose h1{font-size:clamp(2rem,5vw,3rem);max-width:25ch}.prose p,.prose li{overflow-wrap:anywhere}.prose table{border-collapse:collapse;width:100%;font-size:.95rem}.prose th,.prose td{text-align:left;vertical-align:top;border-bottom:1px solid #c2d0c1;padding:.65rem}.table-scroll{overflow:auto}.formula{font-family:ui-monospace,monospace;background:#e7eddf;padding:.8rem;overflow:auto;border-radius:5px}.diagram{max-width:360px;width:100%;display:block;margin:1rem auto}.diagram text{font:15px system-ui;fill:#193d38}.diagram .muted{stroke:#8ea58d;fill:none}.diagram .arc{stroke:#c47729;stroke-width:5;fill:none}footer{border-top:1px solid #c2d0c1;margin-top:2.5rem;padding-bottom:2.5rem;font-size:.85rem;color:#4a6055}footer p{max-width:90ch}[hidden]{display:none!important}@media(max-width:650px){header{align-items:flex-start;flex-direction:column}header,main,footer{padding:1rem}nav{gap:.9rem}.hero{padding-top:1rem}.workbench,.explain-grid{grid-template-columns:1fr}.card{padding:1.1rem}.pair{gap:.6rem}.export-panel{grid-column:auto}.result .value{font-size:2rem}h1{max-width:16ch}}