:root{--page:#fffefa;--ink:#111;--muted:#686868;--line:#c9c9c5;--soft:#f2f2ef;--accent:#765b42;--accent-soft:#f4efe7;--width:1120px;--reading:760px;color-scheme:light}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scrollbar-gutter:stable}
body{margin:0;background:var(--page);color:var(--ink);font-family:Georgia,"Noto Serif SC","Source Han Serif SC","Songti SC",SimSun,serif;font-size:16px;line-height:1.72;text-rendering:optimizeLegibility}
a{color:inherit;text-decoration:none}
a:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
button,input,select{font:inherit;color:inherit}
button{cursor:pointer}
a:focus-visible,button:focus-visible{outline:2px solid var(--ink);outline-offset:4px}
h1,h2,h3{line-height:1.28;margin:0 0 .65em;font-weight:700;letter-spacing:-.02em}
h1{font-size:clamp(2rem,4vw,2.8rem)}
h2{font-size:1.45rem}
h3{font-size:1.08rem}
p{margin:0 0 1.25em}
.skip-link{position:fixed;left:18px;top:-80px;z-index:20;background:var(--ink);color:var(--page);padding:8px 12px}
.skip-link:focus{top:14px}
.site-header{padding:0 32px}
.header-inner{max-width:var(--width);height:108px;margin:auto;border-bottom:2px solid var(--ink);display:flex;align-items:center;justify-content:space-between;gap:40px}
.brand{font-size:2.35rem;font-weight:700;letter-spacing:.06em;line-height:1;color:var(--ink)}
.brand:hover{text-decoration:none}
.site-header nav{display:flex;align-items:center;gap:29px;white-space:nowrap}
.site-header nav a{font-size:1rem;font-weight:600;padding:12px 0 9px;border-bottom:3px solid transparent}
.site-header nav a:hover{text-decoration:none;border-bottom-color:#777}
.site-header nav a[aria-current=page]{border-bottom-color:var(--ink)}
.site-main{max-width:var(--width);margin:auto;padding:42px 32px 72px}
.page-intro{max-width:760px;margin-bottom:2rem}
.page-intro h1{margin-bottom:.35em}
.page-intro p{color:#333;font-size:1.03rem}
.section-label{font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;margin-bottom:1.2rem;color:var(--muted)}
.archive-list{list-style:none;padding:0;margin:2.2rem 0 0;border-top:1px solid var(--ink)}
.archive-list-direct{margin-top:0}
.archive-row{position:relative;display:grid;grid-template-columns:145px minmax(0,1fr);gap:30px;padding:20px 14px 20px 0;border-bottom:1px solid var(--line);align-items:baseline;transition:background-color .24s ease,border-color .24s ease}
.archive-row::before{content:"";position:absolute;inset:0 auto 0 -14px;width:2px;background:var(--accent);transform:scaleY(0);transform-origin:center;transition:transform .24s ease}
.archive-row:hover{background:linear-gradient(90deg,var(--accent-soft) 0,rgba(244,239,231,.34) 58%,transparent 100%);border-bottom-color:#b8aa9b}
.archive-row:hover::before{transform:scaleY(1)}
.archive-row time{color:var(--muted);font-size:.84rem;font-variant-numeric:tabular-nums;letter-spacing:.035em;transition:color .24s ease}
.archive-row:hover time{color:var(--accent)}
.archive-row a{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:1.08rem;font-weight:500;letter-spacing:.012em;transition:color .24s ease,transform .24s ease}
.archive-row a::after{content:"↗";flex:0 0 auto;color:var(--accent);font-size:.88rem;font-weight:400;opacity:0;transform:translate(-7px,5px);transition:opacity .24s ease,transform .24s ease}
.archive-row a:hover{background:transparent;color:var(--accent);text-decoration:none;transform:translateX(4px)}
.archive-row a:hover::after,.archive-row:hover a::after{opacity:.72;transform:translate(0,0)}
.archive-empty{padding:30px 0;border-top:1px solid var(--line);color:var(--muted)}
.legacy-redirect{max-width:var(--reading);padding:48px 0}
.me-page{max-width:840px}
.me-intro{font-size:1.08rem;margin-bottom:3rem}
.me-section{margin-top:3rem}
.me-section h2{padding-bottom:.42em;border-bottom:1px solid var(--ink)}
.plain-list{margin:1.5rem 0 0;padding:0;border-top:1px solid var(--line)}
.plain-row{display:grid;grid-template-columns:160px minmax(0,1fr);gap:28px;padding:14px 0;border-bottom:1px solid var(--line)}
.plain-row dt{color:var(--muted)}
.plain-row dd{margin:0}
.project-list{list-style:none;padding:0;margin:0;border-top:1px solid var(--line)}
.project-list li{padding:18px 0;border-bottom:1px solid var(--line)}
.project-list h3{margin:0 0 6px}
.project-list p{margin:0;color:#333}
.contact-line{line-height:2}
.contact-line a{text-decoration:underline;text-underline-offset:4px}
.reading{max-width:var(--reading);margin:auto}
.back-link{display:inline-block;margin-bottom:2.4rem;font-size:.9rem}
.article-header{padding-bottom:1.8rem;border-bottom:1px solid var(--ink);margin-bottom:2.3rem}
.article-header h1{font-size:clamp(2rem,5vw,3rem)}
.post-meta{color:var(--muted);font-size:.9rem;margin:0}
.article-content{font-family:"Noto Serif SC","Source Han Serif SC","Songti SC",SimSun,serif;font-size:1.03rem;line-height:1.9;overflow-wrap:anywhere}
.article-content h1,.article-content h2,.article-content h3{font-family:Georgia,"Noto Serif SC","Songti SC",serif;margin-top:2em}
.article-content img{max-width:100%;height:auto}
.article-content a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
.article-content blockquote{margin:1.5rem 0;border-left:2px solid var(--ink);padding-left:1.2rem;color:#444}
.article-content pre{overflow:auto;padding:18px;background:#f3f3f0;border:1px solid var(--line);font-size:.86rem;line-height:1.65}
.article-content code{font-family:Consolas,"SFMono-Regular",monospace;font-size:.88em;background:#f3f3f0;padding:.1em .25em}
.article-content table{display:block;overflow:auto;border-collapse:collapse;margin:1.5rem 0;font-size:.92rem}
.article-content th,.article-content td{border:1px solid var(--line);padding:8px 12px}
.post-navigation{display:flex;justify-content:space-between;gap:24px;border-top:1px solid var(--ink);padding-top:1.6rem;margin-top:3rem;font-size:.9rem}
@media(max-width:760px){
 .site-header{padding:0 20px}.header-inner{height:auto;display:block;padding:25px 0 18px}.brand{font-size:2rem;display:inline-block;margin-bottom:18px}.site-header nav{gap:18px;overflow-x:auto;padding-bottom:3px}.site-header nav a{font-size:.9rem}.site-main{padding:32px 20px 56px}.archive-row{grid-template-columns:1fr;gap:4px;padding-right:4px}.archive-row::before{left:-8px}.plain-row{grid-template-columns:1fr;gap:3px}.post-navigation{display:block}.post-navigation a{display:block;margin:12px 0}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
