/* 国庆 · 山水书斋。All assets and fonts are local; no remote imports. */
.title-seo{display:none}
/* Neutralize Butterfly's first-column card sizing for our full-width pages. */
#content-inner>.gf-home{width:100%;padding:0;background:none;box-shadow:none;border-radius:0}
#content-inner>#page,#content-inner>#archive,#content-inner>#tag,#content-inner>#category,#content-inner>#recent-posts{width:100%}
.gf-home h1,.gf-home h2,.gf-home h3,.gf-resume h1,.gf-resume h2,.gf-resume h3,.gf-study h1,.gf-study h2{color:var(--gf-ink)}
html[data-gf-page=post] #content-inner{padding-top:125px}
#post .post-title{color:var(--gf-ink)!important}
@media(min-width:1100px){#aside-content .card-widget:not(#card-toc){display:none}#aside-content #card-toc.card-widget{display:block;max-height:calc(100vh - 145px);overflow:auto;background:var(--gf-glass);border:1px solid var(--gf-line);box-shadow:none;border-radius:18px}.sticky_layout{position:sticky!important;top:115px!important}}
/* Neutralize Butterfly's first-column card sizing for our full-width pages. */
#content-inner>.gf-home{width:100%;padding:0;background:none;box-shadow:none;border-radius:0}
#content-inner>#page,#content-inner>#archive,#content-inner>#tag,#content-inner>#category,#content-inner>#recent-posts{width:100%}
.gf-home h1,.gf-home h2,.gf-home h3,.gf-resume h1,.gf-resume h2,.gf-resume h3,.gf-study h1,.gf-study h2{color:var(--gf-ink)}
html[data-gf-page=post] #content-inner{padding-top:125px}
#post .post-title{color:var(--gf-ink)!important}
@media(min-width:1100px){#aside-content .card-widget:not(#card-toc){display:none}#aside-content #card-toc.card-widget{display:block;max-height:calc(100vh - 145px);overflow:auto;background:var(--gf-glass);border:1px solid var(--gf-line);box-shadow:none;border-radius:18px}.sticky_layout{position:sticky!important;top:115px!important}}
:root{--gf-bg:#f5f1e8;--gf-ink:#252d29;--gf-muted:#626a60;--gf-accent:#496b5a;--gf-gold:#927644;--gf-line:rgba(73,107,90,.18);--gf-glass:rgba(255,255,250,.68);--gf-paper:#fbf8f1;--gf-shadow:0 12px 40px rgba(39,46,36,.06);--gf-serif:'Noto Serif SC','Songti SC','SimSun',serif;--font-color:var(--gf-ink);--card-bg:var(--gf-paper);--global-bg:var(--gf-bg);--text-highlight-color:var(--gf-accent);--search-bg:var(--gf-paper)}
html[data-theme=dark]{--gf-bg:#091521;--gf-ink:#f1ebdd;--gf-muted:#bbc9ce;--gf-accent:#a4c8b9;--gf-gold:#c9ae75;--gf-line:rgba(182,212,223,.17);--gf-glass:rgba(23,43,57,.55);--gf-paper:#11212d;--gf-shadow:0 12px 40px rgba(0,0,0,.13);--font-color:var(--gf-ink);--card-bg:var(--gf-paper);--global-bg:var(--gf-bg)}
html{scroll-padding-top:110px;scroll-behavior:smooth}body{margin:0;background:var(--gf-bg);color:var(--gf-ink);font-family:system-ui,'Microsoft YaHei',sans-serif;font-size:16px}a{color:inherit}button,select,input{font:inherit}button,select{cursor:pointer}a,button,select,input{outline-offset:5px}a:focus-visible,button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--gf-accent)}
#nav,#sidebar,#rightside,#footer,#web_bg{display:none!important}#page-header{background:none!important;height:auto!important;padding:0!important}#page-header #post-info{position:static!important;padding:125px 24px 10px!important;max-width:860px;margin:auto;color:var(--gf-ink)!important}#page-header #post-info .post-title{color:var(--gf-ink)!important;font-family:var(--gf-serif);font-size:36px;line-height:1.5}#page-header #post-meta{color:var(--gf-muted)!important}#content-inner{max-width:1200px;margin:auto;padding:125px 28px 70px;display:block!important}#content-inner #aside-content{display:none}#page,#post,#archive,#tag,#category{background:var(--gf-paper)!important;color:var(--gf-ink);box-shadow:var(--gf-shadow)!important;border:1px solid var(--gf-line);border-radius:20px!important;padding:40px!important}#post{max-width:860px;margin:auto}html[data-gf-page=post] #content-inner{padding-top:24px}#post .post-copyright,#post .post-outdate-notice{display:none}#post .post-title{font-family:var(--gf-serif)}#article-container{font-size:18px;line-height:1.9;color:var(--gf-ink)}#article-container h1,#article-container h2,#article-container h3{color:var(--gf-ink);font-family:var(--gf-serif);scroll-margin-top:100px}#article-container a{color:var(--gf-accent)}#article-container img{max-width:100%;height:auto}#article-container table{display:block;max-width:100%;overflow:auto}#article-container pre,#article-container figure.highlight{overflow:auto;border-radius:10px}#article-container blockquote{background:var(--gf-bg);border-left-color:var(--gf-accent);color:var(--gf-muted)}#article-container code{overflow-wrap:anywhere}#article-container pre code{overflow-wrap:normal}#post-meta time,.article-sort-item-time,.article-sort-item.year,.post-meta-date{display:none!important}
.gf-glass{background:linear-gradient(145deg,rgba(210,229,228,.08),transparent 65%),var(--gf-glass);border:1px solid var(--gf-line);box-shadow:inset 0 1px 0 rgba(255,255,255,.12),var(--gf-shadow);backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px)}
.gf-nav{position:fixed;top:18px;left:50%;transform:translateX(-50%);width:calc(100% - 56px);max-width:1240px;min-height:68px;z-index:1000;border-radius:24px;display:flex;align-items:center;gap:24px;padding:10px 22px;color:var(--gf-ink)}.gf-brand{display:flex;align-items:center;gap:12px;white-space:nowrap;font-family:var(--gf-serif);font-size:20px}.gf-brand small{font-family:system-ui,sans-serif;font-size:11px;display:block;color:var(--gf-muted);letter-spacing:.24em}.gf-seal{display:block;background:#a34336;color:#fff3df;font-family:var(--gf-serif);font-size:16px;line-height:1.12;padding:4px 7px;border-radius:5px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.3)}#gf-links{display:flex;align-items:center;gap:22px;margin:auto;font-size:14px}#gf-links a{padding:12px 0;white-space:nowrap}#gf-links a[aria-current]{color:var(--gf-gold)}.gf-controls{display:flex;gap:7px;align-items:center}.gf-controls button,.gf-controls select{min-height:44px;padding:6px 9px;border:0;background:transparent;color:var(--gf-ink);font-size:12px}.gf-controls option{background:var(--gf-paper);color:var(--gf-ink)}.gf-menu{display:none}.gf-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.gf-skip{position:fixed;top:-100px;left:20px;z-index:2000;background:var(--gf-paper);padding:14px;border-radius:8px}.gf-skip:focus{top:20px}
html[data-gf-page=home] #content-inner{padding:0;max-width:none}html[data-gf-page=home] #page-header{display:none}.gf-home{overflow:hidden}.gf-hero{position:relative;min-height:640px;padding:165px max(6vw,calc((100vw - 1120px)/2)) 80px;isolation:isolate}.gf-landscape{position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 76% 27%,rgba(101,145,173,.28),transparent 32%),linear-gradient(180deg,#0c1d2f,#244453 65%,var(--gf-bg));overflow:hidden}.gf-landscape:before,.gf-landscape:after{content:'';position:absolute;inset:35% -2% 0;background:#172f40;clip-path:polygon(0 38%,7% 27%,12% 43%,20% 17%,24% 25%,28% 6%,32% 28%,39% 14%,45% 40%,51% 30%,58% 43%,65% 17%,69% 23%,73% 0,79% 21%,83% 13%,90% 34%,96% 17%,100% 30%,100% 100%,0 100%)}.gf-landscape:after{inset:55% -4% -10%;background:linear-gradient(#102636,var(--gf-bg));transform:scaleX(-1);opacity:.9}.gf-moon{position:absolute;top:145px;right:22%;width:78px;height:78px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#f3eedb,#c7d1cc);box-shadow:0 0 65px rgba(223,230,220,.12)}.gf-mist{position:absolute;left:-15%;right:-15%;height:100px;top:65%;background:radial-gradient(ellipse,rgba(163,190,201,.24),transparent 67%);z-index:1;animation:gf-drift 25s ease-in-out infinite alternate;pointer-events:none}.gf-hero-copy{max-width:650px}.gf-eyebrow{font-size:11px;letter-spacing:.22em;color:var(--gf-gold);margin:0 0 14px}.gf-hero h1{font-family:var(--gf-serif);font-size:clamp(40px,4.5vw,64px);font-weight:500;line-height:1.4;letter-spacing:.08em;margin:20px 0}.gf-intro{font-family:var(--gf-serif);font-size:21px;letter-spacing:.12em}.gf-description{font-size:14px;line-height:2;color:var(--gf-muted);margin:22px 0 28px}.gf-actions{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.gf-button{min-height:46px;padding:11px 25px;border-radius:30px;display:inline-flex;align-items:center;gap:25px;border:1px solid var(--gf-line);color:var(--gf-ink);background:var(--gf-glass);font-size:14px}.gf-primary{background:linear-gradient(135deg,#d0b57e,#bda36f);color:#18212a;border-color:transparent}.gf-hero-note{position:absolute;right:6%;bottom:60px;color:var(--gf-muted);font-family:var(--gf-serif);font-size:13px;letter-spacing:.2em}.gf-section{max-width:1180px;margin:auto;padding:36px 28px;scroll-margin-top:110px}.gf-home>.gf-section:last-child{padding-bottom:85px}.gf-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:22px;gap:16px}.gf-heading h2,.gf-section h2{font-family:var(--gf-serif);font-size:30px;font-weight:500;margin:0}.gf-heading>a{color:var(--gf-muted);font-size:13px}.gf-project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.gf-project{position:relative;border-radius:22px;padding:30px;display:block;transition:transform .2s,border-color .2s}.gf-project:hover,.gf-topic:hover{transform:translateY(-3px);border-color:var(--gf-accent);color:var(--gf-ink)!important}.gf-number{font-size:10px;letter-spacing:.14em;color:var(--gf-accent)}.gf-project h3{font-family:var(--gf-serif);font-size:26px;margin:15px 0 12px;font-weight:500}.gf-project p{font-size:14px;line-height:1.9;margin:8px 0}.gf-muted{color:var(--gf-muted)}.gf-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}.gf-tags span{padding:4px 12px;border:1px solid var(--gf-line);border-radius:18px;color:var(--gf-muted);font-size:11px}.gf-project-arrow{position:absolute;right:26px;bottom:25px;color:var(--gf-accent)}.gf-topic-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.gf-topic{padding:22px;border-radius:18px;display:block;position:relative;transition:transform .2s}.gf-topic-index{color:var(--gf-gold);font-family:var(--gf-serif);font-size:20px}.gf-topic h3{font-size:16px;margin:12px 0;font-weight:500}.gf-topic p{font-size:12px;color:var(--gf-muted);line-height:1.8}.gf-topic>span:last-child{position:absolute;right:20px;top:20px;color:var(--gf-muted)}.gf-article-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 28px}.gf-article{display:block;position:relative;padding:20px 30px 20px 0;border-bottom:1px solid var(--gf-line)}.gf-article>span:first-child{color:var(--gf-muted);font-size:11px}.gf-article h3{font-size:15px;line-height:1.7;margin:8px 0;font-weight:500;overflow-wrap:anywhere}.gf-arrow{position:absolute;right:0;top:40%;color:var(--gf-accent)}
html[data-theme=light] .gf-landscape{background:radial-gradient(ellipse at 70% 20%,#e4eadd,transparent 65%),linear-gradient(#f3efe4,#d6dfd2,var(--gf-bg))}html[data-theme=light] .gf-landscape:before{background:#bdcbbb}html[data-theme=light] .gf-landscape:after{background:linear-gradient(#99af9f,var(--gf-bg));opacity:.55}html[data-theme=light] .gf-moon{background:#fffaf0;box-shadow:none}
.gf-study>h1,.gf-resume h1{font-family:var(--gf-serif);font-size:44px;line-height:1.4;margin:14px 0}.gf-study>.gf-section{padding:35px 0}.gf-study-tabs{display:flex;flex-wrap:wrap;gap:10px;margin:30px 0}.gf-study-tabs a{padding:10px 14px;background:var(--gf-bg);border:1px solid var(--gf-line);border-radius:20px;font-size:13px}.gf-note-list{display:grid;grid-template-columns:1fr 1fr;gap:0 25px}.gf-resume{line-height:1.9;max-width:960px;margin:auto}.gf-resume a{color:var(--gf-accent)}.gf-resume-header{padding:15px 0 30px;border-bottom:1px solid var(--gf-line)}.gf-contact{display:flex;flex-wrap:wrap;gap:10px 24px;font-size:14px}.gf-resume section{padding:30px 0;border-bottom:1px solid var(--gf-line);scroll-margin-top:110px}.gf-resume h2{font-family:var(--gf-serif);font-size:27px;margin:0 0 18px}.gf-resume h3{font-family:var(--gf-serif);font-size:22px;margin:25px 0 15px}.gf-resume h4{font-size:15px;color:var(--gf-accent);margin:22px 0 8px}.gf-resume ul{padding-left:22px}.gf-resume li{margin:8px 0}.gf-resume .gf-stack{font-size:13px;color:var(--gf-muted);padding:10px 15px;background:var(--gf-bg);border-radius:10px}.gf-resume .gf-results{border-left:2px solid var(--gf-accent);padding-left:20px}.gf-resume p{margin:12px 0}.gf-role{color:var(--gf-accent)}.article-sort{border:0!important;margin:0!important}.article-sort-item{margin:0!important;padding:18px 0!important;border-bottom:1px solid var(--gf-line)}.article-sort-item:before{display:none!important}.article-sort-item-title{color:var(--gf-ink)!important}.article-sort-item-img{display:none!important}.article-sort-item-info{padding:0!important}.recent-post-item{background:var(--gf-paper)!important;border:1px solid var(--gf-line);box-shadow:none!important}.recent-post-info .article-title{color:var(--gf-ink)!important}.content{color:var(--gf-muted)!important}
#gf-search{width:min(640px,calc(100% - 32px));max-height:80vh;padding:28px;border-radius:24px;color:var(--gf-ink);background-color:var(--gf-paper)}#gf-search::backdrop{background:rgba(3,12,19,.65);backdrop-filter:blur(5px)}.gf-search-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.gf-search-head h2{font-family:var(--gf-serif);font-size:24px;margin:0}.gf-search-head button{background:none;border:1px solid var(--gf-line);border-radius:20px;color:var(--gf-ink);min-height:44px;padding:6px 15px}#gf-search label{font-size:13px;color:var(--gf-muted)}#gf-query{display:block;width:100%;box-sizing:border-box;padding:14px;margin-top:10px;background:var(--gf-bg);color:var(--gf-ink);border:1px solid var(--gf-line);border-radius:12px}#gf-search-status{font-size:13px;color:var(--gf-muted)}.gf-search-item{display:block;border-bottom:1px solid var(--gf-line);padding:15px 0}.gf-search-item strong{font-size:15px;font-weight:500;display:block}.gf-search-item span{font-size:12px;color:var(--gf-muted)}
/* Approved generated landscape replaces the structural-preview mountains. */
.gf-landscape:before,.gf-landscape:after,.gf-moon{display:none}
html[data-theme=dark] .gf-landscape{background:linear-gradient(180deg,rgba(9,21,33,.05) 45%,var(--gf-bg)),url('/img/moon-night.jpg') center top/cover no-repeat}
html[data-theme=light] .gf-landscape{background:linear-gradient(180deg,rgba(245,241,232,.8),rgba(245,241,232,.66) 65%,var(--gf-bg)),url('/img/moon-night.jpg') center top/cover no-repeat}
html[data-theme=dark] .gf-home>.gf-section{position:relative;isolation:isolate}
html[data-theme=dark] .gf-home>.gf-section:before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(rgba(9,21,33,.82),rgba(9,21,33,.9)),url('/img/moon-night.jpg') center 70%/cover no-repeat;opacity:.55;pointer-events:none}
@keyframes gf-drift{from{transform:translateX(-4%);opacity:.6}to{transform:translateX(4%);opacity:1}}html[data-gf-motion=off] *,html[data-gf-paused=true] *{animation-play-state:paused!important}html[data-gf-motion=off]{scroll-behavior:auto}
@supports not (backdrop-filter:blur(1px)){.gf-glass{background:var(--gf-paper)}}
/* The title lives inside #post when Butterfly top images are disabled. */
html[data-gf-page=post] #content-inner{padding-top:125px}
@media(min-width:1100px){html[data-gf-page=post] #content-inner{display:flex!important;gap:25px;max-width:1200px}html[data-gf-page=post] #post{width:860px;flex:1;min-width:0}html[data-gf-page=post] #aside-content{display:block;width:240px;flex:0 0 240px}#aside-content .card-widget:not(.card-toc){display:none}#aside-content .card-toc{position:sticky;top:115px;max-height:calc(100vh - 145px);overflow:auto;background:var(--gf-glass);border:1px solid var(--gf-line);box-shadow:none;border-radius:18px}.sticky_layout{position:sticky!important;top:115px!important}}
@media(max-width:1000px){.gf-nav{gap:15px;padding:10px 15px}#gf-links{gap:14px}.gf-brand{font-size:17px}.gf-controls{gap:0}.gf-topic-grid{grid-template-columns:1fr 1fr}}
@media(max-width:780px){.gf-nav{top:10px;width:calc(100% - 24px);min-height:62px;flex-wrap:wrap;gap:10px;border-radius:20px}.gf-brand{margin-right:auto}.gf-menu{display:block;background:none;color:var(--gf-ink);border:0;min-height:44px;padding:8px}.gf-controls{margin-left:auto}#gf-links{display:none;order:4;width:100%;flex-direction:column;align-items:stretch;gap:0;margin:0}.gf-nav.is-open #gf-links{display:flex}.gf-nav.is-open #gf-links a{padding:12px 16px;min-height:44px}.gf-brand small{display:none}.gf-controls button,.gf-controls select{padding:6px;font-size:11px}.gf-hero{padding:145px 25px 65px;min-height:590px}.gf-hero h1{font-size:43px}.gf-description br{display:none}.gf-intro{font-size:16px}.gf-moon{right:12%;top:155px;width:58px;height:58px;opacity:.7}.gf-hero-note{display:none}.gf-project-grid,.gf-article-grid,.gf-note-list{grid-template-columns:1fr}.gf-topic-grid{gap:12px}.gf-section{padding:26px 18px}.gf-project{padding:24px}.gf-topic{padding:18px}.gf-topic h3{font-size:14px}.gf-heading h2{font-size:26px}.gf-heading>a{font-size:11px}.gf-heading .gf-eyebrow{font-size:9px}#content-inner{padding:110px 14px 40px}#page,#post,#archive,#tag,#category{padding:24px 18px!important;border-radius:16px!important}#article-container{font-size:16px;line-height:1.85}#page-header #post-info{padding:110px 22px 5px!important}#page-header #post-info .post-title{font-size:28px}.gf-study>h1,.gf-resume h1{font-size:36px}.gf-contact{flex-direction:column;gap:6px}.gf-glass{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.gf-controls select{max-width:80px}#gf-search{padding:20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
@media(min-width:1100px){html[data-gf-page=post] #content-inner #aside-content{display:block}}
.gf-unavailable-image{display:none!important}.gf-image-note{display:block;padding:14px 18px;color:var(--gf-muted);font-size:13px;border:1px dashed var(--gf-line);border-radius:10px}
html[data-theme=light] body{background-image:radial-gradient(rgba(90,85,65,.04) .5px,transparent .5px);background-size:5px 5px}
.gf-mobile-toc{display:none}
@media(max-width:1099px){.gf-mobile-toc{display:block;margin:20px 0;padding:10px 16px;border:1px solid var(--gf-line);border-radius:12px;background:var(--gf-bg)}.gf-mobile-toc summary{cursor:pointer;min-height:44px;line-height:44px;font-size:14px;color:var(--gf-accent)}.gf-mobile-toc .toc{padding-left:18px;font-size:13px;line-height:1.9}.gf-mobile-toc a{color:var(--gf-ink)}}
@media(max-width:780px){#post #post-info .post-title{font-size:28px;line-height:1.5}#article-container h1{font-size:25px}#article-container h2{font-size:23px}#article-container h3{font-size:20px}}
