:root{--bg:#edf1ef;--panel:#f8faf9;--ink:#10201c;--ink-2:#4a5b56;--line:#c8d2ce;--accent:#2b3fe0;--accent-ink:#fff;--needle:#d97f00;--good:#137a4b;--bad:#b3261e;--font:"Avenir Next", "Segoe UI Variable Text", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;--mono:ui-monospace, "SF Mono", "Cascadia Mono", "Roboto Mono", Menlo, Consolas, monospace;--measure:66ch}@media (prefers-color-scheme:dark){:root{--bg:#0b1311;--panel:#111c19;--ink:#e5eeeb;--ink-2:#9db0aa;--line:#24342f;--accent:#8c98ff;--accent-ink:#0b1311;--needle:#ffb020;--good:#4cc38a;--bad:#ff8a80}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font);font-variant-numeric:tabular-nums;margin:0;font-size:1rem;line-height:1.6}a{color:var(--accent);text-underline-offset:.18em}a:hover{text-decoration-thickness:2px}:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:3px}.skip-link{background:var(--ink);color:var(--bg);z-index:100;padding:.6rem 1rem;position:absolute;top:0;left:-999px}.skip-link:focus{left:0}h1,h2,h3{letter-spacing:-.02em;margin:0;font-weight:650;line-height:1.15}h1{font-size:clamp(1.9rem,4.2vw,2.9rem)}h2{font-size:1.35rem}.lead{color:var(--ink-2);max-width:var(--measure);margin:.9rem 0 0;font-size:1.12rem}.site-header{border-bottom:1px solid var(--line);background:var(--bg)}.header-inner{flex-wrap:wrap;align-items:center;gap:.6rem 1.4rem;max-width:1180px;margin:0 auto;padding:.7rem 1rem;display:flex}.brand{letter-spacing:-.02em;color:var(--ink);align-items:center;gap:.5rem;font-size:1.1rem;font-weight:700;text-decoration:none;display:inline-flex}.tool-nav{flex:360px;min-width:0}.tool-nav ul,.langs ul{flex-wrap:wrap;gap:.2rem 1rem;margin:0;padding:0;list-style:none;display:flex}.tool-nav a{color:var(--ink-2);font-size:.92rem;text-decoration:none}.tool-nav a:hover{color:var(--ink);text-decoration:underline}.langs a{letter-spacing:.02em;color:var(--ink-2);border-radius:3px;padding:.1rem .4rem;font-size:.8rem;font-weight:600;text-decoration:none;display:inline-block}.langs a[aria-current=true]{background:var(--ink);color:var(--bg)}.langs a:hover{color:var(--ink)}.langs a[aria-current=true]:hover{color:var(--bg)}.shell{grid-template-columns:minmax(0,1fr);gap:1.5rem;max-width:1180px;margin:0 auto;padding:0 1rem;display:grid}@media (min-width:1140px){.shell{grid-template-columns:160px minmax(0,1fr) 160px}}.rail{display:none}@media (min-width:1140px){.rail{padding-top:2rem;display:block}.rail>.ad{position:sticky;top:1rem}}.ad{margin:0 auto;position:relative;overflow:hidden}.ad-top,.ad-bottom{width:100%;max-width:728px;min-height:90px}.ad-left,.ad-right{width:160px;min-height:600px}.ad-label{color:var(--ink-2);z-index:1;font-size:.65rem;position:absolute;top:2px;left:6px}.ad-demo{border:1px dashed var(--line);color:var(--ink-2);place-items:center;font-size:.8rem;display:grid}.ad-wrap{max-width:1180px;margin:0 auto;padding:.8rem 1rem}.ad-wrap:empty{display:none}main{min-width:0;padding:2rem 0 3rem}.tool-head{margin-bottom:1.6rem}.tool-surface{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:clamp(1rem,3vw,1.8rem)}.prose{max-width:var(--measure);margin-top:2.6rem}.prose h2{margin-bottom:.8rem}.prose p,.prose li{color:var(--ink)}.prose ul{margin:0;padding-left:1.2rem}.prose li+li{margin-top:.4rem}.faq details{border-top:1px solid var(--line);padding:.85rem 0}.faq details:last-child{border-bottom:1px solid var(--line)}.faq summary{cursor:pointer;justify-content:space-between;gap:1rem;font-weight:600;list-style:none;display:flex}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"+";color:var(--ink-2);font-weight:400;transition:transform .15s}.faq details[open] summary:after{transform:rotate(45deg)}.faq p{color:var(--ink-2);margin:.6rem 0 0}.more-tools ul{padding:0;list-style:none}.more-tools li{border-top:1px solid var(--line);gap:.1rem;padding:.6rem 0;display:grid}.more-tools li:last-child{border-bottom:1px solid var(--line)}.more-tools li span{color:var(--ink-2);font-size:.92rem}.home-list{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:0 2rem;margin:2rem 0 0;padding:0;list-style:none;display:grid}.home-list li{border-top:2px solid var(--ink);padding:.9rem 0 1.4rem}.home-list a{letter-spacing:-.015em;color:var(--ink);font-size:1.2rem;font-weight:650;text-decoration:none;display:block}.home-list a:hover{color:var(--accent)}.home-list p{color:var(--ink-2);margin:.3rem 0 0}.btn{font:inherit;cursor:pointer;border:1px solid var(--ink);color:var(--ink);background:0 0;border-radius:4px;padding:.55rem 1.1rem;font-weight:600}.btn:hover{background:var(--ink);color:var(--bg)}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn-primary:hover{filter:brightness(1.08);background:var(--accent);color:var(--accent-ink)}.btn-quiet{border-color:var(--line)}.btn[disabled]{opacity:.5;cursor:not-allowed}.field{gap:.3rem;display:grid}.field label{color:var(--ink-2);font-size:.88rem}.field input,.field select{font:inherit;border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:4px;width:100%;padding:.55rem .7rem}.field input:focus,.field select:focus{border-color:var(--accent)}.speed{gap:1.4rem;display:grid}.dial-wrap{width:100%;max-width:440px;margin:0 auto;position:relative}.dial{width:100%;height:auto;display:block}.dial-track{fill:none;stroke:var(--line);stroke-width:14px;stroke-linecap:round}.dial-fill{fill:none;stroke:var(--accent);stroke-width:14px;stroke-linecap:round}.dial-tick{stroke:var(--ink-2);stroke-width:1.5px}.dial-label{fill:var(--ink-2);text-anchor:middle;font-size:11px}.needle{transform-box:view-box;transform-origin:160px 170px;transition:transform .25s ease-out}.dial-readout{text-align:center;pointer-events:none;position:absolute;top:56%;left:50%;transform:translate(-50%,-50%)}.dial-value{letter-spacing:-.03em;font-size:clamp(2.2rem,9vw,3.2rem);font-weight:700;line-height:1;display:block}.dial-unit{color:var(--ink-2);font-size:.9rem}.go{border:3px solid var(--accent);background:var(--panel);width:118px;height:118px;color:var(--ink);font:inherit;letter-spacing:.02em;cursor:pointer;border-radius:50%;font-size:1.9rem;font-weight:700;position:absolute;top:60%;left:50%;transform:translate(-50%,-50%)}.go:hover{background:var(--accent);color:var(--accent-ink)}.go[disabled]{opacity:.5;cursor:not-allowed}.phase{text-align:center;min-height:1.6em;color:var(--ink-2);margin:0}.readings{grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:0;display:grid}@media (min-width:640px){.readings{grid-template-columns:repeat(4,minmax(0,1fr))}}.reading{border-top:2px solid var(--ink);padding:.8rem .4rem .8rem 0}.reading dt{color:var(--ink-2);font-size:.88rem}.reading dd{letter-spacing:-.02em;margin:.1rem 0 0;font-size:1.7rem;font-weight:700}.reading small{color:var(--ink-2);font-size:.8rem;font-weight:400}.speed-controls{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:.8rem;display:flex}.speed-controls .field{min-width:220px}.notice{border-left:4px solid var(--needle);background:color-mix(in srgb, var(--needle) 10%, transparent);margin:0;padding:.6rem .9rem}.notice.error{border-color:var(--bad);background:color-mix(in srgb, var(--bad) 10%, transparent)}table.history{border-collapse:collapse;width:100%;font-size:.92rem}.history th,.history td{text-align:right;border-top:1px solid var(--line);padding:.45rem .4rem}.history th:first-child,.history td:first-child{text-align:left}.history th{color:var(--ink-2);font-weight:500}.history-head{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.history-head h2{font-size:1.05rem}.link-btn{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.ip-big{letter-spacing:-.02em;word-break:break-all;margin:.2rem 0 .8rem;font-size:clamp(1.8rem,6vw,3rem);font-weight:700}.ip-row{flex-wrap:wrap;align-items:center;gap:.6rem 1rem;display:flex}.facts{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0 2rem;margin:1.6rem 0 0;display:grid}.facts div{border-top:1px solid var(--line);padding:.7rem 0}.facts dt{color:var(--ink-2);font-size:.85rem}.facts dd{word-break:break-word;margin:.1rem 0 0;font-weight:600}.typing-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.8rem 1.5rem;margin-bottom:1rem;display:flex}.seg{border:1px solid var(--line);border-radius:4px;display:inline-flex;overflow:hidden}.seg button{font:inherit;color:var(--ink-2);cursor:pointer;background:0 0;border:none;padding:.4rem .8rem}.seg button+button{border-left:1px solid var(--line)}.seg button[aria-pressed=true]{background:var(--ink);color:var(--bg)}.timer{font-size:1.6rem;font-weight:700}.typing-text{font-family:var(--mono);cursor:text;-webkit-user-select:none;user-select:none;height:6.6rem;padding:.2rem .1rem;font-size:clamp(1.1rem,2.6vw,1.45rem);line-height:2.2rem;position:relative;overflow:hidden}.typing-text .c-ok{color:var(--ink)}.typing-text .c-bad{color:var(--bad);background:color-mix(in srgb, var(--bad) 18%, transparent)}.typing-text .c-rest{color:var(--ink-2)}.typing-text .c-cur{border-left:2px solid var(--accent);margin-left:-2px;animation:1s step-end infinite blink}@keyframes blink{50%{border-left-color:#0000}}.typing-input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.hint{color:var(--ink-2);margin:.6rem 0 0;font-size:.92rem}.calc{gap:1.6rem;display:grid}@media (min-width:820px){.calc{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:2.4rem}}.calc-fields{align-content:start;gap:.9rem;display:grid}.calc-fields .row2{grid-template-columns:1fr 1fr;gap:.8rem;display:grid}.calc-out{align-content:start;gap:.2rem;display:grid}.big-out{letter-spacing:-.03em;font-size:clamp(2.2rem,6vw,3.1rem);font-weight:700;line-height:1.1}.out-label{color:var(--ink-2);font-size:.9rem}.out-list{margin:1rem 0 0}.out-list div{border-top:1px solid var(--line);justify-content:space-between;gap:1rem;padding:.5rem 0;display:flex}.out-list dt{color:var(--ink-2)}.out-list dd{margin:0;font-weight:650}.share-bar{background:var(--line);border-radius:2px;height:10px;margin-top:1rem;display:flex;overflow:hidden}.share-bar span:first-child{background:var(--accent)}.share-bar span:last-child{background:var(--needle)}.legend{color:var(--ink-2);gap:1.2rem;margin-top:.4rem;font-size:.85rem;display:flex}.legend i{border-radius:2px;width:10px;height:10px;margin-right:.35rem;display:inline-block}.schedule{margin-top:1.6rem;overflow-x:auto}.schedule h3{margin-bottom:.6rem;font-size:1.05rem}.schedule table{border-collapse:collapse;width:100%;font-size:.92rem}.schedule th,.schedule td{text-align:right;border-top:1px solid var(--line);white-space:nowrap;padding:.4rem .5rem}.schedule th:first-child,.schedule td:first-child{text-align:left}.schedule th{color:var(--ink-2);font-weight:500}.disclaimer{color:var(--ink-2);margin:1.4rem 0 0;font-size:.85rem}.site-footer{border-top:1px solid var(--line);margin-top:2rem}.footer-inner{max-width:1180px;color:var(--ink-2);flex-wrap:wrap;justify-content:space-between;gap:.6rem 2rem;margin:0 auto;padding:1.4rem 1rem 6rem;font-size:.9rem;display:flex}.footer-inner p{margin:0}.consent{z-index:50;background:var(--panel);border-top:2px solid var(--ink);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.8rem 1.5rem;padding:.9rem 1rem;display:flex;position:fixed;bottom:0;left:0;right:0}.consent-body{flex:420px;max-width:820px}.consent-title{margin:0;font-weight:700}.consent-text{color:var(--ink-2);margin:.2rem 0 0;font-size:.92rem}.consent-actions{gap:.6rem;display:flex}.privacy-sec+.privacy-sec{margin-top:1.6rem}.privacy-sec h2{margin-bottom:.4rem;font-size:1.15rem}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
