:root{color-scheme:light;--paper:#f8f7f2;--ink:#25342f;--muted:#61716b;--line:#d8dfd7;--accent:#365f50;--wash:#edf1e8;--white:#fffef9;--serif:"Songti SC","STSong","Noto Serif CJK SC",serif;--sans:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:28px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.8;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration-thickness:1px;text-underline-offset:5px}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.55}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #365f50;outline-offset:5px}::selection{background:#cbdccd;color:var(--ink)}[hidden]{display:none!important}.shell{max-width:1120px;margin:0 auto;padding:0 48px}.site-header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-top:32px;padding-bottom:25px;border-bottom:1px solid var(--line)}.brand{font-family:var(--serif);font-size:23px;font-weight:600;text-decoration:none;letter-spacing:2px}.site-nav{display:flex;gap:27px;font-size:14px}.site-nav a{text-decoration:none}.site-nav a:hover,.site-nav [aria-current]{color:var(--accent);text-decoration:underline}.skip-link{position:absolute;top:8px;left:16px;z-index:20;transform:translateY(-180%);padding:8px 12px;background:var(--white)}.skip-link:focus{transform:none}.hero{max-width:790px;padding:76px 0 67px}.hero h1{font-family:var(--serif);font-weight:500;letter-spacing:.02em;font-size:clamp(37px,5.1vw,58px);line-height:1.5;margin:0 0 25px}.hero p{max-width:620px;color:var(--muted);font-size:18px;line-height:1.9;margin:0}.owner{display:block;font-size:13px;color:var(--muted);margin-top:28px;letter-spacing:.04em}.section-label{display:flex;align-items:baseline;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:14px;gap:20px}.section-label h2{font-size:16px;font-weight:500;margin:0}.section-label span{color:var(--muted);font-size:13px}.note-list{list-style:none;margin:0;padding:0}.note-row{border-bottom:1px solid var(--line)}.note-link{display:grid;grid-template-columns:58px 1fr 90px;gap:24px;align-items:start;text-decoration:none;padding:35px 0}.note-no{font-family:var(--serif);font-size:26px;color:#839389;padding-top:4px}.note-link h3{font-family:var(--serif);font-size:27px;font-weight:500;margin:0 0 9px;line-height:1.5}.note-link p{color:var(--muted);font-size:15px;max-width:670px;margin:0;line-height:1.8}.note-link time{font-size:12px;color:var(--muted);padding-top:10px;text-align:right}.note-link:hover h3{color:var(--accent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:7px}.about{display:grid;grid-template-columns:1fr 2fr;gap:48px;padding:63px 0 70px}.about h2{font-family:var(--serif);font-size:26px;font-weight:500;margin:0}.about p{margin:0 0 15px;color:var(--muted);font-size:15px}.site-footer{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding:22px 0 34px;color:var(--muted);font-size:12px}.site-footer a{text-decoration:none}.article{max-width:752px;margin:0 auto;padding:55px 0 48px}.back-link{font-size:14px;color:var(--muted);text-decoration:none}.back-link:hover{text-decoration:underline}.article-header{margin:28px 0 38px;padding-bottom:30px;border-bottom:1px solid var(--line)}.article h1{font-family:var(--serif);font-size:clamp(33px,4.5vw,45px);line-height:1.5;font-weight:500;margin:0 0 20px;letter-spacing:.025em}.article-deck{font-size:19px;line-height:1.85;color:var(--muted);margin:0 0 25px}.article-meta{font-size:12px;color:var(--muted)}.prose h2{font-family:var(--serif);font-size:26px;font-weight:500;line-height:1.6;margin:42px 0 15px}.prose h3{font-size:18px;font-weight:600;margin:30px 0 12px}.prose p{margin:0 0 22px}.prose ul,.prose ol{padding-left:1.4em;margin:0 0 26px}.prose li{padding-left:.2em;margin:8px 0}.prose strong{font-weight:600}.prose code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.88em;background:#e9eee5;border-radius:3px;padding:2px 5px;overflow-wrap:anywhere}.prose pre{background:#edf1e9;padding:22px 24px;overflow:auto;line-height:1.65;font-size:14px;border-left:3px solid #a6b8aa;margin:28px 0}.prose pre code{background:none;padding:0;border-radius:0;overflow-wrap:normal}.aside-note{border-left:2px solid #a3b8a8;padding:3px 0 3px 22px;margin:30px 0;color:var(--muted);font-size:15px}.aside-note p:last-child{margin-bottom:0}.article-source{border-top:1px solid var(--line);margin-top:44px;padding-top:22px;color:var(--muted);font-size:13px}.article-source h2{font-family:var(--sans);font-size:14px;font-weight:600;margin:0 0 10px}.article-source p{margin-bottom:12px}.article-source ul{margin:0;padding-left:1.4em}.article-source li{margin:5px 0}.article-next{border-top:1px solid var(--line);margin-top:40px;padding-top:24px;display:flex;justify-content:space-between;gap:20px;font-size:14px}.demo{margin:34px 0;padding:27px;background:var(--wash);border:1px solid var(--line)}.demo-title{font-size:15px;font-weight:600;margin:0 0 16px!important}.demo label{display:block;font-size:14px;margin-bottom:9px}.demo textarea{width:100%;min-height:108px;resize:vertical;background:var(--white);border:1px solid #b9c7ba;border-radius:0;color:var(--ink);padding:14px;font-size:17px;line-height:1.7}.demo-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:17px}.demo button{font-size:14px;line-height:1.5;padding:10px 15px;background:var(--white);color:var(--ink);border:1px solid #a9bcb0;min-height:43px}.demo button:hover:enabled{background:#dfe9dd}.demo button.primary{background:var(--accent);border-color:var(--accent);color:white}.demo button.primary:hover:enabled{background:#294b3e}.demo-hint{font-size:12px;color:var(--muted);margin:14px 0 0!important;line-height:1.8}.demo-status{min-height:24px;font-size:13px;color:var(--accent);margin:12px 0 0!important}.motion-stage{height:150px;display:flex;align-items:center;justify-content:center;gap:.14em;color:var(--accent);background:var(--white);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:clamp(24px,4vw,36px);letter-spacing:.12em;overflow:hidden}.motion-stage span{display:inline-block}.motion-stage.is-playing span{animation:float-letter 1.9s ease-in-out infinite;animation-delay:calc(var(--i)*100ms)}@keyframes float-letter{0%,100%{transform:translateY(0);opacity:1}50%{transform:translateY(-11px);opacity:.5}}.palette-strip{display:flex;min-height:88px;margin:24px 0 12px}.palette-strip span{flex:1;display:flex;align-items:end;justify-content:center;padding:12px 5px;font:12px/1.2 ui-monospace,SFMono-Regular,Consolas,monospace}.palette-strip .dark{color:#fffef9}.color-table{width:100%;border-collapse:collapse;font-size:15px;margin:22px 0 30px}.color-table th,.color-table td{text-align:left;border-bottom:1px solid var(--line);padding:13px 12px 13px 0;vertical-align:top}.color-table th{font-weight:500;color:var(--muted)}.no-script{font-size:14px;color:var(--muted);border-left:2px solid var(--line);padding-left:15px}.privacy-line{color:var(--muted);font-size:12px}
@media(max-width:720px){.shell{padding:0 23px}.site-header{padding-top:23px;padding-bottom:20px}.brand{font-size:20px;letter-spacing:1px}.site-nav{gap:20px;font-size:13px}.hero{padding:48px 0 46px}.hero h1{font-size:36px}.hero p{font-size:16px}.owner{font-size:12px;margin-top:22px}.section-label span{font-size:12px}.note-link{grid-template-columns:32px 1fr;gap:15px;padding:28px 0}.note-no{font-size:22px}.note-link h3{font-size:23px}.note-link p{font-size:14px}.note-link time{grid-column:2;text-align:left;padding:0;margin-top:-7px}.about{grid-template-columns:1fr;gap:21px;padding:43px 0}.site-footer{font-size:11px;flex-wrap:wrap;padding-bottom:24px}.article{padding-top:34px}.article-header{margin:24px 0 30px;padding-bottom:25px}.article h1{font-size:33px}.article-deck{font-size:17px}.prose{font-size:16px}.prose h2{font-size:24px;margin-top:34px}.prose pre{font-size:12px;padding:18px 15px}.demo{padding:20px 16px;margin:28px 0}.demo-actions{gap:8px}.demo button{font-size:13px;padding:10px 12px}.article-next{flex-direction:column;gap:13px}.color-table{font-size:13px}.color-table th,.color-table td{padding-right:8px}.palette-strip span{font-size:10px}.aside-note{padding-left:17px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.motion-stage.is-playing span{animation:none}}
@media print{body{background:white;color:black}.shell{max-width:none;padding:0}.site-header,.site-footer,.site-nav,.back-link,.article-next,.demo,.skip-link{display:none}.article{max-width:none;padding:0}.article h1{font-size:30px}.prose{font-size:12pt}.prose h2{break-after:avoid}.article-source{font-size:10pt}a{color:black}pre{white-space:pre-wrap}.hero{padding:20px 0}.note-link{break-inside:avoid}}
