:root{--ink:#0c1222;--ink-soft:#1a2438;--muted:#5b6578;--line:#d7dde8;--paper:#eef1f6;--paper-2:#f7f8fb;--surface:#fff;--accent:#0f8f8a;--accent-deep:#0a6e6a;--accent-soft:#d8f3f1;--warn:#b45309;--shadow:0 18px 50px #0c122214;--radius:14px;--home-max:1344px;--home-gutter:48px;--header-h:64px;--font-display:"Instrument Serif", "Times New Roman", serif;--font-sans:"Sora", "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{min-height:100vh;color:var(--ink);font-family:var(--font-sans);background:var(--paper-2);margin:0;font-size:16px;line-height:1.55}a{color:var(--accent-deep);text-underline-offset:.18em;text-decoration-thickness:1px}a:hover{color:var(--ink)}img{max-width:100%}.wrap{width:min(1120px,100% - 2rem);margin-inline:auto}.site-header{z-index:20;background:var(--paper-2);border-bottom:1px solid var(--line);position:sticky;top:0}.site-header__inner{width:min(1440px, calc(100% - 2 * var(--home-gutter)));height:var(--header-h);justify-content:space-between;align-items:center;gap:1rem;margin-inline:auto;padding:0;display:flex}.header-search{border:1px solid var(--line);background:var(--surface);border-radius:999px;flex:1;align-items:center;gap:.5rem;max-width:28rem;margin-inline:.5rem;padding:.35rem .45rem .35rem 1rem;display:flex}.header-search input{min-width:0;font:inherit;background:0 0;border:0;flex:1;padding:.45rem 0;font-size:.92rem}.header-search input:focus{outline:none}.header-search:focus-within{border-color:var(--accent);outline:2px solid #0f8f8a40}.header-search__kbd{font-family:var(--font-mono);color:var(--accent-deep);background:var(--accent-soft);border-radius:6px;flex-shrink:0;padding:.2rem .45rem;font-size:.72rem;font-weight:600}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.brand{color:var(--ink);flex-shrink:0;align-items:center;gap:8px;text-decoration:none;display:inline-flex}.brand__mark{font-family:var(--font-sans);letter-spacing:-.015em;font-size:1.375rem;font-weight:700;line-height:1.2}.brand__dot{background:var(--accent);border-radius:50%;flex-shrink:0;width:8px;height:8px}.nav{flex-shrink:0;align-items:center;gap:28px;font-size:.875rem;font-weight:500;display:flex}.nav a{color:var(--muted);text-decoration:none}.nav a:hover{color:var(--ink)}.home-body{background:var(--surface);padding:40px 0 48px}.home-body__inner{width:min(var(--home-max), calc(100% - 2 * var(--home-gutter)));flex-direction:column;align-items:flex-start;gap:24px;margin-inline:auto;display:flex}.hero__brand{font-family:var(--font-sans);letter-spacing:-.035em;color:var(--ink);margin:0;font-size:clamp(2.25rem,6vw,3.5rem);font-weight:700;line-height:1.05}.hero__lead{color:var(--muted);margin:0;font-size:1rem;line-height:1.5}.search{border:1px solid var(--line);background:var(--surface);border-radius:999px;align-items:center;gap:.5rem;width:min(560px,100%);height:48px;padding:0 14px 0 18px;display:flex}.search input{min-width:0;height:100%;font:inherit;color:var(--ink);background:0 0;border:0;flex:1;padding:0;font-size:.9375rem}.search input:focus{outline:none}.search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px #0f8f8a24}.search__kbd{font-family:var(--font-mono);color:var(--accent-deep);background:var(--accent-soft);pointer-events:none;border-radius:6px;flex-shrink:0;padding:4px 8px;font-size:.75rem;font-weight:600}.section{padding:1.25rem 0 3rem}.section-head{flex-direction:column;gap:4px;display:flex}.section__title{letter-spacing:-.01em;color:var(--ink);margin:0;font-size:1.25rem;font-weight:600}.section__sub{color:var(--muted);margin:0;font-size:.8125rem;line-height:1.45}.cat-tabs{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.cat-tab{border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:999px;align-items:center;padding:8px 14px;font-size:.8125rem;font-weight:500;line-height:1.2;text-decoration:none;display:inline-flex}.cat-tab:hover{color:var(--ink);border-color:#0f8f8a66}.cat-tab.is-active{background:var(--ink);border-color:var(--ink);color:#fff;font-weight:600}.tool-list{gap:10px;width:100%;display:grid}.tool-row{border:1px solid var(--line);background:var(--surface);color:inherit;border-radius:12px;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:14px 16px;text-decoration:none;transition:border-color .15s,transform .15s,background .15s;display:grid}.tool-row:hover{border-color:#0f8f8a73;transform:translateY(-1px)}.tool-row__tile{background:var(--accent-soft);width:40px;height:40px;color:var(--accent-deep);font-family:var(--font-mono);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;font-size:.9375rem;font-weight:700;display:inline-flex}.tool-row__body{flex-direction:column;gap:4px;min-width:1px;display:flex}.tool-row__body h3{color:var(--ink);margin:0;font-size:.9375rem;font-weight:600;line-height:1.3}.tool-row__body p{color:var(--muted);margin:0;font-size:.8125rem;line-height:1.4}.tool-row__meta{font-family:var(--font-sans);color:var(--accent-deep);background:var(--accent-soft);white-space:nowrap;border-radius:999px;padding:5px 10px;font-size:.6875rem;font-weight:600}.more-link{color:var(--accent-deep);font-size:.875rem;font-weight:600;text-decoration:none}.more-link:hover{color:var(--ink)}.page-head{padding:2rem 0 .75rem}.page-head h1{font-family:var(--font-display);letter-spacing:-.02em;margin:0 0 .45rem;font-size:clamp(2rem,4.5vw,2.75rem);line-height:1.05}.page-head p{max-width:42rem;color:var(--muted);margin:0}.calc-shell{grid-template-columns:1.15fr .85fr;gap:1.1rem;padding-bottom:2.5rem;display:grid}@media (width<=1100px){:root{--home-gutter:32px}}@media (width<=860px){:root{--home-gutter:20px}.home-body{padding:28px 0 32px}.home-body__inner{gap:20px}.calc-shell{grid-template-columns:1fr}.nav{display:none}.header-search{max-width:none}.tool-row{grid-template-columns:auto 1fr}.tool-row__meta{display:none}}.panel{border:1px solid var(--line);border-radius:calc(var(--radius) + 2px);background:var(--surface);box-shadow:var(--shadow);padding:1.2rem}.panel h2{margin:0 0 1rem;font-size:1rem}.field{gap:.35rem;margin-bottom:.9rem;display:grid}.field label{color:var(--ink-soft);font-size:.88rem}.field-row{grid-template-columns:1fr auto;align-items:center;gap:.5rem;display:grid}.field input,.field select{border:1px solid var(--line);width:100%;font:inherit;background:var(--paper-2);border-radius:10px;padding:.7rem .8rem}.field input:focus,.field select:focus{border-color:var(--accent);outline:2px solid #0f8f8a4d}.field__unit{min-width:3.2rem;color:var(--muted);font-family:var(--font-mono);font-size:.82rem}.btn{font:inherit;cursor:pointer;background:var(--ink);color:#fff;border:0;border-radius:999px;justify-content:center;align-items:center;padding:.75rem 1.2rem;font-weight:600;display:inline-flex}.btn:hover{background:var(--ink-soft)}.btn--ghost{color:var(--ink-soft);border:1px solid var(--line);background:0 0}.result-box{background:linear-gradient(145deg, var(--accent-soft), #eef7f6);border:1px solid #0f8f8a33;border-radius:12px;margin-top:.4rem;padding:1rem}.result-box__label{color:var(--muted);margin:0;font-size:.82rem}.result-box__value{font-family:var(--font-mono);letter-spacing:-.03em;margin:.2rem 0 0;font-size:clamp(1.6rem,4vw,2.1rem)}.result-extras{gap:.35rem;margin:.85rem 0 0;padding:0;font-size:.9rem;list-style:none;display:grid}.result-extras li{color:var(--muted);justify-content:space-between;gap:1rem;display:flex}.result-extras strong{color:var(--ink);font-weight:600;font-family:var(--font-mono)}.formula{background:var(--ink);color:#e8eefc;font-family:var(--font-mono);border-radius:10px;margin:0;padding:.9rem 1rem;font-size:.88rem;overflow-x:auto}.muted{color:var(--muted)}.example{border-top:1px solid var(--line);margin:.8rem 0 0;padding:.8rem 0 0}.example h3{margin:0 0 .35rem;font-size:.92rem}.example p{color:var(--muted);margin:0;font-size:.9rem}.thicken-block{padding:0 0 2.2rem}.thicken-block h2{margin:0 0 .9rem;font-size:1.15rem}.faq-list{gap:.85rem;margin:0;display:grid}.faq-item{border:1px solid var(--line);border-radius:calc(var(--radius) + 2px);background:var(--surface);margin:0;padding:1rem 1.1rem}.faq-item dt{margin:0 0 .4rem;font-size:.98rem;font-weight:600}.faq-item dd{color:var(--muted);margin:0;font-size:.92rem;line-height:1.55}.related-list{gap:.65rem;margin:0;padding:0;list-style:none;display:grid}.related-list a{border:1px solid var(--line);border-radius:calc(var(--radius) + 2px);background:var(--surface);color:inherit;gap:.2rem;padding:.85rem 1rem;text-decoration:none;display:grid}.related-list a:hover{border-color:#0f8f8a73}.related-list strong{font-size:.95rem}.related-list span{color:var(--muted);font-size:.88rem}.site-footer{border-top:1px solid var(--line);color:var(--muted);margin-top:auto;padding:1.6rem 0 2rem;font-size:.88rem}.site-footer__inner{flex-wrap:wrap;justify-content:space-between;gap:.75rem 1.5rem;display:flex}.site-footer__links{flex-wrap:wrap;align-items:center;gap:.35rem .5rem;margin:0;display:flex}.ad-slot-band{margin:1rem auto 1.25rem}.home-body__inner>.ad-slot-band{width:100%;margin:0}.ad-slot{place-items:center;width:100%;min-height:90px;display:grid;overflow:hidden}.ad-slot--rectangle{max-width:336px;min-height:250px;margin-inline:auto}.ad-slot--leader{min-height:90px}.ad-slot--skeleton{border:1px dashed color-mix(in srgb, var(--line) 85%, var(--muted));background:color-mix(in srgb, var(--surface) 70%, transparent);color:var(--muted);border-radius:10px}.ad-slot__label{font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;opacity:.7;font-size:.72rem}.legal{max-width:42rem;padding:2rem 0 3.5rem}.legal h1{font-family:var(--font-display);margin:0 0 .75rem;font-size:clamp(2rem,4vw,2.75rem);font-weight:400;line-height:1.15}.legal__lead{color:var(--ink-soft);margin:0 0 .5rem;font-size:1.05rem}.legal__meta{color:var(--muted);margin:0 0 1.75rem;font-size:.88rem}.legal h2{margin:1.75rem 0 .55rem;font-size:1.15rem}.legal p{color:var(--ink-soft);margin:0 0 .85rem}.breadcrumb{color:var(--muted);flex-wrap:wrap;gap:.35rem;margin:0 0 .8rem;font-size:.85rem;display:flex}.breadcrumb a{color:var(--muted);text-decoration:none}.breadcrumb a:hover{color:var(--accent-deep)}
