:root{--ink:#192b30;--muted:#5b696d;--line:#dce3df;--paper:#f5f7f5;--lime:#c7ef80;--dark:#14292e}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:25px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 Arial,Helvetica,sans-serif}a{color:inherit;text-underline-offset:4px}button,input,select{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.5;cursor:default}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #458719;outline-offset:4px}[hidden]{display:none!important}.skip{position:absolute;left:20px;top:-100px;background:white;padding:10px;z-index:10}.skip:focus{top:10px}header,main,footer{max-width:1180px;margin:auto}header{display:flex;align-items:center;justify-content:space-between;padding:24px 32px;border-bottom:1px solid var(--line);gap:24px}.brand{display:inline-flex;align-items:center;text-decoration:none;font-weight:800;font-size:21px;letter-spacing:-.7px;white-space:nowrap}.brand-accent{color:#537b25}.mark{margin-right:10px;background:var(--dark);color:var(--lime);display:grid;place-items:center;width:30px;height:30px;border-radius:7px;font-size:25px}nav{display:flex;gap:25px;flex-wrap:wrap}nav a{font-size:14px;text-decoration:none}nav a:hover{text-decoration:underline}main{padding:0 32px}.heading{padding:42px 0 27px}.eyebrow,.section-label{font-size:12px;font-weight:700;letter-spacing:1.8px}.eyebrow{color:#567032;margin:0 0 12px}h1{font-size:clamp(30px,4vw,44px);line-height:1.15;letter-spacing:-1.7px;margin:0 0 16px}h1 span{font-weight:400;color:#657176}.heading>p:last-child{max-width:670px;color:var(--muted);margin:0}.workspace{display:grid;grid-template-columns:340px 1fr;border-radius:16px;overflow:hidden;border:1px solid #bacac2;box-shadow:0 10px 28px #14292e08}.setup{padding:28px;background:white}.setup>.section-label{display:flex;align-items:center;gap:12px}.section-label>span{color:#5a8032}.setup>p{font-size:14px;color:var(--muted);line-height:1.6}.fields{display:grid;grid-template-columns:1fr 100px;gap:12px}label{font-size:14px;font-weight:600;display:block;margin:15px 0}input,select{width:100%;display:block;border:1px solid #bac7c1;background:#fff;padding:11px 12px;border-radius:7px;color:var(--ink);margin-top:7px;min-height:47px}input::placeholder{color:#7d8688}.muted{color:var(--muted);font-weight:400}.primary{border:0;border-radius:7px;background:var(--lime);color:#14292e;padding:14px 18px;font-weight:700;display:inline-flex;align-items:center;justify-content:space-between;text-decoration:none}.setup .primary{width:100%;margin-top:9px}.primary:hover{background:#b8e56c}.small,small{font-size:13px;line-height:1.6}.setup #status{margin-bottom:0;font-size:13px;color:#304f3d}.secondary{background:white;border:1px solid #456d35;border-radius:7px;padding:10px;width:100%;margin-top:12px}.measurement{background:var(--dark);color:#f5f8f6;padding:27px 32px;display:flex;flex-direction:column;justify-content:space-between;min-width:0;position:relative}.measurement-top{display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap}.measurement .section-label{color:#c2d0cc;font-size:11px}.mode{font:12px/1.5 monospace;border:1px solid #4b625f;border-radius:30px;padding:4px 10px;color:#c7d3ce}.result{text-align:center;padding:22px 0 16px;display:flex;flex-direction:column;align-items:center;gap:3px}.result>.small{font-size:12px;letter-spacing:2px;color:#b7c8c1}.result>strong{font-size:clamp(60px,8vw,96px);font-family:monospace;line-height:1.3;color:var(--lime);letter-spacing:-5px}.result>span:last-child{font-size:13px;color:#c1cec8}.ruler{position:relative;text-align:center;padding:18px 0 10px}.ruler>div{height:24px;background:repeating-linear-gradient(to right,#789184 0px,#789184 1px,transparent 1px,transparent 10px);border-bottom:1px solid #789184;mask-image:linear-gradient(to right,transparent,black 15%,black 85%,transparent)}.ruler>span{display:inline-block;font:10px/2 monospace;letter-spacing:2px;color:#b5c9bd;margin-top:7px}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding-top:22px;border-top:1px solid #3a504e}.metrics>div{display:flex;flex-direction:column;gap:7px}.metrics span{font-size:12px;color:#bacbc2}.metrics strong{font:25px/1.3 monospace}.measurement-note{font-size:12px;color:#b6cabe;margin:20px 0 0}.active .mode{background:var(--lime);color:var(--dark)}.active .ruler>div{background-color:#c7ef801a}.history{margin:22px 0 48px;border-bottom:1px solid var(--line);padding-bottom:20px}.history-heading{display:flex;justify-content:space-between;align-items:center;gap:18px}.history h2{font-size:16px;letter-spacing:0}.text-button{color:#476c2c;background:none;border:0;font-size:14px;padding:8px}.history p{font-size:14px;margin-top:4px}h2{font-size:30px;line-height:1.25;letter-spacing:-.8px;margin:12px 0 24px}h3{font-size:20px;line-height:1.4;letter-spacing:-.3px;margin:24px 0 10px}p{margin:12px 0 20px}.guide{padding-bottom:44px;border-bottom:1px solid var(--line)}.guide>.section-label{color:#61714e}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}.steps article{border-left:2px solid #bfd991;padding-left:20px}.steps article>span{font-size:12px;letter-spacing:1px;color:#607445}.steps h3{margin-top:14px}.steps p{font-size:15px;color:var(--muted);margin-bottom:0}.article-layout{display:grid;grid-template-columns:minmax(0,720px) 260px;gap:64px;padding:50px 0}.article-layout p{color:#46585d}.article-layout h3{margin-top:30px}.formula{background:#e7edde;border-left:3px solid #759a41;padding:18px;font-family:monospace;font-size:15px;overflow-wrap:anywhere}aside{align-self:start;border-top:3px solid #273f38}aside h3{font-size:18px}aside ul{padding-left:20px;font-size:14px;color:var(--muted)}aside li{margin:12px 0}.aside-note{padding:18px;background:#e8eee3;margin:26px 0}.aside-note strong{font-size:15px}.aside-note p{font-size:14px;margin-bottom:0}aside>a{font-size:14px}.faq{border-top:1px solid var(--line);padding:42px 0}details{border-bottom:1px solid var(--line)}summary{cursor:pointer;padding:19px 32px 19px 0;font-weight:600;list-style:none;position:relative}summary::-webkit-details-marker{display:none}summary:after{content:'+';position:absolute;right:4px;font-size:23px;font-weight:400;top:12px}details[open] summary:after{content:'−'}details p{max-width:850px;margin:0 0 23px;color:var(--muted)}.site-info{border-top:1px solid var(--line);padding:30px 0 42px}.site-info h2{font-size:23px;margin-bottom:10px}.site-info p{color:var(--muted);font-size:15px}.site-info nav a{text-decoration:underline}footer{border-top:1px solid var(--line);padding:32px;display:flex;justify-content:space-between;gap:35px}footer p{font-size:14px;color:var(--muted);margin:8px 0}footer small{color:var(--muted);font-size:12px}footer nav{max-width:290px;align-content:start;gap:12px 25px}footer nav a{font-size:13px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;margin-top:12px;font-size:14px;text-align:left}th,td{padding:12px 10px;border-bottom:1px solid var(--line)}th{font-size:12px;color:var(--muted);font-weight:600}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.legal{max-width:820px;padding-top:45px;padding-bottom:65px;min-height:65vh}.legal>.eyebrow{margin-top:30px}.legal h1{margin:18px 0 26px}.legal h2{font-size:24px;margin-top:32px;margin-bottom:10px}.legal>p,.legal li{color:#45595e}.notice{background:#e8eee3;padding:20px;border-left:3px solid #749b3f;margin:25px 0}.notice p{margin-bottom:0}.error{padding-top:80px}.error .primary{margin-top:20px}@media(max-width:950px){.article-layout{grid-template-columns:minmax(0,1fr) 220px;gap:30px}header nav{gap:14px}.workspace{grid-template-columns:310px 1fr}.measurement{padding:25px}.measurement-top{gap:10px}.metrics{gap:10px}}@media(max-width:720px){header{padding:18px 20px;align-items:flex-start;flex-direction:column;gap:14px}header nav{gap:12px 23px}main{padding:0 20px}.heading{padding-top:30px}.workspace{grid-template-columns:1fr}.setup{padding:24px}.measurement{padding:24px;min-height:390px}.result{padding-top:25px}.result>strong{font-size:78px}.steps{grid-template-columns:1fr;gap:24px}.steps h3{margin:6px 0}.article-layout{grid-template-columns:1fr;padding:35px 0}.article-layout aside{display:none}h2{font-size:26px}.heading>p:last-child{font-size:15px}.site-info nav{gap:13px 22px}footer{flex-direction:column;padding:25px 20px}.legal{padding-top:30px}.metrics strong{font-size:23px}.history{margin-bottom:32px}.history-heading h2{font-size:16px}.legal h1{font-size:34px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.live-movement{color:#c7ef80;text-align:center;font:14px/1.5 monospace;margin:0 0 14px}.drag-zone{border:2px dashed #b3d583;border-radius:8px;background:#203b3d;padding:24px 16px;text-align:center;cursor:ew-resize;user-select:none;touch-action:none;margin:4px 0 18px;min-height:105px}.drag-zone strong,.drag-zone span{display:block}.drag-zone strong{font-size:16px;color:#c7ef80}.drag-zone span{font-size:13px;color:#d3e1d8}.drag-zone.dragging{background:#355345;border-style:solid}#status{overflow-wrap:anywhere}.setup #status{font-size:14px} .measurement:has(.drag-zone:not([hidden])) .ruler{display:none}
@font-face{font-family:'DPI Gothic';src:url('/fonts/brand-gothic.woff') format('woff');font-weight:700;font-display:swap}
:root{--card:#fff;--field:#fff;--body-copy:#46585d;--soft:#e8eee3;--accent-text:#476c2c;--panel-border:#bacac2;--heading-muted:#657176;--result-bg:#edf7dd;--result-border:#afce81}
body{font-family:'Segoe UI',system-ui,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--paper)}
header{gap:25px;flex-wrap:wrap}.brand{gap:11px;letter-spacing:0;white-space:normal}.logo-icon{width:46px;height:52px;display:grid;place-items:center;background:var(--lime);border:1px solid #a8c878;border-radius:14px;color:#14292e;flex:none}.logo-icon svg{width:26px;height:34px}.wordmark{font-family:'DPI Gothic','Segoe UI',sans-serif;font-weight:700;font-size:20px;line-height:1.05;letter-spacing:-.6px}.wordmark-bottom{display:block;font-size:22px;color:var(--accent-text);margin-top:3px}.wordmark-bottom>span{color:var(--ink)}header nav{margin-left:auto;gap:21px}.theme-toggle{border:1px solid var(--line);border-radius:30px;background:var(--card);color:var(--ink);display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:9px 14px;font-size:13px;min-height:44px;white-space:nowrap}.theme-symbol{font-size:21px;line-height:1}.theme-toggle:hover{border-color:var(--accent-text)}h1 span{color:var(--heading-muted)}.setup{background:var(--card)}input,select{background:var(--field);color:var(--ink);border-color:var(--panel-border)}.workspace{border-color:var(--panel-border)}.secondary{background:var(--card);color:var(--ink);border-color:var(--accent-text)}.setup #status{color:var(--accent-text)}.text-button,.eyebrow{color:var(--accent-text)}.article-layout p,.legal>p,.legal li{color:var(--body-copy)}.formula,.aside-note,.notice{background:var(--soft)}.guide>.section-label,.steps article>span{color:var(--accent-text)}.skip{background:var(--card)}
.finished-result{margin-top:18px;background:var(--result-bg);border:1px solid var(--result-border);border-radius:10px;padding:18px;color:var(--ink)}.result-tag{font-size:11px;font-weight:700;letter-spacing:1.7px;color:var(--accent-text)}.finished-value{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;margin-top:9px}.finished-value strong{font:700 40px/1.1 ui-monospace,monospace;letter-spacing:-2px;overflow-wrap:anywhere;max-width:100%}.finished-value>span{font-size:12px;color:var(--muted)}#finished-mode{font-size:12px;margin:10px 0 14px;color:var(--muted)}.finished-result dl{margin:0;border-top:1px solid var(--result-border);padding-top:10px}.finished-result dl>div{display:flex;justify-content:space-between;gap:10px;margin:6px 0;font-size:13px}.finished-result dd{margin:0;font-weight:700}#finished-note{margin:13px 0 0;color:var(--body-copy);font-size:12px}.test-methods{border-bottom:1px solid var(--line);padding:0 0 36px;margin-bottom:36px}.method-intro{max-width:800px;color:var(--body-copy)}.method-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:25px}.method-grid article{padding:26px;background:var(--card);border:1px solid var(--line);border-radius:12px}.method-label{font-size:11px;letter-spacing:1.4px;font-weight:700;color:var(--accent-text)}.method-grid h3{margin:12px 0 18px;font-size:23px}.method-grid ol{padding-left:20px}.method-grid li{padding-left:4px;margin:12px 0;color:var(--body-copy);font-size:15px}.method-grid h4{font-size:15px;margin-bottom:8px}.method-grid p{font-size:15px;color:var(--body-copy)}.method-grid .method-limit{background:var(--soft);padding:15px;border-radius:7px;margin-bottom:0;font-size:14px}.method-tip{color:var(--body-copy);font-size:14px;margin-top:22px;margin-bottom:0}
html[data-theme=dark]{--ink:#e6eee9;--muted:#adbbb5;--line:#334440;--paper:#101b1e;--card:#1a292d;--field:#122024;--body-copy:#c0ccc5;--soft:#263830;--accent-text:#bfe885;--panel-border:#42564e;--heading-muted:#a8b9b0;--result-bg:#24362a;--result-border:#546d3f}html[data-theme=dark] .measurement{background:#0b1619}html[data-theme=dark] aside{border-top-color:#83a664}html[data-theme=dark] input::placeholder{color:#9aada5}html[data-theme=dark] .steps article{border-left-color:#6a8b49}html[data-theme=dark] .formula,html[data-theme=dark] .notice{border-left-color:#b2d576}html[data-theme=dark] a:focus-visible,html[data-theme=dark] button:focus-visible,html[data-theme=dark] input:focus-visible,html[data-theme=dark] select:focus-visible,html[data-theme=dark] summary:focus-visible{outline-color:#c7ef80}html[data-theme=dark] .section-label>span{color:#bfe885}
@media(max-width:1000px){header nav{gap:15px}.theme-label{display:none}.theme-toggle{width:44px;padding:8px}.brand{gap:9px}}
@media(max-width:720px){header{flex-direction:row;align-items:center;gap:15px}header nav{order:3;width:100%;margin-left:0;justify-content:space-between;gap:10px}header .theme-toggle{margin-left:auto}.wordmark{font-size:19px}.wordmark-bottom{font-size:21px}.method-grid{grid-template-columns:1fr}.method-grid article{padding:22px}.finished-value strong{font-size:44px}.finished-result{padding:20px}.finished-result dl>div{font-size:14px}.method-grid li{font-size:16px}}

.dpi-guidance{margin:30px 0}.guidance-table{border:1px solid var(--line);border-radius:9px;margin:20px 0;background:var(--card)}.guidance-table table{margin:0;font-size:14px;min-width:440px}.guidance-table caption{text-align:left;padding:14px 16px;font-size:14px;font-weight:600;color:var(--ink);border-bottom:1px solid var(--line)}.guidance-table thead{background:var(--soft)}.guidance-table th,.guidance-table td{padding:13px 15px;vertical-align:top}.guidance-table th{color:var(--ink);font-size:13px}.guidance-table tbody th{white-space:nowrap;font-weight:700}.guidance-table tbody td{color:var(--body-copy)}.guidance-table tr:last-child td,.guidance-table tr:last-child th{border-bottom:0}.article-layout .guidance-note{font-size:14px;color:var(--muted)}.guidance-list{padding-left:22px;color:var(--body-copy)}.guidance-list li{margin:13px 0;padding-left:3px}.guidance-list strong{color:var(--ink)}
