:root{--ground:#f4f6f8;--surface:#fff;--ink:#14181f;--muted:#555d6a;--rule:#dce2e9;--track:#e8edf2;--accent:#3461f2;--accent-ink:#fff;--accent-soft:#eef2fe;--warn:#8a4b00;--warn-soft:#fdf2e1;--shadow:0 1px 2px #14171f0d, 0 4px 16px #14171f0a;--radius:12px;--text:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--num:var(--text);color-scheme:light}@media (prefers-color-scheme:dark){:root{--ground:#0f1217;--surface:#171b22;--ink:#e8ebf1;--muted:#9ba3b1;--rule:#2a303a;--track:#222833;--accent:#8aa5ff;--accent-ink:#0f1217;--accent-soft:#1a2240;--warn:#f3c27a;--warn-soft:#2d2415;--shadow:none;color-scheme:dark}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--ground);color:var(--ink);font-family:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-size:17px;line-height:1.6}.shell{flex-direction:column;min-height:100vh;display:flex}.shell main{flex:1;min-width:0}.page,.calc,.calc-grid,.calc-in,.calc-out,.field,.prose{grid-template-columns:minmax(0,1fr)}h1,h2,p,dl,dd,ol,ul{margin:0}h1,h2{text-wrap:balance}a{color:var(--accent);text-underline-offset:3px;text-decoration-thickness:1px}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.wrap{width:100%;max-width:1080px;margin-inline:auto;padding-inline:16px}.top{background:var(--surface);border-bottom:1px solid var(--rule)}.top-row{justify-content:space-between;align-items:center;gap:16px;min-height:56px;display:flex}.brand{color:var(--ink);letter-spacing:-.01em;align-items:center;gap:8px;font-size:1.05rem;font-weight:700;text-decoration:none;display:inline-flex}.logo{flex:none;display:block}.logo rect{fill:var(--accent)}.logo g{fill:none;stroke:var(--accent-ink);stroke-width:3px;stroke-linecap:round}.top-link{font-size:.94rem;font-weight:500;text-decoration:none}.top-link:hover{text-decoration:underline}.foot{border-top:1px solid var(--rule);background:var(--surface);margin-top:56px}.foot-row{color:var(--muted);gap:8px;padding-block:24px 32px;font-size:.9rem;line-height:1.5;display:grid}.page{gap:20px;padding-block:16px 8px;display:grid}.crumbs ol{color:var(--muted);flex-wrap:wrap;gap:4px;padding:0;font-size:.88rem;list-style:none;display:flex}.crumbs li+li:before{content:"›";margin-right:4px}.crumbs a{color:var(--muted);text-decoration:none}.crumbs a:hover{color:var(--accent);text-decoration:underline}.head{gap:10px;display:grid}.head h1{letter-spacing:-.025em;font-size:clamp(1.75rem,1.2rem + 2.6vw,2.6rem);font-weight:700;line-height:1.12}.lead{color:var(--muted);max-width:62ch;font-size:1.06rem}.about{gap:8px;max-width:62ch;padding-top:16px;display:grid}.about p:last-child,.intro p{line-height:1.55}.intro p+p{margin-top:6px}.faq{gap:6px;max-width:62ch;padding-top:16px;display:grid}.faq h3{margin-top:10px;font-size:1.02rem;font-weight:600}.faq p{line-height:1.55}.updated{color:var(--muted);padding-top:12px;font-size:.85rem}.label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:.75rem;font-weight:500;display:block}.calc{gap:12px;display:grid}.card{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px}.card>.calc-grid{margin-top:14px}.card-h{letter-spacing:-.01em;font-size:1.12rem;font-weight:600;line-height:1.3}.card summary{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;min-height:32px;list-style:none;display:flex}.card summary::-webkit-details-marker{display:none}.card summary:after{content:"";border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);flex:none;width:9px;height:9px;margin-right:4px;transform:translateY(-3px)rotate(45deg)}.card[open]>summary:after{transform:translateY(2px)rotate(-135deg)}.card summary:hover .card-h{color:var(--accent)}.card:not([open]){box-shadow:none}.calc-grid{gap:18px;display:grid}.calc-in{align-content:start;gap:14px;display:grid}.field{gap:6px;display:grid}.field label{font-size:.94rem;font-weight:500}.inrow{gap:8px;display:flex}.inrow input{width:0;min-width:0;height:52px;font:400 1.35rem var(--num);color:var(--ink);font-variant-numeric:tabular-nums;background:var(--ground);border:1px solid var(--rule);border-radius:10px;flex:1 1 0;padding:0 14px}.inrow input:focus,.sentence input:focus{outline:2px solid var(--accent);outline-offset:-1px;background:var(--surface);border-color:#0000}.inrow input[aria-invalid=true],.sentence input[aria-invalid=true]{border-color:var(--warn)}.sentence{overflow-wrap:anywhere;font-size:1.2rem;line-height:1.4}.sentence .slot{white-space:nowrap;margin-block:4px;display:inline-block}.sentence input{field-sizing:content;min-width:2.6em;max-width:100%;height:48px;font:400 1.35rem var(--num);color:var(--ink);font-variant-numeric:tabular-nums;text-align:center;background:var(--ground);border:1px solid var(--rule);vertical-align:baseline;border-radius:10px;margin-inline:2px;padding:0 10px}@supports not (field-sizing:content){.sentence input{width:4.2em}}.sentence .frin{vertical-align:middle;align-items:center;gap:4px;margin-inline:2px;display:inline-flex}.frin-f{gap:4px;display:inline-grid}.frin-bar{background:var(--ink);border-radius:1px;height:2px}.sentence .frin input{border-radius:8px;min-width:2.4em;height:42px;margin:0;padding:0 6px;font-size:1.25rem}.sentence .frin .frin-w{height:48px}@supports not (field-sizing:content){.sentence .frin input{width:3.2em}}.mx{white-space:nowrap}.fr{vertical-align:middle;text-align:center;flex-direction:column;margin-inline:.12em;font-size:.8em;line-height:1.15;display:inline-flex}.fr-n{border-bottom:max(1px,.07em) solid;padding:0 .15em .06em}.fr-d{padding:.06em .15em 0}.sr{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.inrow select{min-width:72px;height:52px;font:500 1rem var(--text);color:var(--ink);background:var(--surface);border:1px solid var(--rule);border-radius:10px;flex:none;padding:0 10px}.actions{flex-wrap:wrap;gap:8px;display:flex}.btn{cursor:pointer;min-height:44px;font:500 .94rem var(--text);color:var(--accent);background:var(--accent-soft);border:1px solid #0000;border-radius:10px;padding:0 16px}.btn:hover{border-color:var(--accent)}.btn-quiet{color:var(--muted);background:0 0}.btn-quiet:hover{border-color:var(--rule);color:var(--ink)}.calc-out{border-top:1px solid var(--rule);align-content:start;gap:16px;min-height:9rem;padding-top:16px;display:grid}.answer{gap:4px;display:grid}.answer output{font:600 clamp(1.9rem, 1.5rem + 2vw, 2.5rem)/1.12 var(--num);color:var(--accent);letter-spacing:-.02em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.answer output.draw-list{letter-spacing:0;overflow-wrap:normal;font-size:1.25rem;line-height:1.5}.answer .exact{font:400 .9rem var(--num);font-variant-numeric:tabular-nums;color:var(--muted);overflow-wrap:anywhere}.more{display:grid}.more div{border-top:1px solid var(--rule);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:2px 12px;padding-block:6px;display:flex}.more dt{color:var(--muted);font-size:.9rem}.more dd{font:500 1rem var(--num);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;min-width:0}.working{gap:8px;display:grid}.working ol{border-left:2px solid var(--rule);font:400 .95rem/1.5 var(--num);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;gap:6px;padding:0 0 0 12px;list-style:none;display:grid}.working li:last-child{font-weight:600}.formula{border-top:1px dashed var(--rule);font:400 1rem/1.5 var(--num);font-variant-numeric:tabular-nums;color:var(--muted);overflow-wrap:anywhere;margin-top:14px;padding-top:12px}.fig{justify-items:center;margin:0;display:grid}.fig svg{width:100%;max-width:280px;height:auto;color:var(--muted);fill:none;stroke:currentColor;stroke-width:1.4px;stroke-linejoin:round;stroke-linecap:round;display:block;overflow:visible}.fig .given{color:var(--ink);stroke-width:2px}.fig .find{color:var(--accent);stroke-width:2.4px}.fig .dash{stroke-dasharray:4 4}.fig .area{fill:currentColor;fill-opacity:.12;stroke:none}.fig .dot{fill:currentColor;stroke:none}.fig .hole{fill:var(--surface)}.fig text{fill:currentColor;stroke:var(--surface);stroke-width:4px;paint-order:stroke;font:italic 500 15px var(--text);text-anchor:middle;dominant-baseline:central}.fig .find text{font-weight:700}.reason{background:var(--warn-soft);color:var(--warn);border-radius:10px;align-self:start;padding:12px 14px;font-size:.98rem}.prose{gap:32px;max-width:68ch;display:grid}.prose h2,.links h2{letter-spacing:-.015em;font-size:1.3rem;font-weight:700;line-height:1.25}.links{gap:32px;padding-top:16px;display:grid}.links nav{align-content:start;gap:10px;display:grid}.links h2 a{color:inherit;text-decoration-color:var(--rule);text-underline-offset:.15em}.links h2 a:hover{color:var(--accent)}.rows{padding:0;list-style:none;display:grid}.rows li{border-top:1px solid var(--rule)}.rows li:last-child{border-bottom:1px solid var(--rule)}.rows a{padding-block:11px;font-weight:500;line-height:1.35;text-decoration:none;display:block}.rows a:hover{text-decoration:underline}.rows-lg a{padding-block:14px;font-size:1.05rem}.link-name,.link-dek{display:block}.link-dek{color:var(--muted);margin-top:2px;font-size:.88rem;font-weight:400}.rows-lg .link-dek{font-size:.92rem}.rows a:hover:has(.link-name){text-decoration:none}.rows a:hover .link-name{text-decoration:underline}.rows-cols{border-top:1px solid var(--rule)}.rows-cols li{border-top:0;border-bottom:1px solid var(--rule)}.hub-grid{gap:28px;display:grid}.hub-card{align-content:start;gap:10px;display:grid}.hub-card h2{letter-spacing:-.01em;font-size:1.2rem}.hub-card h2 a{color:var(--ink);text-decoration:none}.hub-card h2 a:hover{color:var(--accent)}.more{font-size:.92rem;font-weight:500}@media (width>=600px){.wrap{padding-inline:24px}.page{gap:24px;padding-block:24px 8px}.card{padding:18px 20px}.hub-grid,.rows-cols{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:32px}}@media (width>=860px){.card{padding:20px 24px}.calc-grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:28px}.calc-out{border-top:0;border-left:1px solid var(--rule);padding-top:0;padding-left:28px}.hub-grid,.rows-cols{grid-template-columns:repeat(3,minmax(0,1fr))}}@keyframes roll-in{0%{opacity:0;transform:translateY(-.4em)scale(.92)}to{opacity:1;transform:none}}@keyframes blink-in{0%{opacity:0}to{opacity:1}}.rolled output,.rolled dd{animation:.3s ease-out blink-in}@media (prefers-reduced-motion:no-preference){.rolled output,.rolled dd{animation:.32s cubic-bezier(.2,.9,.3,1.2) roll-in}.btn,.inrow input{transition:background-color .15s,color .15s,border-color .15s,box-shadow .15s}}
