:root{--paper:#fbfbf8;--surface:#fff;--surface-2:#f2f1ec;--ink:#0b1215;--ink-2:#4b5563;--muted:#6b7280;--line:#d9d6ce;--line-strong:#0b1215;--accent:#0e7c86;--accent-weak:#e6f2f3;--warn:#b45309;--danger:#b91c1c;--font-sans:"PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", system-ui, -apple-system, sans-serif;--font-mono:"SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;--sp-1:.25rem;--sp-2:.5rem;--sp-3:.75rem;--sp-4:1rem;--sp-5:1.5rem;--sp-6:2rem;--sp-7:3rem;--sp-8:4rem;--wrap:68rem;--measure:34em}*{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.7}a{color:var(--accent);border-bottom:1px solid #0000;text-decoration:none;transition:border-color .12s}a:hover{border-bottom-color:var(--accent)}a:focus-visible,button:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}h1,h2,h3,h4{letter-spacing:-.01em;margin:0;line-height:1.25}h1{font-size:2.125rem;font-weight:600}h2{margin-top:var(--sp-7);padding-bottom:var(--sp-2);border-bottom:1px solid var(--line);font-size:1.375rem;font-weight:600}h3{margin-top:var(--sp-5);font-size:1.0625rem;font-weight:600}p{margin:0 0 var(--sp-4)}ul,ol{margin:0 0 var(--sp-4);padding-inline-start:1.25em}li{margin-bottom:var(--sp-1)}code{font-family:var(--font-mono);background:var(--surface-2);border-radius:3px;padding:.1em .35em;font-size:.9em}.wrap{max-width:var(--wrap);padding:0 var(--sp-5);margin:0 auto}.narrow{max-width:var(--measure)}.skip-link{inset-inline-start:-9999px;z-index:100;background:var(--ink);color:var(--paper);padding:.5rem 1rem;font-size:.875rem;position:absolute;top:0}.skip-link:focus{outline:2px solid var(--accent);outline-offset:2px;inset-inline-start:0}.masthead{border-bottom:2px solid var(--line-strong);padding:var(--sp-7) 0 var(--sp-5)}.masthead-meta{gap:var(--sp-2) var(--sp-5);font-family:var(--font-mono);color:var(--muted);margin-top:var(--sp-3);letter-spacing:.02em;flex-wrap:wrap;font-size:.75rem;display:flex}.masthead-meta b{color:var(--ink);font-weight:600}.lede{color:var(--ink-2);margin-top:var(--sp-4);font-size:1.125rem}.site-header{border-bottom:1px solid var(--line);z-index:10;-webkit-backdrop-filter:saturate(120%)blur(6px);backdrop-filter:saturate(120%)blur(6px);background:#fbfbf8eb;position:sticky;top:0}.site-header .wrap{align-items:center;gap:var(--sp-4);min-height:3.25rem;display:flex}.brand{align-items:center;gap:var(--sp-3);color:var(--ink);white-space:nowrap;font-size:.9375rem;font-weight:600;display:inline-flex}.brand a{color:var(--ink);border-bottom:none}.brand a:hover{color:var(--accent)}.brand-mark{align-items:center;display:inline-flex}.brand-mark img{width:7rem;height:auto;display:block}.brand span{font-family:var(--font-mono);color:var(--accent);margin-right:var(--sp-2)}.site-nav{gap:var(--sp-4);flex-wrap:wrap;margin-inline-start:auto;font-size:.875rem;display:flex}.site-nav a{color:var(--ink-2);border-bottom:none;padding:.25rem 0}.site-nav a:hover{color:var(--accent);border-bottom:1px solid var(--accent)}.section{padding:var(--sp-7) 0}.section--tight{padding:var(--sp-5) 0}.section--alt{background:var(--surface);border-block:1px solid var(--line)}.eyebrow{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0 0 var(--sp-2);font-size:.75rem}.table-scroll{border:1px solid var(--line);background:var(--surface);overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.875rem}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:.6rem .75rem}thead th{letter-spacing:.04em;color:var(--muted);background:var(--surface-2);border-bottom:1px solid var(--line-strong);white-space:nowrap;font-size:.75rem;font-weight:600}tbody th{white-space:nowrap;font-weight:600}tbody tr:last-child th,tbody tr:last-child td{border-bottom:none}.num{font-variant-numeric:tabular-nums;white-space:nowrap}.hint{color:var(--muted);margin-top:var(--sp-2);font-size:.8125rem}.ladder{background:var(--line);border:1px solid var(--line);grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;display:grid}.ladder>div{background:var(--surface);padding:var(--sp-4)}.ladder .lvl{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:1.5rem;font-weight:600}.ladder .rank{color:var(--ink);margin-top:var(--sp-1);font-size:.875rem}.ladder .kw{margin-top:var(--sp-2);color:var(--accent);background:var(--accent-weak);border-radius:2px;padding:.05rem .4rem;font-size:.75rem;display:inline-block}.ladder .resp{color:var(--muted);margin-top:var(--sp-3);font-size:.8125rem}.box{border:1px solid var(--line);background:var(--surface);padding:var(--sp-5)}.box--accent{border-left:3px solid var(--accent)}.grid-3{gap:var(--sp-4);grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));display:grid}.grid-2{gap:var(--sp-4);grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr));display:grid}.note{border:1px solid var(--line);border-left:3px solid var(--warn);padding:var(--sp-4) var(--sp-5);color:var(--ink-2);background:#fffdf7;font-size:.875rem}.note strong{color:var(--ink)}.btn{align-items:center;gap:var(--sp-2);border:1px solid var(--ink);background:var(--ink);color:var(--paper);cursor:pointer;border-radius:2px;padding:.5rem 1rem;font-family:inherit;font-size:.875rem;font-weight:500;transition:background .12s,color .12s;display:inline-flex}.btn:hover{background:var(--accent);border-color:var(--accent);color:#fff}.btn--ghost{color:var(--ink);background:0 0}.btn--ghost:hover{background:var(--accent-weak);color:var(--ink);border-color:var(--accent)}.btn[disabled]{opacity:.5;cursor:not-allowed}.btn-row{gap:var(--sp-3);margin-top:var(--sp-5);flex-wrap:wrap;display:flex}.field{margin-bottom:var(--sp-3)}.field label{color:var(--ink-2);margin-bottom:var(--sp-1);font-size:.8125rem;display:block}select,input[type=text]{border:1px solid var(--line);background:var(--surface);width:100%;color:var(--ink);border-radius:2px;padding:.45rem .6rem;font-family:inherit;font-size:.875rem}details{border-bottom:1px solid var(--line)}details>summary{cursor:pointer;padding:var(--sp-3) 0;gap:var(--sp-3);align-items:baseline;font-weight:600;list-style:none;display:flex}details>summary::-webkit-details-marker{display:none}details>summary:after{content:"+";font-family:var(--font-mono);color:var(--muted);margin-inline-start:auto}details[open]>summary:after{content:"−"}details .detail-body{padding:0 0 var(--sp-4)}.prose h2{margin-top:var(--sp-7)}.prose h3{margin-top:var(--sp-5)}.prose table{margin:var(--sp-4) 0;border:1px solid var(--line)}.prose blockquote{margin:var(--sp-4) 0;padding:var(--sp-3) var(--sp-4);border-left:3px solid var(--line);color:var(--ink-2);background:var(--surface-2)}.prose>:first-child{margin-top:0}.result{border:1px solid var(--ink);background:var(--ink);color:var(--paper);padding:var(--sp-5)}.result .conclusion{font-size:1.75rem;font-weight:600;font-family:var(--font-mono);margin:var(--sp-2) 0}.result ul{color:#e5e7eb}.result .meta{color:#9ca3af;font-size:.8125rem}.site-footer{margin-top:var(--sp-8);border-top:1px solid var(--line);padding:var(--sp-6) 0 var(--sp-8);color:var(--muted);font-size:.8125rem}.site-footer ol{padding-inline-start:1.1em}.site-footer .cite{font-family:var(--font-mono);color:var(--ink-2);background:var(--surface-2);padding:var(--sp-3);border:1px solid var(--line);margin-top:var(--sp-4);font-size:.75rem;overflow-x:auto}@media (max-width:1024px){.site-nav{gap:var(--sp-3);font-size:.8125rem}}@media (max-width:768px){h1{font-size:1.75rem}.ladder{grid-template-columns:1fr}.masthead{padding-top:var(--sp-6)}.site-header .wrap{padding-block:var(--sp-2);flex-wrap:wrap}.site-nav{width:100%;margin-inline-start:0}}@media print{.site-header,.site-nav,.btn-row,details>summary:after{display:none}body{background:#fff}a{color:var(--ink);border-bottom:none}.section{padding:0 0 var(--sp-5)}}.lang-hint{background:var(--surface-2);border-bottom:1px solid var(--line)}.lang-hint__inner{align-items:center;gap:var(--sp-3);max-width:var(--wrap);padding:var(--sp-2) var(--sp-5);flex-wrap:wrap;margin:0 auto;font-size:.875rem;display:flex}.lang-hint__text{color:var(--ink-2);margin:0}.lang-hint__link{font-weight:600}.lang-hint__close{cursor:pointer;color:var(--muted);background:0 0;border:0;margin-inline-start:auto;padding:0 .25rem;font-size:1.25rem;line-height:1}.lang-hint__close:hover{color:var(--ink)}
