:root{--paper: #f6efe2;--paper-deep: #eee3cd;--paper-card: #fbf7ed;--ink: #27190e;--ink-soft: #5d4b38;--ink-faint: #6f5e48;--copper: #a85f23;--copper-soft: #c98e55;--leaf: #50603c;--leaf-soft: #e3e4d2;--rule: #d9cab0;--badge-easy: #50603c;--badge-mid: #a85f23;--badge-pro: #7c3026;--badge-pro-soft: #e7cdc8;--copper-ink: #8f4d18;--font-display: "Fraunces", "Noto Serif SC", serif;--font-body: "Noto Serif SC", "Songti SC", serif;--font-ui: "Noto Sans SC", "PingFang SC", sans-serif;--maxw: 1120px}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.85;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:1000;opacity:.045;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E")}::selection{background:var(--copper);color:var(--paper)}a{color:inherit;text-decoration:none}:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--copper);outline-offset:2px;border-radius:3px}.skip-link{position:absolute;left:-9999px;top:0;z-index:2000;font-family:var(--font-ui);font-size:14px;background:var(--ink);color:var(--paper);padding:10px 18px;border-radius:0 0 8px;box-shadow:2px 3px #00000026}.skip-link:focus{left:0;outline:2px solid var(--copper);outline-offset:2px}.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px}.site-head{border-bottom:1.5px solid var(--ink);background:var(--paper);position:sticky;top:0;z-index:100}.site-head .bar{display:flex;align-items:center;gap:28px;height:64px}.brand{font-family:var(--font-display);font-weight:700;font-size:21px;letter-spacing:2px;display:flex;align-items:baseline;gap:9px;white-space:nowrap}.brand .bean{color:var(--copper);font-size:15px}.brand .en{font-size:11.5px;font-style:italic;font-weight:400;color:var(--ink-faint);letter-spacing:1px}.site-nav{display:flex;gap:2px;margin-left:auto;font-family:var(--font-ui);font-size:13.5px;overflow-x:auto}.site-nav a{padding:6px 11px;color:var(--ink-soft);position:relative;white-space:nowrap}.site-nav a:after{content:"";position:absolute;left:11px;right:100%;bottom:2px;height:2px;background:var(--copper);transition:right .25s ease}.site-nav a:hover{color:var(--ink)}.site-nav a:hover:after{right:11px}.site-nav a.active{color:var(--copper);font-weight:600}.search-link{margin-left:8px;border:1.5px solid var(--ink);border-radius:999px;padding:5px 16px!important;display:inline-flex;align-items:center;gap:7px;background:var(--paper-card);transition:all .2s}.search-link:hover{background:var(--ink);color:var(--paper)!important}.search-link:after{display:none}.site-foot{margin-top:96px;border-top:1.5px solid var(--ink);background:var(--paper-deep)}.site-foot .inner{padding:36px 0 44px;display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;font-family:var(--font-ui);font-size:13px;color:var(--ink-soft)}.site-foot .motto{font-family:var(--font-display);font-style:italic;font-size:15px;color:var(--copper)}.foot-link{border-bottom:1px solid var(--ink-faint);transition:color .15s}.foot-link:hover{color:var(--copper);border-color:var(--copper)}.sec-head{display:flex;align-items:baseline;gap:16px;margin:72px 0 28px;border-bottom:1px solid var(--rule);padding-bottom:14px}.sec-head .no{font-family:var(--font-display);font-style:italic;font-size:15px;color:var(--copper);letter-spacing:1px}.sec-head h2{font-family:var(--font-display);font-optical-sizing:auto;font-size:26px;font-weight:700;letter-spacing:1px}.sec-head .more{margin-left:auto;font-family:var(--font-ui);font-size:13px;color:var(--ink-faint);transition:color .2s}.sec-head .more:hover{color:var(--copper)}.entry-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule)}.entry-card{background:var(--paper-card);padding:26px 26px 22px;display:flex;flex-direction:column;gap:10px;transition:background .25s;position:relative}.entry-card:hover{background:var(--paper-deep)}.entry-card .kicker{font-family:var(--font-ui);font-size:11.5px;letter-spacing:1.5px;color:var(--copper);display:flex;align-items:center;gap:8px}.entry-card h3{font-family:var(--font-display);font-size:20px;font-weight:600;line-height:1.4}.entry-card h3 .en{display:block;font-style:italic;font-weight:400;font-size:13px;color:var(--ink-faint);margin-top:2px}.entry-card p{font-size:13.5px;color:var(--ink-soft);line-height:1.75;flex:1}.entry-card .foot{display:flex;align-items:center;gap:8px;font-family:var(--font-ui);font-size:11.5px;color:var(--ink-faint)}.entry-card:after{content:"↗";position:absolute;top:22px;right:22px;font-size:14px;color:var(--copper);opacity:0;transition:opacity .2s}.entry-card:hover:after{opacity:1}.lvl{display:inline-block;font-family:var(--font-ui);font-size:11px;letter-spacing:1px;padding:1px 9px;border-radius:999px;border:1px solid currentColor}.lvl.入门{color:var(--badge-easy)}.lvl.进阶{color:var(--badge-mid)}.lvl.专业{color:var(--badge-pro)}.prose{font-size:16.5px;line-height:2.05}.prose h2{font-family:var(--font-display);font-size:23px;margin:52px 0 18px;padding-bottom:10px;border-bottom:1px solid var(--rule);letter-spacing:.5px}.prose h3{font-family:var(--font-display);font-size:18px;margin:36px 0 12px;color:var(--ink)}.prose p{margin:0 0 22px}.prose ul,.prose ol{margin:0 0 22px;padding-left:26px}.prose li{margin-bottom:8px}.prose strong{color:var(--copper);font-weight:700}.prose blockquote{margin:28px 0;padding:18px 26px;border-left:3px solid var(--copper);background:var(--paper-card);font-style:italic;color:var(--ink-soft)}.prose table{width:100%;border-collapse:collapse;margin:28px 0;font-size:14px;font-family:var(--font-ui)}.prose th{text-align:left;border-bottom:1.5px solid var(--ink);padding:9px 12px;font-weight:600}.prose td{border-bottom:1px solid var(--rule);padding:9px 12px;vertical-align:top}.prose code{font-size:14px;background:var(--paper-deep);padding:1px 7px;border-radius:4px}.prose hr{border:none;border-top:1px solid var(--rule);margin:40px 0}.entry-head{padding:60px 0 34px;border-bottom:1.5px solid var(--ink);margin-bottom:44px;position:relative}.entry-head .crumb{font-family:var(--font-ui);font-size:12.5px;letter-spacing:1px;color:var(--ink-faint);margin-bottom:20px;display:flex;gap:8px;align-items:center}.entry-head .crumb a:hover{color:var(--copper)}.entry-head h1{font-family:var(--font-display);font-size:clamp(34px,5vw,50px);font-weight:700;letter-spacing:1px;line-height:1.25}.entry-head .latin{font-family:var(--font-display);font-style:italic;font-weight:400;font-size:19px;color:var(--copper);margin-top:8px;display:block}.entry-head .summary{margin-top:18px;max-width:720px;font-size:16px;color:var(--ink-soft)}.entry-head .meta{margin-top:22px;display:flex;gap:12px;flex-wrap:wrap;align-items:center;font-family:var(--font-ui);font-size:12.5px;color:var(--ink-faint)}.tag{border:1px solid var(--rule);background:var(--paper-card);border-radius:999px;padding:2px 12px;font-size:11.5px;font-family:var(--font-ui);color:var(--ink-soft)}.related-row{margin-top:64px;border-top:1.5px solid var(--ink);padding-top:8px}.related-row .label{font-family:var(--font-ui);font-size:12px;letter-spacing:2px;color:var(--copper);margin:14px 0}.list-hero{padding:64px 0 36px;border-bottom:1.5px solid var(--ink);margin-bottom:40px;display:flex;align-items:flex-end;gap:28px;flex-wrap:wrap}.list-hero .giant{font-family:var(--font-display);font-optical-sizing:auto;font-variant-numeric:tabular-nums;font-style:italic;font-size:clamp(60px,9vw,110px);line-height:.9;color:var(--paper-deep);-webkit-text-stroke:1.5px var(--copper);user-select:none}.list-hero h1{font-family:var(--font-display);font-size:clamp(28px,4vw,40px);letter-spacing:1px}.list-hero p{color:var(--ink-soft);font-size:14.5px;margin-top:8px;font-family:var(--font-ui)}@keyframes rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}.rise{animation:rise .7s cubic-bezier(.2,.7,.3,1) both}.rise-1{animation-delay:.05s}.rise-2{animation-delay:.15s}.rise-3{animation-delay:.25s}.rise-4{animation-delay:.35s}@media(prefers-reduced-motion:reduce){.rise{animation:none}}@media(max-width:760px){.site-head .bar{height:auto;flex-wrap:wrap;padding:10px 0;gap:10px}.site-nav{width:100%}}.tool-layout{display:grid;grid-template-columns:minmax(300px,420px) 1fr;gap:28px;align-items:start;margin-bottom:56px}@media(max-width:880px){.tool-layout{grid-template-columns:1fr}}.tool-panel{border:1.5px solid var(--ink);background:var(--paper-card);padding:26px 26px 30px;box-shadow:5px 6px 0 var(--paper-deep)}.tool-panel h2{font-family:var(--font-display);font-size:17px;letter-spacing:1px;margin-bottom:18px;padding-bottom:10px;border-bottom:1px solid var(--rule)}.field{margin-bottom:18px}.field label{display:block;font-family:var(--font-ui);font-size:12.5px;letter-spacing:1px;color:var(--ink-soft);margin-bottom:7px}.field label output{color:var(--copper);font-weight:600}.field input[type=number],.field select{width:100%;font-family:var(--font-ui);font-size:15px;padding:9px 14px;border:1.5px solid var(--rule);border-radius:8px;background:#fff;color:var(--ink);outline:none}.field input[type=number]:focus,.field select:focus{border-color:var(--copper)}.field input[type=range]{width:100%;accent-color:var(--copper)}.seg{display:flex;flex-wrap:wrap;gap:7px}.seg button{font-family:var(--font-ui);font-size:12.5px;border:1px solid var(--rule);border-radius:999px;background:#fff;color:var(--ink-soft);padding:5px 14px;cursor:pointer;transition:all .15s}.seg button:hover{border-color:var(--copper);color:var(--copper)}.seg button.active{background:var(--ink);border-color:var(--ink);color:var(--paper)}.tool-result{display:flex;flex-direction:column;gap:16px}.result-card{border:1px solid var(--rule);background:var(--paper-card);padding:22px 26px}.result-card .label{font-family:var(--font-ui);font-size:11.5px;letter-spacing:2px;color:var(--copper);margin-bottom:10px}.result-big{font-family:var(--font-display);font-size:38px;font-weight:700;line-height:1.1}.result-big small{font-size:16px;font-weight:400;color:var(--ink-faint);margin-left:4px}.result-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule)}.result-cell{background:var(--paper-card);padding:16px 18px}.result-cell .k{font-family:var(--font-ui);font-size:11px;letter-spacing:1.5px;color:var(--ink-faint);margin-bottom:6px}.result-cell .v{font-family:var(--font-display);font-size:19px;font-weight:600}.result-cell .v small{font-size:12px;color:var(--ink-faint);font-weight:400}.verdict{font-size:14.5px;line-height:1.9;color:var(--ink-soft)}.verdict strong{color:var(--copper)}.copy-btn{font-family:var(--font-ui);font-size:13.5px;font-weight:600;border:1.5px solid var(--ink);border-radius:999px;background:var(--ink);color:var(--paper);padding:9px 24px;cursor:pointer;transition:all .2s;align-self:flex-start}.copy-btn:hover{background:var(--copper);border-color:var(--copper)}.principle-links{margin-top:48px;border-top:1.5px solid var(--ink);padding-top:16px}.principle-links .label{font-family:var(--font-ui);font-size:12px;letter-spacing:2px;color:var(--copper);margin-bottom:12px}.principle-links ul{list-style:none;display:flex;flex-wrap:wrap;gap:10px}.principle-links a{font-family:var(--font-ui);font-size:13px;border:1px solid var(--rule);border-radius:999px;padding:6px 16px;background:var(--paper-card);color:var(--ink-soft);transition:all .15s}.principle-links a:hover{border-color:var(--copper);color:var(--copper)}.tool-note{font-family:var(--font-ui);font-size:12.5px;color:var(--ink-faint);border-left:3px solid var(--rule);padding-left:14px;line-height:1.8}#toolToast{position:fixed;bottom:28px;left:50%;transform:translate(-50%) translateY(16px);background:var(--ink);color:var(--paper);font-family:var(--font-ui);font-size:14px;padding:10px 24px;border-radius:999px;opacity:0;pointer-events:none;transition:all .25s;z-index:200}#toolToast.show{opacity:1;transform:translate(-50%) translateY(0)}.bt,.bta,.pt-pvsvg{--bt-coffee: #6f4e37;--bt-coffee-dark: #3d2817;--bt-water: #c3d0cd;--bt-water-line: #93aaa7}.bt-cap{font-family:var(--font-ui);font-size:9px;fill:var(--ink-faint);letter-spacing:1.4px}.bt-svgnum{font-family:var(--font-display);font-size:13px;font-weight:600;fill:var(--ink)}
