:root{--paper: #f2ead6;--panel: #f8f2e2;--deep: #e8dec4;--ink: #2b2218;--soft: #5c5040;--ink-3: #8c7f6a;--faint: rgba(43, 34, 24, .28);--line: #cfc3a6;--blue: #2e4a62;--blue-d: #243a4e;--verm: #a63a22;--verm-d: #8f3019;--gold: #b8862d;--green: #6b6b3a;--en-d: "EB Garamond", Georgia, serif;--en-b: "EB Garamond", Georgia, serif;--zh: "Noto Serif SC", "Songti SC", "SimSun", serif;--shadow: 0 0 0 3px var(--paper), 0 0 0 4px var(--ink);--shadow-lg: 0 0 0 3px var(--paper), 0 0 0 4px var(--ink), 9px 11px 0 rgba(43, 34, 24, .13);--lift: 0 0 0 3px var(--paper), 0 0 0 4px var(--ink), 0 14px 22px -12px rgba(43, 34, 24, .45);--rose-pattern: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96' viewBox='0 0 96 96'%3E%3Cg fill='none' stroke='%232b2218' stroke-opacity='0.05' stroke-width='1.3'%3E%3Cpath d='M48 30c-6 6-6 12 0 18 6-6 6-12 0-18Z'/%3E%3Cpath d='M48 66c-6-6-6-12 0-18 6 6 6 12 0 18Z'/%3E%3Cpath d='M30 48c6-6 12-6 18 0-6 6-12 6-18 0Z'/%3E%3Cpath d='M66 48c-6-6-12-6-18 0 6 6 12 6 18 0Z'/%3E%3Ccircle cx='48' cy='48' r='3.5'/%3E%3Ccircle cx='0' cy='0' r='5'/%3E%3Ccircle cx='96' cy='0' r='5'/%3E%3Ccircle cx='0' cy='96' r='5'/%3E%3Ccircle cx='96' cy='96' r='5'/%3E%3C/g%3E%3C/svg%3E")}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{background-color:#e3d5b1;background-image:var(--rose-pattern);color:var(--ink);font-family:var(--zh);font-size:15px;line-height:1.85;-webkit-font-smoothing:antialiased;overflow-x:hidden}::selection{background:var(--blue);color:var(--panel)}a{color:inherit;text-decoration:none}img{display:block}button{font-family:var(--zh);cursor:pointer}.wrap{max-width:1200px;margin:0 auto;padding:0 30px}.tome{max-width:1300px;margin:0 auto 34px;background:var(--paper);border:2px solid var(--ink);box-shadow:0 0 0 1px var(--paper),0 0 0 2px var(--ink),0 28px 60px -26px #281f148c;position:relative}.topbar{background:var(--blue-d);color:#f2ead6d9;font-size:12.5px;letter-spacing:1px;position:relative;z-index:110}.topbar .wrap{display:flex;justify-content:space-between;height:36px;align-items:center;overflow:visible}.topbar .links a{margin-left:24px;transition:color .2s}.topbar .links a:hover{color:#e3c886}.topbar .moon{font-size:14px;margin-right:4px}.lang-switch{position:relative;display:inline-block;margin-left:24px}.lang-btn{background:transparent;border:none;color:inherit;font-size:inherit;letter-spacing:inherit;cursor:pointer;padding:0;transition:color .2s}.lang-btn:hover{color:#e3c886}.lang-menu{position:absolute;right:0;top:calc(100% + 6px);min-width:120px;background:var(--blue-d);border:1px solid rgba(242,234,214,.35);box-shadow:0 8px 20px -8px #00000073;z-index:140}.lang-menu a{display:block;margin:0!important;padding:9px 14px;font-size:12.5px;letter-spacing:1px;white-space:nowrap}.lang-menu a:hover{background:#f2ead614;color:#e3c886}.lang-menu a.on{color:#e3c886;font-weight:600}html[lang^=en] body{letter-spacing:.01em}html[lang^=en] .sec-head h2,html[lang^=en] .hero h1,html[lang^=en] .masthead .links a{letter-spacing:.04em}html[lang^=en] .btn{letter-spacing:.06em}.masthead{background:var(--paper);border-bottom:1px solid var(--ink);box-shadow:0 3px 0 -2px var(--ink);position:sticky;top:0;z-index:100;transition:box-shadow .25s}.masthead.stuck{box-shadow:0 3px 0 -2px var(--ink),0 12px 18px -12px #2b221866}.masthead .wrap{display:flex;align-items:center;gap:26px;height:72px}.brand{display:flex;align-items:center;gap:12px;flex-shrink:0}.brand .mark{width:40px;height:40px;box-shadow:0 0 0 2px var(--paper),0 0 0 3px var(--ink)}.brand .mark svg,.brand .mark img{width:100%;height:100%;display:block}.brand .name{line-height:1.3}.brand .zh{font-size:18px;font-weight:900;letter-spacing:4px}.brand .en{font-family:var(--en-d);font-size:10.5px;letter-spacing:4px;color:var(--ink-3);text-transform:uppercase}.masthead .links{display:flex;flex:1}.masthead .links a{padding:6px 14px;font-size:15px;font-weight:600;letter-spacing:2px;color:var(--soft);transition:color .18s;position:relative;white-space:nowrap}.masthead .links a:after{content:"";position:absolute;left:12px;right:12px;bottom:0;border-bottom:2px solid transparent;transition:border-color .18s}.masthead .links a:hover{color:var(--verm)}.masthead .links a.active{color:var(--verm);font-weight:700}.masthead .links a.active:after{border-color:var(--verm)}.masthead .links a .sup{position:absolute;top:-8px;right:2px;font-size:10px;font-family:var(--en-d);font-style:italic;color:var(--verm)}.search{flex:0 0 240px;display:flex;border:1px solid var(--ink);background:var(--panel);position:relative}.search .results{position:absolute;top:calc(100% + 7px);right:-1px;width:400px;max-width:84vw;background:var(--panel);border:1px solid var(--ink);box-shadow:var(--shadow-lg);z-index:130;max-height:390px;overflow-y:auto}.search .results a{display:flex;align-items:baseline;gap:10px;padding:10px 15px;border-bottom:1px solid var(--line);font-size:14px;transition:background .15s}.search .results a:last-child{border-bottom:none}.search .results a:hover{background:var(--deep)}.search .results b{font-weight:700;flex-shrink:0}.search .results .e{font-family:var(--en-d);font-style:italic;font-size:12.5px;color:var(--ink-3);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search .results .g{font-size:11px;letter-spacing:1px;color:var(--paper);background:var(--blue);padding:1px 8px;flex-shrink:0}.search .results .empty{padding:14px 15px;font-size:13px;color:var(--ink-3)}.search input{flex:1;min-width:0;border:none;background:transparent;padding:8px 12px;font-family:var(--zh);font-size:13.5px;color:var(--ink);outline:none}.search input::placeholder{color:#a4977a}.search button{border:none;border-left:1px solid var(--ink);background:var(--verm);color:var(--paper);box-shadow:inset 0 0 0 1px #f2ead673;padding:0 16px;font-size:13px;letter-spacing:2px;font-weight:600;transition:background .2s}.search button:hover{background:var(--verm-d)}.nav-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;padding:0;border:1px solid var(--ink);background:var(--panel);flex-shrink:0;margin-left:auto}.nav-toggle-bar{display:block;width:18px;height:2px;margin:0 auto;background:var(--ink);transition:transform .2s,opacity .2s}.masthead.nav-open .nav-toggle-bar:nth-child(1){transform:translateY(7px) rotate(45deg)}.masthead.nav-open .nav-toggle-bar:nth-child(2){opacity:0}.masthead.nav-open .nav-toggle-bar:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.section{padding:64px 0 70px}.section.alt{background:var(--deep);border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}.sec-head{display:flex;align-items:baseline;justify-content:space-between;border-bottom:3px double var(--ink);padding-bottom:14px;margin-bottom:38px}.sec-head .l{display:flex;align-items:baseline;gap:18px}.sec-head .no{font-family:var(--en-d);font-style:italic;font-size:16px;color:var(--gold);letter-spacing:1px}.sec-head h2{font-size:27px;font-weight:900;letter-spacing:4px}.sec-head .en{font-family:var(--en-d);font-style:italic;font-size:14px;color:var(--soft);letter-spacing:1px}.sec-head .more{font-size:13.5px;letter-spacing:2px;color:var(--blue);font-weight:600}.sec-head .more:hover{color:var(--verm)}.btn{display:inline-block;padding:13px 34px;border:1px solid var(--ink);font-size:15px;font-weight:600;letter-spacing:4px;background:transparent;color:var(--ink);transition:all .15s;margin-right:14px}.btn:hover{box-shadow:inset 0 0 0 1px var(--ink)}.btn.primary{background:var(--verm);color:var(--paper);border-color:#7e2b18;box-shadow:inset 0 0 0 1px #f2ead666,3px 3px #2b221838}.btn.primary:hover{background:var(--verm-d);box-shadow:inset 0 0 0 1px #f2ead666,2px 2px #2b221838}.btn.secondary{background:var(--panel);color:var(--ink);border-color:var(--ink);box-shadow:inset 0 0 0 1px #f2ead6d9,3px 3px #2b221838}.btn.secondary:hover{background:var(--deep);box-shadow:inset 0 0 0 1px #f2ead6d9,2px 2px #2b221838}.tools{display:grid;grid-template-columns:repeat(4,1fr);gap:26px}.tool{border:1px solid var(--ink);background:var(--panel);box-shadow:var(--shadow);margin:4px;display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s}.tool:hover{transform:translateY(-5px);box-shadow:var(--lift)}.tool .diagram{height:110px;border-bottom:1px solid var(--ink);position:relative}.tool:nth-child(4n+1) .diagram{background:var(--blue)}.tool:nth-child(4n+2) .diagram{background:var(--verm)}.tool:nth-child(4n+3) .diagram{background:var(--green)}.tool:nth-child(4n+4) .diagram{background:var(--gold)}.tool .diagram i{position:absolute;width:17px;height:27px;background:var(--paper);border:1px solid var(--ink);box-shadow:0 3px 5px -1px #00000059}.tool .body{padding:20px 22px 16px;flex:1}.tool .top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}.tool h3{font-size:18.5px;font-weight:700;letter-spacing:2px}.tool .en-name{font-family:var(--en-b);font-style:italic;font-size:12.5px;color:var(--soft)}.tool .badge{font-size:11px;border:1px solid var(--ink);padding:1px 8px;letter-spacing:1px;background:var(--gold);color:var(--paper);white-space:nowrap;font-weight:600}.tool p{font-size:13px;color:var(--soft);line-height:1.9;margin-bottom:12px}.tool dl{font-size:12.5px}.tool dl .row{display:flex;align-items:baseline;gap:6px;margin-bottom:3px}.tool dt{color:var(--soft);letter-spacing:1px;white-space:nowrap}.tool .dots{flex:1;border-bottom:2px dotted var(--faint);transform:translateY(-3px)}.tool dd{font-family:var(--en-d);font-weight:700;white-space:nowrap}.tool dd.r{color:var(--verm)}.tool .go{display:block;text-align:center;border-top:1px solid var(--ink);padding:12px;font-weight:700;letter-spacing:5px;font-size:14px;background:var(--paper);transition:all .18s}.tool .go:hover{background:var(--verm);color:var(--paper);letter-spacing:7px}.subscribe{border-top:1px solid var(--ink);background:var(--blue);color:var(--paper)}.subscribe .wrap{display:flex;align-items:center;justify-content:space-between;gap:30px;padding-top:36px;padding-bottom:36px}.subscribe h3{font-size:22px;letter-spacing:4px;font-weight:900}.subscribe p{font-size:13.5px;color:#f2ead6bf;margin-top:4px}.subscribe .sub-actions{display:flex;align-items:center;gap:22px;flex-shrink:0}.subscribe .rss-btn{display:inline-block;background:var(--verm);color:var(--paper);border:1px solid var(--blue-d);box-shadow:inset 0 0 0 1px #f2ead666;padding:12px 28px;font-weight:700;font-size:14px;letter-spacing:3px;transition:background .2s}.subscribe .rss-btn:hover{background:var(--verm-d)}.subscribe .rss-alt{font-size:13px;letter-spacing:1px;color:#f2ead6bf;border-bottom:1px solid rgba(242,234,214,.35);padding-bottom:2px;transition:color .2s}.subscribe .rss-alt:hover{color:var(--paper)}footer{background:var(--ink);color:#cabfa5}.foot-cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:44px;padding:52px 0 42px}.foot-brand .zh{font-size:23px;font-weight:900;letter-spacing:5px;color:var(--paper)}.foot-brand .en{font-family:var(--en-d);font-size:11px;letter-spacing:4px;color:#8d8169;text-transform:uppercase;margin-bottom:16px}.foot-brand p{font-size:13px;max-width:280px;line-height:2}.foot-cols h4{font-size:14.5px;font-weight:700;letter-spacing:3px;margin-bottom:16px;color:#d9b06a}.foot-cols ul{list-style:none}.foot-cols li{margin-bottom:9px}.foot-cols li a{font-size:13.5px;transition:color .2s}.foot-cols li a:hover{color:var(--paper)}.foot-base{border-top:1px solid rgba(202,191,165,.25);padding:18px 0;display:flex;justify-content:space-between;font-size:12.5px;letter-spacing:1px;color:#8d8169}.foot-base .en{font-family:var(--en-b);font-style:italic}.to-top{position:fixed;right:26px;bottom:26px;z-index:300;width:46px;height:46px;border:1px solid var(--ink);background:var(--panel);font-size:19px;box-shadow:0 0 0 2px var(--panel),0 0 0 3px var(--ink);opacity:0;pointer-events:none;transition:all .25s}.to-top.show{opacity:1;pointer-events:auto}.to-top:hover{background:var(--verm);color:var(--paper)}.divider{display:flex;align-items:center;gap:18px;max-width:520px;margin:0 auto;color:var(--green)}.divider:before,.divider:after{content:"";flex:1;border-top:1px solid var(--ink-3);box-shadow:0 3px 0 -1px var(--ink-3)}.divider svg{flex:none}.divider .fleuron{font-size:18px;color:var(--gold);letter-spacing:10px;text-indent:10px}.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s ease,transform .8s ease}.reveal.in{opacity:1;transform:none}@media(max-width:1180px){.masthead .wrap{flex-wrap:wrap;height:auto;padding-top:12px;padding-bottom:12px;row-gap:8px}.masthead .links{order:3;flex-basis:100%;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}.masthead .links::-webkit-scrollbar{display:none}.masthead .links.fade{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 44px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 44px),transparent)}.search{flex:1;margin-left:auto;max-width:280px}}@media(max-width:1040px){.tome{margin-bottom:0}.tools{grid-template-columns:1fr 1fr}.subscribe .wrap{flex-direction:column;align-items:stretch}.foot-cols{grid-template-columns:1fr 1fr}}@media(max-width:768px){.nav-toggle{display:flex}.masthead .wrap{gap:10px;padding-top:10px;padding-bottom:10px}.masthead .links{display:none;flex-basis:100%;order:4;flex-direction:column;overflow:visible;-webkit-mask-image:none;mask-image:none;border-top:1px solid var(--line);padding-top:6px;gap:0}.masthead .links.fade{-webkit-mask-image:none;mask-image:none}.masthead.nav-open .links{display:flex}.masthead .links a{white-space:normal;padding:11px 12px;border-bottom:1px solid var(--faint)}.masthead .links a:after{display:none}.masthead .links a .sup{position:static;display:inline;margin-left:6px;font-size:11px}.search{order:3;flex:1 1 100%;max-width:none;margin-left:0}.search .results{width:100%;right:0;left:0;max-width:none}}@media(max-width:640px){.wrap{padding:0 16px}.section{padding:44px 0 48px}.sec-head{flex-wrap:wrap;gap:8px 12px;align-items:flex-start}.sec-head h2{font-size:22px;letter-spacing:2px}.sec-head .l{flex-wrap:wrap;gap:8px 12px}.sec-head .more{width:100%}.btn{padding:11px 22px;font-size:14px;letter-spacing:2px;margin-right:8px;margin-bottom:8px}.topbar{font-size:11px}.topbar .wrap{height:auto;min-height:34px;padding:6px 0;flex-wrap:wrap;gap:4px}#moonLabel{display:none}.lang-switch{margin-left:12px}.brand .mark{width:34px;height:34px}.brand .zh{font-size:16px;letter-spacing:2px}.brand .en{font-size:9px;letter-spacing:2px}.foot-cols{grid-template-columns:1fr;gap:28px;padding:36px 0 28px}.foot-base{flex-direction:column;gap:8px;text-align:center}.subscribe .wrap{padding-top:28px;padding-bottom:28px}.subscribe h3{font-size:18px;letter-spacing:2px}.subscribe .sub-actions{flex-direction:column;align-items:stretch;gap:12px}.subscribe .rss-btn{text-align:center}.to-top{right:14px;bottom:14px;width:42px;height:42px}}
